@babylonjs/core 5.27.0 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animatable.js +2 -1
- package/Animations/animatable.js.map +1 -1
- package/Animations/runtimeAnimation.js +1 -1
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.js +2 -1
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.js +70 -45
- package/Audio/sound.js.map +1 -1
- package/Audio/soundTrack.js +12 -6
- package/Audio/soundTrack.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +2 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +2 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +6 -6
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Bones/bone.js +2 -1
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.js +3 -2
- package/Bones/skeleton.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +2 -2
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +5 -3
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +2 -2
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/arcRotateCamera.js +2 -1
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.js +6 -4
- package/Cameras/camera.js.map +1 -1
- package/Compute/computeEffect.js +8 -5
- package/Compute/computeEffect.js.map +1 -1
- package/Compute/computeShader.js +12 -11
- package/Compute/computeShader.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.js +2 -1
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingBox.js +3 -2
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/ray.js +2 -1
- package/Culling/ray.js.map +1 -1
- package/Debug/directionalLightFrustumViewer.js +9 -7
- package/Debug/directionalLightFrustumViewer.js.map +1 -1
- package/Debug/rayHelper.js +2 -1
- package/Debug/rayHelper.js.map +1 -1
- package/Debug/skeletonViewer.js +29 -24
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js +5 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.js +2 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +12 -9
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.js +4 -4
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.js +3 -2
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.views.js +2 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +11 -6
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.js +4 -2
- package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +4 -4
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +2 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js +3 -2
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.textureSampler.js +2 -1
- package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.js +2 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +7 -6
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +18 -14
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +4 -3
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +3 -2
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js +2 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js +2 -2
- package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +2 -1
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +4 -3
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js +5 -4
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +5 -3
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.js +4 -2
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +4 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +2 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js +3 -2
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js +2 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +40 -38
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +898 -273
- package/Engines/engine.js +5 -3
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.js +7 -5
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +7 -0
- package/Engines/nullEngine.js +42 -0
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.js +14 -9
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.js +25 -16
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +87 -61
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/axisDragGizmo.js +4 -2
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/axisScaleGizmo.js +6 -4
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +21 -6
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.js +3 -2
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/planeDragGizmo.js +4 -2
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.js +4 -2
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Helpers/videoDome.js +2 -1
- package/Helpers/videoDome.js.map +1 -1
- package/Layers/effectLayer.js +5 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.js +4 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.js +2 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/LensFlares/lensFlareSystem.js +2 -1
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +25 -21
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +13 -8
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +2 -1
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/sceneLoader.d.ts +1 -1
- package/Loading/sceneLoader.js +3 -3
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +2 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +2 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +10 -6
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +3 -2
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +2 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +2 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +2 -1
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +26 -24
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +3 -3
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +48 -44
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +2 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +13 -13
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +27 -26
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +2 -2
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +6 -6
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +3 -2
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorMergerBlock.js +5 -4
- package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +4 -3
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +5 -4
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +7 -6
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +4 -3
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialDecorator.js +1 -1
- package/Materials/Node/nodeMaterialDecorator.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +25 -19
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.js +9 -6
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js +7 -4
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.js +7 -4
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Packer/packer.js +14 -13
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js +2 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js +7 -4
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +5 -4
- package/Materials/Textures/baseTexture.js +1 -0
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.js +8 -4
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.js +4 -2
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/internalTexture.js +4 -2
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.js +6 -3
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.js +6 -4
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/rawTexture.js +1 -1
- package/Materials/Textures/rawTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +26 -15
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.js +16 -13
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +4 -2
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +3 -3
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +3 -3
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/drawWrapper.js +4 -2
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.js +15 -10
- package/Materials/effect.js.map +1 -1
- package/Materials/material.d.ts +14 -0
- package/Materials/material.detailMapConfiguration.js +2 -1
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +35 -3
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.js +6 -5
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.js +1 -1
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginManager.js +3 -2
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.js +2 -1
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/shaderMaterial.js +12 -9
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +13 -8
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.js +12 -10
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.vector.d.ts +7 -6
- package/Maths/math.vector.js +10 -8
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +1 -1
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/abstractMesh.js +8 -5
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/csg.js +2 -1
- package/Meshes/csg.js.map +1 -1
- package/Meshes/instancedMesh.js +2 -1
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -1
- package/Meshes/mesh.js +23 -13
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.js +4 -3
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/subMesh.js +14 -8
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +18 -12
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +7 -1
- package/Meshes/transformNode.js +15 -4
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +12 -8
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +3 -2
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/arrayTools.js +1 -1
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +22 -4
- package/Misc/assetsManager.js +20 -8
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/computePressure.js +9 -6
- package/Misc/computePressure.js.map +1 -1
- package/Misc/dataStorage.js +1 -1
- package/Misc/dataStorage.js.map +1 -1
- package/Misc/dds.js +1 -1
- package/Misc/dds.js.map +1 -1
- package/Misc/environmentTextureTools.js +3 -2
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.js +31 -8
- package/Misc/fileTools.js.map +1 -1
- package/Misc/logger.js +2 -1
- package/Misc/logger.js.map +1 -1
- package/Misc/minMaxReducer.js +3 -2
- package/Misc/minMaxReducer.js.map +1 -1
- package/Misc/sceneRecorder.js +1 -1
- package/Misc/sceneRecorder.js.map +1 -1
- package/Misc/textureTools.js +3 -3
- package/Misc/textureTools.js.map +1 -1
- package/Misc/timer.js +5 -3
- package/Misc/timer.js.map +1 -1
- package/Misc/tools.js +4 -4
- package/Misc/tools.js.map +1 -1
- package/Misc/trajectoryClassifier.js +3 -3
- package/Misc/trajectoryClassifier.js.map +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js +2 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
- package/Particles/computeShaderParticleSystem.js +6 -3
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.js +13 -8
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.js +22 -14
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/particleSystemComponent.js +2 -1
- package/Particles/particleSystemComponent.js.map +1 -1
- package/Particles/pointsCloudSystem.js +7 -4
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticleSystem.js +2 -2
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/webgl2ParticleSystem.js +2 -1
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +5 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +4 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.js +1 -1
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.js +8 -5
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.js +6 -4
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +7 -4
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.js +4 -2
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.js +3 -2
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +12 -0
- package/Rendering/depthPeelingRenderer.js +30 -6
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthPeelingSceneComponent.js +4 -2
- package/Rendering/depthPeelingSceneComponent.js.map +1 -1
- package/Rendering/depthRenderer.js +10 -6
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/edgesRenderer.js +11 -8
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +2 -2
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +4 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +3 -3
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/pbr.fragment.js +4 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Sprites/spriteManager.js +2 -1
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.js +2 -1
- package/Sprites/spriteRenderer.js.map +1 -1
- package/States/stencilStateComposer.js +4 -2
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRAnchorSystem.js +2 -1
- package/XR/features/WebXRAnchorSystem.js.map +1 -1
- package/XR/features/WebXRControllerMovement.js +7 -6
- package/XR/features/WebXRControllerMovement.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.js +6 -4
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.js +2 -1
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +3 -3
- package/XR/features/WebXRHandTracking.js +126 -118
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRHitTest.js.map +1 -1
- package/XR/features/WebXRLayers.js +1 -1
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRLightEstimation.js +7 -4
- package/XR/features/WebXRLightEstimation.js.map +1 -1
- package/XR/features/WebXRMeshDetector.js +2 -1
- package/XR/features/WebXRMeshDetector.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +7 -4
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/features/WebXRPlaneDetector.js +2 -1
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/native/nativeXRFrame.js +2 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/webXRCamera.js +2 -1
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +7 -5
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInput.js.map +1 -1
- package/XR/webXRInputSource.js +2 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRManagedOutputCanvas.js +0 -1
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRSessionManager.js +27 -14
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRWebGLLayer.js +3 -0
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +17 -11
- package/scene.js.map +1 -1
package/Engines/webgpuEngine.js
CHANGED
|
@@ -47,6 +47,7 @@ export class WebGPUEngine extends Engine {
|
|
|
47
47
|
* @param options Defines the options passed to the engine to create the GPU context dependencies
|
|
48
48
|
*/
|
|
49
49
|
constructor(canvas, options = {}) {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
50
51
|
super(null);
|
|
51
52
|
// Page Life cycle and constants
|
|
52
53
|
this._uploadEncoderDescriptor = { label: "upload" };
|
|
@@ -135,8 +136,8 @@ export class WebGPUEngine extends Engine {
|
|
|
135
136
|
this.hasOriginBottomLeft = false;
|
|
136
137
|
options.deviceDescriptor = options.deviceDescriptor || {};
|
|
137
138
|
options.antialiasing = options.antialiasing === undefined ? true : options.antialiasing;
|
|
138
|
-
options.stencil = options.stencil
|
|
139
|
-
options.enableGPUDebugMarkers = options.enableGPUDebugMarkers
|
|
139
|
+
options.stencil = (_a = options.stencil) !== null && _a !== void 0 ? _a : true;
|
|
140
|
+
options.enableGPUDebugMarkers = (_b = options.enableGPUDebugMarkers) !== null && _b !== void 0 ? _b : false;
|
|
140
141
|
PerformanceConfigurator.SetMatrixPrecision(!!options.useHighPrecisionMatrix);
|
|
141
142
|
Logger.Log(`Babylon.js v${Engine.Version} - ${this.description} engine`);
|
|
142
143
|
if (!navigator.gpu) {
|
|
@@ -161,10 +162,10 @@ export class WebGPUEngine extends Engine {
|
|
|
161
162
|
this._doNotHandleContextLost = !!options.doNotHandleContextLost;
|
|
162
163
|
this._canvas = canvas;
|
|
163
164
|
this._options = options;
|
|
164
|
-
this.premultipliedAlpha = options.premultipliedAlpha
|
|
165
|
+
this.premultipliedAlpha = (_c = options.premultipliedAlpha) !== null && _c !== void 0 ? _c : true;
|
|
165
166
|
const devicePixelRatio = IsWindowObjectExist() ? window.devicePixelRatio || 1.0 : 1.0;
|
|
166
167
|
const limitDeviceRatio = options.limitDeviceRatio || devicePixelRatio;
|
|
167
|
-
const adaptToDeviceRatio = options.adaptToDeviceRatio
|
|
168
|
+
const adaptToDeviceRatio = (_d = options.adaptToDeviceRatio) !== null && _d !== void 0 ? _d : false;
|
|
168
169
|
this._hardwareScalingLevel = adaptToDeviceRatio ? 1.0 / Math.min(limitDeviceRatio, devicePixelRatio) : 1.0;
|
|
169
170
|
this._mainPassSampleCount = options.antialiasing ? this._defaultSampleCount : 1;
|
|
170
171
|
this._isStencilEnable = options.stencil;
|
|
@@ -323,12 +324,14 @@ export class WebGPUEngine extends Engine {
|
|
|
323
324
|
* @returns a promise notifying the readiness of the engine.
|
|
324
325
|
*/
|
|
325
326
|
initAsync(glslangOptions, twgslOptions) {
|
|
326
|
-
|
|
327
|
+
var _a;
|
|
328
|
+
return this._initGlslang(glslangOptions !== null && glslangOptions !== void 0 ? glslangOptions : (_a = this._options) === null || _a === void 0 ? void 0 : _a.glslangOptions)
|
|
327
329
|
.then((glslang) => {
|
|
330
|
+
var _a;
|
|
328
331
|
this._glslang = glslang;
|
|
329
332
|
this._tintWASM = WebGPUEngine.UseTWGSL ? new WebGPUTintWASM() : null;
|
|
330
333
|
return this._tintWASM
|
|
331
|
-
? this._tintWASM.initTwgsl(twgslOptions
|
|
334
|
+
? this._tintWASM.initTwgsl(twgslOptions !== null && twgslOptions !== void 0 ? twgslOptions : (_a = this._options) === null || _a === void 0 ? void 0 : _a.twgslOptions).then(() => {
|
|
332
335
|
return navigator.gpu.requestAdapter(this._options);
|
|
333
336
|
}, (msg) => {
|
|
334
337
|
Logger.Error("Can not initialize twgsl!");
|
|
@@ -342,15 +345,16 @@ export class WebGPUEngine extends Engine {
|
|
|
342
345
|
throw Error("WebGPU initializations stopped.");
|
|
343
346
|
})
|
|
344
347
|
.then((adapter) => {
|
|
348
|
+
var _a;
|
|
345
349
|
if (!adapter) {
|
|
346
350
|
throw "Could not retrieve a WebGPU adapter (adapter is null).";
|
|
347
351
|
}
|
|
348
352
|
else {
|
|
349
353
|
this._adapter = adapter;
|
|
350
354
|
this._adapterSupportedExtensions = [];
|
|
351
|
-
this._adapter.features
|
|
355
|
+
(_a = this._adapter.features) === null || _a === void 0 ? void 0 : _a.forEach((feature) => this._adapterSupportedExtensions.push(feature));
|
|
352
356
|
const deviceDescriptor = this._options.deviceDescriptor;
|
|
353
|
-
if (deviceDescriptor
|
|
357
|
+
if (deviceDescriptor === null || deviceDescriptor === void 0 ? void 0 : deviceDescriptor.requiredFeatures) {
|
|
354
358
|
const requestedExtensions = deviceDescriptor.requiredFeatures;
|
|
355
359
|
const validExtensions = [];
|
|
356
360
|
for (const extension of requestedExtensions) {
|
|
@@ -364,9 +368,10 @@ export class WebGPUEngine extends Engine {
|
|
|
364
368
|
}
|
|
365
369
|
})
|
|
366
370
|
.then((device) => {
|
|
371
|
+
var _a, _b;
|
|
367
372
|
this._device = device;
|
|
368
373
|
this._deviceEnabledExtensions = [];
|
|
369
|
-
this._device.features
|
|
374
|
+
(_a = this._device.features) === null || _a === void 0 ? void 0 : _a.forEach((feature) => this._deviceEnabledExtensions.push(feature));
|
|
370
375
|
let numUncapturedErrors = -1;
|
|
371
376
|
this._device.addEventListener("uncapturederror", (event) => {
|
|
372
377
|
if (++numUncapturedErrors < this.numMaxUncapturedErrors) {
|
|
@@ -377,7 +382,7 @@ export class WebGPUEngine extends Engine {
|
|
|
377
382
|
}
|
|
378
383
|
});
|
|
379
384
|
if (!this._doNotHandleContextLost) {
|
|
380
|
-
this._device.lost
|
|
385
|
+
(_b = this._device.lost) === null || _b === void 0 ? void 0 : _b.then((info) => {
|
|
381
386
|
this._contextWasLost = true;
|
|
382
387
|
Logger.Warn("WebGPU context lost. " + info);
|
|
383
388
|
this.onContextLostObservable.notifyObservers(this);
|
|
@@ -551,6 +556,7 @@ export class WebGPUEngine extends Engine {
|
|
|
551
556
|
}
|
|
552
557
|
// Set default values as WebGL with depth and stencil attachment for the broadest Compat.
|
|
553
558
|
_initializeMainAttachments() {
|
|
559
|
+
var _a;
|
|
554
560
|
if (!this._bufferManager) {
|
|
555
561
|
return;
|
|
556
562
|
}
|
|
@@ -572,7 +578,7 @@ export class WebGPUEngine extends Engine {
|
|
|
572
578
|
format: this._options.swapChainFormat,
|
|
573
579
|
usage: WebGPUConstants.TextureUsage.RenderAttachment,
|
|
574
580
|
};
|
|
575
|
-
this._mainTexture
|
|
581
|
+
(_a = this._mainTexture) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
576
582
|
this._mainTexture = this._device.createTexture(mainTextureDescriptor);
|
|
577
583
|
mainColorAttachments = [
|
|
578
584
|
{
|
|
@@ -836,7 +842,8 @@ export class WebGPUEngine extends Engine {
|
|
|
836
842
|
* @internal
|
|
837
843
|
*/
|
|
838
844
|
_applyStencilRef(renderPass) {
|
|
839
|
-
|
|
845
|
+
var _a;
|
|
846
|
+
renderPass.setStencilReference((_a = this._stencilStateComposer.funcRef) !== null && _a !== void 0 ? _a : 0);
|
|
840
847
|
}
|
|
841
848
|
_resetCurrentColorBlend(index) {
|
|
842
849
|
this._blendColorsCurrent[index][0] = this._blendColorsCurrent[index][1] = this._blendColorsCurrent[index][2] = this._blendColorsCurrent[index][3] = null;
|
|
@@ -917,12 +924,13 @@ export class WebGPUEngine extends Engine {
|
|
|
917
924
|
}
|
|
918
925
|
}
|
|
919
926
|
_clearFullQuad(clearColor, clearDepth, clearStencil) {
|
|
927
|
+
var _a, _b, _c;
|
|
920
928
|
const renderPass = !this.compatibilityMode ? null : this._getCurrentRenderPass();
|
|
921
929
|
const renderPassIndex = this._getCurrentRenderPassIndex();
|
|
922
930
|
const bundleList = renderPassIndex === 0 ? this._bundleList : this._bundleListRenderTarget;
|
|
923
931
|
this._clearQuad.setColorFormat(this._colorFormat);
|
|
924
932
|
this._clearQuad.setDepthStencilFormat(this._depthTextureFormat);
|
|
925
|
-
this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments
|
|
933
|
+
this._clearQuad.setMRTAttachments((_a = this._cacheRenderPipeline.mrtAttachments) !== null && _a !== void 0 ? _a : [], (_b = this._cacheRenderPipeline.mrtTextureArray) !== null && _b !== void 0 ? _b : [], this._cacheRenderPipeline.mrtTextureCount);
|
|
926
934
|
if (!this.compatibilityMode) {
|
|
927
935
|
bundleList.addItem(new WebGPURenderItemStencilRef(this._clearStencilValue));
|
|
928
936
|
}
|
|
@@ -932,7 +940,7 @@ export class WebGPUEngine extends Engine {
|
|
|
932
940
|
const bundle = this._clearQuad.clear(renderPass, clearColor, clearDepth, clearStencil, this.currentSampleCount);
|
|
933
941
|
if (!this.compatibilityMode) {
|
|
934
942
|
bundleList.addBundle(bundle);
|
|
935
|
-
bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef
|
|
943
|
+
bundleList.addItem(new WebGPURenderItemStencilRef((_c = this._stencilStateComposer.funcRef) !== null && _c !== void 0 ? _c : 0));
|
|
936
944
|
this._reportDrawCall();
|
|
937
945
|
}
|
|
938
946
|
else {
|
|
@@ -1053,7 +1061,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1053
1061
|
*/
|
|
1054
1062
|
bindBuffers(vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {
|
|
1055
1063
|
this._currentIndexBuffer = indexBuffer;
|
|
1056
|
-
this._currentOverrideVertexBuffers = overrideVertexBuffers
|
|
1064
|
+
this._currentOverrideVertexBuffers = overrideVertexBuffers !== null && overrideVertexBuffers !== void 0 ? overrideVertexBuffers : null;
|
|
1057
1065
|
this._cacheRenderPipeline.setBuffers(vertexBuffers, indexBuffer, this._currentOverrideVertexBuffers);
|
|
1058
1066
|
}
|
|
1059
1067
|
/**
|
|
@@ -1080,10 +1088,11 @@ export class WebGPUEngine extends Engine {
|
|
|
1080
1088
|
* @returns the new Effect
|
|
1081
1089
|
*/
|
|
1082
1090
|
createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = ShaderLanguage.GLSL) {
|
|
1091
|
+
var _a;
|
|
1083
1092
|
const vertex = baseName.vertexElement || baseName.vertex || baseName.vertexToken || baseName.vertexSource || baseName;
|
|
1084
1093
|
const fragment = baseName.fragmentElement || baseName.fragment || baseName.fragmentToken || baseName.fragmentSource || baseName;
|
|
1085
1094
|
const globalDefines = this._getGlobalDefines();
|
|
1086
|
-
let fullDefines = defines
|
|
1095
|
+
let fullDefines = (_a = defines !== null && defines !== void 0 ? defines : attributesNamesOrOptions.defines) !== null && _a !== void 0 ? _a : "";
|
|
1087
1096
|
if (globalDefines) {
|
|
1088
1097
|
fullDefines += "\n" + globalDefines;
|
|
1089
1098
|
}
|
|
@@ -1358,15 +1367,16 @@ export class WebGPUEngine extends Engine {
|
|
|
1358
1367
|
* @returns a new internal texture
|
|
1359
1368
|
*/
|
|
1360
1369
|
_createInternalTexture(size, options, delayGPUTextureCreation = true, source = InternalTextureSource.Unknown) {
|
|
1370
|
+
var _a, _b, _c;
|
|
1361
1371
|
const fullOptions = {};
|
|
1362
1372
|
if (options !== undefined && typeof options === "object") {
|
|
1363
1373
|
fullOptions.generateMipMaps = options.generateMipMaps;
|
|
1364
1374
|
fullOptions.type = options.type === undefined ? 0 : options.type;
|
|
1365
1375
|
fullOptions.samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;
|
|
1366
1376
|
fullOptions.format = options.format === undefined ? 5 : options.format;
|
|
1367
|
-
fullOptions.samples = options.samples
|
|
1368
|
-
fullOptions.creationFlags = options.creationFlags
|
|
1369
|
-
fullOptions.useSRGBBuffer = options.useSRGBBuffer
|
|
1377
|
+
fullOptions.samples = (_a = options.samples) !== null && _a !== void 0 ? _a : 1;
|
|
1378
|
+
fullOptions.creationFlags = (_b = options.creationFlags) !== null && _b !== void 0 ? _b : 0;
|
|
1379
|
+
fullOptions.useSRGBBuffer = (_c = options.useSRGBBuffer) !== null && _c !== void 0 ? _c : false;
|
|
1370
1380
|
}
|
|
1371
1381
|
else {
|
|
1372
1382
|
fullOptions.generateMipMaps = options;
|
|
@@ -1437,14 +1447,15 @@ export class WebGPUEngine extends Engine {
|
|
|
1437
1447
|
*/
|
|
1438
1448
|
createTexture(url, noMipmap, invertY, scene, samplingMode = 3, onLoad = null, onError = null, buffer = null, fallback = null, format = null, forcedExtension = null, mimeType, loaderOptions, creationFlags, useSRGBBuffer) {
|
|
1439
1449
|
return this._createTextureBase(url, noMipmap, invertY, scene, samplingMode, onLoad, onError, (texture, extension, scene, img, invertY, noMipmap, isCompressed, processFunction) => {
|
|
1450
|
+
var _a;
|
|
1440
1451
|
const imageBitmap = img; // we will never get an HTMLImageElement in WebGPU
|
|
1441
1452
|
texture.baseWidth = imageBitmap.width;
|
|
1442
1453
|
texture.baseHeight = imageBitmap.height;
|
|
1443
1454
|
texture.width = imageBitmap.width;
|
|
1444
1455
|
texture.height = imageBitmap.height;
|
|
1445
|
-
texture.format = format
|
|
1456
|
+
texture.format = format !== null && format !== void 0 ? format : -1;
|
|
1446
1457
|
processFunction(texture.width, texture.height, imageBitmap, extension, texture, () => { });
|
|
1447
|
-
if (!texture._hardwareTexture
|
|
1458
|
+
if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
|
|
1448
1459
|
// the texture could have been created before reaching this point so don't recreate it if already existing
|
|
1449
1460
|
const gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, imageBitmap.width, imageBitmap.height, undefined, creationFlags);
|
|
1450
1461
|
if (WebGPUTextureHelper.IsImageBitmap(imageBitmap)) {
|
|
@@ -1485,8 +1496,9 @@ export class WebGPUEngine extends Engine {
|
|
|
1485
1496
|
throw new Error("wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.");
|
|
1486
1497
|
}
|
|
1487
1498
|
generateMipMapsForCubemap(texture) {
|
|
1499
|
+
var _a;
|
|
1488
1500
|
if (texture.generateMipMaps) {
|
|
1489
|
-
const gpuTexture = texture._hardwareTexture
|
|
1501
|
+
const gpuTexture = (_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource;
|
|
1490
1502
|
if (!gpuTexture) {
|
|
1491
1503
|
this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
1492
1504
|
}
|
|
@@ -1547,7 +1559,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1547
1559
|
* @internal
|
|
1548
1560
|
*/
|
|
1549
1561
|
_setInternalTexture(name, texture, baseName) {
|
|
1550
|
-
baseName = baseName
|
|
1562
|
+
baseName = baseName !== null && baseName !== void 0 ? baseName : name;
|
|
1551
1563
|
if (this._currentEffect) {
|
|
1552
1564
|
const webgpuPipelineContext = this._currentEffect._pipelineContext;
|
|
1553
1565
|
const availableTexture = webgpuPipelineContext.shaderProcessingContext.availableTextures[baseName];
|
|
@@ -1587,7 +1599,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1587
1599
|
// Else, name is something like 'myTexture0' / 'myTexture1' / ... and baseName is 'myTexture'
|
|
1588
1600
|
// baseName is used to look up the texture in the shaderProcessingContext.availableTextures map
|
|
1589
1601
|
// name is used to look up the texture in the _currentMaterialContext.textures map
|
|
1590
|
-
baseName = baseName
|
|
1602
|
+
baseName = baseName !== null && baseName !== void 0 ? baseName : name;
|
|
1591
1603
|
if (this._currentEffect) {
|
|
1592
1604
|
if (!texture) {
|
|
1593
1605
|
this._currentMaterialContext.setTexture(name, null);
|
|
@@ -1687,8 +1699,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1687
1699
|
// try as much as possible to use the command encoder corresponding to the current pass.
|
|
1688
1700
|
// If not possible (because the pass is started - generateMipmaps itself creates a pass and it's not allowed to have a pass inside a pass), use _uploadEncoder
|
|
1689
1701
|
commandEncoder =
|
|
1690
|
-
commandEncoder
|
|
1691
|
-
(this._currentRenderTarget && !this._currentRenderPass ? this._renderTargetEncoder : !this._currentRenderPass ? this._renderEncoder : this._uploadEncoder);
|
|
1702
|
+
commandEncoder !== null && commandEncoder !== void 0 ? commandEncoder : (this._currentRenderTarget && !this._currentRenderPass ? this._renderTargetEncoder : !this._currentRenderPass ? this._renderEncoder : this._uploadEncoder);
|
|
1692
1703
|
const format = texture._hardwareTexture.format;
|
|
1693
1704
|
const mipmapCount = WebGPUTextureHelper.ComputeNumMipmapLevels(texture.width, texture.height);
|
|
1694
1705
|
if (this.dbgVerboseLogsForFirstFrames) {
|
|
@@ -1719,8 +1730,9 @@ export class WebGPUEngine extends Engine {
|
|
|
1719
1730
|
* @param generateMipMaps defines whether to generate mipmaps or not
|
|
1720
1731
|
*/
|
|
1721
1732
|
updateTextureData(texture, imageData, xOffset, yOffset, width, height, faceIndex = 0, lod = 0, generateMipMaps = false) {
|
|
1733
|
+
var _a;
|
|
1722
1734
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
1723
|
-
if (!texture._hardwareTexture
|
|
1735
|
+
if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
|
|
1724
1736
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
1725
1737
|
}
|
|
1726
1738
|
const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
|
|
@@ -1733,8 +1745,9 @@ export class WebGPUEngine extends Engine {
|
|
|
1733
1745
|
* @internal
|
|
1734
1746
|
*/
|
|
1735
1747
|
_uploadCompressedDataToTextureDirectly(texture, internalFormat, width, height, imageData, faceIndex = 0, lod = 0) {
|
|
1748
|
+
var _a;
|
|
1736
1749
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
1737
|
-
if (!texture._hardwareTexture
|
|
1750
|
+
if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
|
|
1738
1751
|
texture.format = internalFormat;
|
|
1739
1752
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
|
|
1740
1753
|
}
|
|
@@ -1745,12 +1758,13 @@ export class WebGPUEngine extends Engine {
|
|
|
1745
1758
|
* @internal
|
|
1746
1759
|
*/
|
|
1747
1760
|
_uploadDataToTextureDirectly(texture, imageData, faceIndex = 0, lod = 0, babylonInternalFormat, useTextureWidthAndHeight = false) {
|
|
1761
|
+
var _a;
|
|
1748
1762
|
const lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);
|
|
1749
1763
|
const lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);
|
|
1750
1764
|
const width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));
|
|
1751
1765
|
const height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));
|
|
1752
1766
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
1753
|
-
if (!texture._hardwareTexture
|
|
1767
|
+
if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
|
|
1754
1768
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
|
|
1755
1769
|
}
|
|
1756
1770
|
const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
|
|
@@ -1766,8 +1780,9 @@ export class WebGPUEngine extends Engine {
|
|
|
1766
1780
|
* @internal
|
|
1767
1781
|
*/
|
|
1768
1782
|
_uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {
|
|
1783
|
+
var _a;
|
|
1769
1784
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
1770
|
-
if (!texture._hardwareTexture
|
|
1785
|
+
if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
|
|
1771
1786
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
1772
1787
|
}
|
|
1773
1788
|
const bitmap = image; // in WebGPU we will always get an ImageBitmap, not an HTMLImageElement
|
|
@@ -1921,13 +1936,14 @@ export class WebGPUEngine extends Engine {
|
|
|
1921
1936
|
// Render Pass
|
|
1922
1937
|
//------------------------------------------------------------------------------
|
|
1923
1938
|
_startRenderTargetRenderPass(renderTargetWrapper, setClearStates, clearColor, clearDepth, clearStencil) {
|
|
1939
|
+
var _a, _b, _c;
|
|
1924
1940
|
const rtWrapper = renderTargetWrapper;
|
|
1925
1941
|
const depthStencilTexture = rtWrapper._depthStencilTexture;
|
|
1926
|
-
const gpuDepthStencilWrapper = depthStencilTexture
|
|
1927
|
-
const gpuDepthStencilTexture = gpuDepthStencilWrapper
|
|
1928
|
-
const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper
|
|
1929
|
-
const depthTextureView = gpuDepthStencilTexture
|
|
1930
|
-
const depthMSAATextureView = gpuDepthStencilMSAATexture
|
|
1942
|
+
const gpuDepthStencilWrapper = depthStencilTexture === null || depthStencilTexture === void 0 ? void 0 : depthStencilTexture._hardwareTexture;
|
|
1943
|
+
const gpuDepthStencilTexture = gpuDepthStencilWrapper === null || gpuDepthStencilWrapper === void 0 ? void 0 : gpuDepthStencilWrapper.underlyingResource;
|
|
1944
|
+
const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper === null || gpuDepthStencilWrapper === void 0 ? void 0 : gpuDepthStencilWrapper.msaaTexture;
|
|
1945
|
+
const depthTextureView = gpuDepthStencilTexture === null || gpuDepthStencilTexture === void 0 ? void 0 : gpuDepthStencilTexture.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
|
|
1946
|
+
const depthMSAATextureView = gpuDepthStencilMSAATexture === null || gpuDepthStencilMSAATexture === void 0 ? void 0 : gpuDepthStencilMSAATexture.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
|
|
1931
1947
|
const depthTextureHasStencil = gpuDepthStencilWrapper ? WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format) : false;
|
|
1932
1948
|
const colorAttachments = [];
|
|
1933
1949
|
if (this.useReverseDepthBuffer) {
|
|
@@ -1944,8 +1960,8 @@ export class WebGPUEngine extends Engine {
|
|
|
1944
1960
|
for (let i = 0; i < this._mrtAttachments.length; ++i) {
|
|
1945
1961
|
const index = this._mrtAttachments[i]; // if index == 0 it means the texture should not be written to => at render pass creation time, it means we should not clear it
|
|
1946
1962
|
const mrtTexture = rtWrapper.textures[i];
|
|
1947
|
-
const gpuMRTWrapper = mrtTexture
|
|
1948
|
-
const gpuMRTTexture = gpuMRTWrapper
|
|
1963
|
+
const gpuMRTWrapper = mrtTexture === null || mrtTexture === void 0 ? void 0 : mrtTexture._hardwareTexture;
|
|
1964
|
+
const gpuMRTTexture = gpuMRTWrapper === null || gpuMRTWrapper === void 0 ? void 0 : gpuMRTWrapper.underlyingResource;
|
|
1949
1965
|
if (gpuMRTWrapper && gpuMRTTexture) {
|
|
1950
1966
|
const viewDescriptor = {
|
|
1951
1967
|
...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
|
|
@@ -1953,7 +1969,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1953
1969
|
};
|
|
1954
1970
|
const gpuMSAATexture = gpuMRTWrapper.msaaTexture;
|
|
1955
1971
|
const colorTextureView = gpuMRTTexture.createView(viewDescriptor);
|
|
1956
|
-
const colorMSAATextureView = gpuMSAATexture
|
|
1972
|
+
const colorMSAATextureView = gpuMSAATexture === null || gpuMSAATexture === void 0 ? void 0 : gpuMSAATexture.createView(viewDescriptor);
|
|
1957
1973
|
colorAttachments.push({
|
|
1958
1974
|
view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
|
|
1959
1975
|
resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
|
|
@@ -1974,7 +1990,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1974
1990
|
const gpuTexture = gpuWrapper.underlyingResource;
|
|
1975
1991
|
const gpuMSAATexture = gpuWrapper.msaaTexture;
|
|
1976
1992
|
const colorTextureView = gpuTexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
|
|
1977
|
-
const colorMSAATextureView = gpuMSAATexture
|
|
1993
|
+
const colorMSAATextureView = gpuMSAATexture === null || gpuMSAATexture === void 0 ? void 0 : gpuMSAATexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
|
|
1978
1994
|
colorAttachments.push({
|
|
1979
1995
|
view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
|
|
1980
1996
|
resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
|
|
@@ -1987,7 +2003,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1987
2003
|
colorAttachments.push(null);
|
|
1988
2004
|
}
|
|
1989
2005
|
}
|
|
1990
|
-
this._debugPushGroup
|
|
2006
|
+
(_a = this._debugPushGroup) === null || _a === void 0 ? void 0 : _a.call(this, "render target pass", 1);
|
|
1991
2007
|
this._rttRenderPassWrapper.renderPassDescriptor = {
|
|
1992
2008
|
colorAttachments,
|
|
1993
2009
|
depthStencilAttachment: depthStencilTexture && gpuDepthStencilTexture
|
|
@@ -2005,7 +2021,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2005
2021
|
stencilStoreOp: !depthTextureHasStencil ? undefined : WebGPUConstants.StoreOp.Store,
|
|
2006
2022
|
}
|
|
2007
2023
|
: undefined,
|
|
2008
|
-
occlusionQuerySet: this._occlusionQuery
|
|
2024
|
+
occlusionQuerySet: ((_b = this._occlusionQuery) === null || _b === void 0 ? void 0 : _b.hasQueries) ? this._occlusionQuery.querySet : undefined,
|
|
2009
2025
|
};
|
|
2010
2026
|
this._rttRenderPassWrapper.renderPass = this._renderTargetEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor);
|
|
2011
2027
|
if (this.dbgVerboseLogsForFirstFrames) {
|
|
@@ -2018,7 +2034,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2018
2034
|
}
|
|
2019
2035
|
}
|
|
2020
2036
|
this._currentRenderPass = this._rttRenderPassWrapper.renderPass;
|
|
2021
|
-
this._debugFlushPendingCommands
|
|
2037
|
+
(_c = this._debugFlushPendingCommands) === null || _c === void 0 ? void 0 : _c.call(this);
|
|
2022
2038
|
this._resetCurrentViewport(1);
|
|
2023
2039
|
this._resetCurrentScissor(1);
|
|
2024
2040
|
this._resetCurrentStencilRef(1);
|
|
@@ -2029,8 +2045,9 @@ export class WebGPUEngine extends Engine {
|
|
|
2029
2045
|
}
|
|
2030
2046
|
/** @internal */
|
|
2031
2047
|
_endRenderTargetRenderPass() {
|
|
2048
|
+
var _a, _b, _c, _d;
|
|
2032
2049
|
if (this._currentRenderPass) {
|
|
2033
|
-
const gpuWrapper = this._currentRenderTarget.texture
|
|
2050
|
+
const gpuWrapper = (_a = this._currentRenderTarget.texture) === null || _a === void 0 ? void 0 : _a._hardwareTexture;
|
|
2034
2051
|
if (gpuWrapper && !this._snapshotRendering.endRenderTargetPass(this._currentRenderPass, gpuWrapper) && !this.compatibilityMode) {
|
|
2035
2052
|
this._bundleListRenderTarget.run(this._currentRenderPass);
|
|
2036
2053
|
this._bundleListRenderTarget.reset();
|
|
@@ -2041,10 +2058,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2041
2058
|
this._count = 0;
|
|
2042
2059
|
}
|
|
2043
2060
|
if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
|
|
2044
|
-
console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", this._currentRenderTarget
|
|
2061
|
+
console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (_c = (_b = this._currentRenderTarget) === null || _b === void 0 ? void 0 : _b.texture) === null || _c === void 0 ? void 0 : _c.uniqueId);
|
|
2045
2062
|
}
|
|
2046
2063
|
}
|
|
2047
|
-
this._debugPopGroup
|
|
2064
|
+
(_d = this._debugPopGroup) === null || _d === void 0 ? void 0 : _d.call(this, 1);
|
|
2048
2065
|
this._resetCurrentViewport(1);
|
|
2049
2066
|
this._resetCurrentScissor(1);
|
|
2050
2067
|
this._resetCurrentStencilRef(1);
|
|
@@ -2068,6 +2085,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2068
2085
|
return this._currentRenderPass === null ? -1 : this._currentRenderPass === this._mainRenderPassWrapper.renderPass ? 0 : 1;
|
|
2069
2086
|
}
|
|
2070
2087
|
_startMainRenderPass(setClearStates, clearColor, clearDepth, clearStencil) {
|
|
2088
|
+
var _a, _b, _c;
|
|
2071
2089
|
if (this._mainRenderPassWrapper.renderPass) {
|
|
2072
2090
|
this._endMainRenderPass();
|
|
2073
2091
|
}
|
|
@@ -2091,7 +2109,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2091
2109
|
: mustClearStencil
|
|
2092
2110
|
? WebGPUConstants.LoadOp.Clear
|
|
2093
2111
|
: WebGPUConstants.LoadOp.Load;
|
|
2094
|
-
this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery
|
|
2112
|
+
this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = ((_a = this._occlusionQuery) === null || _a === void 0 ? void 0 : _a.hasQueries) ? this._occlusionQuery.querySet : undefined;
|
|
2095
2113
|
this._swapChainTexture = this._context.getCurrentTexture();
|
|
2096
2114
|
this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(this._swapChainTexture);
|
|
2097
2115
|
// Resolve in case of MSAA
|
|
@@ -2109,10 +2127,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2109
2127
|
console.log("frame #" + this._count + " - main begin pass - texture width=" + this._mainTextureExtends.width, " height=" + this._mainTextureExtends.height, this._mainRenderPassWrapper.renderPassDescriptor);
|
|
2110
2128
|
}
|
|
2111
2129
|
}
|
|
2112
|
-
this._debugPushGroup
|
|
2130
|
+
(_b = this._debugPushGroup) === null || _b === void 0 ? void 0 : _b.call(this, "main pass", 0);
|
|
2113
2131
|
this._currentRenderPass = this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor);
|
|
2114
2132
|
this._mainRenderPassWrapper.renderPass = this._currentRenderPass;
|
|
2115
|
-
this._debugFlushPendingCommands
|
|
2133
|
+
(_c = this._debugFlushPendingCommands) === null || _c === void 0 ? void 0 : _c.call(this);
|
|
2116
2134
|
this._resetCurrentViewport(0);
|
|
2117
2135
|
this._resetCurrentScissor(0);
|
|
2118
2136
|
this._resetCurrentStencilRef(0);
|
|
@@ -2122,6 +2140,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2122
2140
|
}
|
|
2123
2141
|
}
|
|
2124
2142
|
_endMainRenderPass() {
|
|
2143
|
+
var _a;
|
|
2125
2144
|
if (this._mainRenderPassWrapper.renderPass !== null) {
|
|
2126
2145
|
this._snapshotRendering.endMainRenderPass();
|
|
2127
2146
|
if (!this.compatibilityMode && !this._snapshotRendering.play) {
|
|
@@ -2137,7 +2156,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2137
2156
|
console.log("frame #" + this._count + " - main end pass");
|
|
2138
2157
|
}
|
|
2139
2158
|
}
|
|
2140
|
-
this._debugPopGroup
|
|
2159
|
+
(_a = this._debugPopGroup) === null || _a === void 0 ? void 0 : _a.call(this, 0);
|
|
2141
2160
|
this._resetCurrentViewport(0);
|
|
2142
2161
|
this._resetCurrentScissor(0);
|
|
2143
2162
|
this._resetCurrentStencilRef(0);
|
|
@@ -2159,7 +2178,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2159
2178
|
* @param layer defines the 2d array index to bind to frame buffer to
|
|
2160
2179
|
*/
|
|
2161
2180
|
bindFramebuffer(texture, faceIndex = 0, requiredWidth, requiredHeight, forceFullscreenViewport, lodLevel = 0, layer = 0) {
|
|
2162
|
-
|
|
2181
|
+
var _a, _b;
|
|
2182
|
+
const hardwareTexture = (_a = texture.texture) === null || _a === void 0 ? void 0 : _a._hardwareTexture;
|
|
2163
2183
|
if (this._currentRenderTarget) {
|
|
2164
2184
|
this.unBindFramebuffer(this._currentRenderTarget);
|
|
2165
2185
|
}
|
|
@@ -2196,7 +2216,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2196
2216
|
this._count = 0;
|
|
2197
2217
|
}
|
|
2198
2218
|
if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
|
|
2199
|
-
console.log("frame #" + this._count + " - bindFramebuffer called - internalTexture.uniqueId=", texture.texture
|
|
2219
|
+
console.log("frame #" + this._count + " - bindFramebuffer called - internalTexture.uniqueId=", (_b = texture.texture) === null || _b === void 0 ? void 0 : _b.uniqueId, "face=", faceIndex, "lodLevel=", lodLevel, "layer=", layer, this._rttRenderPassWrapper.colorAttachmentViewDescriptor, this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
|
|
2200
2220
|
}
|
|
2201
2221
|
}
|
|
2202
2222
|
this._currentRenderPass = null; // lazy creation of the render pass, hoping the render pass will be created by a call to clear()...
|
|
@@ -2231,6 +2251,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2231
2251
|
* @param onBeforeUnbind defines a function which will be called before the effective unbind
|
|
2232
2252
|
*/
|
|
2233
2253
|
unBindFramebuffer(texture, disableGenerateMipMaps = false, onBeforeUnbind) {
|
|
2254
|
+
var _a, _b;
|
|
2234
2255
|
const saveCRT = this._currentRenderTarget;
|
|
2235
2256
|
this._currentRenderTarget = null; // to be iso with thinEngine, this._currentRenderTarget must be null when onBeforeUnbind is called
|
|
2236
2257
|
if (onBeforeUnbind) {
|
|
@@ -2240,7 +2261,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2240
2261
|
if (this._currentRenderPass && this._currentRenderPass !== this._mainRenderPassWrapper.renderPass) {
|
|
2241
2262
|
this._endRenderTargetRenderPass();
|
|
2242
2263
|
}
|
|
2243
|
-
if (texture.texture
|
|
2264
|
+
if (((_a = texture.texture) === null || _a === void 0 ? void 0 : _a.generateMipMaps) && !disableGenerateMipMaps && !texture.isCube) {
|
|
2244
2265
|
this._generateMipmaps(texture.texture);
|
|
2245
2266
|
}
|
|
2246
2267
|
this._currentRenderTarget = null;
|
|
@@ -2250,7 +2271,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2250
2271
|
this._count = 0;
|
|
2251
2272
|
}
|
|
2252
2273
|
if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
|
|
2253
|
-
console.log("frame #" + this._count + " - unBindFramebuffer called - internalTexture.uniqueId=", texture.texture
|
|
2274
|
+
console.log("frame #" + this._count + " - unBindFramebuffer called - internalTexture.uniqueId=", (_b = texture.texture) === null || _b === void 0 ? void 0 : _b.uniqueId);
|
|
2254
2275
|
}
|
|
2255
2276
|
}
|
|
2256
2277
|
this._mrtAttachments = [];
|
|
@@ -2286,7 +2307,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2286
2307
|
* @internal
|
|
2287
2308
|
*/
|
|
2288
2309
|
_setColorFormat(wrapper) {
|
|
2289
|
-
|
|
2310
|
+
var _a, _b;
|
|
2311
|
+
const format = (_b = (_a = wrapper.colorAttachmentGPUTextures[0]) === null || _a === void 0 ? void 0 : _a.format) !== null && _b !== void 0 ? _b : null;
|
|
2290
2312
|
this._cacheRenderPipeline.setColorFormat(format);
|
|
2291
2313
|
if (this._colorFormat === format) {
|
|
2292
2314
|
return;
|
|
@@ -2320,12 +2342,13 @@ export class WebGPUEngine extends Engine {
|
|
|
2320
2342
|
* @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)
|
|
2321
2343
|
*/
|
|
2322
2344
|
setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {
|
|
2345
|
+
var _a, _b;
|
|
2323
2346
|
// Culling
|
|
2324
2347
|
if (this._depthCullingState.cull !== culling || force) {
|
|
2325
2348
|
this._depthCullingState.cull = culling;
|
|
2326
2349
|
}
|
|
2327
2350
|
// Cull face
|
|
2328
|
-
const cullFace = this.cullBackFaces
|
|
2351
|
+
const cullFace = ((_b = (_a = this.cullBackFaces) !== null && _a !== void 0 ? _a : cullBackFaces) !== null && _b !== void 0 ? _b : true) ? 1 : 2;
|
|
2329
2352
|
if (this._depthCullingState.cullFace !== cullFace || force) {
|
|
2330
2353
|
this._depthCullingState.cullFace = cullFace;
|
|
2331
2354
|
}
|
|
@@ -2340,6 +2363,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2340
2363
|
this._stencilStateComposer.stencilMaterial = stencil;
|
|
2341
2364
|
}
|
|
2342
2365
|
_applyRenderPassChanges(renderPass, bundleList) {
|
|
2366
|
+
var _a;
|
|
2343
2367
|
const mustUpdateViewport = this._mustUpdateViewport(renderPass);
|
|
2344
2368
|
const mustUpdateScissor = this._mustUpdateScissor(renderPass);
|
|
2345
2369
|
const mustUpdateStencilRef = !this._stencilStateComposer.enabled ? false : this._mustUpdateStencilRef(renderPass);
|
|
@@ -2352,7 +2376,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2352
2376
|
bundleList.addItem(new WebGPURenderItemScissor(this._scissorCached.x, this._scissorCached.y, this._scissorCached.z, this._scissorCached.w));
|
|
2353
2377
|
}
|
|
2354
2378
|
if (mustUpdateStencilRef) {
|
|
2355
|
-
bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef
|
|
2379
|
+
bundleList.addItem(new WebGPURenderItemStencilRef((_a = this._stencilStateComposer.funcRef) !== null && _a !== void 0 ? _a : 0));
|
|
2356
2380
|
}
|
|
2357
2381
|
if (mustUpdateBlendColor) {
|
|
2358
2382
|
bundleList.addItem(new WebGPURenderItemBlendColor(this._alphaState._blendConstants.slice()));
|
|
@@ -2374,6 +2398,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2374
2398
|
}
|
|
2375
2399
|
}
|
|
2376
2400
|
_draw(drawType, fillMode, start, count, instancesCount) {
|
|
2401
|
+
var _a;
|
|
2377
2402
|
const renderPass = this._getCurrentRenderPass();
|
|
2378
2403
|
const renderPassIndex = this._getCurrentRenderPassIndex();
|
|
2379
2404
|
const bundleList = renderPassIndex === 0 ? this._bundleList : this._bundleListRenderTarget;
|
|
@@ -2413,8 +2438,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2413
2438
|
let bitVal = 1;
|
|
2414
2439
|
for (let i = 0; i < webgpuPipelineContext.shaderProcessingContext.textureNames.length; ++i) {
|
|
2415
2440
|
const textureName = webgpuPipelineContext.shaderProcessingContext.textureNames[i];
|
|
2416
|
-
const texture = this._currentMaterialContext.textures[textureName]
|
|
2417
|
-
if (texture
|
|
2441
|
+
const texture = (_a = this._currentMaterialContext.textures[textureName]) === null || _a === void 0 ? void 0 : _a.texture;
|
|
2442
|
+
if ((texture === null || texture === void 0 ? void 0 : texture.type) === 1) {
|
|
2418
2443
|
textureState |= bitVal;
|
|
2419
2444
|
}
|
|
2420
2445
|
bitVal = bitVal << 1;
|
|
@@ -2502,9 +2527,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2502
2527
|
* Dispose and release all associated resources
|
|
2503
2528
|
*/
|
|
2504
2529
|
dispose() {
|
|
2505
|
-
|
|
2506
|
-
this.
|
|
2507
|
-
this.
|
|
2530
|
+
var _a, _b, _c;
|
|
2531
|
+
(_a = this._mainTexture) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
2532
|
+
(_b = this._mainTextureLastCopy) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
2533
|
+
(_c = this._depthTexture) === null || _c === void 0 ? void 0 : _c.destroy();
|
|
2508
2534
|
super.dispose();
|
|
2509
2535
|
}
|
|
2510
2536
|
//------------------------------------------------------------------------------
|