@babylonjs/core 5.24.0 → 5.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Actions/action.d.ts +12 -21
- package/Actions/action.js +8 -17
- package/Actions/action.js.map +1 -1
- package/Actions/actionManager.d.ts +2 -5
- package/Actions/actionManager.js +2 -5
- package/Actions/actionManager.js.map +1 -1
- package/Actions/condition.d.ts +9 -50
- package/Actions/condition.js +3 -26
- package/Actions/condition.js.map +1 -1
- package/Actions/directActions.d.ts +7 -7
- package/Actions/directActions.js +7 -7
- package/Actions/directActions.js.map +1 -1
- package/Actions/directAudioActions.d.ts +2 -2
- package/Actions/directAudioActions.js +2 -2
- package/Actions/directAudioActions.js.map +1 -1
- package/Actions/interpolateValueAction.d.ts +1 -1
- package/Actions/interpolateValueAction.js +1 -1
- package/Actions/interpolateValueAction.js.map +1 -1
- package/Animations/animatable.d.ts +5 -6
- package/Animations/animatable.js +1 -2
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.d.ts +6 -20
- package/Animations/animation.js +6 -20
- package/Animations/animation.js.map +1 -1
- package/Animations/animationEvent.d.ts +1 -1
- package/Animations/animationEvent.js +1 -1
- package/Animations/animationEvent.js.map +1 -1
- package/Animations/animationGroup.d.ts +1 -1
- package/Animations/animationGroup.js +1 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/easing.d.ts +13 -26
- package/Animations/easing.js +13 -26
- package/Animations/easing.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +3 -4
- package/Animations/runtimeAnimation.js +1 -2
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +1 -2
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +1 -1
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +3 -4
- package/Audio/sound.js +2 -3
- package/Audio/sound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +5 -5
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.d.ts +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +7 -9
- package/Bones/bone.js +7 -9
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +6 -8
- package/Bones/skeleton.js +6 -8
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.d.ts +6 -6
- package/Buffers/buffer.js +14 -16
- package/Buffers/buffer.js.map +1 -1
- package/Buffers/storageBuffer.d.ts +1 -1
- package/Buffers/storageBuffer.js +1 -1
- package/Buffers/storageBuffer.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +6 -3
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +18 -5
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
- package/Cameras/RigModes/vrRigMode.d.ts +1 -3
- package/Cameras/RigModes/vrRigMode.js +1 -3
- package/Cameras/RigModes/vrRigMode.js.map +1 -1
- package/Cameras/RigModes/webVRRigMode.d.ts +1 -3
- package/Cameras/RigModes/webVRRigMode.js +1 -3
- package/Cameras/RigModes/webVRRigMode.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +4 -4
- package/Cameras/VR/vrCameraMetrics.js +4 -4
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +20 -48
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +9 -9
- package/Cameras/VR/webVRCamera.js +9 -9
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +11 -12
- package/Cameras/arcRotateCamera.js +8 -9
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +29 -38
- package/Cameras/camera.js +27 -36
- package/Cameras/camera.js.map +1 -1
- package/Cameras/deviceOrientationCamera.d.ts +1 -1
- package/Cameras/deviceOrientationCamera.js +1 -1
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +8 -12
- package/Cameras/flyCamera.js +6 -10
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/followCamera.d.ts +2 -2
- package/Cameras/followCamera.js +2 -2
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/freeCamera.d.ts +6 -7
- package/Cameras/freeCamera.js +4 -5
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/freeCameraInputsManager.d.ts +2 -2
- package/Cameras/freeCameraInputsManager.js +2 -2
- package/Cameras/freeCameraInputsManager.js.map +1 -1
- package/Cameras/targetCamera.d.ts +21 -24
- package/Cameras/targetCamera.js +20 -23
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +1 -1
- package/Cameras/touchCamera.js +1 -1
- package/Cameras/touchCamera.js.map +1 -1
- package/Collisions/collider.d.ts +13 -44
- package/Collisions/collider.js +10 -41
- package/Collisions/collider.js.map +1 -1
- package/Collisions/collisionCoordinator.d.ts +2 -2
- package/Collisions/collisionCoordinator.js +1 -1
- package/Collisions/collisionCoordinator.js.map +1 -1
- package/Collisions/intersectionInfo.d.ts +1 -1
- package/Collisions/intersectionInfo.js +1 -1
- package/Collisions/intersectionInfo.js.map +1 -1
- package/Collisions/meshCollisionData.d.ts +1 -1
- package/Collisions/meshCollisionData.js +1 -1
- package/Collisions/meshCollisionData.js.map +1 -1
- package/Collisions/pickingInfo.d.ts +1 -1
- package/Collisions/pickingInfo.js +1 -1
- package/Collisions/pickingInfo.js.map +1 -1
- package/Compute/IComputeContext.d.ts +1 -1
- package/Compute/IComputeContext.js.map +1 -1
- package/Compute/IComputePipelineContext.d.ts +2 -2
- package/Compute/IComputePipelineContext.js.map +1 -1
- package/Compute/computeEffect.d.ts +5 -5
- package/Compute/computeEffect.js +5 -5
- package/Compute/computeEffect.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -9
- package/Culling/Octrees/octreeBlock.js +1 -9
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +2 -2
- package/Culling/Octrees/octreeSceneComponent.js +1 -5
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingBox.d.ts +4 -5
- package/Culling/boundingBox.js +3 -4
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.d.ts +1 -2
- package/Culling/boundingInfo.js +1 -2
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.d.ts +1 -2
- package/Culling/boundingSphere.js +1 -2
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.d.ts +6 -6
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +6 -6
- package/Debug/physicsViewer.js +4 -4
- package/Debug/physicsViewer.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +3 -3
- package/DeviceInput/internalDeviceSourceManager.js +1 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/nativeDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/webDeviceInputSystem.js +1 -19
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.computeShader.d.ts +7 -7
- package/Engines/Extensions/engine.computeShader.js +1 -1
- package/Engines/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +6 -6
- package/Engines/Extensions/engine.cubeTexture.js +3 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.debugging.d.ts +4 -4
- package/Engines/Extensions/engine.debugging.js.map +1 -1
- package/Engines/Extensions/engine.multiview.d.ts +9 -9
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +22 -22
- package/Engines/Extensions/engine.query.js +8 -8
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.js +3 -7
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.d.ts +2 -2
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +2 -2
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.textureSelector.d.ts +2 -2
- package/Engines/Extensions/engine.textureSelector.js.map +1 -1
- package/Engines/Extensions/engine.transformFeedback.d.ts +1 -1
- package/Engines/Extensions/engine.transformFeedback.js +1 -1
- package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +2 -2
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Extensions/engine.webVR.d.ts +13 -13
- package/Engines/Extensions/engine.webVR.js.map +1 -1
- package/Engines/IDrawContext.d.ts +1 -1
- package/Engines/IDrawContext.js.map +1 -1
- package/Engines/IMaterialContext.d.ts +1 -1
- package/Engines/IMaterialContext.js.map +1 -1
- package/Engines/IPipelineContext.d.ts +5 -5
- package/Engines/IPipelineContext.js.map +1 -1
- package/Engines/Native/nativeDataStream.d.ts +2 -2
- package/Engines/Native/nativeDataStream.js +1 -1
- package/Engines/Native/nativeDataStream.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +10 -10
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js.map +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.d.ts +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderCodeConditionNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -1
- package/Engines/Processors/shaderCodeCursor.js +1 -1
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/Processors/shaderCodeNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeNode.js +1 -1
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/Processors/shaderCodeTestNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeTestNode.js +1 -1
- package/Engines/Processors/shaderCodeTestNode.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +2 -2
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.d.ts +2 -2
- package/Engines/Processors/shaderProcessor.js +2 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
- package/Engines/WebGL/webGLHardwareTexture.d.ts +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGL/webGLPipelineContext.d.ts +6 -25
- package/Engines/WebGL/webGLPipelineContext.js +6 -25
- package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGL/webGLShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -5
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +8 -8
- package/Engines/WebGPU/webgpuBundleList.js +7 -7
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.d.ts +2 -2
- package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +38 -38
- package/Engines/WebGPU/webgpuConstants.js +38 -38
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.d.ts +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.d.ts +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +9 -9
- package/Engines/WebGPU/webgpuHardwareTexture.js +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.d.ts +3 -3
- package/Engines/WebGPU/webgpuMaterialContext.js +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +4 -4
- package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.d.ts +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +7 -7
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.d.ts +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.d.ts +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/constants.d.ts +1 -1
- package/Engines/constants.js +1 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +16 -35
- package/Engines/engine.js +19 -69
- package/Engines/engine.js.map +1 -1
- package/Engines/engineFeatures.d.ts +2 -2
- package/Engines/engineFeatures.js.map +1 -1
- package/Engines/engineStore.d.ts +1 -1
- package/Engines/engineStore.js +1 -1
- package/Engines/engineStore.js.map +1 -1
- package/Engines/nativeEngine.d.ts +15 -47
- package/Engines/nativeEngine.js +20 -66
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +12 -40
- package/Engines/nullEngine.js +12 -40
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/performanceConfigurator.d.ts +6 -7
- package/Engines/performanceConfigurator.js +6 -7
- package/Engines/performanceConfigurator.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +8 -9
- package/Engines/renderTargetWrapper.js +7 -8
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +90 -187
- package/Engines/thinEngine.js +73 -182
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +89 -145
- package/Engines/webgpuEngine.js +71 -127
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/pointerEvents.d.ts +4 -0
- package/Events/pointerEvents.js +4 -0
- package/Events/pointerEvents.js.map +1 -1
- package/Gamepads/Controllers/oculusTouchController.d.ts +1 -1
- package/Gamepads/Controllers/oculusTouchController.js +1 -1
- package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
- package/Gamepads/Controllers/poseEnabledController.d.ts +9 -10
- package/Gamepads/Controllers/poseEnabledController.js +6 -7
- package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
- package/Gamepads/Controllers/windowsMotionController.d.ts +1 -1
- package/Gamepads/Controllers/windowsMotionController.js +1 -1
- package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
- package/Gamepads/gamepad.d.ts +1 -1
- package/Gamepads/gamepad.js +1 -1
- package/Gamepads/gamepad.js.map +1 -1
- package/Gamepads/gamepadManager.d.ts +2 -2
- package/Gamepads/gamepadManager.js +4 -4
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gamepads/gamepadSceneComponent.d.ts +1 -1
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/axisDragGizmo.d.ts +2 -8
- package/Gizmos/axisDragGizmo.js +2 -8
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.d.ts +1 -1
- package/Gizmos/cameraGizmo.js +1 -1
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +1 -1
- package/Gizmos/lightGizmo.js +1 -1
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeDragGizmo.d.ts +1 -3
- package/Gizmos/planeDragGizmo.js +1 -3
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +1 -1
- package/Helpers/sceneHelpers.js +1 -1
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +3 -3
- package/Inputs/scene.inputManager.js +5 -4
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/timeToken.d.ts +1 -1
- package/Instrumentation/timeToken.js +1 -1
- package/Instrumentation/timeToken.js.map +1 -1
- package/Layers/effectLayer.d.ts +2 -3
- package/Layers/effectLayer.js +2 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +1 -1
- package/Layers/highlightLayer.js +1 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +8 -1
- package/Layers/layer.js +12 -1
- package/Layers/layer.js.map +1 -1
- package/Layers/layerSceneComponent.d.ts +4 -2
- package/Layers/layerSceneComponent.js +27 -11
- package/Layers/layerSceneComponent.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +1 -1
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +4 -6
- package/LensFlares/lensFlareSystem.js +4 -6
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +1 -2
- package/Lights/Shadows/shadowGenerator.js +1 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.d.ts +9 -9
- package/Lights/light.js +6 -6
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +3 -3
- package/Lights/shadowLight.js +3 -3
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.d.ts +1 -1
- package/Loading/Plugins/babylonFileLoader.js +1 -1
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/loadingScreen.js +6 -6
- package/Loading/loadingScreen.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +18 -18
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.d.ts +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +2 -2
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +9 -9
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +12 -12
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +2 -2
- package/Materials/Node/nodeMaterial.js +2 -2
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +8 -14
- package/Materials/Node/nodeMaterialBlock.js +6 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +8 -8
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -7
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +22 -58
- package/Materials/Node/nodeMaterialBuildState.js +21 -57
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +2 -2
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrBRDFConfiguration.js +2 -2
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +65 -65
- package/Materials/PBR/pbrBaseMaterial.js +65 -65
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +4 -4
- package/Materials/PBR/pbrClearCoatConfiguration.js +3 -3
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrSheenConfiguration.js +2 -2
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -5
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +6 -7
- package/Materials/Textures/Procedurals/proceduralTexture.js +4 -5
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +17 -23
- package/Materials/Textures/baseTexture.js +20 -23
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +1 -1
- package/Materials/Textures/cubeTexture.js +1 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/hardwareTextureWrapper.d.ts +1 -1
- package/Materials/Textures/hardwareTextureWrapper.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +35 -37
- package/Materials/Textures/internalTexture.js +34 -36
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -3
- package/Materials/Textures/multiRenderTarget.js +1 -3
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +9 -9
- package/Materials/Textures/prePassRenderTarget.js +6 -6
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +7 -11
- package/Materials/Textures/renderTargetTexture.js +8 -9
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +6 -18
- package/Materials/Textures/texture.js +13 -23
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/textureSampler.d.ts +5 -5
- package/Materials/Textures/textureSampler.js +5 -5
- package/Materials/Textures/textureSampler.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +2 -2
- package/Materials/Textures/thinTexture.js +2 -2
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +3 -3
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/drawWrapper.d.ts +1 -1
- package/Materials/drawWrapper.js +1 -1
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.d.ts +17 -17
- package/Materials/effect.js +28 -22
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.d.ts +1 -1
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +5 -5
- package/Materials/imageProcessingConfiguration.js +4 -4
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/material.d.ts +21 -26
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +2 -2
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +22 -24
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +14 -14
- package/Materials/materialDefines.js +13 -13
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.js +2 -7
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +15 -15
- package/Materials/materialPluginEvent.js +1 -1
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.d.ts +2 -4
- package/Materials/materialPluginManager.js +2 -4
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.d.ts +1 -1
- package/Materials/multiMaterial.js +1 -1
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/pushMaterial.d.ts +1 -1
- package/Materials/pushMaterial.js +1 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +3 -3
- package/Materials/standardMaterial.js +3 -3
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +4 -4
- package/Materials/uniformBuffer.js +4 -4
- package/Materials/uniformBuffer.js.map +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.d.ts +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
- package/Maths/math.color.d.ts +1 -1
- package/Maths/math.color.js +1 -1
- package/Maths/math.color.js.map +1 -1
- package/Maths/math.isovector.d.ts +1 -1
- package/Maths/math.isovector.js +1 -1
- package/Maths/math.isovector.js.map +1 -1
- package/Maths/math.like.d.ts +8 -8
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.polar.d.ts +343 -0
- package/Maths/math.polar.js +537 -0
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vector.d.ts +58 -24
- package/Maths/math.vector.js +94 -18
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/tubeBuilder.d.ts +2 -2
- package/Meshes/Builders/tubeBuilder.js +2 -2
- package/Meshes/Builders/tubeBuilder.js.map +1 -1
- package/Meshes/WebGL/webGLDataBuffer.d.ts +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js.map +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.d.ts +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +48 -70
- package/Meshes/abstractMesh.js +47 -69
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/buffer.d.ts +1 -1
- package/Meshes/buffer.js +1 -1
- package/Meshes/buffer.js.map +1 -1
- package/Meshes/geodesicMesh.d.ts +15 -28
- package/Meshes/geodesicMesh.js +11 -24
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +15 -20
- package/Meshes/geometry.js +7 -12
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/groundMesh.d.ts +8 -8
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +12 -16
- package/Meshes/instancedMesh.js +11 -15
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.d.ts +5 -8
- package/Meshes/linesMesh.js +5 -8
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +47 -92
- package/Meshes/mesh.js +50 -98
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +3 -18
- package/Meshes/mesh.vertexData.js +3 -18
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
- package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
- package/Meshes/subMesh.d.ts +23 -51
- package/Meshes/subMesh.js +20 -48
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/subMesh.project.d.ts +2 -2
- package/Meshes/subMesh.project.js +2 -12
- package/Meshes/subMesh.project.js.map +1 -1
- package/Meshes/thinInstanceMesh.d.ts +4 -4
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -9
- package/Meshes/transformNode.js +8 -9
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/arrayTools.d.ts +3 -3
- package/Misc/arrayTools.js +1 -1
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +1 -3
- package/Misc/assetsManager.js +1 -3
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -1
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +11 -25
- package/Misc/coroutine.js +7 -21
- package/Misc/coroutine.js.map +1 -1
- package/Misc/dds.d.ts +1 -10
- package/Misc/dds.js +1 -10
- package/Misc/dds.js.map +1 -1
- package/Misc/decorators.d.ts +5 -15
- package/Misc/decorators.js +6 -16
- package/Misc/decorators.js.map +1 -1
- package/Misc/depthReducer.d.ts +1 -5
- package/Misc/depthReducer.js +1 -5
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/devTools.d.ts +1 -2
- package/Misc/devTools.js +1 -2
- package/Misc/devTools.js.map +1 -1
- package/Misc/environmentTextureTools.d.ts +1 -6
- package/Misc/environmentTextureTools.js +1 -6
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.d.ts +12 -24
- package/Misc/fileTools.js +14 -26
- package/Misc/fileTools.js.map +1 -1
- package/Misc/khronosTextureContainer.d.ts +1 -3
- package/Misc/khronosTextureContainer.js +1 -3
- package/Misc/khronosTextureContainer.js.map +1 -1
- package/Misc/khronosTextureContainer2.d.ts +1 -4
- package/Misc/khronosTextureContainer2.js +1 -4
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/observable.d.ts +3 -4
- package/Misc/observable.js +2 -3
- package/Misc/observable.js.map +1 -1
- package/Misc/pivotTools.d.ts +3 -5
- package/Misc/pivotTools.js +3 -5
- package/Misc/pivotTools.js.map +1 -1
- package/Misc/screenshotTools.js +1 -1
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/tags.d.ts +2 -6
- package/Misc/tags.js +2 -6
- package/Misc/tags.js.map +1 -1
- package/Misc/tga.d.ts +14 -70
- package/Misc/tga.js +14 -70
- package/Misc/tga.js.map +1 -1
- package/Misc/tools.d.ts +9 -0
- package/Misc/tools.js +14 -5
- package/Misc/tools.js.map +1 -1
- package/Misc/typeStore.d.ts +2 -5
- package/Misc/typeStore.js +3 -6
- package/Misc/typeStore.js.map +1 -1
- package/Misc/virtualJoystick.js +0 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Misc/webRequest.d.ts +2 -2
- package/Misc/webRequest.js +1 -1
- package/Misc/webRequest.js.map +1 -1
- package/Morph/morphTarget.d.ts +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +3 -4
- package/Morph/morphTargetManager.js +2 -3
- package/Morph/morphTargetManager.js.map +1 -1
- package/Particles/IGPUParticleSystemPlatform.d.ts +1 -1
- package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +6 -0
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +14 -9
- package/Particles/baseParticleSystem.js +17 -8
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/cloudPoint.d.ts +16 -19
- package/Particles/cloudPoint.js +21 -29
- package/Particles/cloudPoint.js.map +1 -1
- package/Particles/computeShaderParticleSystem.d.ts +1 -1
- package/Particles/computeShaderParticleSystem.js +1 -1
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +14 -20
- package/Particles/gpuParticleSystem.js +17 -13
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particle.d.ts +30 -31
- package/Particles/particle.js +16 -17
- package/Particles/particle.js.map +1 -1
- package/Particles/particleSystem.d.ts +16 -32
- package/Particles/particleSystem.js +30 -31
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +3 -4
- package/Particles/pointsCloudSystem.js +27 -20
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.d.ts +21 -31
- package/Particles/solidParticle.js +9 -19
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +14 -16
- package/Particles/solidParticleSystem.js +14 -16
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.d.ts +1 -5
- package/Particles/subEmitter.js +1 -5
- package/Particles/subEmitter.js.map +1 -1
- package/Particles/webgl2ParticleSystem.d.ts +1 -1
- package/Particles/webgl2ParticleSystem.js +1 -1
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/Physics/IPhysicsEngine.d.ts +1 -1
- package/Physics/IPhysicsEngine.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.d.ts +3 -0
- package/Physics/Plugins/ammoJSPlugin.js +21 -2
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
- package/Physics/Plugins/cannonJSPlugin.js +1 -1
- package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
- package/Physics/Plugins/oimoJSPlugin.d.ts +1 -1
- package/Physics/Plugins/oimoJSPlugin.js +3 -3
- package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/physicsEngineComponent.d.ts +4 -4
- package/Physics/physicsEngineComponent.js +1 -2
- package/Physics/physicsEngineComponent.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +13 -7
- package/Physics/physicsImpostor.js +9 -6
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +10 -10
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +5 -5
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +13 -13
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +7 -14
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +4 -4
- package/PostProcesses/bloomEffect.js +3 -3
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +1 -5
- package/PostProcesses/blurPostProcess.js +1 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.d.ts +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.d.ts +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.d.ts +1 -5
- package/PostProcesses/convolutionPostProcess.js +1 -5
- package/PostProcesses/convolutionPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +4 -4
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/displayPassPostProcess.d.ts +1 -5
- package/PostProcesses/displayPassPostProcess.js +1 -5
- package/PostProcesses/displayPassPostProcess.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/filterPostProcess.d.ts +1 -5
- package/PostProcesses/filterPostProcess.js +1 -5
- package/PostProcesses/filterPostProcess.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.d.ts +1 -5
- package/PostProcesses/fxaaPostProcess.js +1 -5
- package/PostProcesses/fxaaPostProcess.js.map +1 -1
- package/PostProcesses/grainPostProcess.d.ts +1 -5
- package/PostProcesses/grainPostProcess.js +1 -5
- package/PostProcesses/grainPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.d.ts +1 -5
- package/PostProcesses/motionBlurPostProcess.js +1 -5
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +2 -10
- package/PostProcesses/passPostProcess.js +2 -10
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +8 -12
- package/PostProcesses/postProcess.js +6 -10
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +3 -3
- package/PostProcesses/postProcessManager.js +3 -3
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/refractionPostProcess.d.ts +1 -5
- package/PostProcesses/refractionPostProcess.js +1 -5
- package/PostProcesses/refractionPostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.d.ts +1 -5
- package/PostProcesses/sharpenPostProcess.js +1 -5
- package/PostProcesses/sharpenPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +1 -1
- package/Probes/reflectionProbe.js +1 -1
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.d.ts +5 -5
- package/Rendering/boundingBoxRenderer.js +2 -2
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingSceneComponent.d.ts +2 -2
- package/Rendering/depthPeelingSceneComponent.js.map +1 -1
- package/Rendering/depthRenderer.d.ts +1 -2
- package/Rendering/depthRenderer.js +1 -2
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/depthRendererSceneComponent.d.ts +1 -1
- package/Rendering/depthRendererSceneComponent.js.map +1 -1
- package/Rendering/edgesRenderer.d.ts +2 -2
- package/Rendering/edgesRenderer.js +1 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +10 -16
- package/Rendering/geometryBufferRenderer.js +9 -15
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
- package/Rendering/outlineRenderer.d.ts +3 -3
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +7 -14
- package/Rendering/prePassRenderer.js +8 -15
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRendererSceneComponent.d.ts +2 -2
- package/Rendering/prePassRendererSceneComponent.js.map +1 -1
- package/Rendering/renderingGroup.d.ts +3 -3
- package/Rendering/renderingGroup.js +3 -3
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/renderingManager.d.ts +15 -8
- package/Rendering/renderingManager.js +59 -17
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +2 -4
- package/Rendering/subSurfaceConfiguration.js +2 -4
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/subSurfaceSceneComponent.d.ts +1 -1
- package/Rendering/subSurfaceSceneComponent.js.map +1 -1
- package/Rendering/utilityLayerRenderer.d.ts +4 -4
- package/Rendering/utilityLayerRenderer.js +15 -10
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/depthPrePass.d.ts +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.d.ts +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
- package/Shaders/ShadersInclude/fibonacci.d.ts +1 -1
- package/Shaders/ShadersInclude/fibonacci.js +1 -1
- package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragment.js +1 -1
- package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertex.js +1 -1
- package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.d.ts +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/instancesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +1 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/oitFragment.js +1 -1
- package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
- package/Shaders/ShadersInclude/packingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -3
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +2 -2
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.d.ts +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js +2 -2
- package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/Shaders/anaglyph.fragment.d.ts +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.d.ts +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.d.ts +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.d.ts +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.d.ts +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.d.ts +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.d.ts +1 -1
- package/Shaders/chromaticAberration.fragment.js +2 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.d.ts +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.fragment.d.ts +1 -1
- package/Shaders/clearQuad.fragment.js +1 -1
- package/Shaders/clearQuad.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.d.ts +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.d.ts +1 -1
- package/Shaders/color.fragment.js +4 -3
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +1 -1
- package/Shaders/color.vertex.js +2 -2
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.d.ts +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.d.ts +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.d.ts +1 -1
- package/Shaders/default.fragment.js +4 -4
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.d.ts +1 -1
- package/Shaders/default.vertex.js +2 -2
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.d.ts +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.d.ts +1 -1
- package/Shaders/depth.vertex.js +1 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.d.ts +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.d.ts +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.d.ts +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.d.ts +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.d.ts +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.d.ts +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.fragment.d.ts +1 -1
- package/Shaders/fxaa.fragment.js +1 -1
- package/Shaders/fxaa.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.d.ts +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.d.ts +1 -1
- package/Shaders/geometry.fragment.js +14 -2
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.d.ts +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.d.ts +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.d.ts +1 -1
- package/Shaders/glowMapGeneration.vertex.js +1 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.d.ts +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.d.ts +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.d.ts +3 -1
- package/Shaders/gpuRenderParticles.fragment.js +9 -2
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.d.ts +3 -1
- package/Shaders/gpuRenderParticles.vertex.js +5 -1
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.fragment.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/grain.fragment.d.ts +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.fragment.d.ts +1 -1
- package/Shaders/hdrFiltering.fragment.js +1 -1
- package/Shaders/hdrFiltering.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.d.ts +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.d.ts +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.d.ts +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.d.ts +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.d.ts +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.d.ts +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.d.ts +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.d.ts +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.d.ts +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.d.ts +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.d.ts +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.d.ts +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.d.ts +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.d.ts +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.d.ts +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/oitBackBlend.fragment.d.ts +1 -1
- package/Shaders/oitBackBlend.fragment.js +1 -1
- package/Shaders/oitBackBlend.fragment.js.map +1 -1
- package/Shaders/oitFinal.fragment.d.ts +1 -1
- package/Shaders/oitFinal.fragment.js +1 -1
- package/Shaders/oitFinal.fragment.js.map +1 -1
- package/Shaders/outline.fragment.d.ts +1 -1
- package/Shaders/outline.fragment.js +1 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +1 -1
- package/Shaders/outline.vertex.js +1 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.d.ts +3 -1
- package/Shaders/particles.fragment.js +9 -2
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.d.ts +3 -1
- package/Shaders/particles.vertex.js +5 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.d.ts +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.d.ts +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.d.ts +1 -1
- package/Shaders/pbr.vertex.js +2 -2
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.d.ts +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.d.ts +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/refraction.fragment.d.ts +1 -1
- package/Shaders/refraction.fragment.js +1 -1
- package/Shaders/refraction.fragment.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.d.ts +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.d.ts +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.d.ts +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.d.ts +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +1 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.d.ts +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.d.ts +1 -1
- package/Shaders/shadowMap.vertex.js +1 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.d.ts +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/spriteMap.fragment.d.ts +1 -1
- package/Shaders/spriteMap.fragment.js +1 -1
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/Shaders/spriteMap.vertex.d.ts +1 -1
- package/Shaders/spriteMap.vertex.js +1 -1
- package/Shaders/spriteMap.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.d.ts +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.d.ts +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssao.fragment.d.ts +1 -1
- package/Shaders/ssao.fragment.js +1 -1
- package/Shaders/ssao.fragment.js.map +1 -1
- package/Shaders/ssao2.fragment.d.ts +1 -1
- package/Shaders/ssao2.fragment.js +1 -1
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.d.ts +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.d.ts +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.d.ts +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.d.ts +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.d.ts +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.d.ts +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.d.ts +4 -0
- package/Sprites/spriteManager.js +2 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteSceneComponent.d.ts +6 -6
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/Sprites/thinSprite.d.ts +5 -6
- package/Sprites/thinSprite.js +1 -2
- package/Sprites/thinSprite.js.map +1 -1
- package/States/IStencilState.d.ts +1 -1
- package/States/IStencilState.js.map +1 -1
- package/States/alphaCullingState.d.ts +1 -1
- package/States/alphaCullingState.js +1 -1
- package/States/alphaCullingState.js.map +1 -1
- package/States/depthCullingState.d.ts +1 -1
- package/States/depthCullingState.js +1 -1
- package/States/depthCullingState.js.map +1 -1
- package/States/stencilState.d.ts +1 -1
- package/States/stencilState.js +1 -1
- package/States/stencilState.js.map +1 -1
- package/States/stencilStateComposer.d.ts +1 -1
- package/States/stencilStateComposer.js +1 -1
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.d.ts +1 -1
- package/XR/features/WebXRControllerPhysics.js +1 -1
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.d.ts +3 -6
- package/XR/features/WebXRControllerPointerSelection.js +3 -6
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +2 -2
- package/XR/features/WebXRLayers.js +4 -4
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +2 -2
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.d.ts +3 -4
- package/XR/motionController/webXRAbstractMotionController.js +2 -3
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +2 -2
- package/XR/native/nativeXRFrame.js +1 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +3 -3
- package/XR/native/nativeXRRenderTarget.js +3 -3
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRCamera.d.ts +2 -2
- package/XR/webXRCamera.js +1 -1
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +6 -6
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXRExperienceHelper.d.ts +21 -1
- package/XR/webXRExperienceHelper.js +37 -7
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInputSource.d.ts +1 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +1 -1
- package/XR/webXRLayerWrapper.js +1 -1
- package/XR/webXRLayerWrapper.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
- package/XR/webXRRenderTargetTextureProvider.js +1 -1
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +1 -2
- package/XR/webXRSessionManager.js +1 -2
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/node.d.ts +40 -52
- package/node.js +40 -55
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +83 -107
- package/scene.js +94 -108
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +4 -2
- package/sceneComponent.js +4 -2
- package/sceneComponent.js.map +1 -1
- package/types.d.ts +2 -2
- package/types.js +1 -1
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuCacheRenderPipeline.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../constants\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport type { Effect } from \"../../Materials/effect\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport type { DataBuffer } from \"../../Buffers/dataBuffer\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\nimport type { WebGPUPipelineContext } from \"./webgpuPipelineContext\";\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\nimport { renderableTextureFormatToIndex, WebGPUTextureHelper } from \"./webgpuTextureHelper\";\r\n\r\nenum StatePosition {\r\n StencilReadMask = 0,\r\n StencilWriteMask = 1,\r\n //DepthBiasClamp = 1, // not used, so remove it to improve perf\r\n DepthBias = 2,\r\n DepthBiasSlopeScale = 3,\r\n DepthStencilState = 4,\r\n MRTAttachments1 = 5,\r\n MRTAttachments2 = 6,\r\n RasterizationState = 7,\r\n ColorStates = 8,\r\n ShaderStage = 9,\r\n TextureStage = 10,\r\n VertexState = 11, // vertex state will consume positions 11, 12, ... depending on the number of vertex inputs\r\n\r\n NumStates = 12,\r\n}\r\n\r\nconst alphaBlendFactorToIndex: { [name: number]: number } = {\r\n 0: 1, // Zero\r\n 1: 2, // One\r\n 0x0300: 3, // SrcColor\r\n 0x0301: 4, // OneMinusSrcColor\r\n 0x0302: 5, // SrcAlpha\r\n 0x0303: 6, // OneMinusSrcAlpha\r\n 0x0304: 7, // DstAlpha\r\n 0x0305: 8, // OneMinusDstAlpha\r\n 0x0306: 9, // DstColor\r\n 0x0307: 10, // OneMinusDstColor\r\n 0x0308: 11, // SrcAlphaSaturated\r\n 0x8001: 12, // BlendColor\r\n 0x8002: 13, // OneMinusBlendColor\r\n 0x8003: 12, // BlendColor (alpha)\r\n 0x8004: 13, // OneMinusBlendColor (alpha)\r\n};\r\n\r\nconst stencilOpToIndex: { [name: number]: number } = {\r\n 0x0000: 0, // ZERO\r\n 0x1e00: 1, // KEEP\r\n 0x1e01: 2, // REPLACE\r\n 0x1e02: 3, // INCR\r\n 0x1e03: 4, // DECR\r\n 0x150a: 5, // INVERT\r\n 0x8507: 6, // INCR_WRAP\r\n 0x8508: 7, // DECR_WRAP\r\n};\r\n\r\n/** @hidden */\r\nexport abstract class WebGPUCacheRenderPipeline {\r\n public static NumCacheHitWithoutHash = 0;\r\n public static NumCacheHitWithHash = 0;\r\n public static NumCacheMiss = 0;\r\n public static NumPipelineCreationLastFrame = 0;\r\n\r\n public disabled: boolean;\r\n\r\n private static _NumPipelineCreationCurrentFrame = 0;\r\n\r\n protected _states: number[];\r\n protected _statesLength: number;\r\n protected _stateDirtyLowestIndex: number;\r\n public lastStateDirtyLowestIndex: number; // for stats only\r\n\r\n private _device: GPUDevice;\r\n private _isDirty: boolean;\r\n private _emptyVertexBuffer: VertexBuffer;\r\n private _parameter: { token: any; pipeline: Nullable<GPURenderPipeline> };\r\n private _kMaxVertexBufferStride;\r\n\r\n private _shaderId: number;\r\n private _alphaToCoverageEnabled: boolean;\r\n private _frontFace: number;\r\n private _cullEnabled: boolean;\r\n private _cullFace: number;\r\n private _clampDepth: boolean;\r\n private _rasterizationState: number;\r\n private _depthBias: number;\r\n private _depthBiasClamp: number;\r\n private _depthBiasSlopeScale: number;\r\n private _colorFormat: number;\r\n private _webgpuColorFormat: (GPUTextureFormat | null)[];\r\n private _mrtAttachments1: number;\r\n private _mrtAttachments2: number;\r\n private _mrtFormats: (GPUTextureFormat | null)[];\r\n private _mrtEnabledMask: number;\r\n private _alphaBlendEnabled: boolean;\r\n private _alphaBlendFuncParams: Array<Nullable<number>>;\r\n private _alphaBlendEqParams: Array<Nullable<number>>;\r\n private _writeMask: number;\r\n private _colorStates: number;\r\n private _depthStencilFormat: number;\r\n private _webgpuDepthStencilFormat: GPUTextureFormat | undefined;\r\n private _depthTestEnabled: boolean;\r\n private _depthWriteEnabled: boolean;\r\n private _depthCompare: number;\r\n private _stencilEnabled: boolean;\r\n private _stencilFrontCompare: number;\r\n private _stencilFrontDepthFailOp: number;\r\n private _stencilFrontPassOp: number;\r\n private _stencilFrontFailOp: number;\r\n private _stencilReadMask: number;\r\n private _stencilWriteMask: number;\r\n private _depthStencilState: number;\r\n private _vertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>;\r\n private _overrideVertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>;\r\n private _indexBuffer: Nullable<DataBuffer>;\r\n private _textureState: number;\r\n private _useTextureStage: boolean;\r\n\r\n constructor(device: GPUDevice, emptyVertexBuffer: VertexBuffer, useTextureStage: boolean) {\r\n this._device = device;\r\n this._useTextureStage = useTextureStage;\r\n this._states = new Array(30); // pre-allocate enough room so that no new allocation will take place afterwards\r\n this._statesLength = 0;\r\n this._stateDirtyLowestIndex = 0;\r\n this._emptyVertexBuffer = emptyVertexBuffer;\r\n this._mrtFormats = [];\r\n this._parameter = { token: undefined, pipeline: null };\r\n this.disabled = false;\r\n this.vertexBuffers = [];\r\n this._kMaxVertexBufferStride = device.limits.maxVertexBufferArrayStride || 2048;\r\n this.reset();\r\n }\r\n\r\n public reset(): void {\r\n this._isDirty = true;\r\n this.vertexBuffers.length = 0;\r\n this.setAlphaToCoverage(false);\r\n this.resetDepthCullingState();\r\n this.setClampDepth(false);\r\n this.setDepthBias(0);\r\n //this.setDepthBiasClamp(0);\r\n this._webgpuColorFormat = [WebGPUConstants.TextureFormat.BGRA8Unorm];\r\n this.setColorFormat(WebGPUConstants.TextureFormat.BGRA8Unorm);\r\n this.setMRT([]);\r\n this.setAlphaBlendEnabled(false);\r\n this.setAlphaBlendFactors([null, null, null, null], [null, null]);\r\n this.setWriteMask(0xf);\r\n this.setDepthStencilFormat(WebGPUConstants.TextureFormat.Depth24PlusStencil8);\r\n this.setStencilEnabled(false);\r\n this.resetStencilState();\r\n this.setBuffers(null, null, null);\r\n this._setTextureState(0);\r\n }\r\n\r\n protected abstract _getRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void;\r\n protected abstract _setRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void;\r\n\r\n public readonly vertexBuffers: VertexBuffer[];\r\n\r\n public get colorFormats(): (GPUTextureFormat | null)[] {\r\n return this._mrtAttachments1 > 0 ? this._mrtFormats : this._webgpuColorFormat;\r\n }\r\n\r\n public readonly mrtAttachments: number[];\r\n public readonly mrtTextureArray: InternalTexture[];\r\n public readonly mrtTextureCount: number = 0;\r\n\r\n public getRenderPipeline(fillMode: number, effect: Effect, sampleCount: number, textureState = 0): GPURenderPipeline {\r\n if (sampleCount > 1) {\r\n // WebGPU only supports 1 or 4\r\n sampleCount = 4;\r\n }\r\n if (this.disabled) {\r\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\r\n\r\n this._setVertexState(effect); // to fill this.vertexBuffers with correct data\r\n\r\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\r\n\r\n WebGPUCacheRenderPipeline.NumCacheMiss++;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\r\n\r\n return this._parameter.pipeline;\r\n }\r\n\r\n this._setShaderStage(effect.uniqueId);\r\n this._setRasterizationState(fillMode, sampleCount);\r\n this._setColorStates();\r\n this._setDepthStencilState();\r\n this._setVertexState(effect);\r\n this._setTextureState(textureState);\r\n\r\n this.lastStateDirtyLowestIndex = this._stateDirtyLowestIndex;\r\n\r\n if (!this._isDirty && this._parameter.pipeline) {\r\n this._stateDirtyLowestIndex = this._statesLength;\r\n WebGPUCacheRenderPipeline.NumCacheHitWithoutHash++;\r\n return this._parameter.pipeline;\r\n }\r\n\r\n this._getRenderPipeline(this._parameter);\r\n\r\n this._isDirty = false;\r\n this._stateDirtyLowestIndex = this._statesLength;\r\n\r\n if (this._parameter.pipeline) {\r\n WebGPUCacheRenderPipeline.NumCacheHitWithHash++;\r\n return this._parameter.pipeline;\r\n }\r\n\r\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\r\n\r\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\r\n this._setRenderPipeline(this._parameter);\r\n\r\n WebGPUCacheRenderPipeline.NumCacheMiss++;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\r\n\r\n return this._parameter.pipeline;\r\n }\r\n\r\n public endFrame(): void {\r\n WebGPUCacheRenderPipeline.NumPipelineCreationLastFrame = WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame = 0;\r\n }\r\n\r\n public setAlphaToCoverage(enabled: boolean): void {\r\n this._alphaToCoverageEnabled = enabled;\r\n }\r\n\r\n public setFrontFace(frontFace: number): void {\r\n this._frontFace = frontFace;\r\n }\r\n\r\n public setCullEnabled(enabled: boolean): void {\r\n this._cullEnabled = enabled;\r\n }\r\n\r\n public setCullFace(cullFace: number): void {\r\n this._cullFace = cullFace;\r\n }\r\n\r\n public setClampDepth(clampDepth: boolean): void {\r\n this._clampDepth = clampDepth;\r\n }\r\n\r\n public resetDepthCullingState(): void {\r\n this.setDepthCullingState(false, 2, 1, 0, 0, true, true, Constants.ALWAYS);\r\n }\r\n\r\n public setDepthCullingState(\r\n cullEnabled: boolean,\r\n frontFace: number,\r\n cullFace: number,\r\n zOffset: number,\r\n zOffsetUnits: number,\r\n depthTestEnabled: boolean,\r\n depthWriteEnabled: boolean,\r\n depthCompare: Nullable<number>\r\n ): void {\r\n this._depthWriteEnabled = depthWriteEnabled;\r\n this._depthTestEnabled = depthTestEnabled;\r\n this._depthCompare = (depthCompare ?? Constants.ALWAYS) - 0x0200;\r\n this._cullFace = cullFace;\r\n this._cullEnabled = cullEnabled;\r\n this._frontFace = frontFace;\r\n this.setDepthBiasSlopeScale(zOffset);\r\n this.setDepthBias(zOffsetUnits);\r\n }\r\n\r\n public setDepthBias(depthBias: number): void {\r\n if (this._depthBias !== depthBias) {\r\n this._depthBias = depthBias;\r\n this._states[StatePosition.DepthBias] = depthBias;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBias);\r\n }\r\n }\r\n\r\n /*public setDepthBiasClamp(depthBiasClamp: number): void {\r\n if (this._depthBiasClamp !== depthBiasClamp) {\r\n this._depthBiasClamp = depthBiasClamp;\r\n this._states[StatePosition.DepthBiasClamp] = depthBiasClamp.toString();\r\n this._isDirty = true;\r\n }\r\n }*/\r\n\r\n public setDepthBiasSlopeScale(depthBiasSlopeScale: number): void {\r\n if (this._depthBiasSlopeScale !== depthBiasSlopeScale) {\r\n this._depthBiasSlopeScale = depthBiasSlopeScale;\r\n this._states[StatePosition.DepthBiasSlopeScale] = depthBiasSlopeScale;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBiasSlopeScale);\r\n }\r\n }\r\n\r\n public setColorFormat(format: GPUTextureFormat | null): void {\r\n this._webgpuColorFormat[0] = format;\r\n this._colorFormat = renderableTextureFormatToIndex[format ?? \"\"];\r\n }\r\n\r\n public setMRTAttachments(attachments: number[]): void {\r\n (this.mrtAttachments as any) = attachments;\r\n let mask = 0;\r\n for (let i = 0; i < attachments.length; ++i) {\r\n if (attachments[i] !== 0) {\r\n mask += 1 << i;\r\n }\r\n }\r\n if (this._mrtEnabledMask !== mask) {\r\n this._mrtEnabledMask = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\r\n }\r\n }\r\n\r\n public setMRT(textureArray: InternalTexture[], textureCount?: number): void {\r\n textureCount = textureCount ?? textureArray.length;\r\n if (textureCount > 10) {\r\n // If we want more than 10 attachments we need to change this method (and the StatePosition enum) but 10 seems plenty: note that WebGPU only supports 8 at the time (2021/12/13)!\r\n // As we need 39 different values we are using 6 bits to encode a texture format, meaning we can encode 5 texture formats in 32 bits\r\n // We are using 2x32 bit values to handle 10 textures\r\n throw \"Can't handle more than 10 attachments for a MRT in cache render pipeline!\";\r\n }\r\n (this.mrtTextureArray as any) = textureArray;\r\n (this.mrtTextureCount as any) = textureCount;\r\n\r\n this._mrtEnabledMask = 0xffff; // all textures are enabled at start (meaning we can write to them). Calls to setMRTAttachments may disable some\r\n\r\n const bits: number[] = [0, 0];\r\n let indexBits = 0,\r\n mask = 0,\r\n numRT = 0;\r\n for (let i = 0; i < textureCount; ++i) {\r\n const texture = textureArray[i];\r\n const gpuWrapper = texture?._hardwareTexture as Nullable<WebGPUHardwareTexture>;\r\n\r\n this._mrtFormats[numRT] = gpuWrapper?.format ?? this._webgpuColorFormat[0];\r\n\r\n bits[indexBits] += renderableTextureFormatToIndex[this._mrtFormats[numRT] ?? \"\"] << mask;\r\n mask += 6;\r\n numRT++;\r\n\r\n if (mask >= 32) {\r\n mask = 0;\r\n indexBits++;\r\n }\r\n }\r\n this._mrtFormats.length = numRT;\r\n if (this._mrtAttachments1 !== bits[0] || this._mrtAttachments2 !== bits[1]) {\r\n this._mrtAttachments1 = bits[0];\r\n this._mrtAttachments2 = bits[1];\r\n this._states[StatePosition.MRTAttachments1] = bits[0];\r\n this._states[StatePosition.MRTAttachments2] = bits[1];\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\r\n }\r\n }\r\n\r\n public setAlphaBlendEnabled(enabled: boolean): void {\r\n this._alphaBlendEnabled = enabled;\r\n }\r\n\r\n public setAlphaBlendFactors(factors: Array<Nullable<number>>, operations: Array<Nullable<number>>): void {\r\n this._alphaBlendFuncParams = factors;\r\n this._alphaBlendEqParams = operations;\r\n }\r\n\r\n public setWriteMask(mask: number): void {\r\n this._writeMask = mask;\r\n }\r\n\r\n public setDepthStencilFormat(format: GPUTextureFormat | undefined): void {\r\n this._webgpuDepthStencilFormat = format;\r\n this._depthStencilFormat = format === undefined ? 0 : renderableTextureFormatToIndex[format];\r\n }\r\n\r\n public setDepthTestEnabled(enabled: boolean): void {\r\n this._depthTestEnabled = enabled;\r\n }\r\n\r\n public setDepthWriteEnabled(enabled: boolean): void {\r\n this._depthWriteEnabled = enabled;\r\n }\r\n\r\n public setDepthCompare(func: Nullable<number>): void {\r\n this._depthCompare = (func ?? Constants.ALWAYS) - 0x0200;\r\n }\r\n\r\n public setStencilEnabled(enabled: boolean): void {\r\n this._stencilEnabled = enabled;\r\n }\r\n\r\n public setStencilCompare(func: Nullable<number>): void {\r\n this._stencilFrontCompare = (func ?? Constants.ALWAYS) - 0x0200;\r\n }\r\n\r\n public setStencilDepthFailOp(op: Nullable<number>): void {\r\n this._stencilFrontDepthFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilPassOp(op: Nullable<number>): void {\r\n this._stencilFrontPassOp = op === null ? 2 /* REPLACE */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilFailOp(op: Nullable<number>): void {\r\n this._stencilFrontFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilReadMask(mask: number): void {\r\n if (this._stencilReadMask !== mask) {\r\n this._stencilReadMask = mask;\r\n this._states[StatePosition.StencilReadMask] = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilReadMask);\r\n }\r\n }\r\n\r\n public setStencilWriteMask(mask: number): void {\r\n if (this._stencilWriteMask !== mask) {\r\n this._stencilWriteMask = mask;\r\n this._states[StatePosition.StencilWriteMask] = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilWriteMask);\r\n }\r\n }\r\n\r\n public resetStencilState(): void {\r\n this.setStencilState(false, Constants.ALWAYS, Constants.KEEP, Constants.REPLACE, Constants.KEEP, 0xff, 0xff);\r\n }\r\n\r\n public setStencilState(\r\n stencilEnabled: boolean,\r\n compare: Nullable<number>,\r\n depthFailOp: Nullable<number>,\r\n passOp: Nullable<number>,\r\n failOp: Nullable<number>,\r\n readMask: number,\r\n writeMask: number\r\n ): void {\r\n this._stencilEnabled = stencilEnabled;\r\n this._stencilFrontCompare = (compare ?? Constants.ALWAYS) - 0x0200;\r\n this._stencilFrontDepthFailOp = depthFailOp === null ? 1 /* KEEP */ : stencilOpToIndex[depthFailOp];\r\n this._stencilFrontPassOp = passOp === null ? 2 /* REPLACE */ : stencilOpToIndex[passOp];\r\n this._stencilFrontFailOp = failOp === null ? 1 /* KEEP */ : stencilOpToIndex[failOp];\r\n this.setStencilReadMask(readMask);\r\n this.setStencilWriteMask(writeMask);\r\n }\r\n\r\n public setBuffers(\r\n vertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>,\r\n indexBuffer: Nullable<DataBuffer>,\r\n overrideVertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>\r\n ): void {\r\n this._vertexBuffers = vertexBuffers;\r\n this._overrideVertexBuffers = overrideVertexBuffers;\r\n this._indexBuffer = indexBuffer;\r\n }\r\n\r\n private static _GetTopology(fillMode: number): GPUPrimitiveTopology {\r\n switch (fillMode) {\r\n // Triangle views\r\n case Constants.MATERIAL_TriangleFillMode:\r\n return WebGPUConstants.PrimitiveTopology.TriangleList;\r\n case Constants.MATERIAL_PointFillMode:\r\n return WebGPUConstants.PrimitiveTopology.PointList;\r\n case Constants.MATERIAL_WireFrameFillMode:\r\n return WebGPUConstants.PrimitiveTopology.LineList;\r\n // Draw modes\r\n case Constants.MATERIAL_PointListDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.PointList;\r\n case Constants.MATERIAL_LineListDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.LineList;\r\n case Constants.MATERIAL_LineLoopDrawMode:\r\n // return this._gl.LINE_LOOP;\r\n // TODO WEBGPU. Line Loop Mode Fallback at buffer load time.\r\n throw \"LineLoop is an unsupported fillmode in WebGPU\";\r\n case Constants.MATERIAL_LineStripDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.LineStrip;\r\n case Constants.MATERIAL_TriangleStripDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.TriangleStrip;\r\n case Constants.MATERIAL_TriangleFanDrawMode:\r\n // return this._gl.TRIANGLE_FAN;\r\n // TODO WEBGPU. Triangle Fan Mode Fallback at buffer load time.\r\n throw \"TriangleFan is an unsupported fillmode in WebGPU\";\r\n default:\r\n return WebGPUConstants.PrimitiveTopology.TriangleList;\r\n }\r\n }\r\n\r\n private static _GetAphaBlendOperation(operation: Nullable<number>): GPUBlendOperation {\r\n switch (operation) {\r\n case Constants.GL_ALPHA_EQUATION_ADD:\r\n return WebGPUConstants.BlendOperation.Add;\r\n case Constants.GL_ALPHA_EQUATION_SUBTRACT:\r\n return WebGPUConstants.BlendOperation.Subtract;\r\n case Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT:\r\n return WebGPUConstants.BlendOperation.ReverseSubtract;\r\n case Constants.GL_ALPHA_EQUATION_MIN:\r\n return WebGPUConstants.BlendOperation.Min;\r\n case Constants.GL_ALPHA_EQUATION_MAX:\r\n return WebGPUConstants.BlendOperation.Max;\r\n default:\r\n return WebGPUConstants.BlendOperation.Add;\r\n }\r\n }\r\n\r\n private static _GetAphaBlendFactor(factor: Nullable<number>): GPUBlendFactor {\r\n switch (factor) {\r\n case 0:\r\n return WebGPUConstants.BlendFactor.Zero;\r\n case 1:\r\n return WebGPUConstants.BlendFactor.One;\r\n case Constants.GL_ALPHA_FUNCTION_SRC:\r\n return WebGPUConstants.BlendFactor.Src;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusSrc;\r\n case Constants.GL_ALPHA_FUNCTION_SRC_ALPHA:\r\n return WebGPUConstants.BlendFactor.SrcAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusSrcAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_DST_ALPHA:\r\n return WebGPUConstants.BlendFactor.DstAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusDstAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_DST_COLOR:\r\n return WebGPUConstants.BlendFactor.Dst;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusDst;\r\n case Constants.GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED:\r\n return WebGPUConstants.BlendFactor.SrcAlphaSaturated;\r\n case Constants.GL_ALPHA_FUNCTION_CONSTANT_COLOR:\r\n return WebGPUConstants.BlendFactor.Constant;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusConstant;\r\n case Constants.GL_ALPHA_FUNCTION_CONSTANT_ALPHA:\r\n return WebGPUConstants.BlendFactor.Constant;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusConstant;\r\n default:\r\n return WebGPUConstants.BlendFactor.One;\r\n }\r\n }\r\n\r\n private static _GetCompareFunction(compareFunction: number): GPUCompareFunction {\r\n switch (compareFunction) {\r\n case 0: // NEVER\r\n return WebGPUConstants.CompareFunction.Never;\r\n case 1: // LESS\r\n return WebGPUConstants.CompareFunction.Less;\r\n case 2: // EQUAL\r\n return WebGPUConstants.CompareFunction.Equal;\r\n case 3: // LEQUAL\r\n return WebGPUConstants.CompareFunction.LessEqual;\r\n case 4: // GREATER\r\n return WebGPUConstants.CompareFunction.Greater;\r\n case 5: // NOTEQUAL\r\n return WebGPUConstants.CompareFunction.NotEqual;\r\n case 6: // GEQUAL\r\n return WebGPUConstants.CompareFunction.GreaterEqual;\r\n case 7: // ALWAYS\r\n return WebGPUConstants.CompareFunction.Always;\r\n }\r\n return WebGPUConstants.CompareFunction.Never;\r\n }\r\n\r\n private static _GetStencilOpFunction(operation: number): GPUStencilOperation {\r\n switch (operation) {\r\n case 0:\r\n return WebGPUConstants.StencilOperation.Zero;\r\n case 1:\r\n return WebGPUConstants.StencilOperation.Keep;\r\n case 2:\r\n return WebGPUConstants.StencilOperation.Replace;\r\n case 3:\r\n return WebGPUConstants.StencilOperation.IncrementClamp;\r\n case 4:\r\n return WebGPUConstants.StencilOperation.DecrementClamp;\r\n case 5:\r\n return WebGPUConstants.StencilOperation.Invert;\r\n case 6:\r\n return WebGPUConstants.StencilOperation.IncrementWrap;\r\n case 7:\r\n return WebGPUConstants.StencilOperation.DecrementWrap;\r\n }\r\n return WebGPUConstants.StencilOperation.Keep;\r\n }\r\n\r\n private static _GetVertexInputDescriptorFormat(vertexBuffer: VertexBuffer): GPUVertexFormat {\r\n const type = vertexBuffer.type;\r\n const normalized = vertexBuffer.normalized;\r\n const size = vertexBuffer.getSize();\r\n\r\n switch (type) {\r\n case VertexBuffer.BYTE:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm8x2 : WebGPUConstants.VertexFormat.Sint8x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm8x4 : WebGPUConstants.VertexFormat.Sint8x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_BYTE:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm8x2 : WebGPUConstants.VertexFormat.Uint8x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm8x4 : WebGPUConstants.VertexFormat.Uint8x4;\r\n }\r\n break;\r\n case VertexBuffer.SHORT:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm16x2 : WebGPUConstants.VertexFormat.Sint16x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm16x4 : WebGPUConstants.VertexFormat.Sint16x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_SHORT:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm16x2 : WebGPUConstants.VertexFormat.Uint16x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm16x4 : WebGPUConstants.VertexFormat.Uint16x4;\r\n }\r\n break;\r\n case VertexBuffer.INT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Sint32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Sint32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Sint32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Sint32x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_INT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Uint32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Uint32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Uint32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Uint32x4;\r\n }\r\n break;\r\n case VertexBuffer.FLOAT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Float32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Float32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Float32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Float32x4;\r\n }\r\n break;\r\n }\r\n\r\n throw new Error(`Invalid Format '${vertexBuffer.getKind()}' - type=${type}, normalized=${normalized}, size=${size}`);\r\n }\r\n\r\n private _getAphaBlendState(): Nullable<GPUBlendComponent> {\r\n if (!this._alphaBlendEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[2]),\r\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[3]),\r\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[1]),\r\n };\r\n }\r\n\r\n private _getColorBlendState(): Nullable<GPUBlendComponent> {\r\n if (!this._alphaBlendEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[0]),\r\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[1]),\r\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[0]),\r\n };\r\n }\r\n\r\n private _setShaderStage(id: number): void {\r\n if (this._shaderId !== id) {\r\n this._shaderId = id;\r\n this._states[StatePosition.ShaderStage] = id;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ShaderStage);\r\n }\r\n }\r\n\r\n private _setRasterizationState(topology: number, sampleCount: number): void {\r\n const frontFace = this._frontFace;\r\n const cullMode = this._cullEnabled ? this._cullFace : 0;\r\n const clampDepth = this._clampDepth ? 1 : 0;\r\n const alphaToCoverage = this._alphaToCoverageEnabled ? 1 : 0;\r\n const rasterizationState = frontFace - 1 + (cullMode << 1) + (clampDepth << 3) + (alphaToCoverage << 4) + (topology << 5) + (sampleCount << 8);\r\n\r\n if (this._rasterizationState !== rasterizationState) {\r\n this._rasterizationState = rasterizationState;\r\n this._states[StatePosition.RasterizationState] = this._rasterizationState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.RasterizationState);\r\n }\r\n }\r\n\r\n private _setColorStates(): void {\r\n let colorStates = ((this._writeMask ? 1 : 0) << 22) + (this._colorFormat << 23) + ((this._depthWriteEnabled ? 1 : 0) << 29); // this state has been moved from depthStencilState here because alpha and depth are related (generally when alpha is on, depth write is off and the other way around)\r\n\r\n if (this._alphaBlendEnabled) {\r\n colorStates +=\r\n ((this._alphaBlendFuncParams[0] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[0]]) << 0) +\r\n ((this._alphaBlendFuncParams[1] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[1]]) << 4) +\r\n ((this._alphaBlendFuncParams[2] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[2]]) << 8) +\r\n ((this._alphaBlendFuncParams[3] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[3]]) << 12) +\r\n ((this._alphaBlendEqParams[0] === null ? 1 : this._alphaBlendEqParams[0] - 0x8005) << 16) +\r\n ((this._alphaBlendEqParams[1] === null ? 1 : this._alphaBlendEqParams[1] - 0x8005) << 19);\r\n }\r\n\r\n if (colorStates !== this._colorStates) {\r\n this._colorStates = colorStates;\r\n this._states[StatePosition.ColorStates] = this._colorStates;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ColorStates);\r\n }\r\n }\r\n\r\n private _setDepthStencilState(): void {\r\n const stencilState = !this._stencilEnabled\r\n ? 7 /* ALWAYS */ + (1 /* KEEP */ << 3) + (1 /* KEEP */ << 6) + (1 /* KEEP */ << 9)\r\n : this._stencilFrontCompare + (this._stencilFrontDepthFailOp << 3) + (this._stencilFrontPassOp << 6) + (this._stencilFrontFailOp << 9);\r\n\r\n const depthStencilState = this._depthStencilFormat + ((this._depthTestEnabled ? this._depthCompare : 7) /* ALWAYS */ << 6) + (stencilState << 10); // stencil front - stencil back is the same\r\n\r\n if (this._depthStencilState !== depthStencilState) {\r\n this._depthStencilState = depthStencilState;\r\n this._states[StatePosition.DepthStencilState] = this._depthStencilState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthStencilState);\r\n }\r\n }\r\n\r\n private _setVertexState(effect: Effect): void {\r\n const currStateLen = this._statesLength;\r\n let newNumStates = StatePosition.VertexState;\r\n\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\r\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\r\n\r\n let currentGPUBuffer;\r\n let numVertexBuffers = 0;\r\n for (let index = 0; index < attributes.length; index++) {\r\n const location = locations[index];\r\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers![attributes[index]];\r\n if (!vertexBuffer) {\r\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\r\n // So we must bind a dummy buffer when we are not given one for a specific attribute\r\n vertexBuffer = this._emptyVertexBuffer;\r\n }\r\n\r\n const buffer = vertexBuffer.getBuffer()?.underlyingResource;\r\n\r\n // We optimize usage of GPUVertexBufferLayout: we will create a single GPUVertexBufferLayout for all the attributes which follow each other and which use the same GPU buffer\r\n // However, there are some constraints in the attribute.offset value range, so we must check for them before being able to reuse the same GPUVertexBufferLayout\r\n // See _getVertexInputDescriptor() below\r\n if (vertexBuffer._validOffsetRange === undefined) {\r\n const offset = vertexBuffer.byteOffset;\r\n const formatSize = vertexBuffer.getSize(true);\r\n const byteStride = vertexBuffer.byteStride;\r\n vertexBuffer._validOffsetRange = offset <= this._kMaxVertexBufferStride - formatSize && (byteStride === 0 || offset + formatSize <= byteStride);\r\n }\r\n\r\n if (!(currentGPUBuffer && currentGPUBuffer === buffer && vertexBuffer._validOffsetRange)) {\r\n // we can't combine the previous vertexBuffer with the current one\r\n this.vertexBuffers[numVertexBuffers++] = vertexBuffer;\r\n currentGPUBuffer = vertexBuffer._validOffsetRange ? buffer : null;\r\n }\r\n\r\n const vid = vertexBuffer.hashCode + (location << 7);\r\n\r\n this._isDirty = this._isDirty || this._states[newNumStates] !== vid;\r\n this._states[newNumStates++] = vid;\r\n }\r\n\r\n this.vertexBuffers.length = numVertexBuffers;\r\n\r\n this._statesLength = newNumStates;\r\n this._isDirty = this._isDirty || newNumStates !== currStateLen;\r\n if (this._isDirty) {\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.VertexState);\r\n }\r\n }\r\n\r\n private _setTextureState(textureState: number): void {\r\n if (this._textureState !== textureState) {\r\n this._textureState = textureState;\r\n this._states[StatePosition.TextureStage] = this._textureState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.TextureStage);\r\n }\r\n }\r\n\r\n private _createPipelineLayout(webgpuPipelineContext: WebGPUPipelineContext): GPUPipelineLayout {\r\n if (this._useTextureStage) {\r\n return this._createPipelineLayoutWithTextureStage(webgpuPipelineContext);\r\n }\r\n\r\n const bindGroupLayouts: GPUBindGroupLayout[] = [];\r\n const bindGroupLayoutEntries = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries;\r\n\r\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = bindGroupLayoutEntries[i];\r\n\r\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\r\n entries: setDefinition,\r\n });\r\n }\r\n\r\n webgpuPipelineContext.bindGroupLayouts = bindGroupLayouts;\r\n\r\n return this._device.createPipelineLayout({ bindGroupLayouts });\r\n }\r\n\r\n private _createPipelineLayoutWithTextureStage(webgpuPipelineContext: WebGPUPipelineContext): GPUPipelineLayout {\r\n const shaderProcessingContext = webgpuPipelineContext.shaderProcessingContext;\r\n const bindGroupLayoutEntries = shaderProcessingContext.bindGroupLayoutEntries;\r\n\r\n let bitVal = 1;\r\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = bindGroupLayoutEntries[i];\r\n\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = bindGroupLayoutEntries[i][j];\r\n\r\n if (entry.texture) {\r\n const name = shaderProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\r\n const textureInfo = shaderProcessingContext.availableTextures[name];\r\n const samplerInfo = textureInfo.autoBindSampler ? shaderProcessingContext.availableSamplers[name + WebGPUShaderProcessor.AutoSamplerSuffix] : null;\r\n\r\n let sampleType = textureInfo.sampleType;\r\n let samplerType = samplerInfo?.type ?? WebGPUConstants.SamplerBindingType.Filtering;\r\n\r\n if (this._textureState & bitVal && sampleType !== WebGPUConstants.TextureSampleType.Depth) {\r\n // The texture is a 32 bits float texture but the system does not support linear filtering for them:\r\n // we set the sampler to \"non-filtering\" and the texture sample type to \"unfilterable-float\"\r\n if (textureInfo.autoBindSampler) {\r\n samplerType = WebGPUConstants.SamplerBindingType.NonFiltering;\r\n }\r\n sampleType = WebGPUConstants.TextureSampleType.UnfilterableFloat;\r\n }\r\n\r\n entry.texture!.sampleType = sampleType;\r\n\r\n if (samplerInfo) {\r\n const binding = shaderProcessingContext.bindGroupLayoutEntryInfo[samplerInfo.binding.groupIndex][samplerInfo.binding.bindingIndex].index;\r\n bindGroupLayoutEntries[samplerInfo.binding.groupIndex][binding].sampler!.type = samplerType;\r\n }\r\n\r\n bitVal = bitVal << 1;\r\n }\r\n }\r\n }\r\n\r\n const bindGroupLayouts: GPUBindGroupLayout[] = [];\r\n\r\n for (let i = 0; i < bindGroupLayoutEntries.length; ++i) {\r\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\r\n entries: bindGroupLayoutEntries[i],\r\n });\r\n }\r\n\r\n webgpuPipelineContext.bindGroupLayouts = bindGroupLayouts;\r\n\r\n return this._device.createPipelineLayout({ bindGroupLayouts });\r\n }\r\n\r\n private _getVertexInputDescriptor(effect: Effect): GPUVertexBufferLayout[] {\r\n const descriptors: GPUVertexBufferLayout[] = [];\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\r\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\r\n\r\n let currentGPUBuffer;\r\n let currentGPUAttributes: GPUVertexAttribute[] | undefined;\r\n for (let index = 0; index < attributes.length; index++) {\r\n const location = locations[index];\r\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers![attributes[index]];\r\n if (!vertexBuffer) {\r\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\r\n // So we must bind a dummy buffer when we are not given one for a specific attribute\r\n vertexBuffer = this._emptyVertexBuffer;\r\n }\r\n\r\n let buffer = vertexBuffer.getBuffer()?.underlyingResource;\r\n\r\n // We reuse the same GPUVertexBufferLayout for all attributes that use the same underlying GPU buffer (and for attributes that follow each other in the attributes array)\r\n let offset = vertexBuffer.byteOffset;\r\n const invalidOffsetRange = !vertexBuffer._validOffsetRange;\r\n if (!(currentGPUBuffer && currentGPUAttributes && currentGPUBuffer === buffer) || invalidOffsetRange) {\r\n const vertexBufferDescriptor: GPUVertexBufferLayout = {\r\n arrayStride: vertexBuffer.byteStride,\r\n stepMode: vertexBuffer.getIsInstanced() ? WebGPUConstants.InputStepMode.Instance : WebGPUConstants.InputStepMode.Vertex,\r\n attributes: [],\r\n };\r\n\r\n descriptors.push(vertexBufferDescriptor);\r\n currentGPUAttributes = vertexBufferDescriptor.attributes;\r\n if (invalidOffsetRange) {\r\n offset = 0; // the offset will be set directly in the setVertexBuffer call\r\n buffer = null; // buffer can't be reused\r\n }\r\n }\r\n\r\n currentGPUAttributes.push({\r\n shaderLocation: location,\r\n offset,\r\n format: WebGPUCacheRenderPipeline._GetVertexInputDescriptorFormat(vertexBuffer),\r\n });\r\n\r\n currentGPUBuffer = buffer;\r\n }\r\n\r\n return descriptors;\r\n }\r\n\r\n private _createRenderPipeline(effect: Effect, topology: GPUPrimitiveTopology, sampleCount: number): GPURenderPipeline {\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const inputStateDescriptor = this._getVertexInputDescriptor(effect);\r\n const pipelineLayout = this._createPipelineLayout(webgpuPipelineContext);\r\n\r\n const colorStates: Array<GPUColorTargetState | null> = [];\r\n const alphaBlend = this._getAphaBlendState();\r\n const colorBlend = this._getColorBlendState();\r\n\r\n if (this._mrtAttachments1 > 0) {\r\n for (let i = 0; i < this._mrtFormats.length; ++i) {\r\n const format = this._mrtFormats[i];\r\n if (format) {\r\n const descr: GPUColorTargetState = {\r\n format,\r\n writeMask: (this._mrtEnabledMask & (1 << i)) !== 0 ? this._writeMask : 0,\r\n };\r\n if (alphaBlend && colorBlend) {\r\n descr.blend = {\r\n alpha: alphaBlend,\r\n color: colorBlend,\r\n };\r\n }\r\n colorStates.push(descr);\r\n } else {\r\n colorStates.push(null);\r\n }\r\n }\r\n } else {\r\n if (this._webgpuColorFormat[0]) {\r\n const descr: GPUColorTargetState = {\r\n format: this._webgpuColorFormat[0],\r\n writeMask: this._writeMask,\r\n };\r\n if (alphaBlend && colorBlend) {\r\n descr.blend = {\r\n alpha: alphaBlend,\r\n color: colorBlend,\r\n };\r\n }\r\n colorStates.push(descr);\r\n } else {\r\n colorStates.push(null);\r\n }\r\n }\r\n\r\n const stencilFrontBack: GPUStencilStateFace = {\r\n compare: WebGPUCacheRenderPipeline._GetCompareFunction(this._stencilEnabled ? this._stencilFrontCompare : 7 /* ALWAYS */),\r\n depthFailOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontDepthFailOp : 1 /* KEEP */),\r\n failOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontFailOp : 1 /* KEEP */),\r\n passOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontPassOp : 1 /* KEEP */),\r\n };\r\n\r\n let stripIndexFormat: GPUIndexFormat | undefined = undefined;\r\n if (topology === WebGPUConstants.PrimitiveTopology.LineStrip || topology === WebGPUConstants.PrimitiveTopology.TriangleStrip) {\r\n stripIndexFormat = !this._indexBuffer || this._indexBuffer.is32Bits ? WebGPUConstants.IndexFormat.Uint32 : WebGPUConstants.IndexFormat.Uint16;\r\n }\r\n\r\n const depthStencilFormatHasStencil = this._webgpuDepthStencilFormat ? WebGPUTextureHelper.HasStencilAspect(this._webgpuDepthStencilFormat) : false;\r\n\r\n return this._device.createRenderPipeline({\r\n layout: pipelineLayout,\r\n vertex: {\r\n module: webgpuPipelineContext.stages!.vertexStage.module,\r\n entryPoint: webgpuPipelineContext.stages!.vertexStage.entryPoint,\r\n buffers: inputStateDescriptor,\r\n },\r\n primitive: {\r\n topology,\r\n stripIndexFormat,\r\n frontFace: this._frontFace === 1 ? WebGPUConstants.FrontFace.CCW : WebGPUConstants.FrontFace.CW,\r\n cullMode: !this._cullEnabled ? WebGPUConstants.CullMode.None : this._cullFace === 2 ? WebGPUConstants.CullMode.Front : WebGPUConstants.CullMode.Back,\r\n },\r\n fragment: !webgpuPipelineContext.stages!.fragmentStage\r\n ? undefined\r\n : {\r\n module: webgpuPipelineContext.stages!.fragmentStage.module,\r\n entryPoint: webgpuPipelineContext.stages!.fragmentStage.entryPoint,\r\n targets: colorStates,\r\n },\r\n\r\n multisample: {\r\n count: sampleCount,\r\n /*mask,\r\n alphaToCoverageEnabled,*/\r\n },\r\n depthStencil:\r\n this._webgpuDepthStencilFormat === undefined\r\n ? undefined\r\n : {\r\n depthWriteEnabled: this._depthWriteEnabled,\r\n depthCompare: this._depthTestEnabled ? WebGPUCacheRenderPipeline._GetCompareFunction(this._depthCompare) : WebGPUConstants.CompareFunction.Always,\r\n format: this._webgpuDepthStencilFormat,\r\n stencilFront: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\r\n stencilBack: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\r\n stencilReadMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilReadMask : undefined,\r\n stencilWriteMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilWriteMask : undefined,\r\n depthBias: this._depthBias,\r\n depthBiasClamp: this._depthBiasClamp,\r\n depthBiasSlopeScale: this._depthBiasSlopeScale,\r\n },\r\n });\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuCacheRenderPipeline.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../constants\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport type { Effect } from \"../../Materials/effect\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport type { DataBuffer } from \"../../Buffers/dataBuffer\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\nimport type { WebGPUPipelineContext } from \"./webgpuPipelineContext\";\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\nimport { renderableTextureFormatToIndex, WebGPUTextureHelper } from \"./webgpuTextureHelper\";\r\n\r\nenum StatePosition {\r\n StencilReadMask = 0,\r\n StencilWriteMask = 1,\r\n //DepthBiasClamp = 1, // not used, so remove it to improve perf\r\n DepthBias = 2,\r\n DepthBiasSlopeScale = 3,\r\n DepthStencilState = 4,\r\n MRTAttachments1 = 5,\r\n MRTAttachments2 = 6,\r\n RasterizationState = 7,\r\n ColorStates = 8,\r\n ShaderStage = 9,\r\n TextureStage = 10,\r\n VertexState = 11, // vertex state will consume positions 11, 12, ... depending on the number of vertex inputs\r\n\r\n NumStates = 12,\r\n}\r\n\r\nconst alphaBlendFactorToIndex: { [name: number]: number } = {\r\n 0: 1, // Zero\r\n 1: 2, // One\r\n 0x0300: 3, // SrcColor\r\n 0x0301: 4, // OneMinusSrcColor\r\n 0x0302: 5, // SrcAlpha\r\n 0x0303: 6, // OneMinusSrcAlpha\r\n 0x0304: 7, // DstAlpha\r\n 0x0305: 8, // OneMinusDstAlpha\r\n 0x0306: 9, // DstColor\r\n 0x0307: 10, // OneMinusDstColor\r\n 0x0308: 11, // SrcAlphaSaturated\r\n 0x8001: 12, // BlendColor\r\n 0x8002: 13, // OneMinusBlendColor\r\n 0x8003: 12, // BlendColor (alpha)\r\n 0x8004: 13, // OneMinusBlendColor (alpha)\r\n};\r\n\r\nconst stencilOpToIndex: { [name: number]: number } = {\r\n 0x0000: 0, // ZERO\r\n 0x1e00: 1, // KEEP\r\n 0x1e01: 2, // REPLACE\r\n 0x1e02: 3, // INCR\r\n 0x1e03: 4, // DECR\r\n 0x150a: 5, // INVERT\r\n 0x8507: 6, // INCR_WRAP\r\n 0x8508: 7, // DECR_WRAP\r\n};\r\n\r\n/** @internal */\r\nexport abstract class WebGPUCacheRenderPipeline {\r\n public static NumCacheHitWithoutHash = 0;\r\n public static NumCacheHitWithHash = 0;\r\n public static NumCacheMiss = 0;\r\n public static NumPipelineCreationLastFrame = 0;\r\n\r\n public disabled: boolean;\r\n\r\n private static _NumPipelineCreationCurrentFrame = 0;\r\n\r\n protected _states: number[];\r\n protected _statesLength: number;\r\n protected _stateDirtyLowestIndex: number;\r\n public lastStateDirtyLowestIndex: number; // for stats only\r\n\r\n private _device: GPUDevice;\r\n private _isDirty: boolean;\r\n private _emptyVertexBuffer: VertexBuffer;\r\n private _parameter: { token: any; pipeline: Nullable<GPURenderPipeline> };\r\n private _kMaxVertexBufferStride;\r\n\r\n private _shaderId: number;\r\n private _alphaToCoverageEnabled: boolean;\r\n private _frontFace: number;\r\n private _cullEnabled: boolean;\r\n private _cullFace: number;\r\n private _clampDepth: boolean;\r\n private _rasterizationState: number;\r\n private _depthBias: number;\r\n private _depthBiasClamp: number;\r\n private _depthBiasSlopeScale: number;\r\n private _colorFormat: number;\r\n private _webgpuColorFormat: (GPUTextureFormat | null)[];\r\n private _mrtAttachments1: number;\r\n private _mrtAttachments2: number;\r\n private _mrtFormats: (GPUTextureFormat | null)[];\r\n private _mrtEnabledMask: number;\r\n private _alphaBlendEnabled: boolean;\r\n private _alphaBlendFuncParams: Array<Nullable<number>>;\r\n private _alphaBlendEqParams: Array<Nullable<number>>;\r\n private _writeMask: number;\r\n private _colorStates: number;\r\n private _depthStencilFormat: number;\r\n private _webgpuDepthStencilFormat: GPUTextureFormat | undefined;\r\n private _depthTestEnabled: boolean;\r\n private _depthWriteEnabled: boolean;\r\n private _depthCompare: number;\r\n private _stencilEnabled: boolean;\r\n private _stencilFrontCompare: number;\r\n private _stencilFrontDepthFailOp: number;\r\n private _stencilFrontPassOp: number;\r\n private _stencilFrontFailOp: number;\r\n private _stencilReadMask: number;\r\n private _stencilWriteMask: number;\r\n private _depthStencilState: number;\r\n private _vertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>;\r\n private _overrideVertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>;\r\n private _indexBuffer: Nullable<DataBuffer>;\r\n private _textureState: number;\r\n private _useTextureStage: boolean;\r\n\r\n constructor(device: GPUDevice, emptyVertexBuffer: VertexBuffer, useTextureStage: boolean) {\r\n this._device = device;\r\n this._useTextureStage = useTextureStage;\r\n this._states = new Array(30); // pre-allocate enough room so that no new allocation will take place afterwards\r\n this._statesLength = 0;\r\n this._stateDirtyLowestIndex = 0;\r\n this._emptyVertexBuffer = emptyVertexBuffer;\r\n this._mrtFormats = [];\r\n this._parameter = { token: undefined, pipeline: null };\r\n this.disabled = false;\r\n this.vertexBuffers = [];\r\n this._kMaxVertexBufferStride = device.limits.maxVertexBufferArrayStride || 2048;\r\n this.reset();\r\n }\r\n\r\n public reset(): void {\r\n this._isDirty = true;\r\n this.vertexBuffers.length = 0;\r\n this.setAlphaToCoverage(false);\r\n this.resetDepthCullingState();\r\n this.setClampDepth(false);\r\n this.setDepthBias(0);\r\n //this.setDepthBiasClamp(0);\r\n this._webgpuColorFormat = [WebGPUConstants.TextureFormat.BGRA8Unorm];\r\n this.setColorFormat(WebGPUConstants.TextureFormat.BGRA8Unorm);\r\n this.setMRT([]);\r\n this.setAlphaBlendEnabled(false);\r\n this.setAlphaBlendFactors([null, null, null, null], [null, null]);\r\n this.setWriteMask(0xf);\r\n this.setDepthStencilFormat(WebGPUConstants.TextureFormat.Depth24PlusStencil8);\r\n this.setStencilEnabled(false);\r\n this.resetStencilState();\r\n this.setBuffers(null, null, null);\r\n this._setTextureState(0);\r\n }\r\n\r\n protected abstract _getRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void;\r\n protected abstract _setRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void;\r\n\r\n public readonly vertexBuffers: VertexBuffer[];\r\n\r\n public get colorFormats(): (GPUTextureFormat | null)[] {\r\n return this._mrtAttachments1 > 0 ? this._mrtFormats : this._webgpuColorFormat;\r\n }\r\n\r\n public readonly mrtAttachments: number[];\r\n public readonly mrtTextureArray: InternalTexture[];\r\n public readonly mrtTextureCount: number = 0;\r\n\r\n public getRenderPipeline(fillMode: number, effect: Effect, sampleCount: number, textureState = 0): GPURenderPipeline {\r\n if (sampleCount > 1) {\r\n // WebGPU only supports 1 or 4\r\n sampleCount = 4;\r\n }\r\n if (this.disabled) {\r\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\r\n\r\n this._setVertexState(effect); // to fill this.vertexBuffers with correct data\r\n\r\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\r\n\r\n WebGPUCacheRenderPipeline.NumCacheMiss++;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\r\n\r\n return this._parameter.pipeline;\r\n }\r\n\r\n this._setShaderStage(effect.uniqueId);\r\n this._setRasterizationState(fillMode, sampleCount);\r\n this._setColorStates();\r\n this._setDepthStencilState();\r\n this._setVertexState(effect);\r\n this._setTextureState(textureState);\r\n\r\n this.lastStateDirtyLowestIndex = this._stateDirtyLowestIndex;\r\n\r\n if (!this._isDirty && this._parameter.pipeline) {\r\n this._stateDirtyLowestIndex = this._statesLength;\r\n WebGPUCacheRenderPipeline.NumCacheHitWithoutHash++;\r\n return this._parameter.pipeline;\r\n }\r\n\r\n this._getRenderPipeline(this._parameter);\r\n\r\n this._isDirty = false;\r\n this._stateDirtyLowestIndex = this._statesLength;\r\n\r\n if (this._parameter.pipeline) {\r\n WebGPUCacheRenderPipeline.NumCacheHitWithHash++;\r\n return this._parameter.pipeline;\r\n }\r\n\r\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\r\n\r\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\r\n this._setRenderPipeline(this._parameter);\r\n\r\n WebGPUCacheRenderPipeline.NumCacheMiss++;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\r\n\r\n return this._parameter.pipeline;\r\n }\r\n\r\n public endFrame(): void {\r\n WebGPUCacheRenderPipeline.NumPipelineCreationLastFrame = WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame;\r\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame = 0;\r\n }\r\n\r\n public setAlphaToCoverage(enabled: boolean): void {\r\n this._alphaToCoverageEnabled = enabled;\r\n }\r\n\r\n public setFrontFace(frontFace: number): void {\r\n this._frontFace = frontFace;\r\n }\r\n\r\n public setCullEnabled(enabled: boolean): void {\r\n this._cullEnabled = enabled;\r\n }\r\n\r\n public setCullFace(cullFace: number): void {\r\n this._cullFace = cullFace;\r\n }\r\n\r\n public setClampDepth(clampDepth: boolean): void {\r\n this._clampDepth = clampDepth;\r\n }\r\n\r\n public resetDepthCullingState(): void {\r\n this.setDepthCullingState(false, 2, 1, 0, 0, true, true, Constants.ALWAYS);\r\n }\r\n\r\n public setDepthCullingState(\r\n cullEnabled: boolean,\r\n frontFace: number,\r\n cullFace: number,\r\n zOffset: number,\r\n zOffsetUnits: number,\r\n depthTestEnabled: boolean,\r\n depthWriteEnabled: boolean,\r\n depthCompare: Nullable<number>\r\n ): void {\r\n this._depthWriteEnabled = depthWriteEnabled;\r\n this._depthTestEnabled = depthTestEnabled;\r\n this._depthCompare = (depthCompare ?? Constants.ALWAYS) - 0x0200;\r\n this._cullFace = cullFace;\r\n this._cullEnabled = cullEnabled;\r\n this._frontFace = frontFace;\r\n this.setDepthBiasSlopeScale(zOffset);\r\n this.setDepthBias(zOffsetUnits);\r\n }\r\n\r\n public setDepthBias(depthBias: number): void {\r\n if (this._depthBias !== depthBias) {\r\n this._depthBias = depthBias;\r\n this._states[StatePosition.DepthBias] = depthBias;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBias);\r\n }\r\n }\r\n\r\n /*public setDepthBiasClamp(depthBiasClamp: number): void {\r\n if (this._depthBiasClamp !== depthBiasClamp) {\r\n this._depthBiasClamp = depthBiasClamp;\r\n this._states[StatePosition.DepthBiasClamp] = depthBiasClamp.toString();\r\n this._isDirty = true;\r\n }\r\n }*/\r\n\r\n public setDepthBiasSlopeScale(depthBiasSlopeScale: number): void {\r\n if (this._depthBiasSlopeScale !== depthBiasSlopeScale) {\r\n this._depthBiasSlopeScale = depthBiasSlopeScale;\r\n this._states[StatePosition.DepthBiasSlopeScale] = depthBiasSlopeScale;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBiasSlopeScale);\r\n }\r\n }\r\n\r\n public setColorFormat(format: GPUTextureFormat | null): void {\r\n this._webgpuColorFormat[0] = format;\r\n this._colorFormat = renderableTextureFormatToIndex[format ?? \"\"];\r\n }\r\n\r\n public setMRTAttachments(attachments: number[]): void {\r\n (this.mrtAttachments as any) = attachments;\r\n let mask = 0;\r\n for (let i = 0; i < attachments.length; ++i) {\r\n if (attachments[i] !== 0) {\r\n mask += 1 << i;\r\n }\r\n }\r\n if (this._mrtEnabledMask !== mask) {\r\n this._mrtEnabledMask = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\r\n }\r\n }\r\n\r\n public setMRT(textureArray: InternalTexture[], textureCount?: number): void {\r\n textureCount = textureCount ?? textureArray.length;\r\n if (textureCount > 10) {\r\n // If we want more than 10 attachments we need to change this method (and the StatePosition enum) but 10 seems plenty: note that WebGPU only supports 8 at the time (2021/12/13)!\r\n // As we need 39 different values we are using 6 bits to encode a texture format, meaning we can encode 5 texture formats in 32 bits\r\n // We are using 2x32 bit values to handle 10 textures\r\n throw \"Can't handle more than 10 attachments for a MRT in cache render pipeline!\";\r\n }\r\n (this.mrtTextureArray as any) = textureArray;\r\n (this.mrtTextureCount as any) = textureCount;\r\n\r\n this._mrtEnabledMask = 0xffff; // all textures are enabled at start (meaning we can write to them). Calls to setMRTAttachments may disable some\r\n\r\n const bits: number[] = [0, 0];\r\n let indexBits = 0,\r\n mask = 0,\r\n numRT = 0;\r\n for (let i = 0; i < textureCount; ++i) {\r\n const texture = textureArray[i];\r\n const gpuWrapper = texture?._hardwareTexture as Nullable<WebGPUHardwareTexture>;\r\n\r\n this._mrtFormats[numRT] = gpuWrapper?.format ?? this._webgpuColorFormat[0];\r\n\r\n bits[indexBits] += renderableTextureFormatToIndex[this._mrtFormats[numRT] ?? \"\"] << mask;\r\n mask += 6;\r\n numRT++;\r\n\r\n if (mask >= 32) {\r\n mask = 0;\r\n indexBits++;\r\n }\r\n }\r\n this._mrtFormats.length = numRT;\r\n if (this._mrtAttachments1 !== bits[0] || this._mrtAttachments2 !== bits[1]) {\r\n this._mrtAttachments1 = bits[0];\r\n this._mrtAttachments2 = bits[1];\r\n this._states[StatePosition.MRTAttachments1] = bits[0];\r\n this._states[StatePosition.MRTAttachments2] = bits[1];\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\r\n }\r\n }\r\n\r\n public setAlphaBlendEnabled(enabled: boolean): void {\r\n this._alphaBlendEnabled = enabled;\r\n }\r\n\r\n public setAlphaBlendFactors(factors: Array<Nullable<number>>, operations: Array<Nullable<number>>): void {\r\n this._alphaBlendFuncParams = factors;\r\n this._alphaBlendEqParams = operations;\r\n }\r\n\r\n public setWriteMask(mask: number): void {\r\n this._writeMask = mask;\r\n }\r\n\r\n public setDepthStencilFormat(format: GPUTextureFormat | undefined): void {\r\n this._webgpuDepthStencilFormat = format;\r\n this._depthStencilFormat = format === undefined ? 0 : renderableTextureFormatToIndex[format];\r\n }\r\n\r\n public setDepthTestEnabled(enabled: boolean): void {\r\n this._depthTestEnabled = enabled;\r\n }\r\n\r\n public setDepthWriteEnabled(enabled: boolean): void {\r\n this._depthWriteEnabled = enabled;\r\n }\r\n\r\n public setDepthCompare(func: Nullable<number>): void {\r\n this._depthCompare = (func ?? Constants.ALWAYS) - 0x0200;\r\n }\r\n\r\n public setStencilEnabled(enabled: boolean): void {\r\n this._stencilEnabled = enabled;\r\n }\r\n\r\n public setStencilCompare(func: Nullable<number>): void {\r\n this._stencilFrontCompare = (func ?? Constants.ALWAYS) - 0x0200;\r\n }\r\n\r\n public setStencilDepthFailOp(op: Nullable<number>): void {\r\n this._stencilFrontDepthFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilPassOp(op: Nullable<number>): void {\r\n this._stencilFrontPassOp = op === null ? 2 /* REPLACE */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilFailOp(op: Nullable<number>): void {\r\n this._stencilFrontFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\r\n }\r\n\r\n public setStencilReadMask(mask: number): void {\r\n if (this._stencilReadMask !== mask) {\r\n this._stencilReadMask = mask;\r\n this._states[StatePosition.StencilReadMask] = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilReadMask);\r\n }\r\n }\r\n\r\n public setStencilWriteMask(mask: number): void {\r\n if (this._stencilWriteMask !== mask) {\r\n this._stencilWriteMask = mask;\r\n this._states[StatePosition.StencilWriteMask] = mask;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilWriteMask);\r\n }\r\n }\r\n\r\n public resetStencilState(): void {\r\n this.setStencilState(false, Constants.ALWAYS, Constants.KEEP, Constants.REPLACE, Constants.KEEP, 0xff, 0xff);\r\n }\r\n\r\n public setStencilState(\r\n stencilEnabled: boolean,\r\n compare: Nullable<number>,\r\n depthFailOp: Nullable<number>,\r\n passOp: Nullable<number>,\r\n failOp: Nullable<number>,\r\n readMask: number,\r\n writeMask: number\r\n ): void {\r\n this._stencilEnabled = stencilEnabled;\r\n this._stencilFrontCompare = (compare ?? Constants.ALWAYS) - 0x0200;\r\n this._stencilFrontDepthFailOp = depthFailOp === null ? 1 /* KEEP */ : stencilOpToIndex[depthFailOp];\r\n this._stencilFrontPassOp = passOp === null ? 2 /* REPLACE */ : stencilOpToIndex[passOp];\r\n this._stencilFrontFailOp = failOp === null ? 1 /* KEEP */ : stencilOpToIndex[failOp];\r\n this.setStencilReadMask(readMask);\r\n this.setStencilWriteMask(writeMask);\r\n }\r\n\r\n public setBuffers(\r\n vertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>,\r\n indexBuffer: Nullable<DataBuffer>,\r\n overrideVertexBuffers: Nullable<{ [key: string]: Nullable<VertexBuffer> }>\r\n ): void {\r\n this._vertexBuffers = vertexBuffers;\r\n this._overrideVertexBuffers = overrideVertexBuffers;\r\n this._indexBuffer = indexBuffer;\r\n }\r\n\r\n private static _GetTopology(fillMode: number): GPUPrimitiveTopology {\r\n switch (fillMode) {\r\n // Triangle views\r\n case Constants.MATERIAL_TriangleFillMode:\r\n return WebGPUConstants.PrimitiveTopology.TriangleList;\r\n case Constants.MATERIAL_PointFillMode:\r\n return WebGPUConstants.PrimitiveTopology.PointList;\r\n case Constants.MATERIAL_WireFrameFillMode:\r\n return WebGPUConstants.PrimitiveTopology.LineList;\r\n // Draw modes\r\n case Constants.MATERIAL_PointListDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.PointList;\r\n case Constants.MATERIAL_LineListDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.LineList;\r\n case Constants.MATERIAL_LineLoopDrawMode:\r\n // return this._gl.LINE_LOOP;\r\n // TODO WEBGPU. Line Loop Mode Fallback at buffer load time.\r\n throw \"LineLoop is an unsupported fillmode in WebGPU\";\r\n case Constants.MATERIAL_LineStripDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.LineStrip;\r\n case Constants.MATERIAL_TriangleStripDrawMode:\r\n return WebGPUConstants.PrimitiveTopology.TriangleStrip;\r\n case Constants.MATERIAL_TriangleFanDrawMode:\r\n // return this._gl.TRIANGLE_FAN;\r\n // TODO WEBGPU. Triangle Fan Mode Fallback at buffer load time.\r\n throw \"TriangleFan is an unsupported fillmode in WebGPU\";\r\n default:\r\n return WebGPUConstants.PrimitiveTopology.TriangleList;\r\n }\r\n }\r\n\r\n private static _GetAphaBlendOperation(operation: Nullable<number>): GPUBlendOperation {\r\n switch (operation) {\r\n case Constants.GL_ALPHA_EQUATION_ADD:\r\n return WebGPUConstants.BlendOperation.Add;\r\n case Constants.GL_ALPHA_EQUATION_SUBTRACT:\r\n return WebGPUConstants.BlendOperation.Subtract;\r\n case Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT:\r\n return WebGPUConstants.BlendOperation.ReverseSubtract;\r\n case Constants.GL_ALPHA_EQUATION_MIN:\r\n return WebGPUConstants.BlendOperation.Min;\r\n case Constants.GL_ALPHA_EQUATION_MAX:\r\n return WebGPUConstants.BlendOperation.Max;\r\n default:\r\n return WebGPUConstants.BlendOperation.Add;\r\n }\r\n }\r\n\r\n private static _GetAphaBlendFactor(factor: Nullable<number>): GPUBlendFactor {\r\n switch (factor) {\r\n case 0:\r\n return WebGPUConstants.BlendFactor.Zero;\r\n case 1:\r\n return WebGPUConstants.BlendFactor.One;\r\n case Constants.GL_ALPHA_FUNCTION_SRC:\r\n return WebGPUConstants.BlendFactor.Src;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusSrc;\r\n case Constants.GL_ALPHA_FUNCTION_SRC_ALPHA:\r\n return WebGPUConstants.BlendFactor.SrcAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusSrcAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_DST_ALPHA:\r\n return WebGPUConstants.BlendFactor.DstAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusDstAlpha;\r\n case Constants.GL_ALPHA_FUNCTION_DST_COLOR:\r\n return WebGPUConstants.BlendFactor.Dst;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusDst;\r\n case Constants.GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED:\r\n return WebGPUConstants.BlendFactor.SrcAlphaSaturated;\r\n case Constants.GL_ALPHA_FUNCTION_CONSTANT_COLOR:\r\n return WebGPUConstants.BlendFactor.Constant;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR:\r\n return WebGPUConstants.BlendFactor.OneMinusConstant;\r\n case Constants.GL_ALPHA_FUNCTION_CONSTANT_ALPHA:\r\n return WebGPUConstants.BlendFactor.Constant;\r\n case Constants.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA:\r\n return WebGPUConstants.BlendFactor.OneMinusConstant;\r\n default:\r\n return WebGPUConstants.BlendFactor.One;\r\n }\r\n }\r\n\r\n private static _GetCompareFunction(compareFunction: number): GPUCompareFunction {\r\n switch (compareFunction) {\r\n case 0: // NEVER\r\n return WebGPUConstants.CompareFunction.Never;\r\n case 1: // LESS\r\n return WebGPUConstants.CompareFunction.Less;\r\n case 2: // EQUAL\r\n return WebGPUConstants.CompareFunction.Equal;\r\n case 3: // LEQUAL\r\n return WebGPUConstants.CompareFunction.LessEqual;\r\n case 4: // GREATER\r\n return WebGPUConstants.CompareFunction.Greater;\r\n case 5: // NOTEQUAL\r\n return WebGPUConstants.CompareFunction.NotEqual;\r\n case 6: // GEQUAL\r\n return WebGPUConstants.CompareFunction.GreaterEqual;\r\n case 7: // ALWAYS\r\n return WebGPUConstants.CompareFunction.Always;\r\n }\r\n return WebGPUConstants.CompareFunction.Never;\r\n }\r\n\r\n private static _GetStencilOpFunction(operation: number): GPUStencilOperation {\r\n switch (operation) {\r\n case 0:\r\n return WebGPUConstants.StencilOperation.Zero;\r\n case 1:\r\n return WebGPUConstants.StencilOperation.Keep;\r\n case 2:\r\n return WebGPUConstants.StencilOperation.Replace;\r\n case 3:\r\n return WebGPUConstants.StencilOperation.IncrementClamp;\r\n case 4:\r\n return WebGPUConstants.StencilOperation.DecrementClamp;\r\n case 5:\r\n return WebGPUConstants.StencilOperation.Invert;\r\n case 6:\r\n return WebGPUConstants.StencilOperation.IncrementWrap;\r\n case 7:\r\n return WebGPUConstants.StencilOperation.DecrementWrap;\r\n }\r\n return WebGPUConstants.StencilOperation.Keep;\r\n }\r\n\r\n private static _GetVertexInputDescriptorFormat(vertexBuffer: VertexBuffer): GPUVertexFormat {\r\n const type = vertexBuffer.type;\r\n const normalized = vertexBuffer.normalized;\r\n const size = vertexBuffer.getSize();\r\n\r\n switch (type) {\r\n case VertexBuffer.BYTE:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm8x2 : WebGPUConstants.VertexFormat.Sint8x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm8x4 : WebGPUConstants.VertexFormat.Sint8x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_BYTE:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm8x2 : WebGPUConstants.VertexFormat.Uint8x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm8x4 : WebGPUConstants.VertexFormat.Uint8x4;\r\n }\r\n break;\r\n case VertexBuffer.SHORT:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm16x2 : WebGPUConstants.VertexFormat.Sint16x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Snorm16x4 : WebGPUConstants.VertexFormat.Sint16x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_SHORT:\r\n switch (size) {\r\n case 1:\r\n case 2:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm16x2 : WebGPUConstants.VertexFormat.Uint16x2;\r\n case 3:\r\n case 4:\r\n return normalized ? WebGPUConstants.VertexFormat.Unorm16x4 : WebGPUConstants.VertexFormat.Uint16x4;\r\n }\r\n break;\r\n case VertexBuffer.INT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Sint32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Sint32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Sint32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Sint32x4;\r\n }\r\n break;\r\n case VertexBuffer.UNSIGNED_INT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Uint32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Uint32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Uint32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Uint32x4;\r\n }\r\n break;\r\n case VertexBuffer.FLOAT:\r\n switch (size) {\r\n case 1:\r\n return WebGPUConstants.VertexFormat.Float32;\r\n case 2:\r\n return WebGPUConstants.VertexFormat.Float32x2;\r\n case 3:\r\n return WebGPUConstants.VertexFormat.Float32x3;\r\n case 4:\r\n return WebGPUConstants.VertexFormat.Float32x4;\r\n }\r\n break;\r\n }\r\n\r\n throw new Error(`Invalid Format '${vertexBuffer.getKind()}' - type=${type}, normalized=${normalized}, size=${size}`);\r\n }\r\n\r\n private _getAphaBlendState(): Nullable<GPUBlendComponent> {\r\n if (!this._alphaBlendEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[2]),\r\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[3]),\r\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[1]),\r\n };\r\n }\r\n\r\n private _getColorBlendState(): Nullable<GPUBlendComponent> {\r\n if (!this._alphaBlendEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[0]),\r\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[1]),\r\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[0]),\r\n };\r\n }\r\n\r\n private _setShaderStage(id: number): void {\r\n if (this._shaderId !== id) {\r\n this._shaderId = id;\r\n this._states[StatePosition.ShaderStage] = id;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ShaderStage);\r\n }\r\n }\r\n\r\n private _setRasterizationState(topology: number, sampleCount: number): void {\r\n const frontFace = this._frontFace;\r\n const cullMode = this._cullEnabled ? this._cullFace : 0;\r\n const clampDepth = this._clampDepth ? 1 : 0;\r\n const alphaToCoverage = this._alphaToCoverageEnabled ? 1 : 0;\r\n const rasterizationState = frontFace - 1 + (cullMode << 1) + (clampDepth << 3) + (alphaToCoverage << 4) + (topology << 5) + (sampleCount << 8);\r\n\r\n if (this._rasterizationState !== rasterizationState) {\r\n this._rasterizationState = rasterizationState;\r\n this._states[StatePosition.RasterizationState] = this._rasterizationState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.RasterizationState);\r\n }\r\n }\r\n\r\n private _setColorStates(): void {\r\n let colorStates = ((this._writeMask ? 1 : 0) << 22) + (this._colorFormat << 23) + ((this._depthWriteEnabled ? 1 : 0) << 29); // this state has been moved from depthStencilState here because alpha and depth are related (generally when alpha is on, depth write is off and the other way around)\r\n\r\n if (this._alphaBlendEnabled) {\r\n colorStates +=\r\n ((this._alphaBlendFuncParams[0] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[0]]) << 0) +\r\n ((this._alphaBlendFuncParams[1] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[1]]) << 4) +\r\n ((this._alphaBlendFuncParams[2] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[2]]) << 8) +\r\n ((this._alphaBlendFuncParams[3] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[3]]) << 12) +\r\n ((this._alphaBlendEqParams[0] === null ? 1 : this._alphaBlendEqParams[0] - 0x8005) << 16) +\r\n ((this._alphaBlendEqParams[1] === null ? 1 : this._alphaBlendEqParams[1] - 0x8005) << 19);\r\n }\r\n\r\n if (colorStates !== this._colorStates) {\r\n this._colorStates = colorStates;\r\n this._states[StatePosition.ColorStates] = this._colorStates;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ColorStates);\r\n }\r\n }\r\n\r\n private _setDepthStencilState(): void {\r\n const stencilState = !this._stencilEnabled\r\n ? 7 /* ALWAYS */ + (1 /* KEEP */ << 3) + (1 /* KEEP */ << 6) + (1 /* KEEP */ << 9)\r\n : this._stencilFrontCompare + (this._stencilFrontDepthFailOp << 3) + (this._stencilFrontPassOp << 6) + (this._stencilFrontFailOp << 9);\r\n\r\n const depthStencilState = this._depthStencilFormat + ((this._depthTestEnabled ? this._depthCompare : 7) /* ALWAYS */ << 6) + (stencilState << 10); // stencil front - stencil back is the same\r\n\r\n if (this._depthStencilState !== depthStencilState) {\r\n this._depthStencilState = depthStencilState;\r\n this._states[StatePosition.DepthStencilState] = this._depthStencilState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthStencilState);\r\n }\r\n }\r\n\r\n private _setVertexState(effect: Effect): void {\r\n const currStateLen = this._statesLength;\r\n let newNumStates = StatePosition.VertexState;\r\n\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\r\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\r\n\r\n let currentGPUBuffer;\r\n let numVertexBuffers = 0;\r\n for (let index = 0; index < attributes.length; index++) {\r\n const location = locations[index];\r\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers![attributes[index]];\r\n if (!vertexBuffer) {\r\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\r\n // So we must bind a dummy buffer when we are not given one for a specific attribute\r\n vertexBuffer = this._emptyVertexBuffer;\r\n }\r\n\r\n const buffer = vertexBuffer.getBuffer()?.underlyingResource;\r\n\r\n // We optimize usage of GPUVertexBufferLayout: we will create a single GPUVertexBufferLayout for all the attributes which follow each other and which use the same GPU buffer\r\n // However, there are some constraints in the attribute.offset value range, so we must check for them before being able to reuse the same GPUVertexBufferLayout\r\n // See _getVertexInputDescriptor() below\r\n if (vertexBuffer._validOffsetRange === undefined) {\r\n const offset = vertexBuffer.byteOffset;\r\n const formatSize = vertexBuffer.getSize(true);\r\n const byteStride = vertexBuffer.byteStride;\r\n vertexBuffer._validOffsetRange = offset <= this._kMaxVertexBufferStride - formatSize && (byteStride === 0 || offset + formatSize <= byteStride);\r\n }\r\n\r\n if (!(currentGPUBuffer && currentGPUBuffer === buffer && vertexBuffer._validOffsetRange)) {\r\n // we can't combine the previous vertexBuffer with the current one\r\n this.vertexBuffers[numVertexBuffers++] = vertexBuffer;\r\n currentGPUBuffer = vertexBuffer._validOffsetRange ? buffer : null;\r\n }\r\n\r\n const vid = vertexBuffer.hashCode + (location << 7);\r\n\r\n this._isDirty = this._isDirty || this._states[newNumStates] !== vid;\r\n this._states[newNumStates++] = vid;\r\n }\r\n\r\n this.vertexBuffers.length = numVertexBuffers;\r\n\r\n this._statesLength = newNumStates;\r\n this._isDirty = this._isDirty || newNumStates !== currStateLen;\r\n if (this._isDirty) {\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.VertexState);\r\n }\r\n }\r\n\r\n private _setTextureState(textureState: number): void {\r\n if (this._textureState !== textureState) {\r\n this._textureState = textureState;\r\n this._states[StatePosition.TextureStage] = this._textureState;\r\n this._isDirty = true;\r\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.TextureStage);\r\n }\r\n }\r\n\r\n private _createPipelineLayout(webgpuPipelineContext: WebGPUPipelineContext): GPUPipelineLayout {\r\n if (this._useTextureStage) {\r\n return this._createPipelineLayoutWithTextureStage(webgpuPipelineContext);\r\n }\r\n\r\n const bindGroupLayouts: GPUBindGroupLayout[] = [];\r\n const bindGroupLayoutEntries = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries;\r\n\r\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = bindGroupLayoutEntries[i];\r\n\r\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\r\n entries: setDefinition,\r\n });\r\n }\r\n\r\n webgpuPipelineContext.bindGroupLayouts = bindGroupLayouts;\r\n\r\n return this._device.createPipelineLayout({ bindGroupLayouts });\r\n }\r\n\r\n private _createPipelineLayoutWithTextureStage(webgpuPipelineContext: WebGPUPipelineContext): GPUPipelineLayout {\r\n const shaderProcessingContext = webgpuPipelineContext.shaderProcessingContext;\r\n const bindGroupLayoutEntries = shaderProcessingContext.bindGroupLayoutEntries;\r\n\r\n let bitVal = 1;\r\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = bindGroupLayoutEntries[i];\r\n\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = bindGroupLayoutEntries[i][j];\r\n\r\n if (entry.texture) {\r\n const name = shaderProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\r\n const textureInfo = shaderProcessingContext.availableTextures[name];\r\n const samplerInfo = textureInfo.autoBindSampler ? shaderProcessingContext.availableSamplers[name + WebGPUShaderProcessor.AutoSamplerSuffix] : null;\r\n\r\n let sampleType = textureInfo.sampleType;\r\n let samplerType = samplerInfo?.type ?? WebGPUConstants.SamplerBindingType.Filtering;\r\n\r\n if (this._textureState & bitVal && sampleType !== WebGPUConstants.TextureSampleType.Depth) {\r\n // The texture is a 32 bits float texture but the system does not support linear filtering for them:\r\n // we set the sampler to \"non-filtering\" and the texture sample type to \"unfilterable-float\"\r\n if (textureInfo.autoBindSampler) {\r\n samplerType = WebGPUConstants.SamplerBindingType.NonFiltering;\r\n }\r\n sampleType = WebGPUConstants.TextureSampleType.UnfilterableFloat;\r\n }\r\n\r\n entry.texture!.sampleType = sampleType;\r\n\r\n if (samplerInfo) {\r\n const binding = shaderProcessingContext.bindGroupLayoutEntryInfo[samplerInfo.binding.groupIndex][samplerInfo.binding.bindingIndex].index;\r\n bindGroupLayoutEntries[samplerInfo.binding.groupIndex][binding].sampler!.type = samplerType;\r\n }\r\n\r\n bitVal = bitVal << 1;\r\n }\r\n }\r\n }\r\n\r\n const bindGroupLayouts: GPUBindGroupLayout[] = [];\r\n\r\n for (let i = 0; i < bindGroupLayoutEntries.length; ++i) {\r\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\r\n entries: bindGroupLayoutEntries[i],\r\n });\r\n }\r\n\r\n webgpuPipelineContext.bindGroupLayouts = bindGroupLayouts;\r\n\r\n return this._device.createPipelineLayout({ bindGroupLayouts });\r\n }\r\n\r\n private _getVertexInputDescriptor(effect: Effect): GPUVertexBufferLayout[] {\r\n const descriptors: GPUVertexBufferLayout[] = [];\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\r\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\r\n\r\n let currentGPUBuffer;\r\n let currentGPUAttributes: GPUVertexAttribute[] | undefined;\r\n for (let index = 0; index < attributes.length; index++) {\r\n const location = locations[index];\r\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers![attributes[index]];\r\n if (!vertexBuffer) {\r\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\r\n // So we must bind a dummy buffer when we are not given one for a specific attribute\r\n vertexBuffer = this._emptyVertexBuffer;\r\n }\r\n\r\n let buffer = vertexBuffer.getBuffer()?.underlyingResource;\r\n\r\n // We reuse the same GPUVertexBufferLayout for all attributes that use the same underlying GPU buffer (and for attributes that follow each other in the attributes array)\r\n let offset = vertexBuffer.byteOffset;\r\n const invalidOffsetRange = !vertexBuffer._validOffsetRange;\r\n if (!(currentGPUBuffer && currentGPUAttributes && currentGPUBuffer === buffer) || invalidOffsetRange) {\r\n const vertexBufferDescriptor: GPUVertexBufferLayout = {\r\n arrayStride: vertexBuffer.byteStride,\r\n stepMode: vertexBuffer.getIsInstanced() ? WebGPUConstants.InputStepMode.Instance : WebGPUConstants.InputStepMode.Vertex,\r\n attributes: [],\r\n };\r\n\r\n descriptors.push(vertexBufferDescriptor);\r\n currentGPUAttributes = vertexBufferDescriptor.attributes;\r\n if (invalidOffsetRange) {\r\n offset = 0; // the offset will be set directly in the setVertexBuffer call\r\n buffer = null; // buffer can't be reused\r\n }\r\n }\r\n\r\n currentGPUAttributes.push({\r\n shaderLocation: location,\r\n offset,\r\n format: WebGPUCacheRenderPipeline._GetVertexInputDescriptorFormat(vertexBuffer),\r\n });\r\n\r\n currentGPUBuffer = buffer;\r\n }\r\n\r\n return descriptors;\r\n }\r\n\r\n private _createRenderPipeline(effect: Effect, topology: GPUPrimitiveTopology, sampleCount: number): GPURenderPipeline {\r\n const webgpuPipelineContext = effect._pipelineContext as WebGPUPipelineContext;\r\n const inputStateDescriptor = this._getVertexInputDescriptor(effect);\r\n const pipelineLayout = this._createPipelineLayout(webgpuPipelineContext);\r\n\r\n const colorStates: Array<GPUColorTargetState | null> = [];\r\n const alphaBlend = this._getAphaBlendState();\r\n const colorBlend = this._getColorBlendState();\r\n\r\n if (this._mrtAttachments1 > 0) {\r\n for (let i = 0; i < this._mrtFormats.length; ++i) {\r\n const format = this._mrtFormats[i];\r\n if (format) {\r\n const descr: GPUColorTargetState = {\r\n format,\r\n writeMask: (this._mrtEnabledMask & (1 << i)) !== 0 ? this._writeMask : 0,\r\n };\r\n if (alphaBlend && colorBlend) {\r\n descr.blend = {\r\n alpha: alphaBlend,\r\n color: colorBlend,\r\n };\r\n }\r\n colorStates.push(descr);\r\n } else {\r\n colorStates.push(null);\r\n }\r\n }\r\n } else {\r\n if (this._webgpuColorFormat[0]) {\r\n const descr: GPUColorTargetState = {\r\n format: this._webgpuColorFormat[0],\r\n writeMask: this._writeMask,\r\n };\r\n if (alphaBlend && colorBlend) {\r\n descr.blend = {\r\n alpha: alphaBlend,\r\n color: colorBlend,\r\n };\r\n }\r\n colorStates.push(descr);\r\n } else {\r\n colorStates.push(null);\r\n }\r\n }\r\n\r\n const stencilFrontBack: GPUStencilStateFace = {\r\n compare: WebGPUCacheRenderPipeline._GetCompareFunction(this._stencilEnabled ? this._stencilFrontCompare : 7 /* ALWAYS */),\r\n depthFailOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontDepthFailOp : 1 /* KEEP */),\r\n failOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontFailOp : 1 /* KEEP */),\r\n passOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontPassOp : 1 /* KEEP */),\r\n };\r\n\r\n let stripIndexFormat: GPUIndexFormat | undefined = undefined;\r\n if (topology === WebGPUConstants.PrimitiveTopology.LineStrip || topology === WebGPUConstants.PrimitiveTopology.TriangleStrip) {\r\n stripIndexFormat = !this._indexBuffer || this._indexBuffer.is32Bits ? WebGPUConstants.IndexFormat.Uint32 : WebGPUConstants.IndexFormat.Uint16;\r\n }\r\n\r\n const depthStencilFormatHasStencil = this._webgpuDepthStencilFormat ? WebGPUTextureHelper.HasStencilAspect(this._webgpuDepthStencilFormat) : false;\r\n\r\n return this._device.createRenderPipeline({\r\n layout: pipelineLayout,\r\n vertex: {\r\n module: webgpuPipelineContext.stages!.vertexStage.module,\r\n entryPoint: webgpuPipelineContext.stages!.vertexStage.entryPoint,\r\n buffers: inputStateDescriptor,\r\n },\r\n primitive: {\r\n topology,\r\n stripIndexFormat,\r\n frontFace: this._frontFace === 1 ? WebGPUConstants.FrontFace.CCW : WebGPUConstants.FrontFace.CW,\r\n cullMode: !this._cullEnabled ? WebGPUConstants.CullMode.None : this._cullFace === 2 ? WebGPUConstants.CullMode.Front : WebGPUConstants.CullMode.Back,\r\n },\r\n fragment: !webgpuPipelineContext.stages!.fragmentStage\r\n ? undefined\r\n : {\r\n module: webgpuPipelineContext.stages!.fragmentStage.module,\r\n entryPoint: webgpuPipelineContext.stages!.fragmentStage.entryPoint,\r\n targets: colorStates,\r\n },\r\n\r\n multisample: {\r\n count: sampleCount,\r\n /*mask,\r\n alphaToCoverageEnabled,*/\r\n },\r\n depthStencil:\r\n this._webgpuDepthStencilFormat === undefined\r\n ? undefined\r\n : {\r\n depthWriteEnabled: this._depthWriteEnabled,\r\n depthCompare: this._depthTestEnabled ? WebGPUCacheRenderPipeline._GetCompareFunction(this._depthCompare) : WebGPUConstants.CompareFunction.Always,\r\n format: this._webgpuDepthStencilFormat,\r\n stencilFront: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\r\n stencilBack: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\r\n stencilReadMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilReadMask : undefined,\r\n stencilWriteMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilWriteMask : undefined,\r\n depthBias: this._depthBias,\r\n depthBiasClamp: this._depthBiasClamp,\r\n depthBiasSlopeScale: this._depthBiasSlopeScale,\r\n },\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -2,7 +2,7 @@ import type { Nullable } from "../../types";
|
|
|
2
2
|
import { WebGPUCacheRenderPipeline } from "./webgpuCacheRenderPipeline";
|
|
3
3
|
/**
|
|
4
4
|
* Class not used, WebGPUCacheRenderPipelineTree is faster
|
|
5
|
-
* @
|
|
5
|
+
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export declare class WebGPUCacheRenderPipelineString extends WebGPUCacheRenderPipeline {
|
|
8
8
|
private static _Cache;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WebGPUCacheRenderPipeline } from "./webgpuCacheRenderPipeline.js";
|
|
2
2
|
/**
|
|
3
3
|
* Class not used, WebGPUCacheRenderPipelineTree is faster
|
|
4
|
-
* @
|
|
4
|
+
* @internal
|
|
5
5
|
*/
|
|
6
6
|
export class WebGPUCacheRenderPipelineString extends WebGPUCacheRenderPipeline {
|
|
7
7
|
_getRenderPipeline(param) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuCacheRenderPipelineString.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipelineString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,yBAAyB;IAGhE,kBAAkB,CAAC,KAA4D;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,CAAC,QAAQ,GAAG,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAES,kBAAkB,CAAC,KAA4D;QACrF,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAS,CAAC;IAC1E,CAAC;;AAVc,sCAAM,GAA0C,EAAE,CAAC","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { WebGPUCacheRenderPipeline } from \"./webgpuCacheRenderPipeline\";\r\n\r\n/**\r\n * Class not used, WebGPUCacheRenderPipelineTree is faster\r\n * @
|
|
1
|
+
{"version":3,"file":"webgpuCacheRenderPipelineString.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipelineString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,yBAAyB;IAGhE,kBAAkB,CAAC,KAA4D;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,CAAC,QAAQ,GAAG,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAES,kBAAkB,CAAC,KAA4D;QACrF,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAS,CAAC;IAC1E,CAAC;;AAVc,sCAAM,GAA0C,EAAE,CAAC","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { WebGPUCacheRenderPipeline } from \"./webgpuCacheRenderPipeline\";\r\n\r\n/**\r\n * Class not used, WebGPUCacheRenderPipelineTree is faster\r\n * @internal\r\n */\r\nexport class WebGPUCacheRenderPipelineString extends WebGPUCacheRenderPipeline {\r\n private static _Cache: { [hash: string]: GPURenderPipeline } = {};\r\n\r\n protected _getRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void {\r\n const hash = this._states.join();\r\n param.token = hash;\r\n param.pipeline = WebGPUCacheRenderPipelineString._Cache[hash];\r\n }\r\n\r\n protected _setRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void {\r\n WebGPUCacheRenderPipelineString._Cache[param.token] = param.pipeline!;\r\n }\r\n}\r\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { VertexBuffer } from "../../Buffers/buffer";
|
|
2
2
|
import type { Nullable } from "../../types";
|
|
3
3
|
import { WebGPUCacheRenderPipeline } from "./webgpuCacheRenderPipeline";
|
|
4
|
-
/** @
|
|
4
|
+
/** @internal */
|
|
5
5
|
declare class NodeState {
|
|
6
6
|
values: {
|
|
7
7
|
[id: number]: NodeState;
|
|
@@ -10,7 +10,7 @@ declare class NodeState {
|
|
|
10
10
|
constructor();
|
|
11
11
|
count(): [number, number];
|
|
12
12
|
}
|
|
13
|
-
/** @
|
|
13
|
+
/** @internal */
|
|
14
14
|
export declare class WebGPUCacheRenderPipelineTree extends WebGPUCacheRenderPipeline {
|
|
15
15
|
private static _Cache;
|
|
16
16
|
private _nodeStack;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebGPUCacheRenderPipeline } from "./webgpuCacheRenderPipeline.js";
|
|
2
|
-
/** @
|
|
2
|
+
/** @internal */
|
|
3
3
|
class NodeState {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.values = {};
|
|
@@ -16,7 +16,7 @@ class NodeState {
|
|
|
16
16
|
return [countNode, countPipeline];
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
/** @
|
|
19
|
+
/** @internal */
|
|
20
20
|
export class WebGPUCacheRenderPipelineTree extends WebGPUCacheRenderPipeline {
|
|
21
21
|
constructor(device, emptyVertexBuffer, useTextureStage) {
|
|
22
22
|
super(device, emptyVertexBuffer, useTextureStage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuCacheRenderPipelineTree.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipelineTree.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,
|
|
1
|
+
{"version":3,"file":"webgpuCacheRenderPipelineTree.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuCacheRenderPipelineTree.ts"],"names":[],"mappings":"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","sourcesContent":["import type { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport type { Nullable } from \"../../types\";\r\nimport { WebGPUCacheRenderPipeline } from \"./webgpuCacheRenderPipeline\";\r\n\r\n/** @internal */\r\nclass NodeState {\r\n public values: { [id: number]: NodeState };\r\n public pipeline: GPURenderPipeline;\r\n\r\n constructor() {\r\n this.values = {};\r\n }\r\n\r\n public count(): [number, number] {\r\n let countNode = 0,\r\n countPipeline = this.pipeline ? 1 : 0;\r\n for (const value in this.values) {\r\n const node = this.values[value];\r\n const [childCountNodes, childCoundPipeline] = node!.count();\r\n countNode += childCountNodes;\r\n countPipeline += childCoundPipeline;\r\n countNode++;\r\n }\r\n return [countNode, countPipeline];\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUCacheRenderPipelineTree extends WebGPUCacheRenderPipeline {\r\n private static _Cache: NodeState = new NodeState();\r\n\r\n private _nodeStack: NodeState[];\r\n\r\n public static GetNodeCounts(): { nodeCount: number; pipelineCount: number } {\r\n const counts = WebGPUCacheRenderPipelineTree._Cache.count();\r\n\r\n return { nodeCount: counts[0], pipelineCount: counts[1] };\r\n }\r\n\r\n public static _GetPipelines(node: NodeState, pipelines: Array<Array<number>>, curPath: Array<number>, curPathLen: number): void {\r\n if (node.pipeline) {\r\n const path = curPath.slice();\r\n path.length = curPathLen;\r\n pipelines.push(path);\r\n }\r\n for (const value in node.values) {\r\n const nnode = node.values[value];\r\n curPath[curPathLen] = parseInt(value);\r\n WebGPUCacheRenderPipelineTree._GetPipelines(nnode, pipelines, curPath, curPathLen + 1);\r\n }\r\n }\r\n\r\n public static GetPipelines(): Array<Array<number>> {\r\n const pipelines: Array<Array<number>> = [];\r\n WebGPUCacheRenderPipelineTree._GetPipelines(WebGPUCacheRenderPipelineTree._Cache, pipelines, [], 0);\r\n return pipelines;\r\n }\r\n\r\n constructor(device: GPUDevice, emptyVertexBuffer: VertexBuffer, useTextureStage: boolean) {\r\n super(device, emptyVertexBuffer, useTextureStage);\r\n this._nodeStack = [];\r\n this._nodeStack[0] = WebGPUCacheRenderPipelineTree._Cache;\r\n }\r\n\r\n protected _getRenderPipeline(param: { token: any; pipeline: Nullable<GPURenderPipeline> }): void {\r\n let node = this._nodeStack[this._stateDirtyLowestIndex];\r\n for (let i = this._stateDirtyLowestIndex; i < this._statesLength; ++i) {\r\n let nn: NodeState | undefined = node!.values[this._states[i]];\r\n if (!nn) {\r\n nn = new NodeState();\r\n node!.values[this._states[i]] = nn;\r\n }\r\n node = nn;\r\n this._nodeStack[i + 1] = node;\r\n }\r\n\r\n param.token = node;\r\n param.pipeline = node.pipeline;\r\n }\r\n\r\n protected _setRenderPipeline(param: { token: NodeState; pipeline: Nullable<GPURenderPipeline> }): void {\r\n param.token.pipeline = param.pipeline!;\r\n }\r\n}\r\n"]}
|