@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5
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/dist/global/blue/BlueClasses.js +200 -0
- package/dist/global/blue/BlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueClasses.js +79 -0
- package/dist/global/blue/IBlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
- package/dist/global/blue/blue.js +8 -2
- package/dist/global/blue/blue.js.map +1 -1
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/consts/index.js +0 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/renderContext/formats.js +26 -25
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
- package/dist/global/imageio/BitmapDimensions.js.map +1 -0
- package/dist/global/imageio/Cutout.js +28 -0
- package/dist/global/imageio/Cutout.js.map +1 -0
- package/dist/global/imageio/HostBitmap.js +1106 -0
- package/dist/global/imageio/HostBitmap.js.map +1 -0
- package/dist/global/imageio/ImageIOResult.js +99 -0
- package/dist/global/imageio/ImageIOResult.js.map +1 -0
- package/dist/global/imageio/ImageUtility.js +205 -0
- package/dist/global/imageio/ImageUtility.js.map +1 -0
- package/dist/global/imageio/LoadParameters.js +86 -0
- package/dist/global/imageio/LoadParameters.js.map +1 -0
- package/dist/global/imageio/Metadata.js +22 -0
- package/dist/global/imageio/Metadata.js.map +1 -0
- package/dist/global/imageio/index.js +8 -0
- package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
- package/dist/global/index.js +2 -1
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/color.js +1 -1
- package/dist/global/math/color.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +8 -0
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +47 -7
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +37 -0
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/format/CjsByteWriter.js +46 -46
- package/dist/resource/format/CjsByteWriter.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +7 -8
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatStore.js +8 -8
- package/dist/resource/format/CjsFormatStore.js.map +1 -1
- package/dist/resource/format/CjsGeometryFormat.js +114 -0
- package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
- package/dist/resource/format/CjsImageFormat.js +282 -0
- package/dist/resource/format/CjsImageFormat.js.map +1 -0
- package/dist/resource/format/CjsResourceProbe.js +12 -48
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/CjsStringTable.js +37 -37
- package/dist/resource/format/CjsStringTable.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +3 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
- package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +1 -3
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/constants.js +1 -2
- package/dist/resource/formats/cmf/core/constants.js.map +1 -1
- package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
- package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
- package/dist/resource/formats/cmf/core/helpers.js +13 -13
- package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/core/writer.js +24 -24
- package/dist/resource/formats/cmf/core/writer.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +125 -40
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
- package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
- package/dist/resource/formats/dxbc/core/decoder.js +2 -2
- package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +3 -3
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
- package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
- package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -12
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
- package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
- package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +3 -5
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
- package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +3 -5
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +3 -5
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +5 -113
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +40 -15
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +4 -6
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/red/CjsRedFormat.js +22 -28
- package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
- package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +5 -19
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +3 -5
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +3 -5
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
- package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
- package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
- package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +3 -5
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +35 -35
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -3
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
- package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/resource/imageio/ImageIO.js +142 -0
- package/dist/resource/imageio/ImageIO.js.map +1 -0
- package/dist/resource/imageio/index.js +17 -0
- package/dist/resource/imageio/index.js.map +1 -0
- package/dist/resource/index.js +7 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
- package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +100 -68
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +151 -29
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +7 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/registerTextureResources.js +83 -0
- package/dist/resource/texture/registerTextureResources.js.map +1 -0
- package/dist/resource/texture/solidColorTexture.js +10 -19
- package/dist/resource/texture/solidColorTexture.js.map +1 -1
- package/dist/sof/EveSOF.js +39 -7
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
- package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
- package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
- package/dist/trinity/core/Tr2RenderUtils.js +1 -1
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
- package/dist/trinity/core/Tr2TextureReference.js +114 -0
- package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
- package/dist/trinity/core/procedural/gradientTexture.js +10 -13
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +102 -50
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +242 -234
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +57 -16
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/index.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +3 -3
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
- package/dist/trinityal/index.js +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +1 -0
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/global/reference/classes/README.md +90 -0
- package/docs/resource/concepts/format-capabilities.md +3 -3
- package/docs/resource/formats/README.md +1 -1
- package/docs/resource/reference/classes/core.md +31 -1
- package/docs/resource/reference/classes/formats.md +7 -7
- package/docs/resource/reference/classes/resources.md +76 -16
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
- package/docs/trinityal/reference/classes/README.md +0 -10
- package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
- package/package.json +4 -3
- package/dist/global/consts/webgpu/index.js +0 -2
- package/dist/global/consts/webgpu/textureFormats.js +0 -180
- package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
- package/dist/resource/formats/dxbc/core/container.js.map +0 -1
- package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
- package/dist/resource/formats/dxbc/core/program.js.map +0 -1
- package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
- package/dist/resource/formats/stl/core/targets.js.map +0 -1
- package/dist/resource/formats/webgl/core/errors.js.map +0 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
- package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
- package/dist/resource/texture/texturePipelineBehavior.js +0 -332
- package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
- package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
|
@@ -5,7 +5,6 @@ import { asUint8Array, readU16LE } from '#utils/bytes';
|
|
|
5
5
|
const OUTPUT_IMAGE = "image";
|
|
6
6
|
const OUTPUT_RGBA = "rgba";
|
|
7
7
|
const OUTPUT_RAW = "raw";
|
|
8
|
-
const OUTPUT_JSON = "json";
|
|
9
8
|
const DEFAULT_VALUES = Object.freeze({
|
|
10
9
|
emit: OUTPUT_RAW,
|
|
11
10
|
inputType: "",
|
|
@@ -44,8 +43,7 @@ function normalizeInputType(inputType) {
|
|
|
44
43
|
/** Normalizes the requested output representation for the TGA format reader. */
|
|
45
44
|
function normalizeEmit(emit, inputType, readerName) {
|
|
46
45
|
if (emit === undefined || emit === null) return OUTPUT_RAW;
|
|
47
|
-
if (
|
|
48
|
-
if ([OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
|
|
46
|
+
if ([OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW].includes(emit)) return emit;
|
|
49
47
|
if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
|
|
50
48
|
throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
|
|
51
49
|
}
|
|
@@ -135,7 +133,7 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
|
135
133
|
bytes
|
|
136
134
|
};
|
|
137
135
|
}
|
|
138
|
-
if (values.emit ===
|
|
136
|
+
if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
|
|
139
137
|
return metadata;
|
|
140
138
|
}
|
|
141
139
|
if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === "tga") {
|
|
@@ -311,5 +309,5 @@ function throwUnsupported(metadata, message) {
|
|
|
311
309
|
throw error;
|
|
312
310
|
}
|
|
313
311
|
|
|
314
|
-
export { DEFAULT_VALUES, OUTPUT_IMAGE,
|
|
312
|
+
export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues };
|
|
315
313
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/tga/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isTGA, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isTGA };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\n/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`}\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"tga\" ? inspectTGA(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\n\n\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","rawVariant","toUpperCase","format","some","v","confidence","preferredOutput","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","identifyImageBytes","inspectTGA","foreignImageRecord","descriptor","colorMapEntryBytes","Math","ceil","colorMapBytes","readU16LE","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","max","width","height","channels","imageType","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","pixelFormat","isCompressed","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","Uint8Array","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","offset","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/tga/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isTGA, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isTGA };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\n/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`}\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"tga\" ? inspectTGA(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\n\n\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","rawVariant","toUpperCase","format","some","v","confidence","preferredOutput","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","identifyImageBytes","inspectTGA","foreignImageRecord","descriptor","colorMapEntryBytes","Math","ceil","colorMapBytes","readU16LE","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","max","width","height","channels","imageType","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","pixelFormat","isCompressed","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","Uint8Array","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","offset","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { asUint8Array } from '#utils/bytes';
|
|
2
2
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, readAsyncWithValues, inspectWithValues, probeSupportWithValues, isVTA
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, readAsyncWithValues, inspectWithValues, probeSupportWithValues, isVTA } from './core/helpers.js';
|
|
4
4
|
import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
|
|
5
5
|
|
|
6
6
|
const FORMAT_NAME = "CjsVtaFormat";
|
|
@@ -16,7 +16,7 @@ const FORMAT_NAME = "CjsVtaFormat";
|
|
|
16
16
|
* frame 0 - the profile's defaults select exactly that frame.
|
|
17
17
|
*/
|
|
18
18
|
class CjsVtaFormat extends CjsFormat {
|
|
19
|
-
|
|
19
|
+
_values = DEFAULT_VALUES;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Create a reusable VTA format profile.
|
|
@@ -35,7 +35,7 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
35
35
|
* @returns {CjsVtaFormat} This format profile.
|
|
36
36
|
*/
|
|
37
37
|
SetValues(options = {}) {
|
|
38
|
-
this
|
|
38
|
+
this._values = normalizeValues(this._values, options, FORMAT_NAME);
|
|
39
39
|
return this;
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -46,7 +46,7 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
46
46
|
* @returns {object} Normalized read values.
|
|
47
47
|
*/
|
|
48
48
|
GetValues(options = {}) {
|
|
49
|
-
return normalizeValues(this
|
|
49
|
+
return normalizeValues(this._values, options, FORMAT_NAME);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -161,22 +161,15 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
161
161
|
* Grid payload encodings. Rle7/Rle7_5/Rle6 differ only in the encoder's
|
|
162
162
|
* quantization; one decoder serves all three.
|
|
163
163
|
*/
|
|
164
|
-
static Encoding = VTA_ENCODING;
|
|
165
164
|
|
|
166
165
|
/** The only VTA container version Carbon ever wrote. */
|
|
167
|
-
static VERSION = VTA_VERSION;
|
|
168
166
|
|
|
169
167
|
/**
|
|
170
168
|
* Emit targets for this format (canonical frozen enum).
|
|
171
169
|
*/
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
JSON: OUTPUT_JSON
|
|
176
|
-
});
|
|
177
|
-
static OUTPUT_VTA_JSON = OUTPUT_VTA_JSON;
|
|
178
|
-
static id = "vta";
|
|
179
|
-
static mediaTypes = Object.freeze(["image"]);
|
|
170
|
+
|
|
171
|
+
static id = "CjsVtaFormat";
|
|
172
|
+
static mediaTypes = ["image"];
|
|
180
173
|
static outputs = CjsFormat.defineOutputs({
|
|
181
174
|
volume: {
|
|
182
175
|
decoded: true,
|
|
@@ -193,7 +186,7 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
193
186
|
passthrough: true
|
|
194
187
|
}
|
|
195
188
|
});
|
|
196
|
-
static extensions =
|
|
189
|
+
static extensions = [".vta"];
|
|
197
190
|
}
|
|
198
191
|
|
|
199
192
|
export { CjsVtaFormat };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsVtaFormat.js","sources":["../../../../../src/resource/formats/vta/CjsVtaFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VOLUME,\n OUTPUT_VTA_JSON,\n VTA_ENCODING,\n VTA_VERSION,\n inspectWithValues,\n isVTA,\n normalizeValues,\n probeSupportWithValues,\n readAsyncWithValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsVtaFormat\";\n\n/**\n * VTA format profile - Carbon's Volume Texture Animation container.\n *\n * Reads `.vta` bytes into raw, structural debug JSON, or decoded R8 volume\n * payloads (per grid, per frame). Volume decode is asynchronous because\n * every frame blob is zlib-compressed and inflates through\n * DecompressionStream; `Read` serves the synchronous targets and points\n * volume callers at `ReadAsync`. Carbon's static texture path is grid 0 /\n * frame 0 - the profile's defaults select exactly that frame.\n */\nexport class CjsVtaFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable VTA format profile.\n *\n * @param {object} [options] Default read options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsVtaFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, options, FORMAT_NAME);\n }\n\n /**\n * Read VTA bytes with this profile - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read VTA bytes asynchronously with this profile, including volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readAsyncWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect VTA bytes without decoding any payload.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n Inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot VTA read - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous VTA read, including decoded volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readAsyncWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot VTA inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n static inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * One-shot VTA support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input)\n {\n return probeSupportWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a version-1 VTA file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the signature and version match.\n */\n static isVTA(input)\n {\n try\n {\n return isVTA(asUint8Array(input, \"VTA input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Grid payload encodings. Rle7/Rle7_5/Rle6 differ only in the encoder's\n * quantization; one decoder serves all three.\n */\n static Encoding = VTA_ENCODING;\n\n /** The only VTA container version Carbon ever wrote. */\n static VERSION = VTA_VERSION;\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n VOLUME: OUTPUT_VOLUME,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n\n static OUTPUT_VTA_JSON = OUTPUT_VTA_JSON;\n\n static id = \"vta\";\n\n static mediaTypes = Object.freeze([ \"image\" ]);\n\n static outputs = CjsFormat.defineOutputs({\n\n volume: { decoded: true, readMode: \"async\", probes: [ \"volume\" ] },\n\n vtaJson: { role: \"debug\", probes: [ \"vtaJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = Object.freeze([ \".vta\" ]);\n}\n\nexport default CjsVtaFormat;\n"],"names":["FORMAT_NAME","CjsVtaFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","readAsyncWithValues","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isVTA","asUint8Array","Encoding","VTA_ENCODING","VERSION","VTA_VERSION","Output","Object","freeze","VOLUME","OUTPUT_VOLUME","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_VTA_JSON","id","mediaTypes","outputs","defineOutputs","volume","decoded","readMode","probes","vtaJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsVtaFormat.js","sources":["../../../../../src/resource/formats/vta/CjsVtaFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VOLUME,\n OUTPUT_VTA_JSON,\n VTA_ENCODING,\n VTA_VERSION,\n inspectWithValues,\n isVTA,\n normalizeValues,\n probeSupportWithValues,\n readAsyncWithValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsVtaFormat\";\n\n/**\n * VTA format profile - Carbon's Volume Texture Animation container.\n *\n * Reads `.vta` bytes into raw, structural debug JSON, or decoded R8 volume\n * payloads (per grid, per frame). Volume decode is asynchronous because\n * every frame blob is zlib-compressed and inflates through\n * DecompressionStream; `Read` serves the synchronous targets and points\n * volume callers at `ReadAsync`. Carbon's static texture path is grid 0 /\n * frame 0 - the profile's defaults select exactly that frame.\n */\nexport class CjsVtaFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /**\n * Create a reusable VTA format profile.\n *\n * @param {object} [options] Default read options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsVtaFormat} This format profile.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this._values, options, FORMAT_NAME);\n }\n\n /**\n * Read VTA bytes with this profile - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read VTA bytes asynchronously with this profile, including volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readAsyncWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect VTA bytes without decoding any payload.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n Inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot VTA read - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous VTA read, including decoded volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readAsyncWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot VTA inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n static inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * One-shot VTA support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input)\n {\n return probeSupportWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a version-1 VTA file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the signature and version match.\n */\n static isVTA(input)\n {\n try\n {\n return isVTA(asUint8Array(input, \"VTA input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Grid payload encodings. Rle7/Rle7_5/Rle6 differ only in the encoder's\n * quantization; one decoder serves all three.\n */\n\n /** The only VTA container version Carbon ever wrote. */\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n\n\n static id = \"CjsVtaFormat\";\n\n static mediaTypes = [ \"image\" ];\n\n static outputs = CjsFormat.defineOutputs({\n\n volume: { decoded: true, readMode: \"async\", probes: [ \"volume\" ] },\n\n vtaJson: { role: \"debug\", probes: [ \"vtaJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = [ \".vta\" ];\n}\n\nexport default CjsVtaFormat;\n"],"names":["FORMAT_NAME","CjsVtaFormat","CjsFormat","_values","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","readAsyncWithValues","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isVTA","asUint8Array","id","mediaTypes","outputs","defineOutputs","volume","decoded","readMode","probes","vtaJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { asUint8Array } from '#utils/bytes';
|
|
2
2
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, probeSupportWithValues, isWAV
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, probeSupportWithValues, isWAV } from './core/helpers.js';
|
|
4
4
|
import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
|
|
5
5
|
|
|
6
6
|
const FORMAT_NAME = "CjsWavFormat";
|
|
@@ -11,7 +11,7 @@ const FORMAT_NAME = "CjsWavFormat";
|
|
|
11
11
|
* JSON output.
|
|
12
12
|
*/
|
|
13
13
|
class CjsWavFormat extends CjsFormat {
|
|
14
|
-
|
|
14
|
+
_values = DEFAULT_VALUES;
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Create a reusable WAV format profile.
|
|
@@ -30,7 +30,7 @@ class CjsWavFormat extends CjsFormat {
|
|
|
30
30
|
* @returns {CjsWavFormat} This format profile.
|
|
31
31
|
*/
|
|
32
32
|
SetValues(options = {}) {
|
|
33
|
-
this
|
|
33
|
+
this._values = normalizeValues(this._values, {
|
|
34
34
|
inputType: "wav",
|
|
35
35
|
...options
|
|
36
36
|
}, FORMAT_NAME);
|
|
@@ -44,7 +44,7 @@ class CjsWavFormat extends CjsFormat {
|
|
|
44
44
|
* @returns {object} Normalized read values.
|
|
45
45
|
*/
|
|
46
46
|
GetValues(options = {}) {
|
|
47
|
-
return normalizeValues(this
|
|
47
|
+
return normalizeValues(this._values, {
|
|
48
48
|
inputType: "wav",
|
|
49
49
|
...options
|
|
50
50
|
}, FORMAT_NAME);
|
|
@@ -173,15 +173,8 @@ class CjsWavFormat extends CjsFormat {
|
|
|
173
173
|
/**
|
|
174
174
|
* Emit targets for this format (canonical frozen enum).
|
|
175
175
|
*/
|
|
176
|
-
static
|
|
177
|
-
|
|
178
|
-
PCM: OUTPUT_PCM,
|
|
179
|
-
RAW: OUTPUT_RAW,
|
|
180
|
-
JSON: OUTPUT_JSON
|
|
181
|
-
});
|
|
182
|
-
static OUTPUT_WAV_JSON = "wavJson";
|
|
183
|
-
static id = "wav";
|
|
184
|
-
static mediaTypes = Object.freeze(["audio"]);
|
|
176
|
+
static id = "CjsWavFormat";
|
|
177
|
+
static mediaTypes = ["audio"];
|
|
185
178
|
static outputs = CjsFormat.defineOutputs({
|
|
186
179
|
audio: {
|
|
187
180
|
decoded: true,
|
|
@@ -200,7 +193,7 @@ class CjsWavFormat extends CjsFormat {
|
|
|
200
193
|
passthrough: true
|
|
201
194
|
}
|
|
202
195
|
});
|
|
203
|
-
static extensions =
|
|
196
|
+
static extensions = [".wav"];
|
|
204
197
|
}
|
|
205
198
|
|
|
206
199
|
export { CjsWavFormat };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsWavFormat.js","sources":["../../../../../src/resource/formats/wav/CjsWavFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n probeSupportWithValues,\n isWAV,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWavFormat\";\n\n/**\n * WAV audio format profile that inspects RIFF chunk metadata and reads\n * supported WAV bytes into PCM or audio payloads, alongside raw and debug\n * JSON output.\n */\nexport class CjsWavFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WAV format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsWavFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WAV bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Read WAV bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WAV bytes without decoding sample data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} RIFF/WAVE metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot asynchronous WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWavFormat.read(input, options);\n }\n\n /**\n * One-shot WAV inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} RIFF/WAVE metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot WAV support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a WAV file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WAV bytes.\n * @returns {boolean} True when RIFF/WAVE signatures are present.\n */\n static isWAV(input)\n {\n try\n {\n return isWAV(asUint8Array(input, \"Audio input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n AUDIO: OUTPUT_AUDIO,\n PCM: OUTPUT_PCM,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_WAV_JSON = \"wavJson\";\n static id = \"wav\";\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static outputs = CjsFormat.defineOutputs({\n audio: { decoded: true, probes: [ \"audio\", \"pcm\" ] },\n pcm: { decoded: true },\n wavJson: { role: \"debug\", probes: [ \"wavJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".wav\" ]);\n}\n\nexport default CjsWavFormat;\n"],"names":["FORMAT_NAME","CjsWavFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isWAV","asUint8Array","Output","Object","freeze","AUDIO","OUTPUT_AUDIO","PCM","OUTPUT_PCM","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_WAV_JSON","id","mediaTypes","outputs","defineOutputs","audio","decoded","probes","pcm","wavJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsWavFormat.js","sources":["../../../../../src/resource/formats/wav/CjsWavFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n probeSupportWithValues,\n isWAV,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWavFormat\";\n\n/**\n * WAV audio format profile that inspects RIFF chunk metadata and reads\n * supported WAV bytes into PCM or audio payloads, alongside raw and debug\n * JSON output.\n */\nexport class CjsWavFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WAV format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsWavFormat} This format profile.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this._values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WAV bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Read WAV bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WAV bytes without decoding sample data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} RIFF/WAVE metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot asynchronous WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWavFormat.read(input, options);\n }\n\n /**\n * One-shot WAV inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} RIFF/WAVE metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot WAV support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a WAV file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WAV bytes.\n * @returns {boolean} True when RIFF/WAVE signatures are present.\n */\n static isWAV(input)\n {\n try\n {\n return isWAV(asUint8Array(input, \"Audio input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static id = \"CjsWavFormat\";\n static mediaTypes = [ \"audio\" ];\n static outputs = CjsFormat.defineOutputs({\n audio: { decoded: true, probes: [ \"audio\", \"pcm\" ] },\n pcm: { decoded: true },\n wavJson: { role: \"debug\", probes: [ \"wavJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = [ \".wav\" ];\n}\n\nexport default CjsWavFormat;\n"],"names":["FORMAT_NAME","CjsWavFormat","CjsFormat","_values","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isWAV","asUint8Array","id","mediaTypes","outputs","defineOutputs","audio","decoded","probes","pcm","wavJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { asUint8Array, readFourCc, readU32LE, readU16LE } from '#utils/bytes';
|
|
|
3
3
|
const OUTPUT_AUDIO = "audio";
|
|
4
4
|
const OUTPUT_PCM = "pcm";
|
|
5
5
|
const OUTPUT_RAW = "raw";
|
|
6
|
-
const OUTPUT_JSON = "json";
|
|
7
6
|
const DEFAULT_VALUES = Object.freeze({
|
|
8
7
|
emit: OUTPUT_RAW,
|
|
9
8
|
inputType: "",
|
|
@@ -37,8 +36,7 @@ function normalizeInputType(inputType) {
|
|
|
37
36
|
/** Normalizes the requested output representation for the WAV format reader. */
|
|
38
37
|
function normalizeEmit(emit, inputType, readerName) {
|
|
39
38
|
if (emit === undefined || emit === null) return OUTPUT_RAW;
|
|
40
|
-
if (
|
|
41
|
-
if ([OUTPUT_AUDIO, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
|
|
39
|
+
if ([OUTPUT_AUDIO, OUTPUT_PCM, OUTPUT_RAW].includes(emit)) return emit;
|
|
42
40
|
if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
|
|
43
41
|
throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
|
|
44
42
|
}
|
|
@@ -122,7 +120,7 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
|
122
120
|
bytes
|
|
123
121
|
};
|
|
124
122
|
}
|
|
125
|
-
if (values.emit ===
|
|
123
|
+
if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;
|
|
126
124
|
if ((values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO) && metadata.sourceFormat === "wav") {
|
|
127
125
|
return readWavPcm(bytes, metadata, values.emit);
|
|
128
126
|
}
|
|
@@ -322,5 +320,5 @@ function channelLayoutFromMask(mask, channels) {
|
|
|
322
320
|
return layout.length === channels ? layout : layout.length ? layout : "unspecified";
|
|
323
321
|
}
|
|
324
322
|
|
|
325
|
-
export { DEFAULT_VALUES, OUTPUT_AUDIO,
|
|
323
|
+
export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_PCM, OUTPUT_RAW, inspectBytes, inspectWithValues, isMP3, isWAV, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues };
|
|
326
324
|
//# sourceMappingURL=helpers.js.map
|