UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

139 lines (138 loc) 6.03 kB
import type { Effect } from "../../Materials/effect.js"; import type { InternalTexture } from "../../Materials/Textures/internalTexture.js"; import { VertexBuffer } from "../../Buffers/buffer.js"; import type { DataBuffer } from "../../Buffers/dataBuffer.js"; import type { Nullable } from "../../types.js"; /** @internal */ export declare abstract class WebGPUCacheRenderPipeline { static LogErrorIfNoVertexBuffer: boolean; static NumCacheHitWithoutHash: number; static NumCacheHitWithHash: number; static NumCacheMiss: number; static NumPipelineCreationLastFrame: number; disabled: boolean; private static _NumPipelineCreationCurrentFrame; protected _states: number[]; protected _statesLength: number; protected _stateDirtyLowestIndex: number; lastStateDirtyLowestIndex: number; private _device; private _isDirty; private _emptyVertexBuffer; private _parameter; private _kMaxVertexBufferStride; private _shaderId; private _alphaToCoverageEnabled; private _frontFace; private _cullEnabled; private _cullFace; private _clampDepth; private _rasterizationState; private _depthBias; private _depthBiasClamp; private _depthBiasSlopeScale; private _colorFormat; private _webgpuColorFormat; private _mrtAttachments; private _mrtFormats; private _mrtEnabledMask; private _alphaBlendEnabled; private _numAlphaBlendTargetsEnabled; private _alphaBlendFuncParams; private _alphaBlendEqParams; private _writeMask; private _depthStencilFormat; private _webgpuDepthStencilFormat; private _depthTestEnabled; private _depthWriteEnabled; private _depthCompare; private _stencilEnabled; private _stencilFrontCompare; private _stencilFrontDepthFailOp; private _stencilFrontPassOp; private _stencilFrontFailOp; private _stencilBackCompare; private _stencilBackDepthFailOp; private _stencilBackPassOp; private _stencilBackFailOp; private _stencilReadMask; private _stencilWriteMask; private _depthStencilState; private _vertexBuffers; private _overrideVertexBuffers; private _textureState; private _useTextureStage; constructor(device: GPUDevice, emptyVertexBuffer: VertexBuffer); reset(): void; protected abstract _getRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline>; }): void; protected abstract _setRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline>; }): void; readonly vertexBuffers: VertexBuffer[]; readonly indexBuffer: Nullable<DataBuffer>; get colorFormats(): (GPUTextureFormat | null)[]; readonly mrtAttachments: number[]; readonly mrtTextureArray: InternalTexture[]; readonly mrtTextureCount: number; getRenderPipeline(fillMode: number, effect: Effect, sampleCount: number, textureState?: number): GPURenderPipeline; endFrame(): void; setAlphaToCoverage(enabled: boolean): void; setFrontFace(frontFace: number): void; setCullEnabled(enabled: boolean): void; setCullFace(cullFace: number): void; setClampDepth(clampDepth: boolean): void; resetDepthCullingState(): void; setDepthCullingState(cullEnabled: boolean, frontFace: number, cullFace: number, zOffset: number, zOffsetUnits: number, depthTestEnabled: boolean, depthWriteEnabled: boolean, depthCompare: Nullable<number>): void; setDepthBias(depthBias: number): void; setDepthBiasSlopeScale(depthBiasSlopeScale: number): void; setColorFormat(format: GPUTextureFormat | null): void; setMRTAttachments(attachments: number[]): void; setMRT(textureArray: InternalTexture[], textureCount?: number): void; setAlphaBlendEnabled(enabled: boolean[], numAlphaBlendTargetsEnabled: number): void; setAlphaBlendFactors(factors: Array<Nullable<number>>, operations: Array<Nullable<number>>): void; setWriteMask(mask: number): void; setDepthStencilFormat(format: GPUTextureFormat | undefined): void; setDepthTestEnabled(enabled: boolean): void; setDepthWriteEnabled(enabled: boolean): void; setDepthCompare(func: Nullable<number>): void; setStencilEnabled(enabled: boolean): void; setStencilCompare(func: Nullable<number>): void; setStencilDepthFailOp(op: Nullable<number>): void; setStencilPassOp(op: Nullable<number>): void; setStencilFailOp(op: Nullable<number>): void; setStencilBackCompare(func: Nullable<number>): void; setStencilBackDepthFailOp(op: Nullable<number>): void; setStencilBackPassOp(op: Nullable<number>): void; setStencilBackFailOp(op: Nullable<number>): void; setStencilReadMask(mask: number): void; setStencilWriteMask(mask: number): void; resetStencilState(): void; setStencilState(stencilEnabled: boolean, compare: Nullable<number>, depthFailOp: Nullable<number>, passOp: Nullable<number>, failOp: Nullable<number>, readMask: number, writeMask: number, backCompare?: Nullable<number>, backDepthFailOp?: Nullable<number>, backPassOp?: Nullable<number>, backFailOp?: Nullable<number>): void; setBuffers(vertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer>; }>, indexBuffer: Nullable<DataBuffer>, overrideVertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer>; }>): void; private static _GetTopology; private static _GetAphaBlendOperation; private static _GetAphaBlendFactor; private static _GetCompareFunction; private static _GetStencilOpFunction; private static _GetVertexInputDescriptorFormat; private _getAphaBlendState; private _getColorBlendState; private _setShaderStage; private _setRasterizationState; private _setColorStates; private _setDepthStencilState; private _setVertexState; private _setTextureState; private _createPipelineLayout; private _createPipelineLayoutWithTextureStage; private _getVertexInputDescriptor; private _createRenderPipeline; }