Options
All
  • Public
  • Public/Protected
  • All
Menu

The web GPU engine class provides support for WebGPU version of babylon.js.

since

5.0.0

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

  • Create a new instance of the gpu engine.

    Parameters

    • canvas: HTMLCanvasElement

      Defines the canvas to use to display the result

    • Optional options: WebGPUEngineOptions

      Defines the options passed to the engine to create the GPU context dependencies

    Returns WebGPUEngine

Properties

activeView: Nullable<EngineView>
adaptToDeviceRatio: boolean

If set to true zooming in and out in the browser will rescale the hardware-scaling correctly.

canvasTabIndex: number

Gets or sets the tab index to set to the rendering canvas. 1 is the minimum value to set to be able to capture keyboard events

countersLastFrame: { numBundleCreationNonCompatMode: number; numBundleReuseNonCompatMode: number; numEnableDrawWrapper: number; numEnableEffects: number }

Counters from last frame

Type declaration

  • numBundleCreationNonCompatMode: number
  • numBundleReuseNonCompatMode: number
  • numEnableDrawWrapper: number
  • numEnableEffects: number
cullBackFaces: Nullable<boolean>

Gets or sets a boolean indicating if back faces must be culled. If false, front faces are culled instead (true by default) If non null, this takes precedence over the value from the material

currentRenderPassId: number

Gets or sets the current render pass id

customAnimationFrameRequester: Nullable<ICustomAnimationFrameRequester>

If set, will be used to request the next animation frame for the render loop

disableContextMenu: boolean

Gets or sets a boolean to enable/disable the context menu (right-click) from appearing on the main canvas

disableManifestCheck: boolean

Gets or sets a boolean to enable/disable checking manifest if IndexedDB support is enabled (js will always consider the database is up to date)

disablePerformanceMonitorInBackground: boolean

Turn this value on if you want to pause FPS computation when in background

disableUniformBuffers: boolean

Gets or sets a boolean indicating that uniform buffers must be disabled even if they are supported

disableVertexArrayObjects: boolean

Gets or sets a boolean indicating that vertex array object must be disabled even if they are supported

enableOfflineSupport: boolean

Gets or sets a boolean to enable/disable IndexedDB support and avoid XHR on .manifest

enableUnpackFlipYCached: boolean

In case you are sharing the context with other applications, it might be interested to not cache the unpack flip y state to ensure a consistent value would be set.

forcePOTTextures: boolean

Gets or sets a boolean that indicates if textures must be forced to power of 2 size even if not required

hasOriginBottomLeft: boolean

Indicates that the origin of the texture/framebuffer space is the bottom left corner. If false, the origin is top left

hostInformation: HostInformation

Gets information about the current host

inputElement: Nullable<HTMLElement>

Gets or sets the HTML element to use for attaching events

isFullscreen: boolean

Gets a boolean indicating if the engine is currently rendering in fullscreen mode

isInVRExclusivePointerMode: boolean

Gets a boolean indicating that the engine is currently in VR exclusive mode for the pointers

see

https://docs.microsoft.com/en-us/microsoft-edge/webvr/essentials#mouse-input

isNDCHalfZRange: boolean

Indicates if the z range in NDC space is 0..1 (value: true) or -1..1 (value: false)

isPointerLock: boolean

Gets a boolean indicating if the pointer is currently locked

numMaxUncapturedErrors: number

Max number of uncaptured error messages to log

onAfterShaderCompilationObservable: Observable<Engine>

Observable raised when the engine has just compiled a shader

onAfterViewRenderObservable: Observable<EngineView>

Will be triggered after the view rendered

onBeforeShaderCompilationObservable: Observable<Engine>

Observable raised when the engine is about to compile a shader

onBeforeTextureInitObservable: Observable<Texture>

Observable event triggered before each texture is initialized

onBeforeViewRenderObservable: Observable<EngineView>

Will be triggered before the view renders

onBeginFrameObservable: Observable<Engine>

Observable raised when the engine begins a new frame

onCanvasBlurObservable: Observable<Engine>

Observable event triggered each time the canvas loses focus

onCanvasFocusObservable: Observable<Engine>

Observable event triggered each time the canvas gains focus

onCanvasPointerOutObservable: Observable<PointerEvent>

Observable event triggered each time the canvas receives pointerout event

onContextLostObservable: Observable<ThinEngine>

Observable signaled when a context lost event is raised

onContextRestoredObservable: Observable<ThinEngine>

Observable signaled when a context restored event is raised

onDisposeObservable: Observable<ThinEngine>

An event triggered when the engine is disposed.

onEndFrameObservable: Observable<Engine>

Observable raised when the engine ends the current frame

onNewSceneAddedObservable: Observable<Scene>

Event raised when a new scene is created

onResizeObservable: Observable<Engine>

Observable event triggered each time the rendering canvas is resized

onVRDisplayChangedObservable: Observable<IDisplayChangedEventArgs>

Observable signaled when VR display mode changes

onVRRequestPresentComplete: Observable<boolean>

Observable signaled when VR request present is complete

onVRRequestPresentStart: Observable<Engine>

Observable signaled when VR request present starts

postProcesses: PostProcess[]

Gets the list of created postprocesses

premultipliedAlpha: boolean

Defines whether the engine has been created with the premultipliedAlpha option on or not.

preventCacheWipeBetweenFrames: boolean

Gets or sets a boolean indicating that cache can be kept between frames

renderEvenInBackground: boolean

Gets or sets a boolean indicating if the engine must keep rendering even if the window is not in foreground

scenes: Scene[]

Gets the list of created scenes

startTime: number

The time (in milliseconds elapsed since the current page has been loaded) when the engine was initialized

textureFormatInUse: Nullable<string>

Gets the texture format in use

texturesSupported: string[]

Gets the list of texture formats supported

useExactSrgbConversions: boolean

Gets a boolean indicating if the exact sRGB conversions or faster approximations are used for converting to and from linear space.

validateShaderPrograms: boolean

Gets or sets a boolean indicating if the engine should validate programs after compilation

views: EngineView[]

Gets or sets the list of views

vrPresentationAttributes?: IVRPresentationAttributes

Gets or sets the presentation attributes used to configure VR rendering

ALPHA_ADD: 1 = 1

Defines that alpha blending to SRC ALPHA * SRC + DEST

ALPHA_COMBINE: 2 = 2

Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST

ALPHA_DISABLE: 0 = 0

Defines that alpha blending is disabled

ALPHA_INTERPOLATE: 9 = 9

Defines that alpha blending to CST * SRC + (1 - CST) * DEST

ALPHA_MAXIMIZED: 5 = 5

Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST

ALPHA_MULTIPLY: 4 = 4

Defines that alpha blending to SRC * DEST

ALPHA_ONEONE: 6 = 6

Defines that alpha blending to SRC + DEST

ALPHA_PREMULTIPLIED: 7 = 7

Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST

ALPHA_PREMULTIPLIED_PORTERDUFF: 8 = 8

Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA

ALPHA_SCREENMODE: 10 = 10

Defines that alpha blending to SRC + (1 - SRC) * DEST Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA

ALPHA_SUBTRACT: 3 = 3

Defines that alpha blending to DEST - SRC * DEST

ALWAYS: 519 = 519

Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn

AudioEngineFactory: ((hostElement: Nullable<HTMLElement>, audioContext: Nullable<AudioContext>, audioDestination: Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>) => IAudioEngine)

Type declaration

    • Default AudioEngine factory responsible of creating the Audio Engine. By default, this will create a BabylonJS Audio Engine if the workload has been embedded.

      Parameters

      • hostElement: Nullable<HTMLElement>
      • audioContext: Nullable<AudioContext>
      • audioDestination: Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>

      Returns IAudioEngine

CollisionsEpsilon: number

Gets or sets the epsilon value used by collision engine

DECR: 7683 = 7683

Passed to stencilOperation to specify that stencil value must be decremented

DECR_WRAP: 34056 = 34056

Passed to stencilOperation to specify that stencil value must be decremented with wrapping

DELAYLOADSTATE_LOADED: 1 = 1

Defines that the resource was successfully delay loaded

DELAYLOADSTATE_LOADING: 2 = 2

Defines that the resource is currently delay loading

DELAYLOADSTATE_NONE: 0 = 0

Defines that the resource is not delayed

DELAYLOADSTATE_NOTLOADED: 4 = 4

Defines that the resource is delayed and has not started loading

EQUAL: 514 = 514

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value

ExceptionList: ({ capture: string; captureConstraint: number; key: string; targets: string[] } | { capture: null; captureConstraint: null; key: string; targets: string[] })[]

Use this array to turn off some WebGL2 features on known buggy browsers version

GEQUAL: 518 = 518

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value

GREATER: 516 = 516

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value

INCR: 7682 = 7682

Passed to stencilOperation to specify that stencil value must be incremented

INCR_WRAP: 34055 = 34055

Passed to stencilOperation to specify that stencil value must be incremented with wrapping

INVERT: 5386 = 5386

Passed to stencilOperation to specify that stencil value must be inverted

KEEP: 7680 = 7680

Passed to stencilOperation to specify that stencil value must be kept

LEQUAL: 515 = 515

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value

LESS: 513 = 513

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value

NEVER: 512 = 512

Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn

NOTEQUAL: 517 = 517

Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value

OfflineProviderFactory: ((urlToScene: string, callbackManifestChecked: ((checked: boolean) => any), disableManifestCheck: boolean) => IOfflineProvider)

Type declaration

    • (urlToScene: string, callbackManifestChecked: ((checked: boolean) => any), disableManifestCheck: boolean): IOfflineProvider
    • Default offline support factory responsible of creating a tool used to store data locally. By default, this will create a Database object if the workload has been embedded.

      Parameters

      • urlToScene: string
      • callbackManifestChecked: ((checked: boolean) => any)
          • (checked: boolean): any
          • Parameters

            • checked: boolean

            Returns any

      • disableManifestCheck: boolean

      Returns IOfflineProvider

REPLACE: 7681 = 7681

Passed to stencilOperation to specify that stencil value must be replaced

SCALEMODE_CEILING: 3 = 3

Defines that texture rescaling will use a ceil to find the closer power of 2 size

SCALEMODE_FLOOR: 1 = 1

Defines that texture rescaling will use a floor to find the closer power of 2 size

SCALEMODE_NEAREST: 2 = 2

Defines that texture rescaling will look for the nearest power of 2 size

TEXTUREFORMAT_ALPHA: 0 = 0

ALPHA

TEXTUREFORMAT_LUMINANCE: 1 = 1

LUMINANCE

TEXTUREFORMAT_LUMINANCE_ALPHA: 2 = 2

LUMINANCE_ALPHA

TEXTUREFORMAT_R: 6 = 6

RED (2nd reference)

TEXTUREFORMAT_RED: 6 = 6

RED

TEXTUREFORMAT_RED_INTEGER: 8 = 8

RED_INTEGER

TEXTUREFORMAT_RG: 7 = 7

RG

TEXTUREFORMAT_RGB: 4 = 4

RGB

TEXTUREFORMAT_RGBA: 5 = 5

RGBA

TEXTUREFORMAT_RGBA_INTEGER: 11 = 11

RGBA_INTEGER

TEXTUREFORMAT_RGB_INTEGER: 10 = 10

RGB_INTEGER

TEXTUREFORMAT_RG_INTEGER: 9 = 9

RG_INTEGER

TEXTUREFORMAT_R_INTEGER: 8 = 8

RED_INTEGER (2nd reference)

TEXTURETYPE_BYTE: 3 = 3

BYTE

TEXTURETYPE_FLOAT: 1 = 1

FLOAT

TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV: 15 = 15

FLOAT_32_UNSIGNED_INT_24_8_REV

TEXTURETYPE_HALF_FLOAT: 2 = 2

HALF_FLOAT

TEXTURETYPE_INT: 6 = 6

INT

TEXTURETYPE_SHORT: 4 = 4

SHORT

TEXTURETYPE_UNSIGNED_BYTE: 0 = 0

UNSIGNED_BYTE

TEXTURETYPE_UNSIGNED_INT: 0 = 0

UNSIGNED_BYTE (2nd reference)

TEXTURETYPE_UNSIGNED_INTEGER: 7 = 7

UNSIGNED_INT

TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV: 13 = 13

UNSIGNED_INT_10F_11F_11F_REV

TEXTURETYPE_UNSIGNED_INT_24_8: 12 = 12

UNSIGNED_INT_24_8

TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV: 11 = 11

UNSIGNED_INT_2_10_10_10_REV

TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV: 14 = 14

UNSIGNED_INT_5_9_9_9_REV

TEXTURETYPE_UNSIGNED_SHORT: 5 = 5

UNSIGNED_SHORT

TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4: 8 = 8

UNSIGNED_SHORT_4_4_4_4

TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1: 9 = 9

UNSIGNED_SHORT_5_5_5_1

TEXTURETYPE_UNSIGNED_SHORT_5_6_5: 10 = 10

UNSIGNED_SHORT_5_6_5

TEXTURE_BILINEAR_SAMPLINGMODE: 2 = 2

Bilinear is mag = linear and min = linear and mip = nearest

TEXTURE_CLAMP_ADDRESSMODE: 0 = 0

Texture is not repeating outside of 0..1 UVs

TEXTURE_CUBIC_MODE: 3 = 3

Cubic coordinates mode

TEXTURE_EQUIRECTANGULAR_MODE: 7 = 7

Equirectangular coordinates mode

TEXTURE_EXPLICIT_MODE: 0 = 0

Explicit coordinates mode

TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE: 9 = 9

Equirectangular Fixed Mirrored coordinates mode

TEXTURE_FIXED_EQUIRECTANGULAR_MODE: 8 = 8

Equirectangular Fixed coordinates mode

TEXTURE_INVCUBIC_MODE: 6 = 6

Inverse Cubic coordinates mode

TEXTURE_LINEAR_LINEAR: 2 = 2

mag = linear and min = linear and mip = none

TEXTURE_LINEAR_LINEAR_MIPLINEAR: 3 = 3

Trilinear is mag = linear and min = linear and mip = linear

TEXTURE_LINEAR_LINEAR_MIPNEAREST: 11 = 11

Bilinear is mag = linear and min = linear and mip = nearest

TEXTURE_LINEAR_NEAREST: 12 = 12

mag = linear and min = nearest and mip = none

TEXTURE_LINEAR_NEAREST_MIPLINEAR: 10 = 10

mag = linear and min = nearest and mip = linear

TEXTURE_LINEAR_NEAREST_MIPNEAREST: 9 = 9

mag = linear and min = nearest and mip = nearest

TEXTURE_MIRROR_ADDRESSMODE: 2 = 2

Texture is repeating and mirrored

TEXTURE_NEAREST_LINEAR: 7 = 7

mag = nearest and min = linear and mip = none

TEXTURE_NEAREST_LINEAR_MIPLINEAR: 6 = 6

mag = nearest and min = linear and mip = linear

TEXTURE_NEAREST_LINEAR_MIPNEAREST: 5 = 5

mag = nearest and min = linear and mip = nearest

TEXTURE_NEAREST_NEAREST: 1 = 1

mag = nearest and min = nearest and mip = none

TEXTURE_NEAREST_NEAREST_MIPLINEAR: 8 = 8

nearest is mag = nearest and min = nearest and mip = linear

TEXTURE_NEAREST_NEAREST_MIPNEAREST: 4 = 4

mag = nearest and min = nearest and mip = nearest

TEXTURE_NEAREST_SAMPLINGMODE: 1 = 1

nearest is mag = nearest and min = nearest and mip = none

TEXTURE_PLANAR_MODE: 2 = 2

Planar coordinates mode

TEXTURE_PROJECTION_MODE: 4 = 4

Projection coordinates mode

TEXTURE_SKYBOX_MODE: 5 = 5

Skybox coordinates mode

TEXTURE_SPHERICAL_MODE: 1 = 1

Spherical coordinates mode

TEXTURE_TRILINEAR_SAMPLINGMODE: 3 = 3

Trilinear is mag = linear and min = linear and mip = linear

TEXTURE_WRAP_ADDRESSMODE: 1 = 1

Texture is repeating outside of 0..1 UVs

UseTWGSL: boolean

true to enable using TintWASM to convert Spir-V to WGSL

_RescalePostProcessFactory: Nullable<((engine: Engine) => PostProcess)>

Method called to create the default rescale post process on each engine.

audioEngine: Nullable<IAudioEngine>

Accessors

  • get activeRenderLoops(): (() => void)[]
  • Gets the list of current active render loop functions

    Returns (() => void)[]

    an array with the current render loop functions

  • get alphaState(): AlphaState
  • Gets the alpha state manager

    Returns AlphaState

  • get compatibilityMode(): boolean
  • set compatibilityMode(mode: boolean): void
  • Gets the current limits of the WebGPU device

    Returns GPUSupportedLimits

  • get currentViewport(): Nullable<IViewportLike>
  • Gets the current viewport

    Returns Nullable<IViewportLike>

  • get depthCullingState(): DepthCullingState
  • Gets the depth culling state manager

    Returns DepthCullingState

  • get description(): string
  • Returns a string describing the current engine

    Returns string

  • get disableCacheBindGroups(): boolean
  • set disableCacheBindGroups(disable: boolean): void
  • Sets this to true to disable the cache for the bind groups. You should do it only for testing purpose!

    Returns boolean

  • Sets this to true to disable the cache for the bind groups. You should do it only for testing purpose!

    Parameters

    • disable: boolean

    Returns void

  • get disableCacheRenderPipelines(): boolean
  • set disableCacheRenderPipelines(disable: boolean): void
  • Sets this to true to disable the cache for the render pipelines. You should do it only for testing purpose!

    Returns boolean

  • Sets this to true to disable the cache for the render pipelines. You should do it only for testing purpose!

    Parameters

    • disable: boolean

    Returns void

  • get disableCacheSamplers(): boolean
  • set disableCacheSamplers(disable: boolean): void
  • Sets this to true to disable the cache for the samplers. You should do it only for testing purpose!

    Returns boolean

  • Sets this to true to disable the cache for the samplers. You should do it only for testing purpose!

    Parameters

    • disable: boolean

    Returns void

  • get doNotHandleContextLost(): boolean
  • set doNotHandleContextLost(value: boolean): void
  • Gets the default empty cube texture

    Returns InternalTexture

  • Gets the default empty texture

    Returns InternalTexture

  • Gets the default empty 2D array texture

    Returns InternalTexture

  • Gets the default empty 3D texture

    Returns InternalTexture

  • Gets the currently enabled extensions on the WebGPU device

    Returns readonly GPUFeatureName[]

  • get frameId(): number
  • Gets the current frame id

    Returns number

  • set framebufferDimensionsObject(dimensions: Nullable<{ framebufferHeight: number; framebufferWidth: number }>): void
  • sets the object from which width and height will be taken from when getting render width and height Will fallback to the gl object

    Parameters

    • dimensions: Nullable<{ framebufferHeight: number; framebufferWidth: number }>

      the framebuffer width and height that will be used.

    Returns void

  • get isDisposed(): boolean
  • Returns boolean

  • get isStencilEnable(): boolean
  • Returns true if the stencil buffer has been enabled through the creation option of the context.

    Returns boolean

  • get isWebGPU(): boolean
  • Gets a boolean indicating if the engine runs in WebGPU or not.

    Returns boolean

  • set loadingUIBackgroundColor(color: string): void
  • set loadingUIText(text: string): void
  • get name(): string
  • set name(value: string): void
  • Gets or sets the name of the engine

    Returns string

  • Gets or sets the name of the engine

    Parameters

    • value: string

    Returns void

  • get needPOTTextures(): boolean
  • Gets a boolean indicating that only power of 2 textures are supported Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them

    Returns boolean

  • get shaderPlatformName(): string
  • Gets the shader platform name used by the effects.

    Returns string

  • get snapshotRendering(): boolean
  • set snapshotRendering(activate: boolean): void
  • Enables or disables the snapshot rendering mode Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine

    Returns boolean

  • Enables or disables the snapshot rendering mode Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine

    Parameters

    • activate: boolean

    Returns void

  • get snapshotRenderingMode(): number
  • set snapshotRenderingMode(mode: number): void
  • Gets or sets the snapshot rendering mode

    Returns number

  • Gets or sets the snapshot rendering mode

    Parameters

    • mode: number

    Returns void

  • get stencilState(): StencilState
  • Gets the stencil state manager

    Returns StencilState

  • get stencilStateComposer(): StencilStateComposer
  • Gets the stencil state composer

    Returns StencilStateComposer

  • Gets the supported extensions by the WebGPU adapter

    Returns readonly GPUFeatureName[]

  • Gets the supported limits by the WebGPU adapter

    Returns GPUSupportedLimits

  • get supportsUniformBuffers(): boolean
  • Gets a boolean indicating that the engine supports uniform buffers

    Returns boolean

  • get useReverseDepthBuffer(): boolean
  • set useReverseDepthBuffer(useReverse: boolean): void
  • Gets or sets a boolean indicating if depth buffer should be reverse, going from far to near. This can provide greater z depth for distant objects.

    Returns boolean

  • Gets or sets a boolean indicating if depth buffer should be reverse, going from far to near. This can provide greater z depth for distant objects.

    Parameters

    • useReverse: boolean

    Returns void

  • get version(): number
  • Returns the version of the engine

    Returns number

  • get webGLVersion(): number
  • Gets version of the current webGL context Keep it for back compat - use version instead

    Returns number

  • get HasMajorPerformanceCaveat(): boolean
  • Gets a boolean indicating if the engine can be instantiated on a performant device (ie. if a webGL context can be found and it does not use a slow implementation)

    Returns boolean

  • Gets the list of created engines

    Returns Engine[]

  • get IsSupported(): boolean
  • Not supported by WebGPU, you should call IsSupportedAsync instead!

    Returns boolean

  • get IsSupportedAsync(): Promise<boolean>
Gets a Promise indicating if the engine can be instantiated (ie. if a WebGPU context can be found)

Returns Promise<boolean>

  • Gets the latest created engine

    Returns Nullable<Engine>

  • Gets the latest created scene

    Returns Nullable<Scene>

  • get NpmPackage(): string
  • Returns the current npm package of the sdk

    Returns string

  • get ShadersRepository(): string
  • set ShadersRepository(value: string): void
  • Gets or sets the relative url used to load shaders if using the engine in non-minified mode

    Returns string

  • Gets or sets the relative url used to load shaders if using the engine in non-minified mode

    Parameters

    • value: string

    Returns void

  • get Version(): string
  • Returns the current version of the framework

    Returns string

Methods

  • _createImageBitmapFromSource(imageSource: string, options?: ImageBitmapOptions): Promise<ImageBitmap>
  • Engine abstraction for loading and creating an image bitmap from a given source string.

    Parameters

    • imageSource: string

      source to load the image from.

    • Optional options: ImageBitmapOptions

      An object that sets options for the image's extraction.

    Returns Promise<ImageBitmap>

    ImageBitmap.

  • _renderLoop(): void
  • Returns void

  • _updateRenderBuffer(renderBuffer: Nullable<WebGLRenderbuffer>, width: number, height: number, samples: number, internalFormat: number, msInternalFormat: number, attachment: number, unbindBuffer?: boolean): Nullable<WebGLRenderbuffer>
  • Parameters

    • renderBuffer: Nullable<WebGLRenderbuffer>
    • width: number
    • height: number
    • samples: number
    • internalFormat: number
    • msInternalFormat: number
    • attachment: number
    • Optional unbindBuffer: boolean

    Returns Nullable<WebGLRenderbuffer>

  • areAllComputeEffectsReady(): boolean
  • Gets a boolean indicating if all created compute effects are ready

    Returns boolean

    true if all effects are ready

  • areAllEffectsReady(): boolean
  • Gets a boolean indicating if all created effects are ready

    Returns boolean

    always true - No parallel shader compilation

  • attachContextLostEvent(callback: ((event: WebGLContextEvent) => void)): void
  • Attach a new callback raised when context lost event is fired

    Parameters

    • callback: ((event: WebGLContextEvent) => void)

      defines the callback to call

        • (event: WebGLContextEvent): void
        • Parameters

          • event: WebGLContextEvent

          Returns void

    Returns void

  • attachContextRestoredEvent(callback: ((event: WebGLContextEvent) => void)): void
  • Attach a new callback raised when context restored event is fired

    Parameters

    • callback: ((event: WebGLContextEvent) => void)

      defines the callback to call

        • (event: WebGLContextEvent): void
        • Parameters

          • event: WebGLContextEvent

          Returns void

    Returns void

  • beginFrame(): void
  • Begin a new frame

    Returns void

  • beginOcclusionQuery(algorithmType: number, query: OcclusionQuery): boolean
  • beginTransformFeedback(usePoints: boolean): void
  • Begins a transform feedback operation

    Parameters

    • usePoints: boolean

      defines if points or triangles must be used

    Returns void

  • Bind a webGL buffer to the webGL context

    Parameters

    Returns void

  • bindAttachments(attachments: number[]): void
  • Select a subsets of attachments to draw to.

    Parameters

    • attachments: number[]

      gl attachments

    Returns void

  • Bind a list of vertex buffers with the engine

    Parameters

    • vertexBuffers: {}

      defines the list of vertex buffers to bind

    • indexBuffer: Nullable<DataBuffer>

      defines the index buffer to bind

    • effect: Effect

      defines the effect associated with the vertex buffers

    • Optional overrideVertexBuffers: {}

      defines optional list of avertex buffers that overrides the entries in vertexBuffers

    Returns void

  • bindFramebuffer(texture: RenderTargetWrapper, faceIndex?: number, requiredWidth?: number, requiredHeight?: number, forceFullscreenViewport?: boolean, lodLevel?: number, layer?: number): void
  • Binds the frame buffer to the specified texture.

    Parameters

    • texture: RenderTargetWrapper

      The render target wrapper to render to

    • Optional faceIndex: number

      The face of the texture to render to in case of cube texture

    • Optional requiredWidth: number

      The width of the target to render to

    • Optional requiredHeight: number

      The height of the target to render to

    • Optional forceFullscreenViewport: boolean

      Forces the viewport to be the entire texture/screen if true

    • Optional lodLevel: number

      defines the lod level to bind to the frame buffer

    • Optional layer: number

      defines the 2d array index to bind to frame buffer to

    Returns void

  • Bind the content of a webGL buffer used with instantiation

    Parameters

    • instancesBuffer: DataBuffer

      defines the webGL buffer to bind

    • attributesInfo: InstancingAttributeInfo[]

      defines the offsets or attributes information used to determine where data must be stored in the buffer

    • Optional computeStride: boolean

      defines Whether to compute the strides from the info or use the default 0

    Returns void

  • bindTransformFeedback(value: Nullable<WebGLTransformFeedback>): void
  • Bind a webGL transform feedback object to the webgl context

    Parameters

    • value: Nullable<WebGLTransformFeedback>

      defines the webGL transform feedback object to bind

    Returns void

  • bindUniformBlock(pipelineContext: IPipelineContext, blockName: string, index: number): void
  • Bind a specific block at a given index in a specific shader program

    Parameters

    • pipelineContext: IPipelineContext

      defines the pipeline context to use

    • blockName: string

      defines the block name

    • index: number

      defines the index where to bind the block

    Returns void

  • Bind an uniform buffer to the current webGL context

    Parameters

    Returns void

  • bindUniformBufferBase(buffer: DataBuffer, location: number, name: string): void
  • Bind a buffer to the current webGL context at a given location

    Parameters

    • buffer: DataBuffer

      defines the buffer to bind

    • location: number

      defines the index where to bind the buffer

    • name: string

      Name of the uniform variable to bind

    Returns void

  • bindVertexArrayObject(vertexArrayObject: WebGLVertexArrayObject, indexBuffer: Nullable<DataBuffer>): void
  • buildTextureLayout(textureStatus: boolean[]): number[]
  • Creates a layout object to draw/clear on specific textures in a MRT

    Parameters

    • textureStatus: boolean[]

      textureStatus[i] indicates if the i-th is active

    Returns number[]

    A layout to be fed to the engine, calling bindAttachments.

  • cacheStencilState(): void
  • Caches the the state of the stencil buffer

    Returns void

  • captureGPUFrameTime(value: boolean): void
  • Enable or disable the GPU frame time capture

    Parameters

    • value: boolean

      True to enable, false to disable

    Returns void

  • clear(color: Nullable<IColor4Like>, backBuffer: boolean, depth: boolean, stencil?: boolean): void
  • Clear the current render buffer or the current render target (if any is set up)

    Parameters

    • color: Nullable<IColor4Like>

      defines the color to use

    • backBuffer: boolean

      defines if the back buffer must be cleared

    • depth: boolean

      defines if the depth buffer must be cleared

    • Optional stencil: boolean

      defines if the stencil buffer must be cleared

    Returns void

  • clearInternalTexturesCache(): void
  • Clears the list of texture accessible through engine. This can help preventing texture load conflict due to name collision.

    Returns void

  • computeDispatch(effect: ComputeEffect, context: IComputeContext, bindings: ComputeBindingList, x: number, y?: number, z?: number, bindingsMapping?: ComputeBindingMapping): void
  • Dispatches a compute shader

    Parameters

    • effect: ComputeEffect

      The compute effect

    • context: IComputeContext

      The compute context

    • bindings: ComputeBindingList

      The list of resources to bind to the shader

    • x: number

      The number of workgroups to execute on the X dimension

    • Optional y: number

      The number of workgroups to execute on the Y dimension

    • Optional z: number

      The number of workgroups to execute on the Z dimension

    • Optional bindingsMapping: ComputeBindingMapping

      list of bindings mapping (key is property name, value is binding location)

    Returns void

  • createCanvas(width: number, height: number): ICanvas
  • Create a canvas. This method is overridden by other engines

    Parameters

    • width: number

      width

    • height: number

      height

    Returns ICanvas

    ICanvas interface

  • createComputeContext(): undefined | IComputeContext
  • Creates a new compute context

    Returns undefined | IComputeContext

    the new context

  • createCubeTexture(rootUrl: string, scene: Nullable<Scene>, files: Nullable<string[]>, noMipmap: undefined | boolean, onLoad: Nullable<((data?: any) => void)>, onError: Nullable<((message?: string, exception?: any) => void)>, format: undefined | number, forcedExtension: any, createPolynomials: boolean, lodScale: number, lodOffset: number, fallback: Nullable<InternalTexture>, loaderOptions: any, useSRGBBuffer: boolean): InternalTexture
  • createCubeTexture(rootUrl: string, scene: Nullable<Scene>, files: Nullable<string[]>, noMipmap: boolean, onLoad: Nullable<((data?: any) => void)>, onError: Nullable<((message?: string, exception?: any) => void)>, format: undefined | number, forcedExtension: any): InternalTexture
  • createCubeTexture(rootUrl: string, scene: Nullable<Scene>, files: Nullable<string[]>, noMipmap: boolean, onLoad: Nullable<((data?: any) => void)>, onError: Nullable<((message?: string, exception?: any) => void)>, format: undefined | number, forcedExtension: any, createPolynomials: boolean, lodScale: number, lodOffset: number): InternalTexture
  • Creates a cube texture

    Parameters

    • rootUrl: string

      defines the url where the files to load is located

    • scene: Nullable<Scene>

      defines the current scene

    • files: Nullable<string[]>

      defines the list of files to load (1 per face)

    • noMipmap: undefined | boolean

      defines a boolean indicating that no mipmaps shall be generated (false by default)

    • onLoad: Nullable<((data?: any) => void)>

      defines an optional callback raised when the texture is loaded

    • onError: Nullable<((message?: string, exception?: any) => void)>

      defines an optional callback raised if there is an issue to load the texture

    • format: undefined | number

      defines the format of the data

    • forcedExtension: any

      defines the extension to use to pick the right loader

    • createPolynomials: boolean

      if a polynomial sphere should be created for the cube texture

    • lodScale: number

      defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness

    • lodOffset: number

      defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness

    • fallback: Nullable<InternalTexture>

      defines texture to use while falling back when (compressed) texture file not found.

    • loaderOptions: any

      options to be passed to the loader

    • useSRGBBuffer: boolean

      defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).

    Returns InternalTexture

    the cube texture as an InternalTexture

  • Creates a cube texture

    Parameters

    • rootUrl: string

      defines the url where the files to load is located

    • scene: Nullable<Scene>

      defines the current scene

    • files: Nullable<string[]>

      defines the list of files to load (1 per face)

    • noMipmap: boolean

      defines a boolean indicating that no mipmaps shall be generated (false by default)

    • onLoad: Nullable<((data?: any) => void)>

      defines an optional callback raised when the texture is loaded

    • onError: Nullable<((message?: string, exception?: any) => void)>

      defines an optional callback raised if there is an issue to load the texture

    • format: undefined | number

      defines the format of the data

    • forcedExtension: any

      defines the extension to use to pick the right loader

    Returns InternalTexture

    the cube texture as an InternalTexture

  • Creates a cube texture

    Parameters

    • rootUrl: string

      defines the url where the files to load is located

    • scene: Nullable<Scene>

      defines the current scene

    • files: Nullable<string[]>

      defines the list of files to load (1 per face)

    • noMipmap: boolean

      defines a boolean indicating that no mipmaps shall be generated (false by default)

    • onLoad: Nullable<((data?: any) => void)>

      defines an optional callback raised when the texture is loaded

    • onError: Nullable<((message?: string, exception?: any) => void)>

      defines an optional callback raised if there is an issue to load the texture

    • format: undefined | number

      defines the format of the data

    • forcedExtension: any

      defines the extension to use to pick the right loader

    • createPolynomials: boolean

      if a polynomial sphere should be created for the cube texture

    • lodScale: number

      defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness

    • lodOffset: number

      defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness

    Returns InternalTexture

    the cube texture as an InternalTexture

  • createDrawContext(): undefined | WebGPUDrawContext
  • Creates a new draw context

    Returns undefined | WebGPUDrawContext

    the new context

  • createDynamicTexture(width: number, height: number, generateMipMaps: boolean, samplingMode: number): InternalTexture
  • Creates a dynamic texture

    Parameters

    • width: number

      defines the width of the texture

    • height: number

      defines the height of the texture

    • generateMipMaps: boolean

      defines if the engine should generate the mip levels

    • samplingMode: number

      defines the required sampling mode (Texture.NEAREST_SAMPLINGMODE by default)

    Returns InternalTexture

    the dynamic texture inside an InternalTexture

  • Create a new effect (used to store vertex/fragment shaders)

    Parameters

    • baseName: any

      defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)

    • attributesNamesOrOptions: string[] | IEffectCreationOptions

      defines either a list of attribute names or an IEffectCreationOptions object

    • uniformsNamesOrEngine: string[] | Engine

      defines either a list of uniform names or the engine to use

    • Optional samplers: string[]

      defines an array of string used to represent textures

    • Optional defines: string

      defines the string containing the defines to use to compile the shaders

    • Optional fallbacks: EffectFallbacks

      defines the list of potential fallbacks to use if shader compilation fails

    • Optional onCompiled: Nullable<((effect: Effect) => void)>

      defines a function to call when the effect creation is successful

    • Optional onError: Nullable<((effect: Effect, errors: string) => void)>

      defines a function to call when the effect creation has failed

    • Optional indexParameters: any

      defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)

    • Optional shaderLanguage: ShaderLanguage

      the language the shader is written in (default: GLSL)

    Returns Effect

    the new Effect

  • createEffectForParticles(fragmentName: string, uniformsNames: string[], samplers: string[], defines: string, fallbacks?: EffectFallbacks, onCompiled?: ((effect: Effect) => void), onError?: ((effect: Effect, errors: string) => void), particleSystem?: IParticleSystem): Effect
  • Create an effect to use with particle systems. Please note that some parameters like animation sheets or not being billboard are not supported in this configuration, except if you pass the particle system for which you want to create a custom effect in the last parameter

    Parameters

    • fragmentName: string

      defines the base name of the effect (The name of file without .fragment.fx)

    • uniformsNames: string[]

      defines a list of attribute names

    • samplers: string[]

      defines an array of string used to represent textures

    • defines: string

      defines the string containing the defines to use to compile the shaders

    • Optional fallbacks: EffectFallbacks

      defines the list of potential fallbacks to use if shader compilation fails

    • Optional onCompiled: ((effect: Effect) => void)

      defines a function to call when the effect creation is successful

    • Optional onError: ((effect: Effect, errors: string) => void)

      defines a function to call when the effect creation has failed

        • (effect: Effect, errors: string): void
        • Parameters

          Returns void

    • Optional particleSystem: IParticleSystem

      the particle system you want to create the effect for

    Returns Effect

    the new Effect

  • Creates an external texture

    Parameters

    • video: HTMLVideoElement

      video element

    Returns Nullable<ExternalTexture>

    the external texture, or null if external textures are not supported by the engine

  • createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>
  • Engine abstraction for createImageBitmap

    Parameters

    • image: ImageBitmapSource

      source for image

    • Optional options: ImageBitmapOptions

      An object that sets options for the image's extraction.

    Returns Promise<ImageBitmap>

    ImageBitmap

  • createInstancesBuffer(capacity: number): DataBuffer
  • Creates a webGL buffer to use with instantiation

    Parameters

    • capacity: number

      defines the size of the buffer

    Returns DataBuffer

    the webGL buffer

  • createMaterialContext(): undefined | WebGPUMaterialContext
  • Creates a new material context

    Returns undefined | WebGPUMaterialContext

    the new context

  • createMultiviewRenderTargetTexture(width: number, height: number, colorTexture?: WebGLTexture, depthStencilTexture?: WebGLTexture): RenderTargetWrapper
  • Creates a new multiview render target

    Parameters

    • width: number

      defines the width of the texture

    • height: number

      defines the height of the texture

    • Optional colorTexture: WebGLTexture
    • Optional depthStencilTexture: WebGLTexture

    Returns RenderTargetWrapper

    the created multiview render target wrapper

  • Creates a new pipeline context

    Parameters

    • shaderProcessingContext: Nullable<ShaderProcessingContext>

      defines the shader processing context used during the processing if available

    Returns IPipelineContext

    the new pipeline

  • Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)

    Parameters

    • rootUrl: string

      defines the url where the file to load is located

    • scene: Nullable<Scene>

      defines the current scene

    • lodScale: number

      defines scale to apply to the mip map selection

    • lodOffset: number

      defines offset to apply to the mip map selection

    • Optional onLoad: Nullable<((internalTexture: Nullable<InternalTexture>) => void)>

      defines an optional callback raised when the texture is loaded

    • Optional onError: Nullable<((message?: string, exception?: any) => void)>

      defines an optional callback raised if there is an issue to load the texture

    • Optional format: number

      defines the format of the data

    • Optional forcedExtension: any

      defines the extension to use to pick the right loader

    • Optional createPolynomials: boolean

      defines wheter or not to create polynomails harmonics for the texture

    Returns InternalTexture

    the cube texture as an InternalTexture

  • createQuery(): OcclusionQuery
  • Create a new webGL query (you must be sure that queries are supported by checking getCaps() function)

    Returns OcclusionQuery

    the new query

  • createRawCubeTexture(data: Nullable<ArrayBufferView[]>, size: number, format: number, type: number, generateMipMaps: boolean, invertY: boolean, samplingMode: number, compression: Nullable<string>): InternalTexture
  • Creates a new raw cube texture

    Parameters

    • data: Nullable<ArrayBufferView[]>

      defines the array of data to use to create each face

    • size: number

      defines the size of the textures

    • format: number

      defines the format of the data

    • type: number

      defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_INT)

    • generateMipMaps: boolean

      defines if the engine should generate the mip levels

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • samplingMode: number

      defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)

    • compression: Nullable<string>

      defines the compression used (null by default)

    Returns InternalTexture

    the cube texture as an InternalTexture

  • createRawCubeTextureFromUrl(url: string, scene: Nullable<Scene>, size: number, format: number, type: number, noMipmap: boolean, callback: ((ArrayBuffer: ArrayBuffer) => Nullable<ArrayBufferView[]>), mipmapGenerator: Nullable<((faces: ArrayBufferView[]) => ArrayBufferView[][])>, onLoad: Nullable<(() => void)>, onError: Nullable<((message?: string, exception?: any) => void)>): InternalTexture
  • createRawCubeTextureFromUrl(url: string, scene: Nullable<Scene>, size: number, format: number, type: number, noMipmap: boolean, callback: ((ArrayBuffer: ArrayBuffer) => Nullable<ArrayBufferView[]>), mipmapGenerator: Nullable<((faces: ArrayBufferView[]) => ArrayBufferView[][])>, onLoad: Nullable<(() => void)>, onError: Nullable<((message?: string, exception?: any) => void)>, samplingMode: number, invertY: boolean): InternalTexture
  • Creates a new raw cube texture from a specified url

    Parameters

    • url: string

      defines the url where the data is located

    • scene: Nullable<Scene>

      defines the current scene

    • size: number

      defines the size of the textures

    • format: number

      defines the format of the data

    • type: number

      defines the type fo the data (like Engine.TEXTURETYPE_UNSIGNED_INT)

    • noMipmap: boolean

      defines if the engine should avoid generating the mip levels

    • callback: ((ArrayBuffer: ArrayBuffer) => Nullable<ArrayBufferView[]>)

      defines a callback used to extract texture data from loaded data

        • (ArrayBuffer: ArrayBuffer): Nullable<ArrayBufferView[]>
        • Parameters

          • ArrayBuffer: ArrayBuffer

          Returns Nullable<ArrayBufferView[]>

    • mipmapGenerator: Nullable<((faces: ArrayBufferView[]) => ArrayBufferView[][])>

      defines to provide an optional tool to generate mip levels

    • onLoad: Nullable<(() => void)>

      defines a callback called when texture is loaded

    • onError: Nullable<((message?: string, exception?: any) => void)>

      defines a callback called if there is an error

    Returns InternalTexture

    the cube texture as an InternalTexture

  • Creates a new raw cube texture from a specified url

    Parameters

    • url: string

      defines the url where the data is located

    • scene: Nullable<Scene>

      defines the current scene

    • size: number

      defines the size of the textures

    • format: number

      defines the format of the data

    • type: number

      defines the type fo the data (like Engine.TEXTURETYPE_UNSIGNED_INT)

    • noMipmap: boolean

      defines if the engine should avoid generating the mip levels

    • callback: ((ArrayBuffer: ArrayBuffer) => Nullable<ArrayBufferView[]>)

      defines a callback used to extract texture data from loaded data

        • (ArrayBuffer: ArrayBuffer): Nullable<ArrayBufferView[]>
        • Parameters

          • ArrayBuffer: ArrayBuffer

          Returns Nullable<ArrayBufferView[]>

    • mipmapGenerator: Nullable<((faces: ArrayBufferView[]) => ArrayBufferView[][])>

      defines to provide an optional tool to generate mip levels

    • onLoad: Nullable<(() => void)>

      defines a callback called when texture is loaded

    • onError: Nullable<((message?: string, exception?: any) => void)>

      defines a callback called if there is an error

    • samplingMode: number

      defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    Returns InternalTexture

    the cube texture as an InternalTexture

  • createRawTexture(data: Nullable<ArrayBufferView>, width: number, height: number, format: number, generateMipMaps: boolean, invertY: boolean, samplingMode: number, compression: Nullable<string>, type: number, creationFlags?: number, useSRGBBuffer?: boolean): InternalTexture
  • Creates a raw texture

    Parameters

    • data: Nullable<ArrayBufferView>

      defines the data to store in the texture

    • width: number

      defines the width of the texture

    • height: number

      defines the height of the texture

    • format: number

      defines the format of the data

    • generateMipMaps: boolean

      defines if the engine should generate the mip levels

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • samplingMode: number

      defines the required sampling mode (Texture.NEAREST_SAMPLINGMODE by default)

    • compression: Nullable<string>

      defines the compression used (null by default)

    • type: number

      defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    • Optional useSRGBBuffer: boolean

      defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).

    Returns InternalTexture

    the raw texture inside an InternalTexture

  • createRawTexture2DArray(data: Nullable<ArrayBufferView>, width: number, height: number, depth: number, format: number, generateMipMaps: boolean, invertY: boolean, samplingMode: number, compression: Nullable<string>, textureType: number, creationFlags?: number): InternalTexture
  • Creates a new raw 2D array texture

    Parameters

    • data: Nullable<ArrayBufferView>

      defines the data used to create the texture

    • width: number

      defines the width of the texture

    • height: number

      defines the height of the texture

    • depth: number

      defines the number of layers of the texture

    • format: number

      defines the format of the texture

    • generateMipMaps: boolean

      defines if the engine must generate mip levels

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • samplingMode: number

      defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)

    • compression: Nullable<string>

      defines the compressed used (can be null)

    • textureType: number

      defines the compressed used (can be null)

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    Returns InternalTexture

    a new raw 2D array texture (stored in an InternalTexture)

  • createRawTexture3D(data: Nullable<ArrayBufferView>, width: number, height: number, depth: number, format: number, generateMipMaps: boolean, invertY: boolean, samplingMode: number, compression: Nullable<string>, textureType: number, creationFlags?: number): InternalTexture
  • Creates a new raw 3D texture

    Parameters

    • data: Nullable<ArrayBufferView>

      defines the data used to create the texture

    • width: number

      defines the width of the texture

    • height: number

      defines the height of the texture

    • depth: number

      defines the depth of the texture

    • format: number

      defines the format of the texture

    • generateMipMaps: boolean

      defines if the engine must generate mip levels

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • samplingMode: number

      defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)

    • compression: Nullable<string>

      defines the compressed used (can be null)

    • textureType: number

      defines the compressed used (can be null)

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    Returns InternalTexture

    a new raw 3D texture (stored in an InternalTexture)

  • createRenderPassId(name?: string): number
  • Creates a render pass id

    Parameters

    • Optional name: string

      Name of the render pass (for debug purpose only)

    Returns number

    the id of the new render pass

  • Creates a storage buffer

    Parameters

    • data: number | DataArray

      the data for the storage buffer or the size of the buffer

    • creationFlags: number

      flags to use when creating the buffer (see Constants.BUFFER_CREATIONFLAG_XXX). The BUFFER_CREATIONFLAG_STORAGE flag will be automatically added

    Returns DataBuffer

    the new buffer

  • createTexture(url: Nullable<string>, noMipmap: boolean, invertY: boolean, scene: Nullable<ISceneLike>, samplingMode?: number, onLoad?: Nullable<((texture: InternalTexture) => void)>, onError?: Nullable<((message: string, exception: any) => void)>, buffer?: Nullable<string | ArrayBufferView | Blob | ArrayBuffer | HTMLImageElement | ImageBitmap>, fallback?: Nullable<InternalTexture>, format?: Nullable<number>, forcedExtension?: Nullable<string>, mimeType?: string, loaderOptions?: any, creationFlags?: number, useSRGBBuffer?: boolean): InternalTexture
  • Usually called from Texture.ts. Passed information to create a hardware texture

    Parameters

    • url: Nullable<string>

      defines a value which contains one of the following:

      • A conventional http URL, e.g. 'http://...' or 'file://...'
      • A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'
      • An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'
    • noMipmap: boolean

      defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file

    • invertY: boolean

      when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)

    • scene: Nullable<ISceneLike>

      needed for loading to the correct scene

    • Optional samplingMode: number

      mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)

    • Optional onLoad: Nullable<((texture: InternalTexture) => void)>

      optional callback to be called upon successful completion

    • Optional onError: Nullable<((message: string, exception: any) => void)>

      optional callback to be called upon failure

    • Optional buffer: Nullable<string | ArrayBufferView | Blob | ArrayBuffer | HTMLImageElement | ImageBitmap>

      a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob

    • Optional fallback: Nullable<InternalTexture>

      an internal argument in case the function must be called again, due to etc1 not having alpha capabilities

    • Optional format: Nullable<number>

      internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures

    • Optional forcedExtension: Nullable<string>

      defines the extension to use to pick the right loader

    • Optional mimeType: string

      defines an optional mime type

    • Optional loaderOptions: any

      options to be passed to the loader

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    • Optional useSRGBBuffer: boolean

      defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).

    Returns InternalTexture

    a InternalTexture for assignment back into BABYLON.Texture

  • createTransformFeedback(): WebGLTransformFeedback
  • Creates a webGL transform feedback object Please makes sure to check webGLVersion property to check if you are running webGL 2+

    Returns WebGLTransformFeedback

    the webGL transform feedback object

  • createVideoElement(constraints: MediaTrackConstraints): any
  • creates and returns a new video element

    Parameters

    • constraints: MediaTrackConstraints

      video constraints

    Returns any

    video element

  • deleteInstancesBuffer(buffer: WebGLBuffer): void
  • Delete a webGL buffer used with instantiation

    Parameters

    • buffer: WebGLBuffer

      defines the webGL buffer to delete

    Returns void

  • deleteQuery(query: OcclusionQuery): Engine
  • Delete and release a webGL query

    Parameters

    • query: OcclusionQuery

      defines the query to delete

    Returns Engine

    the current engine

  • deleteTransformFeedback(value: WebGLTransformFeedback): void
  • Delete a webGL transform feedback object

    Parameters

    • value: WebGLTransformFeedback

      defines the webGL transform feedback object to delete

    Returns void

  • disableAttributeByIndex(attributeLocation: number): void
  • Disable the attribute corresponding to the location in parameter

    Parameters

    • attributeLocation: number

      defines the attribute location of the attribute to disable

    Returns void

  • disableInstanceAttribute(attributeLocation: number): void
  • Disable the instance attribute corresponding to the location in parameter

    Parameters

    • attributeLocation: number

      defines the attribute location of the attribute to disable

    Returns void

  • disableInstanceAttributeByName(name: string): void
  • Disable the instance attribute corresponding to the name in parameter

    Parameters

    • name: string

      defines the name of the attribute to disable

    Returns void

  • disableScissor(): void
  • Disable previously set scissor test rectangle

    Returns void

  • disableVR(): void
  • displayLoadingUI(): void
  • dispose(): void
  • Dispose and release all associated resources

    Returns void

  • draw(useTriangles: boolean, indexStart: number, indexCount: number, instancesCount?: number): void
  • Send a draw order

    Parameters

    • useTriangles: boolean

      defines if triangles must be used to draw (else wireframe will be used)

    • indexStart: number

      defines the starting index

    • indexCount: number

      defines the number of index to draw

    • Optional instancesCount: number

      defines the number of instances to draw (if instantiation is enabled)

    Returns void

  • drawArraysType(fillMode: number, verticesStart: number, verticesCount: number, instancesCount?: number): void
  • Draw a list of unindexed primitives

    Parameters

    • fillMode: number

      defines the primitive to use

    • verticesStart: number

      defines the index of first vertex to draw

    • verticesCount: number

      defines the count of vertices to draw

    • Optional instancesCount: number

      defines the number of instances to draw (if instantiation is enabled)

    Returns void

  • drawElementsType(fillMode: number, indexStart: number, indexCount: number, instancesCount?: number): void
  • Draw a list of indexed primitives

    Parameters

    • fillMode: number

      defines the primitive to use

    • indexStart: number

      defines the starting index

    • indexCount: number

      defines the number of index to draw

    • Optional instancesCount: number

      defines the number of instances to draw (if instantiation is enabled)

    Returns void

  • drawPointClouds(verticesStart: number, verticesCount: number, instancesCount?: number): void
  • Draw a list of points

    Parameters

    • verticesStart: number

      defines the index of first vertex to draw

    • verticesCount: number

      defines the count of vertices to draw

    • Optional instancesCount: number

      defines the number of instances to draw (if instantiation is enabled)

    Returns void

  • drawUnIndexed(useTriangles: boolean, verticesStart: number, verticesCount: number, instancesCount?: number): void
  • Draw a list of unindexed primitives

    Parameters

    • useTriangles: boolean

      defines if triangles must be used to draw (else wireframe will be used)

    • verticesStart: number

      defines the index of first vertex to draw

    • verticesCount: number

      defines the count of vertices to draw

    • Optional instancesCount: number

      defines the number of instances to draw (if instantiation is enabled)

    Returns void

  • Activates an effect, making it the current one (ie. the one used for rendering)

    Parameters

    • effect: Nullable<Effect | DrawWrapper>

      defines the effect to activate

    Returns void

  • enableScissor(x: number, y: number, width: number, height: number): void
  • Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)

    Parameters

    • x: number
    • y: number
    • width: number
    • height: number

    Returns void

  • endFrame(): void
  • End the current frame

    Returns void

  • endOcclusionQuery(algorithmType: number): Engine
  • endTimeQuery(token: _TimeToken): number
  • Ends a time query

    Parameters

    • token: _TimeToken

      defines the token used to measure the time span

    Returns number

    the time spent (in ns)

  • endTransformFeedback(): void
  • Ends a transform feedback operation

    Returns void

  • enterFullscreen(requestPointerLock: boolean): void
  • Enters full screen mode

    Parameters

    • requestPointerLock: boolean

      defines if a pointer lock should be requested from the user

    Returns void

  • enterPointerlock(): void
  • Enters Pointerlock mode

    Returns void

  • exitFullscreen(): void
  • Exits full screen mode

    Returns void

  • exitPointerlock(): void
  • Exits Pointerlock mode

    Returns void

  • flushFramebuffer(reopenPass?: boolean): void
  • Force a WebGPU flush (ie. a flush of all waiting commands)

    Parameters

    • Optional reopenPass: boolean

      true to reopen at the end of the function the pass that was active when entering the function

    Returns void

  • Generates the mipmaps for a texture

    Parameters

    Returns void

  • getAlphaEquation(): number
  • Gets the current alpha equation.

    Returns number

    the current alpha equation

  • getAlphaMode(): number
  • Gets current aspect ratio

    Parameters

    • viewportOwner: IViewportOwnerLike

      defines the camera to use to get the aspect ratio

    • Optional useScreen: boolean

      defines if screen size must be used (or the current render target if any)

    Returns number

    a number defining the aspect ratio

  • getAttributes(pipelineContext: IPipelineContext, attributesNames: string[]): number[]
  • Gets the list of active attributes for a given WebGPU program

    Parameters

    • pipelineContext: IPipelineContext

      defines the pipeline context to use

    • attributesNames: string[]

      defines the list of attribute names to get

    Returns number[]

    an array of indices indicating the offset of each attribute

  • getAudioContext(): Nullable<AudioContext>
  • Gets the audio context specified in engine initialization options

    Returns Nullable<AudioContext>

    an Audio Context

  • getAudioDestination(): Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>
  • Gets the audio destination specified in engine initialization options

    Returns Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>

    an audio destination node

  • Gets the object containing all engine capabilities

    Returns EngineCapabilities

    the EngineCapabilities object

  • getClassName(): string
  • Gets a string identifying the name of the class

    Returns string

    "Engine" string

  • getColorWrite(): boolean
  • Gets a boolean indicating if color writing is enabled

    Returns boolean

    the current color writing state

  • getCurrentRenderPassName(): string
  • Gets the name of the current render pass

    Returns string

    name of the current render pass

  • getDeltaTime(): number
  • Gets the time spent between current and previous frame

    Returns number

    a number representing the delta time in ms

  • getDepthBuffer(): boolean
  • Gets a boolean indicating if depth testing is enabled

    Returns boolean

    the current state

  • Gets the current depth function

    Returns Nullable<number>

    a number defining the depth function

  • getDepthWrite(): boolean
  • Gets a boolean indicating if depth writing is enabled

    Returns boolean

    the current depth writing state

  • getError(): number
  • Get the current error code of the WebGPU context

    Returns number

    the error code

  • getFontOffset(font: string): { ascent: number; descent: number; height: number }
  • Get Font size information

    Parameters

    • font: string

      font name

    Returns { ascent: number; descent: number; height: number }

    an object containing ascent, height and descent

    • ascent: number
    • descent: number
    • height: number
  • getFps(): number
  • Gets the current framerate

    Returns number

    a number representing the framerate

  • getFragmentShaderSource(program: WebGLProgram): Nullable<string>
  • Gets the source code of the fragment shader associated with a specific webGL program

    Parameters

    • program: WebGLProgram

      defines the program to use

    Returns Nullable<string>

    a string containing the source code of the fragment shader associated with the program

  • Get the performance counter associated with the frame time computation

    Returns PerfCounter

    the perf counter

  • getGlInfo(): { renderer: string; vendor: string; version: string }
  • Gets an object containing information about the current webGL context

    Returns { renderer: string; vendor: string; version: string }

    an object containing the vendor, the renderer and the version of the current webGL context

    • renderer: string
    • vendor: string
    • version: string
  • getHardwareScalingLevel(): number
  • Gets the current hardware scaling level. By default the hardware scaling level is computed from the window device ratio. if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.

    Returns number

    a number indicating the current hardware scaling level

  • Gets host document

    Returns Nullable<Document>

    the host document object

  • Gets host window

    Returns Nullable<Window>

    the host window object

  • getInfo(): { renderer: string; vendor: string; version: string }
  • Gets an object containing information about the current engine context

    Returns { renderer: string; vendor: string; version: string }

    an object containing the vendor, the renderer and the version of the current engine context

    • renderer: string
    • vendor: string
    • version: string
  • getInputElement(): Nullable<HTMLElement>
  • Gets the HTML element used to attach event listeners

    Returns Nullable<HTMLElement>

    a HTML element

  • getInputElementClientRect(): Nullable<ClientRect>
  • Gets the client rect of the HTML element used for events

    Returns Nullable<ClientRect>

    a client rectangle

  • getLockstepMaxSteps(): number
  • getQueryResult(query: OcclusionQuery): number
  • Gets the value of a given query

    Parameters

    • query: OcclusionQuery

      defines the query to check

    Returns number

    the value of the query

  • getRenderHeight(useScreen?: boolean): number
  • Gets the current render height

    Parameters

    • Optional useScreen: boolean

      defines if screen size must be used (or the current render target if any)

    Returns number

    a number defining the current render height

  • getRenderPassNames(): string[]
  • Gets the names of the render passes that are currently created

    Returns string[]

    list of the render pass names

  • getRenderWidth(useScreen?: boolean): number
  • Gets the current render width

    Parameters

    • Optional useScreen: boolean

      defines if screen size must be used (or the current render target if any)

    Returns number

    a number defining the current render width

  • getRenderingCanvas(): Nullable<HTMLCanvasElement>
  • Gets the HTML canvas attached with the current webGL context

    Returns Nullable<HTMLCanvasElement>

    a HTML canvas

  • getRenderingCanvasClientRect(): Nullable<ClientRect>
  • Gets the client rect of the HTML canvas attached with the current webGL context

    Returns Nullable<ClientRect>

    a client rectangle

  • getScreenAspectRatio(): number
  • Gets current screen aspect ratio

    Returns number

    a number defining the aspect ratio

  • getStencilBuffer(): boolean
  • Gets a boolean indicating if stencil buffer is enabled

    Returns boolean

    the current stencil buffer state

  • getStencilFunction(): number
  • Gets the current stencil function

    Returns number

    a number defining the stencil function to use

  • getStencilFunctionMask(): number
  • Gets the current stencil mask

    Returns number

    a number defining the stencil mask to use

  • getStencilFunctionReference(): number
  • Gets the current stencil reference value

    Returns number

    a number defining the stencil reference value to use

  • getStencilMask(): number
  • Gets the current stencil mask

    Returns number

    a number defining the new stencil mask to use

  • getStencilOperationDepthFail(): number
  • Gets the current stencil operation when depth fails

    Returns number

    a number defining stencil operation to use when depth fails

  • getStencilOperationFail(): number
  • Gets the current stencil operation when stencil fails

    Returns number

    a number defining stencil operation to use when stencil fails

  • getStencilOperationPass(): number
  • Gets the current stencil operation when stencil passes

    Returns number

    a number defining stencil operation to use when stencil passes

  • getTimeStep(): number
  • Returns the time in ms between steps when using deterministic lock step.

    Returns number

    time step in (ms)

  • getVRDevice(): any
  • Gets the current webVR device

    Returns any

    the current webVR device (or null)

  • getVertexShaderSource(program: WebGLProgram): Nullable<string>
  • Gets the source code of the vertex shader associated with a specific webGL program

    Parameters

    • program: WebGLProgram

      defines the program to use

    Returns Nullable<string>

    a string containing the source code of the vertex shader associated with the program

  • getZOffset(): number
  • Gets the current value of the zOffset Factor

    Returns number

    the current zOffset Factor state

  • getZOffsetUnits(): number
  • Gets the current value of the zOffset Units

    Returns number

    the current zOffset Units state

  • hideLoadingUI(): void
  • Initializes the WebGPU context and dependencies.

    Parameters

    • Optional glslangOptions: GlslangOptions

      Defines the GLSLang compiler options if necessary

    • Optional twgslOptions: TwgslOptions

      Defines the Twgsl compiler options if necessary

    Returns Promise<void>

    a promise notifying the readiness of the engine.

  • Initializes a webVR display and starts listening to display change events The onVRDisplayChangedObservable will be notified upon these changes

    Returns Observable<IDisplayChangedEventArgs>

    The onVRDisplayChangedObservable

  • Initializes a webVR display and starts listening to display change events The onVRDisplayChangedObservable will be notified upon these changes

    Returns Promise<IDisplayChangedEventArgs>

    A promise containing a VRDisplay and if vr is supported

  • inlineShaderCode(code: string): string
  • Inline functions in shader code that are marked to be inlined

    Parameters

    • code: string

      code to inline

    Returns string

    inlined code

  • isDeterministicLockStep(): boolean
  • isQueryResultAvailable(query: OcclusionQuery): boolean
  • Check if a given query has resolved and got its value

    Parameters

    • query: OcclusionQuery

      defines the query to check

    Returns boolean

    true if the query got its value

  • isVRDevicePresent(): boolean
  • Gets a boolean indicating if a webVR device was detected

    Returns boolean

    true if a webVR device was detected

  • isVRPresenting(): boolean
  • Gets a boolean indicating that the system is in VR mode and is presenting

    Returns boolean

    true if VR mode is engaged

  • readFromStorageBuffer(storageBuffer: DataBuffer, offset?: number, size?: number, buffer?: ArrayBufferView): Promise<ArrayBufferView>
  • Read data from a storage buffer

    Parameters

    • storageBuffer: DataBuffer

      The storage buffer to read from

    • Optional offset: number

      The offset in the storage buffer to start reading from (default: 0)

    • Optional size: number

      The number of bytes to read from the storage buffer (default: capacity of the buffer)

    • Optional buffer: ArrayBufferView

      The buffer to write the data we have read from the storage buffer to (optional)

    Returns Promise<ArrayBufferView>

    If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer

  • readPixels(x: number, y: number, width: number, height: number, hasAlpha?: boolean, flushRenderer?: boolean): Promise<ArrayBufferView>
  • Reads pixels from the current frame buffer. Please note that this function can be slow

    Parameters

    • x: number

      defines the x coordinate of the rectangle where pixels must be read

    • y: number

      defines the y coordinate of the rectangle where pixels must be read

    • width: number

      defines the width of the rectangle where pixels must be read

    • height: number

      defines the height of the rectangle where pixels must be read

    • Optional hasAlpha: boolean

      defines whether the output should have alpha or not (defaults to true)

    • Optional flushRenderer: boolean

      true to flush the renderer from the pending commands before reading the pixels

    Returns Promise<ArrayBufferView>

    a ArrayBufferView promise (Uint8Array) containing RGBA colors

  • recordVertexArrayObject(vertexBuffers: {}, indexBuffer: Nullable<DataBuffer>, effect: Effect, overrideVertexBuffers?: {}): WebGLVertexArrayObject
  • registerView(canvas: HTMLCanvasElement, camera?: Camera, clearBeforeCopy?: boolean): EngineView
  • Register a new child canvas

    Parameters

    • canvas: HTMLCanvasElement

      defines the canvas to register

    • Optional camera: Camera

      defines an optional camera to use with this canvas (it will overwrite the scene.camera for this view)

    • Optional clearBeforeCopy: boolean

      Indicates if the destination view canvas should be cleared before copying the parent canvas. Can help if the scene clear color has alpha < 1

    Returns EngineView

    the associated view

  • releaseComputeEffects(): void
  • Forces the engine to release all cached compute effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled

    Returns void

  • releaseEffects(): void
  • Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled

    Returns void

  • releaseRenderPassId(id: number): void
  • Releases a render pass id

    Parameters

    • id: number

      id of the render pass to release

    Returns void

  • releaseVertexArrayObject(vao: WebGLVertexArrayObject): void
  • Release and free the memory of a vertex array object

    Parameters

    • vao: WebGLVertexArrayObject

      defines the vertex array object to delete

    Returns void

  • resetTextureCache(): void
  • Reset the texture cache to empty state

    Returns void

  • resize(forceSetSize?: boolean): void
  • Resize the view according to the canvas' size

    Parameters

    • Optional forceSetSize: boolean

      true to force setting the sizes of the underlying canvas

    Returns void

  • resizeImageBitmap(image: HTMLImageElement | ImageBitmap, bufferWidth: number, bufferHeight: number): Uint8Array
  • Resize an image and returns the image data as an uint8array

    Parameters

    • image: HTMLImageElement | ImageBitmap

      image to resize

    • bufferWidth: number

      destination buffer width

    • bufferHeight: number

      destination buffer height

    Returns Uint8Array

    an uint8array containing RGBA values of bufferWidth * bufferHeight size

  • restoreDefaultFramebuffer(): void
  • Unbind the current render target and bind the default framebuffer

    Returns void

  • restoreSingleAttachment(): void
  • Restores the webgl state to only draw on the main color attachment when the frame buffer associated is the canvas frame buffer

    Returns void

  • restoreSingleAttachmentForRenderTarget(): void
  • Restores the webgl state to only draw on the main color attachment when the frame buffer associated is not the canvas frame buffer

    Returns void

  • restoreStencilState(): void
  • Restores the state of the stencil buffer

    Returns void

  • runRenderLoop(renderFunction: (() => void)): void
  • Register and execute a render loop. The engine can have more than one render function

    Parameters

    • renderFunction: (() => void)

      defines the function to continuously execute

        • (): void
        • Returns void

    Returns void

  • scissorClear(x: number, y: number, width: number, height: number, clearColor: IColor4Like): void
  • Executes a scissor clear (ie. a clear on a specific portion of the screen)

    Parameters

    • x: number

      defines the x-coordinate of the bottom left corner of the clear rectangle

    • y: number

      defines the y-coordinate of the corner of the clear rectangle

    • width: number

      defines the width of the clear rectangle

    • height: number

      defines the height of the clear rectangle

    • clearColor: IColor4Like

      defines the clear color

    Returns void

  • setAlphaConstants(r: number, g: number, b: number, a: number): void
  • Sets alpha constants used by some alpha blending modes

    Parameters

    • r: number

      defines the red component

    • g: number

      defines the green component

    • b: number

      defines the blue component

    • a: number

      defines the alpha component

    Returns void

  • setAlphaEquation(equation: number): void
  • Sets the current alpha equation

    Parameters

    • equation: number

      defines the equation to use (one of the Engine.ALPHA_EQUATION_XXX)

    Returns void

  • setAlphaMode(mode: number, noDepthWriteChange?: boolean): void
  • setColorWrite(enable: boolean): void
  • Enable or disable color writing

    Parameters

    • enable: boolean

      defines the state to set

    Returns void

  • setCompressedTextureExclusions(skippedFiles: string[]): void
  • Set the compressed texture extensions or file names to skip.

    Parameters

    • skippedFiles: string[]

      defines the list of those texture files you want to skip Example: [".dds", ".env", "myfile.png"]

    Returns void

  • setDepthBuffer(enable: boolean): void
  • Enable or disable depth buffering

    Parameters

    • enable: boolean

      defines the state to set

    Returns void

  • setDepthFunction(depthFunc: number): void
  • Sets the current depth function

    Parameters

    • depthFunc: number

      defines the function to use

    Returns void

  • setDepthFunctionToGreater(): void
  • setDepthFunctionToGreaterOrEqual(): void
  • setDepthFunctionToLess(): void
  • Sets the current depth function to LESS

    Returns void

  • setDepthFunctionToLessOrEqual(): void
  • Sets a depth stencil texture from a render target to the according uniform.

    Parameters

    • channel: number

      The texture channel

    • uniform: Nullable<WebGLUniformLocation>

      The uniform to set

    • texture: Nullable<RenderTargetTexture>

      The render target texture containing the depth stencil texture to apply

    • Optional name: string

      The texture name

    Returns void

  • setDepthWrite(enable: boolean): void
  • Enable or disable depth writing

    Parameters

    • enable: boolean

      defines the state to set

    Returns void

  • setDirectViewport(x: number, y: number, width: number, height: number): Nullable<IViewportLike>
  • Directly set the WebGL Viewport

    Parameters

    • x: number

      defines the x coordinate of the viewport (in screen space)

    • y: number

      defines the y coordinate of the viewport (in screen space)

    • width: number

      defines the width of the viewport (in screen space)

    • height: number

      defines the height of the viewport (in screen space)

    Returns Nullable<IViewportLike>

    the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state

  • setDitheringState(): void
  • Sets a boolean indicating if the dithering state is enabled or disabled

    Returns void

  • Sets an internal texture to the according uniform.

    Parameters

    Returns void

  • setHardwareScalingLevel(level: number): void
  • Defines the hardware scaling level. By default the hardware scaling level is computed from the window device ratio. if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.

    Parameters

    • level: number

      defines the level to use

    Returns void

  • setInt(uniform: Nullable<WebGLUniformLocation>, value: number): boolean
  • Set the value of an uniform to a number (int)

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • value: number

      defines the int number to store

    Returns boolean

    true if the value was set

  • setInt2(uniform: Nullable<WebGLUniformLocation>, x: number, y: number): boolean
  • Set the value of an uniform to a int2

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    Returns boolean

    true if the value was set

  • setInt3(uniform: Nullable<WebGLUniformLocation>, x: number, y: number, z: number): boolean
  • Set the value of an uniform to a int3

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    • z: number

      defines the 3rd component of the value

    Returns boolean

    true if the value was set

  • setInt4(uniform: Nullable<WebGLUniformLocation>, x: number, y: number, z: number, w: number): boolean
  • Set the value of an uniform to a int4

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    • z: number

      defines the 3rd component of the value

    • w: number

      defines the 4th component of the value

    Returns boolean

    true if the value was set

  • setRasterizerState(): void
  • Sets a boolean indicating if the rasterizer state is enabled or disabled

    Returns void

  • setSize(width: number, height: number, forceSetSize?: boolean): boolean
  • Force a specific size of the canvas

    Parameters

    • width: number

      defines the new canvas' width

    • height: number

      defines the new canvas' height

    • Optional forceSetSize: boolean

      true to force setting the sizes of the underlying canvas

    Returns boolean

    true if the size was changed

  • setState(culling: boolean, zOffset?: number, force?: boolean, reverseSide?: boolean, cullBackFaces?: boolean, stencil?: IStencilState, zOffsetUnits?: number): void
  • Set various states to the webGL context

    Parameters

    • culling: boolean

      defines culling state: true to enable culling, false to disable it

    • Optional zOffset: number

      defines the value to apply to zOffset (0 by default)

    • Optional force: boolean

      defines if states must be applied even if cache is up to date

    • Optional reverseSide: boolean

      defines if culling must be reversed (CCW if false, CW if true)

    • Optional cullBackFaces: boolean

      true to cull back faces, false to cull front faces (if culling is enabled)

    • Optional stencil: IStencilState

      stencil states to set

    • Optional zOffsetUnits: number

      defines the value to apply to zOffsetUnits (0 by default)

    Returns void

  • setStencilBuffer(enable: boolean): void
  • Enable or disable the stencil buffer

    Parameters

    • enable: boolean

      defines if the stencil buffer must be enabled or disabled

    Returns void

  • setStencilFunction(stencilFunc: number): void
  • Sets the current stencil function

    Parameters

    • stencilFunc: number

      defines the new stencil function to use

    Returns void

  • setStencilFunctionMask(mask: number): void
  • Sets the current stencil mask

    Parameters

    • mask: number

      defines the new stencil mask to use

    Returns void

  • setStencilFunctionReference(reference: number): void
  • Sets the current stencil reference

    Parameters

    • reference: number

      defines the new stencil reference to use

    Returns void

  • setStencilMask(mask: number): void
  • Sets the current stencil mask

    Parameters

    • mask: number

      defines the new stencil mask to use

    Returns void

  • setStencilOperationDepthFail(operation: number): void
  • Sets the stencil operation to use when depth fails

    Parameters

    • operation: number

      defines the stencil operation to use when depth fails

    Returns void

  • setStencilOperationFail(operation: number): void
  • Sets the stencil operation to use when stencil fails

    Parameters

    • operation: number

      defines the stencil operation to use when stencil fails

    Returns void

  • setStencilOperationPass(operation: number): void
  • Sets the stencil operation to use when stencil passes

    Parameters

    • operation: number

      defines the stencil operation to use when stencil passes

    Returns void

  • Sets a storage buffer in the shader

    Parameters

    • name: string

      Defines the name of the storage buffer as defined in the shader

    • buffer: Nullable<StorageBuffer>

      Defines the value to give to the uniform

    Returns void

  • Sets a texture to the according uniform.

    Parameters

    • channel: number

      The texture channel

    • unused: Nullable<WebGLUniformLocation>

      unused parameter

    • texture: Nullable<BaseTexture>

      The texture to apply

    • name: string

      The name of the uniform in the effect

    Returns void

  • setTextureArray(channel: number, unused: Nullable<WebGLUniformLocation>, textures: BaseTexture[], name: string): void
  • Sets an array of texture to the WebGPU context

    Parameters

    • channel: number

      defines the channel where the texture array must be set

    • unused: Nullable<WebGLUniformLocation>

      unused parameter

    • textures: BaseTexture[]

      defines the array of textures to bind

    • name: string

      name of the channel

    Returns void

  • setTextureFormatToUse(formatsAvailable: string[]): Nullable<string>
  • Set the compressed texture format to use, based on the formats you have, and the formats supported by the hardware / browser.

    Khronos Texture Container (.ktx) files are used to support this. This format has the advantage of being specifically designed for OpenGL. Header elements directly correspond to API arguments needed to compressed textures. This puts the burden on the container generator to house the arcane code for determining these for current & future formats.

    for description see https://www.khronos.org/opengles/sdk/tools/KTX/ for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/

    Note: The result of this call is not taken into account when a texture is base64.

    Parameters

    • formatsAvailable: string[]

      defines the list of those format families you have created on your server. Syntax: '-' + format family + '.ktx'. (Case and order do not matter.)

      Current families are astc, dxt, pvrtc, etc2, & etc1.

    Returns Nullable<string>

    The extension selected.

  • setTextureFromPostProcess(channel: number, postProcess: Nullable<PostProcess>, name: string): void
  • Sets a texture to the webGL context from a postprocess

    Parameters

    • channel: number

      defines the channel to use

    • postProcess: Nullable<PostProcess>

      defines the source postprocess

    • name: string

      name of the channel

    Returns void

  • setTextureFromPostProcessOutput(channel: number, postProcess: Nullable<PostProcess>, name: string): void
  • Binds the output of the passed in post process to the texture channel specified

    Parameters

    • channel: number

      The channel the texture should be bound to

    • postProcess: Nullable<PostProcess>

      The post process which's output should be bound

    • name: string

      name of the channel

    Returns void

  • Sets a texture sampler to the according uniform.

    Parameters

    Returns void

  • setTranformFeedbackVaryings(program: WebGLProgram, value: string[]): void
  • Specify the varyings to use with transform feedback

    Parameters

    • program: WebGLProgram

      defines the associated webGL program

    • value: string[]

      defines the list of strings representing the varying names

    Returns void

  • setUInt(uniform: Nullable<WebGLUniformLocation>, value: number): boolean
  • Set the value of an uniform to a number (unsigned int)

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • value: number

      defines the unsigned int number to store

    Returns boolean

    true if the value was set

  • setUInt2(uniform: Nullable<WebGLUniformLocation>, x: number, y: number): boolean
  • Set the value of an uniform to a unsigned int2

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    Returns boolean

    true if the value was set

  • setUInt3(uniform: Nullable<WebGLUniformLocation>, x: number, y: number, z: number): boolean
  • Set the value of an uniform to a unsigned int3

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    • z: number

      defines the 3rd component of the value

    Returns boolean

    true if the value was set

  • setUInt4(uniform: Nullable<WebGLUniformLocation>, x: number, y: number, z: number, w: number): boolean
  • Set the value of an uniform to a unsigned int4

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • x: number

      defines the 1st component of the value

    • y: number

      defines the 2nd component of the value

    • z: number

      defines the 3rd component of the value

    • w: number

      defines the 4th component of the value

    Returns boolean

    true if the value was set

  • setUIntArray(uniform: Nullable<WebGLUniformLocation>, array: Uint32Array): boolean
  • Set the value of an uniform to an array of unsigned int32

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • array: Uint32Array

      defines the array of unsigned int32 to store

    Returns boolean

    true if the value was set

  • setUIntArray2(uniform: Nullable<WebGLUniformLocation>, array: Uint32Array): boolean
  • Set the value of an uniform to an array of unsigned int32 (stored as vec2)

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • array: Uint32Array

      defines the array of unsigned int32 to store

    Returns boolean

    true if the value was set

  • setUIntArray3(uniform: Nullable<WebGLUniformLocation>, array: Uint32Array): boolean
  • Set the value of an uniform to an array of unsigned int32 (stored as vec3)

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • array: Uint32Array

      defines the array of unsigned int32 to store

    Returns boolean

    true if the value was set

  • setUIntArray4(uniform: Nullable<WebGLUniformLocation>, array: Uint32Array): boolean
  • Set the value of an uniform to an array of unsigned int32 (stored as vec4)

    Parameters

    • uniform: Nullable<WebGLUniformLocation>

      defines the webGL uniform location where to store the value

    • array: Uint32Array

      defines the array of unsigned int32 to store

    Returns boolean

    true if the value was set

  • setViewport(viewport: IViewportLike, requiredWidth?: number, requiredHeight?: number): void
  • Set the WebGL's viewport

    Parameters

    • viewport: IViewportLike

      defines the viewport element to be used

    • Optional requiredWidth: number

      defines the width required for rendering. If not provided the rendering canvas' width is used

    • Optional requiredHeight: number

      defines the height required for rendering. If not provided the rendering canvas' height is used

    Returns void

  • setZOffset(value: number): void
  • Set the z offset Factor to apply to current rendering

    Parameters

    • value: number

      defines the offset to apply

    Returns void

  • setZOffsetUnits(value: number): void
  • Set the z offset Units to apply to current rendering

    Parameters

    • value: number

      defines the offset to apply

    Returns void

  • snapshotRenderingReset(): void
  • Creates a new snapshot at the next frame using the current snapshotRenderingMode

    Returns void

  • Starts a time query (used to measure time spent by the GPU on a specific frame) Please note that only one query can be issued at a time

    Returns Nullable<_TimeToken>

    a time token used to track the time span

  • stopRenderLoop(renderFunction?: (() => void)): void
  • stop executing a render loop function and remove it from the execution array

    Parameters

    • Optional renderFunction: (() => void)

      defines the function to be removed. If not provided all functions will be removed.

        • (): void
        • Returns void

    Returns void

  • switchFullscreen(requestPointerLock: boolean): void
  • Toggle full screen mode

    Parameters

    • requestPointerLock: boolean

      defines if a pointer lock should be requested from the user

    Returns void

  • unBindFramebuffer(texture: RenderTargetWrapper, disableGenerateMipMaps?: boolean, onBeforeUnbind?: (() => void)): void
  • Unbind the current render target texture from the WebGPU context

    Parameters

    • texture: RenderTargetWrapper

      defines the render target wrapper to unbind

    • Optional disableGenerateMipMaps: boolean

      defines a boolean indicating that mipmaps must not be generated

    • Optional onBeforeUnbind: (() => void)

      defines a function which will be called before the effective unbind

        • (): void
        • Returns void

    Returns void

  • unBindMultiColorAttachmentFramebuffer(rtWrapper: RenderTargetWrapper, disableGenerateMipMaps: boolean, onBeforeUnbind?: (() => void)): void
  • Unbind a list of render target textures from the webGL context This is used only when drawBuffer extension or webGL2 are active

    Parameters

    • rtWrapper: RenderTargetWrapper

      defines the render target wrapper to unbind

    • disableGenerateMipMaps: boolean

      defines a boolean indicating that mipmaps must not be generated

    • Optional onBeforeUnbind: (() => void)

      defines a function which will be called before the effective unbind

        • (): void
        • Returns void

    Returns void

  • unRegisterView(canvas: HTMLCanvasElement): Engine
  • Remove a registered child canvas

    Parameters

    • canvas: HTMLCanvasElement

      defines the canvas to remove

    Returns Engine

    the current engine

  • unbindAllAttributes(): void
  • Unbind all vertex attributes from the webGL context

    Returns void

  • unbindAllTextures(): void
  • Unbind all textures from the webGL context

    Returns void

  • unbindInstanceAttributes(): void
  • updateArrayBuffer(data: Float32Array): void
  • update the bound buffer with the given data

    Parameters

    • data: Float32Array

      defines the data to update

    Returns void

  • Update a dynamic index buffer

    Parameters

    • indexBuffer: DataBuffer

      defines the target index buffer

    • indices: IndicesArray

      defines the data to update

    • Optional offset: number

      defines the offset in the target index buffer where update should start

    Returns void

  • updateDynamicTexture(texture: Nullable<InternalTexture>, source: HTMLCanvasElement | HTMLImageElement | ImageBitmap | OffscreenCanvas | HTMLVideoElement | ImageData | ICanvas, invertY?: boolean, premulAlpha?: boolean, format?: number, forceBindTexture?: boolean, allowGPUOptimization?: boolean): void
  • Update the content of a dynamic texture

    Parameters

    • texture: Nullable<InternalTexture>

      defines the texture to update

    • source: HTMLCanvasElement | HTMLImageElement | ImageBitmap | OffscreenCanvas | HTMLVideoElement | ImageData | ICanvas

      defines the source containing the data

    • Optional invertY: boolean

      defines if data must be stored with Y axis inverted

    • Optional premulAlpha: boolean

      defines if alpha is stored as premultiplied

    • Optional format: number

      defines the format of the data

    • Optional forceBindTexture: boolean

      if the texture should be forced to be bound eg. after a graphics context loss (Default: false)

    • Optional allowGPUOptimization: boolean

      true to allow some specific GPU optimizations (subject to engine feature "allowGPUOptimizationsForGUI" being true)

    Returns void

  • updateDynamicVertexBuffer(vertexBuffer: DataBuffer, data: DataArray, byteOffset?: number, byteLength?: number): void
  • Updates a dynamic vertex buffer.

    Parameters

    • vertexBuffer: DataBuffer

      the vertex buffer to update

    • data: DataArray

      the data used to update the vertex buffer

    • Optional byteOffset: number

      the byte offset of the data

    • Optional byteLength: number

      the byte length of the data

    Returns void

  • updateMultipleRenderTargetTextureSampleCount(rtWrapper: Nullable<RenderTargetWrapper>, samples: number, initializeBuffers?: boolean): number
  • updateRawCubeTexture(texture: InternalTexture, data: ArrayBufferView[], format: number, type: number, invertY: boolean): void
  • updateRawCubeTexture(texture: InternalTexture, data: ArrayBufferView[], format: number, type: number, invertY: boolean, compression: Nullable<string>): void
  • updateRawCubeTexture(texture: InternalTexture, data: ArrayBufferView[], format: number, type: number, invertY: boolean, compression: Nullable<string>, level: number): void
  • Update a raw cube texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: ArrayBufferView[]

      defines the data to store

    • format: number

      defines the data format

    • type: number

      defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    Returns void

  • Update a raw cube texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: ArrayBufferView[]

      defines the data to store

    • format: number

      defines the data format

    • type: number

      defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • compression: Nullable<string>

      defines the compression used (null by default)

    Returns void

  • Update a raw cube texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: ArrayBufferView[]

      defines the data to store

    • format: number

      defines the data format

    • type: number

      defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • compression: Nullable<string>

      defines the compression used (null by default)

    • level: number

      defines which level of the texture to update

    Returns void

  • Update a raw texture

    Parameters

    • texture: Nullable<InternalTexture>

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store in the texture

    • format: number

      defines the format of the data

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    Returns void

  • Update a raw texture

    Parameters

    • texture: Nullable<InternalTexture>

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store in the texture

    • format: number

      defines the format of the data

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • compression: Nullable<string>

      defines the compression used (null by default)

    • type: number

      defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)

    • useSRGBBuffer: boolean

      defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).

    Returns void

  • updateRawTexture2DArray(texture: InternalTexture, data: Nullable<ArrayBufferView>, format: number, invertY: boolean): void
  • updateRawTexture2DArray(texture: InternalTexture, data: Nullable<ArrayBufferView>, format: number, invertY: boolean, compression: Nullable<string>, textureType: number): void
  • Update a raw 2D array texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store

    • format: number

      defines the data format

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    Returns void

  • Update a raw 2D array texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store

    • format: number

      defines the data format

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • compression: Nullable<string>

      defines the used compression (can be null)

    • textureType: number

      defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_INT, Engine.TEXTURETYPE_FLOAT...)

    Returns void

  • updateRawTexture3D(texture: InternalTexture, data: Nullable<ArrayBufferView>, format: number, invertY: boolean): void
  • updateRawTexture3D(texture: InternalTexture, data: Nullable<ArrayBufferView>, format: number, invertY: boolean, compression: Nullable<string>, textureType: number): void
  • Update a raw 3D texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store

    • format: number

      defines the data format

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    Returns void

  • Update a raw 3D texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • data: Nullable<ArrayBufferView>

      defines the data to store

    • format: number

      defines the data format

    • invertY: boolean

      defines if data must be stored with Y axis inverted

    • compression: Nullable<string>

      defines the used compression (can be null)

    • textureType: number

      defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_INT, Engine.TEXTURETYPE_FLOAT...)

    Returns void

  • updateStorageBuffer(buffer: DataBuffer, data: DataArray, byteOffset?: number, byteLength?: number): void
  • Updates a storage buffer

    Parameters

    • buffer: DataBuffer

      the storage buffer to update

    • data: DataArray

      the data used to update the storage buffer

    • Optional byteOffset: number

      the byte offset of the data

    • Optional byteLength: number

      the byte length of the data

    Returns void

  • updateTextureComparisonFunction(texture: InternalTexture, comparisonFunction: number): void
  • Updates a depth texture Comparison Mode and Function. If the comparison Function is equal to 0, the mode will be set to none. Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.

    Parameters

    Returns void

  • updateTextureData(texture: InternalTexture, imageData: ArrayBufferView, xOffset: number, yOffset: number, width: number, height: number, faceIndex?: number, lod?: number, generateMipMaps?: boolean): void
  • Update a portion of an internal texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • imageData: ArrayBufferView

      defines the data to store into the texture

    • xOffset: number

      defines the x coordinates of the update rectangle

    • yOffset: number

      defines the y coordinates of the update rectangle

    • width: number

      defines the width of the update rectangle

    • height: number

      defines the height of the update rectangle

    • Optional faceIndex: number

      defines the face index if texture is a cube (0 by default)

    • Optional lod: number

      defines the lod level to update (0 by default)

    • Optional generateMipMaps: boolean

      defines whether to generate mipmaps or not

    Returns void

  • updateTextureDimensions(texture: InternalTexture, width: number, height: number, depth?: number): void
  • Update the dimensions of a texture

    Parameters

    • texture: InternalTexture

      texture to update

    • width: number

      new width of the texture

    • height: number

      new height of the texture

    • Optional depth: number

      new depth of the texture

    Returns void

  • updateTextureSamplingMode(samplingMode: number, texture: InternalTexture, generateMipMaps?: boolean): void
  • Update the sampling mode of a given texture

    Parameters

    • samplingMode: number

      defines the required sampling mode

    • texture: InternalTexture

      defines the texture to update

    • Optional generateMipMaps: boolean

      defines whether to generate mipmaps for the texture

    Returns void

  • Update the sampling mode of a given texture

    Parameters

    • texture: InternalTexture

      defines the texture to update

    • wrapU: Nullable<number>

      defines the texture wrap mode of the u coordinates

    • Optional wrapV: Nullable<number>

      defines the texture wrap mode of the v coordinates

    • Optional wrapR: Nullable<number>

      defines the texture wrap mode of the r coordinates

    Returns void

  • updateUniformBuffer(uniformBuffer: DataBuffer, elements: FloatArray, offset?: number, count?: number): void
  • wipeCaches(bruteForce?: boolean): void
  • Force the entire cache to be cleared You should not have to use this function unless your engine needs to share the WebGPU context with another engine

    Parameters

    • Optional bruteForce: boolean

      defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)

    Returns void

  • Wraps an external web gl texture in a Babylon texture.

    Returns InternalTexture

    the babylon internal texture

  • Wraps an external web gpu texture in a Babylon texture.

    Parameters

    Returns InternalTexture

    the babylon internal texture

  • CeilingPOT(x: number): number
  • Find the next highest power of two.

    Parameters

    • x: number

      Number to start search from.

    Returns number

    Next highest power of two.

  • Create a new instance of the gpu engine asynchronously

    Parameters

    • canvas: HTMLCanvasElement

      Defines the canvas to use to display the result

    • Optional options: WebGPUEngineOptions

      Defines the options passed to the engine to create the GPU context dependencies

    Returns Promise<WebGPUEngine>

    a promise that resolves with the created engine

  • DefaultLoadingScreenFactory(canvas: HTMLCanvasElement): ILoadingScreen
  • Method called to create the default loading screen. This can be overridden in your own app.

    Parameters

    • canvas: HTMLCanvasElement

      The rendering canvas element

    Returns ILoadingScreen

    The loading screen

  • FloorPOT(x: number): number
  • Find the next lowest power of two.

    Parameters

    • x: number

      Number to start search from.

    Returns number

    Next lowest power of two.

  • GetExponentOfTwo(value: number, max: number, mode?: number): number
  • Get the closest exponent of two

    Parameters

    • value: number

      defines the value to approximate

    • max: number

      defines the maximum value to return

    • Optional mode: number

      defines how to define the closest value

    Returns number

    closest exponent of two of the given value

  • MarkAllMaterialsAsDirty(flag: number, predicate?: ((mat: Material) => boolean)): void
  • Will flag all materials in all scenes in all engines as dirty to trigger new shader compilation

    Parameters

    • flag: number

      defines which part of the materials must be marked as dirty

    • Optional predicate: ((mat: Material) => boolean)

      defines a predicate used to filter which materials should be affected

    Returns void

  • NearestPOT(x: number): number
  • Find the nearest power of two.

    Parameters

    • x: number

      Number to start search from.

    Returns number

    Next nearest power of two.

  • QueueNewFrame(func: (() => void), requester?: any): number
  • Queue a new function into the requested animation frame pool (ie. this function will be executed by the browser (or the javascript engine) for the next frame)

    Parameters

    • func: (() => void)

      the function to be called

        • (): void
        • Returns void

    • Optional requester: any

      the object that will request the next frame. Falls back to window.

    Returns number

    frame number

  • _ExitFullscreen(): void
  • Asks the browser to exit fullscreen mode

    Returns void

  • _ExitPointerlock(): void
  • Asks the browser to exit pointerlock mode

    Returns void

  • _RequestFullscreen(element: HTMLElement): void
  • Ask the browser to promote the current element to fullscreen rendering mode

    Parameters

    • element: HTMLElement

      defines the DOM element to promote

    Returns void

  • _RequestPointerlock(element: HTMLElement): void
  • Ask the browser to promote the current element to pointerlock mode

    Parameters

    • element: HTMLElement

      defines the DOM element to promote

    Returns void

  • isSupported(): boolean
  • Gets a boolean indicating if the engine can be instantiated (ie. if a webGL context can be found)

    ignorenaming

    Returns boolean

    true if the engine can be created

Legend

  • Constructor
  • Property
  • Method
  • Accessor
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Property
  • Method
  • Static property
  • Static method

Settings

Theme