Home Reference Source
import GlRectInstancer from './ui/gldraw/glrectinstancer.js'
public class | source

GlRectInstancer

Extends:

Events → GlRectInstancer

draw many rectangles quickly using GPU instancing (e.g. patchfield: ops,ports,text)

Static Member Summary

Static Public Members
public static
public static
public static
public static
public static
public static
public static

Constructor Summary

Public Constructor
public

constructor(cgl: CglContext, options: GlRectInstancerOptions)

Description

Member Summary

Public Members
public

: *

public
public get

bounds: *

public
public

disposed: boolean

public
public
public set
public get
public
Private Members
private
private
private
private
private
private
private

_log: *

private
private

_newBounds: {"minX": *, "maxX": *, "minY": *, "maxY": *, "minZ": *, "maxZ": *}

private
private
private
private
private
private
private
private
private
private
private

cgl: *

private

counter: *

private
private

geom: Geometry

private

mesh: Mesh

private
private
private
private
private
private
private

name: *

private
private
private

num: *

private
private

rects: Array<GlRect>

private

shader: Shader

private

textures: Array<Texture>

private
private

Method Summary

Public Methods
public

clear()

public

createRect(options: import("./glrect.js").GlRectOptions): *

public

dispose(): *

public

getDebug(): {"num": *, "len_attrBuffSizes": *, "len_attrBuffPos": *, "len_attrBuffCol": *, "len_attrBuffDeco": *}

public

getIndex(): *

public
public

isDragging(): *

public

mouseDown(e: MouseEvent, x: number, y: number)

public

mouseMove(x: number, y: number, button: number, event: MouseEvent)

public

mouseUp(e: MouseEvent)

public

pointerLeave(e: MouseEvent)

public
public

removeRect(idx: string)

public

render(resX: number, resY: number, scrollX: number, scrollY: number, zoom: number)

public

setBorder(idx: number, o: number)

public

setColor(idx: number, r: number, g: number, b: number, a: number)

public

setColorArray(idx: any, r: number[])

public

setDebugRenderer(i: number)

public

setPosition(idx: number, x: number, y: number, z: number)

public

setSelected(idx: number, o: number)

public

setShape(idx: number, o: number)

public

setSize(idx: number, x: number, y: number)

public

setTexRect(idx: number, x: number, y: number, w: number, h: number)

public

setTexture(slot: string | number, tex: Texture, sdf: boolean | import("cables").Port)

public

setTextureIdx(idx: number, x: number)

Private Methods
private

_float32Diff(a: number, b: number): *

private

_resetAttrRange(attr: string)

private

_setAttrRange(attr: string, start: number, end: number)

private

Static Public Members

public static ATTR_COLOR: * source

public static ATTR_DECO: * source

public static ATTR_POS: * source

public static ATTR_SIZE: * source

public static ATTR_TEX: * source

public static ATTR_TEXRECT: * source

public static DEFAULT_BIGNUM: * source

Public Constructors

public constructor(cgl: CglContext, options: GlRectInstancerOptions) source

Description

Params:

NameTypeAttributeDescription
cgl CglContext
options GlRectInstancerOptions

Public Members

public : * source

public allowDragging: * source

public get bounds: * source

public debugColors: * source

public disposed: boolean source

public doBulkUploads: * source

public hoverWhenButton: * source

public set interactive source

public get interactive: * source

public mouseDownCount: * source

Private Members

private _attrBuffCol: * source

private _attrBuffDeco: * source

private _attrBuffPos: * source

private _attrBuffSizes: * source

private _attrBuffTexRect: * source

private _attrBuffTextures: * source

private _log: * source

private _needsBoundsRecalc: boolean source

private _newBounds: {"minX": *, "maxX": *, "minY": *, "maxY": *, "minZ": *, "maxZ": *} source

private _uniResX: * source

private _uniResY: * source

private _uniTexture1: * source

private _uniTexture2: * source

private _uniTexture3: * source

private _uniTime: * source

private _uniZoom: * source

private _unimsdfUnit: * source

private _uniscrollX: * source

private _uniscrollY: * source

private cgl: * source

private counter: * source

private draggingRects: GlRect[] source

private geom: Geometry source

private mesh: Mesh source

private meshAttrCol: * source

private meshAttrDeco: * source

private meshAttrPos: * source

private meshAttrSize: * source

private meshAttrTex: * source

private meshAttrTexRect: * source

private name: * source

private needsRebuild: * source

private needsRebuildReason: * source

private num: * source

private reUploadAttribs: * source

private rects: Array<GlRect> source

private shader: Shader source

private textures: Array<Texture> source

private updateRangesMax: * source

private updateRangesMin: * source

Public Methods

public clear() source

public createRect(options: import("./glrect.js").GlRectOptions): * source

Params:

NameTypeAttributeDescription
options import("./glrect.js").GlRectOptions

Return:

*

public dispose(): * source

Return:

*

public getDebug(): {"num": *, "len_attrBuffSizes": *, "len_attrBuffPos": *, "len_attrBuffCol": *, "len_attrBuffDeco": *} source

Return:

{"num": *, "len_attrBuffSizes": *, "len_attrBuffPos": *, "len_attrBuffCol": *, "len_attrBuffDeco": *}

public getIndex(): * source

Return:

*

public getNumRects(): * source

Return:

*

public isDragging(): * source

Return:

*

public mouseDown(e: MouseEvent, x: number, y: number) source

Params:

NameTypeAttributeDescription
e MouseEvent
x number
  • optional
y number
  • optional

public mouseMove(x: number, y: number, button: number, event: MouseEvent) source

Params:

NameTypeAttributeDescription
x number
y number
button number
event MouseEvent

public mouseUp(e: MouseEvent) source

Params:

NameTypeAttributeDescription
e MouseEvent

public pointerLeave(e: MouseEvent) source

Params:

NameTypeAttributeDescription
e MouseEvent

public rebuild() source

public removeRect(idx: string) source

Params:

NameTypeAttributeDescription
idx string

public render(resX: number, resY: number, scrollX: number, scrollY: number, zoom: number) source

Params:

NameTypeAttributeDescription
resX number
resY number
scrollX number
scrollY number
zoom number

public setBorder(idx: number, o: number) source

Params:

NameTypeAttributeDescription
idx number
o number

public setColor(idx: number, r: number, g: number, b: number, a: number) source

Params:

NameTypeAttributeDescription
idx number
r number
g number
  • optional
b number
  • optional
a number
  • optional

public setColorArray(idx: any, r: number[]) source

Params:

NameTypeAttributeDescription
idx any
r number[]

public setDebugRenderer(i: number) source

Params:

NameTypeAttributeDescription
i number

public setPosition(idx: number, x: number, y: number, z: number) source

Params:

NameTypeAttributeDescription
idx number
x number
y number
z number

public setSelected(idx: number, o: number) source

Params:

NameTypeAttributeDescription
idx number
o number

public setShape(idx: number, o: number) source

Params:

NameTypeAttributeDescription
idx number
o number

public setSize(idx: number, x: number, y: number) source

Params:

NameTypeAttributeDescription
idx number
x number
y number

public setTexRect(idx: number, x: number, y: number, w: number, h: number) source

Params:

NameTypeAttributeDescription
idx number
x number
y number
w number
h number

public setTexture(slot: string | number, tex: Texture, sdf: boolean | import("cables").Port) source

Params:

NameTypeAttributeDescription
slot string | number
tex Texture
sdf boolean | import("cables").Port

public setTextureIdx(idx: number, x: number) source

Params:

NameTypeAttributeDescription
idx number
x number

Private Methods

private _float32Diff(a: number, b: number): * source

Params:

NameTypeAttributeDescription
a number
b number

Return:

*

private _resetAttrRange(attr: string) source

Params:

NameTypeAttributeDescription
attr string

private _setAttrRange(attr: string, start: number, end: number) source

Params:

NameTypeAttributeDescription
attr string

index

start number
end number

private _setupAttribBuffers() source