@babylonjs/core 6.38.1 → 6.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Actions/action.js +3 -1
- package/Actions/action.js.map +1 -1
- package/Actions/condition.js +1 -0
- package/Actions/condition.js.map +1 -1
- package/Actions/directActions.d.ts +2 -2
- package/Actions/directActions.js +2 -2
- package/Actions/directActions.js.map +1 -1
- package/Animations/pathCursor.js +1 -0
- package/Animations/pathCursor.js.map +1 -1
- package/Animations/runtimeAnimation.js +1 -1
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +5 -0
- package/Audio/audioEngine.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.d.ts +3 -0
- package/Behaviors/Cameras/autoRotationBehavior.js +3 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -0
- package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.js +14 -20
- package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +2 -0
- package/Bones/bone.js +2 -0
- package/Bones/bone.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +11 -11
- package/Cameras/Inputs/BaseCameraPointersInput.js +12 -12
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.d.ts +9 -9
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +9 -9
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +3 -0
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +2 -2
- package/Cameras/VR/vrExperienceHelper.js +2 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +2 -0
- package/Cameras/arcRotateCamera.js +2 -0
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +2 -0
- package/Cameras/camera.js +4 -0
- package/Cameras/camera.js.map +1 -1
- package/Cameras/followCamera.d.ts +1 -0
- package/Cameras/followCamera.js +1 -0
- package/Cameras/followCamera.js.map +1 -1
- package/Culling/Octrees/octree.d.ts +4 -4
- package/Culling/Octrees/octree.js +4 -4
- package/Culling/Octrees/octree.js.map +1 -1
- package/Debug/debugLayer.d.ts +4 -1
- package/Debug/debugLayer.js +4 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +6 -1
- package/Debug/physicsViewer.js +6 -1
- package/Debug/physicsViewer.js.map +1 -1
- package/Decorators/nodeDecorator.d.ts +5 -4
- package/Decorators/nodeDecorator.js +5 -4
- package/Decorators/nodeDecorator.js.map +1 -1
- package/DeviceInput/eventFactory.d.ts +2 -0
- package/DeviceInput/eventFactory.js +3 -0
- package/DeviceInput/eventFactory.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +3 -0
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +2 -0
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Native/nativeDataStream.d.ts +32 -0
- package/Engines/Native/nativeDataStream.js +32 -0
- package/Engines/Native/nativeDataStream.js.map +1 -1
- package/Engines/Native/nativePipelineContext.d.ts +0 -3
- package/Engines/Native/nativePipelineContext.js +0 -3
- package/Engines/Native/nativePipelineContext.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.js +2 -0
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +1 -0
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGL/webGLPipelineContext.d.ts +0 -3
- package/Engines/WebGL/webGLPipelineContext.js +0 -3
- package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.js +1 -0
- package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.readTexture.js +1 -0
- package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -0
- package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -0
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +3 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +0 -3
- package/Engines/WebGPU/webgpuPipelineContext.js +0 -3
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +1 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +11 -2
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +22 -0
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +2 -1
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +5 -5
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/engine.d.ts +1 -0
- package/Engines/engine.js +1 -0
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +4 -0
- package/Engines/nativeEngine.js +5 -0
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +7 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -1
- package/Engines/webgpuEngine.js +17 -1
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +214 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +214 -6
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +15 -0
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +9 -0
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +6 -6
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.d.ts +4 -0
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +4 -0
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +17 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +14 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.d.ts +9 -0
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js +9 -0
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.d.ts +5 -0
- package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js +5 -0
- package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +16 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +13 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +12 -1
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +12 -1
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +18 -0
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +9 -0
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.d.ts +12 -0
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +9 -0
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +15 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +12 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +18 -2
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +15 -4
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +6 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +6 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +6 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +6 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +5 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +4 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +15 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +12 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +4 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +14 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +11 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +15 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +12 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +14 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +11 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +15 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +12 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +3 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +6 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +6 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +15 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +12 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +18 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +15 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +6 -0
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +6 -0
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.d.ts +14 -2
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +11 -4
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +15 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +12 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +14 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +11 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +16 -8
- package/FlowGraph/flowGraph.js +13 -8
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphBlock.d.ts +54 -5
- package/FlowGraph/flowGraphBlock.js +50 -11
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +10 -6
- package/FlowGraph/flowGraphConnection.js +10 -6
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +10 -8
- package/FlowGraph/flowGraphContext.js +10 -8
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +27 -1
- package/FlowGraph/flowGraphCoordinator.js +18 -2
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.d.ts +26 -1
- package/FlowGraph/flowGraphDataConnection.js +23 -1
- package/FlowGraph/flowGraphDataConnection.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.d.ts +27 -1
- package/FlowGraph/flowGraphExecutionBlock.js +22 -4
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphRichTypes.d.ts +24 -1
- package/FlowGraph/flowGraphRichTypes.js +18 -1
- package/FlowGraph/flowGraphRichTypes.js.map +1 -1
- package/FlowGraph/flowGraphSignalConnection.d.ts +2 -0
- package/FlowGraph/flowGraphSignalConnection.js +2 -0
- package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
- package/Gamepads/gamepad.d.ts +2 -2
- package/Gamepads/gamepad.js +2 -2
- package/Gamepads/gamepad.js.map +1 -1
- package/Gamepads/gamepadSceneComponent.js +2 -0
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/axisScaleGizmo.d.ts +2 -0
- package/Gizmos/axisScaleGizmo.js +2 -0
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.d.ts +19 -0
- package/Gizmos/boundingBoxGizmo.js +36 -15
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.js +1 -0
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/gizmo.d.ts +4 -1
- package/Gizmos/gizmo.js +1 -0
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.d.ts +18 -0
- package/Gizmos/gizmoManager.js +34 -0
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +1 -0
- package/Gizmos/lightGizmo.js +1 -0
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.d.ts +2 -0
- package/Gizmos/planeRotationGizmo.js +2 -0
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.d.ts +11 -0
- package/Gizmos/positionGizmo.js +19 -0
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.d.ts +14 -0
- package/Gizmos/rotationGizmo.js +14 -0
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.d.ts +18 -1
- package/Gizmos/scaleGizmo.js +19 -1
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Helpers/environmentHelper.d.ts +4 -2
- package/Helpers/environmentHelper.js +4 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -0
- package/Layers/effectLayer.js +1 -0
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +3 -1
- package/Layers/glowLayer.js +3 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +3 -2
- package/Layers/highlightLayer.js +3 -2
- package/Layers/highlightLayer.js.map +1 -1
- package/Lights/light.d.ts +1 -1
- package/Lights/light.js +1 -1
- package/Lights/light.js.map +1 -1
- package/Loading/sceneLoader.d.ts +9 -0
- package/Loading/sceneLoader.js +11 -0
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.d.ts +2 -2
- package/Materials/Background/backgroundMaterial.js +2 -2
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.d.ts +72 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +230 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -0
- package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +1 -1
- package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterial.d.ts +2 -2
- package/Materials/GreasedLine/greasedLinePluginMaterial.js +2 -2
- package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +0 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +0 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/index.js +1 -0
- package/Materials/Node/Blocks/Dual/index.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +7 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +6 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -0
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -0
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -0
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/prePassTextureBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Input/prePassTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Teleport/teleportInBlock.d.ts +3 -1
- package/Materials/Node/Blocks/Teleport/teleportInBlock.js +3 -1
- package/Materials/Node/Blocks/Teleport/teleportInBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -0
- package/Materials/Node/Blocks/triPlanarBlock.js +1 -0
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +2 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +2 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +11 -3
- package/Materials/Node/nodeMaterial.js +15 -3
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +3 -1
- package/Materials/Node/nodeMaterialBlock.js +4 -1
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +1 -0
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -0
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +10 -9
- package/Materials/PBR/pbrBaseMaterial.js +10 -9
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +2 -1
- package/Materials/PBR/pbrMaterial.js +3 -2
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +7 -4
- package/Materials/PBR/pbrMetallicRoughnessMaterial.js +7 -4
- package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +7 -4
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js +7 -4
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +1 -0
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -0
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -0
- package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
- package/Materials/Textures/Packer/packer.d.ts +0 -1
- package/Materials/Textures/Packer/packer.js +0 -1
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.d.ts +1 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js +1 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.js +3 -0
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/colorGradingTexture.d.ts +4 -1
- package/Materials/Textures/colorGradingTexture.js +4 -1
- package/Materials/Textures/colorGradingTexture.js.map +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.d.ts +1 -0
- package/Materials/Textures/equiRectangularCubeTexture.js +1 -0
- package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.d.ts +3 -2
- package/Materials/Textures/hdrCubeTexture.js +3 -2
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +1 -1
- package/Materials/Textures/htmlElementTexture.js +1 -1
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -1
- package/Materials/Textures/multiRenderTarget.js +1 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/texture.d.ts +4 -1
- package/Materials/Textures/texture.js +4 -1
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.d.ts +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.js +3 -0
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/index.d.ts +1 -0
- package/Materials/index.js +1 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +2 -1
- package/Materials/material.decalMapConfiguration.d.ts +0 -5
- package/Materials/material.decalMapConfiguration.js +5 -5
- package/Materials/material.decalMapConfiguration.js.map +1 -1
- package/Materials/material.js +3 -2
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.d.ts +1 -1
- package/Materials/materialHelper.js +4 -3
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginManager.js +1 -0
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -2
- package/Materials/standardMaterial.js +3 -3
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +2 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.like.d.ts +3 -0
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.path.d.ts +2 -1
- package/Maths/math.path.js +2 -1
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.polar.d.ts +3 -2
- package/Maths/math.polar.js +8 -2
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vector.d.ts +12 -5
- package/Maths/math.vector.js +12 -5
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/hemisphereBuilder.js +1 -0
- package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
- package/Meshes/Builders/textBuilder.d.ts +26 -5
- package/Meshes/Builders/textBuilder.js +26 -5
- package/Meshes/Builders/textBuilder.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +84 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +288 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +2 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.d.ts +2 -0
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js +9 -0
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.d.ts +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.d.ts +92 -0
- package/Meshes/Node/Blocks/geometryCurveBlock.js +292 -0
- package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -0
- package/Meshes/Node/Blocks/noiseBlock.d.ts +5 -3
- package/Meshes/Node/Blocks/noiseBlock.js +5 -3
- package/Meshes/Node/Blocks/noiseBlock.js.map +1 -1
- package/Meshes/Node/index.d.ts +1 -0
- package/Meshes/Node/index.js +1 -0
- package/Meshes/Node/index.js.map +1 -1
- package/Meshes/Node/nodeGeometry.d.ts +6 -2
- package/Meshes/Node/nodeGeometry.js +7 -2
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +1 -0
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js +1 -0
- package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -0
- package/Meshes/abstractMesh.js +3 -0
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/csg.d.ts +7 -1
- package/Meshes/csg.js +9 -1
- package/Meshes/csg.js.map +1 -1
- package/Meshes/geodesicMesh.d.ts +32 -1
- package/Meshes/geodesicMesh.js +17 -1
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/index.d.ts +1 -0
- package/Meshes/index.js +1 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +34 -17
- package/Meshes/instancedMesh.js +34 -17
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.d.ts +6 -5
- package/Meshes/linesMesh.js +6 -5
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -0
- package/Meshes/mesh.js +1 -0
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +0 -145
- package/Meshes/mesh.vertexData.js +0 -145
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.d.ts +1 -1
- package/Meshes/transformNode.js +19 -1
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +1 -0
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +1 -0
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/HighDynamicRange/hdr.d.ts +1 -0
- package/Misc/HighDynamicRange/hdr.js +8 -0
- package/Misc/HighDynamicRange/hdr.js.map +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.d.ts +1 -0
- package/Misc/HighDynamicRange/panoramaToCubemap.js +3 -0
- package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
- package/Misc/assetsManager.d.ts +3 -0
- package/Misc/assetsManager.js +3 -0
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -0
- package/Misc/basis.js.map +1 -1
- package/Misc/decorators.d.ts +2 -0
- package/Misc/decorators.js +3 -1
- package/Misc/decorators.js.map +1 -1
- package/Misc/fileTools.js +2 -0
- package/Misc/fileTools.js.map +1 -1
- package/Misc/filesInput.d.ts +7 -2
- package/Misc/filesInput.js +7 -2
- package/Misc/filesInput.js.map +1 -1
- package/Misc/greasedLineTools.d.ts +6 -1
- package/Misc/greasedLineTools.js +6 -1
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/textureTools.d.ts +2 -0
- package/Misc/textureTools.js +2 -0
- package/Misc/textureTools.js.map +1 -1
- package/Misc/timer.d.ts +2 -1
- package/Misc/timer.js +1 -0
- package/Misc/timer.js.map +1 -1
- package/Misc/tools.d.ts +5 -1
- package/Misc/tools.js +9 -1
- package/Misc/tools.js.map +1 -1
- package/Misc/videoRecorder.d.ts +4 -1
- package/Misc/videoRecorder.js +11 -5
- package/Misc/videoRecorder.js.map +1 -1
- package/Misc/webRequest.d.ts +3 -0
- package/Misc/webRequest.js +4 -1
- package/Misc/webRequest.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +11 -0
- package/Morph/morphTargetManager.js +22 -2
- package/Morph/morphTargetManager.js.map +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.js +10 -2
- package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +3 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js +7 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +2 -2
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.js +1 -0
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.d.ts +1 -2
- package/Particles/particleSystem.js +5 -1
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +1 -1
- package/Particles/solidParticleSystem.js +1 -1
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Physics/physicsHelper.d.ts +3 -2
- package/Physics/physicsHelper.js +5 -4
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/physicsRaycastResult.d.ts +2 -1
- package/Physics/physicsRaycastResult.js +2 -1
- package/Physics/physicsRaycastResult.js.map +1 -1
- package/Physics/v1/Plugins/ammoJSPlugin.d.ts +5 -0
- package/Physics/v1/Plugins/ammoJSPlugin.js +6 -0
- package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/v1/physicsEngine.d.ts +2 -0
- package/Physics/v1/physicsEngine.js +2 -0
- package/Physics/v1/physicsEngine.js.map +1 -1
- package/Physics/v1/physicsImpostor.d.ts +2 -3
- package/Physics/v1/physicsImpostor.js +2 -3
- package/Physics/v1/physicsImpostor.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +1 -0
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.d.ts +61 -10
- package/Physics/v2/Plugins/havokPlugin.js +89 -10
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +41 -3
- package/Physics/v2/physicsBody.js +42 -9
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsConstraint.d.ts +0 -2
- package/Physics/v2/physicsConstraint.js +0 -2
- package/Physics/v2/physicsConstraint.js.map +1 -1
- package/Physics/v2/physicsEngine.d.ts +5 -3
- package/Physics/v2/physicsEngine.js +6 -3
- package/Physics/v2/physicsEngine.js.map +1 -1
- package/Physics/v2/physicsShape.d.ts +2 -0
- package/Physics/v2/physicsShape.js +5 -0
- package/Physics/v2/physicsShape.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.d.ts +1 -0
- package/PostProcesses/motionBlurPostProcess.js +1 -0
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +0 -1
- package/PostProcesses/postProcess.js +0 -1
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.d.ts +2 -1
- package/Rendering/GlobalIllumination/giRSMManager.js +5 -2
- package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
- package/Rendering/depthRendererSceneComponent.js +1 -0
- package/Rendering/depthRendererSceneComponent.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +2 -2
- package/Rendering/geometryBufferRenderer.js +2 -2
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/index.d.ts +0 -1
- package/Rendering/index.js +0 -1
- package/Rendering/index.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +2 -2
- package/Rendering/prePassRenderer.js +2 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/reflectiveShadowMap.d.ts +4 -0
- package/Rendering/reflectiveShadowMap.js +7 -0
- package/Rendering/reflectiveShadowMap.js.map +1 -1
- package/Rendering/renderingGroup.d.ts +0 -1
- package/Rendering/renderingGroup.js +3 -4
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/renderingManager.d.ts +2 -1
- package/Rendering/renderingManager.js +2 -1
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +1 -0
- package/Rendering/subSurfaceConfiguration.js +1 -0
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.d.ts +7 -0
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +13 -0
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.d.ts +5 -0
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +10 -0
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/morphTargetsVertex.js +8 -5
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +2 -0
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.d.ts +11 -0
- package/Shaders/gaussianSplatting.fragment.js +27 -0
- package/Shaders/gaussianSplatting.fragment.js.map +1 -0
- package/Shaders/gaussianSplatting.vertex.d.ts +13 -0
- package/Shaders/gaussianSplatting.vertex.js +49 -0
- package/Shaders/gaussianSplatting.vertex.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +5 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +2 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/XR/features/WebXRAbstractFeature.d.ts +7 -1
- package/XR/features/WebXRAbstractFeature.js +20 -4
- package/XR/features/WebXRAbstractFeature.js.map +1 -1
- package/XR/features/WebXRAnchorSystem.d.ts +1 -0
- package/XR/features/WebXRAnchorSystem.js +1 -0
- package/XR/features/WebXRAnchorSystem.js.map +1 -1
- package/XR/features/WebXRControllerTeleportation.js +9 -2
- package/XR/features/WebXRControllerTeleportation.js.map +1 -1
- package/XR/features/WebXRDepthSensing.d.ts +1 -1
- package/XR/features/WebXRDepthSensing.js +1 -1
- package/XR/features/WebXRDepthSensing.js.map +1 -1
- package/XR/features/WebXREyeTracking.js +1 -1
- package/XR/features/WebXREyeTracking.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +4 -1
- package/XR/features/WebXRHandTracking.js +18 -4
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRHitTest.js +1 -1
- package/XR/features/WebXRHitTest.js.map +1 -1
- package/XR/features/WebXRNearInteraction.d.ts +6 -3
- package/XR/features/WebXRNearInteraction.js +9 -4
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/features/WebXRPlaneDetector.d.ts +2 -0
- package/XR/features/WebXRPlaneDetector.js +2 -0
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/features/WebXRRawCameraAccess.d.ts +2 -0
- package/XR/features/WebXRRawCameraAccess.js +2 -0
- package/XR/features/WebXRRawCameraAccess.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.d.ts +0 -27
- package/XR/features/WebXRSpaceWarp.js +0 -27
- package/XR/features/WebXRSpaceWarp.js.map +1 -1
- package/XR/index.d.ts +1 -0
- package/XR/index.js +1 -0
- package/XR/index.js.map +1 -1
- package/XR/motionController/webXROculusTouchMotionController.d.ts +1 -0
- package/XR/motionController/webXROculusTouchMotionController.js +1 -0
- package/XR/motionController/webXROculusTouchMotionController.js.map +1 -1
- package/XR/webXRCamera.d.ts +2 -0
- package/XR/webXRCamera.js +8 -6
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +1 -0
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInput.js +1 -1
- package/XR/webXRInput.js.map +1 -1
- package/XR/webXRInputSource.d.ts +3 -1
- package/XR/webXRInputSource.js +6 -3
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +13 -0
- package/XR/webXRSessionManager.js +21 -1
- package/XR/webXRSessionManager.js.map +1 -1
- package/assetContainer.d.ts +5 -2
- package/assetContainer.js +5 -2
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +1 -0
- package/scene.js +11 -0
- package/scene.js.map +1 -1
- package/Rendering/GaussianSplatting/gaussianSplatting.d.ts +0 -81
- package/Rendering/GaussianSplatting/gaussianSplatting.js +0 -400
- package/Rendering/GaussianSplatting/gaussianSplatting.js.map +0 -1
- package/Rendering/GaussianSplatting/index.d.ts +0 -1
- package/Rendering/GaussianSplatting/index.js +0 -2
- package/Rendering/GaussianSplatting/index.js.map +0 -1
|
@@ -167,12 +167,15 @@ export class WebGPUTextureHelper {
|
|
|
167
167
|
return { width: 1, height: 1, length: 16 };
|
|
168
168
|
// Depth and stencil formats
|
|
169
169
|
case WebGPUConstants.TextureFormat.Stencil8:
|
|
170
|
+
// eslint-disable-next-line no-throw-literal
|
|
170
171
|
throw "No fixed size for Stencil8 format!";
|
|
171
172
|
case WebGPUConstants.TextureFormat.Depth16Unorm:
|
|
172
173
|
return { width: 1, height: 1, length: 2 };
|
|
173
174
|
case WebGPUConstants.TextureFormat.Depth24Plus:
|
|
175
|
+
// eslint-disable-next-line no-throw-literal
|
|
174
176
|
throw "No fixed size for Depth24Plus format!";
|
|
175
177
|
case WebGPUConstants.TextureFormat.Depth24PlusStencil8:
|
|
178
|
+
// eslint-disable-next-line no-throw-literal
|
|
176
179
|
throw "No fixed size for Depth24PlusStencil8 format!";
|
|
177
180
|
case WebGPUConstants.TextureFormat.Depth32Float:
|
|
178
181
|
return { width: 1, height: 1, length: 4 };
|
|
@@ -370,12 +373,14 @@ export class WebGPUTextureHelper {
|
|
|
370
373
|
case 7:
|
|
371
374
|
return WebGPUConstants.TextureFormat.RG8Snorm;
|
|
372
375
|
case 4:
|
|
376
|
+
// eslint-disable-next-line no-throw-literal
|
|
373
377
|
throw "RGB format not supported in WebGPU";
|
|
374
378
|
case 8:
|
|
375
379
|
return WebGPUConstants.TextureFormat.R8Sint;
|
|
376
380
|
case 9:
|
|
377
381
|
return WebGPUConstants.TextureFormat.RG8Sint;
|
|
378
382
|
case 10:
|
|
383
|
+
// eslint-disable-next-line no-throw-literal
|
|
379
384
|
throw "RGB_INTEGER format not supported in WebGPU";
|
|
380
385
|
case 11:
|
|
381
386
|
return WebGPUConstants.TextureFormat.RGBA8Sint;
|
|
@@ -389,6 +394,7 @@ export class WebGPUTextureHelper {
|
|
|
389
394
|
case 7:
|
|
390
395
|
return WebGPUConstants.TextureFormat.RG8Unorm;
|
|
391
396
|
case 4:
|
|
397
|
+
// eslint-disable-next-line no-throw-literal
|
|
392
398
|
throw "TEXTUREFORMAT_RGB format not supported in WebGPU";
|
|
393
399
|
case 5:
|
|
394
400
|
return useSRGBBuffer ? WebGPUConstants.TextureFormat.RGBA8UnormSRGB : WebGPUConstants.TextureFormat.RGBA8Unorm;
|
|
@@ -399,14 +405,18 @@ export class WebGPUTextureHelper {
|
|
|
399
405
|
case 9:
|
|
400
406
|
return WebGPUConstants.TextureFormat.RG8Uint;
|
|
401
407
|
case 10:
|
|
408
|
+
// eslint-disable-next-line no-throw-literal
|
|
402
409
|
throw "RGB_INTEGER format not supported in WebGPU";
|
|
403
410
|
case 11:
|
|
404
411
|
return WebGPUConstants.TextureFormat.RGBA8Uint;
|
|
405
412
|
case 0:
|
|
413
|
+
// eslint-disable-next-line no-throw-literal
|
|
406
414
|
throw "TEXTUREFORMAT_ALPHA format not supported in WebGPU";
|
|
407
415
|
case 1:
|
|
416
|
+
// eslint-disable-next-line no-throw-literal
|
|
408
417
|
throw "TEXTUREFORMAT_LUMINANCE format not supported in WebGPU";
|
|
409
418
|
case 2:
|
|
419
|
+
// eslint-disable-next-line no-throw-literal
|
|
410
420
|
throw "TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU";
|
|
411
421
|
default:
|
|
412
422
|
return WebGPUConstants.TextureFormat.RGBA8Unorm;
|
|
@@ -418,6 +428,7 @@ export class WebGPUTextureHelper {
|
|
|
418
428
|
case 9:
|
|
419
429
|
return WebGPUConstants.TextureFormat.RG16Sint;
|
|
420
430
|
case 10:
|
|
431
|
+
// eslint-disable-next-line no-throw-literal
|
|
421
432
|
throw "TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";
|
|
422
433
|
case 11:
|
|
423
434
|
return WebGPUConstants.TextureFormat.RGBA16Sint;
|
|
@@ -431,6 +442,7 @@ export class WebGPUTextureHelper {
|
|
|
431
442
|
case 9:
|
|
432
443
|
return WebGPUConstants.TextureFormat.RG16Uint;
|
|
433
444
|
case 10:
|
|
445
|
+
// eslint-disable-next-line no-throw-literal
|
|
434
446
|
throw "TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";
|
|
435
447
|
case 11:
|
|
436
448
|
return WebGPUConstants.TextureFormat.RGBA16Uint;
|
|
@@ -444,6 +456,7 @@ export class WebGPUTextureHelper {
|
|
|
444
456
|
case 9:
|
|
445
457
|
return WebGPUConstants.TextureFormat.RG32Sint;
|
|
446
458
|
case 10:
|
|
459
|
+
// eslint-disable-next-line no-throw-literal
|
|
447
460
|
throw "TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";
|
|
448
461
|
case 11:
|
|
449
462
|
return WebGPUConstants.TextureFormat.RGBA32Sint;
|
|
@@ -457,6 +470,7 @@ export class WebGPUTextureHelper {
|
|
|
457
470
|
case 9:
|
|
458
471
|
return WebGPUConstants.TextureFormat.RG32Uint;
|
|
459
472
|
case 10:
|
|
473
|
+
// eslint-disable-next-line no-throw-literal
|
|
460
474
|
throw "TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";
|
|
461
475
|
case 11:
|
|
462
476
|
return WebGPUConstants.TextureFormat.RGBA32Uint;
|
|
@@ -470,6 +484,7 @@ export class WebGPUTextureHelper {
|
|
|
470
484
|
case 7:
|
|
471
485
|
return WebGPUConstants.TextureFormat.RG32Float; // By default. Other possibility is RG16Float.
|
|
472
486
|
case 4:
|
|
487
|
+
// eslint-disable-next-line no-throw-literal
|
|
473
488
|
throw "TEXTUREFORMAT_RGB format not supported in WebGPU";
|
|
474
489
|
case 5:
|
|
475
490
|
return WebGPUConstants.TextureFormat.RGBA32Float; // By default. Other possibility is RGBA16Float.
|
|
@@ -483,6 +498,7 @@ export class WebGPUTextureHelper {
|
|
|
483
498
|
case 7:
|
|
484
499
|
return WebGPUConstants.TextureFormat.RG16Float;
|
|
485
500
|
case 4:
|
|
501
|
+
// eslint-disable-next-line no-throw-literal
|
|
486
502
|
throw "TEXTUREFORMAT_RGB format not supported in WebGPU";
|
|
487
503
|
case 5:
|
|
488
504
|
return WebGPUConstants.TextureFormat.RGBA16Float;
|
|
@@ -490,12 +506,14 @@ export class WebGPUTextureHelper {
|
|
|
490
506
|
return WebGPUConstants.TextureFormat.RGBA16Float;
|
|
491
507
|
}
|
|
492
508
|
case 10:
|
|
509
|
+
// eslint-disable-next-line no-throw-literal
|
|
493
510
|
throw "TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU";
|
|
494
511
|
case 13:
|
|
495
512
|
switch (format) {
|
|
496
513
|
case 5:
|
|
497
514
|
return WebGPUConstants.TextureFormat.RG11B10UFloat;
|
|
498
515
|
case 11:
|
|
516
|
+
// eslint-disable-next-line no-throw-literal
|
|
499
517
|
throw "TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV";
|
|
500
518
|
default:
|
|
501
519
|
return WebGPUConstants.TextureFormat.RG11B10UFloat;
|
|
@@ -505,13 +523,16 @@ export class WebGPUTextureHelper {
|
|
|
505
523
|
case 5:
|
|
506
524
|
return WebGPUConstants.TextureFormat.RGB9E5UFloat;
|
|
507
525
|
case 11:
|
|
526
|
+
// eslint-disable-next-line no-throw-literal
|
|
508
527
|
throw "TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV";
|
|
509
528
|
default:
|
|
510
529
|
return WebGPUConstants.TextureFormat.RGB9E5UFloat;
|
|
511
530
|
}
|
|
512
531
|
case 8:
|
|
532
|
+
// eslint-disable-next-line no-throw-literal
|
|
513
533
|
throw "TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU";
|
|
514
534
|
case 9:
|
|
535
|
+
// eslint-disable-next-line no-throw-literal
|
|
515
536
|
throw "TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU";
|
|
516
537
|
case 11:
|
|
517
538
|
switch (format) {
|
|
@@ -627,6 +648,7 @@ export class WebGPUTextureHelper {
|
|
|
627
648
|
case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:
|
|
628
649
|
return 4;
|
|
629
650
|
}
|
|
651
|
+
// eslint-disable-next-line no-throw-literal
|
|
630
652
|
throw `Unknown format ${format}!`;
|
|
631
653
|
}
|
|
632
654
|
static HasStencilAspect(format) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuTextureHelper.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuTextureHelper.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable babylonjs/available */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { Scalar } from \"../../Maths/math.scalar\";\r\nimport { Constants } from \"../constants\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport type { HardwareTextureWrapper } from \"../../Materials/Textures/hardwareTextureWrapper\";\r\n\r\n/** @internal */\r\nexport class WebGPUTextureHelper {\r\n public static ComputeNumMipmapLevels(width: number, height: number) {\r\n return Scalar.ILog2(Math.max(width, height)) + 1;\r\n }\r\n\r\n public static GetTextureTypeFromFormat(format: GPUTextureFormat): number {\r\n switch (format) {\r\n // One Component = 8 bits\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n return Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // One component = 16 bits\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return Constants.TEXTURETYPE_UNSIGNED_SHORT;\r\n\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n return Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // One component = 32 bits\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n return Constants.TEXTURETYPE_UNSIGNED_INTEGER;\r\n\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return Constants.TEXTURETYPE_FLOAT;\r\n }\r\n\r\n return Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n }\r\n\r\n public static GetBlockInformationFromFormat(format: GPUTextureFormat): { width: number; height: number; length: number } {\r\n switch (format) {\r\n // 8 bits formats\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n return { width: 1, height: 1, length: 1 };\r\n\r\n // 16 bits formats\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n return { width: 1, height: 1, length: 2 };\r\n\r\n // 32 bits formats\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT:\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm:\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat:\r\n return { width: 1, height: 1, length: 4 };\r\n\r\n // 64 bits formats\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n return { width: 1, height: 1, length: 8 };\r\n\r\n // 128 bits formats\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n return { width: 1, height: 1, length: 16 };\r\n\r\n // Depth and stencil formats\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n throw \"No fixed size for Stencil8 format!\";\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return { width: 1, height: 1, length: 2 };\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n throw \"No fixed size for Depth24Plus format!\";\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n throw \"No fixed size for Depth24PlusStencil8 format!\";\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n return { width: 1, height: 1, length: 4 };\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n return { width: 1, height: 1, length: 5 };\r\n\r\n // BC compressed formats usable if \"texture-compression-bc\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n return { width: 4, height: 4, length: 16 };\r\n\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n return { width: 4, height: 4, length: 8 };\r\n\r\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n return { width: 4, height: 4, length: 8 };\r\n\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n return { width: 4, height: 4, length: 16 };\r\n\r\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n return { width: 4, height: 4, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n return { width: 5, height: 4, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n return { width: 5, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n return { width: 6, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n return { width: 6, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n return { width: 8, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n return { width: 8, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n return { width: 8, height: 8, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n return { width: 10, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n return { width: 10, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n return { width: 10, height: 8, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n return { width: 10, height: 10, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n return { width: 12, height: 10, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return { width: 12, height: 12, length: 16 };\r\n }\r\n\r\n return { width: 1, height: 1, length: 4 };\r\n }\r\n\r\n public static IsHardwareTexture(texture: HardwareTextureWrapper | GPUTexture): texture is HardwareTextureWrapper {\r\n return !!(texture as HardwareTextureWrapper).release;\r\n }\r\n\r\n public static IsInternalTexture(texture: InternalTexture | GPUTexture): texture is InternalTexture {\r\n return !!(texture as InternalTexture).dispose;\r\n }\r\n\r\n public static IsImageBitmap(imageBitmap: ImageBitmap | { width: number; height: number }): imageBitmap is ImageBitmap {\r\n return (imageBitmap as ImageBitmap).close !== undefined;\r\n }\r\n\r\n public static IsImageBitmapArray(imageBitmap: ImageBitmap[] | { width: number; height: number }): imageBitmap is ImageBitmap[] {\r\n return Array.isArray(imageBitmap as ImageBitmap[]) && (imageBitmap as ImageBitmap[])[0].close !== undefined;\r\n }\r\n\r\n public static IsCompressedFormat(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static GetWebGPUTextureFormat(type: number, format: number, useSRGBBuffer = false): GPUTextureFormat {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_DEPTH16:\r\n return WebGPUConstants.TextureFormat.Depth16Unorm;\r\n case Constants.TEXTUREFORMAT_DEPTH24:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case Constants.TEXTUREFORMAT_DEPTH24_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Depth24PlusStencil8;\r\n case Constants.TEXTUREFORMAT_DEPTH32_FLOAT:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n case Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Depth32FloatStencil8;\r\n case Constants.TEXTUREFORMAT_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Stencil8;\r\n\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC7RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:\r\n return WebGPUConstants.TextureFormat.BC6HRGBUFloat;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:\r\n return WebGPUConstants.TextureFormat.BC6HRGBFloat;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC3RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC2RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC1RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB : WebGPUConstants.TextureFormat.ASTC4x4Unorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB : WebGPUConstants.TextureFormat.ETC2RGB8Unorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB : WebGPUConstants.TextureFormat.ETC2RGBA8Unorm;\r\n }\r\n\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R8Snorm;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG8Snorm;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n throw \"RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R8Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG8Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA8Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA8Snorm;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R8Unorm;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG8Unorm;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.RGBA8UnormSRGB : WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n case Constants.TEXTUREFORMAT_BGRA:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BGRA8UnormSRGB : WebGPUConstants.TextureFormat.BGRA8Unorm;\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R8Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG8Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA8Uint;\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n throw \"TEXTUREFORMAT_ALPHA format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n throw \"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n throw \"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n }\r\n case Constants.TEXTURETYPE_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R16Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG16Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA16Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Sint;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R16Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG16Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA16Uint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Uint;\r\n }\r\n case Constants.TEXTURETYPE_INT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R32Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG32Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA32Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Sint;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R32Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG32Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA32Uint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Uint;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R32Float; // By default. Other possibility is R16Float.\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG32Float; // By default. Other possibility is RG16Float.\r\n case Constants.TEXTUREFORMAT_RGB:\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGBA32Float; // By default. Other possibility is RGBA16Float.\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Float;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R16Float;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG16Float;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGBA16Float;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Float;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RG11B10UFloat;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RG11B10UFloat;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGB9E5UFloat;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RGB9E5UFloat;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGB10A2Unorm;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGB10A2UINT;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGB10A2Unorm;\r\n }\r\n }\r\n\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.RGBA8UnormSRGB : WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n }\r\n\r\n public static GetNumChannelsFromWebGPUTextureFormat(format: GPUTextureFormat): number {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n return 1;\r\n\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n return 2;\r\n\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat:\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n return 3;\r\n\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT:\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return 4;\r\n }\r\n\r\n throw `Unknown format ${format}!`;\r\n }\r\n\r\n public static HasStencilAspect(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static HasDepthAndStencilAspects(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static GetDepthFormatOnly(format: GPUTextureFormat): GPUTextureFormat {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return WebGPUConstants.TextureFormat.Depth16Unorm;\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n public static GetSample(sampleCount: number) {\r\n // WebGPU only supports 1 or 4\r\n return sampleCount > 1 ? 4 : 1;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuTextureHelper.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuTextureHelper.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable babylonjs/available */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { Scalar } from \"../../Maths/math.scalar\";\r\nimport { Constants } from \"../constants\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport type { HardwareTextureWrapper } from \"../../Materials/Textures/hardwareTextureWrapper\";\r\n\r\n/** @internal */\r\nexport class WebGPUTextureHelper {\r\n public static ComputeNumMipmapLevels(width: number, height: number) {\r\n return Scalar.ILog2(Math.max(width, height)) + 1;\r\n }\r\n\r\n public static GetTextureTypeFromFormat(format: GPUTextureFormat): number {\r\n switch (format) {\r\n // One Component = 8 bits\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat: // composite format - let's say it's byte...\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n return Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // One component = 16 bits\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return Constants.TEXTURETYPE_UNSIGNED_SHORT;\r\n\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n return Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // One component = 32 bits\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n return Constants.TEXTURETYPE_UNSIGNED_INTEGER;\r\n\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return Constants.TEXTURETYPE_FLOAT;\r\n }\r\n\r\n return Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n }\r\n\r\n public static GetBlockInformationFromFormat(format: GPUTextureFormat): { width: number; height: number; length: number } {\r\n switch (format) {\r\n // 8 bits formats\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n return { width: 1, height: 1, length: 1 };\r\n\r\n // 16 bits formats\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n return { width: 1, height: 1, length: 2 };\r\n\r\n // 32 bits formats\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT:\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm:\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat:\r\n return { width: 1, height: 1, length: 4 };\r\n\r\n // 64 bits formats\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n return { width: 1, height: 1, length: 8 };\r\n\r\n // 128 bits formats\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n return { width: 1, height: 1, length: 16 };\r\n\r\n // Depth and stencil formats\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"No fixed size for Stencil8 format!\";\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return { width: 1, height: 1, length: 2 };\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"No fixed size for Depth24Plus format!\";\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"No fixed size for Depth24PlusStencil8 format!\";\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n return { width: 1, height: 1, length: 4 };\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n return { width: 1, height: 1, length: 5 };\r\n\r\n // BC compressed formats usable if \"texture-compression-bc\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n return { width: 4, height: 4, length: 16 };\r\n\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n return { width: 4, height: 4, length: 8 };\r\n\r\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n return { width: 4, height: 4, length: 8 };\r\n\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n return { width: 4, height: 4, length: 16 };\r\n\r\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\r\n // supported by the device/user agent and enabled in requestDevice.\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n return { width: 4, height: 4, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n return { width: 5, height: 4, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n return { width: 5, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n return { width: 6, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n return { width: 6, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n return { width: 8, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n return { width: 8, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n return { width: 8, height: 8, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n return { width: 10, height: 5, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n return { width: 10, height: 6, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n return { width: 10, height: 8, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n return { width: 10, height: 10, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n return { width: 12, height: 10, length: 16 };\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return { width: 12, height: 12, length: 16 };\r\n }\r\n\r\n return { width: 1, height: 1, length: 4 };\r\n }\r\n\r\n public static IsHardwareTexture(texture: HardwareTextureWrapper | GPUTexture): texture is HardwareTextureWrapper {\r\n return !!(texture as HardwareTextureWrapper).release;\r\n }\r\n\r\n public static IsInternalTexture(texture: InternalTexture | GPUTexture): texture is InternalTexture {\r\n return !!(texture as InternalTexture).dispose;\r\n }\r\n\r\n public static IsImageBitmap(imageBitmap: ImageBitmap | { width: number; height: number }): imageBitmap is ImageBitmap {\r\n return (imageBitmap as ImageBitmap).close !== undefined;\r\n }\r\n\r\n public static IsImageBitmapArray(imageBitmap: ImageBitmap[] | { width: number; height: number }): imageBitmap is ImageBitmap[] {\r\n return Array.isArray(imageBitmap as ImageBitmap[]) && (imageBitmap as ImageBitmap[])[0].close !== undefined;\r\n }\r\n\r\n public static IsCompressedFormat(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static GetWebGPUTextureFormat(type: number, format: number, useSRGBBuffer = false): GPUTextureFormat {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_DEPTH16:\r\n return WebGPUConstants.TextureFormat.Depth16Unorm;\r\n case Constants.TEXTUREFORMAT_DEPTH24:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case Constants.TEXTUREFORMAT_DEPTH24_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Depth24PlusStencil8;\r\n case Constants.TEXTUREFORMAT_DEPTH32_FLOAT:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n case Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Depth32FloatStencil8;\r\n case Constants.TEXTUREFORMAT_STENCIL8:\r\n return WebGPUConstants.TextureFormat.Stencil8;\r\n\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC7RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:\r\n return WebGPUConstants.TextureFormat.BC6HRGBUFloat;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:\r\n return WebGPUConstants.TextureFormat.BC6HRGBFloat;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC3RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC2RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB : WebGPUConstants.TextureFormat.BC1RGBAUnorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB : WebGPUConstants.TextureFormat.ASTC4x4Unorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB : WebGPUConstants.TextureFormat.ETC2RGB8Unorm;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB : WebGPUConstants.TextureFormat.ETC2RGBA8Unorm;\r\n }\r\n\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R8Snorm;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG8Snorm;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R8Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG8Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA8Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA8Snorm;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R8Unorm;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG8Unorm;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.RGBA8UnormSRGB : WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n case Constants.TEXTUREFORMAT_BGRA:\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.BGRA8UnormSRGB : WebGPUConstants.TextureFormat.BGRA8Unorm;\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R8Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG8Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA8Uint;\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_ALPHA format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n }\r\n case Constants.TEXTURETYPE_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R16Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG16Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA16Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Sint;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R16Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG16Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA16Uint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Uint;\r\n }\r\n case Constants.TEXTURETYPE_INT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R32Sint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG32Sint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA32Sint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Sint;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return WebGPUConstants.TextureFormat.R32Uint;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return WebGPUConstants.TextureFormat.RG32Uint;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGBA32Uint;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Uint;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R32Float; // By default. Other possibility is R16Float.\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG32Float; // By default. Other possibility is RG16Float.\r\n case Constants.TEXTUREFORMAT_RGB:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGBA32Float; // By default. Other possibility is RGBA16Float.\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA32Float;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return WebGPUConstants.TextureFormat.R16Float;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return WebGPUConstants.TextureFormat.RG16Float;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGBA16Float;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGBA16Float;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RG11B10UFloat;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RG11B10UFloat;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGB9E5UFloat;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\";\r\n default:\r\n return WebGPUConstants.TextureFormat.RGB9E5UFloat;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n // eslint-disable-next-line no-throw-literal\r\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU\";\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return WebGPUConstants.TextureFormat.RGB10A2Unorm;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return WebGPUConstants.TextureFormat.RGB10A2UINT;\r\n default:\r\n return WebGPUConstants.TextureFormat.RGB10A2Unorm;\r\n }\r\n }\r\n\r\n return useSRGBBuffer ? WebGPUConstants.TextureFormat.RGBA8UnormSRGB : WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n }\r\n\r\n public static GetNumChannelsFromWebGPUTextureFormat(format: GPUTextureFormat): number {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.R8Unorm:\r\n case WebGPUConstants.TextureFormat.R8Snorm:\r\n case WebGPUConstants.TextureFormat.R8Uint:\r\n case WebGPUConstants.TextureFormat.R8Sint:\r\n case WebGPUConstants.TextureFormat.BC4RUnorm:\r\n case WebGPUConstants.TextureFormat.BC4RSnorm:\r\n case WebGPUConstants.TextureFormat.R16Uint:\r\n case WebGPUConstants.TextureFormat.R16Sint:\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n case WebGPUConstants.TextureFormat.R16Float:\r\n case WebGPUConstants.TextureFormat.R32Uint:\r\n case WebGPUConstants.TextureFormat.R32Sint:\r\n case WebGPUConstants.TextureFormat.R32Float:\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n case WebGPUConstants.TextureFormat.EACR11Unorm:\r\n case WebGPUConstants.TextureFormat.EACR11Snorm:\r\n return 1;\r\n\r\n case WebGPUConstants.TextureFormat.RG8Unorm:\r\n case WebGPUConstants.TextureFormat.RG8Snorm:\r\n case WebGPUConstants.TextureFormat.RG8Uint:\r\n case WebGPUConstants.TextureFormat.RG8Sint:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.BC5RGUnorm:\r\n case WebGPUConstants.TextureFormat.BC5RGSnorm:\r\n case WebGPUConstants.TextureFormat.RG16Uint:\r\n case WebGPUConstants.TextureFormat.RG16Sint:\r\n case WebGPUConstants.TextureFormat.RG16Float:\r\n case WebGPUConstants.TextureFormat.RG32Uint:\r\n case WebGPUConstants.TextureFormat.RG32Sint:\r\n case WebGPUConstants.TextureFormat.RG32Float:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n case WebGPUConstants.TextureFormat.EACRG11Unorm:\r\n case WebGPUConstants.TextureFormat.EACRG11Snorm:\r\n return 2;\r\n\r\n case WebGPUConstants.TextureFormat.RGB9E5UFloat:\r\n case WebGPUConstants.TextureFormat.RG11B10UFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBUFloat:\r\n case WebGPUConstants.TextureFormat.BC6HRGBFloat:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB:\r\n return 3;\r\n\r\n case WebGPUConstants.TextureFormat.RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA8Snorm:\r\n case WebGPUConstants.TextureFormat.RGBA8Uint:\r\n case WebGPUConstants.TextureFormat.RGBA8Sint:\r\n case WebGPUConstants.TextureFormat.BGRA8Unorm:\r\n case WebGPUConstants.TextureFormat.BGRA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGB10A2UINT:\r\n case WebGPUConstants.TextureFormat.RGB10A2Unorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnorm:\r\n case WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB:\r\n case WebGPUConstants.TextureFormat.RGBA16Uint:\r\n case WebGPUConstants.TextureFormat.RGBA16Sint:\r\n case WebGPUConstants.TextureFormat.RGBA16Float:\r\n case WebGPUConstants.TextureFormat.RGBA32Uint:\r\n case WebGPUConstants.TextureFormat.RGBA32Sint:\r\n case WebGPUConstants.TextureFormat.RGBA32Float:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8Unorm:\r\n case WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC4x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x4Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC5x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC6x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC8x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x5Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x6Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x8Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC10x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x10Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB:\r\n case WebGPUConstants.TextureFormat.ASTC12x12Unorm:\r\n case WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB:\r\n return 4;\r\n }\r\n\r\n // eslint-disable-next-line no-throw-literal\r\n throw `Unknown format ${format}!`;\r\n }\r\n\r\n public static HasStencilAspect(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Stencil8:\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static HasDepthAndStencilAspects(format: GPUTextureFormat): boolean {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static GetDepthFormatOnly(format: GPUTextureFormat): GPUTextureFormat {\r\n switch (format) {\r\n case WebGPUConstants.TextureFormat.Depth16Unorm:\r\n return WebGPUConstants.TextureFormat.Depth16Unorm;\r\n case WebGPUConstants.TextureFormat.Depth24Plus:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case WebGPUConstants.TextureFormat.Depth24PlusStencil8:\r\n return WebGPUConstants.TextureFormat.Depth24Plus;\r\n case WebGPUConstants.TextureFormat.Depth32Float:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n case WebGPUConstants.TextureFormat.Depth32FloatStencil8:\r\n return WebGPUConstants.TextureFormat.Depth32Float;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n public static GetSample(sampleCount: number) {\r\n // WebGPU only supports 1 or 4\r\n return sampleCount > 1 ? 4 : 1;\r\n }\r\n}\r\n"]}
|
|
@@ -148,7 +148,7 @@ const copyVideoToTextureVertexSource = `
|
|
|
148
148
|
@builtin(position) Position : vec4<f32>,
|
|
149
149
|
@location(0) fragUV : vec2<f32>
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
|
|
152
152
|
@vertex
|
|
153
153
|
fn main(
|
|
154
154
|
@builtin(vertex_index) VertexIndex : u32
|
|
@@ -918,6 +918,7 @@ export class WebGPUTextureManager {
|
|
|
918
918
|
}
|
|
919
919
|
else {
|
|
920
920
|
// we should never take this code path
|
|
921
|
+
// eslint-disable-next-line no-throw-literal
|
|
921
922
|
throw "updateTexture: Can't process the texture data because a GPUTexture was provided instead of an InternalTexture!";
|
|
922
923
|
}
|
|
923
924
|
}
|