@babylonjs/core 5.0.0-beta.4 → 5.0.0-beta.8
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/actionManager.d.ts +1 -1
- package/Actions/actionManager.js +5 -1
- package/Actions/actionManager.js.map +1 -1
- package/Animations/animation.d.ts +2 -2
- package/Animations/animation.js +5 -1
- package/Animations/animation.js.map +1 -1
- package/Audio/analyser.d.ts +2 -1
- package/Audio/analyser.js +5 -0
- package/Audio/analyser.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +1 -1
- package/Audio/audioSceneComponent.js +5 -0
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +1 -1
- package/Audio/sound.js +8 -1
- package/Audio/sound.js.map +1 -1
- package/Audio/soundTrack.d.ts +2 -1
- package/Audio/soundTrack.js +5 -0
- package/Audio/soundTrack.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +2 -1
- package/Bones/bone.js +28 -18
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +0 -6
- package/Bones/skeleton.js +5 -17
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.d.ts +4 -0
- package/Buffers/buffer.js +13 -3
- package/Buffers/buffer.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
- package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
- package/Cameras/VR/vrExperienceHelper.js +1 -0
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +2 -1
- package/Cameras/VR/webVRCamera.js +3 -2
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +1 -1
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +1 -1
- package/Cameras/camera.js +1 -1
- package/Cameras/camera.js.map +1 -1
- package/Cameras/deviceOrientationCamera.d.ts +1 -1
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +1 -1
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/followCamera.d.ts +1 -1
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/freeCamera.d.ts +1 -1
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/gamepadCamera.d.ts +1 -1
- package/Cameras/gamepadCamera.js.map +1 -1
- package/Cameras/targetCamera.d.ts +1 -1
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +1 -1
- package/Cameras/touchCamera.js.map +1 -1
- package/Cameras/universalCamera.d.ts +1 -1
- package/Cameras/universalCamera.js.map +1 -1
- package/Cameras/virtualJoysticksCamera.d.ts +1 -1
- package/Cameras/virtualJoysticksCamera.js.map +1 -1
- package/Collisions/collider.d.ts +1 -1
- package/Collisions/collider.js +48 -2
- package/Collisions/collider.js.map +1 -1
- package/Compat/compatibilityOptions.d.ts +9 -0
- package/Compat/compatibilityOptions.js +14 -0
- package/Compat/compatibilityOptions.js.map +1 -0
- package/Compat/index.d.ts +1 -0
- package/Compat/index.js +2 -0
- package/Compat/index.js.map +1 -0
- package/Compute/computeEffect.js +2 -2
- package/Compute/computeEffect.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
- package/Culling/Octrees/octreeSceneComponent.js +5 -0
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/ray.js +2 -2
- package/Culling/ray.js.map +1 -1
- package/Debug/axesViewer.d.ts +1 -1
- package/Debug/axesViewer.js +5 -0
- package/Debug/axesViewer.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js +6 -2
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +1 -1
- package/Debug/physicsViewer.js +3 -0
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/skeletonViewer.js +3 -4
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/Helpers/eventFactory.js +2 -5
- package/DeviceInput/Helpers/eventFactory.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +55 -2
- package/DeviceInput/InputDevices/deviceEnums.js +54 -0
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
- package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js +1 -0
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/InputDevices/nativeDeviceInputSystem.js +3 -2
- package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -1
- package/DeviceInput/InputDevices/webDeviceInputSystem.js +38 -82
- package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +6 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiview.d.ts +5 -0
- package/Engines/Extensions/engine.multiview.js +4 -2
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +2 -1
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
- package/Engines/Processors/shaderCodeInliner.js +13 -13
- package/Engines/Processors/shaderCodeInliner.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +2 -1
- package/Engines/WebGPU/webgpuConstants.js +1 -0
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +18 -11
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +47 -27
- package/Engines/engine.js +1 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/engineCapabilities.d.ts +2 -0
- package/Engines/engineCapabilities.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -0
- package/Engines/nativeEngine.js +39 -13
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +3 -2
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +8 -0
- package/Engines/renderTargetWrapper.js +20 -0
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +7 -0
- package/Engines/thinEngine.js +27 -9
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +37 -25
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/keyboardEvents.d.ts +7 -1
- package/Events/keyboardEvents.js +11 -1
- package/Events/keyboardEvents.js.map +1 -1
- package/Gamepads/Controllers/daydreamController.js +1 -1
- package/Gamepads/Controllers/daydreamController.js.map +1 -1
- package/Gamepads/Controllers/oculusTouchController.js +2 -2
- package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
- package/Gamepads/Controllers/webVRController.d.ts +1 -0
- package/Gamepads/Controllers/webVRController.js +1 -0
- package/Gamepads/Controllers/webVRController.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +0 -10
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +1 -1
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.d.ts +2 -0
- package/Gizmos/gizmoManager.js +28 -24
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +1 -0
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +1 -1
- package/Inputs/scene.inputManager.js +8 -7
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.js +2 -2
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -1
- package/Layers/effectLayer.js +1 -1
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/effectLayerSceneComponent.d.ts +1 -1
- package/Layers/effectLayerSceneComponent.js +7 -3
- package/Layers/effectLayerSceneComponent.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +1 -1
- package/Layers/highlightLayer.js +2 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +2 -2
- package/Layers/layer.js.map +1 -1
- package/Layers/layerSceneComponent.d.ts +1 -1
- package/Layers/layerSceneComponent.js +7 -3
- package/Layers/layerSceneComponent.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +7 -7
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +79 -36
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/loadingScreen.js +8 -8
- package/Loading/loadingScreen.js.map +1 -1
- package/Loading/sceneLoader.js +3 -3
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.d.ts +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
- package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/index.js +1 -0
- package/Materials/Node/Blocks/Dual/index.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/addBlock.js +1 -1
- package/Materials/Node/Blocks/addBlock.js.map +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.js +3 -3
- package/Materials/Node/Blocks/clampBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +7 -7
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
- package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
- package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.js +10 -10
- package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
- package/Materials/Node/Blocks/crossBlock.js +1 -1
- package/Materials/Node/Blocks/crossBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +1 -1
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/desaturateBlock.js +4 -4
- package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
- package/Materials/Node/Blocks/distanceBlock.js +1 -1
- package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
- package/Materials/Node/Blocks/divideBlock.js +1 -1
- package/Materials/Node/Blocks/divideBlock.js.map +1 -1
- package/Materials/Node/Blocks/dotBlock.js +1 -1
- package/Materials/Node/Blocks/dotBlock.js.map +1 -1
- package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
- package/Materials/Node/Blocks/elbowBlock.js +60 -0
- package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
- package/Materials/Node/Blocks/fresnelBlock.js +2 -2
- package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
- package/Materials/Node/Blocks/gradientBlock.js +8 -8
- package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/Blocks/lengthBlock.js +1 -1
- package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
- package/Materials/Node/Blocks/lerpBlock.js +1 -1
- package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
- package/Materials/Node/Blocks/maxBlock.js +1 -1
- package/Materials/Node/Blocks/maxBlock.js.map +1 -1
- package/Materials/Node/Blocks/minBlock.js +1 -1
- package/Materials/Node/Blocks/minBlock.js.map +1 -1
- package/Materials/Node/Blocks/modBlock.js +1 -1
- package/Materials/Node/Blocks/modBlock.js.map +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/negateBlock.js +1 -1
- package/Materials/Node/Blocks/negateBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
- package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/powBlock.js +1 -1
- package/Materials/Node/Blocks/powBlock.js.map +1 -1
- package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
- package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
- package/Materials/Node/Blocks/reflectBlock.js +1 -1
- package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
- package/Materials/Node/Blocks/refractBlock.js +1 -1
- package/Materials/Node/Blocks/refractBlock.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.js +3 -3
- package/Materials/Node/Blocks/remapBlock.js.map +1 -1
- package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
- package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
- package/Materials/Node/Blocks/scaleBlock.js +1 -1
- package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
- package/Materials/Node/Blocks/stepBlock.js +1 -1
- package/Materials/Node/Blocks/stepBlock.js.map +1 -1
- package/Materials/Node/Blocks/subtractBlock.js +1 -1
- package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.js +13 -13
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
- package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
- package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.js +3 -3
- package/Materials/Node/Blocks/waveBlock.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
- package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
- package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +4 -0
- package/Materials/Node/nodeMaterial.js +22 -11
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +12 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +24 -24
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
- package/Materials/PBR/pbrBaseMaterial.js +4 -3
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +1 -1
- package/Materials/PBR/pbrMaterial.js +2 -3
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
- package/Materials/Textures/MultiviewRenderTarget.js +10 -2
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +1 -1
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +2 -0
- package/Materials/Textures/internalTexture.js +2 -0
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.d.ts +2 -2
- package/Materials/Textures/mirrorTexture.js +7 -3
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/refractionTexture.d.ts +1 -1
- package/Materials/Textures/refractionTexture.js +2 -2
- package/Materials/Textures/refractionTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +1 -1
- package/Materials/Textures/renderTargetTexture.js +2 -2
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +1 -1
- package/Materials/Textures/texture.js +5 -5
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +1 -0
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.js +3 -3
- package/Materials/effect.js.map +1 -1
- package/Materials/material.d.ts +3 -1
- package/Materials/material.js +11 -3
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.js +9 -1
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginManager.js +3 -3
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.d.ts +3 -1
- package/Materials/multiMaterial.js +13 -11
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/pushMaterial.d.ts +1 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/shaderMaterial.js +8 -4
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.d.ts +1 -1
- package/Materials/shadowDepthWrapper.js +3 -3
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -6
- package/Materials/standardMaterial.js +5 -10
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.size.js +1 -1
- package/Maths/math.size.js.map +1 -1
- package/Maths/math.vector.d.ts +4 -2
- package/Maths/math.vector.js +34 -32
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.js +5 -4
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.js +4 -3
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
- package/Meshes/Builders/cylinderBuilder.js +11 -8
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +5 -2
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.js +3 -2
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.js +10 -1
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +2 -1
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +2 -1
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/linesBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.js +5 -4
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.js +6 -2
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +3 -2
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/ribbonBuilder.js +4 -3
- package/Meshes/Builders/ribbonBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.js +2 -1
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.js +4 -0
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.js +2 -1
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.js +2 -1
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/Compression/dracoCompression.d.ts +3 -0
- package/Meshes/Compression/dracoCompression.js +23 -7
- package/Meshes/Compression/dracoCompression.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +10 -2
- package/Meshes/abstractMesh.js +39 -33
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +1 -1
- package/Meshes/geometry.js +38 -3
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/groundMesh.d.ts +1 -1
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/instancedMesh.js +5 -6
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -1
- package/Meshes/mesh.js +39 -35
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.lts.d.ts +1 -1
- package/Meshes/mesh.lts.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +1 -1
- package/Meshes/mesh.vertexData.js +2 -2
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/subMesh.js +1 -2
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/subMesh.project.js +1 -2
- package/Meshes/subMesh.project.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +5 -0
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/trailMesh.d.ts +1 -1
- package/Meshes/trailMesh.js.map +1 -1
- package/Meshes/transformNode.js +40 -13
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +6 -6
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/assetsManager.d.ts +2 -1
- package/Misc/assetsManager.js +15 -1
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -1
- package/Misc/basis.js.map +1 -1
- package/Misc/brdfTextureTools.js +4 -1
- package/Misc/brdfTextureTools.js.map +1 -1
- package/Misc/dds.js +7 -0
- package/Misc/dds.js.map +1 -1
- package/Misc/decorators.js +7 -0
- package/Misc/decorators.js.map +1 -1
- package/Misc/deepCopier.js +3 -3
- package/Misc/deepCopier.js.map +1 -1
- package/Misc/devTools.js +1 -1
- package/Misc/devTools.js.map +1 -1
- package/Misc/environmentTextureTools.js +2 -2
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.js +3 -3
- package/Misc/fileTools.js.map +1 -1
- package/Misc/khronosTextureContainer2.js +4 -3
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/reflector.js +6 -6
- package/Misc/reflector.js.map +1 -1
- package/Misc/tools.js +15 -13
- package/Misc/tools.js.map +1 -1
- package/Misc/uniqueIdGenerator.js +1 -1
- package/Misc/uniqueIdGenerator.js.map +1 -1
- package/Offline/database.js +1 -1
- package/Offline/database.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +4 -1
- package/Particles/baseParticleSystem.js +20 -5
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/particleHelper.js +2 -2
- package/Particles/particleHelper.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.js +4 -4
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +2 -2
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/blurPostProcess.js +5 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.js +1 -1
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.js +2 -2
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/Probes/reflectionProbe.js +2 -2
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/depthPeelingRenderer.js +3 -3
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +8 -8
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +1 -1
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +4 -0
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/color.fragment.js +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +1 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/default.fragment.js +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +1 -1
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.js +9 -10
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteMap.js +2 -2
- package/Sprites/spriteMap.js.map +1 -1
- package/Sprites/spriteRenderer.js +1 -1
- package/Sprites/spriteRenderer.js.map +1 -1
- package/XR/features/WebXRDOMOverlay.js +1 -1
- package/XR/features/WebXRDOMOverlay.js.map +1 -1
- package/XR/features/WebXRHandTracking.js +30 -30
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRImageTracking.js +2 -2
- package/XR/features/WebXRImageTracking.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +28 -5
- package/XR/features/WebXRLayers.js +54 -20
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRNearInteraction.d.ts +35 -3
- package/XR/features/WebXRNearInteraction.js +201 -40
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.js +1 -1
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/motionController/webXRMotionControllerManager.js +2 -2
- package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
- package/XR/motionController/webXRProfiledMotionController.js +1 -1
- package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
- package/XR/webXRCamera.js +17 -4
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.js +3 -0
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.js +2 -2
- package/XR/webXREnterExitUI.js.map +1 -1
- package/XR/webXRExperienceHelper.js +3 -2
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.js +6 -6
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRInputSource.js +3 -3
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
- package/XR/webXRRenderTargetTextureProvider.js +37 -18
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +1 -0
- package/XR/webXRSessionManager.js +6 -1
- package/XR/webXRSessionManager.js.map +1 -1
- package/assetContainer.d.ts +1 -1
- package/assetContainer.js +5 -4
- package/assetContainer.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.d.ts +1 -1
- package/node.js.map +1 -1
- package/package.json +13 -1
- package/scene.d.ts +3 -1
- package/scene.js +38 -13
- package/scene.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuComputeContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuComputeContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageBuffer } from \"../../Buffers/storageBuffer\";\r\nimport { IComputeContext } from \"../../Compute/IComputeContext\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { TextureSampler } from \"../../Materials/Textures/textureSampler\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { ComputeBindingList, ComputeBindingMapping, ComputeBindingType } from \"../Extensions/engine.computeShader\";\r\nimport { WebGPUCacheSampler } from \"./webgpuCacheSampler\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\n\r\n/** @hidden */\r\nexport class WebGPUComputeContext implements IComputeContext {\r\n private static _Counter = 0;\r\n\r\n public readonly uniqueId: number;\r\n\r\n private _device: GPUDevice;\r\n private _cacheSampler: WebGPUCacheSampler;\r\n private _bindGroups: GPUBindGroup[];\r\n private _bindGroupEntries: GPUBindGroupEntry[][];\r\n\r\n public getBindGroups(bindings: ComputeBindingList, computePipeline: GPUComputePipeline, bindingsMapping?: ComputeBindingMapping): GPUBindGroup[] {\r\n if (!bindingsMapping) {\r\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\r\n }\r\n if (this._bindGroups.length === 0) {\r\n const bindGroupEntriesExist = this._bindGroupEntries.length > 0;\r\n for (const key in bindings) {\r\n const binding = bindings[key],\r\n location = bindingsMapping[key],\r\n group = location.group,\r\n index = location.binding,\r\n type = binding.type,\r\n object = binding.object;\r\n let indexInGroupEntries = binding.indexInGroupEntries;\r\n\r\n let entries = this._bindGroupEntries[group];\r\n if (!entries) {\r\n entries = this._bindGroupEntries[group] = [];\r\n }\r\n\r\n switch (type) {\r\n case ComputeBindingType.Sampler: {\r\n const sampler = object as TextureSampler;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = this._cacheSampler.getSampler(sampler);\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: this._cacheSampler.getSampler(sampler),\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.Texture:\r\n case ComputeBindingType.TextureWithoutSampler: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n if (type === ComputeBindingType.Texture) {\r\n entries[indexInGroupEntries++].resource = this._cacheSampler.getSampler(texture._texture!);\r\n }\r\n entries[indexInGroupEntries].resource = hardwareTexture.view!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n if (type === ComputeBindingType.Texture) {\r\n entries.push({\r\n binding: index - 1,\r\n resource: this._cacheSampler.getSampler(texture._texture!),\r\n });\r\n }\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.view!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.StorageTexture: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if ((hardwareTexture.textureAdditionalUsages & WebGPUConstants.TextureUsage.StorageBinding) === 0) {\r\n Logger.Error(`computeDispatch: The texture (name=${texture.name}, uniqueId=${texture.uniqueId}) is not a storage texture!`, 50);\r\n }\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = hardwareTexture.viewForWriting!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.viewForWriting!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.UniformBuffer:\r\n case ComputeBindingType.StorageBuffer: {\r\n const buffer = type === ComputeBindingType.UniformBuffer ? object as UniformBuffer : object as StorageBuffer;\r\n const dataBuffer = buffer.getBuffer()!;\r\n const webgpuBuffer = dataBuffer.underlyingResource as GPUBuffer;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).buffer = webgpuBuffer;\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).size = dataBuffer.capacity;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: {\r\n buffer: webgpuBuffer,\r\n offset: 0,\r\n size: dataBuffer.capacity,\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this._bindGroupEntries.length; ++i) {\r\n const entries = this._bindGroupEntries[i];\r\n if (!entries) {\r\n this._bindGroups[i] = undefined as any;\r\n continue;\r\n }\r\n this._bindGroups[i] = this._device.createBindGroup({\r\n layout: computePipeline.getBindGroupLayout(i),\r\n entries,\r\n });\r\n }\r\n\r\n this._bindGroups.length = this._bindGroupEntries.length;\r\n }\r\n\r\n return this._bindGroups;\r\n }\r\n\r\n constructor(device: GPUDevice, cacheSampler: WebGPUCacheSampler) {\r\n this._device = device;\r\n this._cacheSampler = cacheSampler;\r\n this.uniqueId = WebGPUComputeContext._Counter++;\r\n this._bindGroupEntries = [];\r\n this.clear();\r\n }\r\n\r\n public clear(): void {\r\n this._bindGroups = [];\r\n // Don't reset _bindGroupEntries if they have already been created, they are still ok even if we have to clear _bindGroups (the layout of the compute shader can't change once created)\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"webgpuComputeContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuComputeContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageBuffer } from \"../../Buffers/storageBuffer\";\r\nimport { IComputeContext } from \"../../Compute/IComputeContext\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { TextureSampler } from \"../../Materials/Textures/textureSampler\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { ComputeBindingList, ComputeBindingMapping, ComputeBindingType } from \"../Extensions/engine.computeShader\";\r\nimport { WebGPUCacheSampler } from \"./webgpuCacheSampler\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\n\r\n/** @hidden */\r\nexport class WebGPUComputeContext implements IComputeContext {\r\n private static _Counter = 0;\r\n\r\n public readonly uniqueId: number;\r\n\r\n private _device: GPUDevice;\r\n private _cacheSampler: WebGPUCacheSampler;\r\n private _bindGroups: GPUBindGroup[];\r\n private _bindGroupEntries: GPUBindGroupEntry[][];\r\n\r\n public getBindGroups(bindings: ComputeBindingList, computePipeline: GPUComputePipeline, bindingsMapping?: ComputeBindingMapping): GPUBindGroup[] {\r\n if (!bindingsMapping) {\r\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\r\n }\r\n if (this._bindGroups.length === 0) {\r\n const bindGroupEntriesExist = this._bindGroupEntries.length > 0;\r\n for (const key in bindings) {\r\n const binding = bindings[key],\r\n location = bindingsMapping[key],\r\n group = location.group,\r\n index = location.binding,\r\n type = binding.type,\r\n object = binding.object;\r\n let indexInGroupEntries = binding.indexInGroupEntries;\r\n\r\n let entries = this._bindGroupEntries[group];\r\n if (!entries) {\r\n entries = this._bindGroupEntries[group] = [];\r\n }\r\n\r\n switch (type) {\r\n case ComputeBindingType.Sampler: {\r\n const sampler = object as TextureSampler;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = this._cacheSampler.getSampler(sampler);\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: this._cacheSampler.getSampler(sampler),\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.Texture:\r\n case ComputeBindingType.TextureWithoutSampler: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n if (type === ComputeBindingType.Texture) {\r\n entries[indexInGroupEntries++].resource = this._cacheSampler.getSampler(texture._texture!);\r\n }\r\n entries[indexInGroupEntries].resource = hardwareTexture.view!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n if (type === ComputeBindingType.Texture) {\r\n entries.push({\r\n binding: index - 1,\r\n resource: this._cacheSampler.getSampler(texture._texture!),\r\n });\r\n }\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.view!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.StorageTexture: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if ((hardwareTexture.textureAdditionalUsages & WebGPUConstants.TextureUsage.StorageBinding) === 0) {\r\n Logger.Error(`computeDispatch: The texture (name=${texture.name}, uniqueId=${texture.uniqueId}) is not a storage texture!`, 50);\r\n }\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = hardwareTexture.viewForWriting!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.viewForWriting!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.UniformBuffer:\r\n case ComputeBindingType.StorageBuffer: {\r\n const buffer = type === ComputeBindingType.UniformBuffer ? object as UniformBuffer : object as StorageBuffer;\r\n const dataBuffer = buffer.getBuffer()!;\r\n const webgpuBuffer = dataBuffer.underlyingResource as GPUBuffer;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).buffer = webgpuBuffer;\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).size = dataBuffer.capacity;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: {\r\n buffer: webgpuBuffer,\r\n offset: 0,\r\n size: dataBuffer.capacity,\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this._bindGroupEntries.length; ++i) {\r\n const entries = this._bindGroupEntries[i];\r\n if (!entries) {\r\n this._bindGroups[i] = undefined as any;\r\n continue;\r\n }\r\n this._bindGroups[i] = this._device.createBindGroup({\r\n layout: computePipeline.getBindGroupLayout(i),\r\n entries,\r\n });\r\n }\r\n\r\n this._bindGroups.length = this._bindGroupEntries.length;\r\n }\r\n\r\n return this._bindGroups;\r\n }\r\n\r\n constructor(device: GPUDevice, cacheSampler: WebGPUCacheSampler) {\r\n this._device = device;\r\n this._cacheSampler = cacheSampler;\r\n this.uniqueId = WebGPUComputeContext._Counter++;\r\n this._bindGroupEntries = [];\r\n this.clear();\r\n }\r\n\r\n public clear(): void {\r\n this._bindGroups = [];\r\n // Don't reset _bindGroupEntries if they have already been created, they are still ok even if we have to clear _bindGroups (the layout of the compute shader can't change once created)\r\n }\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,gCAAa,CAAA;AACjB,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,cAAc;AACd,WAAY,eAAe;IACvB,yCAAsB,CAAA;IACtB,uDAAoC,CAAA;AACxC,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACnB,sDAAuC,CAAA;IACvC,6DAA8C,CAAA;IAC9C,6DAA8C,CAAA;IAC9C,8DAA+C,CAAA;IAC/C,kEAAmD,CAAA;IACnD,kEAAmD,CAAA;IACnD,iDAAkC,CAAA;IAClC,gEAAiD,CAAA;AACrD,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAWX;AAXD,WAAY,WAAW;IACnB,mDAAW,CAAA;IACX,qDAAY,CAAA;IACZ,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,gDAAU,CAAA;IACV,kDAAW,CAAA;IACX,oDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,uDAAc,CAAA;IACd,+DAAkB,CAAA;AACtB,CAAC,EAXW,WAAW,KAAX,WAAW,QAWtB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,qCAAQ,CAAA;IACR,uCAAS,CAAA;AACb,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,8BAAU,CAAA;IACV,8BAAU,CAAA;IACV,8BAAU,CAAA;AACd,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,qDAAW,CAAA;IACX,qDAAW,CAAA;IACX,mEAAkB,CAAA;IAClB,mEAAkB,CAAA;IAClB,wEAAqB,CAAA;AACzB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC5B,kCAAU,CAAA;IACV,kCAAU,CAAA;IACV,6CAAqB,CAAA;IACrB,qCAAa,CAAA;IACb,gDAAwB,CAAA;IACxB,kCAAU,CAAA;AACd,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,6CAA4B,CAAA;IAC5B,yCAAwB,CAAA;AAC5B,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,aAyHX;AAzHD,WAAY,aAAa;IACrB,gBAAgB;IAChB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IAEjB,iBAAiB;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IAEnB,iBAAiB;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,mDAAkC,CAAA;IAClC,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;IACvB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,mDAAkC,CAAA;IAClC,wBAAwB;IACxB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,gDAA+B,CAAA;IAE/B,iBAAiB;IACjB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAE3B,kBAAkB;IAClB,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAE3B,4BAA4B;IAC5B,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,6DAA4C,CAAA;IAC5C,8CAA6B,CAAA;IAE7B,mEAAmE;IACnE,mEAAmE;IACnE,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAC3B,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;IAC/B,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IAExC,uEAAuE;IACvE,mEAAmE;IACnE,iDAAgC,CAAA;IAChC,0DAAyC,CAAA;IACzC,qDAAoC,CAAA;IACpC,8DAA6C,CAAA;IAC7C,mDAAkC,CAAA;IAClC,4DAA2C,CAAA;IAC3C,6CAA4B,CAAA;IAC5B,6CAA4B,CAAA;IAC5B,+CAA8B,CAAA;IAC9B,+CAA8B,CAAA;IAE9B,uEAAuE;IACvE,mEAAmE;IACnE,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAC5C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAC5C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAE5C,kCAAkC;IAClC,+DAA8C,CAAA;IAE9C,kCAAkC;IAClC,+DAA8C,CAAA;AAClD,CAAC,EAzHW,aAAa,KAAb,aAAa,QAyHxB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,gCAAiB,CAAA;IACjB,6CAA8B,CAAA;AAClC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,2CAAwB,CAAA;IACxB,sCAAmB,CAAA;IACnB,yCAAsB,CAAA;IACtB,iDAA8B,CAAA;IAC9B,oCAAiB,CAAA;AACrB,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,iDAAU,CAAA;IACV,qDAAY,CAAA;IACZ,mDAAW,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,0DAAqC,CAAA;AACzC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,6CAAuB,CAAA;IACvB,oDAA8B,CAAA;IAC9B,+CAAyB,CAAA;AAC7B,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,oCAAe,CAAA;IACf,6DAAwC,CAAA;IACxC,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;AACjB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC5B,gDAAwB,CAAA;AAC5B,CAAC,EAFW,oBAAoB,KAApB,oBAAoB,QAE/B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAC9B,yCAAe,CAAA;IACf,6CAAmB,CAAA;IACnB,uCAAa,CAAA;AACjB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,6CAAwB,CAAA;IACxB,2CAAsB,CAAA;IACtB,6CAAwB,CAAA;IACxB,mDAA8B,CAAA;IAC9B,qDAAgC,CAAA;AACpC,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,sBAAS,CAAA;AACb,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,yBAAa,CAAA;AACjB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,yCAAO,CAAA;IACP,6CAAS,CAAA;IACT,2CAAQ,CAAA;IACR,6CAAS,CAAA;IACT,0CAAQ,CAAA;AACZ,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,4CAA6B,CAAA;IAC7B,qCAAsB,CAAA;IACtB,uDAAwC,CAAA;IACxC,0BAAW,CAAA;IACX,4CAA6B,CAAA;IAC7B,qCAAsB,CAAA;IACtB,uDAAwC,CAAA;IACxC,wDAAyC,CAAA;IACzC,oCAAqB,CAAA;IACrB,sDAAuC,CAAA;AAC3C,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,uCAAqB,CAAA;IACrB,sDAAoC,CAAA;IACpC,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IACxB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;IACjB,sDAAkC,CAAA;IAClC,sDAAkC,CAAA;IAClC,oDAAgC,CAAA;IAChC,oDAAgC,CAAA;AACpC,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACrB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,YA+BX;AA/BD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACzB,CAAC,EA/BW,YAAY,KAAZ,YAAY,QA+BvB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACpC,uDAAuB,CAAA;IACvB,2CAAW,CAAA;AACf,CAAC,EAHW,4BAA4B,KAA5B,4BAA4B,QAGvC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACnC,sDAAuB,CAAA;IACvB,0CAAW,CAAA;AACf,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,MAEX;AAFD,WAAY,MAAM;IACd,uBAAa,CAAA;AACjB,CAAC,EAFW,MAAM,KAAN,MAAM,QAEjB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,0BAAe,CAAA;IACf,8BAAmB,CAAA;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,oCAAuB,CAAA;IACvB,oCAAuB,CAAA;AAC3B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IAClC,+CAAiB,CAAA;IACjB,6DAA+B,CAAA;AACnC,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;AAC3B,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,wCAAyB,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"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","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\",\n Clear = \"clear\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
|
|
@@ -34,7 +34,7 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
34
34
|
this._textureArrayProcessing.length = 0;
|
|
35
35
|
};
|
|
36
36
|
WebGPUShaderProcessorGLSL.prototype.preProcessShaderCode = function (code, isFragment) {
|
|
37
|
-
var ubDeclaration = "uniform "
|
|
37
|
+
var ubDeclaration = "uniform ".concat(WebGPUShaderProcessor.InternalsUBOName, " {\nfloat yFactor__;\nfloat textureOutputHeight__;\n};\n");
|
|
38
38
|
if (isFragment) {
|
|
39
39
|
return ubDeclaration + "##INJECTCODE##\n" + code;
|
|
40
40
|
}
|
|
@@ -52,15 +52,15 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
52
52
|
location_1 = this.webgpuProcessingContext.availableVaryings[name_1];
|
|
53
53
|
this._missingVaryings[location_1] = "";
|
|
54
54
|
if (location_1 === undefined) {
|
|
55
|
-
Logger.Warn("Invalid fragment shader: The varying named \""
|
|
55
|
+
Logger.Warn("Invalid fragment shader: The varying named \"".concat(name_1, "\" is not declared in the vertex shader! This declaration will be ignored."));
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
else {
|
|
59
59
|
location_1 = this.webgpuProcessingContext.getVaryingNextLocation(varyingType, this._getArraySize(name_1, varyingType, preProcessors)[2]);
|
|
60
60
|
this.webgpuProcessingContext.availableVaryings[name_1] = location_1;
|
|
61
|
-
this._missingVaryings[location_1] = "layout(location = "
|
|
61
|
+
this._missingVaryings[location_1] = "layout(location = ".concat(location_1, ") in ").concat(varyingType, " ").concat(name_1, ";");
|
|
62
62
|
}
|
|
63
|
-
varying = varying.replace(match[0], location_1 === undefined ? "" : "layout(location = "
|
|
63
|
+
varying = varying.replace(match[0], location_1 === undefined ? "" : "layout(location = ".concat(location_1, ") ").concat(isFragment ? "in" : "out", " ").concat(varyingType, " ").concat(name_1, ";"));
|
|
64
64
|
}
|
|
65
65
|
return varying;
|
|
66
66
|
};
|
|
@@ -74,7 +74,7 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
74
74
|
var location_2 = this.webgpuProcessingContext.getAttributeNextLocation(attributeType, this._getArraySize(name_2, attributeType, preProcessors)[2]);
|
|
75
75
|
this.webgpuProcessingContext.availableAttributes[name_2] = location_2;
|
|
76
76
|
this.webgpuProcessingContext.orderedAttributes[location_2] = name_2;
|
|
77
|
-
attribute = attribute.replace(match[0], "layout(location = "
|
|
77
|
+
attribute = attribute.replace(match[0], "layout(location = ".concat(location_2, ") in ").concat(attributeType, " ").concat(name_2, ";"));
|
|
78
78
|
}
|
|
79
79
|
return attribute;
|
|
80
80
|
};
|
|
@@ -131,17 +131,17 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
131
131
|
// Manage textures and samplers.
|
|
132
132
|
if (!isTextureArray) {
|
|
133
133
|
arraySize = 1;
|
|
134
|
-
uniform = "layout(set = "
|
|
134
|
+
uniform = "layout(set = ".concat(samplerGroupIndex, ", binding = ").concat(samplerBindingIndex, ") uniform ").concat(componentType).concat(samplerType, " ").concat(samplerName, ";\n layout(set = ").concat(textureInfo.textures[0].groupIndex, ", binding = ").concat(textureInfo.textures[0].bindingIndex, ") uniform ").concat(textureType, " ").concat(name_3, "Texture;\n #define ").concat(name_3, " ").concat(componentType).concat(samplerFunction, "(").concat(name_3, "Texture, ").concat(samplerName, ")");
|
|
135
135
|
}
|
|
136
136
|
else {
|
|
137
137
|
var layouts = [];
|
|
138
|
-
layouts.push("layout(set = "
|
|
138
|
+
layouts.push("layout(set = ".concat(samplerGroupIndex, ", binding = ").concat(samplerBindingIndex, ") uniform ").concat(componentType).concat(samplerType, " ").concat(samplerName, ";"));
|
|
139
139
|
uniform = "\r\n";
|
|
140
140
|
for (var i = 0; i < arraySize; ++i) {
|
|
141
141
|
var textureSetIndex = textureInfo.textures[i].groupIndex;
|
|
142
142
|
var textureBindingIndex = textureInfo.textures[i].bindingIndex;
|
|
143
|
-
layouts.push("layout(set = "
|
|
144
|
-
uniform += (i > 0 ? '\r\n' : ''
|
|
143
|
+
layouts.push("layout(set = ".concat(textureSetIndex, ", binding = ").concat(textureBindingIndex, ") uniform ").concat(textureType, " ").concat(name_3, "Texture").concat(i, ";"));
|
|
144
|
+
uniform += "".concat(i > 0 ? '\r\n' : '', "#define ").concat(name_3).concat(i, " ").concat(componentType).concat(samplerFunction, "(").concat(name_3, "Texture").concat(i, ", ").concat(samplerName, ")");
|
|
145
145
|
}
|
|
146
146
|
uniform = layouts.join('\r\n') + uniform;
|
|
147
147
|
this._textureArrayProcessing.push(name_3);
|
|
@@ -179,7 +179,7 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
179
179
|
this.webgpuProcessingContext.availableBuffers[name_4] = uniformBufferInfo;
|
|
180
180
|
}
|
|
181
181
|
this._addBufferBindingDescription(name_4, uniformBufferInfo, WebGPUConstants.BufferBindingType.Uniform, !isFragment);
|
|
182
|
-
uniformBuffer = uniformBuffer.replace("uniform", "layout(set = "
|
|
182
|
+
uniformBuffer = uniformBuffer.replace("uniform", "layout(set = ".concat(uniformBufferInfo.binding.groupIndex, ", binding = ").concat(uniformBufferInfo.binding.bindingIndex, ") uniform"));
|
|
183
183
|
}
|
|
184
184
|
return uniformBuffer;
|
|
185
185
|
};
|
|
@@ -244,14 +244,14 @@ var WebGPUShaderProcessorGLSL = /** @class */ (function (_super) {
|
|
|
244
244
|
return code;
|
|
245
245
|
};
|
|
246
246
|
WebGPUShaderProcessorGLSL.prototype._generateLeftOverUBOCode = function (name, uniformBufferDescription) {
|
|
247
|
-
var ubo = "layout(set = "
|
|
247
|
+
var ubo = "layout(set = ".concat(uniformBufferDescription.binding.groupIndex, ", binding = ").concat(uniformBufferDescription.binding.bindingIndex, ") uniform ").concat(name, " {\n ");
|
|
248
248
|
for (var _i = 0, _a = this.webgpuProcessingContext.leftOverUniforms; _i < _a.length; _i++) {
|
|
249
249
|
var leftOverUniform = _a[_i];
|
|
250
250
|
if (leftOverUniform.length > 0) {
|
|
251
|
-
ubo += " "
|
|
251
|
+
ubo += " ".concat(leftOverUniform.type, " ").concat(leftOverUniform.name, "[").concat(leftOverUniform.length, "];\n");
|
|
252
252
|
}
|
|
253
253
|
else {
|
|
254
|
-
ubo += " "
|
|
254
|
+
ubo += " ".concat(leftOverUniform.type, " ").concat(leftOverUniform.name, ";\n");
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
ubo += "};\n\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuShaderProcessorsGLSL.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuShaderProcessorsGLSL.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from '../../types';\r\nimport { ShaderProcessingContext } from \"../Processors/shaderProcessingOptions\";\r\nimport { WebGPUShaderProcessingContext, WebGPUBufferDescription } from './webgpuShaderProcessingContext';\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { Logger } from '../../Misc/logger';\r\nimport { ThinEngine } from \"../thinEngine\";\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\nimport { ShaderLanguage } from \"../../Materials/shaderLanguage\";\r\n\r\n/** @hidden */\r\nexport class WebGPUShaderProcessorGLSL extends WebGPUShaderProcessor {\r\n\r\n protected _missingVaryings: Array<string> = [];\r\n protected _textureArrayProcessing: Array<string> = [];\r\n protected _preProcessors: { [key: string]: string };\r\n\r\n public shaderLanguage = ShaderLanguage.GLSL;\r\n\r\n protected _getArraySize(name: string, type: string, preProcessors: { [key: string]: string }): [string, string, number] {\r\n let length = 0;\r\n const startArray = name.indexOf(\"[\");\r\n const endArray = name.indexOf(\"]\");\r\n if (startArray > 0 && endArray > 0) {\r\n const lengthInString = name.substring(startArray + 1, endArray);\r\n length = +(lengthInString);\r\n if (isNaN(length)) {\r\n length = +(preProcessors[lengthInString.trim()]);\r\n }\r\n name = name.substr(0, startArray);\r\n }\r\n return [name, type, length];\r\n }\r\n\r\n public initializeShaders(processingContext: Nullable<ShaderProcessingContext>): void {\r\n this.webgpuProcessingContext = processingContext as WebGPUShaderProcessingContext;\r\n\r\n this._missingVaryings.length = 0;\r\n this._textureArrayProcessing.length = 0;\r\n }\r\n\r\n public preProcessShaderCode(code: string, isFragment: boolean): string {\r\n const ubDeclaration = `uniform ${WebGPUShaderProcessor.InternalsUBOName} {\\nfloat yFactor__;\\nfloat textureOutputHeight__;\\n};\\n`;\r\n\r\n if (isFragment) {\r\n return ubDeclaration + \"##INJECTCODE##\\n\" + code;\r\n }\r\n return ubDeclaration + code;\r\n }\r\n\r\n public varyingProcessor(varying: string, isFragment: boolean, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>) {\r\n this._preProcessors = preProcessors;\r\n\r\n const varyingRegex = /\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\r\n const match = varyingRegex.exec(varying);\r\n if (match != null) {\r\n const varyingType = match[1];\r\n const name = match[2];\r\n let location: number;\r\n if (isFragment) {\r\n location = this.webgpuProcessingContext.availableVaryings[name];\r\n this._missingVaryings[location] = \"\";\r\n if (location === undefined) {\r\n Logger.Warn(`Invalid fragment shader: The varying named \"${name}\" is not declared in the vertex shader! This declaration will be ignored.`);\r\n }\r\n }\r\n else {\r\n location = this.webgpuProcessingContext.getVaryingNextLocation(varyingType, this._getArraySize(name, varyingType, preProcessors)[2]);\r\n this.webgpuProcessingContext.availableVaryings[name] = location;\r\n this._missingVaryings[location] = `layout(location = ${location}) in ${varyingType} ${name};`;\r\n }\r\n\r\n varying = varying.replace(match[0], location === undefined ? \"\" : `layout(location = ${location}) ${isFragment ? \"in\" : \"out\"} ${varyingType} ${name};`);\r\n }\r\n return varying;\r\n }\r\n\r\n public attributeProcessor(attribute: string, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>) {\r\n this._preProcessors = preProcessors;\r\n\r\n const attribRegex = /\\s*attribute\\s+(\\S+)\\s+(\\S+)\\s*;/gm;\r\n const match = attribRegex.exec(attribute);\r\n if (match != null) {\r\n const attributeType = match[1];\r\n const name = match[2];\r\n const location = this.webgpuProcessingContext.getAttributeNextLocation(attributeType, this._getArraySize(name, attributeType, preProcessors)[2]);\r\n\r\n this.webgpuProcessingContext.availableAttributes[name] = location;\r\n this.webgpuProcessingContext.orderedAttributes[location] = name;\r\n\r\n attribute = attribute.replace(match[0], `layout(location = ${location}) in ${attributeType} ${name};`);\r\n }\r\n return attribute;\r\n }\r\n\r\n public uniformProcessor(uniform: string, isFragment: boolean, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>): string {\r\n this._preProcessors = preProcessors;\r\n\r\n const uniformRegex = /\\s*uniform\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\r\n\r\n const match = uniformRegex.exec(uniform);\r\n if (match != null) {\r\n let uniformType = match[1];\r\n let name = match[2];\r\n\r\n if (uniformType.indexOf(\"sampler\") === 0 || uniformType.indexOf(\"sampler\") === 1) {\r\n let arraySize = 0; // 0 means the texture is not declared as an array\r\n\r\n [name, uniformType, arraySize] = this._getArraySize(name, uniformType, preProcessors);\r\n\r\n let textureInfo = this.webgpuProcessingContext.availableTextures[name];\r\n if (!textureInfo) {\r\n textureInfo = {\r\n autoBindSampler: true,\r\n isTextureArray: arraySize > 0,\r\n isStorageTexture: false,\r\n textures: [],\r\n sampleType: WebGPUConstants.TextureSampleType.Float,\r\n };\r\n for (let i = 0; i < (arraySize || 1); ++i) {\r\n textureInfo.textures.push(this.webgpuProcessingContext.getNextFreeUBOBinding());\r\n }\r\n }\r\n\r\n const samplerType = WebGPUShaderProcessor._SamplerTypeByWebGLSamplerType[uniformType] ?? \"sampler\";\r\n const isComparisonSampler = !!WebGPUShaderProcessor._IsComparisonSamplerByWebGPUSamplerType[samplerType];\r\n const samplerBindingType = isComparisonSampler ? WebGPUConstants.SamplerBindingType.Comparison : WebGPUConstants.SamplerBindingType.Filtering;\r\n const samplerName = name + WebGPUShaderProcessor.AutoSamplerSuffix;\r\n\r\n let samplerInfo = this.webgpuProcessingContext.availableSamplers[samplerName];\r\n if (!samplerInfo) {\r\n samplerInfo = {\r\n binding: this.webgpuProcessingContext.getNextFreeUBOBinding(),\r\n type: samplerBindingType,\r\n };\r\n }\r\n\r\n const componentType = uniformType.charAt(0) === 'u' ? 'u' : uniformType.charAt(0) === 'i' ? 'i' : '';\r\n\r\n if (componentType) {\r\n uniformType = uniformType.substr(1);\r\n }\r\n\r\n const sampleType =\r\n isComparisonSampler ? WebGPUConstants.TextureSampleType.Depth :\r\n componentType === 'u' ? WebGPUConstants.TextureSampleType.Uint :\r\n componentType === 'i' ? WebGPUConstants.TextureSampleType.Sint : WebGPUConstants.TextureSampleType.Float;\r\n\r\n textureInfo.sampleType = sampleType;\r\n\r\n const isTextureArray = arraySize > 0;\r\n const samplerGroupIndex = samplerInfo.binding.groupIndex;\r\n const samplerBindingIndex = samplerInfo.binding.bindingIndex;\r\n const samplerFunction = WebGPUShaderProcessor._SamplerFunctionByWebGLSamplerType[uniformType];\r\n const textureType = WebGPUShaderProcessor._TextureTypeByWebGLSamplerType[uniformType];\r\n const textureDimension = WebGPUShaderProcessor._GpuTextureViewDimensionByWebGPUTextureType[textureType];\r\n\r\n // Manage textures and samplers.\r\n if (!isTextureArray) {\r\n arraySize = 1;\r\n uniform = `layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${componentType}${samplerType} ${samplerName};\r\n layout(set = ${textureInfo.textures[0].groupIndex}, binding = ${textureInfo.textures[0].bindingIndex}) uniform ${textureType} ${name}Texture;\r\n #define ${name} ${componentType}${samplerFunction}(${name}Texture, ${samplerName})`;\r\n } else {\r\n let layouts = [];\r\n layouts.push(`layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${componentType}${samplerType} ${samplerName};`);\r\n uniform = `\\r\\n`;\r\n for (let i = 0; i < arraySize; ++i) {\r\n const textureSetIndex = textureInfo.textures[i].groupIndex;\r\n const textureBindingIndex = textureInfo.textures[i].bindingIndex;\r\n\r\n layouts.push(`layout(set = ${textureSetIndex}, binding = ${textureBindingIndex}) uniform ${textureType} ${name}Texture${i};`);\r\n\r\n uniform += `${i > 0 ? '\\r\\n' : ''}#define ${name}${i} ${componentType}${samplerFunction}(${name}Texture${i}, ${samplerName})`;\r\n }\r\n uniform = layouts.join('\\r\\n') + uniform;\r\n this._textureArrayProcessing.push(name);\r\n }\r\n\r\n this.webgpuProcessingContext.availableTextures[name] = textureInfo;\r\n this.webgpuProcessingContext.availableSamplers[samplerName] = samplerInfo;\r\n\r\n this._addSamplerBindingDescription(samplerName, samplerInfo, !isFragment);\r\n\r\n for (let i = 0; i < arraySize; ++i) {\r\n this._addTextureBindingDescription(name, textureInfo, i, textureDimension, null, !isFragment);\r\n }\r\n }\r\n else {\r\n this._addUniformToLeftOverUBO(name, uniformType, preProcessors);\r\n uniform = \"\";\r\n }\r\n }\r\n return uniform;\r\n }\r\n\r\n public uniformBufferProcessor(uniformBuffer: string, isFragment: boolean, processingContext: Nullable<ShaderProcessingContext>): string {\r\n const uboRegex = /uniform\\s+(\\w+)/gm;\r\n\r\n const match = uboRegex.exec(uniformBuffer);\r\n if (match != null) {\r\n const name = match[1];\r\n\r\n let uniformBufferInfo = this.webgpuProcessingContext.availableBuffers[name];\r\n if (!uniformBufferInfo) {\r\n const knownUBO = WebGPUShaderProcessingContext.KnownUBOs[name];\r\n\r\n let binding;\r\n if (knownUBO && knownUBO.binding.groupIndex !== -1) {\r\n binding = knownUBO.binding;\r\n } else {\r\n binding = this.webgpuProcessingContext.getNextFreeUBOBinding();\r\n }\r\n\r\n uniformBufferInfo = { binding };\r\n this.webgpuProcessingContext.availableBuffers[name] = uniformBufferInfo;\r\n }\r\n\r\n this._addBufferBindingDescription(name, uniformBufferInfo, WebGPUConstants.BufferBindingType.Uniform, !isFragment);\r\n\r\n uniformBuffer = uniformBuffer.replace(\"uniform\", `layout(set = ${uniformBufferInfo.binding.groupIndex}, binding = ${uniformBufferInfo.binding.bindingIndex}) uniform`);\r\n }\r\n return uniformBuffer;\r\n }\r\n\r\n public postProcessor(code: string, defines: string[], isFragment: boolean, processingContext: Nullable<ShaderProcessingContext>, engine: ThinEngine) {\r\n const hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\r\n\r\n // Remove extensions\r\n var regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\r\n code = code.replace(regex, \"\");\r\n\r\n // Replace instructions\r\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\r\n if (isFragment) {\r\n const hasFragCoord = code.indexOf(\"gl_FragCoord\") >= 0;\r\n const fragCoordCode = `\r\n glFragCoord__ = gl_FragCoord;\r\n if (yFactor__ == 1.) {\r\n glFragCoord__.y = textureOutputHeight__ - glFragCoord__.y;\r\n }\r\n `;\r\n\r\n const injectCode = hasFragCoord ? \"vec4 glFragCoord__;\\n\" : \"\";\r\n\r\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\r\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\r\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\r\n code = code.replace(/gl_FragData/g, \"glFragData\");\r\n code = code.replace(/gl_FragCoord/g, \"glFragCoord__\");\r\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension ? \"\" : \"layout(location = 0) out vec4 glFragColor;\\n\") + \"void main(\");\r\n code = code.replace(/dFdy/g, \"(-yFactor__)*dFdy\"); // will also handle dFdyCoarse and dFdyFine\r\n code = code.replace(\"##INJECTCODE##\", injectCode);\r\n\r\n if (hasFragCoord) {\r\n code = this._injectStartingAndEndingCode(code, \"void main\", fragCoordCode);\r\n }\r\n } else {\r\n code = code.replace(/gl_InstanceID/g, \"gl_InstanceIndex\");\r\n code = code.replace(/gl_VertexID/g, \"gl_VertexIndex\");\r\n var hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\r\n if (hasMultiviewExtension) {\r\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\r\n }\r\n }\r\n\r\n // Flip Y + convert z range from [-1,1] to [0,1]\r\n if (!isFragment) {\r\n const lastClosingCurly = code.lastIndexOf(\"}\");\r\n code = code.substring(0, lastClosingCurly);\r\n code += \"gl_Position.y *= yFactor__;\\n\";\r\n if (!engine.isNDCHalfZRange) {\r\n code += \"gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0;\\n\";\r\n }\r\n code += \"}\";\r\n }\r\n\r\n return code;\r\n }\r\n\r\n private _applyTextureArrayProcessing(code: string, name: string): string {\r\n // Replaces the occurrences of name[XX] by nameXX\r\n const regex = new RegExp(name + \"\\\\s*\\\\[(.+)?\\\\]\", \"gm\");\r\n let match = regex.exec(code);\r\n\r\n while (match != null) {\r\n let index = match[1];\r\n let iindex = +(index);\r\n if (this._preProcessors && isNaN(iindex)) {\r\n iindex = +(this._preProcessors[index.trim()]);\r\n }\r\n code = code.replace(match[0], name + iindex);\r\n match = regex.exec(code);\r\n }\r\n\r\n return code;\r\n }\r\n\r\n protected _generateLeftOverUBOCode(name: string, uniformBufferDescription: WebGPUBufferDescription): string {\r\n let ubo = `layout(set = ${uniformBufferDescription.binding.groupIndex}, binding = ${uniformBufferDescription.binding.bindingIndex}) uniform ${name} {\\n `;\r\n for (let leftOverUniform of this.webgpuProcessingContext.leftOverUniforms) {\r\n if (leftOverUniform.length > 0) {\r\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name}[${leftOverUniform.length}];\\n`;\r\n }\r\n else {\r\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name};\\n`;\r\n }\r\n }\r\n ubo += \"};\\n\\n\";\r\n\r\n return ubo;\r\n }\r\n\r\n public finalizeShaders(vertexCode: string, fragmentCode: string, processingContext: Nullable<ShaderProcessingContext>): { vertexCode: string, fragmentCode: string } {\r\n // make replacements for texture names in the texture array case\r\n for (let i = 0; i < this._textureArrayProcessing.length; ++i) {\r\n const name = this._textureArrayProcessing[i];\r\n vertexCode = this._applyTextureArrayProcessing(vertexCode, name);\r\n fragmentCode = this._applyTextureArrayProcessing(fragmentCode, name);\r\n }\r\n\r\n // inject the missing varying in the fragment shader\r\n for (let i = 0; i < this._missingVaryings.length; ++i) {\r\n const decl = this._missingVaryings[i];\r\n if (decl && decl.length > 0) {\r\n fragmentCode = decl + \"\\n\" + fragmentCode;\r\n }\r\n }\r\n\r\n // Builds the leftover UBOs.\r\n const leftOverUBO = this._buildLeftOverUBO();\r\n\r\n vertexCode = leftOverUBO + vertexCode;\r\n fragmentCode = leftOverUBO + fragmentCode;\r\n\r\n this._collectBindingNames();\r\n this._preCreateBindGroupEntries();\r\n\r\n this._preProcessors = null as any;\r\n\r\n return { vertexCode, fragmentCode };\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"webgpuShaderProcessorsGLSL.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuShaderProcessorsGLSL.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from '../../types';\r\nimport { ShaderProcessingContext } from \"../Processors/shaderProcessingOptions\";\r\nimport { WebGPUShaderProcessingContext, WebGPUBufferDescription } from './webgpuShaderProcessingContext';\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { Logger } from '../../Misc/logger';\r\nimport { ThinEngine } from \"../thinEngine\";\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\nimport { ShaderLanguage } from \"../../Materials/shaderLanguage\";\r\n\r\n/** @hidden */\r\nexport class WebGPUShaderProcessorGLSL extends WebGPUShaderProcessor {\r\n\r\n protected _missingVaryings: Array<string> = [];\r\n protected _textureArrayProcessing: Array<string> = [];\r\n protected _preProcessors: { [key: string]: string };\r\n\r\n public shaderLanguage = ShaderLanguage.GLSL;\r\n\r\n protected _getArraySize(name: string, type: string, preProcessors: { [key: string]: string }): [string, string, number] {\r\n let length = 0;\r\n const startArray = name.indexOf(\"[\");\r\n const endArray = name.indexOf(\"]\");\r\n if (startArray > 0 && endArray > 0) {\r\n const lengthInString = name.substring(startArray + 1, endArray);\r\n length = +(lengthInString);\r\n if (isNaN(length)) {\r\n length = +(preProcessors[lengthInString.trim()]);\r\n }\r\n name = name.substr(0, startArray);\r\n }\r\n return [name, type, length];\r\n }\r\n\r\n public initializeShaders(processingContext: Nullable<ShaderProcessingContext>): void {\r\n this.webgpuProcessingContext = processingContext as WebGPUShaderProcessingContext;\r\n\r\n this._missingVaryings.length = 0;\r\n this._textureArrayProcessing.length = 0;\r\n }\r\n\r\n public preProcessShaderCode(code: string, isFragment: boolean): string {\r\n const ubDeclaration = `uniform ${WebGPUShaderProcessor.InternalsUBOName} {\\nfloat yFactor__;\\nfloat textureOutputHeight__;\\n};\\n`;\r\n\r\n if (isFragment) {\r\n return ubDeclaration + \"##INJECTCODE##\\n\" + code;\r\n }\r\n return ubDeclaration + code;\r\n }\r\n\r\n public varyingProcessor(varying: string, isFragment: boolean, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>) {\r\n this._preProcessors = preProcessors;\r\n\r\n const varyingRegex = /\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\r\n const match = varyingRegex.exec(varying);\r\n if (match != null) {\r\n const varyingType = match[1];\r\n const name = match[2];\r\n let location: number;\r\n if (isFragment) {\r\n location = this.webgpuProcessingContext.availableVaryings[name];\r\n this._missingVaryings[location] = \"\";\r\n if (location === undefined) {\r\n Logger.Warn(`Invalid fragment shader: The varying named \"${name}\" is not declared in the vertex shader! This declaration will be ignored.`);\r\n }\r\n }\r\n else {\r\n location = this.webgpuProcessingContext.getVaryingNextLocation(varyingType, this._getArraySize(name, varyingType, preProcessors)[2]);\r\n this.webgpuProcessingContext.availableVaryings[name] = location;\r\n this._missingVaryings[location] = `layout(location = ${location}) in ${varyingType} ${name};`;\r\n }\r\n\r\n varying = varying.replace(match[0], location === undefined ? \"\" : `layout(location = ${location}) ${isFragment ? \"in\" : \"out\"} ${varyingType} ${name};`);\r\n }\r\n return varying;\r\n }\r\n\r\n public attributeProcessor(attribute: string, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>) {\r\n this._preProcessors = preProcessors;\r\n\r\n const attribRegex = /\\s*attribute\\s+(\\S+)\\s+(\\S+)\\s*;/gm;\r\n const match = attribRegex.exec(attribute);\r\n if (match != null) {\r\n const attributeType = match[1];\r\n const name = match[2];\r\n const location = this.webgpuProcessingContext.getAttributeNextLocation(attributeType, this._getArraySize(name, attributeType, preProcessors)[2]);\r\n\r\n this.webgpuProcessingContext.availableAttributes[name] = location;\r\n this.webgpuProcessingContext.orderedAttributes[location] = name;\r\n\r\n attribute = attribute.replace(match[0], `layout(location = ${location}) in ${attributeType} ${name};`);\r\n }\r\n return attribute;\r\n }\r\n\r\n public uniformProcessor(uniform: string, isFragment: boolean, preProcessors: { [key: string]: string }, processingContext: Nullable<ShaderProcessingContext>): string {\r\n this._preProcessors = preProcessors;\r\n\r\n const uniformRegex = /\\s*uniform\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\r\n\r\n const match = uniformRegex.exec(uniform);\r\n if (match != null) {\r\n let uniformType = match[1];\r\n let name = match[2];\r\n\r\n if (uniformType.indexOf(\"sampler\") === 0 || uniformType.indexOf(\"sampler\") === 1) {\r\n let arraySize = 0; // 0 means the texture is not declared as an array\r\n\r\n [name, uniformType, arraySize] = this._getArraySize(name, uniformType, preProcessors);\r\n\r\n let textureInfo = this.webgpuProcessingContext.availableTextures[name];\r\n if (!textureInfo) {\r\n textureInfo = {\r\n autoBindSampler: true,\r\n isTextureArray: arraySize > 0,\r\n isStorageTexture: false,\r\n textures: [],\r\n sampleType: WebGPUConstants.TextureSampleType.Float,\r\n };\r\n for (let i = 0; i < (arraySize || 1); ++i) {\r\n textureInfo.textures.push(this.webgpuProcessingContext.getNextFreeUBOBinding());\r\n }\r\n }\r\n\r\n const samplerType = WebGPUShaderProcessor._SamplerTypeByWebGLSamplerType[uniformType] ?? \"sampler\";\r\n const isComparisonSampler = !!WebGPUShaderProcessor._IsComparisonSamplerByWebGPUSamplerType[samplerType];\r\n const samplerBindingType = isComparisonSampler ? WebGPUConstants.SamplerBindingType.Comparison : WebGPUConstants.SamplerBindingType.Filtering;\r\n const samplerName = name + WebGPUShaderProcessor.AutoSamplerSuffix;\r\n\r\n let samplerInfo = this.webgpuProcessingContext.availableSamplers[samplerName];\r\n if (!samplerInfo) {\r\n samplerInfo = {\r\n binding: this.webgpuProcessingContext.getNextFreeUBOBinding(),\r\n type: samplerBindingType,\r\n };\r\n }\r\n\r\n const componentType = uniformType.charAt(0) === 'u' ? 'u' : uniformType.charAt(0) === 'i' ? 'i' : '';\r\n\r\n if (componentType) {\r\n uniformType = uniformType.substr(1);\r\n }\r\n\r\n const sampleType =\r\n isComparisonSampler ? WebGPUConstants.TextureSampleType.Depth :\r\n componentType === 'u' ? WebGPUConstants.TextureSampleType.Uint :\r\n componentType === 'i' ? WebGPUConstants.TextureSampleType.Sint : WebGPUConstants.TextureSampleType.Float;\r\n\r\n textureInfo.sampleType = sampleType;\r\n\r\n const isTextureArray = arraySize > 0;\r\n const samplerGroupIndex = samplerInfo.binding.groupIndex;\r\n const samplerBindingIndex = samplerInfo.binding.bindingIndex;\r\n const samplerFunction = WebGPUShaderProcessor._SamplerFunctionByWebGLSamplerType[uniformType];\r\n const textureType = WebGPUShaderProcessor._TextureTypeByWebGLSamplerType[uniformType];\r\n const textureDimension = WebGPUShaderProcessor._GpuTextureViewDimensionByWebGPUTextureType[textureType];\r\n\r\n // Manage textures and samplers.\r\n if (!isTextureArray) {\r\n arraySize = 1;\r\n uniform = `layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${componentType}${samplerType} ${samplerName};\r\n layout(set = ${textureInfo.textures[0].groupIndex}, binding = ${textureInfo.textures[0].bindingIndex}) uniform ${textureType} ${name}Texture;\r\n #define ${name} ${componentType}${samplerFunction}(${name}Texture, ${samplerName})`;\r\n } else {\r\n let layouts = [];\r\n layouts.push(`layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${componentType}${samplerType} ${samplerName};`);\r\n uniform = `\\r\\n`;\r\n for (let i = 0; i < arraySize; ++i) {\r\n const textureSetIndex = textureInfo.textures[i].groupIndex;\r\n const textureBindingIndex = textureInfo.textures[i].bindingIndex;\r\n\r\n layouts.push(`layout(set = ${textureSetIndex}, binding = ${textureBindingIndex}) uniform ${textureType} ${name}Texture${i};`);\r\n\r\n uniform += `${i > 0 ? '\\r\\n' : ''}#define ${name}${i} ${componentType}${samplerFunction}(${name}Texture${i}, ${samplerName})`;\r\n }\r\n uniform = layouts.join('\\r\\n') + uniform;\r\n this._textureArrayProcessing.push(name);\r\n }\r\n\r\n this.webgpuProcessingContext.availableTextures[name] = textureInfo;\r\n this.webgpuProcessingContext.availableSamplers[samplerName] = samplerInfo;\r\n\r\n this._addSamplerBindingDescription(samplerName, samplerInfo, !isFragment);\r\n\r\n for (let i = 0; i < arraySize; ++i) {\r\n this._addTextureBindingDescription(name, textureInfo, i, textureDimension, null, !isFragment);\r\n }\r\n }\r\n else {\r\n this._addUniformToLeftOverUBO(name, uniformType, preProcessors);\r\n uniform = \"\";\r\n }\r\n }\r\n return uniform;\r\n }\r\n\r\n public uniformBufferProcessor(uniformBuffer: string, isFragment: boolean, processingContext: Nullable<ShaderProcessingContext>): string {\r\n const uboRegex = /uniform\\s+(\\w+)/gm;\r\n\r\n const match = uboRegex.exec(uniformBuffer);\r\n if (match != null) {\r\n const name = match[1];\r\n\r\n let uniformBufferInfo = this.webgpuProcessingContext.availableBuffers[name];\r\n if (!uniformBufferInfo) {\r\n const knownUBO = WebGPUShaderProcessingContext.KnownUBOs[name];\r\n\r\n let binding;\r\n if (knownUBO && knownUBO.binding.groupIndex !== -1) {\r\n binding = knownUBO.binding;\r\n } else {\r\n binding = this.webgpuProcessingContext.getNextFreeUBOBinding();\r\n }\r\n\r\n uniformBufferInfo = { binding };\r\n this.webgpuProcessingContext.availableBuffers[name] = uniformBufferInfo;\r\n }\r\n\r\n this._addBufferBindingDescription(name, uniformBufferInfo, WebGPUConstants.BufferBindingType.Uniform, !isFragment);\r\n\r\n uniformBuffer = uniformBuffer.replace(\"uniform\", `layout(set = ${uniformBufferInfo.binding.groupIndex}, binding = ${uniformBufferInfo.binding.bindingIndex}) uniform`);\r\n }\r\n return uniformBuffer;\r\n }\r\n\r\n public postProcessor(code: string, defines: string[], isFragment: boolean, processingContext: Nullable<ShaderProcessingContext>, engine: ThinEngine) {\r\n const hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\r\n\r\n // Remove extensions\r\n var regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\r\n code = code.replace(regex, \"\");\r\n\r\n // Replace instructions\r\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\r\n if (isFragment) {\r\n const hasFragCoord = code.indexOf(\"gl_FragCoord\") >= 0;\r\n const fragCoordCode = `\r\n glFragCoord__ = gl_FragCoord;\r\n if (yFactor__ == 1.) {\r\n glFragCoord__.y = textureOutputHeight__ - glFragCoord__.y;\r\n }\r\n `;\r\n\r\n const injectCode = hasFragCoord ? \"vec4 glFragCoord__;\\n\" : \"\";\r\n\r\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\r\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\r\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\r\n code = code.replace(/gl_FragData/g, \"glFragData\");\r\n code = code.replace(/gl_FragCoord/g, \"glFragCoord__\");\r\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension ? \"\" : \"layout(location = 0) out vec4 glFragColor;\\n\") + \"void main(\");\r\n code = code.replace(/dFdy/g, \"(-yFactor__)*dFdy\"); // will also handle dFdyCoarse and dFdyFine\r\n code = code.replace(\"##INJECTCODE##\", injectCode);\r\n\r\n if (hasFragCoord) {\r\n code = this._injectStartingAndEndingCode(code, \"void main\", fragCoordCode);\r\n }\r\n } else {\r\n code = code.replace(/gl_InstanceID/g, \"gl_InstanceIndex\");\r\n code = code.replace(/gl_VertexID/g, \"gl_VertexIndex\");\r\n var hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\r\n if (hasMultiviewExtension) {\r\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\r\n }\r\n }\r\n\r\n // Flip Y + convert z range from [-1,1] to [0,1]\r\n if (!isFragment) {\r\n const lastClosingCurly = code.lastIndexOf(\"}\");\r\n code = code.substring(0, lastClosingCurly);\r\n code += \"gl_Position.y *= yFactor__;\\n\";\r\n if (!engine.isNDCHalfZRange) {\r\n code += \"gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0;\\n\";\r\n }\r\n code += \"}\";\r\n }\r\n\r\n return code;\r\n }\r\n\r\n private _applyTextureArrayProcessing(code: string, name: string): string {\r\n // Replaces the occurrences of name[XX] by nameXX\r\n const regex = new RegExp(name + \"\\\\s*\\\\[(.+)?\\\\]\", \"gm\");\r\n let match = regex.exec(code);\r\n\r\n while (match != null) {\r\n let index = match[1];\r\n let iindex = +(index);\r\n if (this._preProcessors && isNaN(iindex)) {\r\n iindex = +(this._preProcessors[index.trim()]);\r\n }\r\n code = code.replace(match[0], name + iindex);\r\n match = regex.exec(code);\r\n }\r\n\r\n return code;\r\n }\r\n\r\n protected _generateLeftOverUBOCode(name: string, uniformBufferDescription: WebGPUBufferDescription): string {\r\n let ubo = `layout(set = ${uniformBufferDescription.binding.groupIndex}, binding = ${uniformBufferDescription.binding.bindingIndex}) uniform ${name} {\\n `;\r\n for (let leftOverUniform of this.webgpuProcessingContext.leftOverUniforms) {\r\n if (leftOverUniform.length > 0) {\r\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name}[${leftOverUniform.length}];\\n`;\r\n }\r\n else {\r\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name};\\n`;\r\n }\r\n }\r\n ubo += \"};\\n\\n\";\r\n\r\n return ubo;\r\n }\r\n\r\n public finalizeShaders(vertexCode: string, fragmentCode: string, processingContext: Nullable<ShaderProcessingContext>): { vertexCode: string, fragmentCode: string } {\r\n // make replacements for texture names in the texture array case\r\n for (let i = 0; i < this._textureArrayProcessing.length; ++i) {\r\n const name = this._textureArrayProcessing[i];\r\n vertexCode = this._applyTextureArrayProcessing(vertexCode, name);\r\n fragmentCode = this._applyTextureArrayProcessing(fragmentCode, name);\r\n }\r\n\r\n // inject the missing varying in the fragment shader\r\n for (let i = 0; i < this._missingVaryings.length; ++i) {\r\n const decl = this._missingVaryings[i];\r\n if (decl && decl.length > 0) {\r\n fragmentCode = decl + \"\\n\" + fragmentCode;\r\n }\r\n }\r\n\r\n // Builds the leftover UBOs.\r\n const leftOverUBO = this._buildLeftOverUBO();\r\n\r\n vertexCode = leftOverUBO + vertexCode;\r\n fragmentCode = leftOverUBO + fragmentCode;\r\n\r\n this._collectBindingNames();\r\n this._preCreateBindGroupEntries();\r\n\r\n this._preProcessors = null as any;\r\n\r\n return { vertexCode, fragmentCode };\r\n }\r\n}"]}
|