@turbowarp/types-tw
    Preparing search index...

    Class RenderWebGL

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    • Parameters

      • canvas: HTMLCanvasElement
      • OptionalxLeft: number
      • OptionalxRight: number
      • OptionalyBottom: number
      • OptionalyTop: number

      Returns RenderWebGL

    Properties

    _allDrawables: Drawable[]
    _allSkins: Skin[]
    _backgroundColor3b: [number, number, number]

    RGB from 0-255

    _backgroundColor4f: [number, number, number, number]

    RGBA from 0-1

    _backgroundDrawRegionId: DrawingRegion
    _bufferInfo: BufferInfo
    _customFontStyles: HTMLStyleElement | null
    _debugCanvas?: HTMLCanvasElement
    _drawList: number[]
    _exitRegion: Function | null
    _groupOrdering: string[]
    _layerGroups: Record<LayerGroup, { drawListOffset: number; groupIndex: number }>
    _nativeSize: [number, number]
    _nextDrawableId: number
    _nextSkinId: number
    _overlays: Overlay[]
    _projection: M4
    _regionId: unknown
    _shaderManager: ShaderManager
    _snapshotCallbacks: ((dataURL: string) => void)[]
    _useGpuMode: UseGpuModes
    _xLeft: number
    _xRight: number
    _yBottom: number
    _yTop: number
    allowPrivateSkinAccess: boolean
    customFonts: Record<string, string>
    dirty: boolean
    exports: {
        BitmapSkin: new (id: number, renderer: RenderWebGL) => BitmapSkin;
        CanvasMeasurementProvider: new (
            ctx: CanvasRenderingContext2D,
        ) => CanvasMeasurementProvider;
        Drawable: new (id: number, renderer: RenderWebGL) => Drawable;
        PenSkin: new (id: number, renderer: RenderWebGL) => PenSkin;
        Skin: new (id: number, renderer: RenderWebGL) => Skin;
        SVGSkin: new (id: number, renderer: RenderWebGL) => SVGSkin;
        TextBubbleSkin: new (id: number, renderer: RenderWebGL) => TextBubbleSkin;
        twgl: object;
    }
    offscreenTouching: boolean
    useHighQualityRender: boolean

    aka high quality pen.

    powerPreference: WebGLPowerPreference

    Accessors

    Methods

    • Parameters

      • drawableID: number
      • group: string

      Returns void

    • Parameters

      • drawableIds: number[]
      • drawMode: DrawMode
      • projection: M4
      • Optionalopts: {
            effectMask?: number;
            extraUniforms?: object;
            filter?: (drawableId: number) => boolean;
            framebufferHeight?: number;
            framebufferWidth?: number;
            ignoreVisibility?: boolean;
        }

      Returns void

    • Parameters

      • drawableID: number

      Returns [number, number][]

    • Parameters

      • bounds: Rectangle
      • color: [number, number, number]
      • stop: number

      Returns boolean

    • Parameters

      • drawableId: number
      • candidateIds: number[]
      • bounds: Rectangle
      • color: [number, number, number]
      • Optionalmask: [number, number, number]

      Returns void

    • Get the "candidate bounding box" to use for "touching" queries.

      Parameters

      • drawableId: number

      Returns Rectangle | null

      The rectangle, or null if the drawable is offscreen or has no skin.

    • Parameters

      • updateType: "add" | "delete"
      • index: number

      Returns void

    • :3

      Parameters

      • drawableID: number

      Returns { data: ImageData; height: number; width: number; x: number; y: number }

    • Parameters

      • centerX: number

        X coordinate in client space

      • centerY: number

        Y coordinate in client space

      • Optionalwidth: number

        Defaults to 1

      • Optionalheight: number

        Defaults to 1

      Returns Rectangle

    • Parameters

      • svgData: string
      • OptionalrotationCenter: [number, number]

      Returns number

    • Parameters

      • drawableID: number
      • group: string

      Returns void

    • Determine if a drawable is touching a point.

      Parameters

      • drawableId: number

        ID of the target drawable

      • centerX: number

        X coordinate in client space

      • centerY: number

        Y coordinate in client space

      • Optionalwidth: number

        Defaults to 1

      • Optionalheight: number

        Defaults to 1

      Returns boolean

    • Enter a drawing region.

      Parameters

      • regionId: unknown

        Any arbitrary unique object.

      • Optionalenter: Function

        Called when entering the drawing region (which is what this function does). Defaults to regionId.enter.

      • Optionalexit: Function

        Called when leaving the drawing region. Defaults to regionId.exit.

      Returns void

    • Parameters

      • x: number

        X coordinate in client space

      • y: number

        Y coordinate in client space

      • radius: number

        "Radius" of the square, in pixels

      Returns {
          color: { a: number; b: number; g: number; r: number };
          data: Uint8Array;
          height: number;
          width: number;
      }

      Data about the pixels in a square around the coordinates. Color channels are RGBA from 0-255

    • Parameters

      • drawableId: number

      Returns { data: ImageData; height: number; width: number; x: number; y: number }

    • Parameters

      • drawableId: number

      Returns [number, number]

    • Parameters

      • drawableId: number
      • position: [number, number]

      Returns [number, number]

    • Determine if a drawable is touching a color or if a certain color of the drawable is touching a color.

      Parameters

      • drawableId: number
      • color: [number, number, number]

        RGB color from 0-255

      • Optionalmask: [number, number, number]

        RGB color from 0-255. Used by "is color touching color" block.

      Returns boolean

    • Determine if a drawable is intersecting a set of other drawables.

      Parameters

      • drawableId: number

        ID of the target drawable

      • OptionalcandidateIds: number[]

        The IDs of the drawables to test for collision with the target drawable. Defaults to all drawables.

      Returns boolean

    • Parameters

      • event: { newSize: [number, number] }

      Returns void

    • Parameters

      • penSkinId: number
      • penAttributes: PenAttributes
      • x1: number
      • y1: number
      • x2: number
      • y2: number

      Returns void

    • Parameters

      • penSkinId: number
      • stampDrawableId: number

      Returns void

    • Determine the top-most drawable at a point.

      Parameters

      • centerX: number

        X coordinate in client space

      • centerY: number

        Y coordinate in client space

      • Optionalwidth: number

        Defaults to 1

      • Optionalheight: number

        Defaults to 1

      • OptionalcandidateIds: number[]

        Defaults to all drawables

      Returns number

      The ID of the top-most drawable, or -1 if there is none. (TW: returns false instead of -1 in Scratch)

    • Parameters

      • callback: (dataURL: string) => void

      Returns void

    • Parameters

      • vector: V3
      • drawableIds: number[]
      • Optionaldestination: Uint8ClampedArray<ArrayBuffer>

      Returns Uint8ClampedArray

    • Parameters

      • red: number

        Red from 0-1

      • green: number

        Green from 0-1

      • blue: number

        Blue from 0-1

      • Optionalalpha: number

        Alpha from 0-1, defaults to 1. (from TW)

      Returns void

    • Parameters

      • customFonts: Record<string, string>

      Returns void

    • Parameters

      • drawableID: number
      • order: number
      • group: string
      • OptionalisRelative: boolean
      • Optionalmin: number

      Returns void

    • Parameters

      • xLeft: number
      • xRight: number
      • yBottom: number
      • yTop: number

      Returns void

    • Parameters

      • drawableId: number
      • direction: number

      Returns void

    • Parameters

      • drawableId: number
      • direction: number
      • scale: [number, number]

      Returns void

    • Parameters

      • drawableId: number
      • position: [number, number]

      Returns void

    • Parameters

      • drawableId: number
      • properties:
            | Record<RenderWebGL.Effect, number>
            | {
                direction?: number;
                position?: [number, number];
                scale?: number;
                skinId?: number;
                visible?: number;
            }

      Returns void

      Use the individual updateDrawable* methods instead.

    • Parameters

      • drawableId: number
      • scale: [number, number]

      Returns void

    • Parameters

      • drawableId: number
      • skinId: number

      Returns void

    • Parameters

      • drawableId: number
      • visible: boolean

      Returns void

    • Parameters

      • skinId: number
      • svgData: string
      • OptionalrotationCenter: [number, number]

      Returns void

    • If WebGL 1 is supported, returns a WebGL 1 context. If WebGL 1 is not supported but WebGL 2 is supported, returns a WebGL 2 context. Otherwise, returns null.

      Parameters

      • canvas: HTMLCanvasElement

      Returns AnyWebGLContext | null

    • Parameters

      • Optionalcanvas: HTMLCanvasElement

      Returns boolean