Class QuadCompositor

A WebGL Compositor object. This class handles all of the WebGL state
Pushes texture regions or shape geometry into WebGL buffers, automatically flushes to GPU

Hierarchy (view full)

Constructors

  • Parameters

    • renderer: WebGLRenderer

      the current WebGL renderer session

    • settings: {
          attribute: {
              name: string;
              normalized: boolean;
              offset: number;
              size: number;
              type: number;
          }[];
          shader: {
              fragment: string;
              vertex: string;
          };
      }

      additional settings to initialize this compositors

      • attribute: {
            name: string;
            normalized: boolean;
            offset: number;
            size: number;
            type: number;
        }[]

        an array of attributes definition

      • shader: {
            fragment: string;
            vertex: string;
        }

        an array of attributes definition

        • fragment: string
        • vertex: string

    Returns QuadCompositor

Properties

attributes: undefined | Object[]

an array of vertex attribute properties

WebGLCompositor.addAttribute

boundTextures: undefined | any[]
color: any
currentShader: undefined | GLShader

the shader currently used by this compositor

currentTextureUnit: any
defaultShader: undefined | GLShader

the default shader created by this compositor

gl: any
mode: undefined | number

primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)

gl.TRIANGLES
renderer: any
vertexByteSize: undefined | number

the size of a single vertex in bytes (will automatically be calculated as attributes definitions are added)

WebGLCompositor.addAttribute

vertexData: undefined | VertexArrayBuffer

the vertex data buffer used by this compositor

vertexSize: undefined | number

the size of a single vertex in floats (will automatically be calculated as attributes definitions are added)

WebGLCompositor.addAttribute

viewMatrix: any

Methods

  • add vertex attribute property definition to the compositor

    Parameters

    • name: string

      name of the attribute in the vertex shader

    • size: number

      number of components per vertex attribute. Must be 1, 2, 3, or 4.

    • type: number

      data type of each component in the array

    • normalized: boolean

      whether integer data values should be normalized into a certain range when being cast to a float

    • offset: number

      offset in bytes of the first component in the vertex attribute array

    Returns void

  • Add a textured quad

    Parameters

    • texture: TextureAtlas

      Source texture atlas

    • x: number

      Destination x-coordinate

    • y: number

      Destination y-coordinate

    • w: number

      Destination width

    • h: number

      Destination height

    • u0: number

      Texture UV (u0) value.

    • v0: number

      Texture UV (v0) value.

    • u1: number

      Texture UV (u1) value.

    • v1: number

      Texture UV (v1) value.

    • tint: number

      tint color to be applied to the texture in UINT32 (argb) format

    • reupload: boolean = false

      Force the texture to be reuploaded even if already bound

    Returns void

  • Create a WebGL texture from an image

    Parameters

    • unit: number

      Destination texture unit

    • Optionalpixels:
          | HTMLCanvasElement
          | ImageData
          | (new (width?: number, height?: number) => HTMLImageElement)
          | Uint8Array[]
          | Float32Array[] = null

      Source image

    • filter: number

      gl.LINEAR or gl.NEAREST

    • Optionalrepeat: string = "no-repeat"

      Image repeat behavior (see ImageLayer#repeat)

    • Optionalw: number = pixels.width

      Source image width (Only use with UInt8Array[] or Float32Array[] source image)

    • Optionalh: number = pixels.height

      Source image height (Only use with UInt8Array[] or Float32Array[] source image)

    • OptionalpremultipliedAlpha: boolean = true

      Multiplies the alpha channel into the other color channels

    • Optionalmipmap: boolean = true

      Whether mipmap levels should be generated for this texture

    Returns WebGLTexture

    a WebGL texture