@onerjs/core 8.56.4 → 9.0.1
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/Animations/animatable.core.js +36 -0
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationGroup.pure.d.ts +61 -1
- package/Animations/animationGroup.pure.js +191 -2
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/index.d.ts +1 -0
- package/Animations/index.js +1 -0
- package/Animations/index.js.map +1 -1
- package/Animations/pure.d.ts +1 -0
- package/Animations/pure.js +1 -0
- package/Animations/pure.js.map +1 -1
- package/Animations/rootMotion.d.ts +560 -0
- package/Animations/rootMotion.js +1709 -0
- package/Animations/rootMotion.js.map +1 -0
- package/Animations/runtimeAnimation.d.ts +57 -0
- package/Animations/runtimeAnimation.js +127 -3
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.d.ts +2 -0
- package/Cameras/arcRotateCamera.pure.js +2 -0
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +2 -0
- package/Cameras/targetCamera.pure.js +13 -2
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
- package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
- package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.pure.js +63 -0
- package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
- package/Engines/Extensions/index.d.ts +1 -0
- package/Engines/Extensions/index.js +1 -0
- package/Engines/Extensions/index.js.map +1 -1
- package/Engines/Extensions/pure.d.ts +1 -1
- package/Engines/Extensions/pure.js +1 -1
- package/Engines/Extensions/pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
- package/Engines/Native/nativeHardwareTexture.d.ts +8 -1
- package/Engines/Native/nativeHardwareTexture.js +7 -0
- package/Engines/Native/nativeHardwareTexture.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +56 -1
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +37 -8
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +40 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +265 -5
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -0
- package/Engines/Processors/shaderCodeCursor.js +40 -3
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
- package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js +1 -0
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/index.d.ts +1 -0
- package/Engines/WebGPU/Extensions/index.js +1 -0
- package/Engines/WebGPU/Extensions/index.js.map +1 -1
- package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
- package/Engines/WebGPU/Extensions/pure.js +1 -1
- package/Engines/WebGPU/Extensions/pure.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
- package/Engines/WebGPU/webgpuBundleList.js +4 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
- package/Engines/WebGPU/webgpuTextureManager.js +286 -13
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +17 -1
- package/Engines/abstractEngine.pure.js +17 -5
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.pure.d.ts +0 -1
- package/Engines/engine.pure.js +0 -7
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nativeEngine.pure.js +1 -1
- package/Engines/nativeEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +15 -0
- package/Engines/thinEngine.pure.js +61 -14
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +218 -17
- package/Engines/thinNativeEngine.pure.js +1438 -165
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/thinWebGPUEngine.d.ts +4 -0
- package/Engines/thinWebGPUEngine.js +16 -2
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +17 -3
- package/Engines/webgpuEngine.pure.js +56 -13
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.d.ts +10 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js +24 -12
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.d.ts +7 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js +43 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +18 -4
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +24 -6
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +85 -25
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +8 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js +4 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js +14 -2
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.d.ts +5 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js +23 -8
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.d.ts +5 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js +7 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +10 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +14 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +6 -1
- package/FlowGraph/flowGraph.js +41 -9
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphAnimationHelpers.d.ts +24 -0
- package/FlowGraph/flowGraphAnimationHelpers.js +21 -0
- package/FlowGraph/flowGraphAnimationHelpers.js.map +1 -0
- package/FlowGraph/flowGraphBlock.js +3 -0
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +7 -0
- package/FlowGraph/flowGraphConnection.js +7 -0
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +2 -1
- package/FlowGraph/flowGraphContext.js +5 -3
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
- package/FlowGraph/flowGraphCoordinator.js +47 -16
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
- package/FlowGraph/flowGraphEventBlock.js +7 -0
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
- package/FlowGraph/flowGraphHostResolver.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +60 -2
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphValidator.js +0 -4
- package/FlowGraph/flowGraphValidator.js.map +1 -1
- package/FlowGraph/index.d.ts +2 -0
- package/FlowGraph/index.js +2 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/pure.d.ts +2 -0
- package/FlowGraph/pure.js +2 -0
- package/FlowGraph/pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +4 -2
- package/FlowGraph/serialization.js +12 -24
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +9 -1
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js +4 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.d.ts +54 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js +155 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/allBlocks.pure.js +4 -0
- package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +2 -0
- package/FrameGraph/Node/Blocks/index.js +2 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/pure.d.ts +2 -0
- package/FrameGraph/Node/Blocks/pure.js +2 -0
- package/FrameGraph/Node/Blocks/pure.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.d.ts +62 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js +159 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +72 -34
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraph.d.ts +4 -0
- package/FrameGraph/frameGraph.js +14 -0
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphObjectList.d.ts +6 -1
- package/FrameGraph/frameGraphObjectList.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
- package/FrameGraph/frameGraphRenderContext.js +5 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/index.d.ts +2 -0
- package/FrameGraph/index.js +2 -0
- package/FrameGraph/index.js.map +1 -1
- package/FrameGraph/pure.d.ts +2 -0
- package/FrameGraph/pure.js +2 -0
- package/FrameGraph/pure.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +4 -0
- package/Inputs/scene.inputManager.js +50 -8
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.d.ts +5 -0
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js +22 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +7 -3
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.d.ts +54 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js +81 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.d.ts +60 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js +90 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.d.ts +31 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +103 -5
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +6 -6
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +153 -49
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.d.ts +83 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js +191 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.d.ts +62 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js +125 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/pure.d.ts +4 -0
- package/Materials/GaussianSplatting/pure.js +4 -0
- package/Materials/GaussianSplatting/pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +12 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
- package/Materials/Node/nodeMaterial.pure.js +4 -0
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +25 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +14 -14
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +37 -13
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +3 -0
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +1 -1
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +8 -1
- package/Materials/Textures/internalTexture.js +9 -2
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.pure.js +3 -1
- package/Materials/Textures/mirrorTexture.pure.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
- package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
- package/Materials/Textures/rawTexture3D.d.ts +1 -1
- package/Materials/Textures/rawTexture3D.js +1 -1
- package/Materials/Textures/rawTexture3D.js.map +1 -1
- package/Materials/Textures/texture.pure.js +1 -1
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/textureHelper.functions.d.ts +14 -0
- package/Materials/Textures/textureHelper.functions.js +24 -0
- package/Materials/Textures/textureHelper.functions.js.map +1 -1
- package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
- package/Materials/effectRenderer.pure.d.ts +4 -0
- package/Materials/effectRenderer.pure.js +3 -2
- package/Materials/effectRenderer.pure.js.map +1 -1
- package/Materials/index.d.ts +5 -0
- package/Materials/index.js +5 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.pure.js +25 -12
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +46 -1
- package/Materials/materialHelper.geometryrendering.js +105 -8
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +2 -0
- package/Materials/prepass.defines.js +2 -0
- package/Materials/prepass.defines.js.map +1 -1
- package/Materials/pure.d.ts +5 -0
- package/Materials/pure.js +5 -0
- package/Materials/pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +10 -0
- package/Materials/standardMaterial.pure.js +30 -5
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
- package/Meshes/Builders/polygonBuilder.pure.js +3 -0
- package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.d.ts +8 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js +11 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.d.ts +231 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js +1212 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.d.ts +14 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js +15 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.d.ts +285 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js +812 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +2 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +163 -14
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +239 -24
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +34 -4
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +125 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/pure.d.ts +2 -0
- package/Meshes/GaussianSplatting/pure.js +2 -0
- package/Meshes/GaussianSplatting/pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +25 -11
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.d.ts +30 -0
- package/Meshes/abstractMesh.pure.js +54 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/index.d.ts +2 -0
- package/Meshes/index.js +2 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/instancedMesh.pure.d.ts +5 -0
- package/Meshes/instancedMesh.pure.js +12 -0
- package/Meshes/instancedMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +23 -8
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/meshBlendingTag.d.ts +47 -0
- package/Meshes/meshBlendingTag.js +64 -0
- package/Meshes/meshBlendingTag.js.map +1 -0
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/pure.d.ts +2 -0
- package/Meshes/pure.js +2 -0
- package/Meshes/pure.js.map +1 -1
- package/Meshes/subMesh.pure.d.ts +11 -2
- package/Meshes/subMesh.pure.js +20 -5
- package/Meshes/subMesh.pure.js.map +1 -1
- package/Meshes/thinInstanceMesh.pure.js +1 -0
- package/Meshes/thinInstanceMesh.pure.js.map +1 -1
- package/Misc/andOrNotEvaluator.js +4 -0
- package/Misc/andOrNotEvaluator.js.map +1 -1
- package/Misc/fileTools.pure.js +21 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/minMaxReducer.pure.d.ts +6 -0
- package/Misc/minMaxReducer.pure.js +10 -0
- package/Misc/minMaxReducer.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +2 -2
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +19 -2
- package/Misc/thinMinMaxReducer.js +74 -21
- package/Misc/thinMinMaxReducer.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js +19 -7
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js +3 -2
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -0
- package/Particles/gpuParticleSystem.pure.js +101 -32
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particle.js +3 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/solidParticleSystem.js +7 -1
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.function.d.ts +6 -0
- package/Particles/thinParticleSystem.function.js +144 -88
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Particles/thinParticleSystem.pure.d.ts +8 -0
- package/Particles/thinParticleSystem.pure.js +154 -28
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
- package/Particles/webgl2ParticleSystem.pure.js +12 -4
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +2 -4
- package/Physics/v2/ragdoll.js +11 -4
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/index.d.ts +2 -0
- package/PostProcesses/index.js +2 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
- package/PostProcesses/meshBlendingBlueNoise.js +77 -0
- package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
- package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
- package/PostProcesses/meshBlendingPostProcess.js +315 -0
- package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
- package/PostProcesses/pure.d.ts +2 -0
- package/PostProcesses/pure.js +2 -0
- package/PostProcesses/pure.js.map +1 -1
- package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +12 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +50 -25
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +2 -1
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/depthRenderer.pure.d.ts +9 -0
- package/Rendering/depthRenderer.pure.js +15 -4
- package/Rendering/depthRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.d.ts +4 -2
- package/Rendering/edgesRenderer.pure.js +11 -2
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +14 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js +26 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +13 -3
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +22 -9
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -0
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
- package/Rendering/geometryBufferRenderer.pure.js +130 -18
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +7 -1
- package/Rendering/objectRenderer.js +45 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.pure.js +6 -2
- package/Rendering/outlineRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +3 -3
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/renderingManager.d.ts +1 -1
- package/Rendering/renderingManager.js +5 -4
- package/Rendering/renderingManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +6 -2
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +31 -40
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +13 -9
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +63 -3
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +80 -0
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +17 -11
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +43 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +96 -16
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/meshBlending.fragment.d.ts +5 -0
- package/Shaders/meshBlending.fragment.js +519 -0
- package/Shaders/meshBlending.fragment.js.map +1 -0
- package/Shaders/minmaxRedux.fragment.js +6 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/particles.fragment.js +43 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +84 -3
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +52 -2
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +62 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js +65 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js +17 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +6 -78
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js +2 -2
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js +79 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +17 -48
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js +22 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js +19 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js +21 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +82 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +37 -2
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/gpsHiZBuild.compute.d.ts +5 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js +16 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js.map +1 -0
- package/ShadersWGSL/gpsPartition.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPartition.compute.js +27 -0
- package/ShadersWGSL/gpsPartition.compute.js.map +1 -0
- package/ShadersWGSL/gpsPreprocess.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPreprocess.compute.js +86 -0
- package/ShadersWGSL/gpsPreprocess.compute.js.map +1 -0
- package/ShadersWGSL/gpsResolve.compute.d.ts +5 -0
- package/ShadersWGSL/gpsResolve.compute.js +41 -0
- package/ShadersWGSL/gpsResolve.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanAdd.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanAdd.compute.js +22 -0
- package/ShadersWGSL/gpsScanAdd.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanBlocks.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js +23 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanSums.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanSums.compute.js +30 -0
- package/ShadersWGSL/gpsScanSums.compute.js.map +1 -0
- package/ShadersWGSL/gpsSplat.compute.d.ts +5 -0
- package/ShadersWGSL/gpsSplat.compute.js +37 -0
- package/ShadersWGSL/gpsSplat.compute.js.map +1 -0
- package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
- package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
- package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
- package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
- package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
- package/ShadersWGSL/meshBlending.fragment.js +576 -0
- package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
- package/ShadersWGSL/minmaxRedux.fragment.js +20 -3
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.fragment.js +2 -1
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/particles.fragment.js +45 -1
- package/ShadersWGSL/particles.fragment.js.map +1 -1
- package/ShadersWGSL/particles.vertex.js +86 -4
- package/ShadersWGSL/particles.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +2 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.fragment.js +56 -2
- package/ShadersWGSL/sprites.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.vertex.js +62 -1
- package/ShadersWGSL/sprites.vertex.js.map +1 -1
- package/Sprites/spriteManager.d.ts +13 -0
- package/Sprites/spriteManager.js +15 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.d.ts +24 -1
- package/Sprites/spriteRenderer.js +368 -50
- package/Sprites/spriteRenderer.js.map +1 -1
- package/Sprites/thinSprite.d.ts +4 -0
- package/Sprites/thinSprite.js +4 -0
- package/Sprites/thinSprite.js.map +1 -1
- package/States/alphaCullingState.d.ts +3 -1
- package/States/alphaCullingState.js +18 -3
- package/States/alphaCullingState.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.pure.js +2 -1
- package/XR/features/WebXRSpaceWarp.pure.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +5 -1
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.d.ts +2 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/assetContainer.d.ts +1 -0
- package/assetContainer.js +5 -1
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +36 -2
- package/scene.pure.js +63 -4
- package/scene.pure.js.map +1 -1
|
@@ -2,6 +2,7 @@ import { type IMultiRenderTargetOptions } from "../../../Materials/Textures/mult
|
|
|
2
2
|
import { type Nullable } from "../../../types.js";
|
|
3
3
|
import { type TextureSize } from "../../../Materials/Textures/textureCreationOptions.js";
|
|
4
4
|
import { type RenderTargetWrapper } from "../../renderTargetWrapper.js";
|
|
5
|
+
import { type IColor4Like } from "../../../Maths/math.like.js";
|
|
5
6
|
declare module "../../abstractEngine.pure.js" {
|
|
6
7
|
interface AbstractEngine {
|
|
7
8
|
/**
|
|
@@ -47,6 +48,18 @@ declare module "../../abstractEngine.pure.js" {
|
|
|
47
48
|
* @param attachments gl attachments
|
|
48
49
|
*/
|
|
49
50
|
bindAttachments(attachments: number[]): void;
|
|
51
|
+
/**
|
|
52
|
+
* Clears selected color attachments and optionally the depth/stencil attachments.
|
|
53
|
+
* Attachment formats are handled by the active rendering backend.
|
|
54
|
+
* @param color Clear color
|
|
55
|
+
* @param attachments Attachment layout created by buildTextureLayout
|
|
56
|
+
* @param clearColor Whether color attachments should be cleared
|
|
57
|
+
* @param clearDepth Whether the depth attachment should be cleared
|
|
58
|
+
* @param clearStencil Whether the stencil attachment should be cleared
|
|
59
|
+
* @param stencilClearValue Stencil clear value
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
clearAttachments(color: Nullable<IColor4Like>, attachments: number[], clearColor: boolean, clearDepth: boolean, clearStencil?: boolean, stencilClearValue?: number): void;
|
|
50
63
|
/**
|
|
51
64
|
* Creates a layout object to draw/clear on specific textures in a MRT
|
|
52
65
|
* @param textureStatus textureStatus[i] indicates if the i-th is active
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.multiRender.types.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.multiRender.types.ts"],"names":[],"mappings":"","sourcesContent":["import { type IMultiRenderTargetOptions } from \"../../../Materials/Textures/multiRenderTarget\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type TextureSize } from \"../../../Materials/Textures/textureCreationOptions\";\r\nimport { type RenderTargetWrapper } from \"../../renderTargetWrapper\";\r\ndeclare module \"../../abstractEngine.pure\" {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n export interface AbstractEngine {\r\n /**\r\n * Unbind a list of render target textures from the webGL context\r\n * This is used only when drawBuffer extension or webGL2 are active\r\n * @param rtWrapper defines the render target wrapper to unbind\r\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\r\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\r\n */\r\n unBindMultiColorAttachmentFramebuffer(rtWrapper: RenderTargetWrapper, disableGenerateMipMaps: boolean, onBeforeUnbind?: () => void): void;\r\n\r\n /**\r\n * Create a multi render target texture\r\n * @see https://doc.babylonjs.com/setup/support/webGL2#multiple-render-target\r\n * @param size defines the size of the texture\r\n * @param options defines the creation options\r\n * @param initializeBuffers if set to true, the engine will make an initializing call of drawBuffers\r\n * @returns a new render target wrapper ready to render textures\r\n */\r\n createMultipleRenderTarget(size: TextureSize, options: IMultiRenderTargetOptions, initializeBuffers?: boolean): RenderTargetWrapper;\r\n\r\n /**\r\n * Update the sample count for a given multiple render target texture\r\n * @see https://doc.babylonjs.com/setup/support/webGL2#multisample-render-targets\r\n * @param rtWrapper defines the render target wrapper to update\r\n * @param samples defines the sample count to set\r\n * @param initializeBuffers if set to true, the engine will make an initializing call of drawBuffers\r\n * @returns the effective sample count (could be 0 if multisample render targets are not supported)\r\n */\r\n updateMultipleRenderTargetTextureSampleCount(rtWrapper: Nullable<RenderTargetWrapper>, samples: number, initializeBuffers?: boolean): number;\r\n\r\n /**\r\n * Generates mipmaps for the texture of the (multi) render target\r\n * @param texture The render target containing the textures to generate the mipmaps for\r\n */\r\n generateMipMapsMultiFramebuffer(texture: RenderTargetWrapper): void;\r\n\r\n /**\r\n * Resolves the MSAA textures of the (multi) render target into their non-MSAA version.\r\n * Note that if \"texture\" is not a MSAA render target, no resolve is performed.\r\n * @param texture The render target texture containing the MSAA textures to resolve\r\n * @param resolveColors If true, resolve the color textures (default: true) - still subject to texture.resolveMSAAColors\r\n */\r\n resolveMultiFramebuffer(texture: RenderTargetWrapper, resolveColors?: boolean): void;\r\n\r\n /**\r\n * Select a subsets of attachments to draw to.\r\n * @param attachments gl attachments\r\n */\r\n bindAttachments(attachments: number[]): void;\r\n\r\n /**\r\n * Creates a layout object to draw/clear on specific textures in a MRT\r\n * @param textureStatus textureStatus[i] indicates if the i-th is active\r\n * @param backBufferLayout if true, the layout will be built to account for the back buffer only, and textureStatus won't be used\r\n * @returns A layout to be fed to the engine, calling `bindAttachments`.\r\n */\r\n buildTextureLayout(textureStatus: boolean[], backBufferLayout?: boolean): number[];\r\n\r\n /**\r\n * Restores the webgl state to only draw on the main color attachment\r\n * when the frame buffer associated is the canvas frame buffer\r\n */\r\n restoreSingleAttachment(): void;\r\n\r\n /**\r\n * Restores the webgl state to only draw on the main color attachment\r\n * when the frame buffer associated is not the canvas frame buffer\r\n */\r\n restoreSingleAttachmentForRenderTarget(): void;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.multiRender.types.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.multiRender.types.ts"],"names":[],"mappings":"","sourcesContent":["import { type IMultiRenderTargetOptions } from \"../../../Materials/Textures/multiRenderTarget\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type TextureSize } from \"../../../Materials/Textures/textureCreationOptions\";\r\nimport { type RenderTargetWrapper } from \"../../renderTargetWrapper\";\r\nimport { type IColor4Like } from \"../../../Maths/math.like\";\r\ndeclare module \"../../abstractEngine.pure\" {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n export interface AbstractEngine {\r\n /**\r\n * Unbind a list of render target textures from the webGL context\r\n * This is used only when drawBuffer extension or webGL2 are active\r\n * @param rtWrapper defines the render target wrapper to unbind\r\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\r\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\r\n */\r\n unBindMultiColorAttachmentFramebuffer(rtWrapper: RenderTargetWrapper, disableGenerateMipMaps: boolean, onBeforeUnbind?: () => void): void;\r\n\r\n /**\r\n * Create a multi render target texture\r\n * @see https://doc.babylonjs.com/setup/support/webGL2#multiple-render-target\r\n * @param size defines the size of the texture\r\n * @param options defines the creation options\r\n * @param initializeBuffers if set to true, the engine will make an initializing call of drawBuffers\r\n * @returns a new render target wrapper ready to render textures\r\n */\r\n createMultipleRenderTarget(size: TextureSize, options: IMultiRenderTargetOptions, initializeBuffers?: boolean): RenderTargetWrapper;\r\n\r\n /**\r\n * Update the sample count for a given multiple render target texture\r\n * @see https://doc.babylonjs.com/setup/support/webGL2#multisample-render-targets\r\n * @param rtWrapper defines the render target wrapper to update\r\n * @param samples defines the sample count to set\r\n * @param initializeBuffers if set to true, the engine will make an initializing call of drawBuffers\r\n * @returns the effective sample count (could be 0 if multisample render targets are not supported)\r\n */\r\n updateMultipleRenderTargetTextureSampleCount(rtWrapper: Nullable<RenderTargetWrapper>, samples: number, initializeBuffers?: boolean): number;\r\n\r\n /**\r\n * Generates mipmaps for the texture of the (multi) render target\r\n * @param texture The render target containing the textures to generate the mipmaps for\r\n */\r\n generateMipMapsMultiFramebuffer(texture: RenderTargetWrapper): void;\r\n\r\n /**\r\n * Resolves the MSAA textures of the (multi) render target into their non-MSAA version.\r\n * Note that if \"texture\" is not a MSAA render target, no resolve is performed.\r\n * @param texture The render target texture containing the MSAA textures to resolve\r\n * @param resolveColors If true, resolve the color textures (default: true) - still subject to texture.resolveMSAAColors\r\n */\r\n resolveMultiFramebuffer(texture: RenderTargetWrapper, resolveColors?: boolean): void;\r\n\r\n /**\r\n * Select a subsets of attachments to draw to.\r\n * @param attachments gl attachments\r\n */\r\n bindAttachments(attachments: number[]): void;\r\n\r\n /**\r\n * Clears selected color attachments and optionally the depth/stencil attachments.\r\n * Attachment formats are handled by the active rendering backend.\r\n * @param color Clear color\r\n * @param attachments Attachment layout created by buildTextureLayout\r\n * @param clearColor Whether color attachments should be cleared\r\n * @param clearDepth Whether the depth attachment should be cleared\r\n * @param clearStencil Whether the stencil attachment should be cleared\r\n * @param stencilClearValue Stencil clear value\r\n * @internal\r\n */\r\n clearAttachments(color: Nullable<IColor4Like>, attachments: number[], clearColor: boolean, clearDepth: boolean, clearStencil?: boolean, stencilClearValue?: number): void;\r\n\r\n /**\r\n * Creates a layout object to draw/clear on specific textures in a MRT\r\n * @param textureStatus textureStatus[i] indicates if the i-th is active\r\n * @param backBufferLayout if true, the layout will be built to account for the back buffer only, and textureStatus won't be used\r\n * @returns A layout to be fed to the engine, calling `bindAttachments`.\r\n */\r\n buildTextureLayout(textureStatus: boolean[], backBufferLayout?: boolean): number[];\r\n\r\n /**\r\n * Restores the webgl state to only draw on the main color attachment\r\n * when the frame buffer associated is the canvas frame buffer\r\n */\r\n restoreSingleAttachment(): void;\r\n\r\n /**\r\n * Restores the webgl state to only draw on the main color attachment\r\n * when the frame buffer associated is not the canvas frame buffer\r\n */\r\n restoreSingleAttachmentForRenderTarget(): void;\r\n }\r\n}\r\n"]}
|
|
@@ -32,8 +32,13 @@ export function RegisterEnginesWebGPUExtensionsEngineQuery() {
|
|
|
32
32
|
};
|
|
33
33
|
ThinWebGPUEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {
|
|
34
34
|
if (this.compatibilityMode) {
|
|
35
|
-
if (this.
|
|
36
|
-
|
|
35
|
+
if (this._occlusionQueryActive) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const renderPass = this._getCurrentRenderPass();
|
|
39
|
+
if (renderPass && this._occlusionQuery.canBeginQuery(query)) {
|
|
40
|
+
renderPass.beginOcclusionQuery(query);
|
|
41
|
+
this._occlusionQueryActive = true;
|
|
37
42
|
return true;
|
|
38
43
|
}
|
|
39
44
|
}
|
|
@@ -45,7 +50,10 @@ export function RegisterEnginesWebGPUExtensionsEngineQuery() {
|
|
|
45
50
|
};
|
|
46
51
|
ThinWebGPUEngine.prototype.endOcclusionQuery = function () {
|
|
47
52
|
if (this.compatibilityMode) {
|
|
48
|
-
this.
|
|
53
|
+
if (this._occlusionQueryActive) {
|
|
54
|
+
this._currentRenderPass?.endOcclusionQuery();
|
|
55
|
+
this._occlusionQueryActive = false;
|
|
56
|
+
}
|
|
49
57
|
}
|
|
50
58
|
else {
|
|
51
59
|
this._bundleList.addItem(new WebGPURenderItemEndOcclusionQuery());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.query.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.query.pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mCAAmC,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAU7G,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,0CAA0C;IACtD,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,GAAG;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IACpD,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,KAAc;QACrE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACnE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAqB;QACpE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAAU,KAAqB;QAC/E,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAAe,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAqB;QACvE,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAe,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,aAAqB,EAAE,KAAqB;QACnG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.query.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.query.pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mCAAmC,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAU7G,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,0CAA0C;IACtD,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,GAAG;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IACpD,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,KAAc;QACrE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACnE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAqB;QACpE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAAU,KAAqB;QAC/E,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAAe,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAqB;QACvE,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAe,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,aAAqB,EAAE,KAAqB;QACnG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChD,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAe,CAAC,EAAE,CAAC;gBACpE,UAAU,CAAC,mBAAmB,CAAC,KAAe,CAAC,CAAC;gBAChD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,mCAAmC,CAAC,KAAe,CAAC,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,GAAG;QAC3C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACvC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { ThinWebGPUEngine } from \"core/Engines/thinWebGPUEngine\";\r\nimport { WebGPURenderItemBeginOcclusionQuery, WebGPURenderItemEndOcclusionQuery } from \"../webgpuBundleList\";\r\nimport { type PerfCounter } from \"../../../Misc/perfCounter\";\r\nimport { type OcclusionQuery } from \"../../../Engines/AbstractEngine/abstractEngine.query.pure\";\r\n\r\n// eslint-disable-next-line import/no-duplicates\r\n\r\n// eslint-disable-next-line import/no-duplicates\r\n\r\nexport {};\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for enginesWebGPUExtensionsEngineQuery.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterEnginesWebGPUExtensionsEngineQuery(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n ThinWebGPUEngine.prototype.getGPUFrameTimeCounter = function (): PerfCounter {\r\n return this._timestampQuery.gpuFrameTimeCounter;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.captureGPUFrameTime = function (value: boolean) {\r\n this._timestampQuery.enable = value && !!this._caps.timerQuery;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.createQuery = function (): OcclusionQuery {\r\n return this._occlusionQuery.createQuery();\r\n };\r\n\r\n ThinWebGPUEngine.prototype.deleteQuery = function (query: OcclusionQuery): ThinWebGPUEngine {\r\n this._occlusionQuery.deleteQuery(query as number);\r\n\r\n return this;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.isQueryResultAvailable = function (query: OcclusionQuery): boolean {\r\n return this._occlusionQuery.isQueryResultAvailable(query as number);\r\n };\r\n\r\n ThinWebGPUEngine.prototype.getQueryResult = function (query: OcclusionQuery): number {\r\n return this._occlusionQuery.getQueryResult(query as number);\r\n };\r\n\r\n ThinWebGPUEngine.prototype.beginOcclusionQuery = function (algorithmType: number, query: OcclusionQuery): boolean {\r\n if (this.compatibilityMode) {\r\n if (this._occlusionQueryActive) {\r\n return false;\r\n }\r\n\r\n const renderPass = this._getCurrentRenderPass();\r\n if (renderPass && this._occlusionQuery.canBeginQuery(query as number)) {\r\n renderPass.beginOcclusionQuery(query as number);\r\n this._occlusionQueryActive = true;\r\n return true;\r\n }\r\n } else {\r\n this._bundleList.addItem(new WebGPURenderItemBeginOcclusionQuery(query as number));\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.endOcclusionQuery = function (): ThinWebGPUEngine {\r\n if (this.compatibilityMode) {\r\n if (this._occlusionQueryActive) {\r\n this._currentRenderPass?.endOcclusionQuery();\r\n this._occlusionQueryActive = false;\r\n }\r\n } else {\r\n this._bundleList.addItem(new WebGPURenderItemEndOcclusionQuery());\r\n }\r\n return this;\r\n };\r\n}\r\n"]}
|
|
@@ -34,6 +34,7 @@ export function RegisterEnginesWebGPUExtensionsEngineRenderTarget() {
|
|
|
34
34
|
fullOptions.label = options.label;
|
|
35
35
|
fullOptions.format = options.format;
|
|
36
36
|
fullOptions.type = options.type;
|
|
37
|
+
fullOptions.useSRGBBuffer = options.useSRGBBuffer;
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
39
40
|
fullOptions.generateMipMaps = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.renderTarget.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.renderTarget.pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAyB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGrG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,iDAAiD;IAC7D,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,gBAAgB,CAAC,SAAS,CAAC,kCAAkC,GAAG,UAAU,OAAgB,EAAE,MAAe,EAAE,IAAiB;QAC1H,MAAM,SAAS,GAAG,IAAI,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAAU,IAAiB,EAAE,OAA8C;QAC9H,MAAM,SAAS,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAA8B,CAAC;QAE3G,MAAM,WAAW,GAAgC,EAAE,CAAC;QAEpD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvD,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YACtD,WAAW,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACjH,WAAW,CAAC,qBAAqB,GAAG,WAAW,CAAC,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;YACrG,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YAChI,WAAW,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;YACvD,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC5D,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YACtD,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACtC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACpC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC;YACtC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACvC,WAAW,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAC1C,WAAW,CAAC,YAAY,GAAG,SAAS,CAAC,8BAA8B,CAAC;YACpE,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;YAC9B,WAAW,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GACT,WAAW,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,6CAAqC,CAAC,CAAC;QAErK,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,qBAAqB,CAAC;QAC7D,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,eAAe,EAAE,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QACtF,SAAS,CAAC,oBAAoB,GAAG,WAAW,CAAC,mBAAmB,CAAC;QACjE,SAAS,CAAC,sBAAsB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpF,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,SAAS,CAAC,oBAAoB,IAAI,SAAS,CAAC,sBAAsB,EAAE,CAAC;YACrE,SAAS,CAAC,yBAAyB,CAC/B,CAAC,EACD,KAAK,EAAE,+DAA+D;YACtE,SAAS,CAAC,sBAAsB,EAChC,SAAS,CAAC,OAAO,EACjB,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,2BAA2B,EACpH,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;QACN,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBAChH,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,kCAAkC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;YAE5H,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBAChH,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;YACpC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,0BAA0B,GAAG,UACpD,IAAiB,EACjB,OAAoC,EACpC,OAAkC;QAElC,MAAM,eAAe,GAAG;YACpB,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,CAAC;YACV,kBAAkB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,2BAA2B;YAC9H,GAAG,OAAO;SACb,CAAC;QAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAExE,OAAO,CAAC,+BAA+B,GAAG,UAAU,CAAC;QAErD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,6CAAoC,CAAC,qCAA4B,CAAC,CAAC;QAEjI,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtC,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,kBAAkB,CAAC;QAC5D,eAAe,CAAC,IAAI,GAAG,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,IAAI,EAAE,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtJ,IAAI,CAAC,cAAc,CAAC,kCAAkC,CAAC,eAAe,CAAC,CAAC;QAExE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAElD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,yBAAyB,GAAG,UACnD,eAAgC,EAChC,IAAiB,EACjB,iBAA0B,EAC1B,kBAA0B,EAC1B,OAAO,GAAG,CAAC;QAEX,MAAM,KAAK,GAAwD,IAAK,CAAC,KAAK,IAAY,IAAI,CAAC;QAC/F,MAAM,MAAM,GAAwD,IAAK,CAAC,MAAM,IAAY,IAAI,CAAC;QACjG,MAAM,MAAM,GAAwE,IAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACtG,MAAM,KAAK,GAAwE,IAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEpG,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;QAClC,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC;QACpC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,eAAe,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;QACvC,eAAe,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACjC,eAAe,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC;QACxC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,eAAe,CAAC,eAAe,GAAG,KAAK,CAAC;QACxC,eAAe,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC;QACpI,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,mCAAmC;QACvF,eAAe,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QACzD,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACnE,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC,yBAAyB,CAAC;IACvE,CAAC,CAAC;IAEF,gBAAgB,CAAC,SAAS,CAAC,oCAAoC,GAAG,UAAU,SAAwC,EAAE,OAAe;QACjI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACpE,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;QAE3D,uEAAuE;QACvE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAmD,CAAC;QAEzF,UAAU,EAAE,mBAAmB,EAAE,CAAC;QAElC,IAAI,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAChC,SAAS,CAAC,oBAAoB,CAAC,gBAAoD,EAAE,mBAAmB,EAAE,CAAC;YAC5G,SAAS,CAAC,oBAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;QACrD,CAAC;QAED,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAEpC,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;AACN,CAAC","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { InternalTextureSource, InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type RenderTargetCreationOptions, type DepthTextureCreationOptions, type TextureSize } from \"../../../Materials/Textures/textureCreationOptions\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { Constants } from \"../../constants\";\r\nimport { type RenderTargetWrapper } from \"../../renderTargetWrapper\";\r\nimport { WebGPURenderTargetWrapper } from \"../webgpuRenderTargetWrapper\";\r\nimport { GetTypeForDepthTexture, HasStencilAspect } from \"core/Materials/Textures/textureHelper.functions\";\r\nimport { ThinWebGPUEngine } from \"core/Engines/thinWebGPUEngine\";\r\nimport { type WebGPUHardwareTexture } from \"../webgpuHardwareTexture\";\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for enginesWebGPUExtensionsEngineRenderTarget.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterEnginesWebGPUExtensionsEngineRenderTarget(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n ThinWebGPUEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti: boolean, isCube: boolean, size: TextureSize): WebGPURenderTargetWrapper {\r\n const rtWrapper = new WebGPURenderTargetWrapper(isMulti, isCube, size, this);\r\n this._renderTargetWrapperCache.push(rtWrapper);\r\n return rtWrapper;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.createRenderTargetTexture = function (size: TextureSize, options: boolean | RenderTargetCreationOptions): WebGPURenderTargetWrapper {\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size) as WebGPURenderTargetWrapper;\r\n\r\n const fullOptions: RenderTargetCreationOptions = {};\r\n\r\n if (options !== undefined && typeof options === \"object\") {\r\n fullOptions.generateMipMaps = options.generateMipMaps;\r\n fullOptions.generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;\r\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && options.generateStencilBuffer;\r\n fullOptions.samplingMode = options.samplingMode === undefined ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : options.samplingMode;\r\n fullOptions.creationFlags = options.creationFlags ?? 0;\r\n fullOptions.noColorAttachment = !!options.noColorAttachment;\r\n fullOptions.colorAttachment = options.colorAttachment;\r\n fullOptions.samples = options.samples;\r\n fullOptions.label = options.label;\r\n fullOptions.format = options.format;\r\n fullOptions.type = options.type;\r\n } else {\r\n fullOptions.generateMipMaps = options;\r\n fullOptions.generateDepthBuffer = true;\r\n fullOptions.generateStencilBuffer = false;\r\n fullOptions.samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\r\n fullOptions.creationFlags = 0;\r\n fullOptions.noColorAttachment = false;\r\n }\r\n\r\n const texture =\r\n fullOptions.colorAttachment || (fullOptions.noColorAttachment ? null : this._createInternalTexture(size, fullOptions, true, InternalTextureSource.RenderTarget));\r\n\r\n rtWrapper.label = fullOptions.label ?? \"RenderTargetWrapper\";\r\n rtWrapper._samples = fullOptions.colorAttachment?.samples ?? fullOptions.samples ?? 1;\r\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\r\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer ? true : false;\r\n\r\n rtWrapper.setTextures(texture);\r\n\r\n if (rtWrapper._generateDepthBuffer || rtWrapper._generateStencilBuffer) {\r\n rtWrapper.createDepthStencilTexture(\r\n 0,\r\n false, // force false as filtering is not supported for depth textures\r\n rtWrapper._generateStencilBuffer,\r\n rtWrapper.samples,\r\n fullOptions.generateStencilBuffer ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH32_FLOAT,\r\n fullOptions.label ? fullOptions.label + \"-DepthStencil\" : undefined\r\n );\r\n }\r\n\r\n if (texture && !fullOptions.colorAttachment) {\r\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\r\n texture.generateMipMaps = true;\r\n }\r\n\r\n this._textureHelper.createGPUTextureForInternalTexture(texture, undefined, undefined, undefined, fullOptions.creationFlags);\r\n\r\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\r\n texture.generateMipMaps = false;\r\n }\r\n }\r\n\r\n return rtWrapper;\r\n };\r\n\r\n ThinWebGPUEngine.prototype._createDepthStencilTexture = function (\r\n size: TextureSize,\r\n options: DepthTextureCreationOptions,\r\n wrapper: WebGPURenderTargetWrapper\r\n ): InternalTexture {\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n samples: 1,\r\n depthTextureFormat: options.generateStencil ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH32_FLOAT,\r\n ...options,\r\n };\r\n\r\n const hasStencil = HasStencilAspect(internalOptions.depthTextureFormat);\r\n\r\n wrapper._depthStencilTextureWithStencil = hasStencil;\r\n\r\n const internalTexture = new InternalTexture(this, hasStencil ? InternalTextureSource.DepthStencil : InternalTextureSource.Depth);\r\n\r\n internalTexture.label = options.label;\r\n\r\n internalTexture.format = internalOptions.depthTextureFormat;\r\n internalTexture.type = GetTypeForDepthTexture(internalTexture.format);\r\n\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\r\n\r\n this._textureHelper.createGPUTextureForInternalTexture(internalTexture);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n };\r\n\r\n ThinWebGPUEngine.prototype._setupDepthStencilTexture = function (\r\n internalTexture: InternalTexture,\r\n size: TextureSize,\r\n bilinearFiltering: boolean,\r\n comparisonFunction: number,\r\n samples = 1\r\n ): void {\r\n const width = (<{ width: number; height: number; layers?: number }>size).width ?? <number>size;\r\n const height = (<{ width: number; height: number; layers?: number }>size).height ?? <number>size;\r\n const layers = (<{ width: number; height: number; depth?: number; layers?: number }>size).layers || 0;\r\n const depth = (<{ width: number; height: number; depth?: number; layers?: number }>size).depth || 0;\r\n\r\n internalTexture.baseWidth = width;\r\n internalTexture.baseHeight = height;\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.is2DArray = layers > 0;\r\n internalTexture.is3D = depth > 0;\r\n internalTexture.depth = layers || depth;\r\n internalTexture.isReady = true;\r\n internalTexture.samples = samples;\r\n internalTexture.generateMipMaps = false;\r\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n internalTexture.type = Constants.TEXTURETYPE_FLOAT; // the right type will be set later\r\n internalTexture._comparisonFunction = comparisonFunction;\r\n internalTexture._cachedWrapU = Constants.TEXTURE_CLAMP_ADDRESSMODE;\r\n internalTexture._cachedWrapV = Constants.TEXTURE_CLAMP_ADDRESSMODE;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper: Nullable<RenderTargetWrapper>, samples: number): number {\r\n if (!rtWrapper || !rtWrapper.texture || rtWrapper.samples === samples) {\r\n return samples;\r\n }\r\n\r\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\r\n\r\n // Releases existing MSAA textures. New ones will be created on demand.\r\n const gpuTexture = rtWrapper.texture._hardwareTexture as Nullable<WebGPUHardwareTexture>;\r\n\r\n gpuTexture?.releaseMSAATextures();\r\n\r\n if (rtWrapper._depthStencilTexture) {\r\n (rtWrapper._depthStencilTexture._hardwareTexture as Nullable<WebGPUHardwareTexture>)?.releaseMSAATextures();\r\n rtWrapper._depthStencilTexture.samples = samples;\r\n }\r\n\r\n rtWrapper._samples = samples;\r\n rtWrapper.texture.samples = samples;\r\n\r\n return samples;\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.renderTarget.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/engine.renderTarget.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { InternalTextureSource, InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type RenderTargetCreationOptions, type DepthTextureCreationOptions, type TextureSize } from \"../../../Materials/Textures/textureCreationOptions\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { Constants } from \"../../constants\";\r\nimport { type RenderTargetWrapper } from \"../../renderTargetWrapper\";\r\nimport { WebGPURenderTargetWrapper } from \"../webgpuRenderTargetWrapper\";\r\nimport { GetTypeForDepthTexture, HasStencilAspect } from \"core/Materials/Textures/textureHelper.functions\";\r\nimport { ThinWebGPUEngine } from \"core/Engines/thinWebGPUEngine\";\r\nimport { type WebGPUHardwareTexture } from \"../webgpuHardwareTexture\";\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for enginesWebGPUExtensionsEngineRenderTarget.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterEnginesWebGPUExtensionsEngineRenderTarget(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n ThinWebGPUEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti: boolean, isCube: boolean, size: TextureSize): WebGPURenderTargetWrapper {\r\n const rtWrapper = new WebGPURenderTargetWrapper(isMulti, isCube, size, this);\r\n this._renderTargetWrapperCache.push(rtWrapper);\r\n return rtWrapper;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.createRenderTargetTexture = function (size: TextureSize, options: boolean | RenderTargetCreationOptions): WebGPURenderTargetWrapper {\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size) as WebGPURenderTargetWrapper;\r\n\r\n const fullOptions: RenderTargetCreationOptions = {};\r\n\r\n if (options !== undefined && typeof options === \"object\") {\r\n fullOptions.generateMipMaps = options.generateMipMaps;\r\n fullOptions.generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;\r\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && options.generateStencilBuffer;\r\n fullOptions.samplingMode = options.samplingMode === undefined ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : options.samplingMode;\r\n fullOptions.creationFlags = options.creationFlags ?? 0;\r\n fullOptions.noColorAttachment = !!options.noColorAttachment;\r\n fullOptions.colorAttachment = options.colorAttachment;\r\n fullOptions.samples = options.samples;\r\n fullOptions.label = options.label;\r\n fullOptions.format = options.format;\r\n fullOptions.type = options.type;\r\n fullOptions.useSRGBBuffer = options.useSRGBBuffer;\r\n } else {\r\n fullOptions.generateMipMaps = options;\r\n fullOptions.generateDepthBuffer = true;\r\n fullOptions.generateStencilBuffer = false;\r\n fullOptions.samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\r\n fullOptions.creationFlags = 0;\r\n fullOptions.noColorAttachment = false;\r\n }\r\n\r\n const texture =\r\n fullOptions.colorAttachment || (fullOptions.noColorAttachment ? null : this._createInternalTexture(size, fullOptions, true, InternalTextureSource.RenderTarget));\r\n\r\n rtWrapper.label = fullOptions.label ?? \"RenderTargetWrapper\";\r\n rtWrapper._samples = fullOptions.colorAttachment?.samples ?? fullOptions.samples ?? 1;\r\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\r\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer ? true : false;\r\n\r\n rtWrapper.setTextures(texture);\r\n\r\n if (rtWrapper._generateDepthBuffer || rtWrapper._generateStencilBuffer) {\r\n rtWrapper.createDepthStencilTexture(\r\n 0,\r\n false, // force false as filtering is not supported for depth textures\r\n rtWrapper._generateStencilBuffer,\r\n rtWrapper.samples,\r\n fullOptions.generateStencilBuffer ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH32_FLOAT,\r\n fullOptions.label ? fullOptions.label + \"-DepthStencil\" : undefined\r\n );\r\n }\r\n\r\n if (texture && !fullOptions.colorAttachment) {\r\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\r\n texture.generateMipMaps = true;\r\n }\r\n\r\n this._textureHelper.createGPUTextureForInternalTexture(texture, undefined, undefined, undefined, fullOptions.creationFlags);\r\n\r\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\r\n texture.generateMipMaps = false;\r\n }\r\n }\r\n\r\n return rtWrapper;\r\n };\r\n\r\n ThinWebGPUEngine.prototype._createDepthStencilTexture = function (\r\n size: TextureSize,\r\n options: DepthTextureCreationOptions,\r\n wrapper: WebGPURenderTargetWrapper\r\n ): InternalTexture {\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n samples: 1,\r\n depthTextureFormat: options.generateStencil ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH32_FLOAT,\r\n ...options,\r\n };\r\n\r\n const hasStencil = HasStencilAspect(internalOptions.depthTextureFormat);\r\n\r\n wrapper._depthStencilTextureWithStencil = hasStencil;\r\n\r\n const internalTexture = new InternalTexture(this, hasStencil ? InternalTextureSource.DepthStencil : InternalTextureSource.Depth);\r\n\r\n internalTexture.label = options.label;\r\n\r\n internalTexture.format = internalOptions.depthTextureFormat;\r\n internalTexture.type = GetTypeForDepthTexture(internalTexture.format);\r\n\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\r\n\r\n this._textureHelper.createGPUTextureForInternalTexture(internalTexture);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n };\r\n\r\n ThinWebGPUEngine.prototype._setupDepthStencilTexture = function (\r\n internalTexture: InternalTexture,\r\n size: TextureSize,\r\n bilinearFiltering: boolean,\r\n comparisonFunction: number,\r\n samples = 1\r\n ): void {\r\n const width = (<{ width: number; height: number; layers?: number }>size).width ?? <number>size;\r\n const height = (<{ width: number; height: number; layers?: number }>size).height ?? <number>size;\r\n const layers = (<{ width: number; height: number; depth?: number; layers?: number }>size).layers || 0;\r\n const depth = (<{ width: number; height: number; depth?: number; layers?: number }>size).depth || 0;\r\n\r\n internalTexture.baseWidth = width;\r\n internalTexture.baseHeight = height;\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.is2DArray = layers > 0;\r\n internalTexture.is3D = depth > 0;\r\n internalTexture.depth = layers || depth;\r\n internalTexture.isReady = true;\r\n internalTexture.samples = samples;\r\n internalTexture.generateMipMaps = false;\r\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n internalTexture.type = Constants.TEXTURETYPE_FLOAT; // the right type will be set later\r\n internalTexture._comparisonFunction = comparisonFunction;\r\n internalTexture._cachedWrapU = Constants.TEXTURE_CLAMP_ADDRESSMODE;\r\n internalTexture._cachedWrapV = Constants.TEXTURE_CLAMP_ADDRESSMODE;\r\n };\r\n\r\n ThinWebGPUEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper: Nullable<RenderTargetWrapper>, samples: number): number {\r\n if (!rtWrapper || !rtWrapper.texture || rtWrapper.samples === samples) {\r\n return samples;\r\n }\r\n\r\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\r\n\r\n // Releases existing MSAA textures. New ones will be created on demand.\r\n const gpuTexture = rtWrapper.texture._hardwareTexture as Nullable<WebGPUHardwareTexture>;\r\n\r\n gpuTexture?.releaseMSAATextures();\r\n\r\n if (rtWrapper._depthStencilTexture) {\r\n (rtWrapper._depthStencilTexture._hardwareTexture as Nullable<WebGPUHardwareTexture>)?.releaseMSAATextures();\r\n rtWrapper._depthStencilTexture.samples = samples;\r\n }\r\n\r\n rtWrapper._samples = samples;\r\n rtWrapper.texture.samples = samples;\r\n\r\n return samples;\r\n };\r\n}\r\n"]}
|
|
@@ -11,5 +11,6 @@ import "./engine.readTexture.js";
|
|
|
11
11
|
import "./engine.renderTarget.js";
|
|
12
12
|
import "./engine.renderTargetCube.js";
|
|
13
13
|
import "./engine.renderTargetTexture.js";
|
|
14
|
+
export * from "./engine.texture2DArrayImageSource.js";
|
|
14
15
|
import "./engine.videoTexture.js";
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AAEzC,OAAO,gBAAgB,CAAC;AACxB,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,uBAAuB,CAAC","sourcesContent":["export * from \"./engine.alphaToCoverage\";\r\n\r\nimport \"./engine.alpha\";\r\nimport \"./engine.computeShader\";\r\nimport \"./engine.cubeTexture\";\r\nimport \"./engine.debugging\";\r\nimport \"./engine.dynamicTexture\";\r\nimport \"./engine.multiRender\";\r\nimport \"./engine.query\";\r\nimport \"./engine.rawTexture\";\r\nimport \"./engine.readTexture\";\r\nimport \"./engine.renderTarget\";\r\nimport \"./engine.renderTargetCube\";\r\nimport \"./engine.renderTargetTexture\";\r\nimport \"./engine.videoTexture\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AAEzC,OAAO,gBAAgB,CAAC;AACxB,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,OAAO,uBAAuB,CAAC","sourcesContent":["export * from \"./engine.alphaToCoverage\";\r\n\r\nimport \"./engine.alpha\";\r\nimport \"./engine.computeShader\";\r\nimport \"./engine.cubeTexture\";\r\nimport \"./engine.debugging\";\r\nimport \"./engine.dynamicTexture\";\r\nimport \"./engine.multiRender\";\r\nimport \"./engine.query\";\r\nimport \"./engine.rawTexture\";\r\nimport \"./engine.readTexture\";\r\nimport \"./engine.renderTarget\";\r\nimport \"./engine.renderTargetCube\";\r\nimport \"./engine.renderTargetTexture\";\r\nexport * from \"./engine.texture2DArrayImageSource\";\r\nimport \"./engine.videoTexture\";\r\n"]}
|
|
@@ -12,5 +12,5 @@ export * from "./engine.readTexture.pure.js";
|
|
|
12
12
|
export * from "./engine.renderTarget.pure.js";
|
|
13
13
|
export * from "./engine.renderTargetCube.pure.js";
|
|
14
14
|
export * from "./engine.renderTargetTexture.pure.js";
|
|
15
|
-
export * from "./engine.videoTexture.pure.js";
|
|
16
15
|
export * from "./engine.texture2DArrayImageSource.pure.js";
|
|
16
|
+
export * from "./engine.videoTexture.pure.js";
|
|
@@ -12,6 +12,6 @@ export * from "./engine.readTexture.pure.js";
|
|
|
12
12
|
export * from "./engine.renderTarget.pure.js";
|
|
13
13
|
export * from "./engine.renderTargetCube.pure.js";
|
|
14
14
|
export * from "./engine.renderTargetTexture.pure.js";
|
|
15
|
-
export * from "./engine.videoTexture.pure.js";
|
|
16
15
|
export * from "./engine.texture2DArrayImageSource.pure.js";
|
|
16
|
+
export * from "./engine.videoTexture.pure.js";
|
|
17
17
|
//# sourceMappingURL=pure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,
|
|
1
|
+
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Engines/WebGPU/Extensions/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./engine.alphaToCoverage.pure\";\nexport * from \"./engine.alpha.pure\";\nexport * from \"./engine.computeShader.pure\";\nexport * from \"./engine.cubeTexture.pure\";\nexport * from \"./engine.debugging.pure\";\nexport * from \"./engine.dynamicTexture.pure\";\nexport * from \"./engine.multiRender.pure\";\nexport * from \"./engine.query.pure\";\nexport * from \"./engine.rawTexture.pure\";\nexport * from \"./engine.readTexture.pure\";\nexport * from \"./engine.renderTarget.pure\";\nexport * from \"./engine.renderTargetCube.pure\";\nexport * from \"./engine.renderTargetTexture.pure\";\nexport * from \"./engine.texture2DArrayImageSource.pure\";\nexport * from \"./engine.videoTexture.pure\";\n"]}
|
|
@@ -60,6 +60,8 @@ export declare class WebGPUBundleList {
|
|
|
60
60
|
private _currentItemIsBundle;
|
|
61
61
|
private _currentBundleList;
|
|
62
62
|
numDrawCalls: number;
|
|
63
|
+
/** @internal */
|
|
64
|
+
get isEmpty(): boolean;
|
|
63
65
|
constructor(device: GPUDevice);
|
|
64
66
|
addBundle(bundle?: GPURenderBundle): void;
|
|
65
67
|
private _finishBundle;
|
|
@@ -90,6 +90,10 @@ class WebGPURenderItemBundles {
|
|
|
90
90
|
}
|
|
91
91
|
/** @internal */
|
|
92
92
|
export class WebGPUBundleList {
|
|
93
|
+
/** @internal */
|
|
94
|
+
get isEmpty() {
|
|
95
|
+
return this._listLength === 0 && !this._bundleEncoder;
|
|
96
|
+
}
|
|
93
97
|
constructor(device) {
|
|
94
98
|
this.numDrawCalls = 0;
|
|
95
99
|
this._device = device;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuBundleList.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuBundleList.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper\";\r\n\r\n/** @internal */\r\ninterface IWebGPURenderItem {\r\n run(renderPass: GPURenderPassEncoder): void;\r\n clone(): IWebGPURenderItem;\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemViewport implements IWebGPURenderItem {\r\n public x: number;\r\n public y: number;\r\n public w: number;\r\n public h: number;\r\n\r\n public constructor(x: number, y: number, w: number, h: number) {\r\n this.x = Math.floor(x);\r\n this.y = Math.floor(y);\r\n this.w = Math.floor(w);\r\n this.h = Math.floor(h);\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setViewport(this.x, this.y, this.w, this.h, 0, 1);\r\n }\r\n\r\n public clone(): WebGPURenderItemViewport {\r\n return new WebGPURenderItemViewport(this.x, this.y, this.w, this.h);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemScissor implements IWebGPURenderItem {\r\n public constructor(\r\n public x: number,\r\n public y: number,\r\n public w: number,\r\n public h: number\r\n ) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setScissorRect(this.x, this.y, this.w, this.h);\r\n }\r\n\r\n public clone(): WebGPURenderItemScissor {\r\n return new WebGPURenderItemScissor(this.x, this.y, this.w, this.h);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemStencilRef implements IWebGPURenderItem {\r\n public constructor(public ref: number) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setStencilReference(this.ref);\r\n }\r\n\r\n public clone(): WebGPURenderItemStencilRef {\r\n return new WebGPURenderItemStencilRef(this.ref);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemBlendColor implements IWebGPURenderItem {\r\n public constructor(public color: Nullable<number>[]) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setBlendConstant(this.color as GPUColor);\r\n }\r\n\r\n public clone(): WebGPURenderItemBlendColor {\r\n return new WebGPURenderItemBlendColor(this.color);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemBeginOcclusionQuery implements IWebGPURenderItem {\r\n public constructor(public query: number) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.beginOcclusionQuery(this.query);\r\n }\r\n\r\n public clone(): WebGPURenderItemBeginOcclusionQuery {\r\n return new WebGPURenderItemBeginOcclusionQuery(this.query);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemEndOcclusionQuery implements IWebGPURenderItem {\r\n public constructor() {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.endOcclusionQuery();\r\n }\r\n\r\n public clone(): WebGPURenderItemEndOcclusionQuery {\r\n return new WebGPURenderItemEndOcclusionQuery();\r\n }\r\n}\r\n\r\nclass WebGPURenderItemBundles implements IWebGPURenderItem {\r\n public bundles: GPURenderBundle[];\r\n\r\n public constructor() {\r\n this.bundles = [];\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.executeBundles(this.bundles);\r\n }\r\n\r\n public clone(): WebGPURenderItemBundles {\r\n const cloned = new WebGPURenderItemBundles();\r\n cloned.bundles = this.bundles;\r\n return cloned;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUBundleList {\r\n private _device: GPUDevice;\r\n private _bundleEncoder: GPURenderBundleEncoder | undefined;\r\n\r\n private _list: IWebGPURenderItem[];\r\n private _listLength: number;\r\n\r\n private _currentItemIsBundle: boolean;\r\n private _currentBundleList: GPURenderBundle[];\r\n\r\n public numDrawCalls = 0;\r\n\r\n public constructor(device: GPUDevice) {\r\n this._device = device;\r\n this._list = new Array(10);\r\n this._listLength = 0;\r\n }\r\n\r\n public addBundle(bundle?: GPURenderBundle): void {\r\n if (!this._currentItemIsBundle) {\r\n const item = new WebGPURenderItemBundles();\r\n\r\n this._list[this._listLength++] = item;\r\n this._currentBundleList = item.bundles;\r\n this._currentItemIsBundle = true;\r\n }\r\n if (bundle) {\r\n this._currentBundleList.push(bundle);\r\n }\r\n }\r\n\r\n private _finishBundle(): void {\r\n if (this._currentItemIsBundle && this._bundleEncoder) {\r\n this._currentBundleList.push(this._bundleEncoder.finish());\r\n this._bundleEncoder = undefined;\r\n this._currentItemIsBundle = false;\r\n }\r\n }\r\n\r\n public addItem(item: IWebGPURenderItem) {\r\n this._finishBundle();\r\n this._list[this._listLength++] = item;\r\n this._currentItemIsBundle = false;\r\n }\r\n\r\n public getBundleEncoder(colorFormats: (GPUTextureFormat | null)[], depthStencilFormat: GPUTextureFormat | undefined, sampleCount: number): GPURenderBundleEncoder {\r\n if (!this._currentItemIsBundle) {\r\n this.addBundle();\r\n this._bundleEncoder = this._device.createRenderBundleEncoder({\r\n colorFormats,\r\n depthStencilFormat,\r\n sampleCount: WebGPUTextureHelper.GetSample(sampleCount),\r\n });\r\n }\r\n return this._bundleEncoder!;\r\n }\r\n\r\n public close(): void {\r\n this._finishBundle();\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n this.close();\r\n for (let i = 0; i < this._listLength; ++i) {\r\n this._list[i].run(renderPass);\r\n }\r\n }\r\n\r\n public reset() {\r\n this._listLength = 0;\r\n this._currentItemIsBundle = false;\r\n this.numDrawCalls = 0;\r\n }\r\n\r\n public clone(): WebGPUBundleList {\r\n this.close();\r\n\r\n const cloned = new WebGPUBundleList(this._device);\r\n\r\n cloned._list = new Array(this._listLength);\r\n cloned._listLength = this._listLength;\r\n cloned.numDrawCalls = this.numDrawCalls;\r\n\r\n for (let i = 0; i < this._listLength; ++i) {\r\n cloned._list[i] = this._list[i].clone();\r\n }\r\n\r\n return cloned;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuBundleList.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuBundleList.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper\";\r\n\r\n/** @internal */\r\ninterface IWebGPURenderItem {\r\n run(renderPass: GPURenderPassEncoder): void;\r\n clone(): IWebGPURenderItem;\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemViewport implements IWebGPURenderItem {\r\n public x: number;\r\n public y: number;\r\n public w: number;\r\n public h: number;\r\n\r\n public constructor(x: number, y: number, w: number, h: number) {\r\n this.x = Math.floor(x);\r\n this.y = Math.floor(y);\r\n this.w = Math.floor(w);\r\n this.h = Math.floor(h);\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setViewport(this.x, this.y, this.w, this.h, 0, 1);\r\n }\r\n\r\n public clone(): WebGPURenderItemViewport {\r\n return new WebGPURenderItemViewport(this.x, this.y, this.w, this.h);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemScissor implements IWebGPURenderItem {\r\n public constructor(\r\n public x: number,\r\n public y: number,\r\n public w: number,\r\n public h: number\r\n ) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setScissorRect(this.x, this.y, this.w, this.h);\r\n }\r\n\r\n public clone(): WebGPURenderItemScissor {\r\n return new WebGPURenderItemScissor(this.x, this.y, this.w, this.h);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemStencilRef implements IWebGPURenderItem {\r\n public constructor(public ref: number) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setStencilReference(this.ref);\r\n }\r\n\r\n public clone(): WebGPURenderItemStencilRef {\r\n return new WebGPURenderItemStencilRef(this.ref);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemBlendColor implements IWebGPURenderItem {\r\n public constructor(public color: Nullable<number>[]) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.setBlendConstant(this.color as GPUColor);\r\n }\r\n\r\n public clone(): WebGPURenderItemBlendColor {\r\n return new WebGPURenderItemBlendColor(this.color);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemBeginOcclusionQuery implements IWebGPURenderItem {\r\n public constructor(public query: number) {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.beginOcclusionQuery(this.query);\r\n }\r\n\r\n public clone(): WebGPURenderItemBeginOcclusionQuery {\r\n return new WebGPURenderItemBeginOcclusionQuery(this.query);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPURenderItemEndOcclusionQuery implements IWebGPURenderItem {\r\n public constructor() {}\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.endOcclusionQuery();\r\n }\r\n\r\n public clone(): WebGPURenderItemEndOcclusionQuery {\r\n return new WebGPURenderItemEndOcclusionQuery();\r\n }\r\n}\r\n\r\nclass WebGPURenderItemBundles implements IWebGPURenderItem {\r\n public bundles: GPURenderBundle[];\r\n\r\n public constructor() {\r\n this.bundles = [];\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n renderPass.executeBundles(this.bundles);\r\n }\r\n\r\n public clone(): WebGPURenderItemBundles {\r\n const cloned = new WebGPURenderItemBundles();\r\n cloned.bundles = this.bundles;\r\n return cloned;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUBundleList {\r\n private _device: GPUDevice;\r\n private _bundleEncoder: GPURenderBundleEncoder | undefined;\r\n\r\n private _list: IWebGPURenderItem[];\r\n private _listLength: number;\r\n\r\n private _currentItemIsBundle: boolean;\r\n private _currentBundleList: GPURenderBundle[];\r\n\r\n public numDrawCalls = 0;\r\n\r\n /** @internal */\r\n public get isEmpty(): boolean {\r\n return this._listLength === 0 && !this._bundleEncoder;\r\n }\r\n\r\n public constructor(device: GPUDevice) {\r\n this._device = device;\r\n this._list = new Array(10);\r\n this._listLength = 0;\r\n }\r\n\r\n public addBundle(bundle?: GPURenderBundle): void {\r\n if (!this._currentItemIsBundle) {\r\n const item = new WebGPURenderItemBundles();\r\n\r\n this._list[this._listLength++] = item;\r\n this._currentBundleList = item.bundles;\r\n this._currentItemIsBundle = true;\r\n }\r\n if (bundle) {\r\n this._currentBundleList.push(bundle);\r\n }\r\n }\r\n\r\n private _finishBundle(): void {\r\n if (this._currentItemIsBundle && this._bundleEncoder) {\r\n this._currentBundleList.push(this._bundleEncoder.finish());\r\n this._bundleEncoder = undefined;\r\n this._currentItemIsBundle = false;\r\n }\r\n }\r\n\r\n public addItem(item: IWebGPURenderItem) {\r\n this._finishBundle();\r\n this._list[this._listLength++] = item;\r\n this._currentItemIsBundle = false;\r\n }\r\n\r\n public getBundleEncoder(colorFormats: (GPUTextureFormat | null)[], depthStencilFormat: GPUTextureFormat | undefined, sampleCount: number): GPURenderBundleEncoder {\r\n if (!this._currentItemIsBundle) {\r\n this.addBundle();\r\n this._bundleEncoder = this._device.createRenderBundleEncoder({\r\n colorFormats,\r\n depthStencilFormat,\r\n sampleCount: WebGPUTextureHelper.GetSample(sampleCount),\r\n });\r\n }\r\n return this._bundleEncoder!;\r\n }\r\n\r\n public close(): void {\r\n this._finishBundle();\r\n }\r\n\r\n public run(renderPass: GPURenderPassEncoder) {\r\n this.close();\r\n for (let i = 0; i < this._listLength; ++i) {\r\n this._list[i].run(renderPass);\r\n }\r\n }\r\n\r\n public reset() {\r\n this._listLength = 0;\r\n this._currentItemIsBundle = false;\r\n this.numDrawCalls = 0;\r\n }\r\n\r\n public clone(): WebGPUBundleList {\r\n this.close();\r\n\r\n const cloned = new WebGPUBundleList(this._device);\r\n\r\n cloned._list = new Array(this._listLength);\r\n cloned._listLength = this._listLength;\r\n cloned.numDrawCalls = this.numDrawCalls;\r\n\r\n for (let i = 0; i < this._listLength; ++i) {\r\n cloned._list[i] = this._list[i].clone();\r\n }\r\n\r\n return cloned;\r\n }\r\n}\r\n"]}
|
|
@@ -864,7 +864,8 @@ export class WebGPUCacheRenderPipeline {
|
|
|
864
864
|
};
|
|
865
865
|
const alphaBlend = this._getAphaBlendState(i < this._numAlphaBlendTargetsEnabled ? i : 0);
|
|
866
866
|
const colorBlend = this._getColorBlendState(i < this._numAlphaBlendTargetsEnabled ? i : 0);
|
|
867
|
-
|
|
867
|
+
const isIntegerFormat = format.endsWith("uint") || format.endsWith("sint");
|
|
868
|
+
if (descr.writeMask !== 0 && !isIntegerFormat && alphaBlend && colorBlend) {
|
|
868
869
|
descr.blend = {
|
|
869
870
|
alpha: alphaBlend,
|
|
870
871
|
color: colorBlend,
|
|
@@ -885,7 +886,9 @@ export class WebGPUCacheRenderPipeline {
|
|
|
885
886
|
};
|
|
886
887
|
const alphaBlend = this._getAphaBlendState(0);
|
|
887
888
|
const colorBlend = this._getColorBlendState(0);
|
|
888
|
-
|
|
889
|
+
const format = this._webgpuColorFormat[0];
|
|
890
|
+
const isIntegerFormat = format.endsWith("uint") || format.endsWith("sint");
|
|
891
|
+
if (!isIntegerFormat && alphaBlend && colorBlend) {
|
|
889
892
|
descr.blend = {
|
|
890
893
|
alpha: alphaBlend,
|
|
891
894
|
color: colorBlend,
|