@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/global/blue/BlueClasses.js +200 -0
- package/dist/global/blue/BlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueClasses.js +79 -0
- package/dist/global/blue/IBlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
- package/dist/global/blue/blue.js +8 -2
- package/dist/global/blue/blue.js.map +1 -1
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/consts/index.js +0 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/renderContext/formats.js +26 -25
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
- package/dist/global/imageio/BitmapDimensions.js.map +1 -0
- package/dist/global/imageio/Cutout.js +28 -0
- package/dist/global/imageio/Cutout.js.map +1 -0
- package/dist/global/imageio/HostBitmap.js +1106 -0
- package/dist/global/imageio/HostBitmap.js.map +1 -0
- package/dist/global/imageio/ImageIOResult.js +99 -0
- package/dist/global/imageio/ImageIOResult.js.map +1 -0
- package/dist/global/imageio/ImageUtility.js +205 -0
- package/dist/global/imageio/ImageUtility.js.map +1 -0
- package/dist/global/imageio/LoadParameters.js +86 -0
- package/dist/global/imageio/LoadParameters.js.map +1 -0
- package/dist/global/imageio/Metadata.js +22 -0
- package/dist/global/imageio/Metadata.js.map +1 -0
- package/dist/global/imageio/index.js +8 -0
- package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
- package/dist/global/index.js +2 -1
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/color.js +1 -1
- package/dist/global/math/color.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +8 -0
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +47 -7
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +37 -0
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/format/CjsByteWriter.js +46 -46
- package/dist/resource/format/CjsByteWriter.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +7 -8
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatStore.js +8 -8
- package/dist/resource/format/CjsFormatStore.js.map +1 -1
- package/dist/resource/format/CjsGeometryFormat.js +114 -0
- package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
- package/dist/resource/format/CjsImageFormat.js +282 -0
- package/dist/resource/format/CjsImageFormat.js.map +1 -0
- package/dist/resource/format/CjsResourceProbe.js +12 -48
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/CjsStringTable.js +37 -37
- package/dist/resource/format/CjsStringTable.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +3 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
- package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +1 -3
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/constants.js +1 -2
- package/dist/resource/formats/cmf/core/constants.js.map +1 -1
- package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
- package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
- package/dist/resource/formats/cmf/core/helpers.js +13 -13
- package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/core/writer.js +24 -24
- package/dist/resource/formats/cmf/core/writer.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +125 -40
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
- package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
- package/dist/resource/formats/dxbc/core/decoder.js +2 -2
- package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +3 -3
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
- package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
- package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -12
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
- package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
- package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +3 -5
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
- package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +3 -5
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +3 -5
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +5 -113
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +40 -15
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +4 -6
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/red/CjsRedFormat.js +22 -28
- package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
- package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +5 -19
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +3 -5
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +3 -5
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
- package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
- package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
- package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +3 -5
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +35 -35
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -3
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
- package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/resource/imageio/ImageIO.js +142 -0
- package/dist/resource/imageio/ImageIO.js.map +1 -0
- package/dist/resource/imageio/index.js +17 -0
- package/dist/resource/imageio/index.js.map +1 -0
- package/dist/resource/index.js +7 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
- package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +100 -68
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +151 -29
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +7 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/registerTextureResources.js +83 -0
- package/dist/resource/texture/registerTextureResources.js.map +1 -0
- package/dist/resource/texture/solidColorTexture.js +10 -19
- package/dist/resource/texture/solidColorTexture.js.map +1 -1
- package/dist/sof/EveSOF.js +39 -7
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
- package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
- package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
- package/dist/trinity/core/Tr2RenderUtils.js +1 -1
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
- package/dist/trinity/core/Tr2TextureReference.js +114 -0
- package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
- package/dist/trinity/core/procedural/gradientTexture.js +10 -13
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +102 -50
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +242 -234
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +57 -16
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/index.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +3 -3
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
- package/dist/trinityal/index.js +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +1 -0
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/global/reference/classes/README.md +90 -0
- package/docs/resource/concepts/format-capabilities.md +3 -3
- package/docs/resource/formats/README.md +1 -1
- package/docs/resource/reference/classes/core.md +31 -1
- package/docs/resource/reference/classes/formats.md +7 -7
- package/docs/resource/reference/classes/resources.md +76 -16
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
- package/docs/trinityal/reference/classes/README.md +0 -10
- package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
- package/package.json +4 -3
- package/dist/global/consts/webgpu/index.js +0 -2
- package/dist/global/consts/webgpu/textureFormats.js +0 -180
- package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
- package/dist/resource/formats/dxbc/core/container.js.map +0 -1
- package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
- package/dist/resource/formats/dxbc/core/program.js.map +0 -1
- package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
- package/dist/resource/formats/stl/core/targets.js.map +0 -1
- package/dist/resource/formats/webgl/core/errors.js.map +0 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
- package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
- package/dist/resource/texture/texturePipelineBehavior.js +0 -332
- package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
- package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CjsSchema } from '#schema';
|
|
2
2
|
import { CjsResource } from './CjsResource.js';
|
|
3
3
|
import { assertResourcePayloadObject } from './resourceBoundary.js';
|
|
4
|
+
import { HostBitmap } from '#imageio';
|
|
5
|
+
import { PixelFormat } from '#consts/render-context';
|
|
4
6
|
import { ResourceRequirement } from './ResourceRequirement.js';
|
|
5
7
|
|
|
6
8
|
// Source: trinity/trinity/Resources/Tr2LightProfileRes.h
|
|
@@ -21,6 +23,12 @@ class Tr2LightProfileRes extends CjsResource {
|
|
|
21
23
|
// only GetElementIndex/Release, never the array class.
|
|
22
24
|
#element = null;
|
|
23
25
|
|
|
26
|
+
/**
|
|
27
|
+
* m_bitmap: the baked profile, a 1024x1 `PIXEL_FORMAT_R16_FLOAT` strip with a
|
|
28
|
+
* full mip chain (Tr2LightProfileRes.cpp:13-15, 198-215). Invalid until loaded.
|
|
29
|
+
*/
|
|
30
|
+
bitmap = new HostBitmap();
|
|
31
|
+
|
|
24
32
|
/** Updates payload in the current resource payload lifecycle. */
|
|
25
33
|
SetPayload(payload = null) {
|
|
26
34
|
if (payload === null) {
|
|
@@ -31,14 +39,43 @@ class Tr2LightProfileRes extends CjsResource {
|
|
|
31
39
|
this.#element.Release();
|
|
32
40
|
this.#element = null;
|
|
33
41
|
}
|
|
42
|
+
this.bitmap = new HostBitmap();
|
|
34
43
|
super.SetPayload(null);
|
|
35
44
|
return this;
|
|
36
45
|
}
|
|
37
46
|
assertResourcePayloadObject("Tr2LightProfileRes", payload);
|
|
47
|
+
this.bitmap = Tr2LightProfileRes.bitmapFromBake(payload);
|
|
38
48
|
super.SetPayload(payload);
|
|
39
49
|
return this;
|
|
40
50
|
}
|
|
41
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Carbon's `m_bitmap`, which it hands to the light-profile array
|
|
54
|
+
* (Tr2LightProfileRes.cpp:95-99).
|
|
55
|
+
*
|
|
56
|
+
* @returns {HostBitmap} The baked profile; invalid until loaded.
|
|
57
|
+
*/
|
|
58
|
+
GetBitmap() {
|
|
59
|
+
return this.bitmap;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The baked profile as Carbon's bitmap. The IES bake already writes Carbon's
|
|
64
|
+
* bytes - half floats, one mip after another - which is exactly a 1024x1
|
|
65
|
+
* R16_FLOAT HostBitmap's memory, so this is a copy, not a conversion.
|
|
66
|
+
*
|
|
67
|
+
* @param {{width: number, samples: Uint16Array}} bake The IES reader's lightProfile output.
|
|
68
|
+
* @returns {HostBitmap} The bitmap; invalid when the bake has no samples.
|
|
69
|
+
*/
|
|
70
|
+
static bitmapFromBake(bake) {
|
|
71
|
+
const bitmap = new HostBitmap();
|
|
72
|
+
if (!(bake.samples instanceof Uint16Array)) return bitmap;
|
|
73
|
+
if (!bitmap.Create(bake.width, 1, 0, PixelFormat.PIXEL_FORMAT_R16_FLOAT)) return bitmap;
|
|
74
|
+
const raw = bitmap.GetRawData();
|
|
75
|
+
raw.set(new Uint8Array(bake.samples.buffer, bake.samples.byteOffset, Math.min(bake.samples.byteLength, raw.byteLength)));
|
|
76
|
+
return bitmap;
|
|
77
|
+
}
|
|
78
|
+
|
|
42
79
|
/**
|
|
43
80
|
* Accepts the profile array slice handle from the trinity seam.
|
|
44
81
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2LightProfileRes.js","sources":["../../../src/resource/Tr2LightProfileRes.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2LightProfileRes.h\nimport { CjsSchema } from \"#schema\";\nimport { CjsResource } from \"./CjsResource.js\";\nimport { assertResourcePayloadObject } from \"./resourceBoundary.js\";\nimport { ResourceRequirement } from \"./ResourceRequirement.js\";\n\n/**\n * Runtime-owned light-profile resource.\n *\n * The attached plain payload may be richer than the data retained by the\n * resource or active engine adapter.\n */\nexport class Tr2LightProfileRes extends CjsResource\n{\n // The light-profile array slice this resource occupies, or null before\n // registration. Carbon's DoPrepare acquires it (Tr2LightProfileRes.cpp:\n // 95-99: GetLightProfileArray().AddElement(m_bitmap)), but here the\n // resource layer cannot import trinity, so TRINITY registers the element\n // at first pack (Tr2LightManager.#ProfileSlot) and hands the handle in\n // through RegisterProfileElement. Duck-typed on purpose: this class knows\n // only GetElementIndex/Release, never the array class.\n #element = null;\n\n /** Updates payload in the current resource payload lifecycle. */\n SetPayload(payload = null)\n {\n if (payload === null)\n {\n // Losing the payload releases the slice - Carbon's element handle\n // frees its slot when the resource lets go (Tr2TextureArray.cpp:\n // 233-236); with no destructors the unload path is the release site.\n if (this.#element)\n {\n this.#element.Release();\n this.#element = null;\n }\n super.SetPayload(null);\n return this;\n }\n assertResourcePayloadObject(\"Tr2LightProfileRes\", payload);\n super.SetPayload(payload);\n return this;\n }\n\n /**\n * Accepts the profile array slice handle from the trinity seam.\n *\n * @param {{GetElementIndex: Function, Release: Function}} element\n * @returns {Tr2LightProfileRes} this\n */\n RegisterProfileElement(element)\n {\n if (this.#element && this.#element !== element)\n {\n this.#element.Release();\n }\n this.#element = element ?? null;\n return this;\n }\n\n /**\n * The texture-array slice this profile occupies, or -1 when unregistered.\n *\n * Carbon returns the raw element index and an INVALID handle reports 0\n * (Tr2TextureArrayElement, cpp:216-219) - indistinguishable from slot 0,\n * with the +1 bias left to consumers. The -1 sentinel here is deliberate\n * (matching the proven ccpwgl port): the consumer maps negative to the\n * biased 0, and an unloaded profile can never alias slot 0.\n *\n * @returns {number} Slice index, or -1.\n */\n GetTextureIndex()\n {\n return this.#element ? this.#element.GetElementIndex() : -1;\n }\n\n static payload = ResourceRequirement.LIGHT_PROFILE;\n}\n\nCjsSchema.define(Tr2LightProfileRes, {\n className: \"Tr2LightProfileRes\",\n family: \"resources\"\n});\n"],"names":["Tr2LightProfileRes","CjsResource","SetPayload","payload","Release","assertResourcePayloadObject","RegisterProfileElement","element","GetTextureIndex","GetElementIndex","ResourceRequirement","LIGHT_PROFILE","CjsSchema","define","className","family"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tr2LightProfileRes.js","sources":["../../../src/resource/Tr2LightProfileRes.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2LightProfileRes.h\nimport { CjsSchema } from \"#schema\";\nimport { CjsResource } from \"./CjsResource.js\";\nimport { assertResourcePayloadObject } from \"./resourceBoundary.js\";\nimport { HostBitmap } from \"#imageio\";\nimport { PixelFormat } from \"#consts/render-context\";\nimport { ResourceRequirement } from \"./ResourceRequirement.js\";\n\n/**\n * Runtime-owned light-profile resource.\n *\n * The attached plain payload may be richer than the data retained by the\n * resource or active engine adapter.\n */\nexport class Tr2LightProfileRes extends CjsResource\n{\n // The light-profile array slice this resource occupies, or null before\n // registration. Carbon's DoPrepare acquires it (Tr2LightProfileRes.cpp:\n // 95-99: GetLightProfileArray().AddElement(m_bitmap)), but here the\n // resource layer cannot import trinity, so TRINITY registers the element\n // at first pack (Tr2LightManager.#ProfileSlot) and hands the handle in\n // through RegisterProfileElement. Duck-typed on purpose: this class knows\n // only GetElementIndex/Release, never the array class.\n #element = null;\n\n /**\n * m_bitmap: the baked profile, a 1024x1 `PIXEL_FORMAT_R16_FLOAT` strip with a\n * full mip chain (Tr2LightProfileRes.cpp:13-15, 198-215). Invalid until loaded.\n */\n bitmap = new HostBitmap();\n\n /** Updates payload in the current resource payload lifecycle. */\n SetPayload(payload = null)\n {\n if (payload === null)\n {\n // Losing the payload releases the slice - Carbon's element handle\n // frees its slot when the resource lets go (Tr2TextureArray.cpp:\n // 233-236); with no destructors the unload path is the release site.\n if (this.#element)\n {\n this.#element.Release();\n this.#element = null;\n }\n this.bitmap = new HostBitmap();\n super.SetPayload(null);\n return this;\n }\n assertResourcePayloadObject(\"Tr2LightProfileRes\", payload);\n this.bitmap = Tr2LightProfileRes.bitmapFromBake(payload);\n super.SetPayload(payload);\n return this;\n }\n\n /**\n * Carbon's `m_bitmap`, which it hands to the light-profile array\n * (Tr2LightProfileRes.cpp:95-99).\n *\n * @returns {HostBitmap} The baked profile; invalid until loaded.\n */\n GetBitmap()\n {\n return this.bitmap;\n }\n\n /**\n * The baked profile as Carbon's bitmap. The IES bake already writes Carbon's\n * bytes - half floats, one mip after another - which is exactly a 1024x1\n * R16_FLOAT HostBitmap's memory, so this is a copy, not a conversion.\n *\n * @param {{width: number, samples: Uint16Array}} bake The IES reader's lightProfile output.\n * @returns {HostBitmap} The bitmap; invalid when the bake has no samples.\n */\n static bitmapFromBake(bake)\n {\n const bitmap = new HostBitmap();\n\n if (!(bake.samples instanceof Uint16Array)) return bitmap;\n if (!bitmap.Create(bake.width, 1, 0, PixelFormat.PIXEL_FORMAT_R16_FLOAT)) return bitmap;\n\n const raw = bitmap.GetRawData();\n raw.set(new Uint8Array(bake.samples.buffer, bake.samples.byteOffset, Math.min(bake.samples.byteLength, raw.byteLength)));\n return bitmap;\n }\n\n /**\n * Accepts the profile array slice handle from the trinity seam.\n *\n * @param {{GetElementIndex: Function, Release: Function}} element\n * @returns {Tr2LightProfileRes} this\n */\n RegisterProfileElement(element)\n {\n if (this.#element && this.#element !== element)\n {\n this.#element.Release();\n }\n this.#element = element ?? null;\n return this;\n }\n\n /**\n * The texture-array slice this profile occupies, or -1 when unregistered.\n *\n * Carbon returns the raw element index and an INVALID handle reports 0\n * (Tr2TextureArrayElement, cpp:216-219) - indistinguishable from slot 0,\n * with the +1 bias left to consumers. The -1 sentinel here is deliberate\n * (matching the proven ccpwgl port): the consumer maps negative to the\n * biased 0, and an unloaded profile can never alias slot 0.\n *\n * @returns {number} Slice index, or -1.\n */\n GetTextureIndex()\n {\n return this.#element ? this.#element.GetElementIndex() : -1;\n }\n\n static payload = ResourceRequirement.LIGHT_PROFILE;\n}\n\nCjsSchema.define(Tr2LightProfileRes, {\n className: \"Tr2LightProfileRes\",\n family: \"resources\"\n});\n"],"names":["Tr2LightProfileRes","CjsResource","bitmap","HostBitmap","SetPayload","payload","Release","assertResourcePayloadObject","bitmapFromBake","GetBitmap","bake","samples","Uint16Array","Create","width","PixelFormat","PIXEL_FORMAT_R16_FLOAT","raw","GetRawData","set","Uint8Array","buffer","byteOffset","Math","min","byteLength","RegisterProfileElement","element","GetTextureIndex","GetElementIndex","ResourceRequirement","LIGHT_PROFILE","CjsSchema","define","className","family"],"mappings":";;;;;;;AAAA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,kBAAkB,SAASC,WAAW,CACnD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;EACA,QAAQ,GAAG,IAAI;;AAEf;AACF;AACA;AACA;AACEC,EAAAA,MAAM,GAAG,IAAIC,UAAU,EAAE;;AAEzB;AACAC,EAAAA,UAAUA,CAACC,OAAO,GAAG,IAAI,EACzB;IACE,IAAIA,OAAO,KAAK,IAAI,EACpB;AACE;AACA;AACA;AACA,MAAA,IAAI,IAAI,CAAC,QAAQ,EACjB;AACE,QAAA,IAAI,CAAC,QAAQ,CAACC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACtB,MAAA;AACA,MAAA,IAAI,CAACJ,MAAM,GAAG,IAAIC,UAAU,EAAE;AAC9B,MAAA,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC;AACtB,MAAA,OAAO,IAAI;AACb,IAAA;AACAG,IAAAA,2BAA2B,CAAC,oBAAoB,EAAEF,OAAO,CAAC;IAC1D,IAAI,CAACH,MAAM,GAAGF,kBAAkB,CAACQ,cAAc,CAACH,OAAO,CAAC;AACxD,IAAA,KAAK,CAACD,UAAU,CAACC,OAAO,CAAC;AACzB,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEI,EAAAA,SAASA,GACT;IACE,OAAO,IAAI,CAACP,MAAM;AACpB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOM,cAAcA,CAACE,IAAI,EAC1B;AACE,IAAA,MAAMR,MAAM,GAAG,IAAIC,UAAU,EAAE;IAE/B,IAAI,EAAEO,IAAI,CAACC,OAAO,YAAYC,WAAW,CAAC,EAAE,OAAOV,MAAM;AACzD,IAAA,IAAI,CAACA,MAAM,CAACW,MAAM,CAACH,IAAI,CAACI,KAAK,EAAE,CAAC,EAAE,CAAC,EAAEC,WAAW,CAACC,sBAAsB,CAAC,EAAE,OAAOd,MAAM;AAEvF,IAAA,MAAMe,GAAG,GAAGf,MAAM,CAACgB,UAAU,EAAE;AAC/BD,IAAAA,GAAG,CAACE,GAAG,CAAC,IAAIC,UAAU,CAACV,IAAI,CAACC,OAAO,CAACU,MAAM,EAAEX,IAAI,CAACC,OAAO,CAACW,UAAU,EAAEC,IAAI,CAACC,GAAG,CAACd,IAAI,CAACC,OAAO,CAACc,UAAU,EAAER,GAAG,CAACQ,UAAU,CAAC,CAAC,CAAC;AACxH,IAAA,OAAOvB,MAAM;AACf,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEwB,sBAAsBA,CAACC,OAAO,EAC9B;IACE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAKA,OAAO,EAC9C;AACE,MAAA,IAAI,CAAC,QAAQ,CAACrB,OAAO,EAAE;AACzB,IAAA;AACA,IAAA,IAAI,CAAC,QAAQ,GAAGqB,OAAO,IAAI,IAAI;AAC/B,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,eAAeA,GACf;AACE,IAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAACC,eAAe,EAAE,GAAG,EAAE;AAC7D,EAAA;AAEA,EAAA,OAAOxB,OAAO,GAAGyB,mBAAmB,CAACC,aAAa;AACpD;AAEAC,SAAS,CAACC,MAAM,CAACjC,kBAAkB,EAAE;AACnCkC,EAAAA,SAAS,EAAE,oBAAoB;AAC/BC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;;;;"}
|
|
@@ -16,9 +16,9 @@ const textEncoder = new TextEncoder();
|
|
|
16
16
|
* just "keep the offset an append returned".
|
|
17
17
|
*/
|
|
18
18
|
class CjsByteWriter {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
_bytes;
|
|
20
|
+
_view;
|
|
21
|
+
_length = 0;
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Creates an empty writer with an initial capacity.
|
|
@@ -27,8 +27,8 @@ class CjsByteWriter {
|
|
|
27
27
|
*/
|
|
28
28
|
constructor(initialCapacity = 1024) {
|
|
29
29
|
const capacity = Number.isInteger(initialCapacity) && initialCapacity > 0 ? initialCapacity : 1024;
|
|
30
|
-
this
|
|
31
|
-
this
|
|
30
|
+
this._bytes = new Uint8Array(capacity);
|
|
31
|
+
this._view = new DataView(this._bytes.buffer);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
@@ -37,7 +37,7 @@ class CjsByteWriter {
|
|
|
37
37
|
* @returns {number} Written byte count.
|
|
38
38
|
*/
|
|
39
39
|
get length() {
|
|
40
|
-
return this
|
|
40
|
+
return this._length;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
/**
|
|
@@ -47,8 +47,8 @@ class CjsByteWriter {
|
|
|
47
47
|
* @returns {number} Offset the value was written at.
|
|
48
48
|
*/
|
|
49
49
|
u8(value) {
|
|
50
|
-
const offset = this
|
|
51
|
-
this
|
|
50
|
+
const offset = this._advance(1);
|
|
51
|
+
this._view.setUint8(offset, value & 0xff);
|
|
52
52
|
return offset;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -59,8 +59,8 @@ class CjsByteWriter {
|
|
|
59
59
|
* @returns {number} Offset the value was written at.
|
|
60
60
|
*/
|
|
61
61
|
u16(value) {
|
|
62
|
-
const offset = this
|
|
63
|
-
this
|
|
62
|
+
const offset = this._advance(2);
|
|
63
|
+
this._view.setUint16(offset, value & 0xffff, true);
|
|
64
64
|
return offset;
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -71,8 +71,8 @@ class CjsByteWriter {
|
|
|
71
71
|
* @returns {number} Offset the value was written at.
|
|
72
72
|
*/
|
|
73
73
|
i16(value) {
|
|
74
|
-
const offset = this
|
|
75
|
-
this
|
|
74
|
+
const offset = this._advance(2);
|
|
75
|
+
this._view.setInt16(offset, value | 0, true);
|
|
76
76
|
return offset;
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -83,8 +83,8 @@ class CjsByteWriter {
|
|
|
83
83
|
* @returns {number} Offset the value was written at.
|
|
84
84
|
*/
|
|
85
85
|
u32(value) {
|
|
86
|
-
const offset = this
|
|
87
|
-
this
|
|
86
|
+
const offset = this._advance(4);
|
|
87
|
+
this._view.setUint32(offset, value >>> 0, true);
|
|
88
88
|
return offset;
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -95,8 +95,8 @@ class CjsByteWriter {
|
|
|
95
95
|
* @returns {number} Offset the value was written at.
|
|
96
96
|
*/
|
|
97
97
|
i32(value) {
|
|
98
|
-
const offset = this
|
|
99
|
-
this
|
|
98
|
+
const offset = this._advance(4);
|
|
99
|
+
this._view.setInt32(offset, value | 0, true);
|
|
100
100
|
return offset;
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -107,8 +107,8 @@ class CjsByteWriter {
|
|
|
107
107
|
* @returns {number} Offset the value was written at.
|
|
108
108
|
*/
|
|
109
109
|
i64(value) {
|
|
110
|
-
const offset = this
|
|
111
|
-
this
|
|
110
|
+
const offset = this._advance(8);
|
|
111
|
+
this._view.setBigInt64(offset, BigInt(value), true);
|
|
112
112
|
return offset;
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -119,8 +119,8 @@ class CjsByteWriter {
|
|
|
119
119
|
* @returns {number} Offset the value was written at.
|
|
120
120
|
*/
|
|
121
121
|
f32(value) {
|
|
122
|
-
const offset = this
|
|
123
|
-
this
|
|
122
|
+
const offset = this._advance(4);
|
|
123
|
+
this._view.setFloat32(offset, Number(value) || 0, true);
|
|
124
124
|
return offset;
|
|
125
125
|
}
|
|
126
126
|
|
|
@@ -131,8 +131,8 @@ class CjsByteWriter {
|
|
|
131
131
|
* @returns {number} Offset the value was written at.
|
|
132
132
|
*/
|
|
133
133
|
f64(value) {
|
|
134
|
-
const offset = this
|
|
135
|
-
this
|
|
134
|
+
const offset = this._advance(8);
|
|
135
|
+
this._view.setFloat64(offset, Number(value) || 0, true);
|
|
136
136
|
return offset;
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -154,8 +154,8 @@ class CjsByteWriter {
|
|
|
154
154
|
*/
|
|
155
155
|
bytes(value) {
|
|
156
156
|
const source = value instanceof Uint8Array ? value : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
157
|
-
const offset = this
|
|
158
|
-
this
|
|
157
|
+
const offset = this._advance(source.byteLength);
|
|
158
|
+
this._bytes.set(source, offset);
|
|
159
159
|
return offset;
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -181,8 +181,8 @@ class CjsByteWriter {
|
|
|
181
181
|
count
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
|
-
const offset = this
|
|
185
|
-
this
|
|
184
|
+
const offset = this._advance(count);
|
|
185
|
+
this._bytes.fill(0, offset, offset + count);
|
|
186
186
|
return offset;
|
|
187
187
|
}
|
|
188
188
|
|
|
@@ -193,8 +193,8 @@ class CjsByteWriter {
|
|
|
193
193
|
* @param {number} value Integer value.
|
|
194
194
|
*/
|
|
195
195
|
patchU8(offset, value) {
|
|
196
|
-
this
|
|
197
|
-
this
|
|
196
|
+
this._requireWritten(offset, 1);
|
|
197
|
+
this._view.setUint8(offset, value & 0xff);
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
/**
|
|
@@ -204,8 +204,8 @@ class CjsByteWriter {
|
|
|
204
204
|
* @param {number} value Integer value.
|
|
205
205
|
*/
|
|
206
206
|
patchU32(offset, value) {
|
|
207
|
-
this
|
|
208
|
-
this
|
|
207
|
+
this._requireWritten(offset, 4);
|
|
208
|
+
this._view.setUint32(offset, value >>> 0, true);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
/**
|
|
@@ -216,8 +216,8 @@ class CjsByteWriter {
|
|
|
216
216
|
*/
|
|
217
217
|
patchBytes(offset, value) {
|
|
218
218
|
const source = value instanceof Uint8Array ? value : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
219
|
-
this
|
|
220
|
-
this
|
|
219
|
+
this._requireWritten(offset, source.byteLength);
|
|
220
|
+
this._bytes.set(source, offset);
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
/**
|
|
@@ -226,7 +226,7 @@ class CjsByteWriter {
|
|
|
226
226
|
* @returns {Uint8Array} Written payload.
|
|
227
227
|
*/
|
|
228
228
|
toBytes() {
|
|
229
|
-
return this
|
|
229
|
+
return this._bytes.slice(0, this._length);
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
/**
|
|
@@ -234,14 +234,14 @@ class CjsByteWriter {
|
|
|
234
234
|
*
|
|
235
235
|
* @param {number} capacity Required total capacity.
|
|
236
236
|
*/
|
|
237
|
-
|
|
238
|
-
if (capacity <= this
|
|
239
|
-
let next = this
|
|
237
|
+
_ensure(capacity) {
|
|
238
|
+
if (capacity <= this._bytes.length) return;
|
|
239
|
+
let next = this._bytes.length * 2;
|
|
240
240
|
while (next < capacity) next *= 2;
|
|
241
241
|
const grown = new Uint8Array(next);
|
|
242
|
-
grown.set(this
|
|
243
|
-
this
|
|
244
|
-
this
|
|
242
|
+
grown.set(this._bytes.subarray(0, this._length));
|
|
243
|
+
this._bytes = grown;
|
|
244
|
+
this._view = new DataView(grown.buffer);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
/**
|
|
@@ -250,10 +250,10 @@ class CjsByteWriter {
|
|
|
250
250
|
* @param {number} size Byte count for this append.
|
|
251
251
|
* @returns {number} Offset of the appended run.
|
|
252
252
|
*/
|
|
253
|
-
|
|
254
|
-
const offset = this
|
|
255
|
-
this
|
|
256
|
-
this
|
|
253
|
+
_advance(size) {
|
|
254
|
+
const offset = this._length;
|
|
255
|
+
this._ensure(offset + size);
|
|
256
|
+
this._length = offset + size;
|
|
257
257
|
return offset;
|
|
258
258
|
}
|
|
259
259
|
|
|
@@ -263,12 +263,12 @@ class CjsByteWriter {
|
|
|
263
263
|
* @param {number} offset Target offset.
|
|
264
264
|
* @param {number} size Patch byte count.
|
|
265
265
|
*/
|
|
266
|
-
|
|
267
|
-
if (!Number.isInteger(offset) || offset < 0 || offset + size > this
|
|
266
|
+
_requireWritten(offset, size) {
|
|
267
|
+
if (!Number.isInteger(offset) || offset < 0 || offset + size > this._length) {
|
|
268
268
|
throw new CjsFormatWriteError("Patch target is outside the written range", {
|
|
269
269
|
offset,
|
|
270
270
|
size,
|
|
271
|
-
length: this
|
|
271
|
+
length: this._length
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsByteWriter.js","sources":["../../../../src/resource/format/CjsByteWriter.js"],"sourcesContent":["import { CjsFormatWriteError } from \"./CjsFormatError.js\";\r\n\r\nconst textEncoder = new TextEncoder();\r\n\r\n/**\r\n * Growable little-endian append cursor with reserve-and-patch support.\r\n *\r\n * `formats/cmf/core/writer.js` already has a growable buffer, but it is\r\n * patch-style throughout: every write takes an explicit offset produced by a\r\n * prior `reserve`. Container assembly wants the opposite default — append in\r\n * field order — with patching kept for the one case that needs it, an offset\r\n * table whose values are only known after the payload it points at has been\r\n * measured.\r\n *\r\n * Every append returns the offset it wrote at, so the reserve-and-patch case is\r\n * just \"keep the offset an append returned\".\r\n */\r\nexport class CjsByteWriter\r\n{\r\n #bytes;\r\n #view;\r\n #length = 0;\r\n\r\n /**\r\n * Creates an empty writer with an initial capacity.\r\n *\r\n * @param {number} [initialCapacity] Starting buffer size in bytes.\r\n */\r\n constructor(initialCapacity = 1024)\r\n {\r\n const capacity = Number.isInteger(initialCapacity) && initialCapacity > 0 ? initialCapacity : 1024;\r\n this.#bytes = new Uint8Array(capacity);\r\n this.#view = new DataView(this.#bytes.buffer);\r\n }\r\n\r\n /**\r\n * Returns the number of bytes written so far.\r\n *\r\n * @returns {number} Written byte count.\r\n */\r\n get length()\r\n {\r\n return this.#length;\r\n }\r\n\r\n /**\r\n * Appends an unsigned 8-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u8(value)\r\n {\r\n const offset = this.#advance(1);\r\n this.#view.setUint8(offset, value & 0xff);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends a little-endian unsigned 16-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u16(value)\n {\r\n const offset = this.#advance(2);\r\n this.#view.setUint16(offset, value & 0xffff, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian signed 16-bit integer.\n *\n * @param {number} value Integer value.\n * @returns {number} Offset the value was written at.\n */\n i16(value)\n {\n const offset = this.#advance(2);\n this.#view.setInt16(offset, value | 0, true);\n return offset;\n }\n\r\n /**\r\n * Appends a little-endian unsigned 32-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u32(value)\r\n {\r\n const offset = this.#advance(4);\r\n this.#view.setUint32(offset, value >>> 0, true);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends a little-endian signed 32-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n i32(value)\n {\r\n const offset = this.#advance(4);\r\n this.#view.setInt32(offset, value | 0, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian signed 64-bit integer.\n *\n * @param {bigint|number} value Integer value.\n * @returns {number} Offset the value was written at.\n */\n i64(value)\n {\n const offset = this.#advance(8);\n this.#view.setBigInt64(offset, BigInt(value), true);\n return offset;\n }\n\r\n /**\r\n * Appends a little-endian 32-bit float.\r\n *\r\n * @param {number} value Float value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n f32(value)\n {\r\n const offset = this.#advance(4);\r\n this.#view.setFloat32(offset, Number(value) || 0, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian 64-bit float.\n *\n * @param {number} value Float value.\n * @returns {number} Offset the value was written at.\n */\n f64(value)\n {\n const offset = this.#advance(8);\n this.#view.setFloat64(offset, Number(value) || 0, true);\n return offset;\n }\n\r\n /**\r\n * Appends Carbon's byte-sized boolean encoding.\r\n *\r\n * @param {boolean} value Boolean value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n bool(value)\r\n {\r\n return this.u8(value ? 1 : 0);\r\n }\r\n\r\n /**\r\n * Appends raw bytes.\r\n *\r\n * @param {ArrayBufferView|Uint8Array} value Bytes to append.\r\n * @returns {number} Offset the bytes were written at.\r\n */\r\n bytes(value)\r\n {\r\n const source = value instanceof Uint8Array\r\n ? value\r\n : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n const offset = this.#advance(source.byteLength);\r\n this.#bytes.set(source, offset);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends UTF-8 text without a terminator.\r\n *\r\n * @param {string} value Text to append.\r\n * @returns {number} Offset the text was written at.\r\n */\r\n utf8(value)\r\n {\r\n return this.bytes(textEncoder.encode(String(value)));\r\n }\r\n\r\n /**\r\n * Appends a run of zero bytes and returns its offset, for later patching.\r\n *\r\n * @param {number} count Byte count to reserve.\r\n * @returns {number} Offset of the reserved run.\r\n */\r\n reserve(count)\r\n {\r\n if (!Number.isInteger(count) || count < 0)\r\n {\r\n throw new CjsFormatWriteError(\"Reserve count must be a non-negative integer\", { count });\r\n }\r\n const offset = this.#advance(count);\r\n this.#bytes.fill(0, offset, offset + count);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Overwrites a previously written unsigned 8-bit integer.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} value Integer value.\r\n */\r\n patchU8(offset, value)\r\n {\r\n this.#requireWritten(offset, 1);\r\n this.#view.setUint8(offset, value & 0xff);\r\n }\r\n\r\n /**\r\n * Overwrites a previously written little-endian unsigned 32-bit integer.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} value Integer value.\r\n */\r\n patchU32(offset, value)\r\n {\r\n this.#requireWritten(offset, 4);\r\n this.#view.setUint32(offset, value >>> 0, true);\r\n }\r\n\r\n /**\r\n * Overwrites a previously written byte range.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {ArrayBufferView|Uint8Array} value Replacement bytes.\r\n */\r\n patchBytes(offset, value)\r\n {\r\n const source = value instanceof Uint8Array\r\n ? value\r\n : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n this.#requireWritten(offset, source.byteLength);\r\n this.#bytes.set(source, offset);\r\n }\r\n\r\n /**\r\n * Returns an owned copy of the written bytes.\r\n *\r\n * @returns {Uint8Array} Written payload.\r\n */\r\n toBytes()\r\n {\r\n return this.#bytes.slice(0, this.#length);\r\n }\r\n\r\n /**\r\n * Grows the buffer when a write would exceed capacity.\r\n *\r\n * @param {number} capacity Required total capacity.\r\n */\r\n #ensure(capacity)\r\n {\r\n if (capacity <= this.#bytes.length) return;\r\n let next = this.#bytes.length * 2;\r\n while (next < capacity) next *= 2;\r\n const grown = new Uint8Array(next);\r\n grown.set(this.#bytes.subarray(0, this.#length));\r\n this.#bytes = grown;\r\n this.#view = new DataView(grown.buffer);\r\n }\r\n\r\n /**\r\n * Reserves space for one append and returns the offset it starts at.\r\n *\r\n * @param {number} size Byte count for this append.\r\n * @returns {number} Offset of the appended run.\r\n */\r\n #advance(size)\r\n {\r\n const offset = this.#length;\r\n this.#ensure(offset + size);\r\n this.#length = offset + size;\r\n return offset;\r\n }\r\n\r\n /**\r\n * Rejects a patch that falls outside the bytes already written.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} size Patch byte count.\r\n */\r\n #requireWritten(offset, size)\r\n {\r\n if (!Number.isInteger(offset) || offset < 0 || offset + size > this.#length)\r\n {\r\n throw new CjsFormatWriteError(\"Patch target is outside the written range\", {\r\n offset,\r\n size,\r\n length: this.#length\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default CjsByteWriter;\r\n"],"names":["textEncoder","TextEncoder","CjsByteWriter","constructor","initialCapacity","capacity","Number","isInteger","Uint8Array","DataView","buffer","length","u8","value","offset","setUint8","u16","setUint16","i16","setInt16","u32","setUint32","i32","setInt32","i64","setBigInt64","BigInt","f32","setFloat32","f64","setFloat64","bool","bytes","source","byteOffset","byteLength","set","utf8","encode","String","reserve","count","CjsFormatWriteError","fill","patchU8","patchU32","patchBytes","toBytes","slice","#ensure","next","grown","subarray","#advance","size","#requireWritten"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsByteWriter.js","sources":["../../../../src/resource/format/CjsByteWriter.js"],"sourcesContent":["import { CjsFormatWriteError } from \"./CjsFormatError.js\";\r\n\r\nconst textEncoder = new TextEncoder();\r\n\r\n/**\r\n * Growable little-endian append cursor with reserve-and-patch support.\r\n *\r\n * `formats/cmf/core/writer.js` already has a growable buffer, but it is\r\n * patch-style throughout: every write takes an explicit offset produced by a\r\n * prior `reserve`. Container assembly wants the opposite default — append in\r\n * field order — with patching kept for the one case that needs it, an offset\r\n * table whose values are only known after the payload it points at has been\r\n * measured.\r\n *\r\n * Every append returns the offset it wrote at, so the reserve-and-patch case is\r\n * just \"keep the offset an append returned\".\r\n */\r\nexport class CjsByteWriter\r\n{\r\n _bytes;\r\n _view;\r\n _length = 0;\r\n\r\n /**\r\n * Creates an empty writer with an initial capacity.\r\n *\r\n * @param {number} [initialCapacity] Starting buffer size in bytes.\r\n */\r\n constructor(initialCapacity = 1024)\r\n {\r\n const capacity = Number.isInteger(initialCapacity) && initialCapacity > 0 ? initialCapacity : 1024;\r\n this._bytes = new Uint8Array(capacity);\r\n this._view = new DataView(this._bytes.buffer);\r\n }\r\n\r\n /**\r\n * Returns the number of bytes written so far.\r\n *\r\n * @returns {number} Written byte count.\r\n */\r\n get length()\r\n {\r\n return this._length;\r\n }\r\n\r\n /**\r\n * Appends an unsigned 8-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u8(value)\r\n {\r\n const offset = this._advance(1);\r\n this._view.setUint8(offset, value & 0xff);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends a little-endian unsigned 16-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u16(value)\n {\r\n const offset = this._advance(2);\r\n this._view.setUint16(offset, value & 0xffff, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian signed 16-bit integer.\n *\n * @param {number} value Integer value.\n * @returns {number} Offset the value was written at.\n */\n i16(value)\n {\n const offset = this._advance(2);\n this._view.setInt16(offset, value | 0, true);\n return offset;\n }\n\r\n /**\r\n * Appends a little-endian unsigned 32-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n u32(value)\r\n {\r\n const offset = this._advance(4);\r\n this._view.setUint32(offset, value >>> 0, true);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends a little-endian signed 32-bit integer.\r\n *\r\n * @param {number} value Integer value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n i32(value)\n {\r\n const offset = this._advance(4);\r\n this._view.setInt32(offset, value | 0, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian signed 64-bit integer.\n *\n * @param {bigint|number} value Integer value.\n * @returns {number} Offset the value was written at.\n */\n i64(value)\n {\n const offset = this._advance(8);\n this._view.setBigInt64(offset, BigInt(value), true);\n return offset;\n }\n\r\n /**\r\n * Appends a little-endian 32-bit float.\r\n *\r\n * @param {number} value Float value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n f32(value)\n {\r\n const offset = this._advance(4);\r\n this._view.setFloat32(offset, Number(value) || 0, true);\r\n return offset;\n }\n\n /**\n * Appends a little-endian 64-bit float.\n *\n * @param {number} value Float value.\n * @returns {number} Offset the value was written at.\n */\n f64(value)\n {\n const offset = this._advance(8);\n this._view.setFloat64(offset, Number(value) || 0, true);\n return offset;\n }\n\r\n /**\r\n * Appends Carbon's byte-sized boolean encoding.\r\n *\r\n * @param {boolean} value Boolean value.\r\n * @returns {number} Offset the value was written at.\r\n */\r\n bool(value)\r\n {\r\n return this.u8(value ? 1 : 0);\r\n }\r\n\r\n /**\r\n * Appends raw bytes.\r\n *\r\n * @param {ArrayBufferView|Uint8Array} value Bytes to append.\r\n * @returns {number} Offset the bytes were written at.\r\n */\r\n bytes(value)\r\n {\r\n const source = value instanceof Uint8Array\r\n ? value\r\n : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n const offset = this._advance(source.byteLength);\r\n this._bytes.set(source, offset);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Appends UTF-8 text without a terminator.\r\n *\r\n * @param {string} value Text to append.\r\n * @returns {number} Offset the text was written at.\r\n */\r\n utf8(value)\r\n {\r\n return this.bytes(textEncoder.encode(String(value)));\r\n }\r\n\r\n /**\r\n * Appends a run of zero bytes and returns its offset, for later patching.\r\n *\r\n * @param {number} count Byte count to reserve.\r\n * @returns {number} Offset of the reserved run.\r\n */\r\n reserve(count)\r\n {\r\n if (!Number.isInteger(count) || count < 0)\r\n {\r\n throw new CjsFormatWriteError(\"Reserve count must be a non-negative integer\", { count });\r\n }\r\n const offset = this._advance(count);\r\n this._bytes.fill(0, offset, offset + count);\r\n return offset;\r\n }\r\n\r\n /**\r\n * Overwrites a previously written unsigned 8-bit integer.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} value Integer value.\r\n */\r\n patchU8(offset, value)\r\n {\r\n this._requireWritten(offset, 1);\r\n this._view.setUint8(offset, value & 0xff);\r\n }\r\n\r\n /**\r\n * Overwrites a previously written little-endian unsigned 32-bit integer.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} value Integer value.\r\n */\r\n patchU32(offset, value)\r\n {\r\n this._requireWritten(offset, 4);\r\n this._view.setUint32(offset, value >>> 0, true);\r\n }\r\n\r\n /**\r\n * Overwrites a previously written byte range.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {ArrayBufferView|Uint8Array} value Replacement bytes.\r\n */\r\n patchBytes(offset, value)\r\n {\r\n const source = value instanceof Uint8Array\r\n ? value\r\n : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n this._requireWritten(offset, source.byteLength);\r\n this._bytes.set(source, offset);\r\n }\r\n\r\n /**\r\n * Returns an owned copy of the written bytes.\r\n *\r\n * @returns {Uint8Array} Written payload.\r\n */\r\n toBytes()\r\n {\r\n return this._bytes.slice(0, this._length);\r\n }\r\n\r\n /**\r\n * Grows the buffer when a write would exceed capacity.\r\n *\r\n * @param {number} capacity Required total capacity.\r\n */\r\n _ensure(capacity)\r\n {\r\n if (capacity <= this._bytes.length) return;\r\n let next = this._bytes.length * 2;\r\n while (next < capacity) next *= 2;\r\n const grown = new Uint8Array(next);\r\n grown.set(this._bytes.subarray(0, this._length));\r\n this._bytes = grown;\r\n this._view = new DataView(grown.buffer);\r\n }\r\n\r\n /**\r\n * Reserves space for one append and returns the offset it starts at.\r\n *\r\n * @param {number} size Byte count for this append.\r\n * @returns {number} Offset of the appended run.\r\n */\r\n _advance(size)\r\n {\r\n const offset = this._length;\r\n this._ensure(offset + size);\r\n this._length = offset + size;\r\n return offset;\r\n }\r\n\r\n /**\r\n * Rejects a patch that falls outside the bytes already written.\r\n *\r\n * @param {number} offset Target offset.\r\n * @param {number} size Patch byte count.\r\n */\r\n _requireWritten(offset, size)\r\n {\r\n if (!Number.isInteger(offset) || offset < 0 || offset + size > this._length)\r\n {\r\n throw new CjsFormatWriteError(\"Patch target is outside the written range\", {\r\n offset,\r\n size,\r\n length: this._length\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default CjsByteWriter;\r\n"],"names":["textEncoder","TextEncoder","CjsByteWriter","_bytes","_view","_length","constructor","initialCapacity","capacity","Number","isInteger","Uint8Array","DataView","buffer","length","u8","value","offset","_advance","setUint8","u16","setUint16","i16","setInt16","u32","setUint32","i32","setInt32","i64","setBigInt64","BigInt","f32","setFloat32","f64","setFloat64","bool","bytes","source","byteOffset","byteLength","set","utf8","encode","String","reserve","count","CjsFormatWriteError","fill","patchU8","_requireWritten","patchU32","patchBytes","toBytes","slice","_ensure","next","grown","subarray","size"],"mappings":"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"}
|
|
@@ -9,9 +9,8 @@ const READ_MODE_ASYNC = "async";
|
|
|
9
9
|
* Decorator-free base for every concrete format facade.
|
|
10
10
|
*
|
|
11
11
|
* The format subpaths must remain directly importable from authored source, so
|
|
12
|
-
* this base
|
|
13
|
-
*
|
|
14
|
-
* resource-layer normalization boundary.
|
|
12
|
+
* this base carries no decorators. Formats return plain support reports;
|
|
13
|
+
* CjsResourceProbe.from() is the optional resource-layer normalization.
|
|
15
14
|
*/
|
|
16
15
|
class CjsFormat {
|
|
17
16
|
options = {};
|
|
@@ -274,7 +273,7 @@ class CjsFormat {
|
|
|
274
273
|
if (Object.keys(inputs).length > 0 && defaults !== 1) {
|
|
275
274
|
throw new TypeError("A format with inputs must declare exactly one default input.");
|
|
276
275
|
}
|
|
277
|
-
return
|
|
276
|
+
return inputs;
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
/** Freeze and validate one format's authoritative output map. */
|
|
@@ -398,9 +397,9 @@ class CjsFormat {
|
|
|
398
397
|
VIDEO: PayloadType.VIDEO
|
|
399
398
|
});
|
|
400
399
|
static id = "";
|
|
401
|
-
static mediaTypes =
|
|
402
|
-
static extensions =
|
|
403
|
-
static outputs =
|
|
400
|
+
static mediaTypes = [];
|
|
401
|
+
static extensions = [];
|
|
402
|
+
static outputs = {};
|
|
404
403
|
/**
|
|
405
404
|
* What this format can be written FROM, empty when it cannot be written.
|
|
406
405
|
*
|
|
@@ -411,7 +410,7 @@ class CjsFormat {
|
|
|
411
410
|
* contract - it says nothing about what payload it takes or whether the
|
|
412
411
|
* result is lossy.
|
|
413
412
|
*/
|
|
414
|
-
static inputs =
|
|
413
|
+
static inputs = {};
|
|
415
414
|
static requestResponseType = "arraybuffer";
|
|
416
415
|
static worker = null;
|
|
417
416
|
}
|