@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1
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/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 +52 -4
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.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 +104 -260
- 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 +82 -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ITr2GenericEmitter.js","sources":["../../../../src/trinity/particle/ITr2GenericEmitter.js"],"sourcesContent":["// Source: trinity/trinity/Particle/ITr2GenericEmitter.h\nimport { mat4 } from \"#math/mat4\";\nimport { vec3 } from \"#math/vec3\";\nimport { CjsModel } from \"#model\";\nimport { CjsSchema, impl, type } from \"#schema\";\n\n\nconst ITR2_GENERIC_EMITTER = Symbol.for(\"carbonenginejs.contract.ITr2GenericEmitter\");\n\n\n/** Per-frame values passed to an ITr2GenericEmitter update or spawn call. */\n@type.define({ className: \"ITr2GenericEmitterUpdateArguments\", family: \"particle\" })\nexport class ITr2GenericEmitterUpdateArguments extends CjsModel\n{\n @type.float64\n time = 0;\n\n @type.objectRef(\"Tr2GpuParticleSystem\")\n system = null;\n\n @type.mat4\n parentTransform = mat4.create();\n\n @type.vec3\n originShift = vec3.create();\n\n @type.float32\n emitCountFactor = 1;\n}\n\n\n/** Contract shared by CPU and GPU particle emitters. */\nexport class ITr2GenericEmitter\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_GENERIC_EMITTER] === true;\n }\n\n /** Updates emitter state for one frame. */\n Update(_arguments)\n {\n throw new Error(\"ITr2GenericEmitter.Update must be implemented by a particle emitter.\");\n }\n\n /** Spawns particles using one of Carbon's two spawn call shapes. */\n SpawnParticles(..._args)\n {\n throw new Error(\"ITr2GenericEmitter.SpawnParticles must be implemented by a particle emitter.\");\n }\n\n /** Notifies the emitter that spawn calls may arrive from concurrent simulation. */\n SetThreadSafeFlag()\n {\n throw new Error(\"ITr2GenericEmitter.SetThreadSafeFlag must be implemented by a particle emitter.\");\n }\n}\n\nObject.defineProperty(ITr2GenericEmitter.prototype, ITR2_GENERIC_EMITTER, { value: true });\nfor (const method of [\"Update\", \"SpawnParticles\", \"SetThreadSafeFlag\"])\n{\n CjsSchema.decorateMethod(ITr2GenericEmitter, method, impl.abstract);\n}\nCjsSchema.define(ITr2GenericEmitter, { className: \"ITr2GenericEmitter\" });\n\n\n/** Adds the ITr2GenericEmitter contract without replacing an existing base. */\nexport function withITr2GenericEmitter(Base)\n{\n const Emitter = class extends Base\n {\n Update(argumentsValue)\n {\n return ITr2GenericEmitter.prototype.Update.call(this, argumentsValue);\n }\n\n SpawnParticles(...args)\n {\n return ITr2GenericEmitter.prototype.SpawnParticles.call(this, ...args);\n }\n\n SetThreadSafeFlag()\n {\n return ITr2GenericEmitter.prototype.SetThreadSafeFlag.call(this);\n }\n };\n\n Object.defineProperty(Emitter.prototype, ITR2_GENERIC_EMITTER, { value: true });\n for (const method of [\"Update\", \"SpawnParticles\", \"SetThreadSafeFlag\"])\n {\n CjsSchema.decorateMethod(Emitter, method, impl.abstract);\n }\n return Emitter;\n}\n"],"names":["ITR2_GENERIC_EMITTER","Symbol","for","_ITr2GenericEmitterUp","ITr2GenericEmitterUpdateArguments","CjsModel","e","_init_time","_init_extra_time","_init_system","_init_extra_system","_init_parentTransform","_init_extra_parentTransform","_init_originShift","_init_extra_originShift","_init_emitCountFactor","_init_extra_emitCountFactor","c","_initClass","_applyDecs","type","define","className","family","float64","objectRef","mat4","vec3","float32","constructor","args","time","system","parentTransform","create","originShift","emitCountFactor","ITr2GenericEmitter","hasInstance","value","undefined","Update","_arguments","Error","SpawnParticles","_args","SetThreadSafeFlag","Object","defineProperty","prototype","method","CjsSchema","decorateMethod","impl","abstract","withITr2GenericEmitter","Base","Emitter","argumentsValue","call"],"mappings":";;;;;;;AAOA,MAAMA,oBAAoB,GAAGC,MAAM,CAACC,GAAG,CAAC,4CAA4C,CAAC;;AAGrF;AAAA,IAAAC;AACA,MAAAC,iCAAA,SACuDC,QAAQ,CAC/D;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,UAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,2BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,qBAAA,EAAAC,2BAAA,CAAA;MAAAC,CAAA,EAAA,CAAAd,qBAAA,EAAAe,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,mCAAmC;AAAEC,MAAAA,MAAM,EAAE;AAAW,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAGjFH,IAAI,EAAJA,IAAI,CAACI,OAAO,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAGZJ,IAAI,CAACK,SAAS,CAAC,sBAAsB,CAAC,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGtCL,IAAI,EAAJA,IAAI,CAACM,IAAI,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAGTN,IAAI,EAAJA,IAAI,CAACO,IAAI,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAGTP,IAAI,EAAJA,IAAI,CAACQ,OAAO,uCAdwCvB,QAAQ,CAAA;AAAA;AAAAwB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAd,2BAAA,CAAA,IAAA,CAAA;AAAA,EAAA;EAG7De,IAAI,GAAAxB,UAAA,CAAA,IAAA,EAAG,CAAC,CAAA;AAGRyB,EAAAA,MAAM,IAAAxB,gBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,IAAI,CAAA;EAGbwB,eAAe,IAAAvB,kBAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAGe,IAAI,CAACQ,MAAM,EAAE,CAAA;EAG/BC,WAAW,IAAAvB,2BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAGc,IAAI,CAACO,MAAM,EAAE,CAAA;AAG3BE,EAAAA,eAAe,IAAAtB,uBAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAG,CAAC,CAAA;AAAC,EAAA;IAAAG,UAAA,EAAA;AAAA;AACtB;AAIO,MAAMmB,kBAAkB,CAC/B;AACE,EAAA,QAAQpC,MAAM,CAACqC,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACvC,oBAAoB,CAAC,KAAK,IAAI;AACtF,EAAA;;AAEA;EACAyC,MAAMA,CAACC,UAAU,EACjB;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,sEAAsE,CAAC;AACzF,EAAA;;AAEA;EACAC,cAAcA,CAAC,GAAGC,KAAK,EACvB;AACE,IAAA,MAAM,IAAIF,KAAK,CAAC,8EAA8E,CAAC;AACjG,EAAA;;AAEA;AACAG,EAAAA,iBAAiBA,GACjB;AACE,IAAA,MAAM,IAAIH,KAAK,CAAC,iFAAiF,CAAC;AACpG,EAAA;AACF;AAEAI,MAAM,CAACC,cAAc,CAACX,kBAAkB,CAACY,SAAS,EAAEjD,oBAAoB,EAAE;AAAEuC,EAAAA,KAAK,EAAE;AAAK,CAAC,CAAC;AAC1F,KAAK,MAAMW,MAAM,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EACtE;EACEC,SAAS,CAACC,cAAc,CAACf,kBAAkB,EAAEa,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AACrE;AACAH,SAAS,CAAC9B,MAAM,CAACgB,kBAAkB,EAAE;AAAEf,EAAAA,SAAS,EAAE;AAAqB,CAAC,CAAC;;AAGzE;AACO,SAASiC,sBAAsBA,CAACC,IAAI,EAC3C;AACE,EAAA,MAAMC,OAAO,GAAG,cAAcD,IAAI,CAClC;IACEf,MAAMA,CAACiB,cAAc,EACrB;MACE,OAAOrB,kBAAkB,CAACY,SAAS,CAACR,MAAM,CAACkB,IAAI,CAAC,IAAI,EAAED,cAAc,CAAC;AACvE,IAAA;IAEAd,cAAcA,CAAC,GAAGd,IAAI,EACtB;AACE,MAAA,OAAOO,kBAAkB,CAACY,SAAS,CAACL,cAAc,CAACe,IAAI,CAAC,IAAI,EAAE,GAAG7B,IAAI,CAAC;AACxE,IAAA;AAEAgB,IAAAA,iBAAiBA,GACjB;MACE,OAAOT,kBAAkB,CAACY,SAAS,CAACH,iBAAiB,CAACa,IAAI,CAAC,IAAI,CAAC;AAClE,IAAA;GACD;EAEDZ,MAAM,CAACC,cAAc,CAACS,OAAO,CAACR,SAAS,EAAEjD,oBAAoB,EAAE;AAAEuC,IAAAA,KAAK,EAAE;AAAK,GAAC,CAAC;EAC/E,KAAK,MAAMW,MAAM,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EACtE;IACEC,SAAS,CAACC,cAAc,CAACK,OAAO,EAAEP,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AAC1D,EAAA;AACA,EAAA,OAAOG,OAAO;AAChB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2DeviceResourceAL.js","sources":["../../../src/trinityal/Tr2DeviceResourceAL.js"],"sourcesContent":["// Source: trinity/trinityal/Tr2DeviceResourceAL.h\n// Source: trinity/trinityal/Tr2DeviceResourceAL.cpp\n//\n// The base every abstraction-layer resource extends, and the registry that\n// makes them enumerable.\n//\n// Carbon's reason for this base is worth keeping in view: it is how a device\n// answers \"what am I holding, and how much of it\" without every resource type\n// inventing its own bookkeeping. `DescribeDeviceResources` walks every live\n// resource and asks it to describe itself; `DestroyDeviceResources` releases\n// everything in a memory class, which is what a device-lost path needs.\n//\n// ONE DELIBERATE DIFFERENCE, AND IT IS FORCED. Carbon registers in the\n// constructor and unregisters in the DESTRUCTOR, so a resource leaves the\n// registry when it goes out of scope. JavaScript has no destructor, and a\n// FinalizationRegistry runs at the garbage collector's convenience - which is\n// no use to a \"release everything now\" path. So `Destroy()` unregisters, and a\n// resource that is never destroyed stays registered. That is the same shape\n// Carbon has before its destructor runs, and it makes Destroy the single\n// deterministic release point rather than a hint.\n//\n// The registry therefore holds STRONG references on purpose. A WeakRef set\n// would let a resource vanish between \"enumerate\" and \"destroy\", which is\n// exactly the case this exists to handle.\n\n\nfunction fail(message)\n{\n const error = new Error(`Tr2DeviceResourceAL: ${message}`);\n error.code = \"CJS_AL_RESOURCE_INVALID\";\n throw error;\n}\n\n\n/** `Tr2ALMemoryType` (`Tr2DeviceResourceAL.h:5-9`). A bit set, not an enum. */\nexport const Tr2ALMemoryType = Object.freeze({\n /** Created in video memory. */\n AL_MEMORY_VIDEO: 1 << 0,\n\n /** Created in device-managed memory. */\n AL_MEMORY_MANAGED: 1 << 1\n});\n\n\n/** Every live resource. Strong by design - see the head comment. */\nconst ALL_RESOURCES = new Set();\n\n/**\n * Carbon's `s_resourcesMutated`.\n *\n * Destroying a resource can create or destroy others, which invalidates an\n * iterator mid-walk. Carbon restarts the sweep whenever that happens rather\n * than trusting the iterator, and so does this.\n */\nlet resourcesMutated = false;\n\n\n/**\n * The base of every AL resource.\n *\n * Subclasses supply `IsValid()`, `GetMemoryClass()` and the work of `Destroy()`;\n * Carbon's CRTP `Tr2DeviceResourceAL<T>` forwards the first two, which in\n * JavaScript is just ordinary dispatch.\n */\nexport class Tr2BaseDeviceResourceAL\n{\n _registered = false;\n\n /** Registers the resource, as Carbon's constructor does. */\n constructor()\n {\n ALL_RESOURCES.add(this);\n this._registered = true;\n resourcesMutated = true;\n }\n\n /**\n * Whether this resource still holds anything.\n *\n * @returns {boolean} True when live.\n */\n IsValid()\n {\n fail(`${this.constructor.name} must implement IsValid`);\n }\n\n /**\n * Which memory class this resource occupies.\n *\n * @returns {number} A `Tr2ALMemoryType` value.\n */\n GetMemoryClass()\n {\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\n }\n\n /**\n * Describes this resource for a device inventory.\n *\n * Carbon fills a `map<string,string>`. Every stub resource leaves it empty\n * EXCEPT `Tr2PipelineStatsQueryAL`, which writes its own type name\n * (`Tr2PipelineStatsQueryALStub.cpp:65-68`) - so an unoverridden description\n * is faithful rather than lazy, and that one override is faithful too.\n *\n * @param {object} _description Accumulator, keyed by name.\n */\n Describe(_description)\n {\n }\n\n /**\n * Releases the resource. Subclasses override and call `super.Destroy()`.\n *\n * Unregistering here rather than in a finaliser is what makes the release\n * path deterministic; see the head comment.\n */\n Destroy()\n {\n if (!this._registered) return;\n\n ALL_RESOURCES.delete(this);\n this._registered = false;\n resourcesMutated = true;\n }\n\n /** Whether this resource is still in the registry. */\n IsRegistered()\n {\n return this._registered;\n }\n\n /**\n * Runs an operation over every live resource.\n *\n * @param {Function} operation Called with each resource.\n */\n static EnumerateResources(operation)\n {\n if (typeof operation !== \"function\") fail(\"EnumerateResources needs a function\");\n\n // A copy, because Carbon takes a mutex here and an operation that creates\n // or destroys a resource would otherwise mutate the set mid-iteration.\n for (const resource of [ ...ALL_RESOURCES ]) operation(resource);\n }\n\n /** How many resources are live. Not Carbon's; the registry is otherwise opaque. */\n static GetResourceCount()\n {\n return ALL_RESOURCES.size;\n }\n}\n\n\n/**\n * Describes every VALID resource to the supplied operation.\n *\n * Carbon skips invalid resources rather than describing them\n * (`Tr2DeviceResourceAL.cpp:61`), so a released handle contributes nothing to\n * an inventory.\n *\n * @param {Function} operation Called with `(memoryClass, description)`.\n */\nexport function DescribeDeviceResources(operation)\n{\n if (typeof operation !== \"function\") fail(\"DescribeDeviceResources needs a function\");\n\n for (const resource of [ ...ALL_RESOURCES ])\n {\n if (!resource.IsValid()) continue;\n\n const description = {};\n\n resource.Describe(description);\n operation(resource.GetMemoryClass(), description);\n }\n}\n\n/**\n * Destroys every valid resource in the given memory classes.\n *\n * THE RESTART IS CARBON'S AND IS NOT AN OPTIMISATION TO REMOVE. Destroying a\n * resource can create or destroy others, so Carbon breaks out and starts the\n * sweep again whenever the set changed underneath it\n * (`Tr2DeviceResourceAL.cpp:73-89`). Iterating once would skip resources.\n *\n * @param {number} memoryTypes A bit set of `Tr2ALMemoryType`.\n */\nexport function DestroyDeviceResources(memoryTypes)\n{\n do\n {\n resourcesMutated = false;\n\n for (const resource of [ ...ALL_RESOURCES ])\n {\n if (resource.IsValid() && (resource.GetMemoryClass() & memoryTypes) !== 0)\n {\n resource.Destroy();\n }\n\n if (resourcesMutated) break;\n }\n }\n while (resourcesMutated);\n}\n"],"names":["fail","message","error","Error","code","Tr2ALMemoryType","Object","freeze","AL_MEMORY_VIDEO","AL_MEMORY_MANAGED","ALL_RESOURCES","Set","resourcesMutated","Tr2BaseDeviceResourceAL","_registered","constructor","add","IsValid","name","GetMemoryClass","Describe","_description","Destroy","delete","IsRegistered","EnumerateResources","operation","resource","GetResourceCount","size","DescribeDeviceResources","description","DestroyDeviceResources","memoryTypes"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,IAAIA,CAACC,OAAO,EACrB;EACE,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAA,qBAAA,EAAwBF,OAAO,EAAE,CAAC;EAC1DC,KAAK,CAACE,IAAI,GAAG,yBAAyB;AACtC,EAAA,MAAMF,KAAK;AACb;;AAGA;MACaG,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC3C;EACAC,eAAe,EAAE,CAAC,IAAI,CAAC;AAEvB;EACAC,iBAAiB,EAAE,CAAC,IAAI;AAC1B,CAAC;;AAGD;AACA,MAAMC,aAAa,GAAG,IAAIC,GAAG,EAAE;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,gBAAgB,GAAG,KAAK;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,CACpC;AACEC,EAAAA,WAAW,GAAG,KAAK;;AAEnB;AACAC,EAAAA,WAAWA,GACX;AACEL,IAAAA,aAAa,CAACM,GAAG,CAAC,IAAI,CAAC;IACvB,IAAI,CAACF,WAAW,GAAG,IAAI;AACvBF,IAAAA,gBAAgB,GAAG,IAAI;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEK,EAAAA,OAAOA,GACP;IACEjB,IAAI,CAAC,GAAG,IAAI,CAACe,WAAW,CAACG,IAAI,yBAAyB,CAAC;AACzD,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,cAAcA,GACd;IACE,OAAOd,eAAe,CAACI,iBAAiB;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEW,QAAQA,CAACC,YAAY,EACrB,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,OAAOA,GACP;AACE,IAAA,IAAI,CAAC,IAAI,CAACR,WAAW,EAAE;AAEvBJ,IAAAA,aAAa,CAACa,MAAM,CAAC,IAAI,CAAC;IAC1B,IAAI,CAACT,WAAW,GAAG,KAAK;AACxBF,IAAAA,gBAAgB,GAAG,IAAI;AACzB,EAAA;;AAEA;AACAY,EAAAA,YAAYA,GACZ;IACE,OAAO,IAAI,CAACV,WAAW;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,OAAOW,kBAAkBA,CAACC,SAAS,EACnC;IACE,IAAI,OAAOA,SAAS,KAAK,UAAU,EAAE1B,IAAI,CAAC,qCAAqC,CAAC;;AAEhF;AACA;IACA,KAAK,MAAM2B,QAAQ,IAAI,CAAE,GAAGjB,aAAa,CAAE,EAAEgB,SAAS,CAACC,QAAQ,CAAC;AAClE,EAAA;;AAEA;EACA,OAAOC,gBAAgBA,GACvB;IACE,OAAOlB,aAAa,CAACmB,IAAI;AAC3B,EAAA;AACF;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CAACJ,SAAS,EACjD;EACE,IAAI,OAAOA,SAAS,KAAK,UAAU,EAAE1B,IAAI,CAAC,0CAA0C,CAAC;AAErF,EAAA,KAAK,MAAM2B,QAAQ,IAAI,CAAE,GAAGjB,aAAa,CAAE,EAC3C;AACE,IAAA,IAAI,CAACiB,QAAQ,CAACV,OAAO,EAAE,EAAE;IAEzB,MAAMc,WAAW,GAAG,EAAE;AAEtBJ,IAAAA,QAAQ,CAACP,QAAQ,CAACW,WAAW,CAAC;IAC9BL,SAAS,CAACC,QAAQ,CAACR,cAAc,EAAE,EAAEY,WAAW,CAAC;AACnD,EAAA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CAACC,WAAW,EAClD;EACE,GACA;AACErB,IAAAA,gBAAgB,GAAG,KAAK;AAExB,IAAA,KAAK,MAAMe,QAAQ,IAAI,CAAE,GAAGjB,aAAa,CAAE,EAC3C;AACE,MAAA,IAAIiB,QAAQ,CAACV,OAAO,EAAE,IAAI,CAACU,QAAQ,CAACR,cAAc,EAAE,GAAGc,WAAW,MAAM,CAAC,EACzE;QACEN,QAAQ,CAACL,OAAO,EAAE;AACpB,MAAA;AAEA,MAAA,IAAIV,gBAAgB,EAAE;AACxB,IAAA;AACF,EAAA,CAAC,QACMA,gBAAgB;AACzB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2HalHelperStructures.js","sources":["../../../src/trinityal/Tr2HalHelperStructures.js"],"sourcesContent":["// Source: trinity/trinityal/Tr2HalHelperStructures.h\n// Source: trinity/trinityal/Tr2HalHelperStructures.cpp\n//\n// The small value types the abstraction layer passes around: a multisample\n// description, and the region of a texture that a map, an update or a copy\n// applies to.\n//\n// `Tr2TextureSubresource` LOOKS like a plain rectangle and is not. Its default\n// is \"all of it\", spelled as an all-ones box rather than as a flag, and\n// `HasBox` is what distinguishes \"the caller named a region\" from \"the caller\n// named the whole texture\". Half the validation in the texture stub turns on\n// that distinction, so it is transcribed here rather than simplified into a\n// nullable box.\n//\n// TWO LANGUAGE DIFFERENCES. Carbon's three constructor overloads become the\n// default constructor plus two named factories, and `operator==` becomes\n// `Equals`.\n//\n// Carbon's `AdvanceMip` is NOT ported: nothing in this runtime walks a copy\n// down a mip chain yet, and its depth branch shrinks the vertical box rather\n// than the depth one, which is a bug worth reading again before relying on.\n\nimport { TextureType } from \"../global/consts/renderContext/index.js\";\n\n\n/** Carbon's \"not set\" for every box coordinate: `0xffffffff`. */\nconst UNSET = 0xffffffff;\n\n\n/**\n * A multisample description.\n */\nexport class Tr2MsaaDesc\n{\n /** Samples per pixel; never below one. */\n samples = 1;\n\n /** Backend-defined quality level. */\n quality = 0;\n\n /**\n * @param {number} [samples] Samples per pixel.\n * @param {number} [quality] Quality level.\n */\n constructor(samples = 1, quality = 0)\n {\n this.samples = Math.max(samples, 1);\n this.quality = quality;\n }\n\n /**\n * Whether two descriptions match.\n *\n * Carbon clamps both sample counts to at least one before comparing, so a\n * zero and a one are the same description.\n *\n * @param {Tr2MsaaDesc} other The description to compare with.\n * @returns {boolean} True when they match.\n */\n Equals(other)\n {\n return Math.max(this.samples, 1) === Math.max(other.samples, 1) && this.quality === other.quality;\n }\n}\n\n\n/**\n * A box within a texture, in pixels.\n */\nexport class Tr2TextureCoordBox\n{\n /** @type {number} */\n left = UNSET;\n\n /** @type {number} */\n top = UNSET;\n\n /** @type {number} */\n front = UNSET;\n\n /** @type {number} */\n right = UNSET;\n\n /** @type {number} */\n bottom = UNSET;\n\n /** @type {number} */\n back = UNSET;\n\n /**\n * Width of the box.\n *\n * @returns {number} Right minus left.\n */\n GetWidth()\n {\n return this.right - this.left;\n }\n\n /**\n * Height of the box.\n *\n * @returns {number} Bottom minus top.\n */\n GetHeight()\n {\n return this.bottom - this.top;\n }\n\n /**\n * Depth of the box.\n *\n * @returns {number} Back minus front.\n */\n GetDepth()\n {\n return this.back - this.front;\n }\n\n /**\n * Whether two boxes cover the same region.\n *\n * @param {Tr2TextureCoordBox} other The box to compare with.\n * @returns {boolean} True when every coordinate matches.\n */\n Equals(other)\n {\n return this.left === other.left &&\n this.top === other.top &&\n this.front === other.front &&\n this.right === other.right &&\n this.bottom === other.bottom &&\n this.back === other.back;\n }\n}\n\n\n/**\n * A range of faces, mip levels and pixels within a texture.\n *\n * The default is the whole resource. `ForMipLevel` and `ForFace` are Carbon's\n * other two constructors.\n */\nexport class Tr2TextureSubresource\n{\n /** First slice. */\n m_startFace = 0;\n\n /** One past the last slice. */\n m_endFace = UNSET;\n\n /** First mip level. */\n m_startMipLevel = 0;\n\n /** One past the last mip level. */\n m_endMipLevel = UNSET;\n\n /** @type {Tr2TextureCoordBox} */\n m_box = new Tr2TextureCoordBox();\n\n /**\n * A single mip level of the first slice.\n *\n * @param {number} mipLevel The mip level.\n * @returns {Tr2TextureSubresource} The region.\n */\n static ForMipLevel(mipLevel)\n {\n const region = new Tr2TextureSubresource();\n\n region.m_startFace = 0;\n region.m_endFace = 1;\n region.m_startMipLevel = mipLevel;\n region.m_endMipLevel = mipLevel + 1;\n\n return region;\n }\n\n /**\n * A single mip level of a single slice.\n *\n * @param {number} face The slice or cube face.\n * @param {number} mipLevel The mip level.\n * @returns {Tr2TextureSubresource} The region.\n */\n static ForFace(face, mipLevel)\n {\n const region = Tr2TextureSubresource.ForMipLevel(mipLevel);\n\n region.m_startFace = face;\n region.m_endFace = face + 1;\n\n return region;\n }\n\n /**\n * Width of the box.\n *\n * @returns {number} Width in pixels.\n */\n GetWidth()\n {\n return this.m_box.GetWidth();\n }\n\n /**\n * Height of the box.\n *\n * @returns {number} Height in pixels.\n */\n GetHeight()\n {\n return this.m_box.GetHeight();\n }\n\n /**\n * Depth of the box.\n *\n * @returns {number} Depth in slices.\n */\n GetDepth()\n {\n return this.m_box.GetDepth();\n }\n\n /**\n * Mip levels in the range.\n *\n * @returns {number} Level count.\n */\n GetMipCount()\n {\n return this.m_endMipLevel - this.m_startMipLevel;\n }\n\n /**\n * Slices in the range.\n *\n * @returns {number} Face count.\n */\n GetFaceCount()\n {\n return this.m_endFace - this.m_startFace;\n }\n\n /**\n * Whether the caller named a box at all.\n *\n * An untouched box is all ones, which means \"the whole mip\". This is the\n * test the rest of the type turns on.\n *\n * @returns {boolean} True when any coordinate was set.\n */\n HasBox()\n {\n const box = this.m_box;\n\n return box.left !== UNSET ||\n box.top !== UNSET ||\n box.front !== UNSET ||\n box.right !== UNSET ||\n box.bottom !== UNSET ||\n box.back !== UNSET;\n }\n\n /**\n * Whether the range names exactly one face and one mip level.\n *\n * @returns {boolean} True for a single subresource.\n */\n IsSingleSubresource()\n {\n return this.m_endFace === this.m_startFace + 1 && this.m_endMipLevel === this.m_startMipLevel + 1;\n }\n\n /**\n * Sets the box from six coordinates: left, top, front, right, bottom, back.\n *\n * @param {number[]} ltfrbb The six coordinates, in that order.\n * @returns {Tr2TextureSubresource} This region, for chaining.\n */\n SetBox(ltfrbb)\n {\n const box = this.m_box;\n\n box.left = ltfrbb[0];\n box.top = ltfrbb[1];\n box.front = ltfrbb[2];\n box.right = ltfrbb[3];\n box.bottom = ltfrbb[4];\n box.back = ltfrbb[5];\n\n return this;\n }\n\n /**\n * Sets the box from a rectangle, spanning one slice in depth.\n *\n * @param {number} left Left edge.\n * @param {number} top Top edge.\n * @param {number} right One past the right edge.\n * @param {number} bottom One past the bottom edge.\n * @returns {Tr2TextureSubresource} This region, for chaining.\n */\n SetRect(left, top, right, bottom)\n {\n return this.SetBox([ left, top, 0, right, bottom, 1 ]);\n }\n\n /**\n * Clamps the range to a texture, filling in a box if there was none.\n *\n * @param {import(\"./Tr2BitmapDimensions.js\").Tr2BitmapDimensions} texture The texture to clamp against.\n */\n ClampToTexture(texture)\n {\n const arraySize = Math.max(texture.GetArraySize(), 1);\n\n this.m_startFace = Math.min(this.m_startFace, arraySize - 1);\n this.m_endFace = Math.min(this.m_endFace, arraySize);\n\n this.m_startMipLevel = Math.min(this.m_startMipLevel, texture.GetTrueMipCount() - 1);\n this.m_endMipLevel = Math.min(this.m_endMipLevel, texture.GetTrueMipCount());\n\n const mipWidth = texture.GetMipWidth(this.m_startMipLevel);\n const mipHeight = texture.GetMipHeight(this.m_startMipLevel);\n const mipDepth = Math.max(texture.GetDepth() >> this.m_startMipLevel, 1);\n const box = this.m_box;\n\n if (this.HasBox())\n {\n box.left = Math.min(box.left, mipWidth - 1);\n box.right = Math.min(box.right, mipWidth);\n box.top = Math.min(box.top, mipHeight - 1);\n box.bottom = Math.min(box.bottom, mipHeight);\n\n if (texture.GetType() === TextureType.TEX_TYPE_3D)\n {\n box.front = Math.min(box.front, mipDepth - 1);\n box.back = Math.min(box.back, mipDepth);\n }\n else\n {\n box.front = 0;\n box.back = 1;\n }\n }\n else\n {\n box.left = 0;\n box.top = 0;\n box.front = 0;\n box.right = mipWidth;\n box.bottom = mipHeight;\n box.back = mipDepth;\n }\n }\n\n /**\n * Whether the range covers the entire texture.\n *\n * @param {import(\"./Tr2BitmapDimensions.js\").Tr2BitmapDimensions} texture The texture to check against.\n * @returns {boolean} True when nothing is left out.\n */\n IsSubresourceFull(texture)\n {\n if (this.m_startFace > 0 || this.m_endFace < texture.GetArraySize()) return false;\n\n if (this.m_startMipLevel > 0) return false;\n\n if (this.m_endMipLevel < texture.GetTrueMipCount()) return false;\n\n if (this.HasBox())\n {\n const box = this.m_box;\n\n if (box.left > 0 || box.top > 0 || box.front > 0) return false;\n\n if (box.right < texture.GetWidth() || box.bottom < texture.GetHeight() || box.back < texture.GetDepth())\n {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Whether the range fits inside a texture.\n *\n * @param {import(\"./Tr2BitmapDimensions.js\").Tr2BitmapDimensions} bitmap The texture to check against.\n * @returns {boolean} True when it fits.\n */\n IsValidForBitmap(bitmap)\n {\n if (this.m_endFace > bitmap.GetArraySize()) return false;\n\n if (this.m_endMipLevel > bitmap.GetTrueMipCount()) return false;\n\n if (this.HasBox())\n {\n const box = this.m_box;\n\n if (box.right > bitmap.GetMipWidth(this.m_startMipLevel)) return false;\n\n if (box.bottom > bitmap.GetMipHeight(this.m_startMipLevel)) return false;\n\n if (bitmap.GetType() === TextureType.TEX_TYPE_3D && box.back > bitmap.GetMipDepth(this.m_startMipLevel)) return false;\n }\n\n return true;\n }\n\n /**\n * Whether the range is self-consistent: non-empty in every dimension.\n *\n * @returns {boolean} True when valid.\n */\n IsValid()\n {\n if (this.HasBox())\n {\n const box = this.m_box;\n\n if (box.left >= box.right || box.top >= box.bottom || box.front >= box.back) return false;\n }\n\n return this.m_startFace < this.m_endFace && this.m_startMipLevel < this.m_endMipLevel;\n }\n\n /**\n * Whether two ranges name the same region.\n *\n * @param {Tr2TextureSubresource} other The region to compare with.\n * @returns {boolean} True when they match.\n */\n Equals(other)\n {\n return this.m_startFace === other.m_startFace &&\n this.m_endFace === other.m_endFace &&\n this.m_startMipLevel === other.m_startMipLevel &&\n this.m_endMipLevel === other.m_endMipLevel &&\n this.m_box.Equals(other.m_box);\n }\n}\n\n\n/**\n * Crops a source and destination region to their textures and to each other.\n *\n * Carbon runs the clamp TWICE on purpose: the first pass fits each region to\n * its own texture, the shrink then makes them the same size, and the second\n * pass catches a box the shrink pushed back out of range.\n *\n * @param {Tr2TextureSubresource} sourceSR Source region; mutated in place.\n * @param {import(\"./Tr2BitmapDimensions.js\").Tr2BitmapDimensions} sourceBD Source texture.\n * @param {Tr2TextureSubresource} destSR Destination region; mutated in place.\n * @param {import(\"./Tr2BitmapDimensions.js\").Tr2BitmapDimensions} destBD Destination texture.\n * @returns {boolean} True when a copy would make sense.\n */\nexport function Crop(sourceSR, sourceBD, destSR, destBD)\n{\n if (destSR.GetFaceCount() !== sourceSR.GetFaceCount()) return false;\n\n if (sourceSR.HasBox() && destSR.HasBox() && destSR.GetDepth() !== sourceSR.GetDepth()) return false;\n\n sourceSR.ClampToTexture(sourceBD);\n destSR.ClampToTexture(destBD);\n\n if (sourceSR.GetWidth() < destSR.GetWidth())\n {\n destSR.m_box.right = destSR.m_box.left + sourceSR.GetWidth();\n }\n else\n {\n sourceSR.m_box.right = sourceSR.m_box.left + destSR.GetWidth();\n }\n\n if (sourceSR.GetHeight() < destSR.GetHeight())\n {\n destSR.m_box.bottom = destSR.m_box.top + sourceSR.GetHeight();\n }\n else\n {\n sourceSR.m_box.bottom = sourceSR.m_box.top + destSR.GetHeight();\n }\n\n sourceSR.ClampToTexture(sourceBD);\n destSR.ClampToTexture(destBD);\n\n return sourceSR.IsValid() && destSR.IsValid();\n}\n"],"names":["UNSET","Tr2MsaaDesc","samples","quality","constructor","Math","max","Equals","other","Tr2TextureCoordBox","left","top","front","right","bottom","back","GetWidth","GetHeight","GetDepth","Tr2TextureSubresource","m_startFace","m_endFace","m_startMipLevel","m_endMipLevel","m_box","ForMipLevel","mipLevel","region","ForFace","face","GetMipCount","GetFaceCount","HasBox","box","IsSingleSubresource","SetBox","ltfrbb","SetRect","ClampToTexture","texture","arraySize","GetArraySize","min","GetTrueMipCount","mipWidth","GetMipWidth","mipHeight","GetMipHeight","mipDepth","GetType","TextureType","TEX_TYPE_3D","IsSubresourceFull","IsValidForBitmap","bitmap","GetMipDepth","IsValid","Crop","sourceSR","sourceBD","destSR","destBD"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2RenderPassAL.js","sources":["../../../src/trinityal/Tr2RenderPassAL.js"],"sourcesContent":["// Source: trinity/trinityal/include/Tr2RenderPassAL.h\n//\n// The two attachment descriptions `RenderPassHint` takes.\n//\n// Both default to DONT_CARE/DONT_CARE, which is Carbon's default and is the\n// reason an empty `{}` reads as \"this attachment is not part of the hint\" at\n// every call site in `EveSpaceScene.cpp`.\n\nimport { Tr2LoadAction, Tr2StoreAction } from \"../global/consts/renderContext/index.js\";\n\n\n/** How a pass treats its depth attachment. */\nexport class Tr2DepthAttachment\n{\n /** What the pass does with the existing depth. */\n load = Tr2LoadAction.DONT_CARE;\n\n /** Whether the resulting depth is written back. */\n store = Tr2StoreAction.DONT_CARE;\n\n /** The depth a CLEAR load starts from. */\n clearValue = 0;\n\n /**\n * @param {number} [load] A `Tr2LoadAction`.\n * @param {number} [store] A `Tr2StoreAction`.\n * @param {number} [clearValue] The depth a CLEAR starts from.\n */\n constructor(load = Tr2LoadAction.DONT_CARE, store = Tr2StoreAction.DONT_CARE, clearValue = 0)\n {\n this.load = load;\n this.store = store;\n this.clearValue = clearValue;\n }\n}\n\n\n/** How a pass treats one colour attachment. */\nexport class Tr2ColorAttachment\n{\n /** What the pass does with the existing colour. */\n load = Tr2LoadAction.DONT_CARE;\n\n /** Whether the resulting colour is written back. */\n store = Tr2StoreAction.DONT_CARE;\n\n /** The packed colour a CLEAR load starts from. */\n clearColor = 0;\n\n /**\n * @param {number} [load] A `Tr2LoadAction`.\n * @param {number} [store] A `Tr2StoreAction`.\n * @param {number} [clearColor] The packed colour a CLEAR starts from.\n */\n constructor(load = Tr2LoadAction.DONT_CARE, store = Tr2StoreAction.DONT_CARE, clearColor = 0)\n {\n this.load = load;\n this.store = store;\n this.clearColor = clearColor;\n }\n}\n"],"names":["Tr2DepthAttachment","load","Tr2LoadAction","DONT_CARE","store","Tr2StoreAction","clearValue","constructor","Tr2ColorAttachment","clearColor"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAKA;AACO,MAAMA,kBAAkB,CAC/B;AACE;EACAC,IAAI,GAAGC,aAAa,CAACC,SAAS;;AAE9B;EACAC,KAAK,GAAGC,cAAc,CAACF,SAAS;;AAEhC;AACAG,EAAAA,UAAU,GAAG,CAAC;;AAEd;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAACN,IAAI,GAAGC,aAAa,CAACC,SAAS,EAAEC,KAAK,GAAGC,cAAc,CAACF,SAAS,EAAEG,UAAU,GAAG,CAAC,EAC5F;IACE,IAAI,CAACL,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACG,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,UAAU,GAAGA,UAAU;AAC9B,EAAA;AACF;;AAGA;AACO,MAAME,kBAAkB,CAC/B;AACE;EACAP,IAAI,GAAGC,aAAa,CAACC,SAAS;;AAE9B;EACAC,KAAK,GAAGC,cAAc,CAACF,SAAS;;AAEhC;AACAM,EAAAA,UAAU,GAAG,CAAC;;AAEd;AACF;AACA;AACA;AACA;AACEF,EAAAA,WAAWA,CAACN,IAAI,GAAGC,aAAa,CAACC,SAAS,EAAEC,KAAK,GAAGC,cAAc,CAACF,SAAS,EAAEM,UAAU,GAAG,CAAC,EAC5F;IACE,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACG,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACK,UAAU,GAAGA,UAAU;AAC9B,EAAA;AACF;;;;"}
|
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
import '../global/consts/renderContext/formats.js';
|
|
2
|
-
import { ShaderType } from '../global/consts/renderContext/pipeline.js';
|
|
3
|
-
import { Tr2BaseDeviceResourceAL, Tr2ALMemoryType } from './Tr2DeviceResourceAL.js';
|
|
4
|
-
import { ALResult } from './ALResult.js';
|
|
5
|
-
import { hashFnv1Floats, hashFnv1Identity, FNV1_INITIAL } from '../global/utils/hash.js';
|
|
6
|
-
|
|
7
|
-
// Source: trinity/trinityal/include/Tr2ResourceSetAL.h
|
|
8
|
-
// Source: trinity/trinityal/stub/Tr2ResourceSetALStub.cpp
|
|
9
|
-
// Source: trinity/trinityal/stub/Tr2ResourceSetALStub.h
|
|
10
|
-
//
|
|
11
|
-
// A prepared set of textures, samplers and buffers, bound in one call.
|
|
12
|
-
//
|
|
13
|
-
// THE DESCRIPTION IS WHERE THE DESIGN IS. Carbon's stub resource set is six
|
|
14
|
-
// methods that set a flag; the substance lives in the description in
|
|
15
|
-
// `include/`, which is shared by every backend. Carbon builds one description,
|
|
16
|
-
// creates a set from it against a shader program, and then rebinds THAT per
|
|
17
|
-
// draw rather than re-binding each resource.
|
|
18
|
-
//
|
|
19
|
-
// WHICH IS THE ANSWER TO A QUESTION THIS RUNTIME HAS OPEN. Every WebGPU binding
|
|
20
|
-
// currently sits in group 0 with no dynamic offsets, so no bind group can be
|
|
21
|
-
// shared between objects and there is nothing for a per-draw cache to cache.
|
|
22
|
-
// That was recorded as a design decision to take; it is not one. It is this
|
|
23
|
-
// class, and the shape of the answer is Carbon's: a description keyed by shader
|
|
24
|
-
// STAGE and register, from which a backend builds whatever its API calls a bind
|
|
25
|
-
// group, once.
|
|
26
|
-
//
|
|
27
|
-
// REGISTERS ARE PER STAGE, which is the part a flat binding model loses.
|
|
28
|
-
// `Tr2RegisterMapAL` carries srv, uav and sampler slots for each
|
|
29
|
-
// `ShaderType` separately, up to 32 per stage, because t3 in a vertex shader
|
|
30
|
-
// and t3 in a pixel shader are different bindings. Carbon's DXBC operands are
|
|
31
|
-
// the reason we already know this: the texture/sampler pairing lives in the
|
|
32
|
-
// operand, not the name.
|
|
33
|
-
//
|
|
34
|
-
// NOT PORTED: the heap-view setters (`SetSrvHeapView` and friends), which name a
|
|
35
|
-
// descriptor-heap slot rather than a resource. That is a D3D12 residency
|
|
36
|
-
// mechanism with no WebGPU counterpart, and Carbon's own stub carries no heap.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/** Carbon's `MAX_RESOURCES_IN_STAGE`. */
|
|
40
|
-
const MAX_RESOURCES_IN_STAGE = 32;
|
|
41
|
-
|
|
42
|
-
/** How many shader stages a register map covers: `SHADER_TYPE_COUNT`. */
|
|
43
|
-
const STAGE_COUNT = ShaderType.SHADER_TYPE_COUNT;
|
|
44
|
-
function EmptyStages() {
|
|
45
|
-
return Array.from({
|
|
46
|
-
length: STAGE_COUNT
|
|
47
|
-
}, () => new Array(MAX_RESOURCES_IN_STAGE).fill(null));
|
|
48
|
-
}
|
|
49
|
-
function ValidSlot(stage, registerIndex) {
|
|
50
|
-
return Number.isInteger(stage) && stage >= 0 && stage < STAGE_COUNT && Number.isInteger(registerIndex) && registerIndex >= 0 && registerIndex < MAX_RESOURCES_IN_STAGE;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Which registers a shader program reads, per stage.
|
|
55
|
-
*
|
|
56
|
-
* Carbon builds this from a shader signature and compares whole maps for
|
|
57
|
-
* equality, which is how it decides that two draws can share a resource set.
|
|
58
|
-
*/
|
|
59
|
-
class Tr2RegisterMapAL {
|
|
60
|
-
_srvs = EmptyStages();
|
|
61
|
-
_uavs = EmptyStages();
|
|
62
|
-
_samplers = EmptyStages();
|
|
63
|
-
|
|
64
|
-
/** Shader-resource slots per stage. @returns {Array} */
|
|
65
|
-
GetSrvs() {
|
|
66
|
-
return this._srvs;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Unordered-access slots per stage. @returns {Array} */
|
|
70
|
-
GetUavs() {
|
|
71
|
-
return this._uavs;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** Sampler slots per stage. @returns {Array} */
|
|
75
|
-
GetSamplers() {
|
|
76
|
-
return this._samplers;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Records that a stage reads one register of one kind.
|
|
81
|
-
*
|
|
82
|
-
* @param {string} kind `srv`, `uav` or `sampler`.
|
|
83
|
-
* @param {number} stage A `ShaderType`.
|
|
84
|
-
* @param {number} registerIndex The register.
|
|
85
|
-
* @returns {boolean} Whether the slot is addressable.
|
|
86
|
-
*/
|
|
87
|
-
Use(kind, stage, registerIndex) {
|
|
88
|
-
const slots = this._Slots(kind);
|
|
89
|
-
if (!slots || !ValidSlot(stage, registerIndex)) return false;
|
|
90
|
-
slots[stage][registerIndex] = true;
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* How many registers of one kind are used, across every stage.
|
|
96
|
-
*
|
|
97
|
-
* Carbon keeps `srvCount`, `uavCount` and `samplerCount` as fields; counting
|
|
98
|
-
* on demand cannot drift out of step with the slots.
|
|
99
|
-
*
|
|
100
|
-
* @param {string} kind `srv`, `uav` or `sampler`.
|
|
101
|
-
* @returns {number} The count.
|
|
102
|
-
*/
|
|
103
|
-
Count(kind) {
|
|
104
|
-
const slots = this._Slots(kind);
|
|
105
|
-
if (!slots) return 0;
|
|
106
|
-
return slots.reduce((total, stage) => total + stage.filter(Boolean).length, 0);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Whether two maps describe the same registers.
|
|
111
|
-
*
|
|
112
|
-
* Carbon's `operator==`, and the reason it exists: two programs with the same
|
|
113
|
-
* register map can share a resource set.
|
|
114
|
-
*
|
|
115
|
-
* `instanceof`, NOT A PRIVATE-BRAND CHECK. It used to be `_srvs in other`,
|
|
116
|
-
* which answers "will `other._Slots(...)` work" exactly - the right question
|
|
117
|
-
* while the members were `#`-private. They are `_`-prefixed now, for the
|
|
118
|
-
* reason recorded on `Tr2DeviceResourceAL`, so the brand no longer exists and
|
|
119
|
-
* `instanceof` is the question that remains: is this one of these maps.
|
|
120
|
-
*
|
|
121
|
-
* Not `CjsSchema.cast`, which asks whether an object implements an optional
|
|
122
|
-
* CONTRACT (`compose/interface.js:169-190`) and falls back to `instanceof`
|
|
123
|
-
* itself - the wrong question and the same answer.
|
|
124
|
-
*
|
|
125
|
-
* @param {Tr2RegisterMapAL} other The map to compare with.
|
|
126
|
-
* @returns {boolean} True when they match.
|
|
127
|
-
*/
|
|
128
|
-
Equals(other) {
|
|
129
|
-
if (!(other instanceof Tr2RegisterMapAL)) return false;
|
|
130
|
-
for (const kind of ["srv", "uav", "sampler"]) {
|
|
131
|
-
const mine = this._Slots(kind);
|
|
132
|
-
const theirs = other._Slots(kind);
|
|
133
|
-
for (let stage = 0; stage < STAGE_COUNT; stage += 1) {
|
|
134
|
-
for (let slot = 0; slot < MAX_RESOURCES_IN_STAGE; slot += 1) {
|
|
135
|
-
if (!mine[stage][slot] !== !theirs[stage][slot]) return false;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/** The slot array for one binding kind, or null when the kind is unknown. */
|
|
143
|
-
_Slots(kind) {
|
|
144
|
-
if (kind === "srv") return this._srvs;
|
|
145
|
-
if (kind === "uav") return this._uavs;
|
|
146
|
-
if (kind === "sampler") return this._samplers;
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* What a resource set binds, per shader stage and register.
|
|
153
|
-
*/
|
|
154
|
-
class Tr2ResourceSetDescriptionAL {
|
|
155
|
-
_srvs = EmptyStages();
|
|
156
|
-
_uavs = EmptyStages();
|
|
157
|
-
_samplers = EmptyStages();
|
|
158
|
-
_constantBuffers = EmptyStages();
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Binds a shader resource - a texture or a buffer - at one register.
|
|
162
|
-
*
|
|
163
|
-
* A TEXTURE CARRIES ITS COLOUR SPACE HERE, which Carbon's signature makes
|
|
164
|
-
* explicit and defaults to linear. The same texture bound as sRGB and as
|
|
165
|
-
* linear is two different bindings.
|
|
166
|
-
*
|
|
167
|
-
* @param {number} stage A `ShaderType`.
|
|
168
|
-
* @param {number} registerIndex The register.
|
|
169
|
-
* @param {object} resource A `Tr2TextureAL` or `Tr2BufferAL`.
|
|
170
|
-
* @param {number} [colorSpace] A colour space; linear when omitted.
|
|
171
|
-
* @returns {boolean} Whether this CHANGED the description - see the note above.
|
|
172
|
-
*/
|
|
173
|
-
SetSrv(stage, registerIndex, resource, colorSpace = 0) {
|
|
174
|
-
if (!ValidSlot(stage, registerIndex)) return false;
|
|
175
|
-
const current = this._srvs[stage][registerIndex];
|
|
176
|
-
if (current && current.resource === resource && current.colorSpace === colorSpace) return false;
|
|
177
|
-
this._srvs[stage][registerIndex] = {
|
|
178
|
-
resource,
|
|
179
|
-
colorSpace
|
|
180
|
-
};
|
|
181
|
-
return true;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Binds an unordered-access resource at one register.
|
|
186
|
-
*
|
|
187
|
-
* @param {number} stage A `ShaderType`.
|
|
188
|
-
* @param {number} registerIndex The register.
|
|
189
|
-
* @param {object} resource A `Tr2TextureAL` or `Tr2BufferAL`.
|
|
190
|
-
* @param {number} [mip] The mip level, for a texture.
|
|
191
|
-
* @returns {boolean} Whether this CHANGED the description.
|
|
192
|
-
*/
|
|
193
|
-
SetUav(stage, registerIndex, resource, mip = 0) {
|
|
194
|
-
if (!ValidSlot(stage, registerIndex)) return false;
|
|
195
|
-
const current = this._uavs[stage][registerIndex];
|
|
196
|
-
if (current && current.resource === resource && current.mip === mip) return false;
|
|
197
|
-
this._uavs[stage][registerIndex] = {
|
|
198
|
-
resource,
|
|
199
|
-
mip
|
|
200
|
-
};
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Binds a sampler at one register.
|
|
206
|
-
*
|
|
207
|
-
* @param {number} stage A `ShaderType`.
|
|
208
|
-
* @param {number} registerIndex The register.
|
|
209
|
-
* @param {object} sampler A `Tr2SamplerStateAL`.
|
|
210
|
-
* @returns {boolean} Whether this CHANGED the description.
|
|
211
|
-
*/
|
|
212
|
-
SetSampler(stage, registerIndex, sampler) {
|
|
213
|
-
if (!ValidSlot(stage, registerIndex)) return false;
|
|
214
|
-
const current = this._samplers[stage][registerIndex];
|
|
215
|
-
if (current && current.sampler === sampler) return false;
|
|
216
|
-
this._samplers[stage][registerIndex] = {
|
|
217
|
-
sampler
|
|
218
|
-
};
|
|
219
|
-
return true;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Binds a constant buffer at one register.
|
|
224
|
-
*
|
|
225
|
-
* The register is the one `Tr2Renderer` names - b0 effect, b1/b2 per frame,
|
|
226
|
-
* b3/b4 per object.
|
|
227
|
-
*
|
|
228
|
-
* @param {number} stage A `ShaderType`.
|
|
229
|
-
* @param {number} registerIndex The register.
|
|
230
|
-
* @param {object} buffer A `Tr2ConstantBufferAL`.
|
|
231
|
-
* @returns {boolean} Whether this CHANGED the description.
|
|
232
|
-
*/
|
|
233
|
-
SetConstantBuffer(stage, registerIndex, buffer) {
|
|
234
|
-
if (!ValidSlot(stage, registerIndex)) return false;
|
|
235
|
-
const current = this._constantBuffers[stage][registerIndex];
|
|
236
|
-
if (current && current.buffer === buffer) return false;
|
|
237
|
-
this._constantBuffers[stage][registerIndex] = {
|
|
238
|
-
buffer
|
|
239
|
-
};
|
|
240
|
-
return true;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* What is bound at one register, or null.
|
|
245
|
-
*
|
|
246
|
-
* @param {string} kind `srv`, `uav`, `sampler` or `constantBuffer`.
|
|
247
|
-
* @param {number} stage A `ShaderType`.
|
|
248
|
-
* @param {number} registerIndex The register.
|
|
249
|
-
* @returns {object|null} The binding.
|
|
250
|
-
*/
|
|
251
|
-
Get(kind, stage, registerIndex) {
|
|
252
|
-
const slots = this._Slots(kind);
|
|
253
|
-
if (!slots || !ValidSlot(stage, registerIndex)) return null;
|
|
254
|
-
return slots[stage][registerIndex];
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Drops every bound resource, keeping samplers and constant buffers.
|
|
259
|
-
*
|
|
260
|
-
* Carbon `Tr2ResourceSetDescriptionAL::ClearResources`
|
|
261
|
-
* (`trinityal/src/Tr2ResourceSetAL.cpp:439-455`), and the ASYMMETRY IS THE
|
|
262
|
-
* POINT: it walks the srv and uav slots and touches nothing else. A sampler
|
|
263
|
-
* is authored static state that arrives with the effect, so clearing it
|
|
264
|
-
* would throw away a binding nothing is going to put back. Resources are the
|
|
265
|
-
* things that change when a material's textures change, which is why
|
|
266
|
-
* `Tr2Material.InvalidateResourceSets` calls this and not a full reset.
|
|
267
|
-
*
|
|
268
|
-
* MISSED BY THE FIRST PORT of this class, and the omission was live:
|
|
269
|
-
* `InvalidateResourceSets` marked the set dirty while leaving the stale
|
|
270
|
-
* bindings in place, so a material could rebind textures it no longer used.
|
|
271
|
-
*/
|
|
272
|
-
ClearResources() {
|
|
273
|
-
for (const slots of [this._srvs, this._uavs]) {
|
|
274
|
-
for (const stage of slots) stage.fill(null);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* A content hash over every bound slot, for deciding whether a realized set
|
|
280
|
-
* still matches the description it was built from.
|
|
281
|
-
*
|
|
282
|
-
* Carbon `Tr2ResourceSetDescriptionAL::ComputeHash`
|
|
283
|
-
* (`trinityal/src/Tr2ResourceSetAL.cpp:457+`), which folds each srv, uav and
|
|
284
|
-
* sampler entry in register order.
|
|
285
|
-
*
|
|
286
|
-
* ONE UNAVOIDABLE DIVERGENCE. Carbon hashes the resource POINTER; JavaScript
|
|
287
|
-
* has no address, so a bound object is folded in by IDENTITY through the
|
|
288
|
-
* same interning `hashFnv1Identity` already uses for the same
|
|
289
|
-
* reason. It answers the question the hash exists to answer — "is this the
|
|
290
|
-
* same object in the same slot" — and, like Carbon's, it is a same-process
|
|
291
|
-
* value that must never be persisted or compared across libraries.
|
|
292
|
-
*
|
|
293
|
-
* @returns {number} An unsigned 32-bit hash.
|
|
294
|
-
*/
|
|
295
|
-
ComputeHash() {
|
|
296
|
-
let hash = FNV1_INITIAL;
|
|
297
|
-
for (const [kind, slots] of [[1, this._srvs], [2, this._uavs], [3, this._samplers]]) {
|
|
298
|
-
for (let stage = 0; stage < slots.length; stage += 1) {
|
|
299
|
-
for (let registerIndex = 0; registerIndex < slots[stage].length; registerIndex += 1) {
|
|
300
|
-
const binding = slots[stage][registerIndex];
|
|
301
|
-
if (!binding) continue;
|
|
302
|
-
|
|
303
|
-
// The SLOT is part of the identity: the same texture at two
|
|
304
|
-
// registers is two different descriptions.
|
|
305
|
-
hash = hashFnv1Floats([kind, stage, registerIndex], hash);
|
|
306
|
-
hash = hashFnv1Identity(binding.resource ?? binding.sampler ?? null, hash);
|
|
307
|
-
|
|
308
|
-
// A texture bound sRGB and bound linear is two bindings, and a uav
|
|
309
|
-
// at two mips likewise, so the qualifier is folded in as well.
|
|
310
|
-
hash = hashFnv1Floats([binding.colorSpace ?? binding.mip ?? 0], hash);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
return hash >>> 0;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* The register map this description fills.
|
|
319
|
-
*
|
|
320
|
-
* Carbon constructs a description FROM a register map or a shader program;
|
|
321
|
-
* deriving the map from the description is the same relationship read the
|
|
322
|
-
* other way, and it is what a backend needs to build a layout.
|
|
323
|
-
*
|
|
324
|
-
* @returns {Tr2RegisterMapAL} The map.
|
|
325
|
-
*/
|
|
326
|
-
GetRegisterMap() {
|
|
327
|
-
const map = new Tr2RegisterMapAL();
|
|
328
|
-
for (const [kind, slots] of [["srv", this._srvs], ["uav", this._uavs], ["sampler", this._samplers]]) {
|
|
329
|
-
slots.forEach((stage, stageIndex) => {
|
|
330
|
-
stage.forEach((binding, registerIndex) => {
|
|
331
|
-
if (binding) map.Use(kind, stageIndex, registerIndex);
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
return map;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/** The slot array for one binding kind, or null when the kind is unknown. */
|
|
339
|
-
_Slots(kind) {
|
|
340
|
-
if (kind === "srv") return this._srvs;
|
|
341
|
-
if (kind === "uav") return this._uavs;
|
|
342
|
-
if (kind === "sampler") return this._samplers;
|
|
343
|
-
if (kind === "constantBuffer") return this._constantBuffers;
|
|
344
|
-
return null;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* A resource set the backend has accepted.
|
|
350
|
-
*
|
|
351
|
-
* Carbon's stub sets a flag and returns success, because the whole meaning of a
|
|
352
|
-
* resource set lives in a descriptor heap or bind group there is none of here.
|
|
353
|
-
* The description is kept, which is the departure every stub in this family
|
|
354
|
-
* makes: a headless caller can read back what it asked to bind.
|
|
355
|
-
*/
|
|
356
|
-
class Tr2ResourceSetALStub extends Tr2BaseDeviceResourceAL {
|
|
357
|
-
/** m_isValid */
|
|
358
|
-
_isValid = false;
|
|
359
|
-
_description = null;
|
|
360
|
-
_program = null;
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* Creates the resource set against a shader program.
|
|
364
|
-
*
|
|
365
|
-
* @param {Tr2ResourceSetDescriptionAL} description What to bind.
|
|
366
|
-
* @param {object} program A `Tr2ShaderProgramAL`.
|
|
367
|
-
* @param {object} renderContext The context to create against.
|
|
368
|
-
* @returns {number} An `ALResult`.
|
|
369
|
-
*/
|
|
370
|
-
Create(description, program, renderContext) {
|
|
371
|
-
if (!renderContext?.IsValid()) return ALResult.E_INVALIDARG;
|
|
372
|
-
this._description = description ?? null;
|
|
373
|
-
this._program = program ?? null;
|
|
374
|
-
this._isValid = true;
|
|
375
|
-
return ALResult.S_OK;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/** @returns {boolean} Whether the set was created. */
|
|
379
|
-
IsValid() {
|
|
380
|
-
return this._isValid;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/** Releases the set. */
|
|
384
|
-
Destroy() {
|
|
385
|
-
this._isValid = false;
|
|
386
|
-
this._description = null;
|
|
387
|
-
this._program = null;
|
|
388
|
-
super.Destroy();
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
/** @returns {Tr2ResourceSetDescriptionAL|null} What this set binds. */
|
|
392
|
-
GetDescription() {
|
|
393
|
-
return this._description;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
/** @returns {object|null} The program this set was created against. */
|
|
397
|
-
GetProgram() {
|
|
398
|
-
return this._program;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
/** @returns {number} A `Tr2ALMemoryType`. */
|
|
402
|
-
GetMemoryClass() {
|
|
403
|
-
return Tr2ALMemoryType.AL_MEMORY_MANAGED;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Names the resource set for a debugger.
|
|
408
|
-
*
|
|
409
|
-
* @param {string} _name The name Carbon would attach; the stub discards it.
|
|
410
|
-
* @returns {number} An `ALResult` value; the stub keeps no name
|
|
411
|
-
* (`Tr2ResourceSetALStub.cpp:41-44`).
|
|
412
|
-
*/
|
|
413
|
-
SetName(_name) {
|
|
414
|
-
return ALResult.S_OK;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
export { MAX_RESOURCES_IN_STAGE, Tr2RegisterMapAL, Tr2ResourceSetALStub, Tr2ResourceSetDescriptionAL };
|
|
419
|
-
//# sourceMappingURL=Tr2ResourceSetAL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2ResourceSetAL.js","sources":["../../../src/trinityal/Tr2ResourceSetAL.js"],"sourcesContent":["// Source: trinity/trinityal/include/Tr2ResourceSetAL.h\r\n// Source: trinity/trinityal/stub/Tr2ResourceSetALStub.cpp\r\n// Source: trinity/trinityal/stub/Tr2ResourceSetALStub.h\r\n//\r\n// A prepared set of textures, samplers and buffers, bound in one call.\r\n//\r\n// THE DESCRIPTION IS WHERE THE DESIGN IS. Carbon's stub resource set is six\r\n// methods that set a flag; the substance lives in the description in\r\n// `include/`, which is shared by every backend. Carbon builds one description,\r\n// creates a set from it against a shader program, and then rebinds THAT per\r\n// draw rather than re-binding each resource.\r\n//\r\n// WHICH IS THE ANSWER TO A QUESTION THIS RUNTIME HAS OPEN. Every WebGPU binding\r\n// currently sits in group 0 with no dynamic offsets, so no bind group can be\r\n// shared between objects and there is nothing for a per-draw cache to cache.\r\n// That was recorded as a design decision to take; it is not one. It is this\r\n// class, and the shape of the answer is Carbon's: a description keyed by shader\r\n// STAGE and register, from which a backend builds whatever its API calls a bind\r\n// group, once.\r\n//\r\n// REGISTERS ARE PER STAGE, which is the part a flat binding model loses.\r\n// `Tr2RegisterMapAL` carries srv, uav and sampler slots for each\r\n// `ShaderType` separately, up to 32 per stage, because t3 in a vertex shader\r\n// and t3 in a pixel shader are different bindings. Carbon's DXBC operands are\r\n// the reason we already know this: the texture/sampler pairing lives in the\r\n// operand, not the name.\r\n//\r\n// NOT PORTED: the heap-view setters (`SetSrvHeapView` and friends), which name a\r\n// descriptor-heap slot rather than a resource. That is a D3D12 residency\r\n// mechanism with no WebGPU counterpart, and Carbon's own stub carries no heap.\r\n\r\nimport { ShaderType } from \"../global/consts/renderContext/index.js\";\r\nimport { Tr2ALMemoryType, Tr2BaseDeviceResourceAL } from \"./Tr2DeviceResourceAL.js\";\r\nimport { ALResult } from \"./ALResult.js\";\r\nimport { FNV1_INITIAL, hashFnv1Floats, hashFnv1Identity } from \"../global/utils/hash.js\";\r\n\r\n\r\n/** Carbon's `MAX_RESOURCES_IN_STAGE`. */\r\nexport const MAX_RESOURCES_IN_STAGE = 32;\r\n\r\n/** How many shader stages a register map covers: `SHADER_TYPE_COUNT`. */\r\nconst STAGE_COUNT = ShaderType.SHADER_TYPE_COUNT;\r\n\r\n\r\nfunction EmptyStages()\r\n{\r\n return Array.from({ length: STAGE_COUNT }, () => new Array(MAX_RESOURCES_IN_STAGE).fill(null));\r\n}\r\n\r\nfunction ValidSlot(stage, registerIndex)\r\n{\r\n return Number.isInteger(stage) && stage >= 0 && stage < STAGE_COUNT\r\n && Number.isInteger(registerIndex) && registerIndex >= 0 && registerIndex < MAX_RESOURCES_IN_STAGE;\r\n}\r\n\r\n\r\n/**\r\n * Which registers a shader program reads, per stage.\r\n *\r\n * Carbon builds this from a shader signature and compares whole maps for\r\n * equality, which is how it decides that two draws can share a resource set.\r\n */\r\nexport class Tr2RegisterMapAL\r\n{\r\n _srvs = EmptyStages();\r\n\r\n _uavs = EmptyStages();\r\n\r\n _samplers = EmptyStages();\r\n\r\n /** Shader-resource slots per stage. @returns {Array} */\r\n GetSrvs()\r\n {\r\n return this._srvs;\r\n }\r\n\r\n /** Unordered-access slots per stage. @returns {Array} */\r\n GetUavs()\r\n {\r\n return this._uavs;\r\n }\r\n\r\n /** Sampler slots per stage. @returns {Array} */\r\n GetSamplers()\r\n {\r\n return this._samplers;\r\n }\r\n\r\n /**\r\n * Records that a stage reads one register of one kind.\r\n *\r\n * @param {string} kind `srv`, `uav` or `sampler`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @returns {boolean} Whether the slot is addressable.\r\n */\r\n Use(kind, stage, registerIndex)\r\n {\r\n const slots = this._Slots(kind);\r\n\r\n if (!slots || !ValidSlot(stage, registerIndex)) return false;\r\n\r\n slots[stage][registerIndex] = true;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * How many registers of one kind are used, across every stage.\r\n *\r\n * Carbon keeps `srvCount`, `uavCount` and `samplerCount` as fields; counting\r\n * on demand cannot drift out of step with the slots.\r\n *\r\n * @param {string} kind `srv`, `uav` or `sampler`.\r\n * @returns {number} The count.\r\n */\r\n Count(kind)\r\n {\r\n const slots = this._Slots(kind);\r\n\r\n if (!slots) return 0;\r\n\r\n return slots.reduce((total, stage) => total + stage.filter(Boolean).length, 0);\r\n }\r\n\r\n /**\r\n * Whether two maps describe the same registers.\r\n *\r\n * Carbon's `operator==`, and the reason it exists: two programs with the same\r\n * register map can share a resource set.\r\n *\r\n * `instanceof`, NOT A PRIVATE-BRAND CHECK. It used to be `_srvs in other`,\r\n * which answers \"will `other._Slots(...)` work\" exactly - the right question\r\n * while the members were `#`-private. They are `_`-prefixed now, for the\r\n * reason recorded on `Tr2DeviceResourceAL`, so the brand no longer exists and\r\n * `instanceof` is the question that remains: is this one of these maps.\r\n *\r\n * Not `CjsSchema.cast`, which asks whether an object implements an optional\r\n * CONTRACT (`compose/interface.js:169-190`) and falls back to `instanceof`\r\n * itself - the wrong question and the same answer.\r\n *\r\n * @param {Tr2RegisterMapAL} other The map to compare with.\r\n * @returns {boolean} True when they match.\r\n */\r\n Equals(other)\r\n {\r\n if (!(other instanceof Tr2RegisterMapAL)) return false;\r\n\r\n for (const kind of [ \"srv\", \"uav\", \"sampler\" ])\r\n {\r\n const mine = this._Slots(kind);\r\n const theirs = other._Slots(kind);\r\n\r\n for (let stage = 0; stage < STAGE_COUNT; stage += 1)\r\n {\r\n for (let slot = 0; slot < MAX_RESOURCES_IN_STAGE; slot += 1)\r\n {\r\n if (!mine[stage][slot] !== !theirs[stage][slot]) return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** The slot array for one binding kind, or null when the kind is unknown. */\r\n _Slots(kind)\r\n {\r\n if (kind === \"srv\") return this._srvs;\r\n if (kind === \"uav\") return this._uavs;\r\n if (kind === \"sampler\") return this._samplers;\r\n\r\n return null;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * What a resource set binds, per shader stage and register.\r\n */\r\nexport class Tr2ResourceSetDescriptionAL\r\n{\r\n _srvs = EmptyStages();\r\n\r\n _uavs = EmptyStages();\r\n\r\n _samplers = EmptyStages();\r\n\r\n _constantBuffers = EmptyStages();\r\n\r\n /**\r\n * Binds a shader resource - a texture or a buffer - at one register.\r\n *\r\n * A TEXTURE CARRIES ITS COLOUR SPACE HERE, which Carbon's signature makes\r\n * explicit and defaults to linear. The same texture bound as sRGB and as\r\n * linear is two different bindings.\r\n *\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {object} resource A `Tr2TextureAL` or `Tr2BufferAL`.\r\n * @param {number} [colorSpace] A colour space; linear when omitted.\r\n * @returns {boolean} Whether this CHANGED the description - see the note above.\r\n */\r\n SetSrv(stage, registerIndex, resource, colorSpace = 0)\r\n {\r\n if (!ValidSlot(stage, registerIndex)) return false;\r\n\r\n const current = this._srvs[stage][registerIndex];\r\n\r\n if (current && current.resource === resource && current.colorSpace === colorSpace) return false;\r\n\r\n this._srvs[stage][registerIndex] = { resource, colorSpace };\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Binds an unordered-access resource at one register.\r\n *\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {object} resource A `Tr2TextureAL` or `Tr2BufferAL`.\r\n * @param {number} [mip] The mip level, for a texture.\r\n * @returns {boolean} Whether this CHANGED the description.\r\n */\r\n SetUav(stage, registerIndex, resource, mip = 0)\r\n {\r\n if (!ValidSlot(stage, registerIndex)) return false;\r\n\r\n const current = this._uavs[stage][registerIndex];\r\n\r\n if (current && current.resource === resource && current.mip === mip) return false;\r\n\r\n this._uavs[stage][registerIndex] = { resource, mip };\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Binds a sampler at one register.\r\n *\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {object} sampler A `Tr2SamplerStateAL`.\r\n * @returns {boolean} Whether this CHANGED the description.\r\n */\r\n SetSampler(stage, registerIndex, sampler)\r\n {\r\n if (!ValidSlot(stage, registerIndex)) return false;\r\n\r\n const current = this._samplers[stage][registerIndex];\r\n\r\n if (current && current.sampler === sampler) return false;\r\n\r\n this._samplers[stage][registerIndex] = { sampler };\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Binds a constant buffer at one register.\r\n *\r\n * The register is the one `Tr2Renderer` names - b0 effect, b1/b2 per frame,\r\n * b3/b4 per object.\r\n *\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {object} buffer A `Tr2ConstantBufferAL`.\r\n * @returns {boolean} Whether this CHANGED the description.\r\n */\r\n SetConstantBuffer(stage, registerIndex, buffer)\r\n {\r\n if (!ValidSlot(stage, registerIndex)) return false;\r\n\r\n const current = this._constantBuffers[stage][registerIndex];\r\n\r\n if (current && current.buffer === buffer) return false;\r\n\r\n this._constantBuffers[stage][registerIndex] = { buffer };\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * What is bound at one register, or null.\r\n *\r\n * @param {string} kind `srv`, `uav`, `sampler` or `constantBuffer`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @returns {object|null} The binding.\r\n */\r\n Get(kind, stage, registerIndex)\r\n {\r\n const slots = this._Slots(kind);\r\n\r\n if (!slots || !ValidSlot(stage, registerIndex)) return null;\r\n\r\n return slots[stage][registerIndex];\r\n }\r\n\r\n /**\r\n * Drops every bound resource, keeping samplers and constant buffers.\r\n *\r\n * Carbon `Tr2ResourceSetDescriptionAL::ClearResources`\r\n * (`trinityal/src/Tr2ResourceSetAL.cpp:439-455`), and the ASYMMETRY IS THE\r\n * POINT: it walks the srv and uav slots and touches nothing else. A sampler\r\n * is authored static state that arrives with the effect, so clearing it\r\n * would throw away a binding nothing is going to put back. Resources are the\r\n * things that change when a material's textures change, which is why\r\n * `Tr2Material.InvalidateResourceSets` calls this and not a full reset.\r\n *\r\n * MISSED BY THE FIRST PORT of this class, and the omission was live:\r\n * `InvalidateResourceSets` marked the set dirty while leaving the stale\r\n * bindings in place, so a material could rebind textures it no longer used.\r\n */\r\n ClearResources()\r\n {\r\n for (const slots of [ this._srvs, this._uavs ])\r\n {\r\n for (const stage of slots) stage.fill(null);\r\n }\r\n }\r\n\r\n /**\r\n * A content hash over every bound slot, for deciding whether a realized set\r\n * still matches the description it was built from.\r\n *\r\n * Carbon `Tr2ResourceSetDescriptionAL::ComputeHash`\r\n * (`trinityal/src/Tr2ResourceSetAL.cpp:457+`), which folds each srv, uav and\r\n * sampler entry in register order.\r\n *\r\n * ONE UNAVOIDABLE DIVERGENCE. Carbon hashes the resource POINTER; JavaScript\r\n * has no address, so a bound object is folded in by IDENTITY through the\r\n * same interning `hashFnv1Identity` already uses for the same\r\n * reason. It answers the question the hash exists to answer — \"is this the\r\n * same object in the same slot\" — and, like Carbon's, it is a same-process\r\n * value that must never be persisted or compared across libraries.\r\n *\r\n * @returns {number} An unsigned 32-bit hash.\r\n */\r\n ComputeHash()\r\n {\r\n let hash = FNV1_INITIAL;\r\n\r\n for (const [ kind, slots ] of [ [ 1, this._srvs ], [ 2, this._uavs ], [ 3, this._samplers ] ])\r\n {\r\n for (let stage = 0; stage < slots.length; stage += 1)\r\n {\r\n for (let registerIndex = 0; registerIndex < slots[stage].length; registerIndex += 1)\r\n {\r\n const binding = slots[stage][registerIndex];\r\n\r\n if (!binding) continue;\r\n\r\n // The SLOT is part of the identity: the same texture at two\r\n // registers is two different descriptions.\r\n hash = hashFnv1Floats([ kind, stage, registerIndex ], hash);\r\n hash = hashFnv1Identity(binding.resource ?? binding.sampler ?? null, hash);\r\n\r\n // A texture bound sRGB and bound linear is two bindings, and a uav\r\n // at two mips likewise, so the qualifier is folded in as well.\r\n hash = hashFnv1Floats([ binding.colorSpace ?? binding.mip ?? 0 ], hash);\r\n }\r\n }\r\n }\r\n\r\n return hash >>> 0;\r\n }\r\n\r\n /**\r\n * The register map this description fills.\r\n *\r\n * Carbon constructs a description FROM a register map or a shader program;\r\n * deriving the map from the description is the same relationship read the\r\n * other way, and it is what a backend needs to build a layout.\r\n *\r\n * @returns {Tr2RegisterMapAL} The map.\r\n */\r\n GetRegisterMap()\r\n {\r\n const map = new Tr2RegisterMapAL();\r\n\r\n for (const [ kind, slots ] of [ [ \"srv\", this._srvs ], [ \"uav\", this._uavs ], [ \"sampler\", this._samplers ] ])\r\n {\r\n slots.forEach((stage, stageIndex) =>\r\n {\r\n stage.forEach((binding, registerIndex) =>\r\n {\r\n if (binding) map.Use(kind, stageIndex, registerIndex);\r\n });\r\n });\r\n }\r\n\r\n return map;\r\n }\r\n\r\n /** The slot array for one binding kind, or null when the kind is unknown. */\r\n _Slots(kind)\r\n {\r\n if (kind === \"srv\") return this._srvs;\r\n if (kind === \"uav\") return this._uavs;\r\n if (kind === \"sampler\") return this._samplers;\r\n if (kind === \"constantBuffer\") return this._constantBuffers;\r\n\r\n return null;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * A resource set the backend has accepted.\r\n *\r\n * Carbon's stub sets a flag and returns success, because the whole meaning of a\r\n * resource set lives in a descriptor heap or bind group there is none of here.\r\n * The description is kept, which is the departure every stub in this family\r\n * makes: a headless caller can read back what it asked to bind.\r\n */\r\nexport class Tr2ResourceSetALStub extends Tr2BaseDeviceResourceAL\r\n{\r\n /** m_isValid */\r\n _isValid = false;\r\n\r\n _description = null;\r\n\r\n _program = null;\r\n\r\n /**\r\n * Creates the resource set against a shader program.\r\n *\r\n * @param {Tr2ResourceSetDescriptionAL} description What to bind.\r\n * @param {object} program A `Tr2ShaderProgramAL`.\r\n * @param {object} renderContext The context to create against.\r\n * @returns {number} An `ALResult`.\r\n */\r\n Create(description, program, renderContext)\r\n {\r\n if (!renderContext?.IsValid()) return ALResult.E_INVALIDARG;\r\n\r\n this._description = description ?? null;\r\n this._program = program ?? null;\r\n this._isValid = true;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /** @returns {boolean} Whether the set was created. */\r\n IsValid()\r\n {\r\n return this._isValid;\r\n }\r\n\r\n /** Releases the set. */\r\n Destroy()\r\n {\r\n this._isValid = false;\r\n this._description = null;\r\n this._program = null;\r\n super.Destroy();\r\n }\r\n\r\n /** @returns {Tr2ResourceSetDescriptionAL|null} What this set binds. */\r\n GetDescription()\r\n {\r\n return this._description;\r\n }\r\n\r\n /** @returns {object|null} The program this set was created against. */\r\n GetProgram()\r\n {\r\n return this._program;\r\n }\r\n\r\n /** @returns {number} A `Tr2ALMemoryType`. */\r\n GetMemoryClass()\r\n {\r\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\r\n }\r\n\r\n\r\n /**\r\n * Names the resource set for a debugger.\r\n *\r\n * @param {string} _name The name Carbon would attach; the stub discards it.\r\n * @returns {number} An `ALResult` value; the stub keeps no name\r\n * (`Tr2ResourceSetALStub.cpp:41-44`).\r\n */\r\n SetName(_name)\r\n {\r\n return ALResult.S_OK;\r\n }\r\n}\r\n"],"names":["MAX_RESOURCES_IN_STAGE","STAGE_COUNT","ShaderType","SHADER_TYPE_COUNT","EmptyStages","Array","from","length","fill","ValidSlot","stage","registerIndex","Number","isInteger","Tr2RegisterMapAL","_srvs","_uavs","_samplers","GetSrvs","GetUavs","GetSamplers","Use","kind","slots","_Slots","Count","reduce","total","filter","Boolean","Equals","other","mine","theirs","slot","Tr2ResourceSetDescriptionAL","_constantBuffers","SetSrv","resource","colorSpace","current","SetUav","mip","SetSampler","sampler","SetConstantBuffer","buffer","Get","ClearResources","ComputeHash","hash","FNV1_INITIAL","binding","hashFnv1Floats","hashFnv1Identity","GetRegisterMap","map","forEach","stageIndex","Tr2ResourceSetALStub","Tr2BaseDeviceResourceAL","_isValid","_description","_program","Create","description","program","renderContext","IsValid","ALResult","E_INVALIDARG","S_OK","Destroy","GetDescription","GetProgram","GetMemoryClass","Tr2ALMemoryType","AL_MEMORY_MANAGED","SetName","_name"],"mappings":"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"}
|