@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
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/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.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 +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/dds/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decodeBc6h } from \"./bc6h.js\";\nimport { decodeBc7 } from \"./bc7.js\";\n\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 DDS_HEADER_SIZE = 124;\nconst DDS_PIXELFORMAT_OFFSET = 76;\nconst DDS_FOURCC = 0x00000004;\nconst DDS_RGB = 0x00000040;\nconst DDS_ALPHAPIXELS = 0x00000001;\nconst DDS_ALPHA = 0x00000002;\nconst DDS_LUMINANCE = 0x00020000;\nconst DDSCAPS2_CUBEMAP = 0x00000200;\nconst DDSCAPS2_VOLUME = 0x00200000;\n\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\n [ \"positive-x\", 0x00000400 ],\n [ \"negative-x\", 0x00000800 ],\n [ \"positive-y\", 0x00001000 ],\n [ \"negative-y\", 0x00002000 ],\n [ \"positive-z\", 0x00004000 ],\n [ \"negative-z\", 0x00008000 ]\n]);\n\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\n DXT1: \"bc1-rgba-unorm\",\n DXT3: \"bc2-rgba-unorm\",\n DXT5: \"bc3-rgba-unorm\",\n ATI1: \"bc4-r-unorm\",\n BC4U: \"bc4-r-unorm\",\n BC4S: \"bc4-r-snorm\",\n ATI2: \"bc5-rg-unorm\",\n BC5U: \"bc5-rg-unorm\",\n BC5S: \"bc5-rg-snorm\"\n});\n\nconst DXGI_PIXEL_FORMATS = Object.freeze({\n 2: \"rgba32float\",\n 6: \"rgb32float\",\n 10: \"rgba16float\",\n 16: \"rg32float\",\n 34: \"rg16float\",\n 41: \"r32float\",\n 54: \"r16float\",\n 28: \"rgba8unorm\",\n 29: \"rgba8unorm-srgb\",\n 49: \"rg8unorm\",\n 61: \"r8unorm\",\n 71: \"bc1-rgba-unorm\",\n 72: \"bc1-rgba-unorm-srgb\",\n 74: \"bc2-rgba-unorm\",\n 75: \"bc2-rgba-unorm-srgb\",\n 77: \"bc3-rgba-unorm\",\n 78: \"bc3-rgba-unorm-srgb\",\n 80: \"bc4-r-unorm\",\n 81: \"bc4-r-snorm\",\n 83: \"bc5-rg-unorm\",\n 84: \"bc5-rg-snorm\",\n 87: \"bgra8unorm\",\n 88: \"bgrx8unorm\",\n 91: \"bgra8unorm-srgb\",\n 93: \"bgrx8unorm-srgb\",\n 95: \"bc6h-rgb-ufloat\",\n 96: \"bc6h-rgb-float\",\n 98: \"bc7-rgba-unorm\",\n 99: \"bc7-rgba-unorm-srgb\"\n});\n\nconst COMPRESSED_PIXEL_FORMATS = new Set([\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\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 * Normalizes reader options against their supported defaults for the DDS 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 DDS 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 DDS 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_TEXTURE, 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 DDS format reader. */\r/** Inspects input using normalized format options for the DDS 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${capitalize(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 DDS\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 hasCompleteTextureData = metadata.isDataComplete !== false;\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\n const textureUnsupportedReason = !metadata.pixelFormat\n ? \"DDS texture format is not recognized yet.\"\n : !hasCompleteTextureData\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\n : \"\";\n const variants = metadata.sourceFormat === \"dds\"\n ? [\n {\n kind: \"compressed\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture && metadata.isCompressed,\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\n },\n {\n kind: \"texture\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture,\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\n },\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: canEmitRgba\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\n : \"rgba8unorm\",\n supported: canEmitRgba,\n reason: canEmitRgba\n ? \"\"\n : textureUnsupportedReason || (metadata.nativeTextureOnly\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\n : \"DDS RGBA decode is not implemented for this pixel format.\")\n },\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\n ]\n : [\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\n ];\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: preferredVariant?.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 DDS 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 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_TEXTURE && metadata.sourceFormat === \"dds\")\n {\n return readDdsTexture(bytes, metadata);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\n {\n return readDdsToRgba(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 DDS format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the DDS format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\n/**\n * Reports whether the supplied bytes begin with a PNG signature for the DDS\n * format reader.\n */\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\n/**\n * Reports whether the supplied bytes begin with a JPEG signature for the DDS\n * format reader.\n */\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\n/**\n * Reports whether the supplied bytes begin with a DDS signature for the DDS\n * format reader.\n */\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= DDS_HEADER_SIZE + 4 &&\n bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20 &&\n readU32LE(bytes, 4) === DDS_HEADER_SIZE;\n}\n\n/**\n * Reports whether the supplied bytes have a supported TGA header for the DDS\n * format reader.\n */\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const headerSize = readU32LE(bytes, 4);\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\n const pfFlags = readU32LE(bytes, pfOffset + 4);\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\n const rBitMask = readU32LE(bytes, pfOffset + 16);\n const gBitMask = readU32LE(bytes, pfOffset + 20);\n const bBitMask = readU32LE(bytes, pfOffset + 24);\n const aBitMask = readU32LE(bytes, pfOffset + 28);\n const caps2 = readU32LE(bytes, 112);\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\n const cubeFaces = getDdsCubeFaces(caps2);\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\n const arraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\n const dataOffset = hasDx10 ? 148 : 128;\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\n const width = readU32LE(bytes, 16);\n const height = readU32LE(bytes, 12);\n const depth = readU32LE(bytes, 24);\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\n const expectedDataBytes = pixelFormat ? getDdsExpectedDataBytes({\n pixelFormat,\n width,\n height,\n depth,\n mipCount,\n arraySize,\n isCube,\n isVolume\n }) : null;\n\n return {\n sourceFormat: \"dds\",\n headerSize,\n width,\n height,\n depth,\n mipCount,\n pitchOrLinearSize: readU32LE(bytes, 20),\n pfFlags,\n fourCc,\n fourCcCode,\n rgbBitCount,\n rBitMask,\n gBitMask,\n bBitMask,\n aBitMask,\n caps2,\n hasDx10,\n dxgiFormat,\n resourceDimension,\n arraySize,\n dataOffset,\n dataBytes,\n expectedDataBytes,\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\n faces: isCube ? 6 : 1,\n cubeFaces,\n isCubeComplete: isCube && cubeFaces.length === 6,\n isCube,\n isVolume,\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\n pixelFormat,\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction readDdsTexture(bytes, metadata)\n{\n if (!metadata.pixelFormat)\n {\n const error = new Error(\"dds: texture format is not recognized yet\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresources = buildDdsSubresources(bytes, metadata);\n return {\n payloadType: OUTPUT_TEXTURE,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n depth: metadata.depth,\n faces: metadata.faces,\n cubeFaces: metadata.cubeFaces,\n isCubeComplete: metadata.isCubeComplete,\n dimension: metadata.dimension,\n mipCount: metadata.mipCount,\n arraySize: metadata.arraySize,\n pixelFormat: metadata.pixelFormat,\n isCompressed: metadata.isCompressed,\n dataBytes: metadata.dataBytes,\n expectedDataBytes: metadata.expectedDataBytes,\n isDataComplete: metadata.isDataComplete,\n missingDataBytes: metadata.missingDataBytes,\n extraDataBytes: metadata.extraDataBytes,\n subresources,\n metadata,\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\n };\n}\n\nfunction canDecodeDdsToRgba(metadata)\n{\n return [\n \"rgba32float\",\n \"rgb32float\",\n \"rgba16float\",\n \"rg32float\",\n \"rg16float\",\n \"r32float\",\n \"r16float\",\n \"rgba8unorm\",\n \"rgba8unorm-srgb\",\n \"bgra8unorm\",\n \"bgra8unorm-srgb\",\n \"bgrx8unorm\",\n \"bgrx8unorm-srgb\",\n \"rgbx8unorm\",\n \"bgr8unorm\",\n \"l8unorm\",\n \"l8a8unorm\",\n \"a8unorm\",\n \"rg8unorm\",\n \"r8unorm\",\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n ].includes(metadata.pixelFormat);\n}\n\nfunction readDdsToRgba(bytes, metadata)\n{\n if (!canDecodeDdsToRgba(metadata))\n {\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresource = buildDdsSubresources(bytes, metadata)[0];\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\n const depth = Math.max(subresource.depth ?? 1, 1);\n\n // Every slice, not just the first.\n //\n // This decoded subresource[0] with the source's own width and height, which\n // for a volume reads one slice out of a buffer holding all of them and\n // returns it as though it were the image. A 128-cube came back as 65,536\n // bytes with `depth` absent from the payload, so a caller could not even\n // tell it had been handed 1/128th of what it asked for. Silent and\n // plausible, which is worse than an error: nothing downstream can detect it.\n //\n // Slices are `slicePitch` apart and each decodes exactly like a 2D image of\n // the same dimensions, so this is a loop rather than a second decoder.\n const slices = [];\n\n for (let z = 0; z < depth; z++)\n {\n const start = metadata.dataOffset + subresource.offset + (z * subresource.slicePitch);\n const source = bytes.subarray(start, start + subresource.slicePitch);\n\n slices.push(decodeDdsSlice(source, metadata, subresource));\n }\n\n const rgba = depth === 1 ? slices[0] : concatTypedArrays(slices);\n const sliceBytes = metadata.width * metadata.height * (isFloat ? 16 : 4);\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n // Always present, and 1 for a flat image. An optional field that only\n // appears for volumes is one every caller forgets to look for.\n depth,\n isVolume: depth > 1,\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\n strideBytes: metadata.width * (isFloat ? 16 : 4),\n // What one z-slice occupies, so a caller can cut the buffer up without\n // recomputing it from a pixel format it should not have to know about.\n sliceBytes,\n origin: \"top-left\",\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n/** Decodes one 2D slice of a DDS subresource to RGBA, whatever its block format. */\nfunction decodeDdsSlice(source, metadata, subresource)\n{\n const { width, height } = metadata;\n const pitch = subresource.rowPitch;\n const format = metadata.pixelFormat;\n\n if (format.startsWith(\"bc1-\")) return decodeBc1(source, width, height, pitch);\n if (format.startsWith(\"bc2-\")) return decodeBc2(source, width, height, pitch);\n if (format.startsWith(\"bc3-\")) return decodeBc3(source, width, height, pitch);\n if (format.startsWith(\"bc4-\")) return decodeBc4(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc5-\")) return decodeBc5(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc6h-\")) return decodeBc6h(source, width, height, pitch, format === \"bc6h-rgb-float\");\n if (format.startsWith(\"bc7-\")) return decodeBc7(source, width, height, pitch);\n\n return isFloatPixelFormat(format) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);\n}\n\n/** Joins same-typed slice buffers into one, preserving the element type. */\nfunction concatTypedArrays(parts)\n{\n let total = 0;\n\n for (const part of parts) total += part.length;\n\n const out = new parts[0].constructor(total);\n let at = 0;\n\n for (const part of parts)\n {\n out.set(part, at);\n at += part.length;\n }\n\n return out;\n}\n\nfunction buildDdsSubresources(bytes, metadata)\n{\n const subresources = [];\n let offset = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\n const face = metadata.isCube ? layer % 6 : 0;\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\n {\n const error = new Error(\"dds: texture data is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n error.expectedDataBytes = metadata.expectedDataBytes;\n error.dataBytes = metadata.dataBytes;\n error.missingDataBytes = metadata.missingDataBytes;\n throw error;\n }\n subresources.push({\n mip,\n layer,\n arrayIndex,\n face,\n offset,\n byteLength: layout.byteLength,\n rowPitch: layout.rowPitch,\n slicePitch: layout.slicePitch,\n width,\n height,\n depth\n });\n offset += layout.byteLength;\n }\n }\n\n return subresources;\n}\n\nfunction getDdsExpectedDataBytes(metadata)\n{\n let total = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\n }\n }\n\n return total;\n}\n\nfunction getDdsCubeFaces(caps2)\n{\n if (!(caps2 & DDSCAPS2_CUBEMAP))\n {\n return [];\n }\n return DDS_CUBE_FACE_FLAGS\n .filter((entry) => !!(caps2 & entry[1]))\n .map((entry) => entry[0]);\n}\n\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\n{\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\n if (blockBytes)\n {\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\n const rowPitch = blocksWide * blockBytes;\n const slicePitch = rowPitch * blocksHigh;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n }\n\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2,\n \"rgba8unorm\": 4,\n \"rgba8unorm-srgb\": 4,\n \"bgra8unorm\": 4,\n \"bgra8unorm-srgb\": 4,\n \"bgrx8unorm\": 4,\n \"bgrx8unorm-srgb\": 4,\n \"rgbx8unorm\": 4,\n \"bgr8unorm\": 3,\n \"l8a8unorm\": 2,\n \"l8unorm\": 1,\n \"a8unorm\": 1,\n \"rg8unorm\": 2,\n \"r8unorm\": 1\n }[pixelFormat];\n if (!bytesPerPixel)\n {\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const rowPitch = width * bytesPerPixel;\n const slicePitch = rowPitch * height;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n}\n\nfunction decodeUncompressed(source, metadata)\n{\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\n metadata.pixelFormat === \"rg8unorm\" ? 2 :\n metadata.pixelFormat === \"r8unorm\" ? 1 : 4;\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\n }\n else if (metadata.pixelFormat === \"bgr8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat.startsWith(\"rgbx\"))\n {\n // Fourth byte is padding, not alpha.\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset + 2];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat === \"l8unorm\" || metadata.pixelFormat === \"l8a8unorm\")\n {\n // Luminance replicates its one channel across RGB.\n const luminance = source[sourceOffset];\n rgba[outputOffset] = luminance;\n rgba[outputOffset + 1] = luminance;\n rgba[outputOffset + 2] = luminance;\n rgba[outputOffset + 3] = metadata.pixelFormat === \"l8a8unorm\" ? source[sourceOffset + 1] : 255;\n }\n else if (metadata.pixelFormat === \"a8unorm\")\n {\n rgba[outputOffset] = 0;\n rgba[outputOffset + 1] = 0;\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = source[sourceOffset];\n }\n else if (metadata.pixelFormat === \"rg8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n }\n else\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\n }\n }\n return rgba;\n}\n\nfunction decodeFloatUncompressed(source, metadata)\n{\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2\n }[metadata.pixelFormat];\n\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n let red, green, blue, alpha;\n if (metadata.pixelFormat === \"rgba32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = view.getFloat32(sourceOffset + 12, true);\n }\n else if (metadata.pixelFormat === \"rgb32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rgba16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\n }\n else if (metadata.pixelFormat === \"rg32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = 0;\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rg16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = 0;\n alpha = 1;\n }\n else\n {\n red = metadata.pixelFormat === \"r16float\"\n ? halfToFloat(view.getUint16(sourceOffset, true))\n : view.getFloat32(sourceOffset, true);\n green = red;\n blue = red;\n alpha = 1;\n }\n rgba[outputOffset] = red;\n rgba[outputOffset + 1] = green;\n rgba[outputOffset + 2] = blue;\n rgba[outputOffset + 3] = alpha;\n }\n return rgba;\n}\n\nfunction isFloatPixelFormat(pixelFormat)\n{\n return typeof pixelFormat === \"string\" && (pixelFormat.startsWith(\"bc6h-\") ||\n [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"rg16float\", \"r32float\",\n \"r16float\" ].includes(pixelFormat));\n}\n\nfunction halfToFloat(value)\n{\n const sign = (value & 0x8000) ? -1 : 1;\n const exponent = (value >>> 10) & 0x1f;\n const mantissa = value & 0x03ff;\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (mantissa / 1024);\n }\n if (exponent === 0x1f)\n {\n return mantissa === 0 ? sign * Infinity : NaN;\n }\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\n}\n\nfunction decodeBc1(source, width, height, rowPitch)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 8;\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\n const colors = decodeBc1Colors(c0, c1);\n const indices = source[blockOffset + 4] |\n (source[blockOffset + 5] << 8) |\n (source[blockOffset + 6] << 16) |\n (source[blockOffset + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n rgba.set(color, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc2(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\n return alphaNibble * 17;\n }, 8);\n}\n\nfunction decodeBc3(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\n const alphaValues = alpha0 > alpha1\n ? [ alpha0, alpha1,\n Math.round((6 * alpha0 + alpha1) / 7),\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\n Math.round((alpha0 + 6 * alpha1) / 7) ]\n : [ alpha0, alpha1,\n Math.round((4 * alpha0 + alpha1) / 5),\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\n Math.round((alpha0 + 4 * alpha1) / 5),\n 0, 255 ];\n let alphaBits = 0n;\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\n }, 8);\n}\n\nfunction decodeBc4(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\n {\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset] = value;\n rgba[outputOffset + 1] = value;\n rgba[outputOffset + 2] = value;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc5(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\n {\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\n{\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\n const values = endpoint0 > endpoint1\n ? [ endpoint0, endpoint1,\n (6 * endpoint0 + endpoint1) / 7,\n (5 * endpoint0 + 2 * endpoint1) / 7,\n (4 * endpoint0 + 3 * endpoint1) / 7,\n (3 * endpoint0 + 4 * endpoint1) / 7,\n (2 * endpoint0 + 5 * endpoint1) / 7,\n (endpoint0 + 6 * endpoint1) / 7 ]\n : [ endpoint0, endpoint1,\n (4 * endpoint0 + endpoint1) / 5,\n (3 * endpoint0 + 2 * endpoint1) / 5,\n (2 * endpoint0 + 3 * endpoint1) / 5,\n (endpoint0 + 4 * endpoint1) / 5,\n signed ? -1 : 0,\n signed ? 1 : 255 ];\n let bits = 0n;\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\n}\n\nfunction decodeSnormByte(value)\n{\n const signed = value > 127 ? value - 256 : value;\n return Math.max(-1, signed / 127);\n}\n\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\n{\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX < width && outputY < height)\n {\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n }\n}\n\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const colorOffsetInBlock = blockOffset + colorOffset;\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\n const colors = decodeBc1Colors(c0, c1, true);\n const indices = source[colorOffsetInBlock + 4] |\n (source[colorOffsetInBlock + 5] << 8) |\n (source[colorOffsetInBlock + 6] << 16) |\n (source[colorOffsetInBlock + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n const outputOffset = (outputY * width + outputX) * 4;\n rgba[outputOffset] = color[0];\n rgba[outputOffset + 1] = color[1];\n rgba[outputOffset + 2] = color[2];\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\n{\n const first = decode565(c0);\n const second = decode565(c1);\n const colors = [ first, second ];\n if (c0 > c1 || forceFourColor)\n {\n colors.push([\n Math.round((2 * first[0] + second[0]) / 3),\n Math.round((2 * first[1] + second[1]) / 3),\n Math.round((2 * first[2] + second[2]) / 3),\n 255\n ], [\n Math.round((first[0] + 2 * second[0]) / 3),\n Math.round((first[1] + 2 * second[1]) / 3),\n Math.round((first[2] + 2 * second[2]) / 3),\n 255\n ]);\n }\n else\n {\n colors.push([\n Math.round((first[0] + second[0]) / 2),\n Math.round((first[1] + second[1]) / 2),\n Math.round((first[2] + second[2]) / 2),\n 255\n ], [ 0, 0, 0, 0 ]);\n }\n return colors;\n}\n\nfunction decode565(value)\n{\n return [\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\n Math.round((value & 0x1f) * 255 / 31),\n 255\n ];\n}\n\n/**\n * The floating-point `D3DFORMAT` enumerators, which a legacy DDS stores as a\n * NUMBER in the four-character-code field rather than as four characters.\n *\n * That is the whole trap. `DDPF_FOURCC` is set and the field reads `114`, which\n * as text is `\"r\\0\\0\\0\"` and matches nothing, so a reader that only compares\n * character codes reports an unrecognized format for a file whose format is\n * perfectly ordinary. Every one of these six is a plain uncompressed surface.\n *\n * Two were mapped when BC6H support landed and the other four were not, so\n * `A16B16G16R16F` and `A32B32G32R32F` loaded while their one- and two-channel\n * siblings did not. Found 2026-08-16 on\n * `res:/dx9/model/ship/amarr/battleship/ab3/effects/ab3_traffic.dds`, a 256x9\n * `R32F` gradient.\n */\nconst LEGACY_D3DFMT_PIXEL_FORMATS = {\n 111: \"r16float\",\n 112: \"rg16float\",\n 113: \"rgba16float\",\n 114: \"r32float\",\n 115: \"rg32float\",\n 116: \"rgba32float\"\n};\n\nfunction getDdsPixelFormat(format)\n{\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\n {\n return FOURCC_PIXEL_FORMATS[format.fourCc] || LEGACY_D3DFMT_PIXEL_FORMATS[format.fourCcCode] || \"\";\n }\n if (format.pfFlags & DDS_RGB)\n {\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\n // D3DFMT_X8R8G8B8 / D3DFMT_X8B8G8R8: 32bpp with no alpha channel.\n // DDPF_ALPHAPIXELS is clear and the alpha mask is zero, so the fourth\n // byte is padding and reads as opaque.\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n !format.aBitMask) return \"bgrx8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n !format.aBitMask) return \"rgbx8unorm\";\n if (format.rgbBitCount === 24 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\n }\n // Single-channel masks are authored both ways: some declare DDPF_LUMINANCE,\n // others DDPF_RGB with only a red mask. Both mean one channel replicated\n // across RGB, which is not the same as r8unorm (that samples as red only).\n if ((format.pfFlags & DDS_RGB) &&\n format.rgbBitCount === 8 &&\n format.rBitMask === 0x000000ff &&\n !format.gBitMask &&\n !format.bBitMask &&\n !format.aBitMask) return \"l8unorm\";\n if (format.pfFlags & DDS_LUMINANCE)\n {\n if (format.rgbBitCount === 8 && !(format.pfFlags & DDS_ALPHAPIXELS)) return \"l8unorm\";\n if (format.rgbBitCount === 16 && (format.pfFlags & DDS_ALPHAPIXELS)) return \"l8a8unorm\";\n }\n // D3DFMT_A8: alpha only.\n if ((format.pfFlags & DDS_ALPHA) && format.rgbBitCount === 8) return \"a8unorm\";\n return \"\";\n}\n\nfunction inspectTGA(bytes)\n{\n return {\n sourceFormat: \"tga\",\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_HEADER_SIZE","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDS_ALPHA","DDS_LUMINANCE","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","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","capitalize","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","reason","isFloatPixelFormat","nativeTextureOnly","toUpperCase","preferredVariant","find","v","format","some","confidence","preferredOutput","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","toJsonValue","Uint8Array","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","readU32LE","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","offset","marker","length","readU16BE","Math","max","headerSize","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","arraySize","getDdsPixelFormat","depth","mipCount","getDdsExpectedDataBytes","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","dimension","has","hasAlpha","test","hasMipMaps","subresources","buildDdsSubresources","data","subarray","reduce","sum","subresource","isFloat","slices","z","start","slicePitch","push","decodeDdsSlice","rgba","concatTypedArrays","sliceBytes","strideBytes","origin","colorSpace","endsWith","alphaMode","pitch","rowPitch","startsWith","decodeBc1","decodeBc2","decodeBc3","decodeBc4","decodeBc5","decodeBc6h","decodeBc7","decodeFloatUncompressed","decodeUncompressed","parts","total","part","out","constructor","at","set","layers","layer","arrayIndex","floor","face","mip","layout","getDdsLevelLayout","filter","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","pixel","sourceOffset","outputOffset","luminance","Float32Array","view","DataView","buffer","byteOffset","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","round","alphaBits","i","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","LEGACY_D3DFMT_PIXEL_FORMATS","slice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/dds/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, isDDS } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isDDS };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decodeBc6h } from \"./bc6h.js\";\nimport { decodeBc7 } from \"./bc7.js\";\n\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 DDS_HEADER_SIZE = 124;\nconst DDS_PIXELFORMAT_OFFSET = 76;\nconst DDS_FOURCC = 0x00000004;\nconst DDS_RGB = 0x00000040;\nconst DDS_ALPHAPIXELS = 0x00000001;\nconst DDS_ALPHA = 0x00000002;\nconst DDS_LUMINANCE = 0x00020000;\nconst DDSCAPS2_CUBEMAP = 0x00000200;\nconst DDSCAPS2_VOLUME = 0x00200000;\n\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\n [ \"positive-x\", 0x00000400 ],\n [ \"negative-x\", 0x00000800 ],\n [ \"positive-y\", 0x00001000 ],\n [ \"negative-y\", 0x00002000 ],\n [ \"positive-z\", 0x00004000 ],\n [ \"negative-z\", 0x00008000 ]\n]);\n\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\n DXT1: \"bc1-rgba-unorm\",\n DXT3: \"bc2-rgba-unorm\",\n DXT5: \"bc3-rgba-unorm\",\n ATI1: \"bc4-r-unorm\",\n BC4U: \"bc4-r-unorm\",\n BC4S: \"bc4-r-snorm\",\n ATI2: \"bc5-rg-unorm\",\n BC5U: \"bc5-rg-unorm\",\n BC5S: \"bc5-rg-snorm\"\n});\n\nconst DXGI_PIXEL_FORMATS = Object.freeze({\n 2: \"rgba32float\",\n 6: \"rgb32float\",\n 10: \"rgba16float\",\n 16: \"rg32float\",\n 34: \"rg16float\",\n 41: \"r32float\",\n 54: \"r16float\",\n 28: \"rgba8unorm\",\n 29: \"rgba8unorm-srgb\",\n 49: \"rg8unorm\",\n 61: \"r8unorm\",\n 71: \"bc1-rgba-unorm\",\n 72: \"bc1-rgba-unorm-srgb\",\n 74: \"bc2-rgba-unorm\",\n 75: \"bc2-rgba-unorm-srgb\",\n 77: \"bc3-rgba-unorm\",\n 78: \"bc3-rgba-unorm-srgb\",\n 80: \"bc4-r-unorm\",\n 81: \"bc4-r-snorm\",\n 83: \"bc5-rg-unorm\",\n 84: \"bc5-rg-snorm\",\n 87: \"bgra8unorm\",\n 88: \"bgrx8unorm\",\n 91: \"bgra8unorm-srgb\",\n 93: \"bgrx8unorm-srgb\",\n 95: \"bc6h-rgb-ufloat\",\n 96: \"bc6h-rgb-float\",\n 98: \"bc7-rgba-unorm\",\n 99: \"bc7-rgba-unorm-srgb\"\n});\n\nconst COMPRESSED_PIXEL_FORMATS = new Set([\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\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 * Normalizes reader options against their supported defaults for the DDS 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 DDS 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 DDS 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_TEXTURE, 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 DDS format reader. */\n/** Inspects input using normalized format options for the DDS 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 DDS\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 hasCompleteTextureData = metadata.isDataComplete !== false;\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\n const textureUnsupportedReason = !metadata.pixelFormat\n ? \"DDS texture format is not recognized yet.\"\n : !hasCompleteTextureData\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\n : \"\";\n const variants = metadata.sourceFormat === \"dds\"\n ? [\n {\n kind: \"compressed\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture && metadata.isCompressed,\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\n },\n {\n kind: \"texture\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture,\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\n },\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: canEmitRgba\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\n : \"rgba8unorm\",\n supported: canEmitRgba,\n reason: canEmitRgba\n ? \"\"\n : textureUnsupportedReason || (metadata.nativeTextureOnly\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\n : \"DDS RGBA decode is not implemented for this pixel format.\")\n },\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\n ]\n : [\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\n ];\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: preferredVariant?.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 DDS 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 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_TEXTURE && metadata.sourceFormat === \"dds\")\n {\n return readDdsTexture(bytes, metadata);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\n {\n return readDdsToRgba(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 DDS 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 DDS format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"dds\" ? inspectDDS(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\n\n\nfunction inspectDDS(bytes)\n{\n const headerSize = readU32LE(bytes, 4);\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\n const pfFlags = readU32LE(bytes, pfOffset + 4);\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\n const rBitMask = readU32LE(bytes, pfOffset + 16);\n const gBitMask = readU32LE(bytes, pfOffset + 20);\n const bBitMask = readU32LE(bytes, pfOffset + 24);\n const aBitMask = readU32LE(bytes, pfOffset + 28);\n const caps2 = readU32LE(bytes, 112);\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\n const cubeFaces = getDdsCubeFaces(caps2);\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\n const arraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\n const dataOffset = hasDx10 ? 148 : 128;\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\n const width = readU32LE(bytes, 16);\n const height = readU32LE(bytes, 12);\n const depth = readU32LE(bytes, 24);\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\n const expectedDataBytes = pixelFormat ? getDdsExpectedDataBytes({\n pixelFormat,\n width,\n height,\n depth,\n mipCount,\n arraySize,\n isCube,\n isVolume\n }) : null;\n\n return {\n sourceFormat: \"dds\",\n headerSize,\n width,\n height,\n depth,\n mipCount,\n pitchOrLinearSize: readU32LE(bytes, 20),\n pfFlags,\n fourCc,\n fourCcCode,\n rgbBitCount,\n rBitMask,\n gBitMask,\n bBitMask,\n aBitMask,\n caps2,\n hasDx10,\n dxgiFormat,\n resourceDimension,\n arraySize,\n dataOffset,\n dataBytes,\n expectedDataBytes,\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\n faces: isCube ? 6 : 1,\n cubeFaces,\n isCubeComplete: isCube && cubeFaces.length === 6,\n isCube,\n isVolume,\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\n pixelFormat,\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction readDdsTexture(bytes, metadata)\n{\n if (!metadata.pixelFormat)\n {\n const error = new Error(\"dds: texture format is not recognized yet\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresources = buildDdsSubresources(bytes, metadata);\n return {\n payloadType: OUTPUT_TEXTURE,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n depth: metadata.depth,\n faces: metadata.faces,\n cubeFaces: metadata.cubeFaces,\n isCubeComplete: metadata.isCubeComplete,\n dimension: metadata.dimension,\n mipCount: metadata.mipCount,\n arraySize: metadata.arraySize,\n pixelFormat: metadata.pixelFormat,\n isCompressed: metadata.isCompressed,\n dataBytes: metadata.dataBytes,\n expectedDataBytes: metadata.expectedDataBytes,\n isDataComplete: metadata.isDataComplete,\n missingDataBytes: metadata.missingDataBytes,\n extraDataBytes: metadata.extraDataBytes,\n subresources,\n metadata,\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\n };\n}\n\nfunction canDecodeDdsToRgba(metadata)\n{\n return [\n \"rgba32float\",\n \"rgb32float\",\n \"rgba16float\",\n \"rg32float\",\n \"rg16float\",\n \"r32float\",\n \"r16float\",\n \"rgba8unorm\",\n \"rgba8unorm-srgb\",\n \"bgra8unorm\",\n \"bgra8unorm-srgb\",\n \"bgrx8unorm\",\n \"bgrx8unorm-srgb\",\n \"rgbx8unorm\",\n \"bgr8unorm\",\n \"l8unorm\",\n \"l8a8unorm\",\n \"a8unorm\",\n \"rg8unorm\",\n \"r8unorm\",\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n ].includes(metadata.pixelFormat);\n}\n\nfunction readDdsToRgba(bytes, metadata)\n{\n if (!canDecodeDdsToRgba(metadata))\n {\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresource = buildDdsSubresources(bytes, metadata)[0];\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\n const depth = Math.max(subresource.depth ?? 1, 1);\n\n // Every slice, not just the first.\n //\n // This decoded subresource[0] with the source's own width and height, which\n // for a volume reads one slice out of a buffer holding all of them and\n // returns it as though it were the image. A 128-cube came back as 65,536\n // bytes with `depth` absent from the payload, so a caller could not even\n // tell it had been handed 1/128th of what it asked for. Silent and\n // plausible, which is worse than an error: nothing downstream can detect it.\n //\n // Slices are `slicePitch` apart and each decodes exactly like a 2D image of\n // the same dimensions, so this is a loop rather than a second decoder.\n const slices = [];\n\n for (let z = 0; z < depth; z++)\n {\n const start = metadata.dataOffset + subresource.offset + (z * subresource.slicePitch);\n const source = bytes.subarray(start, start + subresource.slicePitch);\n\n slices.push(decodeDdsSlice(source, metadata, subresource));\n }\n\n const rgba = depth === 1 ? slices[0] : concatTypedArrays(slices);\n const sliceBytes = metadata.width * metadata.height * (isFloat ? 16 : 4);\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n // Always present, and 1 for a flat image. An optional field that only\n // appears for volumes is one every caller forgets to look for.\n depth,\n isVolume: depth > 1,\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\n strideBytes: metadata.width * (isFloat ? 16 : 4),\n // What one z-slice occupies, so a caller can cut the buffer up without\n // recomputing it from a pixel format it should not have to know about.\n sliceBytes,\n origin: \"top-left\",\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n/** Decodes one 2D slice of a DDS subresource to RGBA, whatever its block format. */\nfunction decodeDdsSlice(source, metadata, subresource)\n{\n const { width, height } = metadata;\n const pitch = subresource.rowPitch;\n const format = metadata.pixelFormat;\n\n if (format.startsWith(\"bc1-\")) return decodeBc1(source, width, height, pitch);\n if (format.startsWith(\"bc2-\")) return decodeBc2(source, width, height, pitch);\n if (format.startsWith(\"bc3-\")) return decodeBc3(source, width, height, pitch);\n if (format.startsWith(\"bc4-\")) return decodeBc4(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc5-\")) return decodeBc5(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc6h-\")) return decodeBc6h(source, width, height, pitch, format === \"bc6h-rgb-float\");\n if (format.startsWith(\"bc7-\")) return decodeBc7(source, width, height, pitch);\n\n return isFloatPixelFormat(format) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);\n}\n\n/** Joins same-typed slice buffers into one, preserving the element type. */\nfunction concatTypedArrays(parts)\n{\n let total = 0;\n\n for (const part of parts) total += part.length;\n\n const out = new parts[0].constructor(total);\n let at = 0;\n\n for (const part of parts)\n {\n out.set(part, at);\n at += part.length;\n }\n\n return out;\n}\n\nfunction buildDdsSubresources(bytes, metadata)\n{\n const subresources = [];\n let offset = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\n const face = metadata.isCube ? layer % 6 : 0;\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\n {\n const error = new Error(\"dds: texture data is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n error.expectedDataBytes = metadata.expectedDataBytes;\n error.dataBytes = metadata.dataBytes;\n error.missingDataBytes = metadata.missingDataBytes;\n throw error;\n }\n subresources.push({\n mip,\n layer,\n arrayIndex,\n face,\n offset,\n byteLength: layout.byteLength,\n rowPitch: layout.rowPitch,\n slicePitch: layout.slicePitch,\n width,\n height,\n depth\n });\n offset += layout.byteLength;\n }\n }\n\n return subresources;\n}\n\nfunction getDdsExpectedDataBytes(metadata)\n{\n let total = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\n }\n }\n\n return total;\n}\n\nfunction getDdsCubeFaces(caps2)\n{\n if (!(caps2 & DDSCAPS2_CUBEMAP))\n {\n return [];\n }\n return DDS_CUBE_FACE_FLAGS\n .filter((entry) => !!(caps2 & entry[1]))\n .map((entry) => entry[0]);\n}\n\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\n{\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\n if (blockBytes)\n {\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\n const rowPitch = blocksWide * blockBytes;\n const slicePitch = rowPitch * blocksHigh;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n }\n\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2,\n \"rgba8unorm\": 4,\n \"rgba8unorm-srgb\": 4,\n \"bgra8unorm\": 4,\n \"bgra8unorm-srgb\": 4,\n \"bgrx8unorm\": 4,\n \"bgrx8unorm-srgb\": 4,\n \"rgbx8unorm\": 4,\n \"bgr8unorm\": 3,\n \"l8a8unorm\": 2,\n \"l8unorm\": 1,\n \"a8unorm\": 1,\n \"rg8unorm\": 2,\n \"r8unorm\": 1\n }[pixelFormat];\n if (!bytesPerPixel)\n {\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const rowPitch = width * bytesPerPixel;\n const slicePitch = rowPitch * height;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n}\n\nfunction decodeUncompressed(source, metadata)\n{\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\n metadata.pixelFormat === \"rg8unorm\" ? 2 :\n metadata.pixelFormat === \"r8unorm\" ? 1 : 4;\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\n }\n else if (metadata.pixelFormat === \"bgr8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat.startsWith(\"rgbx\"))\n {\n // Fourth byte is padding, not alpha.\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset + 2];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat === \"l8unorm\" || metadata.pixelFormat === \"l8a8unorm\")\n {\n // Luminance replicates its one channel across RGB.\n const luminance = source[sourceOffset];\n rgba[outputOffset] = luminance;\n rgba[outputOffset + 1] = luminance;\n rgba[outputOffset + 2] = luminance;\n rgba[outputOffset + 3] = metadata.pixelFormat === \"l8a8unorm\" ? source[sourceOffset + 1] : 255;\n }\n else if (metadata.pixelFormat === \"a8unorm\")\n {\n rgba[outputOffset] = 0;\n rgba[outputOffset + 1] = 0;\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = source[sourceOffset];\n }\n else if (metadata.pixelFormat === \"rg8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n }\n else\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\n }\n }\n return rgba;\n}\n\nfunction decodeFloatUncompressed(source, metadata)\n{\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2\n }[metadata.pixelFormat];\n\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n let red, green, blue, alpha;\n if (metadata.pixelFormat === \"rgba32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = view.getFloat32(sourceOffset + 12, true);\n }\n else if (metadata.pixelFormat === \"rgb32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rgba16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\n }\n else if (metadata.pixelFormat === \"rg32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = 0;\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rg16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = 0;\n alpha = 1;\n }\n else\n {\n red = metadata.pixelFormat === \"r16float\"\n ? halfToFloat(view.getUint16(sourceOffset, true))\n : view.getFloat32(sourceOffset, true);\n green = red;\n blue = red;\n alpha = 1;\n }\n rgba[outputOffset] = red;\n rgba[outputOffset + 1] = green;\n rgba[outputOffset + 2] = blue;\n rgba[outputOffset + 3] = alpha;\n }\n return rgba;\n}\n\nfunction isFloatPixelFormat(pixelFormat)\n{\n return typeof pixelFormat === \"string\" && (pixelFormat.startsWith(\"bc6h-\") ||\n [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"rg16float\", \"r32float\",\n \"r16float\" ].includes(pixelFormat));\n}\n\nfunction halfToFloat(value)\n{\n const sign = (value & 0x8000) ? -1 : 1;\n const exponent = (value >>> 10) & 0x1f;\n const mantissa = value & 0x03ff;\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (mantissa / 1024);\n }\n if (exponent === 0x1f)\n {\n return mantissa === 0 ? sign * Infinity : NaN;\n }\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\n}\n\nfunction decodeBc1(source, width, height, rowPitch)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 8;\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\n const colors = decodeBc1Colors(c0, c1);\n const indices = source[blockOffset + 4] |\n (source[blockOffset + 5] << 8) |\n (source[blockOffset + 6] << 16) |\n (source[blockOffset + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n rgba.set(color, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc2(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\n return alphaNibble * 17;\n }, 8);\n}\n\nfunction decodeBc3(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\n const alphaValues = alpha0 > alpha1\n ? [ alpha0, alpha1,\n Math.round((6 * alpha0 + alpha1) / 7),\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\n Math.round((alpha0 + 6 * alpha1) / 7) ]\n : [ alpha0, alpha1,\n Math.round((4 * alpha0 + alpha1) / 5),\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\n Math.round((alpha0 + 4 * alpha1) / 5),\n 0, 255 ];\n let alphaBits = 0n;\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\n }, 8);\n}\n\nfunction decodeBc4(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\n {\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset] = value;\n rgba[outputOffset + 1] = value;\n rgba[outputOffset + 2] = value;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc5(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\n {\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\n{\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\n const values = endpoint0 > endpoint1\n ? [ endpoint0, endpoint1,\n (6 * endpoint0 + endpoint1) / 7,\n (5 * endpoint0 + 2 * endpoint1) / 7,\n (4 * endpoint0 + 3 * endpoint1) / 7,\n (3 * endpoint0 + 4 * endpoint1) / 7,\n (2 * endpoint0 + 5 * endpoint1) / 7,\n (endpoint0 + 6 * endpoint1) / 7 ]\n : [ endpoint0, endpoint1,\n (4 * endpoint0 + endpoint1) / 5,\n (3 * endpoint0 + 2 * endpoint1) / 5,\n (2 * endpoint0 + 3 * endpoint1) / 5,\n (endpoint0 + 4 * endpoint1) / 5,\n signed ? -1 : 0,\n signed ? 1 : 255 ];\n let bits = 0n;\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\n}\n\nfunction decodeSnormByte(value)\n{\n const signed = value > 127 ? value - 256 : value;\n return Math.max(-1, signed / 127);\n}\n\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\n{\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX < width && outputY < height)\n {\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n }\n}\n\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const colorOffsetInBlock = blockOffset + colorOffset;\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\n const colors = decodeBc1Colors(c0, c1, true);\n const indices = source[colorOffsetInBlock + 4] |\n (source[colorOffsetInBlock + 5] << 8) |\n (source[colorOffsetInBlock + 6] << 16) |\n (source[colorOffsetInBlock + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n const outputOffset = (outputY * width + outputX) * 4;\n rgba[outputOffset] = color[0];\n rgba[outputOffset + 1] = color[1];\n rgba[outputOffset + 2] = color[2];\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\n{\n const first = decode565(c0);\n const second = decode565(c1);\n const colors = [ first, second ];\n if (c0 > c1 || forceFourColor)\n {\n colors.push([\n Math.round((2 * first[0] + second[0]) / 3),\n Math.round((2 * first[1] + second[1]) / 3),\n Math.round((2 * first[2] + second[2]) / 3),\n 255\n ], [\n Math.round((first[0] + 2 * second[0]) / 3),\n Math.round((first[1] + 2 * second[1]) / 3),\n Math.round((first[2] + 2 * second[2]) / 3),\n 255\n ]);\n }\n else\n {\n colors.push([\n Math.round((first[0] + second[0]) / 2),\n Math.round((first[1] + second[1]) / 2),\n Math.round((first[2] + second[2]) / 2),\n 255\n ], [ 0, 0, 0, 0 ]);\n }\n return colors;\n}\n\nfunction decode565(value)\n{\n return [\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\n Math.round((value & 0x1f) * 255 / 31),\n 255\n ];\n}\n\n/**\n * The floating-point `D3DFORMAT` enumerators, which a legacy DDS stores as a\n * NUMBER in the four-character-code field rather than as four characters.\n *\n * That is the whole trap. `DDPF_FOURCC` is set and the field reads `114`, which\n * as text is `\"r\\0\\0\\0\"` and matches nothing, so a reader that only compares\n * character codes reports an unrecognized format for a file whose format is\n * perfectly ordinary. Every one of these six is a plain uncompressed surface.\n *\n * Two were mapped when BC6H support landed and the other four were not, so\n * `A16B16G16R16F` and `A32B32G32R32F` loaded while their one- and two-channel\n * siblings did not. Found 2026-08-16 on\n * `res:/dx9/model/ship/amarr/battleship/ab3/effects/ab3_traffic.dds`, a 256x9\n * `R32F` gradient.\n */\nconst LEGACY_D3DFMT_PIXEL_FORMATS = {\n 111: \"r16float\",\n 112: \"rg16float\",\n 113: \"rgba16float\",\n 114: \"r32float\",\n 115: \"rg32float\",\n 116: \"rgba32float\"\n};\n\nfunction getDdsPixelFormat(format)\n{\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\n {\n return FOURCC_PIXEL_FORMATS[format.fourCc] || LEGACY_D3DFMT_PIXEL_FORMATS[format.fourCcCode] || \"\";\n }\n if (format.pfFlags & DDS_RGB)\n {\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\n // D3DFMT_X8R8G8B8 / D3DFMT_X8B8G8R8: 32bpp with no alpha channel.\n // DDPF_ALPHAPIXELS is clear and the alpha mask is zero, so the fourth\n // byte is padding and reads as opaque.\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n !format.aBitMask) return \"bgrx8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n !format.aBitMask) return \"rgbx8unorm\";\n if (format.rgbBitCount === 24 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\n }\n // Single-channel masks are authored both ways: some declare DDPF_LUMINANCE,\n // others DDPF_RGB with only a red mask. Both mean one channel replicated\n // across RGB, which is not the same as r8unorm (that samples as red only).\n if ((format.pfFlags & DDS_RGB) &&\n format.rgbBitCount === 8 &&\n format.rBitMask === 0x000000ff &&\n !format.gBitMask &&\n !format.bBitMask &&\n !format.aBitMask) return \"l8unorm\";\n if (format.pfFlags & DDS_LUMINANCE)\n {\n if (format.rgbBitCount === 8 && !(format.pfFlags & DDS_ALPHAPIXELS)) return \"l8unorm\";\n if (format.rgbBitCount === 16 && (format.pfFlags & DDS_ALPHAPIXELS)) return \"l8a8unorm\";\n }\n // D3DFMT_A8: alpha only.\n if ((format.pfFlags & DDS_ALPHA) && format.rgbBitCount === 8) return \"a8unorm\";\n return \"\";\n}\n\n\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDS_ALPHA","DDS_LUMINANCE","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","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","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","reason","isFloatPixelFormat","nativeTextureOnly","toUpperCase","preferredVariant","find","v","format","some","confidence","preferredOutput","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","identifyImageBytes","inspectDDS","foreignImageRecord","headerSize","readU32LE","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","arraySize","getDdsPixelFormat","width","height","depth","mipCount","Math","max","getDdsExpectedDataBytes","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","length","dimension","has","hasAlpha","test","hasMipMaps","subresources","buildDdsSubresources","data","subarray","reduce","sum","entry","subresource","isFloat","slices","z","start","offset","slicePitch","push","decodeDdsSlice","rgba","concatTypedArrays","sliceBytes","strideBytes","origin","colorSpace","endsWith","alphaMode","pitch","rowPitch","startsWith","decodeBc1","decodeBc2","decodeBc3","decodeBc4","decodeBc5","decodeBc6h","decodeBc7","decodeFloatUncompressed","decodeUncompressed","parts","total","part","out","constructor","at","set","layers","layer","arrayIndex","floor","face","mip","layout","getDdsLevelLayout","filter","map","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","Uint8Array","pixel","sourceOffset","outputOffset","luminance","Float32Array","view","DataView","buffer","byteOffset","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","round","alphaBits","i","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","LEGACY_D3DFMT_PIXEL_FORMATS"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
2
|
import { DxbcContainer } from './core/container.js';
|
|
3
3
|
import { disassembleInstructions } from './core/disassemble.js';
|
|
4
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues,
|
|
4
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, OUTPUT_JSON, OUTPUT_RAW } from './core/helpers.js';
|
|
5
|
+
import { toJsonWithCollections } from '../../format/jsonPolicies.js';
|
|
5
6
|
|
|
6
7
|
const FORMAT_NAME = "CjsDxbcFormat";
|
|
7
8
|
|
|
@@ -166,7 +167,7 @@ class CjsDxbcFormat extends CjsFormat {
|
|
|
166
167
|
* @returns {any} Plain JSON-compatible data.
|
|
167
168
|
*/
|
|
168
169
|
static toJSON(value) {
|
|
169
|
-
return
|
|
170
|
+
return toJsonWithCollections(value);
|
|
170
171
|
}
|
|
171
172
|
static OUTPUT_JSON = OUTPUT_JSON;
|
|
172
173
|
static OUTPUT_RAW = OUTPUT_RAW;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsDxbcFormat.js","sources":["../../../../../src/resource/formats/dxbc/CjsDxbcFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\r\n/**\r\n * Exposed CarbonEngineJS-facing DXBC format class.\r\n *\r\n * Keep this file small and reviewable: container/signature/program parsing\r\n * and the instruction decoder live in core/; input/option normalization and\r\n * the shared read path live in core/helpers.js.\r\n */\r\n\r\nimport { DxbcContainer } from \"./core/container.js\";\r\nimport { disassembleInstructions } from \"./core/disassemble.js\";\r\nimport {\r\n DEFAULT_VALUES,\r\n OUTPUT_JSON,\r\n OUTPUT_RAW,\r\n inspectWithValues,\r\n normalizeValues,\r\n readWithValues,\r\n toJsonValue\r\n} from \"./core/helpers.js\";\r\n\r\nconst FORMAT_NAME = \"CjsDxbcFormat\";\r\n\r\n/**\r\n * Resolves whatever the caller has to the decoder record a listing needs.\r\n *\r\n * Callers reach disassembly from three places: raw bytes, the result of a\r\n * previous read they do not want to repeat, and a decoder they already hold\r\n * from an emitter. All three are accepted so the listing never costs a second\r\n * decode.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView|object} input Bytes or record.\r\n * @param {object} options Format values for the byte path.\r\n * @returns {object} Record carrying an `instructions` array.\r\n */\r\nfunction resolveDecoderRecord(input, options)\r\n{\r\n if (input && typeof input === \"object\" && Array.isArray(input.instructions))\r\n {\r\n return input;\r\n }\r\n\r\n if (input && typeof input === \"object\" && input.decoder)\r\n {\r\n return input.decoder;\r\n }\r\n\r\n const result = readWithValues(input, normalizeValues(DEFAULT_VALUES, {\r\n ...options,\r\n emit: OUTPUT_RAW,\r\n decodeInstructions: true\r\n }, FORMAT_NAME));\r\n\r\n return result.decoder;\r\n}\r\n\r\n/**\r\n * CarbonEngineJS-facing DXBC (Direct3D shader bytecode) reader.\r\n *\r\n * The Cjs prefix marks this as a JavaScript format/construction boundary.\r\n * DXBC is Microsoft's compiled-shader container format; this reader has no\r\n * CCP/Carbon vocabulary. It parses the container, signatures and the\r\n * SM4/SM5 token stream, and emits plain JSON data by default or the raw\r\n * decoder objects for backends (GLSL/WGSL emitters) that want them.\r\n */\r\nexport class CjsDxbcFormat extends CjsFormat\r\n{\r\n\r\n #emit = DEFAULT_VALUES.emit;\r\n #source = DEFAULT_VALUES.source;\r\n #decodeInstructions = DEFAULT_VALUES.decodeInstructions;\r\n\r\n /**\r\n * Create a reusable format profile.\r\n *\r\n * @param {object} [options] Default format values.\r\n */\r\n constructor(options = {})\r\n {\r\n super();\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Set format values for this reusable profile.\r\n *\r\n * @param {object} [options] Values to merge into the profile.\r\n * @returns {CjsDxbcFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n const values = normalizeValues(this.GetValues(), options, FORMAT_NAME);\r\n\r\n this.#emit = values.emit;\r\n this.#source = values.source;\r\n this.#decodeInstructions = values.decodeInstructions;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get this profile's current values, optionally with per-call overrides.\r\n *\r\n * @param {object} [options] Optional values to merge into a copy.\r\n * @returns {object} A copy of the effective values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues({\r\n emit: this.#emit,\r\n source: this.#source,\r\n decodeInstructions: this.#decodeInstructions\r\n }, options, FORMAT_NAME);\r\n }\r\n\r\n /**\r\n * Read a DXBC payload with this profile's values.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Per-call value overrides.\r\n * @returns {object} Plain JSON data, or raw decoder objects when emit is \"raw\".\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Inspect a DXBC payload without decoding instructions.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Per-call value overrides.\r\n * @returns {object} Plain summary data.\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Static payload sniff. Static methods use camelCase by convention.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.\r\n * @returns {boolean} True when the payload starts with the DXBC magic.\r\n */\r\n static isDxbc(input)\r\n {\r\n try\r\n {\r\n return DxbcContainer.IsDxbc(input);\r\n }\r\n catch\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Static one-shot read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Format values.\r\n * @returns {object} Plain JSON data, or raw decoder objects when emit is \"raw\".\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Static one-shot inspection.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Format values.\r\n * @returns {object} Plain summary data.\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Static one-shot disassembly.\r\n *\r\n * A translated shader can only be judged against the bytecode it was\r\n * translated from, so the listing exists to be read beside emitted GLSL or\r\n * WGSL. Accepts DXBC bytes or an already-decoded result from `read`.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView|object} input DXBC bytes,\r\n * a read result, or a decoder record.\r\n * @param {object} [options] Listing options plus format values.\r\n * @returns {string} Assembly listing.\r\n */\r\n static disassemble(input, options = {})\r\n {\r\n const decoder = resolveDecoderRecord(input, options);\r\n\r\n return disassembleInstructions(decoder, options);\r\n }\r\n\r\n /**\r\n * Static JSON-compatible conversion.\r\n *\r\n * @param {any} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n static OUTPUT_JSON = OUTPUT_JSON;\r\n static OUTPUT_RAW = OUTPUT_RAW;\r\n static id = \"dxbc\";\r\n static mediaTypes = Object.freeze([ \"shader\" ]);\r\n static outputs = CjsFormat.defineOutputs({\r\n json: { default: true, decoded: true },\r\n raw: { role: \"debug\", decoded: true }\r\n });\r\n static extensions = Object.freeze([]);\r\n\r\n}\r\n\r\nexport default CjsDxbcFormat;\r\n"],"names":["FORMAT_NAME","resolveDecoderRecord","input","options","Array","isArray","instructions","decoder","result","readWithValues","normalizeValues","DEFAULT_VALUES","emit","OUTPUT_RAW","decodeInstructions","CjsDxbcFormat","CjsFormat","source","constructor","SetValues","values","GetValues","Read","Inspect","inspectWithValues","isDxbc","DxbcContainer","IsDxbc","read","inspect","disassemble","disassembleInstructions","toJSON","value","toJsonValue","OUTPUT_JSON","id","mediaTypes","Object","freeze","outputs","defineOutputs","json","default","decoded","raw","role","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsDxbcFormat.js","sources":["../../../../../src/resource/formats/dxbc/CjsDxbcFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\r\n/**\r\n * Exposed CarbonEngineJS-facing DXBC format class.\r\n *\r\n * Keep this file small and reviewable: container/signature/program parsing\r\n * and the instruction decoder live in core/; input/option normalization and\r\n * the shared read path live in core/helpers.js.\r\n */\r\n\r\nimport { DxbcContainer } from \"./core/container.js\";\r\nimport { disassembleInstructions } from \"./core/disassemble.js\";\r\nimport {\r\n DEFAULT_VALUES,\r\n OUTPUT_JSON,\r\n OUTPUT_RAW,\r\n inspectWithValues,\r\n normalizeValues,\r\n readWithValues,\r\n toJsonValue\r\n} from \"./core/helpers.js\";\r\n\r\nconst FORMAT_NAME = \"CjsDxbcFormat\";\r\n\r\n/**\r\n * Resolves whatever the caller has to the decoder record a listing needs.\r\n *\r\n * Callers reach disassembly from three places: raw bytes, the result of a\r\n * previous read they do not want to repeat, and a decoder they already hold\r\n * from an emitter. All three are accepted so the listing never costs a second\r\n * decode.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView|object} input Bytes or record.\r\n * @param {object} options Format values for the byte path.\r\n * @returns {object} Record carrying an `instructions` array.\r\n */\r\nfunction resolveDecoderRecord(input, options)\r\n{\r\n if (input && typeof input === \"object\" && Array.isArray(input.instructions))\r\n {\r\n return input;\r\n }\r\n\r\n if (input && typeof input === \"object\" && input.decoder)\r\n {\r\n return input.decoder;\r\n }\r\n\r\n const result = readWithValues(input, normalizeValues(DEFAULT_VALUES, {\r\n ...options,\r\n emit: OUTPUT_RAW,\r\n decodeInstructions: true\r\n }, FORMAT_NAME));\r\n\r\n return result.decoder;\r\n}\r\n\r\n/**\r\n * CarbonEngineJS-facing DXBC (Direct3D shader bytecode) reader.\r\n *\r\n * The Cjs prefix marks this as a JavaScript format/construction boundary.\r\n * DXBC is Microsoft's compiled-shader container format; this reader has no\r\n * CCP/Carbon vocabulary. It parses the container, signatures and the\r\n * SM4/SM5 token stream, and emits plain JSON data by default or the raw\r\n * decoder objects for backends (GLSL/WGSL emitters) that want them.\r\n */\r\nexport class CjsDxbcFormat extends CjsFormat\r\n{\r\n\r\n #emit = DEFAULT_VALUES.emit;\r\n #source = DEFAULT_VALUES.source;\r\n #decodeInstructions = DEFAULT_VALUES.decodeInstructions;\r\n\r\n /**\r\n * Create a reusable format profile.\r\n *\r\n * @param {object} [options] Default format values.\r\n */\r\n constructor(options = {})\r\n {\r\n super();\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Set format values for this reusable profile.\r\n *\r\n * @param {object} [options] Values to merge into the profile.\r\n * @returns {CjsDxbcFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n const values = normalizeValues(this.GetValues(), options, FORMAT_NAME);\r\n\r\n this.#emit = values.emit;\r\n this.#source = values.source;\r\n this.#decodeInstructions = values.decodeInstructions;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get this profile's current values, optionally with per-call overrides.\r\n *\r\n * @param {object} [options] Optional values to merge into a copy.\r\n * @returns {object} A copy of the effective values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues({\r\n emit: this.#emit,\r\n source: this.#source,\r\n decodeInstructions: this.#decodeInstructions\r\n }, options, FORMAT_NAME);\r\n }\r\n\r\n /**\r\n * Read a DXBC payload with this profile's values.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Per-call value overrides.\r\n * @returns {object} Plain JSON data, or raw decoder objects when emit is \"raw\".\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Inspect a DXBC payload without decoding instructions.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Per-call value overrides.\r\n * @returns {object} Plain summary data.\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Static payload sniff. Static methods use camelCase by convention.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.\r\n * @returns {boolean} True when the payload starts with the DXBC magic.\r\n */\r\n static isDxbc(input)\r\n {\r\n try\r\n {\r\n return DxbcContainer.IsDxbc(input);\r\n }\r\n catch\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Static one-shot read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Format values.\r\n * @returns {object} Plain JSON data, or raw decoder objects when emit is \"raw\".\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Static one-shot inspection.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input DXBC bytes.\r\n * @param {object} [options] Format values.\r\n * @returns {object} Plain summary data.\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Static one-shot disassembly.\r\n *\r\n * A translated shader can only be judged against the bytecode it was\r\n * translated from, so the listing exists to be read beside emitted GLSL or\r\n * WGSL. Accepts DXBC bytes or an already-decoded result from `read`.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView|object} input DXBC bytes,\r\n * a read result, or a decoder record.\r\n * @param {object} [options] Listing options plus format values.\r\n * @returns {string} Assembly listing.\r\n */\r\n static disassemble(input, options = {})\r\n {\r\n const decoder = resolveDecoderRecord(input, options);\r\n\r\n return disassembleInstructions(decoder, options);\r\n }\r\n\r\n /**\r\n * Static JSON-compatible conversion.\r\n *\r\n * @param {any} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n static OUTPUT_JSON = OUTPUT_JSON;\r\n static OUTPUT_RAW = OUTPUT_RAW;\r\n static id = \"dxbc\";\r\n static mediaTypes = Object.freeze([ \"shader\" ]);\r\n static outputs = CjsFormat.defineOutputs({\r\n json: { default: true, decoded: true },\r\n raw: { role: \"debug\", decoded: true }\r\n });\r\n static extensions = Object.freeze([]);\r\n\r\n}\r\n\r\nexport default CjsDxbcFormat;\r\n"],"names":["FORMAT_NAME","resolveDecoderRecord","input","options","Array","isArray","instructions","decoder","result","readWithValues","normalizeValues","DEFAULT_VALUES","emit","OUTPUT_RAW","decodeInstructions","CjsDxbcFormat","CjsFormat","source","constructor","SetValues","values","GetValues","Read","Inspect","inspectWithValues","isDxbc","DxbcContainer","IsDxbc","read","inspect","disassemble","disassembleInstructions","toJSON","value","toJsonValue","OUTPUT_JSON","id","mediaTypes","Object","freeze","outputs","defineOutputs","json","default","decoded","raw","role","extensions"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toJsonWithCollections } from '../../../format/jsonPolicies.js';
|
|
1
2
|
import { asUint8Array } from '#utils/bytes';
|
|
2
3
|
import { DxbcContainer } from './container.js';
|
|
3
4
|
import { DxbcSignatureChunk } from './signature.js';
|
|
@@ -110,7 +111,7 @@ function readRaw(input, values) {
|
|
|
110
111
|
* @returns {object} Plain data.
|
|
111
112
|
*/
|
|
112
113
|
function rawToJson(raw) {
|
|
113
|
-
return
|
|
114
|
+
return toJsonWithCollections({
|
|
114
115
|
source: raw.source,
|
|
115
116
|
container: raw.container.toJSON(),
|
|
116
117
|
program: raw.program ? {
|
|
@@ -152,7 +153,7 @@ function inspectWithValues(input, values) {
|
|
|
152
153
|
...values,
|
|
153
154
|
decodeInstructions: false
|
|
154
155
|
});
|
|
155
|
-
return
|
|
156
|
+
return toJsonWithCollections({
|
|
156
157
|
source: raw.source,
|
|
157
158
|
isDxbc: true,
|
|
158
159
|
version: raw.container.version,
|
|
@@ -173,34 +174,5 @@ function inspectWithValues(input, values) {
|
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
|
|
176
|
-
|
|
177
|
-
* Deep-convert a value to plain JSON-compatible data. Typed arrays become
|
|
178
|
-
* plain number arrays; Maps/Sets become objects/arrays; class instances
|
|
179
|
-
* with toJSON are honoured.
|
|
180
|
-
*
|
|
181
|
-
* @param {any} value Value to convert.
|
|
182
|
-
* @returns {any} Plain data.
|
|
183
|
-
*/
|
|
184
|
-
function toJsonValue(value) {
|
|
185
|
-
if (value === null || value === undefined) return value ?? null;
|
|
186
|
-
if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") return value;
|
|
187
|
-
if (typeof value === "bigint") return value.toString();
|
|
188
|
-
if (ArrayBuffer.isView(value)) return Array.from(value);
|
|
189
|
-
if (Array.isArray(value)) return value.map(toJsonValue);
|
|
190
|
-
if (value instanceof Map) {
|
|
191
|
-
const out = {};
|
|
192
|
-
for (const [key, entry] of value) out[key] = toJsonValue(entry);
|
|
193
|
-
return out;
|
|
194
|
-
}
|
|
195
|
-
if (value instanceof Set) return Array.from(value, toJsonValue);
|
|
196
|
-
if (typeof value === "object") {
|
|
197
|
-
if (typeof value.toJSON === "function") return toJsonValue(value.toJSON());
|
|
198
|
-
const out = {};
|
|
199
|
-
for (const key of Object.keys(value)) out[key] = toJsonValue(value[key]);
|
|
200
|
-
return out;
|
|
201
|
-
}
|
|
202
|
-
return null;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, inspectWithValues, normalizeValues, rawToJson, readRaw, readWithValues, toJsonValue };
|
|
177
|
+
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, inspectWithValues, normalizeValues, rawToJson, readRaw, readWithValues, toJsonWithCollections as toJsonValue };
|
|
206
178
|
//# sourceMappingURL=helpers.js.map
|