phaser - v3.90.0
    Preparing search index...

    WebGLRenderer is a class that contains the needed functionality to keep the WebGLRenderingContext state clean. The main idea of the WebGLRenderer is to keep track of any context change that happens for WebGL rendering inside of Phaser. This means if raw webgl functions are called outside the WebGLRenderer of the Phaser WebGL rendering ecosystem they might pollute the current WebGLRenderingContext state producing unexpected behavior. It's recommended that WebGL interaction is done through WebGLRenderer and/or WebGLPipeline.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Methods

    Constructors

    Properties

    blankTexture: WebGLTextureWrapper

    A blank 32x32 transparent texture, as used by the Graphics system where needed. This is set in the boot method.

    blendModes: any[]

    An array of blend modes supported by the WebGL Renderer.

    This array includes the default blend modes as well as any custom blend modes added through #addBlendMode.

    canvas: HTMLCanvasElement

    The canvas which this WebGL Renderer draws to.

    Stores the WebGL texture compression formats that this device and browser supports.

    Support for using compressed texture formats was added in Phaser version 3.60.

    config: object

    The local configuration settings of this WebGL Renderer.

    contextLost: boolean

    This property is set to true if the WebGL context of the renderer is lost.

    contextLostHandler: Function

    The handler to invoke when the context is lost. This should not be changed and is set in the init method.

    contextRestoredHandler: Function

    The handler to invoke when the context is restored. This should not be changed and is set in the init method.

    currentBlendMode: number

    Current blend mode in use

    currentCameraMask: any

    Internal property that tracks the currently set camera mask.

    currentFramebuffer: WebGLFramebufferWrapper

    The currently bound framebuffer in use.

    currentMask: any

    Internal property that tracks the currently set mask.

    currentProgram: WebGLProgramWrapper

    Current WebGLProgram in use.

    currentScissor: Uint32Array

    Stores the current scissor data

    currentScissorEnabled: boolean

    Indicates if the scissor state is enabled in WebGLRenderingContext

    currentType: string

    The type of the Game Object being currently rendered. This can be used by advanced render functions for batching look-ahead.

    drawingBufferHeight: number

    Cached drawing buffer height to reduce gl calls.

    extensions: object

    The WebGL Extensions loaded into the current context.

    A stack into which the frame buffer objects are pushed and popped.

    finalType: boolean

    Is the Game Object being currently rendered the final one in the list?

    game: Game

    The Game instance which owns this WebGL Renderer.

    gl: WebGLRenderingContext

    The underlying WebGL context of the renderer.

    glAttribLocationWrappers: WebGLAttribLocationWrapper[]

    A list of all WebGLAttribLocationWrappers that have been created by this renderer.

    glBufferWrappers: WebGLBufferWrapper[]

    A list of all WebGLBufferWrappers that have been created by this renderer.

    glFormats: any[]

    Stores the current WebGL component formats for further use.

    This array is populated in the init method.

    glFramebufferWrappers: WebGLFramebufferWrapper[]

    A list of all WebGLFramebufferWrappers that have been created by this renderer.

    glFuncMap: any
    glProgramWrappers: WebGLProgramWrapper[]

    A list of all WebGLProgramWrappers that have been created by this renderer.

    glTextureWrappers: WebGLTextureWrapper[]

    A list of all WebGLTextureWrappers that have been created by this renderer.

    glUniformLocationWrappers: WebGLUniformLocationWrapper[]

    A list of all WebGLUniformLocationWrappers that have been created by this renderer.

    height: number

    The height of the canvas being rendered to. This is populated in the onResize event handler.

    instancedArraysExtension: ANGLE_instanced_arrays

    If the browser supports the ANGLE_instanced_arrays extension, this property will hold a reference to the glExtension for it.

    This is populated in the setExtensions method.

    isBooted: boolean

    Has this renderer fully booted yet?

    maskCount: number

    The total number of masks currently stacked.

    maskSource: RenderTarget

    A RenderTarget used by the BitmapMask Pipeline.

    This is the source, i.e. the masked Game Object itself.

    maskStack: GeometryMask[]

    The mask stack.

    maskTarget: RenderTarget

    A RenderTarget used by the BitmapMask Pipeline.

    This is the target, i.e. the framebuffer the masked objects are drawn to.

    maxTextures: number

    The maximum number of textures the GPU can handle. The minimum under the WebGL1 spec is 8. This is set via the Game Config maxTextures property and should never be changed after boot.

    mipmapFilter: number

    The mipmap magFilter to be used when creating textures.

    You can specify this as a string in the game config, i.e.:

    render: { mipmapFilter: 'NEAREST_MIPMAP_LINEAR' }

    The 6 options for WebGL1 are, in order from least to most computationally expensive:

    NEAREST (for pixel art) LINEAR (the default) NEAREST_MIPMAP_NEAREST LINEAR_MIPMAP_NEAREST NEAREST_MIPMAP_LINEAR LINEAR_MIPMAP_LINEAR

    Mipmaps only work with textures that are fully power-of-two in size.

    For more details see https://webglfundamentals.org/webgl/lessons/webgl-3d-textures.html

    As of v3.60 no mipmaps will be generated unless a string is given in the game config. This saves on VRAM use when it may not be required. To obtain the previous result set the property to LINEAR in the config.

    newType: boolean

    Is the type of the Game Object being currently rendered different than the type of the object before it in the display list? I.e. it's a 'new' type.

    nextTypeMatch: boolean

    Does the type of the next Game Object in the display list match that of the object being currently rendered?

    normalTexture: WebGLTextureWrapper

    A blank 1x1 #7f7fff texture, a flat normal map, as used by the Graphics system where needed. This is set in the boot method.

    pipelines: PipelineManager

    An instance of the Pipeline Manager class, that handles all WebGL Pipelines.

    Use this to manage all of your interactions with pipelines, such as adding, getting, setting and rendering them.

    The Pipeline Manager class is created in the init method and then populated with pipelines during the boot method.

    Prior to Phaser v3.50.0 this was just a plain JavaScript object, not a class.

    previousContextLostHandler: Function

    The previous contextLostHandler that was in use. This is set when setContextHandlers is called.

    previousContextRestoredHandler: Function

    The previous contextRestoredHandler that was in use. This is set when setContextHandlers is called.

    projectionHeight: number

    The cached height of the Projection matrix.

    projectionMatrix: Math.Matrix4

    The global game Projection matrix, used by shaders as 'uProjectionMatrix' uniform.

    projectionWidth: number

    The cached width of the Projection matrix.

    renderTarget: RenderTarget

    A Render Target you can use to capture the current state of the Renderer.

    A Render Target encapsulates a framebuffer and texture for the WebGL Renderer.

    scissorStack: Uint32Array

    Stack of scissor data

    snapshotState: SnapshotState

    Details about the currently scheduled snapshot.

    If a non-null callback is set in this object, a snapshot of the canvas will be taken after the current frame is fully rendered.

    spector: Function

    An instance of SpectorJS used for WebGL Debugging.

    Only available in the Phaser Debug build.

    supportedExtensions: string[]

    Array of strings that indicate which WebGL extensions are supported by the browser. This is populated in the setExtensions method.

    textureIndexes: any[]

    An array of the available WebGL texture units, used to populate the uSampler uniforms.

    This array is populated during the init phase and should never be changed after boot.

    type: number

    A constant which allows the renderer to be easily identified as a WebGL Renderer.

    vaoExtension: OES_vertex_array_object

    If the browser supports the OES_vertex_array_object extension, this property will hold a reference to the glExtension for it.

    This is populated in the setExtensions method.

    whiteTexture: WebGLTextureWrapper

    A pure white 4x4 texture, as used by the Graphics system where needed. This is set in the boot method.

    width: number

    The width of the canvas being rendered to. This is populated in the onResize event handler.

    Methods

    • Parameters

      • func: number[]

        An array containing the WebGL functions to use for the source and the destination blending factors, respectively. See the possible constants for WebGLRenderingContext#blendFunc().

      • equation: number

        The equation to use for combining the RGB and alpha components of a new pixel with a rendered one. See the possible constants for WebGLRenderingContext#blendEquation().

      Returns number

    • Add a listener for a given event.

      Parameters

      • event: string | symbol

        The event name.

      • fn: Function

        The listener function.

      • Optionalcontext: any

        The context to invoke the listener with. Default this.

      Returns this

    • Binds necessary resources and renders the mask to a separated framebuffer. The framebuffer for the masked object is also bound for further use.

      Parameters

      • mask: BitmapMask

        The BitmapMask instance that called beginMask.

      • camera: Camera

        The camera rendering the current mask.

      Returns void

    • Binds the WebGL Renderers Render Target, so all drawn content is now redirected to it.

      Make sure to call endCapture when you are finished.

      Parameters

      • Optionalwidth: number

        Optional new width of the Render Target.

      • Optionalheight: number

        Optional new height of the Render Target.

      Returns void

    • Creates a new WebGL Texture based on the given Canvas Element.

      If the dstTexture parameter is given, the WebGL Texture is updated, rather than created fresh.

      Parameters

      • srcCanvas: HTMLCanvasElement

        The Canvas to create the WebGL Texture from

      • OptionaldstTexture: WebGLTextureWrapper

        The destination WebGLTextureWrapper to set.

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT (such as for Text objects?) Default false.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      Returns WebGLTextureWrapper

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method will capture the current WebGL frame and send it to the Spector.js tool for inspection.

      Parameters

      • OptionalquickCapture: boolean

        If true thumbnails are not captured in order to speed up the capture. Default false.

      • OptionalfullCapture: boolean

        If true all details are captured. Default false.

      Returns void

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method will capture the next WebGL frame and send it to the Spector.js tool for inspection.

      Returns void

    • Disables the STENCIL_TEST but does not change the status of the current stencil mask.

      Returns void

    • Creates a WebGLAttribLocationWrapper instance based on the given WebGLProgramWrapper and attribute name.

      Parameters

      • program: WebGLProgramWrapper

        The WebGLProgramWrapper instance.

      • name: string

        The name of the attribute.

      Returns void

    • Creates a new WebGL Texture based on the given Canvas Element.

      Parameters

      • srcCanvas: HTMLCanvasElement

        The Canvas to create the WebGL Texture from.

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT (such as for Text objects?) Default false.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      Returns WebGLTextureWrapper

    • Creates a WebGL Framebuffer object and optionally binds a depth stencil render buffer.

      This will unbind any currently bound framebuffer.

      Parameters

      • width: number

        If addDepthStencilBuffer is true, this controls the width of the depth stencil.

      • height: number

        If addDepthStencilBuffer is true, this controls the height of the depth stencil.

      • renderTexture: WebGLTextureWrapper

        The color texture where the color pixels are written.

      • OptionaladdDepthStencilBuffer: boolean

        Create a Renderbuffer for the depth stencil? Default false.

      Returns WebGLFramebufferWrapper

    • Wrapper for creating a vertex buffer.

      Parameters

      • initialDataOrSize: ArrayBuffer

        Either ArrayBuffer or an integer indicating the size of the vbo.

      • bufferUsage: number

        How the buffer is used. gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW.

      Returns WebGLBufferWrapper

    • Creates a WebGLProgram instance based on the given vertex and fragment shader source.

      Then compiles, attaches and links the program before wrapping and returning it.

      Parameters

      • vertexShader: string

        The vertex shader source code as a single string.

      • fragmentShader: string

        The fragment shader source code as a single string.

      Returns WebGLProgramWrapper

    • Create temporary WebGL textures to stop WebGL errors on macOS.

      Returns void

    • A wrapper for creating a WebGLTextureWrapper. If no pixel data is passed it will create an empty texture.

      Parameters

      • mipLevel: number

        Mip level of the texture.

      • minFilter: number

        Filtering of the texture.

      • magFilter: number

        Filtering of the texture.

      • wrapT: number

        Wrapping mode of the texture.

      • wrapS: number

        Wrapping mode of the texture.

      • format: number

        Which format does the texture use.

      • pixels: object

        pixel data.

      • width: number

        Width of the texture in pixels. If not supplied, it must be derived from pixels.

      • height: number

        Height of the texture in pixels. If not supplied, it must be derived from pixels.

      • Optionalpma: boolean

        Does the texture have premultiplied alpha? Default true.

      • OptionalforceSize: boolean

        If true it will use the width and height passed to this method, regardless of the pixels dimension. Default false.

      • OptionalflipY: boolean

        Sets the UNPACK_FLIP_Y_WEBGL flag the WebGL Texture uses during upload. Default false.

      Returns WebGLTextureWrapper

    • Creates a texture from an image source. If the source is not valid it creates an empty texture.

      Parameters

      • source: object

        The source of the texture.

      • width: number

        The width of the texture.

      • height: number

        The height of the texture.

      • scaleMode: number

        The scale mode to be used by the texture.

      • OptionalforceClamp: boolean

        Force the texture to use the CLAMP_TO_EDGE wrap mode, even if a power of two? Default false.

      Returns WebGLTextureWrapper

    • Create a WebGLTexture from a Uint8Array.

      The Uint8Array is assumed to be RGBA values, one byte per color component.

      The texture will be filtered with gl.NEAREST and will not be mipped.

      Parameters

      • data: Uint8Array

        The Uint8Array to create the texture from.

      • width: number

        The width of the texture.

      • height: number

        The height of the texture.

      Returns WebGLTextureWrapper

    • Creates a WebGLUniformLocationWrapper instance based on the given WebGLProgramWrapper and uniform name.

      Parameters

      • program: WebGLProgramWrapper

        The WebGLProgramWrapper instance.

      • name: string

        The name of the uniform.

      Returns void

    • Wrapper for creating a vertex buffer.

      Parameters

      • initialDataOrSize: ArrayBuffer

        It's either ArrayBuffer or an integer indicating the size of the vbo

      • bufferUsage: number

        How the buffer is used. gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW

      Returns WebGLBufferWrapper

    • Creates a new WebGL Texture based on the given HTML Video Element.

      Parameters

      • srcVideo: HTMLVideoElement

        The Video to create the WebGL Texture from

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT? Default false.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      Returns WebGLTextureWrapper

    • Deletes a WebGLBuffer from the GL instance.

      Parameters

      Returns this

    • Deletes a WebGLProgram from the GL instance.

      Parameters

      Returns this

    • Removes a texture from the GPU.

      Parameters

      Returns this

    • Destroy this WebGLRenderer, cleaning up all related resources such as pipelines, native textures, etc.

      Returns void

    • This method is called when the WebGL context is lost. By default this is bound to the property WebGLRenderer.contextLostHandler. If you override the context loss handler via the setContextHandlers method then be sure to invoke this method in due course.

      Parameters

      • event: WebGLContextEvent

        The WebGL context lost Event.

      Returns void

    • This method is called when the WebGL context is restored. By default this is bound to the property WebGLRenderer.contextRestoredHandler. If you override the context restored handler via the setContextHandlers method then be sure to invoke this method in due course.

      Parameters

      • event: WebGLContextEvent

        The WebGL context restored Event.

      Returns void

    • Binds necessary resources and renders the mask to a separated framebuffer. The framebuffer for the masked object is also bound for further use.

      Parameters

      • mask: BitmapMask

        The BitmapMask instance that called beginMask.

      • camera: Camera

        The camera rendering the current mask.

      • bitmapMaskPipeline: BitmapMaskPipeline

        The BitmapMask Pipeline instance that is requesting the draw.

      Returns void

    • Calls each of the listeners registered for a given event.

      Parameters

      • event: string | symbol

        The event name.

      • ...args: any[]

        Additional arguments that will be passed to the event handler.

      Returns boolean

    • Unbinds the WebGL Renderers Render Target and returns it, stopping any further content being drawn to it.

      If the viewport or scissors were modified during the capture, you should reset them by calling resetViewport and resetScissor accordingly.

      Returns RenderTarget

    • Return an array listing the events for which the emitter has registered listeners.

      Returns (string | symbol)[]

    • Flushes the current pipeline if the pipeline is bound

      Returns void

    • Gets the aspect ratio of the WebGLRenderer dimensions.

      Returns number

    • Returns a compressed texture format GLenum name based on the given format.

      Parameters

      • baseFormat: string

        The Base Format to check.

      • Optionalformat: number

        An optional GLenum format to check within the base format.

      Returns string

    • Determines which compressed texture formats this browser and device supports.

      Called automatically as part of the WebGL Renderer init process. If you need to investigate which formats it supports, see the Phaser.Renderer.WebGL.WebGLRenderer#compression property instead.

      Returns WebGLTextureCompression

    • Loads a WebGL extension

      Parameters

      • extensionName: string

        The name of the extension to load.

      Returns object

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method will return the current FPS of the WebGL canvas.

      Returns number

    • Returns the largest texture size (either width or height) that can be created. Note that VRAM may not allow a texture of any given size, it just expresses hardware / driver support for a given size.

      Returns number

    • Is there an active stencil mask?

      Returns boolean

    • Checks if a WebGL extension is supported

      Parameters

      • extensionName: string

        Name of the WebGL extension

      Returns boolean

    • Creates a new WebGLRenderingContext and initializes all internal state.

      Parameters

      • config: object

        The configuration object for the renderer.

      Returns this

    • Return the number of listeners listening to a given event.

      Parameters

      • event: string | symbol

        The event name.

      Returns number

    • Return the listeners registered for a given event.

      Parameters

      • event: string | symbol

        The event name.

      Returns Function[]

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method adds a command with the name value in the list. This can be filtered in the search. All logs can be filtered searching for "LOG".

      Parameters

      • ...arguments: any[]

        The arguments to log to Spector.

      Returns string

    • Remove the listeners of a given event.

      Parameters

      • event: string | symbol

        The event name.

      • Optionalfn: Function

        Only remove the listeners that match this function.

      • Optionalcontext: any

        Only remove the listeners that have this context.

      • Optionalonce: boolean

        Only remove one-time listeners.

      Returns this

    • Add a listener for a given event.

      Parameters

      • event: string | symbol

        The event name.

      • fn: Function

        The listener function.

      • Optionalcontext: any

        The context to invoke the listener with. Default this.

      Returns this

    • Add a one-time listener for a given event.

      Parameters

      • event: string | symbol

        The event name.

      • fn: Function

        The listener function.

      • Optionalcontext: any

        The context to invoke the listener with. Default this.

      Returns this

    • The event handler that manages the resize event dispatched by the Scale Manager.

      Parameters

      • gameSize: Structs.Size

        The default Game Size object. This is the un-modified game dimensions.

      • baseSize: Structs.Size

        The base Size object. The game dimensions. The canvas width / height values match this.

      Returns void

    • Pops the previous framebuffer from the fbo stack and sets it.

      Parameters

      • OptionalupdateScissor: boolean

        If a framebuffer is given, set the gl scissor to match the frame buffer size? Or, if null given, pop the scissor from the stack. Default false.

      • OptionalsetViewport: boolean

        Should the WebGL viewport be set? Default true.

      Returns WebGLFramebufferWrapper

    • Pops the last scissor state and sets it.

      Returns void

    • The post-render step happens after all Cameras in all Scenes have been rendered.

      Returns void

    • Controls the post-render operations for the given camera.

      Renders the foreground camera effects like flash and fading, then resets the current scissor state.

      Parameters

      • camera: Camera

        The Camera to post-render.

      Returns void

    • Clears the current vertex buffer and updates pipelines.

      Returns void

    • Controls the pre-render operations for the given camera. Handles any clipping needed by the camera and renders the background color if a color is visible.

      Parameters

      • camera: Camera

        The Camera to pre-render.

      Returns void

    • Pushes a new framebuffer onto the FBO stack and makes it the currently bound framebuffer.

      If there was another framebuffer already bound it will force a pipeline flush.

      Call popFramebuffer to remove it again.

      Parameters

      • framebuffer: WebGLFramebufferWrapper

        The framebuffer that needs to be bound.

      • OptionalupdateScissor: boolean

        Set the gl scissor to match the frame buffer size? Or, if null given, pop the scissor from the stack. Default false.

      • OptionalsetViewport: boolean

        Should the WebGL viewport be set? Default true.

      • Optionaltexture: WebGLTextureWrapper

        Bind the given frame buffer texture? Default null.

      • Optionalclear: boolean

        Clear the frame buffer after binding? Default false.

      Returns this

    • Pushes a new scissor state. This is used to set nested scissor states.

      Parameters

      • x: number

        The x position of the scissor.

      • y: number

        The y position of the scissor.

      • width: number

        The width of the scissor.

      • height: number

        The height of the scissor.

      • OptionaldrawingBufferHeight: number

        Optional drawingBufferHeight override value.

      Returns number[]

    • Remove all listeners, or those of the specified event.

      Parameters

      • Optionalevent: string | symbol

        The event name.

      Returns this

    • Removes a custom blend mode from the renderer. Any Game Objects still using this blend mode will error, so be sure to clear them first.

      Parameters

      • index: number

        The index of the custom blend mode to be removed.

      Returns this

    • Remove the listeners of a given event.

      Parameters

      • event: string | symbol

        The event name.

      • Optionalfn: Function

        Only remove the listeners that match this function.

      • Optionalcontext: any

        Only remove the listeners that have this context.

      • Optionalonce: boolean

        Only remove one-time listeners.

      Returns this

    • The core render step for a Scene Camera.

      Iterates through the given array of Game Objects and renders them with the given Camera.

      This is called by the CameraManager.render method. The Camera Manager instance belongs to a Scene, and is invoked by the Scene Systems.render method.

      This method is not called if Camera.visible is false, or Camera.alpha is zero.

      Parameters

      • scene: Scene

        The Scene to render.

      • children: GameObject[]

        An array of filtered Game Objects that can be rendered by the given Camera.

      • camera: Camera

        The Scene Camera to render with.

      Returns void

    • Rebinds whatever program WebGLRenderer.currentProgram is set as, without changing anything, or flushing.

      Returns this

    • Resets the Projection Matrix back to this renderers width and height.

      This is called during endCapture, should the matrix have been changed as a result of the capture process.

      Returns this

    • Resets the gl scissor state to be whatever the current scissor is, if there is one, without modifying the scissor stack.

      Returns void

    • Resets the gl viewport to the current renderer dimensions.

      Returns void

    • Resizes the drawing buffer to match that required by the Scale Manager.

      Parameters

      • Optionalwidth: number

        The new width of the renderer.

      • Optionalheight: number

        The new height of the renderer.

      Returns this

    • Restores the previous framebuffer from the fbo stack and sets it.

      Parameters

      • OptionalupdateScissor: boolean

        If a framebuffer is given, set the gl scissor to match the frame buffer size? Or, if null given, pop the scissor from the stack. Default false.

      • OptionalsetViewport: boolean

        Should the WebGL viewport be set? Default true.

      Returns void

    • Restores the current stencil function to the one that was in place before clearStencilMask was called.

      Returns void

    • Sets the blend mode to the value given.

      If the current blend mode is different from the one given, the pipeline is flushed and the new blend mode is enabled.

      Parameters

      • blendModeId: number

        The blend mode to be set. Can be a BlendModes const or an integer value.

      • Optionalforce: boolean

        Force the blend mode to be set, regardless of the currently set blend mode. Default false.

      Returns boolean

    • Sets the handlers that are called when WebGL context is lost or restored by the browser.

      The default handlers are referenced via the properties WebGLRenderer.contextLostHandler and WebGLRenderer.contextRestoredHandler. By default, these map to the methods WebGLRenderer.dispatchContextLost and WebGLRenderer.dispatchContextRestored.

      You can override these handlers with your own via this method.

      If you do override them, make sure that your handlers invoke the methods WebGLRenderer.dispatchContextLost and WebGLRenderer.dispatchContextRestored in due course, otherwise the renderer will not be able to restore itself fully.

      Parameters

      • OptionalcontextLost: Function

        Custom handler for responding to the WebGL context lost event. Set as undefined to use the default handler.

      • OptionalcontextRestored: Function

        Custom handler for responding to the WebGL context restored event. Set as undefined to use the default handler.

      Returns void

    • Queries the GL context to get the supported extensions.

      Then sets them into the supportedExtensions, instancedArraysExtension and vaoExtension properties.

      Called automatically during the init method.

      Returns void

    • Sets the given framebuffer as the active and currently bound framebuffer.

      If there was another framebuffer already bound it will force a pipeline flush.

      Typically, you should call pushFramebuffer instead of this method.

      Parameters

      • framebuffer: WebGLFramebufferWrapper

        The framebuffer that needs to be bound, or null to bind back to the default framebuffer.

      • OptionalupdateScissor: boolean

        If a framebuffer is given, set the gl scissor to match the frame buffer size? Or, if null given, pop the scissor from the stack. Default false.

      • OptionalsetViewport: boolean

        Should the WebGL viewport be set? Default true.

      • Optionaltexture: WebGLTextureWrapper

        Bind the given frame buffer texture? Default null.

      • Optionalclear: boolean

        Clear the frame buffer after binding? Default false.

      Returns this

    • Binds a shader program.

      If there was a different program already bound it will force a pipeline flush first.

      If the same program given to this method is already set as the current program, no change will take place and this method will return false.

      Parameters

      Returns boolean

    • Sets the Projection Matrix of this renderer to the given dimensions.

      Parameters

      • width: number

        The new width of the Projection Matrix.

      • height: number

        The new height of the Projection Matrix.

      Returns this

    • Sets the current scissor state.

      Parameters

      • x: number

        The x position of the scissor.

      • y: number

        The y position of the scissor.

      • width: number

        The width of the scissor.

      • height: number

        The height of the scissor.

      • OptionaldrawingBufferHeight: number

        Optional drawingBufferHeight override value.

      Returns void

    • Sets the minification and magnification filter for a texture.

      Parameters

      • texture: WebGLTextureWrapper

        The texture to set the filter for.

      • filter: number

        The filter to set. 0 for linear filtering, 1 for nearest neighbor (blocky) filtering.

      Returns this

    • Removes all listeners.

      Returns void

    • Schedules a snapshot of the entire game viewport to be taken after the current frame is rendered.

      To capture a specific area see the snapshotArea method. To capture a specific pixel, see snapshotPixel.

      Only one snapshot can be active per frame. If you have already called snapshotPixel, for example, then calling this method will override it.

      Snapshots work by using the WebGL readPixels feature to grab every pixel from the frame buffer into an ArrayBufferView. It then parses this, copying the contents to a temporary Canvas and finally creating an Image object from it, which is the image returned to the callback provided. All in all, this is a computationally expensive and blocking process, which gets more expensive the larger the canvas size gets, so please be careful how you employ this in your game.

      Parameters

      • callback: SnapshotCallback

        The Function to invoke after the snapshot image is created.

      • Optionaltype: string

        The format of the image to create, usually image/png or image/jpeg. Default 'image/png'.

      • OptionalencoderOptions: number

        The image quality, between 0 and 1. Used for image formats with lossy compression, such as image/jpeg. Default 0.92.

      Returns this

    • Schedules a snapshot of the given area of the game viewport to be taken after the current frame is rendered.

      To capture the whole game viewport see the snapshot method. To capture a specific pixel, see snapshotPixel.

      Only one snapshot can be active per frame. If you have already called snapshotPixel, for example, then calling this method will override it.

      Snapshots work by using the WebGL readPixels feature to grab every pixel from the frame buffer into an ArrayBufferView. It then parses this, copying the contents to a temporary Canvas and finally creating an Image object from it, which is the image returned to the callback provided. All in all, this is a computationally expensive and blocking process, which gets more expensive the larger the canvas size gets, so please be careful how you employ this in your game.

      Parameters

      • x: number

        The x coordinate to grab from. This is based on the game viewport, not the world.

      • y: number

        The y coordinate to grab from. This is based on the game viewport, not the world.

      • width: number

        The width of the area to grab.

      • height: number

        The height of the area to grab.

      • callback: SnapshotCallback

        The Function to invoke after the snapshot image is created.

      • Optionaltype: string

        The format of the image to create, usually image/png or image/jpeg. Default 'image/png'.

      • OptionalencoderOptions: number

        The image quality, between 0 and 1. Used for image formats with lossy compression, such as image/jpeg. Default 0.92.

      Returns this

    • Takes a snapshot of the given area of the given frame buffer.

      Unlike the other snapshot methods, this one is processed immediately and doesn't wait for the next render.

      Snapshots work by using the WebGL readPixels feature to grab every pixel from the frame buffer into an ArrayBufferView. It then parses this, copying the contents to a temporary Canvas and finally creating an Image object from it, which is the image returned to the callback provided. All in all, this is a computationally expensive and blocking process, which gets more expensive the larger the canvas size gets, so please be careful how you employ this in your game.

      Parameters

      • framebuffer: WebGLFramebufferWrapper

        The framebuffer to grab from.

      • bufferWidth: number

        The width of the framebuffer.

      • bufferHeight: number

        The height of the framebuffer.

      • callback: SnapshotCallback

        The Function to invoke after the snapshot image is created.

      • OptionalgetPixel: boolean

        Grab a single pixel as a Color object, or an area as an Image object? Default false.

      • Optionalx: number

        The x coordinate to grab from. This is based on the framebuffer, not the world. Default 0.

      • Optionaly: number

        The y coordinate to grab from. This is based on the framebuffer, not the world. Default 0.

      • Optionalwidth: number

        The width of the area to grab. Default bufferWidth.

      • Optionalheight: number

        The height of the area to grab. Default bufferHeight.

      • Optionaltype: string

        The format of the image to create, usually image/png or image/jpeg. Default 'image/png'.

      • OptionalencoderOptions: number

        The image quality, between 0 and 1. Used for image formats with lossy compression, such as image/jpeg. Default 0.92.

      Returns this

    • Schedules a snapshot of the given pixel from the game viewport to be taken after the current frame is rendered.

      To capture the whole game viewport see the snapshot method. To capture a specific area, see snapshotArea.

      Only one snapshot can be active per frame. If you have already called snapshotArea, for example, then calling this method will override it.

      Unlike the other two snapshot methods, this one will return a Color object containing the color data for the requested pixel. It doesn't need to create an internal Canvas or Image object, so is a lot faster to execute, using less memory.

      Parameters

      • x: number

        The x coordinate of the pixel to get. This is based on the game viewport, not the world.

      • y: number

        The y coordinate of the pixel to get. This is based on the game viewport, not the world.

      • callback: SnapshotCallback

        The Function to invoke after the snapshot pixel data is extracted.

      Returns this

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method will start a capture on the Phaser canvas. The capture will stop once it reaches the number of commands specified as a parameter, or after 10 seconds. If quick capture is true, the thumbnails are not captured in order to speed up the capture.

      Parameters

      • OptionalcommandCount: number

        The number of commands to capture. If zero it will capture for 10 seconds. Default 0.

      • OptionalquickCapture: boolean

        If true thumbnails are not captured in order to speed up the capture. Default false.

      • OptionalfullCapture: boolean

        If true all details are captured. Default false.

      Returns void

    • This method is only available in the Debug Build of Phaser, or a build with the WEBGL_DEBUG flag set in the Webpack Config.

      Phaser v3.60 Debug has a build of Spector.js embedded in it, which is a WebGL inspector that allows for live inspection of your WebGL calls. Although it's easy to add the Spector extension to a desktop browsr, by embedding it in Phaser we can make it available in mobile browsers too, making it a powerful tool for debugging WebGL games on mobile devices where extensions are not permitted.

      See https://github.com/BabylonJS/Spector.js for more details.

      This method will stop the current capture and returns the result in JSON. It displays the result if the UI has been displayed. This returns undefined if the capture has not been completed or did not find any commands.

      Returns object

    • Checks if the given compressed texture format is supported, or not.

      Parameters

      • baseFormat: string

        The Base Format to check.

      • Optionalformat: number

        An optional GLenum format to check within the base format.

      Returns boolean

    • Updates the function bound to a given custom blend mode.

      Parameters

      • index: number

        The index of the custom blend mode.

      • func: Function

        The function to use for the blend mode.

      • equation: Function

        The equation to use for the blend mode.

      Returns this

    • Updates a WebGL Texture based on the given Canvas Element.

      Parameters

      • srcCanvas: HTMLCanvasElement

        The Canvas to update the WebGL Texture from.

      • dstTexture: WebGLTextureWrapper

        The destination WebGLTextureWrapper to update.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT (such as for Text objects?) Default false.

      Returns WebGLTextureWrapper

    • Updates a WebGL Texture based on the given HTML Video Element.

      Parameters

      • srcVideo: HTMLVideoElement

        The Video to update the WebGL Texture with.

      • dstTexture: WebGLTextureWrapper

        The destination WebGLTextureWrapper to update.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT? Default false.

      Returns WebGLTextureWrapper

    • Creates or updates a WebGL Texture based on the given HTML Video Element.

      If the dstTexture parameter is given, the WebGL Texture is updated, rather than created fresh.

      Parameters

      • srcVideo: HTMLVideoElement

        The Video to create the WebGL Texture from

      • OptionaldstTexture: WebGLTextureWrapper

        The destination WebGLTextureWrapper to set.

      • OptionalnoRepeat: boolean

        Should this canvas be allowed to set REPEAT? Default false.

      • OptionalflipY: boolean

        Should the WebGL Texture set UNPACK_MULTIPLY_FLIP_Y? Default false.

      Returns WebGLTextureWrapper