@onerjs/core 9.0.2 → 9.0.4
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/Buffers/buffer.pure.js +4 -0
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/camera.pure.d.ts +14 -0
- package/Cameras/camera.pure.js +15 -0
- package/Cameras/camera.pure.js.map +1 -1
- package/Compute/computeShader.pure.d.ts +2 -1
- package/Compute/computeShader.pure.js +29 -10
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/ray.core.js +22 -9
- package/Culling/ray.core.js.map +1 -1
- package/Engines/IDrawContext.d.ts +2 -0
- package/Engines/IDrawContext.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +55 -4
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +1 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +5 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderCodeInliner.d.ts +2 -0
- package/Engines/Processors/shaderCodeInliner.js +251 -6
- package/Engines/Processors/shaderCodeInliner.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +10 -1
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.debugging.pure.js +12 -0
- package/Engines/WebGPU/Extensions/engine.debugging.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +0 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.pure.js +5 -0
- package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +7 -0
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheTextureView.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheTextureView.js +20 -8
- package/Engines/WebGPU/webgpuCacheTextureView.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +2 -0
- package/Engines/WebGPU/webgpuDrawContext.js +6 -0
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.d.ts +3 -3
- package/Engines/WebGPU/webgpuQuerySet.js +23 -9
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderPassCommandStream.d.ts +156 -0
- package/Engines/WebGPU/webgpuRenderPassCommandStream.js +323 -0
- package/Engines/WebGPU/webgpuRenderPassCommandStream.js.map +1 -0
- package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +4 -3
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.d.ts +3 -1
- package/Engines/WebGPU/webgpuTimestampQuery.js +9 -6
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +2 -0
- package/Engines/abstractEngine.pure.js +14 -5
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +6 -0
- package/Engines/constants.js +6 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +198 -24
- package/Engines/pure.d.ts +1 -0
- package/Engines/pure.js +1 -0
- package/Engines/pure.js.map +1 -1
- package/Engines/renderCommandBatcher.pure.d.ts +16 -0
- package/Engines/renderCommandBatcher.pure.js +24 -0
- package/Engines/renderCommandBatcher.pure.js.map +1 -0
- package/Engines/thinEngine.functions.js +3 -2
- package/Engines/thinEngine.functions.js.map +1 -1
- package/Engines/thinEngine.pure.js +18 -2
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +10 -7
- package/Engines/thinNativeEngine.pure.js +117 -46
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/thinWebGPUEngine.d.ts +8 -0
- package/Engines/thinWebGPUEngine.js +11 -0
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +60 -1
- package/Engines/webgpuEngine.pure.js +238 -42
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Audio/flowGraphGetSoundVolumeBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Data/Audio/flowGraphGetSoundVolumeBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Data/Audio/flowGraphGetSoundVolumeBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Audio/flowGraphIsSoundPlayingBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Data/Audio/flowGraphIsSoundPlayingBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Data/Audio/flowGraphIsSoundPlayingBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.d.ts +5 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.js +8 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.pure.d.ts +77 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.pure.js +141 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshIntersectionEventBlock.pure.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphSoundEndedEventBlock.pure.d.ts +5 -3
- package/FlowGraph/Blocks/Event/flowGraphSoundEndedEventBlock.pure.js +38 -7
- package/FlowGraph/Blocks/Event/flowGraphSoundEndedEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/index.d.ts +1 -0
- package/FlowGraph/Blocks/Event/index.js +1 -0
- package/FlowGraph/Blocks/Event/index.js.map +1 -1
- package/FlowGraph/Blocks/Event/pure.d.ts +1 -0
- package/FlowGraph/Blocks/Event/pure.js +1 -0
- package/FlowGraph/Blocks/Event/pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPauseSoundBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPauseSoundBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPauseSoundBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlaySoundBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlaySoundBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlaySoundBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphSetSoundVolumeBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Execution/Audio/flowGraphSetSoundVolumeBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphSetSoundVolumeBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopSoundBlock.pure.d.ts +3 -3
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopSoundBlock.pure.js +2 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopSoundBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/allBlocks.pure.js +2 -0
- package/FlowGraph/Blocks/allBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.js +2 -0
- package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +1 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js +1 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +12 -1
- package/FlowGraph/flowGraph.js +38 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +44 -0
- package/FlowGraph/flowGraphCoordinator.js +141 -0
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.js +41 -14
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +105 -5
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphSoundAssets.d.ts +40 -0
- package/FlowGraph/flowGraphSoundAssets.js +33 -0
- package/FlowGraph/flowGraphSoundAssets.js.map +1 -0
- package/FlowGraph/index.d.ts +1 -0
- package/FlowGraph/index.js +1 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/pure.d.ts +1 -0
- package/FlowGraph/pure.js +1 -0
- package/FlowGraph/pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +8 -0
- package/FlowGraph/serialization.js +31 -12
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +25 -0
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/taaTask.js +2 -0
- package/FrameGraph/Tasks/PostProcesses/taaTask.js.map +1 -1
- package/Instrumentation/engineInstrumentation.d.ts +1 -0
- package/Instrumentation/engineInstrumentation.js +25 -6
- package/Instrumentation/engineInstrumentation.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +2 -0
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +36 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +202 -27
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -1
- package/Lights/directionalLight.pure.d.ts +24 -10
- package/Lights/directionalLight.pure.js +29 -11
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +1 -1
- package/Loading/sceneLoader.js +1 -1
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +4 -4
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.pure.js +4 -0
- package/Materials/Node/Blocks/Input/inputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.d.ts +9 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +23 -3
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.js +1 -1
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +9 -0
- package/Materials/PBR/pbrBaseMaterial.pure.js +60 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +11 -0
- package/Materials/PBR/pbrBaseSimpleMaterial.js +21 -2
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +12 -0
- package/Materials/PBR/pbrMaterial.pure.js +23 -3
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -0
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +10 -0
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +5 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +7 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -1
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +9 -3
- package/Materials/Textures/HTML/htmlInteractionManager.js +64 -5
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -1
- package/Materials/Textures/HTML/htmlTexture.d.ts +11 -11
- package/Materials/Textures/HTML/htmlTexture.js +106 -65
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -1
- package/Materials/Textures/Loaders/internalTextureLoader.d.ts +2 -1
- package/Materials/Textures/Loaders/internalTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +2 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +4 -50
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +10 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +6 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/ktx2encoderTypes.d.ts +51 -0
- package/Materials/Textures/ktx2encoderTypes.js +2 -0
- package/Materials/Textures/ktx2encoderTypes.js.map +1 -0
- package/Materials/Textures/renderTargetTexture.pure.js +10 -2
- package/Materials/Textures/renderTargetTexture.pure.js.map +1 -1
- package/Materials/Textures/textureMerger.d.ts +11 -0
- package/Materials/Textures/textureMerger.js +34 -19
- package/Materials/Textures/textureMerger.js.map +1 -1
- package/Materials/Textures/textureProcessor.d.ts +145 -0
- package/Materials/Textures/textureProcessor.js +445 -45
- package/Materials/Textures/textureProcessor.js.map +1 -1
- package/Materials/Textures/textureSampling.functions.d.ts +41 -0
- package/Materials/Textures/textureSampling.functions.js +82 -0
- package/Materials/Textures/textureSampling.functions.js.map +1 -0
- package/Materials/drawWrapper.d.ts +8 -0
- package/Materials/drawWrapper.js +19 -0
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.pure.d.ts +6 -0
- package/Materials/effect.pure.js +28 -6
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/effect.webgl.functions.pure.js +1 -1
- package/Materials/effect.webgl.functions.pure.js.map +1 -1
- package/Materials/material.pure.d.ts +5 -0
- package/Materials/material.pure.js +9 -2
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialFlags.d.ts +6 -0
- package/Materials/materialFlags.js +14 -0
- package/Materials/materialFlags.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +2 -1
- package/Materials/materialHelper.functions.js +36 -2
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.js +19 -16
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +12 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/prePassConfiguration.js +19 -16
- package/Materials/prePassConfiguration.js.map +1 -1
- package/Materials/shaderMaterial.pure.js +19 -6
- package/Materials/shaderMaterial.pure.js.map +1 -1
- package/Materials/shadowDepthWrapper.d.ts +6 -0
- package/Materials/shadowDepthWrapper.js +17 -0
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Meshes/Compression/dracoCodec.d.ts +14 -0
- package/Meshes/Compression/dracoCodec.js +22 -0
- package/Meshes/Compression/dracoCodec.js.map +1 -1
- package/Meshes/Compression/dracoDecoder.d.ts +1 -0
- package/Meshes/Compression/dracoDecoder.js +27 -0
- package/Meshes/Compression/dracoDecoder.js.map +1 -1
- package/Meshes/Compression/dracoEncoder.d.ts +1 -0
- package/Meshes/Compression/dracoEncoder.js +8 -0
- package/Meshes/Compression/dracoEncoder.js.map +1 -1
- package/Meshes/Compression/meshoptCompression.d.ts +1 -0
- package/Meshes/Compression/meshoptCompression.js +9 -0
- package/Meshes/Compression/meshoptCompression.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingGpuSorter.d.ts +415 -0
- package/Meshes/GaussianSplatting/gaussianSplattingGpuSorter.js +912 -0
- package/Meshes/GaussianSplatting/gaussianSplattingGpuSorter.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +3 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +40 -9
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +112 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +696 -74
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +12 -4
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.d.ts +5 -0
- package/Meshes/geometry.js +25 -0
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/index.d.ts +1 -0
- package/Meshes/index.js +1 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/mesh.pure.d.ts +7 -0
- package/Meshes/mesh.pure.js +18 -13
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/pure.d.ts +1 -0
- package/Meshes/pure.js +1 -0
- package/Meshes/pure.js.map +1 -1
- package/Meshes/subMesh.pure.d.ts +3 -0
- package/Meshes/subMesh.pure.js +26 -0
- package/Meshes/subMesh.pure.js.map +1 -1
- package/Meshes/thinInstanceMesh.pure.js +5 -3
- package/Meshes/thinInstanceMesh.pure.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/khronosTextureContainer2.d.ts +3 -2
- package/Misc/khronosTextureContainer2.js +24 -6
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/khronosTextureContainer2Encoder.d.ts +166 -0
- package/Misc/khronosTextureContainer2Encoder.js +556 -0
- package/Misc/khronosTextureContainer2Encoder.js.map +1 -0
- package/Misc/khronosTextureContainer2EncoderWorker.d.ts +61 -0
- package/Misc/khronosTextureContainer2EncoderWorker.js +55 -0
- package/Misc/khronosTextureContainer2EncoderWorker.js.map +1 -0
- package/Misc/pure.d.ts +1 -0
- package/Misc/pure.js +1 -0
- package/Misc/pure.js.map +1 -1
- package/Misc/textureFormat.functions.d.ts +6 -0
- package/Misc/textureFormat.functions.js +54 -0
- package/Misc/textureFormat.functions.js.map +1 -0
- package/Misc/textureTools.d.ts +6 -2
- package/Misc/textureTools.js +100 -42
- package/Misc/textureTools.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.d.ts +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +6 -3
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/computeShaderParticleSystem.pure.js +5 -0
- package/Particles/computeShaderParticleSystem.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +2 -0
- package/Particles/gpuParticleSystem.pure.js +25 -1
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/solidParticle.d.ts +5 -0
- package/Particles/solidParticle.js +5 -0
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +10 -0
- package/Particles/solidParticleSystem.js +72 -13
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +4 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaMaterialManager.pure.d.ts +27 -6
- package/PostProcesses/RenderPipeline/Pipelines/taaMaterialManager.pure.js +60 -5
- package/PostProcesses/RenderPipeline/Pipelines/taaMaterialManager.pure.js.map +1 -1
- package/PostProcesses/thinTAAPostProcess.d.ts +1 -0
- package/PostProcesses/thinTAAPostProcess.js +17 -1
- package/PostProcesses/thinTAAPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.d.ts +2 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +6 -5
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +2 -3
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.js +8 -2
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +1 -0
- package/Rendering/objectRenderer.js +14 -0
- package/Rendering/objectRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +2 -2
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +5 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +2 -2
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js +1 -1
- package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +6 -0
- package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +11 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +9 -0
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +7 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -0
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +12 -0
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +3 -0
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/geometry.vertex.js +6 -6
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/lod.fragment.js +15 -2
- package/Shaders/lod.fragment.js.map +1 -1
- package/Shaders/lod3D.fragment.js +15 -2
- package/Shaders/lod3D.fragment.js.map +1 -1
- package/Shaders/lodCube.fragment.js +15 -2
- package/Shaders/lodCube.fragment.js.map +1 -1
- package/Shaders/openpbr.vertex.js +2 -0
- package/Shaders/openpbr.vertex.js.map +1 -1
- package/Shaders/pbr.fragment.js +12 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +2 -0
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/textureMerger.fragment.js +28 -0
- package/Shaders/textureMerger.fragment.js.map +1 -1
- package/Shaders/textureProcessor.fragment.js +26 -4
- package/Shaders/textureProcessor.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +44 -2
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +17 -3
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +12 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +11 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +9 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrClusteredLightingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -0
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +8 -0
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertex.js +2 -2
- package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowsVertex.js +16 -0
- package/ShadersWGSL/ShadersInclude/shadowsVertex.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +4 -4
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/default.vertex.js +1 -1
- package/ShadersWGSL/default.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +3 -3
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/ShadersWGSL/gsSortCount.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortCount.compute.js +19 -0
- package/ShadersWGSL/gsSortCount.compute.js.map +1 -0
- package/ShadersWGSL/gsSortKeys.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortKeys.compute.js +49 -0
- package/ShadersWGSL/gsSortKeys.compute.js.map +1 -0
- package/ShadersWGSL/gsSortOutput.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortOutput.compute.js +28 -0
- package/ShadersWGSL/gsSortOutput.compute.js.map +1 -0
- package/ShadersWGSL/gsSortScanLocal.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortScanLocal.compute.js +23 -0
- package/ShadersWGSL/gsSortScanLocal.compute.js.map +1 -0
- package/ShadersWGSL/gsSortScanSums.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortScanSums.compute.js +19 -0
- package/ShadersWGSL/gsSortScanSums.compute.js.map +1 -0
- package/ShadersWGSL/gsSortScatter.compute.d.ts +5 -0
- package/ShadersWGSL/gsSortScatter.compute.js +33 -0
- package/ShadersWGSL/gsSortScatter.compute.js.map +1 -0
- package/ShadersWGSL/lod.fragment.js +14 -2
- package/ShadersWGSL/lod.fragment.js.map +1 -1
- package/ShadersWGSL/lod3D.fragment.js +14 -2
- package/ShadersWGSL/lod3D.fragment.js.map +1 -1
- package/ShadersWGSL/lodCube.fragment.js +14 -2
- package/ShadersWGSL/lodCube.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.vertex.js +3 -1
- package/ShadersWGSL/openpbr.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +11 -0
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.vertex.js +3 -1
- package/ShadersWGSL/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/textureMerger.fragment.js +40 -4
- package/ShadersWGSL/textureMerger.fragment.js.map +1 -1
- package/ShadersWGSL/textureProcessor.fragment.js +26 -4
- package/ShadersWGSL/textureProcessor.fragment.js.map +1 -1
- package/Sprites/spriteRenderer.js +15 -5
- package/Sprites/spriteRenderer.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +23 -1
- package/scene.pure.js +83 -1
- package/scene.pure.js.map +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type _IKTX2EncoderDefaultOptions, type IKTX2EncoderOptions } from "../Materials/Textures/ktx2encoderTypes.js";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export interface IKTX2EncoderInstance {
|
|
4
|
+
_initializeAsync(): Promise<void>;
|
|
5
|
+
encode(rgba: Uint8Array, width: number, height: number, options: IKTX2EncoderOptions): Promise<Uint8Array>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Basis Universal encoder factory, such as the BASIS global defined by basis_encoder.js.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export type _KTX2EncoderBasisFactory = (options: {
|
|
12
|
+
wasmBinary: ArrayBuffer | Uint8Array;
|
|
13
|
+
}) => unknown;
|
|
14
|
+
/** @internal */
|
|
15
|
+
export interface IKTX2EncoderModule {
|
|
16
|
+
KTX2Encoder: {
|
|
17
|
+
new (): IKTX2EncoderInstance;
|
|
18
|
+
JSModule: unknown;
|
|
19
|
+
WasmBinary: ArrayBuffer | null;
|
|
20
|
+
JSModuleURL: string;
|
|
21
|
+
WasmModuleURL: string;
|
|
22
|
+
DefaultEncoderOptions: _IKTX2EncoderDefaultOptions;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** @internal */
|
|
26
|
+
export type KTX2EncoderWorkerRequest = {
|
|
27
|
+
action: "init";
|
|
28
|
+
id: number;
|
|
29
|
+
jsEncoderModuleUrl: string;
|
|
30
|
+
basisJsUrl: string;
|
|
31
|
+
wasmBinary: ArrayBuffer;
|
|
32
|
+
} | {
|
|
33
|
+
action: "setDefaultEncoderOptions";
|
|
34
|
+
options: _IKTX2EncoderDefaultOptions;
|
|
35
|
+
} | {
|
|
36
|
+
action: "encode";
|
|
37
|
+
id: number;
|
|
38
|
+
rgba: Uint8Array;
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
options: IKTX2EncoderOptions;
|
|
42
|
+
};
|
|
43
|
+
/** @internal */
|
|
44
|
+
export type KTX2EncoderWorkerReply = {
|
|
45
|
+
action: "init";
|
|
46
|
+
id: number;
|
|
47
|
+
} | {
|
|
48
|
+
action: "encoded";
|
|
49
|
+
id: number;
|
|
50
|
+
data: Uint8Array;
|
|
51
|
+
} | {
|
|
52
|
+
action: "error";
|
|
53
|
+
id: number;
|
|
54
|
+
message: string;
|
|
55
|
+
fatal?: boolean;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Self-contained worker entry point, serialized into a Blob by the core adapter.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export declare function KTX2EncoderWorkerFunction(): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained worker entry point, serialized into a Blob by the core adapter.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export function KTX2EncoderWorkerFunction() {
|
|
6
|
+
let encoder;
|
|
7
|
+
onmessage = (event) => {
|
|
8
|
+
const request = event.data;
|
|
9
|
+
if (request.action === "setDefaultEncoderOptions") {
|
|
10
|
+
if (typeof KTX2ENCODER !== "undefined") {
|
|
11
|
+
KTX2ENCODER.KTX2Encoder.DefaultEncoderOptions = request.options;
|
|
12
|
+
}
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const fail = (error) => postMessage({ action: "error", id: request.id, message: error instanceof Error ? error.message : String(error), fatal: error instanceof WebAssembly.RuntimeError });
|
|
16
|
+
try {
|
|
17
|
+
if (request.action === "init") {
|
|
18
|
+
if (typeof KTX2ENCODER === "undefined") {
|
|
19
|
+
importScripts(request.jsEncoderModuleUrl);
|
|
20
|
+
}
|
|
21
|
+
if (typeof BASIS === "undefined") {
|
|
22
|
+
importScripts(request.basisJsUrl);
|
|
23
|
+
}
|
|
24
|
+
// Avoid async helpers outside this serialized function in ES2015 bundles.
|
|
25
|
+
KTX2ENCODER.KTX2Encoder.JSModule = BASIS;
|
|
26
|
+
KTX2ENCODER.KTX2Encoder.WasmBinary = request.wasmBinary;
|
|
27
|
+
const initialized = new KTX2ENCODER.KTX2Encoder();
|
|
28
|
+
initialized
|
|
29
|
+
._initializeAsync()
|
|
30
|
+
// eslint-disable-next-line github/no-then
|
|
31
|
+
.then(() => {
|
|
32
|
+
encoder = initialized;
|
|
33
|
+
postMessage({ action: "init", id: request.id });
|
|
34
|
+
})
|
|
35
|
+
// eslint-disable-next-line github/no-then
|
|
36
|
+
.catch(fail);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
if (!encoder) {
|
|
40
|
+
throw new Error("KTX2 encoder worker is not initialized.");
|
|
41
|
+
}
|
|
42
|
+
encoder
|
|
43
|
+
.encode(request.rgba, request.width, request.height, request.options)
|
|
44
|
+
// eslint-disable-next-line github/no-then
|
|
45
|
+
.then((data) => postMessage({ action: "encoded", id: request.id, data }, [data.buffer]))
|
|
46
|
+
// eslint-disable-next-line github/no-then
|
|
47
|
+
.catch(fail);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
fail(error);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=khronosTextureContainer2EncoderWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"khronosTextureContainer2EncoderWorker.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/khronosTextureContainer2EncoderWorker.ts"],"names":[],"mappings":"AA0CA;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACrC,IAAI,OAAyC,CAAC;IAC9C,SAAS,GAAG,CAAC,KAA6C,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;YAChD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;gBACrC,WAAW,CAAC,WAAW,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;YACpE,CAAC;YACD,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QACxK,IAAI,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;oBACrC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC/B,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtC,CAAC;gBACD,0EAA0E;gBAC1E,WAAW,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACzC,WAAW,CAAC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACxD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAClD,WAAW;qBACN,gBAAgB,EAAE;oBACnB,0CAA0C;qBACzC,IAAI,CAAC,GAAG,EAAE;oBACP,OAAO,GAAG,WAAW,CAAC;oBACtB,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,CAAC,CAAC;oBACF,0CAA0C;qBACzC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO;qBACF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;oBACrE,0CAA0C;qBACzC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC,CAAC;oBACvG,0CAA0C;qBACzC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;AACN,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { type _IKTX2EncoderDefaultOptions, type IKTX2EncoderOptions } from \"../Materials/Textures/ktx2encoderTypes\";\n\n/** @internal */\nexport interface IKTX2EncoderInstance {\n _initializeAsync(): Promise<void>;\n encode(rgba: Uint8Array, width: number, height: number, options: IKTX2EncoderOptions): Promise<Uint8Array>;\n}\n\n/**\n * Basis Universal encoder factory, such as the BASIS global defined by basis_encoder.js.\n * @internal\n */\nexport type _KTX2EncoderBasisFactory = (options: { wasmBinary: ArrayBuffer | Uint8Array }) => unknown;\n\n/** @internal */\nexport interface IKTX2EncoderModule {\n KTX2Encoder: {\n new (): IKTX2EncoderInstance;\n JSModule: unknown;\n WasmBinary: ArrayBuffer | null;\n JSModuleURL: string;\n WasmModuleURL: string;\n DefaultEncoderOptions: _IKTX2EncoderDefaultOptions;\n };\n}\n\n/** @internal */\nexport type KTX2EncoderWorkerRequest =\n | { action: \"init\"; id: number; jsEncoderModuleUrl: string; basisJsUrl: string; wasmBinary: ArrayBuffer }\n | { action: \"setDefaultEncoderOptions\"; options: _IKTX2EncoderDefaultOptions }\n | { action: \"encode\"; id: number; rgba: Uint8Array; width: number; height: number; options: IKTX2EncoderOptions };\n\n/** @internal */\nexport type KTX2EncoderWorkerReply =\n { action: \"init\"; id: number } | { action: \"encoded\"; id: number; data: Uint8Array } | { action: \"error\"; id: number; message: string; fatal?: boolean };\n\ndeclare const KTX2ENCODER: IKTX2EncoderModule;\ndeclare const BASIS: unknown;\ndeclare function importScripts(...urls: string[]): void;\ndeclare function postMessage(message: KTX2EncoderWorkerReply, transfer?: Transferable[]): void;\n\n/**\n * Self-contained worker entry point, serialized into a Blob by the core adapter.\n * @internal\n */\nexport function KTX2EncoderWorkerFunction(): void {\n let encoder: IKTX2EncoderInstance | undefined;\n onmessage = (event: MessageEvent<KTX2EncoderWorkerRequest>) => {\n const request = event.data;\n if (request.action === \"setDefaultEncoderOptions\") {\n if (typeof KTX2ENCODER !== \"undefined\") {\n KTX2ENCODER.KTX2Encoder.DefaultEncoderOptions = request.options;\n }\n return;\n }\n const fail = (error: unknown) =>\n postMessage({ action: \"error\", id: request.id, message: error instanceof Error ? error.message : String(error), fatal: error instanceof WebAssembly.RuntimeError });\n try {\n if (request.action === \"init\") {\n if (typeof KTX2ENCODER === \"undefined\") {\n importScripts(request.jsEncoderModuleUrl);\n }\n if (typeof BASIS === \"undefined\") {\n importScripts(request.basisJsUrl);\n }\n // Avoid async helpers outside this serialized function in ES2015 bundles.\n KTX2ENCODER.KTX2Encoder.JSModule = BASIS;\n KTX2ENCODER.KTX2Encoder.WasmBinary = request.wasmBinary;\n const initialized = new KTX2ENCODER.KTX2Encoder();\n initialized\n ._initializeAsync()\n // eslint-disable-next-line github/no-then\n .then(() => {\n encoder = initialized;\n postMessage({ action: \"init\", id: request.id });\n })\n // eslint-disable-next-line github/no-then\n .catch(fail);\n } else {\n if (!encoder) {\n throw new Error(\"KTX2 encoder worker is not initialized.\");\n }\n encoder\n .encode(request.rgba, request.width, request.height, request.options)\n // eslint-disable-next-line github/no-then\n .then((data) => postMessage({ action: \"encoded\", id: request.id, data }, [data.buffer as ArrayBuffer]))\n // eslint-disable-next-line github/no-then\n .catch(fail);\n }\n } catch (error) {\n fail(error);\n }\n };\n}\n"]}
|
package/Misc/pure.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export * from "./depthReducer.js";
|
|
|
53
53
|
export * from "./dataStorage.js";
|
|
54
54
|
export * from "./sceneRecorder.js";
|
|
55
55
|
export * from "./khronosTextureContainer2.js";
|
|
56
|
+
export * from "./khronosTextureContainer2Encoder.js";
|
|
56
57
|
export * from "./trajectoryClassifier.js";
|
|
57
58
|
export * from "./timer.js";
|
|
58
59
|
export * from "./copyTools.js";
|
package/Misc/pure.js
CHANGED
|
@@ -54,6 +54,7 @@ export * from "./depthReducer.js";
|
|
|
54
54
|
export * from "./dataStorage.js";
|
|
55
55
|
export * from "./sceneRecorder.js";
|
|
56
56
|
export * from "./khronosTextureContainer2.js";
|
|
57
|
+
export * from "./khronosTextureContainer2Encoder.js";
|
|
57
58
|
export * from "./trajectoryClassifier.js";
|
|
58
59
|
export * from "./timer.js";
|
|
59
60
|
export * from "./copyTools.js";
|
package/Misc/pure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACxI,cAAc,mBAAmB,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./andOrNotEvaluator\";\nexport * from \"./assetsManager\";\nexport * from \"./basis.pure\";\nexport * from \"./dds.pure\";\nexport * from \"./decorators\";\nexport * from \"./deferred\";\nexport * from \"./environmentTextureTools.pure\";\nexport * from \"./meshExploder\";\nexport * from \"./filesInput\";\nexport * from \"./HighDynamicRange/pure\";\nexport * from \"./khronosTextureContainer\";\nexport * from \"./observable.pure\";\nexport * from \"./observable.extensions.pure\";\nexport * from \"./performanceMonitor\";\nexport * from \"./sceneOptimizer\";\nexport * from \"./sceneSerializer\";\nexport * from \"./shaderImportLoader\";\nexport * from \"./smartArray\";\nexport * from \"./stringDictionary\";\nexport * from \"./tags\";\nexport * from \"./textureTools\";\nexport * from \"./arrayTools\";\nexport * from \"./tga\";\nexport * from \"./tools.pure\";\nexport * from \"./videoRecorder\";\nexport * from \"./virtualJoystick\";\nexport * from \"./workerPool\";\nexport * from \"./logger\";\nexport * from \"./typeStore\";\nexport * from \"./filesInputStore\";\nexport * from \"./deepCopier\";\nexport * from \"./deepMerger\";\nexport * from \"./pivotTools\";\nexport * from \"./precisionDate\";\nexport * from \"./screenshotTools.pure\";\nexport * from \"./webRequest\";\nexport * from \"./iInspectable\";\nexport * from \"./brdfTextureTools\";\nexport * from \"./rgbdTextureTools\";\nexport * from \"./gradients\";\nexport * from \"./perfCounter\";\nexport * from \"./fileRequest\";\nexport * from \"./customAnimationFrameRequester\";\nexport * from \"./retryStrategy\";\nexport * from \"./interfaces/screenshotSize\";\nexport * from \"./interfaces/iPerfViewer\";\nexport * from \"./fileTools.pure\";\nexport * from \"./stringTools\";\nexport * from \"./dataReader\";\nexport * from \"./minMaxReducer.pure\";\nexport * from \"./depthReducer\";\nexport * from \"./dataStorage\";\nexport * from \"./sceneRecorder\";\nexport * from \"./khronosTextureContainer2\";\nexport * from \"./trajectoryClassifier\";\nexport * from \"./timer\";\nexport * from \"./copyTools\";\nexport * from \"./reflector\";\nexport * from \"./domManagement\";\nexport * from \"./pressureObserverWrapper\";\nexport * from \"./PerformanceViewer/pure\";\nexport * from \"./coroutine\";\nexport * from \"./guid\";\nexport * from \"./error\";\nexport * from \"./snapshotRenderingHelper\";\nexport * from \"./observableCoroutine.pure\";\nexport * from \"./copyTextureToTexture\";\nexport * from \"./areaLightsTextureTools\";\nexport { DumpTools, EncodeImageAsync } from \"./dumpTools.pure\";\nexport * from \"./greasedLineTools\";\nexport * from \"./equirectangularCapture.pure\";\nexport * from \"./decorators.serialization\";\nexport * from \"./asyncLock\";\nexport * from \"./bitArray\";\nexport * from \"./urlTools\";\nexport * from \"./lazy\";\nexport * from \"./uniqueIdGenerator\";\nexport { workerFunction as KTX2WorkerFunction, initializeWebWorker as KTX2InitializeWebWorker } from \"./khronosTextureContainer2Worker\";\nexport * from \"./tools.internals\";\n"]}
|
|
1
|
+
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACxI,cAAc,mBAAmB,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./andOrNotEvaluator\";\nexport * from \"./assetsManager\";\nexport * from \"./basis.pure\";\nexport * from \"./dds.pure\";\nexport * from \"./decorators\";\nexport * from \"./deferred\";\nexport * from \"./environmentTextureTools.pure\";\nexport * from \"./meshExploder\";\nexport * from \"./filesInput\";\nexport * from \"./HighDynamicRange/pure\";\nexport * from \"./khronosTextureContainer\";\nexport * from \"./observable.pure\";\nexport * from \"./observable.extensions.pure\";\nexport * from \"./performanceMonitor\";\nexport * from \"./sceneOptimizer\";\nexport * from \"./sceneSerializer\";\nexport * from \"./shaderImportLoader\";\nexport * from \"./smartArray\";\nexport * from \"./stringDictionary\";\nexport * from \"./tags\";\nexport * from \"./textureTools\";\nexport * from \"./arrayTools\";\nexport * from \"./tga\";\nexport * from \"./tools.pure\";\nexport * from \"./videoRecorder\";\nexport * from \"./virtualJoystick\";\nexport * from \"./workerPool\";\nexport * from \"./logger\";\nexport * from \"./typeStore\";\nexport * from \"./filesInputStore\";\nexport * from \"./deepCopier\";\nexport * from \"./deepMerger\";\nexport * from \"./pivotTools\";\nexport * from \"./precisionDate\";\nexport * from \"./screenshotTools.pure\";\nexport * from \"./webRequest\";\nexport * from \"./iInspectable\";\nexport * from \"./brdfTextureTools\";\nexport * from \"./rgbdTextureTools\";\nexport * from \"./gradients\";\nexport * from \"./perfCounter\";\nexport * from \"./fileRequest\";\nexport * from \"./customAnimationFrameRequester\";\nexport * from \"./retryStrategy\";\nexport * from \"./interfaces/screenshotSize\";\nexport * from \"./interfaces/iPerfViewer\";\nexport * from \"./fileTools.pure\";\nexport * from \"./stringTools\";\nexport * from \"./dataReader\";\nexport * from \"./minMaxReducer.pure\";\nexport * from \"./depthReducer\";\nexport * from \"./dataStorage\";\nexport * from \"./sceneRecorder\";\nexport * from \"./khronosTextureContainer2\";\nexport * from \"./khronosTextureContainer2Encoder\";\nexport * from \"./trajectoryClassifier\";\nexport * from \"./timer\";\nexport * from \"./copyTools\";\nexport * from \"./reflector\";\nexport * from \"./domManagement\";\nexport * from \"./pressureObserverWrapper\";\nexport * from \"./PerformanceViewer/pure\";\nexport * from \"./coroutine\";\nexport * from \"./guid\";\nexport * from \"./error\";\nexport * from \"./snapshotRenderingHelper\";\nexport * from \"./observableCoroutine.pure\";\nexport * from \"./copyTextureToTexture\";\nexport * from \"./areaLightsTextureTools\";\nexport { DumpTools, EncodeImageAsync } from \"./dumpTools.pure\";\nexport * from \"./greasedLineTools\";\nexport * from \"./equirectangularCapture.pure\";\nexport * from \"./decorators.serialization\";\nexport * from \"./asyncLock\";\nexport * from \"./bitArray\";\nexport * from \"./urlTools\";\nexport * from \"./lazy\";\nexport * from \"./uniqueIdGenerator\";\nexport { workerFunction as KTX2WorkerFunction, initializeWebWorker as KTX2InitializeWebWorker } from \"./khronosTextureContainer2Worker\";\nexport * from \"./tools.internals\";\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Maps a compressed sRGB format to its linear counterpart, or returns null for other formats.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export function MapSRGBToLinear(format) {
|
|
7
|
+
switch (format) {
|
|
8
|
+
case 35916:
|
|
9
|
+
return 33776;
|
|
10
|
+
case 35918:
|
|
11
|
+
return 33778;
|
|
12
|
+
case 35919:
|
|
13
|
+
return 33779;
|
|
14
|
+
case 37493:
|
|
15
|
+
return 37492;
|
|
16
|
+
case 37497:
|
|
17
|
+
return 37496;
|
|
18
|
+
case 37495:
|
|
19
|
+
return 37494;
|
|
20
|
+
case 37840:
|
|
21
|
+
return 37808;
|
|
22
|
+
case 37841:
|
|
23
|
+
return 37809;
|
|
24
|
+
case 37842:
|
|
25
|
+
return 37810;
|
|
26
|
+
case 37843:
|
|
27
|
+
return 37811;
|
|
28
|
+
case 37844:
|
|
29
|
+
return 37812;
|
|
30
|
+
case 37845:
|
|
31
|
+
return 37813;
|
|
32
|
+
case 37846:
|
|
33
|
+
return 37814;
|
|
34
|
+
case 37847:
|
|
35
|
+
return 37815;
|
|
36
|
+
case 37848:
|
|
37
|
+
return 37816;
|
|
38
|
+
case 37849:
|
|
39
|
+
return 37817;
|
|
40
|
+
case 37850:
|
|
41
|
+
return 37818;
|
|
42
|
+
case 37851:
|
|
43
|
+
return 37819;
|
|
44
|
+
case 37852:
|
|
45
|
+
return 37820;
|
|
46
|
+
case 37853:
|
|
47
|
+
return 37821;
|
|
48
|
+
case 36493:
|
|
49
|
+
return 36492;
|
|
50
|
+
default:
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=textureFormat.functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textureFormat.functions.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/textureFormat.functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC1C,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,2CAA2C;YACtD,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,iDAAiD;YAC5D,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,iDAAiD;YAC5D,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,mCAAmC;YAC9C,OAAO,SAAS,CAAC,kCAAkC,CAAC;QACxD,KAAK,SAAS,CAAC,8CAA8C;YACzD,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,uDAAuD;YAClE,OAAO,SAAS,CAAC,sDAAsD,CAAC;QAC5E,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,kDAAkD;YAC7D,OAAO,SAAS,CAAC,sCAAsC,CAAC;QAC5D,KAAK,SAAS,CAAC,mDAAmD;YAC9D,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,mDAAmD;YAC9D,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,mDAAmD;YAC9D,OAAO,SAAS,CAAC,uCAAuC,CAAC;QAC7D,KAAK,SAAS,CAAC,oDAAoD;YAC/D,OAAO,SAAS,CAAC,wCAAwC,CAAC;QAC9D,KAAK,SAAS,CAAC,oDAAoD;YAC/D,OAAO,SAAS,CAAC,wCAAwC,CAAC;QAC9D,KAAK,SAAS,CAAC,oDAAoD;YAC/D,OAAO,SAAS,CAAC,wCAAwC,CAAC;QAC9D,KAAK,SAAS,CAAC,8CAA8C;YACzD,OAAO,SAAS,CAAC,wCAAwC,CAAC;QAC9D;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC","sourcesContent":["import { Constants } from \"../Engines/constants\";\nimport { type Nullable } from \"../types\";\n\n/**\n * Maps a compressed sRGB format to its linear counterpart, or returns null for other formats.\n * @internal\n */\nexport function MapSRGBToLinear(format: number): Nullable<number> {\n switch (format) {\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n default:\n return null;\n }\n}\n"]}
|
package/Misc/textureTools.d.ts
CHANGED
|
@@ -26,12 +26,15 @@ export declare function CreateResizedCopy(texture: Texture, width: number, heigh
|
|
|
26
26
|
* @returns a promise with the internalTexture having its texture replaced by the result of the processing
|
|
27
27
|
*/
|
|
28
28
|
export declare function ApplyPostProcess(postProcessName: string, internalTexture: InternalTexture, scene: Scene, type?: number, samplingMode?: number, format?: number, width?: number, height?: number): Promise<InternalTexture>;
|
|
29
|
+
/** @internal */
|
|
30
|
+
export declare function _IsCompressedTextureFormat(format: number): boolean;
|
|
29
31
|
/**
|
|
30
32
|
* Waits for when the given texture is ready to be used (downloaded, converted, mip mapped...)
|
|
31
33
|
* @param texture the texture to wait for
|
|
34
|
+
* @param signal optional signal to abort the readiness wait
|
|
32
35
|
* @returns a promise that resolves when the texture is ready
|
|
33
36
|
*/
|
|
34
|
-
export declare function WhenTextureReadyAsync(texture: BaseTexture): Promise<void>;
|
|
37
|
+
export declare function WhenTextureReadyAsync(texture: BaseTexture, signal?: AbortSignal): Promise<void>;
|
|
35
38
|
/**
|
|
36
39
|
* Gets the pixel data of the specified texture, either by reading it directly
|
|
37
40
|
* or by rendering it to an intermediate RGBA texture and retrieving the bytes from it.
|
|
@@ -44,9 +47,10 @@ export declare function WhenTextureReadyAsync(texture: BaseTexture): Promise<voi
|
|
|
44
47
|
* @param lod if the texture has multiple LODs, the lod index to use for the source
|
|
45
48
|
* @param forceRTT if true, forces the use of the RTT path for reading pixels (useful for cube maps to ensure correct orientation and gamma)
|
|
46
49
|
* @param slice if the texture is 3D, the depth slice index to use for the source
|
|
50
|
+
* @param applyGammaCorrection if true (default), converts linear RTT pixels to display gamma and previews single-channel data as grayscale. If false, preserves sampled channel semantics, including undoing hardware sRGB decoding.
|
|
47
51
|
* @returns the 8-bit texture data
|
|
48
52
|
*/
|
|
49
|
-
export declare function GetTextureDataAsync(texture: BaseTexture, width?: number, height?: number, face?: number, lod?: number, forceRTT?: boolean, slice?: number): Promise<Uint8Array>;
|
|
53
|
+
export declare function GetTextureDataAsync(texture: BaseTexture, width?: number, height?: number, face?: number, lod?: number, forceRTT?: boolean, slice?: number, applyGammaCorrection?: boolean): Promise<Uint8Array>;
|
|
50
54
|
/**
|
|
51
55
|
* Class used to host texture specific utilities
|
|
52
56
|
*/
|
package/Misc/textureTools.js
CHANGED
|
@@ -3,9 +3,13 @@ import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture.p
|
|
|
3
3
|
import { PassPostProcess } from "../PostProcesses/passPostProcess.pure.js";
|
|
4
4
|
|
|
5
5
|
import { PostProcess } from "../PostProcesses/postProcess.pure.js";
|
|
6
|
+
import { MapSRGBToLinear } from "./textureFormat.functions.js";
|
|
6
7
|
import { Clamp } from "../Maths/math.scalar.functions.js";
|
|
7
8
|
import { FromHalfFloat, ToHalfFloat } from "./halfFloat.js";
|
|
8
9
|
export { FromHalfFloat, ToHalfFloat };
|
|
10
|
+
const DisplayGamma = 0;
|
|
11
|
+
const PreserveChannels = 1;
|
|
12
|
+
const RestoreHardwareSRGB = 2;
|
|
9
13
|
/**
|
|
10
14
|
* Uses the GPU to create a copy texture rescaled at a given size
|
|
11
15
|
* @param texture Texture to copy from
|
|
@@ -115,8 +119,11 @@ export function ApplyPostProcess(postProcessName, internalTexture, scene, type,
|
|
|
115
119
|
});
|
|
116
120
|
});
|
|
117
121
|
}
|
|
118
|
-
|
|
122
|
+
/** @internal */
|
|
123
|
+
export function _IsCompressedTextureFormat(format) {
|
|
119
124
|
switch (format) {
|
|
125
|
+
case 0x8c00: // COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
126
|
+
case 0x8c02: // COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
120
127
|
case 36492:
|
|
121
128
|
case 36493:
|
|
122
129
|
case 36495:
|
|
@@ -172,31 +179,59 @@ function IsCompressedTextureFormat(format) {
|
|
|
172
179
|
/**
|
|
173
180
|
* Waits for when the given texture is ready to be used (downloaded, converted, mip mapped...)
|
|
174
181
|
* @param texture the texture to wait for
|
|
182
|
+
* @param signal optional signal to abort the readiness wait
|
|
175
183
|
* @returns a promise that resolves when the texture is ready
|
|
176
184
|
*/
|
|
177
|
-
export async function WhenTextureReadyAsync(texture) {
|
|
185
|
+
export async function WhenTextureReadyAsync(texture, signal) {
|
|
186
|
+
signal?.throwIfAborted();
|
|
178
187
|
if (texture.isReady()) {
|
|
179
188
|
return;
|
|
180
189
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const onLoadObservable = texture.onLoadObservable;
|
|
185
|
-
if (onLoadObservable) {
|
|
186
|
-
return await new Promise((res) => onLoadObservable.addOnce(() => res()));
|
|
190
|
+
const internalTexture = texture.getInternalTexture();
|
|
191
|
+
if (texture.loadingError || internalTexture?._loadError) {
|
|
192
|
+
throw new Error(texture.errorObject?.message || internalTexture?._loadError?.message || `Texture ${texture.name} errored while loading.`);
|
|
187
193
|
}
|
|
188
|
-
const
|
|
189
|
-
if (
|
|
190
|
-
|
|
194
|
+
const onLoadObservable = texture.onLoadObservable ?? texture._texture?.onLoadedObservable;
|
|
195
|
+
if (!onLoadObservable) {
|
|
196
|
+
throw new Error(`Cannot determine readiness of texture ${texture.name}.`);
|
|
191
197
|
}
|
|
192
|
-
|
|
198
|
+
await new Promise((resolve, reject) => {
|
|
199
|
+
const cleanup = () => {
|
|
200
|
+
onLoadObservable.removeCallback(onLoad);
|
|
201
|
+
Texture.OnTextureLoadErrorObservable.remove(onError);
|
|
202
|
+
internalTexture?.onErrorObservable.remove(onInternalError ?? null);
|
|
203
|
+
signal?.removeEventListener("abort", onAbort);
|
|
204
|
+
texture.onDisposeObservable.remove(onDispose);
|
|
205
|
+
};
|
|
206
|
+
const fail = (error) => {
|
|
207
|
+
cleanup();
|
|
208
|
+
reject(error);
|
|
209
|
+
};
|
|
210
|
+
const onLoad = () => {
|
|
211
|
+
cleanup();
|
|
212
|
+
resolve();
|
|
213
|
+
};
|
|
214
|
+
const onAbort = () => fail(signal.reason);
|
|
215
|
+
const onError = Texture.OnTextureLoadErrorObservable.add((failedTexture) => {
|
|
216
|
+
if (failedTexture === texture) {
|
|
217
|
+
fail(new Error(texture.errorObject?.message || `Texture ${texture.name} errored while loading.`));
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
const onInternalError = internalTexture?.onErrorObservable.add((error) => fail(new Error(error.message || `Texture ${texture.name} errored while loading.`)));
|
|
221
|
+
const onDispose = texture.onDisposeObservable.add(() => fail(new Error(`Texture ${texture.name} was disposed while waiting for readiness.`)));
|
|
222
|
+
onLoadObservable.addOnce(onLoad);
|
|
223
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
224
|
+
if (signal?.aborted) {
|
|
225
|
+
onAbort();
|
|
226
|
+
}
|
|
227
|
+
});
|
|
193
228
|
}
|
|
194
229
|
/**
|
|
195
230
|
* Gets the data of the specified texture by rendering it to an intermediate RGBA texture and retrieving the bytes from it.
|
|
196
231
|
* This is convienent to get 8-bit RGBA values for a texture in a GPU compressed format, which cannot be read using readPixels.
|
|
197
232
|
* @internal
|
|
198
233
|
*/
|
|
199
|
-
async function ReadPixelsUsingRTT(texture, width, height, face, lod, slice
|
|
234
|
+
async function ReadPixelsUsingRTT(texture, width, height, face, lod, slice, applyGammaCorrection) {
|
|
200
235
|
const scene = texture.getScene();
|
|
201
236
|
const engine = scene.getEngine();
|
|
202
237
|
const sourceInternalTexture = texture.getInternalTexture();
|
|
@@ -250,23 +285,45 @@ async function ReadPixelsUsingRTT(texture, width, height, face, lod, slice = 0)
|
|
|
250
285
|
shaderLanguage: engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,
|
|
251
286
|
});
|
|
252
287
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
288
|
+
let rtt;
|
|
289
|
+
try {
|
|
290
|
+
await new Promise((resolve, reject) => {
|
|
291
|
+
lodPostProcess.onEffectCreatedObservable.addOnce((effect) => {
|
|
292
|
+
const cleanup = () => {
|
|
293
|
+
effect.onCompileObservable.remove(onCompile);
|
|
294
|
+
effect.onErrorObservable.remove(onError);
|
|
295
|
+
};
|
|
296
|
+
const onCompile = effect.onCompileObservable.addOnce(() => {
|
|
297
|
+
cleanup();
|
|
298
|
+
resolve();
|
|
299
|
+
});
|
|
300
|
+
const onError = effect.onErrorObservable.addOnce(() => {
|
|
301
|
+
cleanup();
|
|
302
|
+
reject(new Error(effect.getCompilationError() || "Texture readback shader compilation failed."));
|
|
303
|
+
});
|
|
304
|
+
const compilationError = effect.getCompilationError();
|
|
305
|
+
if (compilationError) {
|
|
306
|
+
cleanup();
|
|
307
|
+
reject(new Error(compilationError));
|
|
308
|
+
}
|
|
309
|
+
else if (effect.isReady()) {
|
|
310
|
+
cleanup();
|
|
311
|
+
resolve();
|
|
312
|
+
}
|
|
257
313
|
});
|
|
258
314
|
});
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
effect.
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
315
|
+
rtt = new RenderTargetTexture("temp", { width: width, height: height }, scene, false);
|
|
316
|
+
lodPostProcess.onApply = function (effect) {
|
|
317
|
+
effect.setTexture("textureSampler", texture);
|
|
318
|
+
effect.setFloat("lod", lod);
|
|
319
|
+
const hardwareSRGB = sourceInternalTexture?._useSRGBBuffer ||
|
|
320
|
+
MapSRGBToLinear(texture.textureFormat) !== null ||
|
|
321
|
+
texture.textureFormat === 35917;
|
|
322
|
+
effect.setInt("gamma", hardwareSRGB ? RestoreHardwareSRGB : !applyGammaCorrection || texture.gammaSpace ? PreserveChannels : DisplayGamma);
|
|
323
|
+
if (is3DTexture) {
|
|
324
|
+
effect.setFloat("slice", slice);
|
|
325
|
+
}
|
|
326
|
+
};
|
|
270
327
|
if (rtt.renderTarget && sourceInternalTexture) {
|
|
271
328
|
const samplingMode = sourceInternalTexture.samplingMode;
|
|
272
329
|
if (lod !== 0) {
|
|
@@ -289,7 +346,7 @@ async function ReadPixelsUsingRTT(texture, width, height, face, lod, slice = 0)
|
|
|
289
346
|
}
|
|
290
347
|
}
|
|
291
348
|
finally {
|
|
292
|
-
rtt
|
|
349
|
+
rtt?.dispose();
|
|
293
350
|
lodPostProcess.dispose();
|
|
294
351
|
}
|
|
295
352
|
}
|
|
@@ -305,9 +362,10 @@ async function ReadPixelsUsingRTT(texture, width, height, face, lod, slice = 0)
|
|
|
305
362
|
* @param lod if the texture has multiple LODs, the lod index to use for the source
|
|
306
363
|
* @param forceRTT if true, forces the use of the RTT path for reading pixels (useful for cube maps to ensure correct orientation and gamma)
|
|
307
364
|
* @param slice if the texture is 3D, the depth slice index to use for the source
|
|
365
|
+
* @param applyGammaCorrection if true (default), converts linear RTT pixels to display gamma and previews single-channel data as grayscale. If false, preserves sampled channel semantics, including undoing hardware sRGB decoding.
|
|
308
366
|
* @returns the 8-bit texture data
|
|
309
367
|
*/
|
|
310
|
-
export async function GetTextureDataAsync(texture, width, height, face = 0, lod = 0, forceRTT = false, slice = 0) {
|
|
368
|
+
export async function GetTextureDataAsync(texture, width, height, face = 0, lod = 0, forceRTT = false, slice = 0, applyGammaCorrection = true) {
|
|
311
369
|
await WhenTextureReadyAsync(texture);
|
|
312
370
|
const internalTexture = texture.getInternalTexture();
|
|
313
371
|
const is3DTexture = texture.is3D || !!internalTexture?.is3D;
|
|
@@ -318,11 +376,11 @@ export async function GetTextureDataAsync(texture, width, height, face = 0, lod
|
|
|
318
376
|
// If we're resizing the texture, we need to use a render target texture.
|
|
319
377
|
// forceRTT can be used to ensure correct orientation and gamma for cube maps.
|
|
320
378
|
// 3D textures must also use RTT because direct readPixels does not expose slice selection.
|
|
321
|
-
if (forceRTT || is3DTexture ||
|
|
379
|
+
if (forceRTT || is3DTexture || _IsCompressedTextureFormat(texture.textureFormat) || targetWidth !== textureWidth || targetHeight !== textureHeight) {
|
|
322
380
|
if (texture.is2DArray) {
|
|
323
381
|
throw new Error(`Reading pixels from 2D array textures with ${forceRTT ? "RTT" : "compression"} is not supported.`);
|
|
324
382
|
}
|
|
325
|
-
return await ReadPixelsUsingRTT(texture, targetWidth, targetHeight, face, lod, slice);
|
|
383
|
+
return await ReadPixelsUsingRTT(texture, targetWidth, targetHeight, face, lod, slice, applyGammaCorrection);
|
|
326
384
|
}
|
|
327
385
|
let data = (await texture.readPixels(face, lod));
|
|
328
386
|
if (!data) {
|
|
@@ -350,21 +408,21 @@ export async function GetTextureDataAsync(texture, width, height, face = 0, lod
|
|
|
350
408
|
for (let pixel = 0, src = 0, dst = 0; pixel < pixelCount; pixel++, dst += 4) {
|
|
351
409
|
const c0 = data[src++];
|
|
352
410
|
if (componentCount === 1) {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
normalizedData[dst
|
|
356
|
-
normalizedData[dst +
|
|
357
|
-
normalizedData[dst +
|
|
411
|
+
const alphaOnly = !applyGammaCorrection && texture.textureFormat === 0;
|
|
412
|
+
const redOnly = !applyGammaCorrection && (texture.textureFormat === 6 || texture.textureFormat === 8);
|
|
413
|
+
normalizedData[dst] = alphaOnly ? 0 : c0;
|
|
414
|
+
normalizedData[dst + 1] = alphaOnly || redOnly ? 0 : c0;
|
|
415
|
+
normalizedData[dst + 2] = alphaOnly || redOnly ? 0 : c0;
|
|
416
|
+
normalizedData[dst + 3] = alphaOnly ? c0 : 255;
|
|
358
417
|
continue;
|
|
359
418
|
}
|
|
360
419
|
const c1 = data[src++];
|
|
361
420
|
if (componentCount === 2) {
|
|
362
|
-
|
|
363
|
-
// so preserve R/G, clear B, and force opaque alpha.
|
|
421
|
+
const luminanceAlpha = !applyGammaCorrection && texture.textureFormat === 2;
|
|
364
422
|
normalizedData[dst] = c0;
|
|
365
|
-
normalizedData[dst + 1] = c1;
|
|
366
|
-
normalizedData[dst + 2] = 0;
|
|
367
|
-
normalizedData[dst + 3] = 255;
|
|
423
|
+
normalizedData[dst + 1] = luminanceAlpha ? c0 : c1;
|
|
424
|
+
normalizedData[dst + 2] = luminanceAlpha ? c0 : 0;
|
|
425
|
+
normalizedData[dst + 3] = luminanceAlpha ? c1 : 255;
|
|
368
426
|
continue;
|
|
369
427
|
}
|
|
370
428
|
// RGB data: append an opaque alpha channel.
|