@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { applyDecs2311 as _applyDecs2311 } from '
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { RenderingMode } from '#consts/graphics';
|
|
3
3
|
import { impl } from '#schema';
|
|
4
4
|
|
|
5
5
|
let _initProto;
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* Abstract base for render-batch accumulators: holds the shared rendering mode,
|
|
9
|
-
* user data and per-object-data store, and declares the collect and sort
|
|
10
|
-
* contract concrete accumulators implement.
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base for render-batch accumulators: holds the shared rendering mode,
|
|
9
|
+
* user data and per-object-data store, and declares the collect and sort
|
|
10
|
+
* contract concrete accumulators implement.
|
|
11
11
|
*/
|
|
12
12
|
class ITriRenderBatchAccumulator {
|
|
13
13
|
static {
|
|
14
14
|
[_initProto] = _applyDecs2311(this, [], [[[impl, impl.abstract], 18, "Clear"], [[impl, impl.abstract], 18, "Commit"], [[impl, impl.abstract], 18, "GetGdprBatches"], [[impl, impl.abstract], 18, "GetBatches"], [[impl, impl.abstract], 18, "Finalize"], [[impl, impl.abstract], 18, "GetBatchCount"], [[impl, impl.abstract], 18, "IsChainedByEffect"], [[impl, impl.abstract], 18, "TransferFrom"]]).e;
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Starts with zero user data, RM_ANY rendering mode and no per-object-data
|
|
18
|
-
* store bound.
|
|
16
|
+
/**
|
|
17
|
+
* Starts with zero user data, RM_ANY rendering mode and no per-object-data
|
|
18
|
+
* store bound.
|
|
19
19
|
*/
|
|
20
20
|
constructor() {
|
|
21
21
|
_initProto(this);
|
|
@@ -31,9 +31,9 @@ class ITriRenderBatchAccumulator {
|
|
|
31
31
|
// Bind the per-object-data store (from the render context). Carbon's pool
|
|
32
32
|
// allocator (Tr2Renderer::GetPoolAllocator) relocates onto this store.
|
|
33
33
|
|
|
34
|
-
/**
|
|
35
|
-
* Binds the per-object-data store, normally taken from the render context at
|
|
36
|
-
* scene setup; returns this for chaining.
|
|
34
|
+
/**
|
|
35
|
+
* Binds the per-object-data store, normally taken from the render context at
|
|
36
|
+
* scene setup; returns this for chaining.
|
|
37
37
|
*/
|
|
38
38
|
SetTriPoolAllocator(store) {
|
|
39
39
|
this.rawDataStore = store;
|
|
@@ -49,10 +49,10 @@ class ITriRenderBatchAccumulator {
|
|
|
49
49
|
// per-object-data allocation). Requires a store - there is no fallback; a
|
|
50
50
|
// missing store is a setup error, not a silent tight-pack.
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* Leases a transient per-object payload for a registered struct from the bound
|
|
54
|
-
* store; a missing store throws rather than silently falling back, because it
|
|
55
|
-
* is a setup error.
|
|
52
|
+
/**
|
|
53
|
+
* Leases a transient per-object payload for a registered struct from the bound
|
|
54
|
+
* store; a missing store throws rather than silently falling back, because it
|
|
55
|
+
* is a setup error.
|
|
56
56
|
*/
|
|
57
57
|
Alloc(name) {
|
|
58
58
|
if (!this.rawDataStore) {
|
|
@@ -65,17 +65,17 @@ class ITriRenderBatchAccumulator {
|
|
|
65
65
|
// owns lifetime, so this just constructs the requested object. Retained for
|
|
66
66
|
// the deferred { object: this } sites during the per-object-data migration.
|
|
67
67
|
|
|
68
|
-
/**
|
|
69
|
-
* Constructs the requested per-object-data object; Carbon pool-allocates here,
|
|
70
|
-
* but in JS the GC owns lifetime, so this only calls the constructor.
|
|
68
|
+
/**
|
|
69
|
+
* Constructs the requested per-object-data object; Carbon pool-allocates here,
|
|
70
|
+
* but in JS the GC owns lifetime, so this only calls the constructor.
|
|
71
71
|
*/
|
|
72
72
|
Allocate(Constructor) {
|
|
73
73
|
return new Constructor();
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
/**
|
|
77
|
-
* Attaches an opaque caller value that every batch collected by this
|
|
78
|
-
* accumulator carries.
|
|
76
|
+
/**
|
|
77
|
+
* Attaches an opaque caller value that every batch collected by this
|
|
78
|
+
* accumulator carries.
|
|
79
79
|
*/
|
|
80
80
|
SetUserData(userData) {
|
|
81
81
|
this.userData = userData;
|
|
@@ -91,17 +91,17 @@ class ITriRenderBatchAccumulator {
|
|
|
91
91
|
return this.renderingMode;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
/**
|
|
95
|
-
* Abstract: concrete accumulators drop every collected batch and reset the
|
|
96
|
-
* shared state.
|
|
94
|
+
/**
|
|
95
|
+
* Abstract: concrete accumulators drop every collected batch and reset the
|
|
96
|
+
* shared state.
|
|
97
97
|
*/
|
|
98
98
|
Clear() {
|
|
99
99
|
throw new Error("ITriRenderBatchAccumulator.Clear is abstract");
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
/**
|
|
103
|
-
* Abstract: concrete accumulators take ownership of a batch and file it for
|
|
104
|
-
* sorting.
|
|
102
|
+
/**
|
|
103
|
+
* Abstract: concrete accumulators take ownership of a batch and file it for
|
|
104
|
+
* sorting.
|
|
105
105
|
*/
|
|
106
106
|
Commit(_batch) {
|
|
107
107
|
throw new Error("ITriRenderBatchAccumulator.Commit is abstract");
|
|
@@ -127,9 +127,9 @@ class ITriRenderBatchAccumulator {
|
|
|
127
127
|
throw new Error("ITriRenderBatchAccumulator.GetBatchCount is abstract");
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
/**
|
|
131
|
-
* Abstract: whether the collected batches are effect-sorted rather than
|
|
132
|
-
* order-preserving.
|
|
130
|
+
/**
|
|
131
|
+
* Abstract: whether the collected batches are effect-sorted rather than
|
|
132
|
+
* order-preserving.
|
|
133
133
|
*/
|
|
134
134
|
IsChainedByEffect() {
|
|
135
135
|
throw new Error("ITriRenderBatchAccumulator.IsChainedByEffect is abstract");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITriRenderBatchAccumulator.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h (ITriRenderBatchAccumulator)\n//\n// Abstract base for render-batch accumulators: shared render-mode / user-data\n// state plus the collect/sort contract. Concrete accumulators\n// (TriRenderBatchAccumulator) implement Commit/Finalize/Get*/TransferFrom. This\n// stays GPU-free; dispatch to the device is the engine adapter's job.\nimport { RenderingMode } from \"#consts/graphics\";\nimport { impl } from \"#schema\";\n\n\n/**\n * Abstract base for render-batch accumulators: holds the shared rendering mode,\n * user data and per-object-data store, and declares the collect and sort\n * contract concrete accumulators implement.\n */\nexport class ITriRenderBatchAccumulator\n{\n /**\n * Starts with zero user data, RM_ANY rendering mode and no per-object-data\n * store bound.\n */\n constructor()\n {\n this.userData = 0;\n\n this.renderingMode = RenderingMode.RM_ANY;\n\n // The per-object-data store (a TriPoolAllocator), set once from the render\n // context at scene setup. The engine builds it from its own struct\n // reflection; Trinity never defines a struct here.\n this.rawDataStore = null;\n }\n\n // Bind the per-object-data store (from the render context). Carbon's pool\n // allocator (Tr2Renderer::GetPoolAllocator) relocates onto this store.\n\n /**\n * Binds the per-object-data store, normally taken from the render context at\n * scene setup; returns this for chaining.\n */\n SetTriPoolAllocator(store)\n {\n this.rawDataStore = store;\n return this;\n }\n\n /** The bound per-object-data store, or null when none was set. */\n GetTriPoolAllocator()\n {\n return this.rawDataStore;\n }\n\n // Lease a transient per-object payload for a registered struct (the pooled\n // per-object-data allocation). Requires a store - there is no fallback; a\n // missing store is a setup error, not a silent tight-pack.\n\n /**\n * Leases a transient per-object payload for a registered struct from the bound\n * store; a missing store throws rather than silently falling back, because it\n * is a setup error.\n */\n Alloc(name)\n {\n if (!this.rawDataStore)\n {\n throw new Error(`ITriRenderBatchAccumulator: no per-object-data store bound (set it from the render context before Alloc \"${name}\")`);\n }\n\n return this.rawDataStore.Allocate(name);\n }\n\n // Carbon pool-allocates per-object data from the accumulator; in JS the GC\n // owns lifetime, so this just constructs the requested object. Retained for\n // the deferred { object: this } sites during the per-object-data migration.\n\n /**\n * Constructs the requested per-object-data object; Carbon pool-allocates here,\n * but in JS the GC owns lifetime, so this only calls the constructor.\n */\n Allocate(Constructor)\n {\n return new Constructor();\n }\n\n /**\n * Attaches an opaque caller value that every batch collected by this\n * accumulator carries.\n */\n SetUserData(userData)\n {\n this.userData = userData;\n }\n\n /** Sets the rendering mode that Commit stamps onto every batch collected here. */\n SetRenderingMode(mode)\n {\n this.renderingMode = mode;\n }\n\n /** The rendering mode stamped onto collected batches. */\n GetRenderingMode()\n {\n return this.renderingMode;\n }\n\n /**\n * Abstract: concrete accumulators drop every collected batch and reset the\n * shared state.\n */\n @impl.abstract\n Clear()\n {\n throw new Error(\"ITriRenderBatchAccumulator.Clear is abstract\");\n }\n\n /**\n * Abstract: concrete accumulators take ownership of a batch and file it for\n * sorting.\n */\n @impl.abstract\n Commit(_batch)\n {\n throw new Error(\"ITriRenderBatchAccumulator.Commit is abstract\");\n }\n\n /** Abstract: the GDPR-eligible batch vector. */\n @impl.abstract\n GetGdprBatches()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetGdprBatches is abstract\");\n }\n\n /** Abstract: the plain batch vector. */\n @impl.abstract\n GetBatches()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetBatches is abstract\");\n }\n\n /** Abstract: concrete accumulators sort and group-count the collected batches. */\n @impl.abstract\n Finalize()\n {\n throw new Error(\"ITriRenderBatchAccumulator.Finalize is abstract\");\n }\n\n /** Abstract: total number of collected batches. */\n @impl.abstract\n GetBatchCount()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetBatchCount is abstract\");\n }\n\n /**\n * Abstract: whether the collected batches are effect-sorted rather than\n * order-preserving.\n */\n @impl.abstract\n IsChainedByEffect()\n {\n throw new Error(\"ITriRenderBatchAccumulator.IsChainedByEffect is abstract\");\n }\n\n /** Abstract: folds another accumulator's batches into this one. */\n @impl.abstract\n TransferFrom(_source)\n {\n throw new Error(\"ITriRenderBatchAccumulator.TransferFrom is abstract\");\n }\n}\n"],"names":["ITriRenderBatchAccumulator","_initProto","_applyDecs","impl","abstract","e","constructor","userData","renderingMode","RenderingMode","RM_ANY","rawDataStore","SetTriPoolAllocator","store","GetTriPoolAllocator","Alloc","name","Error","Allocate","Constructor","SetUserData","SetRenderingMode","mode","GetRenderingMode","Clear","Commit","_batch","GetGdprBatches","GetBatches","Finalize","GetBatchCount","IsChainedByEffect","TransferFrom","_source"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { RenderingMode } from '#consts/graphics';
|
|
|
2
2
|
import { Topology } from '#consts/render-context';
|
|
3
3
|
import { TriGeometryRes } from '#resource/geometry';
|
|
4
4
|
|
|
5
|
-
// Source: trinity/TriRenderBatch.h
|
|
5
|
+
// Source: trinity/trinity/TriRenderBatch.h
|
|
6
6
|
// trinity/TriRenderBatch.cpp
|
|
7
7
|
//
|
|
8
8
|
// GPU-free CPU render-batch descriptor plus the binning/sort helpers. A batch
|
|
@@ -11,6 +11,7 @@ import { TriGeometryRes } from '#resource/geometry';
|
|
|
11
11
|
// batches and issues the actual draws (Carbon's Tr2RenderContextBase::RenderBatches*
|
|
12
12
|
// dispatch family stays engine-side and is intentionally NOT ported here).
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
// Carbon sorts batches on raw pointer identity of shader/vertex-stream objects.
|
|
15
16
|
// JS has no pointer order, so we assign each distinct reference a stable id on
|
|
16
17
|
// first encounter. Only contiguity of equal references matters for binning, so
|
|
@@ -18,10 +19,10 @@ import { TriGeometryRes } from '#resource/geometry';
|
|
|
18
19
|
let nextOrderId = 1;
|
|
19
20
|
const orderIds = new WeakMap();
|
|
20
21
|
|
|
21
|
-
/**
|
|
22
|
-
* Stable per-reference ordinal standing in for Carbon's pointer ordering in
|
|
23
|
-
* batch comparisons; assigned on first sight and held in a WeakMap, so it is
|
|
24
|
-
* consistent within a run but meaningless across runs.
|
|
22
|
+
/**
|
|
23
|
+
* Stable per-reference ordinal standing in for Carbon's pointer ordering in
|
|
24
|
+
* batch comparisons; assigned on first sight and held in a WeakMap, so it is
|
|
25
|
+
* consistent within a run but meaningless across runs.
|
|
25
26
|
*/
|
|
26
27
|
function OrderOf(ref) {
|
|
27
28
|
if (ref === null || ref === undefined) return 0;
|
|
@@ -34,80 +35,6 @@ function OrderOf(ref) {
|
|
|
34
35
|
return id;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
// A contiguous (startIndex, count) block of mesh groups. Mirrors Carbon
|
|
38
|
-
// TriRenderBatchAreaBlock; used by the shadow/overlay area-block paths.
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* A contiguous (startIndex, count) run of mesh groups, as consumed by the shadow
|
|
42
|
-
* and overlay area-block paths.
|
|
43
|
-
*/
|
|
44
|
-
class TriRenderBatchAreaBlock {
|
|
45
|
-
/**
|
|
46
|
-
* Creates a block covering count groups from startIndex; both are coerced to
|
|
47
|
-
* unsigned integers.
|
|
48
|
-
*/
|
|
49
|
-
constructor(startIndex = 0, count = 0) {
|
|
50
|
-
this.startIndex = startIndex >>> 0;
|
|
51
|
-
this.count = count >>> 0;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Compacts a set of possibly overlapping/adjacent blocks into the minimal set
|
|
55
|
-
// of contiguous runs, in place. Mirrors TriRenderBatchAreaBlock::Optimize.
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Compacts a vector of possibly overlapping or adjacent blocks into the
|
|
59
|
-
* minimal set of contiguous runs, rewriting the caller's array in place and
|
|
60
|
-
* returning it.
|
|
61
|
-
*/
|
|
62
|
-
static Optimize(areaBlockVector) {
|
|
63
|
-
const indices = new Set();
|
|
64
|
-
for (const block of areaBlockVector) {
|
|
65
|
-
for (let i = 0; i < block.count; i++) indices.add(block.startIndex + i);
|
|
66
|
-
}
|
|
67
|
-
const sorted = Array.from(indices).sort((a, b) => a - b);
|
|
68
|
-
areaBlockVector.length = 0;
|
|
69
|
-
let start = -1;
|
|
70
|
-
let run = -1;
|
|
71
|
-
for (const value of sorted) {
|
|
72
|
-
if (run >= 0 && value === run + 1) {
|
|
73
|
-
run = value;
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
if (run >= 0) areaBlockVector.push(new TriRenderBatchAreaBlock(start, run - start + 1));
|
|
77
|
-
start = value;
|
|
78
|
-
run = value;
|
|
79
|
-
}
|
|
80
|
-
if (run >= 0) areaBlockVector.push(new TriRenderBatchAreaBlock(start, run - start + 1));
|
|
81
|
-
return areaBlockVector;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// A shared-material list of area blocks (shadow/overlay path). Mirrors
|
|
86
|
-
// TriRenderBatchAreaBlocksWithSharedMaterial.
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Groups the area blocks that draw with one shared shader material on the shadow
|
|
90
|
-
* and overlay path.
|
|
91
|
-
*/
|
|
92
|
-
class TriRenderBatchAreaBlocksWithSharedMaterial extends TriRenderBatchAreaBlock {
|
|
93
|
-
/** Starts with no shared material and an empty block vector. */
|
|
94
|
-
constructor() {
|
|
95
|
-
super();
|
|
96
|
-
this.shaderMaterial = null;
|
|
97
|
-
this.areaBlockVector = [];
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/** Compacts the owned block vector into minimal contiguous runs. */
|
|
101
|
-
Optimize() {
|
|
102
|
-
TriRenderBatchAreaBlock.Optimize(this.areaBlockVector);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/** Empties the block vector while keeping the shared material bound. */
|
|
106
|
-
Clear() {
|
|
107
|
-
this.areaBlockVector.length = 0;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
38
|
// THE ALLOCATION TYPE IS A PORT GAP, AND THESE TWO HELPERS ARE WHERE IT SHOWS.
|
|
112
39
|
//
|
|
113
40
|
// Carbon's `SetGeometryFromAllocations` takes a `Tr2SuballocatedBuffer::Allocation`
|
|
@@ -140,14 +67,14 @@ function AllocationStride(allocation) {
|
|
|
140
67
|
// producer supplies (in the GPU-free runtime these are geometry-resource-backed
|
|
141
68
|
// descriptors that the engine resolves to real buffers at dispatch time).
|
|
142
69
|
|
|
143
|
-
/**
|
|
144
|
-
* One draw's worth of CPU descriptor state - material and shader key, geometry
|
|
145
|
-
* binding, draw arguments and sort keys - holding no device resources.
|
|
70
|
+
/**
|
|
71
|
+
* One draw's worth of CPU descriptor state - material and shader key, geometry
|
|
72
|
+
* binding, draw arguments and sort keys - holding no device resources.
|
|
146
73
|
*/
|
|
147
74
|
class Tr2RenderBatch {
|
|
148
|
-
/**
|
|
149
|
-
* Creates an empty batch with no material or geometry, RM_ANY rendering mode,
|
|
150
|
-
* triangle-list topology and a group count of 1.
|
|
75
|
+
/**
|
|
76
|
+
* Creates an empty batch with no material or geometry, RM_ANY rendering mode,
|
|
77
|
+
* triangle-list topology and a group count of 1.
|
|
151
78
|
*/
|
|
152
79
|
constructor() {
|
|
153
80
|
this.material = null;
|
|
@@ -196,11 +123,11 @@ class Tr2RenderBatch {
|
|
|
196
123
|
// shader key. Either way the shader is both the validity key (see IsValid) and
|
|
197
124
|
// the primary bin/sort key, so effect-equal batches still group together.
|
|
198
125
|
|
|
199
|
-
/**
|
|
200
|
-
* Sets the material and derives the shader key from it, falling back to the
|
|
201
|
-
* material itself when no shader-state interface is realized yet; that key is
|
|
202
|
-
* both the validity test and the primary bin/sort key, so effect-equal batches
|
|
203
|
-
* still group together.
|
|
126
|
+
/**
|
|
127
|
+
* Sets the material and derives the shader key from it, falling back to the
|
|
128
|
+
* material itself when no shader-state interface is realized yet; that key is
|
|
129
|
+
* both the validity test and the primary bin/sort key, so effect-equal batches
|
|
130
|
+
* still group together.
|
|
204
131
|
*/
|
|
205
132
|
SetMaterial(material) {
|
|
206
133
|
this.material = material ?? null;
|
|
@@ -214,9 +141,9 @@ class Tr2RenderBatch {
|
|
|
214
141
|
|
|
215
142
|
// Carbon: SetGeometry(vertexDecl, Tr2BufferAL& vb, stride, Tr2BufferAL& ib, indexStride).
|
|
216
143
|
|
|
217
|
-
/**
|
|
218
|
-
* Binds one vertex stream and an index buffer with their strides, clearing the
|
|
219
|
-
* second stream.
|
|
144
|
+
/**
|
|
145
|
+
* Binds one vertex stream and an index buffer with their strides, clearing the
|
|
146
|
+
* second stream.
|
|
220
147
|
*/
|
|
221
148
|
SetGeometry(vertexDeclaration, vertexBuffer, vertexStride, indexBuffer, indexStride) {
|
|
222
149
|
this.vertexDeclaration = vertexDeclaration >>> 0;
|
|
@@ -229,9 +156,9 @@ class Tr2RenderBatch {
|
|
|
229
156
|
|
|
230
157
|
// Carbon overload taking suballocated-buffer allocations (the mesh path).
|
|
231
158
|
|
|
232
|
-
/**
|
|
233
|
-
* Binds geometry from suballocated buffer allocations, taking each
|
|
234
|
-
* allocation's buffer and stride (Carbon's mesh path).
|
|
159
|
+
/**
|
|
160
|
+
* Binds geometry from suballocated buffer allocations, taking each
|
|
161
|
+
* allocation's buffer and stride (Carbon's mesh path).
|
|
235
162
|
*/
|
|
236
163
|
SetGeometryFromAllocations(vertexDeclaration, vertexAllocation, indexAllocation) {
|
|
237
164
|
this.SetGeometry(vertexDeclaration, AllocationBuffer(vertexAllocation), AllocationStride(vertexAllocation), AllocationBuffer(indexAllocation), AllocationStride(indexAllocation));
|
|
@@ -239,9 +166,9 @@ class Tr2RenderBatch {
|
|
|
239
166
|
|
|
240
167
|
// Carbon two-stream allocation overload.
|
|
241
168
|
|
|
242
|
-
/**
|
|
243
|
-
* Binds a two-stream allocation set; the second allocation becomes vertex
|
|
244
|
-
* stream 1.
|
|
169
|
+
/**
|
|
170
|
+
* Binds a two-stream allocation set; the second allocation becomes vertex
|
|
171
|
+
* stream 1.
|
|
245
172
|
*/
|
|
246
173
|
SetGeometryFromAllocations2(vertexDeclaration, vertexAllocation1, vertexAllocation2, indexAllocation) {
|
|
247
174
|
this.SetGeometryFromAllocations(vertexDeclaration, vertexAllocation1, indexAllocation);
|
|
@@ -252,10 +179,10 @@ class Tr2RenderBatch {
|
|
|
252
179
|
// GPU-free geometry binding: records the resource + mesh/area range for the
|
|
253
180
|
// engine to resolve into realized buffers and draw arguments at dispatch.
|
|
254
181
|
|
|
255
|
-
/**
|
|
256
|
-
* GPU-free geometry binding: records the geometry resource plus the mesh and
|
|
257
|
-
* area range for the engine to resolve into realized buffers and draw
|
|
258
|
-
* arguments at dispatch.
|
|
182
|
+
/**
|
|
183
|
+
* GPU-free geometry binding: records the geometry resource plus the mesh and
|
|
184
|
+
* area range for the engine to resolve into realized buffers and draw
|
|
185
|
+
* arguments at dispatch.
|
|
259
186
|
*/
|
|
260
187
|
SetGeometrySource(geometry, meshIndex, areaIndex, count, reversed, lod = null) {
|
|
261
188
|
this.geometrySource = {
|
|
@@ -270,9 +197,9 @@ class Tr2RenderBatch {
|
|
|
270
197
|
};
|
|
271
198
|
}
|
|
272
199
|
|
|
273
|
-
/**
|
|
274
|
-
* Sets the vertex-declaration key, which participates in both binning and
|
|
275
|
-
* sorting.
|
|
200
|
+
/**
|
|
201
|
+
* Sets the vertex-declaration key, which participates in both binning and
|
|
202
|
+
* sorting.
|
|
276
203
|
*/
|
|
277
204
|
SetVertexDeclaration(vertexDeclaration) {
|
|
278
205
|
this.vertexDeclaration = vertexDeclaration >>> 0;
|
|
@@ -287,26 +214,26 @@ class Tr2RenderBatch {
|
|
|
287
214
|
// Carbon spells this SetInidices (a typo in the C++ API); we use the corrected
|
|
288
215
|
// name since both producer and consumer are ours.
|
|
289
216
|
|
|
290
|
-
/**
|
|
291
|
-
* Binds the index buffer and its stride; Carbon spells this SetInidices, a
|
|
292
|
-
* typo corrected here because both producer and consumer are ours.
|
|
217
|
+
/**
|
|
218
|
+
* Binds the index buffer and its stride; Carbon spells this SetInidices, a
|
|
219
|
+
* typo corrected here because both producer and consumer are ours.
|
|
293
220
|
*/
|
|
294
221
|
SetIndices(indexBuffer, indexStride) {
|
|
295
222
|
this.indexBuffer = indexBuffer ?? null;
|
|
296
223
|
this.indexStride = indexStride >>> 0;
|
|
297
224
|
}
|
|
298
225
|
|
|
299
|
-
/**
|
|
300
|
-
* Sets the primitive topology; only TRIANGLELIST batches are eligible for GDPR
|
|
301
|
-
* binning.
|
|
226
|
+
/**
|
|
227
|
+
* Sets the primitive topology; only TRIANGLELIST batches are eligible for GDPR
|
|
228
|
+
* binning.
|
|
302
229
|
*/
|
|
303
230
|
SetTopology(topology) {
|
|
304
231
|
this.topology = topology;
|
|
305
232
|
}
|
|
306
233
|
|
|
307
|
-
/**
|
|
308
|
-
* References the per-object payload the engine binds when dispatching this
|
|
309
|
-
* batch; the batch borrows it and does not own it.
|
|
234
|
+
/**
|
|
235
|
+
* References the per-object payload the engine binds when dispatching this
|
|
236
|
+
* batch; the batch borrows it and does not own it.
|
|
310
237
|
*/
|
|
311
238
|
SetPerObjectData(objectData) {
|
|
312
239
|
this.objectData = objectData ?? null;
|
|
@@ -324,10 +251,10 @@ class Tr2RenderBatch {
|
|
|
324
251
|
// Non-indexed draw: reuses indexCountPerInstance for the vertex count and
|
|
325
252
|
// startIndexLocation for the start vertex; baseVertexLocation is left as is.
|
|
326
253
|
|
|
327
|
-
/**
|
|
328
|
-
* Records a non-indexed instanced draw, reusing indexCountPerInstance for the
|
|
329
|
-
* vertex count and startIndexLocation for the start vertex; baseVertexLocation
|
|
330
|
-
* is left untouched.
|
|
254
|
+
/**
|
|
255
|
+
* Records a non-indexed instanced draw, reusing indexCountPerInstance for the
|
|
256
|
+
* vertex count and startIndexLocation for the start vertex; baseVertexLocation
|
|
257
|
+
* is left untouched.
|
|
331
258
|
*/
|
|
332
259
|
SetDrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation) {
|
|
333
260
|
this.indexCountPerInstance = vertexCountPerInstance >>> 0;
|
|
@@ -336,9 +263,9 @@ class Tr2RenderBatch {
|
|
|
336
263
|
this.startInstanceLocation = startInstanceLocation >>> 0;
|
|
337
264
|
}
|
|
338
265
|
|
|
339
|
-
/**
|
|
340
|
-
* Sets the batch's rendering mode; note that Commit overwrites it with the
|
|
341
|
-
* accumulator's own mode.
|
|
266
|
+
/**
|
|
267
|
+
* Sets the batch's rendering mode; note that Commit overwrites it with the
|
|
268
|
+
* accumulator's own mode.
|
|
342
269
|
*/
|
|
343
270
|
SetRenderingMode(mode) {
|
|
344
271
|
this.renderingMode = mode;
|
|
@@ -346,9 +273,9 @@ class Tr2RenderBatch {
|
|
|
346
273
|
|
|
347
274
|
// Carbon overloads SetPickingData(data) and SetPickingData(meshIndex, areaIndex).
|
|
348
275
|
|
|
349
|
-
/**
|
|
350
|
-
* Stores picking data either as a raw value or, when a second argument is
|
|
351
|
-
* given, as the mesh index shifted above the low byte of the area index.
|
|
276
|
+
/**
|
|
277
|
+
* Stores picking data either as a raw value or, when a second argument is
|
|
278
|
+
* given, as the mesh index shifted above the low byte of the area index.
|
|
352
279
|
*/
|
|
353
280
|
SetPickingData(a, b) {
|
|
354
281
|
this.pickingData = b === undefined ? a >>> 0 : (a << 8 | b & 0xff) >>> 0;
|
|
@@ -358,9 +285,9 @@ class Tr2RenderBatch {
|
|
|
358
285
|
// material that exposed a shader-state interface). Invalid batches are dropped
|
|
359
286
|
// silently at Commit time.
|
|
360
287
|
|
|
361
|
-
/**
|
|
362
|
-
* A batch is valid only once it has a shader, that is once SetMaterial
|
|
363
|
-
* received a material; invalid batches are dropped silently at Commit.
|
|
288
|
+
/**
|
|
289
|
+
* A batch is valid only once it has a shader, that is once SetMaterial
|
|
290
|
+
* received a material; invalid batches are dropped silently at Commit.
|
|
364
291
|
*/
|
|
365
292
|
IsValid() {
|
|
366
293
|
return this.shader !== null && this.shader !== undefined;
|
|
@@ -401,13 +328,13 @@ class Tr2RenderBatch {
|
|
|
401
328
|
// both beside TriGeometryRes (Resources/TriGeometryRes.h:202/:242), which
|
|
402
329
|
// the runtime resource layer owns.
|
|
403
330
|
|
|
404
|
-
/**
|
|
405
|
-
* Carbon's indexed draw arguments for one mesh area of one LOD, or null when
|
|
406
|
-
* the area contributes no primitives or a reversed draw has no reversed
|
|
407
|
-
* indices - both of which are Carbon's "emit no batch" answers.
|
|
408
|
-
*
|
|
409
|
-
* `reversed` is the already-resolved winding for this draw, which Carbon
|
|
410
|
-
* computes as `area->GetReversed() != reverseWinding` at the call site.
|
|
331
|
+
/**
|
|
332
|
+
* Carbon's indexed draw arguments for one mesh area of one LOD, or null when
|
|
333
|
+
* the area contributes no primitives or a reversed draw has no reversed
|
|
334
|
+
* indices - both of which are Carbon's "emit no batch" answers.
|
|
335
|
+
*
|
|
336
|
+
* `reversed` is the already-resolved winding for this draw, which Carbon
|
|
337
|
+
* computes as `area->GetReversed() != reverseWinding` at the call site.
|
|
411
338
|
*/
|
|
412
339
|
static resolveDrawArguments(lod, areaIndex, areaCount, reversed = false) {
|
|
413
340
|
if (!lod) return null;
|
|
@@ -438,10 +365,10 @@ class Tr2RenderBatch {
|
|
|
438
365
|
};
|
|
439
366
|
}
|
|
440
367
|
|
|
441
|
-
/**
|
|
442
|
-
* The start index of a realized suballocation, or zero when the geometry is
|
|
443
|
-
* unrealized or the engine allocates per mesh rather than from a shared
|
|
444
|
-
* buffer; Carbon reads Allocation::GetStartIndex.
|
|
368
|
+
/**
|
|
369
|
+
* The start index of a realized suballocation, or zero when the geometry is
|
|
370
|
+
* unrealized or the engine allocates per mesh rather than from a shared
|
|
371
|
+
* buffer; Carbon reads Allocation::GetStartIndex.
|
|
445
372
|
*/
|
|
446
373
|
static startIndexOf(allocation) {
|
|
447
374
|
if (!allocation) return 0;
|
|
@@ -462,10 +389,10 @@ class Tr2RenderBatch {
|
|
|
462
389
|
// match. Note: priority, material and topology are intentionally NOT compared
|
|
463
390
|
// here (faithful to Carbon CanBeBinned).
|
|
464
391
|
|
|
465
|
-
/**
|
|
466
|
-
* Whether two batches can share one state-set: shader, vertex declaration, index
|
|
467
|
-
* stride, both vertex streams and rendering mode must match, while priority,
|
|
468
|
-
* material and topology are deliberately not compared (faithful to Carbon).
|
|
392
|
+
/**
|
|
393
|
+
* Whether two batches can share one state-set: shader, vertex declaration, index
|
|
394
|
+
* stride, both vertex streams and rendering mode must match, while priority,
|
|
395
|
+
* material and topology are deliberately not compared (faithful to Carbon).
|
|
469
396
|
*/
|
|
470
397
|
function CanBeBinned(batch1, batch2) {
|
|
471
398
|
return batch1.shader === batch2.shader && batch1.vertexDeclaration === batch2.vertexDeclaration && batch1.indexStride === batch2.indexStride && batch1.vertexStreams[0] === batch2.vertexStreams[0] && batch1.vertexStreams[1] === batch2.vertexStreams[1] && batch1.renderingMode === batch2.renderingMode;
|
|
@@ -475,10 +402,10 @@ function CanBeBinned(batch1, batch2) {
|
|
|
475
402
|
// ordering: priority, shader, vertexDeclaration, indexStride, stream0, stream1,
|
|
476
403
|
// renderingMode. Pointer identity is replaced by a stable per-reference order id.
|
|
477
404
|
|
|
478
|
-
/**
|
|
479
|
-
* Strict-weak comparator reproducing Carbon's batch ordering - priority, shader,
|
|
480
|
-
* vertex declaration, index stride, stream 0, stream 1, rendering mode - with
|
|
481
|
-
* pointer identity replaced by stable order ids.
|
|
405
|
+
/**
|
|
406
|
+
* Strict-weak comparator reproducing Carbon's batch ordering - priority, shader,
|
|
407
|
+
* vertex declaration, index stride, stream 0, stream 1, rendering mode - with
|
|
408
|
+
* pointer identity replaced by stable order ids.
|
|
482
409
|
*/
|
|
483
410
|
function CompareBatches(batch1, batch2) {
|
|
484
411
|
if (batch1.priority !== batch2.priority) return batch1.priority - batch2.priority;
|
|
@@ -497,17 +424,17 @@ function CompareBatches(batch1, batch2) {
|
|
|
497
424
|
// batch (groupCount). Mirrors Tr2GdprBatchFullPartition. JS Array.sort is stable,
|
|
498
425
|
// so the "full" and "stable" partition variants are behaviourally identical here.
|
|
499
426
|
|
|
500
|
-
/**
|
|
501
|
-
* Sorts a batch vector and writes each bin-run's length onto that run's leading
|
|
502
|
-
* batch groupCount, so dispatch can stride one state-set over several draws.
|
|
427
|
+
/**
|
|
428
|
+
* Sorts a batch vector and writes each bin-run's length onto that run's leading
|
|
429
|
+
* batch groupCount, so dispatch can stride one state-set over several draws.
|
|
503
430
|
*/
|
|
504
431
|
function Tr2GdprBatchFullPartition(batches) {
|
|
505
432
|
PartitionBatchGroups(batches);
|
|
506
433
|
}
|
|
507
434
|
|
|
508
|
-
/**
|
|
509
|
-
* Stable variant of the full partition, behaviourally identical here because JS
|
|
510
|
-
* Array.sort is already stable.
|
|
435
|
+
/**
|
|
436
|
+
* Stable variant of the full partition, behaviourally identical here because JS
|
|
437
|
+
* Array.sort is already stable.
|
|
511
438
|
*/
|
|
512
439
|
function Tr2GdprBatchStableFullPartition(batches) {
|
|
513
440
|
PartitionBatchGroups(batches);
|
|
@@ -525,5 +452,5 @@ function PartitionBatchGroups(batches) {
|
|
|
525
452
|
batches[first].groupCount = batches.length - first;
|
|
526
453
|
}
|
|
527
454
|
|
|
528
|
-
export { CanBeBinned, CompareBatches, OrderOf, Tr2GdprBatchFullPartition, Tr2GdprBatchStableFullPartition, Tr2RenderBatch
|
|
455
|
+
export { CanBeBinned, CompareBatches, OrderOf, Tr2GdprBatchFullPartition, Tr2GdprBatchStableFullPartition, Tr2RenderBatch };
|
|
529
456
|
//# sourceMappingURL=Tr2RenderBatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tr2RenderBatch.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h\n// trinity/TriRenderBatch.cpp\n//\n// GPU-free CPU render-batch descriptor plus the binning/sort helpers. A batch\n// holds opaque references to material/shader/geometry and plain draw arguments;\n// it never touches a device. The engine adapter reads a finalized accumulator's\n// batches and issues the actual draws (Carbon's Tr2RenderContextBase::RenderBatches*\n// dispatch family stays engine-side and is intentionally NOT ported here).\n\nimport { RenderingMode } from \"#consts/graphics\";\nimport { Topology } from \"#consts/render-context\";\nimport { TriGeometryRes } from \"#resource/geometry\";\n\n// Carbon sorts batches on raw pointer identity of shader/vertex-stream objects.\n// JS has no pointer order, so we assign each distinct reference a stable id on\n// first encounter. Only contiguity of equal references matters for binning, so\n// the ordinal itself is irrelevant as long as it is consistent within a run.\nlet nextOrderId = 1;\n\nconst orderIds = new WeakMap();\n\n/**\n * Stable per-reference ordinal standing in for Carbon's pointer ordering in\n * batch comparisons; assigned on first sight and held in a WeakMap, so it is\n * consistent within a run but meaningless across runs.\n */\nexport function OrderOf(ref)\n{\n if (ref === null || ref === undefined) return 0;\n if (typeof ref !== \"object\" && typeof ref !== \"function\") return Number(ref) || 0;\n let id = orderIds.get(ref);\n if (id === undefined)\n {\n id = nextOrderId++;\n orderIds.set(ref, id);\n }\n return id;\n}\n\n// THE ALLOCATION TYPE IS A PORT GAP, AND THESE TWO HELPERS ARE WHERE IT SHOWS.\n//\n// Carbon's `SetGeometryFromAllocations` takes a `Tr2SuballocatedBuffer::Allocation`\n// (`Tr2SuballocatedBuffer.h:23-66`) and simply calls `GetBuffer()`, `GetOffset()`,\n// `GetStride()` and `GetStartIndex()` on it - no probing, because the type is the\n// argument. We have no such class: it needs `Tr2VirtualAllocator`, which in\n// Carbon is a thin wrapper over VMA's virtual-block suballocator, so porting it\n// means writing a real suballocator rather than translating one.\n//\n// Until then a caller passes either a shaped allocation or a bare buffer, and\n// these ask WHICH rather than hedging on a method one of our own classes might\n// be missing. When the class lands, both helpers delete and the call sites go\n// back to Carbon's four direct accessor calls.\n\n/** The buffer an allocation lends, or the argument itself when it IS a buffer. */\nfunction AllocationBuffer(allocation)\n{\n if (!allocation) return null;\n\n return typeof allocation.GetBuffer === \"function\" ? allocation.GetBuffer() : allocation;\n}\n\n/** An allocation's element stride, however the caller's shape spells it. */\nfunction AllocationStride(allocation)\n{\n if (!allocation) return 0;\n\n if (typeof allocation.GetStride === \"function\") return allocation.GetStride();\n\n return allocation.stride ?? 0;\n}\n\n// A single draw's worth of CPU descriptor state. Faithful to Carbon's\n// Tr2RenderBatch struct; the vertex/index \"buffer\" slots hold whatever the\n// producer supplies (in the GPU-free runtime these are geometry-resource-backed\n// descriptors that the engine resolves to real buffers at dispatch time).\n\n/**\n * One draw's worth of CPU descriptor state - material and shader key, geometry\n * binding, draw arguments and sort keys - holding no device resources.\n */\nexport class Tr2RenderBatch\n{\n /**\n * Creates an empty batch with no material or geometry, RM_ANY rendering mode,\n * triangle-list topology and a group count of 1.\n */\n constructor()\n {\n this.material = null;\n this.shader = null;\n\n this.vertexDeclaration = 0;\n this.vertexStreams = [ null, null ];\n this.stride = [ 0, 0 ];\n this.indexBuffer = null;\n this.indexStride = 0;\n\n // GPU-free adaptation: Carbon's Tr2MeshBase::CreateGeometryBatch bakes\n // realized buffer allocations and computed draw arguments into the batch\n // during collection. Trinity instead records a geometry-resource and\n // area-range descriptor; the engine resolves it to realized allocations\n // and final draw arguments at dispatch. See the render-batch contract in\n // docs/architecture.md.\n this.geometrySource = null;\n\n this.objectData = null;\n this.renderingMode = RenderingMode.RM_ANY;\n // THE VOCABULARY IS THE ABSTRACTION LAYER'S, NOT D3D'S. This field held a\n // `D3dPrimitiveTopology` until 2026-09-05, and everything drew correctly\n // because the WebGPU engine translated on the way out. Carbon does not\n // translate: `SubmitGeometry` hands `batch.m_topology` straight to\n // `SetTopology` (`Tr2RenderContext.cpp:86`), so the two numberings have to\n // BE the same one, and the AL owns it. The old numbering collided rather\n // than merely disagreed - D3D's 4 is TRIANGLELIST, the AL's 4 is TOP_LINES.\n this.topology = Topology.TOP_TRIANGLES;\n\n this.indexCountPerInstance = 0;\n this.instanceCount = 0;\n this.startIndexLocation = 0;\n this.baseVertexLocation = 0;\n this.startInstanceLocation = 0;\n\n this.pickingData = 0;\n this.depth = 0;\n this.priority = 0;\n\n // Default 1; the effect-sort partition rewrites this on the first batch of\n // each bin-run to the run length so dispatch can stride one state-set over\n // several draws. Meaningless on non-leading batches of a run.\n this.groupCount = 1;\n }\n\n // Sets material and derives the shader key from it. In the realized engine the\n // shader is the material's shader-state interface; in GPU-free collection no\n // shader is realized yet, so the material (effect) itself stands in as the\n // shader key. Either way the shader is both the validity key (see IsValid) and\n // the primary bin/sort key, so effect-equal batches still group together.\n\n /**\n * Sets the material and derives the shader key from it, falling back to the\n * material itself when no shader-state interface is realized yet; that key is\n * both the validity test and the primary bin/sort key, so effect-equal batches\n * still group together.\n */\n SetMaterial(material)\n {\n this.material = material ?? null;\n this.shader = material?.GetShaderStateInterface() ?? material ?? null;\n }\n\n /** Sets the outermost sort key; lower priorities sort first. */\n SetPriority(priority)\n {\n this.priority = priority >>> 0;\n }\n\n // Carbon: SetGeometry(vertexDecl, Tr2BufferAL& vb, stride, Tr2BufferAL& ib, indexStride).\n\n /**\n * Binds one vertex stream and an index buffer with their strides, clearing the\n * second stream.\n */\n SetGeometry(vertexDeclaration, vertexBuffer, vertexStride, indexBuffer, indexStride)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n this.vertexStreams[0] = vertexBuffer ?? null;\n this.vertexStreams[1] = null;\n this.stride[0] = vertexStride >>> 0;\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n // Carbon overload taking suballocated-buffer allocations (the mesh path).\n\n /**\n * Binds geometry from suballocated buffer allocations, taking each\n * allocation's buffer and stride (Carbon's mesh path).\n */\n SetGeometryFromAllocations(vertexDeclaration, vertexAllocation, indexAllocation)\n {\n this.SetGeometry(\n vertexDeclaration,\n AllocationBuffer(vertexAllocation),\n AllocationStride(vertexAllocation),\n AllocationBuffer(indexAllocation),\n AllocationStride(indexAllocation)\n );\n }\n\n // Carbon two-stream allocation overload.\n\n /**\n * Binds a two-stream allocation set; the second allocation becomes vertex\n * stream 1.\n */\n SetGeometryFromAllocations2(vertexDeclaration, vertexAllocation1, vertexAllocation2, indexAllocation)\n {\n this.SetGeometryFromAllocations(vertexDeclaration, vertexAllocation1, indexAllocation);\n this.vertexStreams[1] = AllocationBuffer(vertexAllocation2);\n this.stride[1] = AllocationStride(vertexAllocation2);\n }\n\n // GPU-free geometry binding: records the resource + mesh/area range for the\n // engine to resolve into realized buffers and draw arguments at dispatch.\n\n /**\n * GPU-free geometry binding: records the geometry resource plus the mesh and\n * area range for the engine to resolve into realized buffers and draw\n * arguments at dispatch.\n */\n SetGeometrySource(geometry, meshIndex, areaIndex, count, reversed, lod = null)\n {\n this.geometrySource = {\n geometry: geometry ?? null,\n meshIndex: meshIndex >>> 0,\n areaIndex: areaIndex | 0,\n count: count | 0,\n reversed: !!reversed,\n // The LOD the area belongs to, so the render context can realize its\n // allocations at submit and recompute the draw arguments against them.\n lod: lod ?? null\n };\n }\n\n /**\n * Sets the vertex-declaration key, which participates in both binning and\n * sorting.\n */\n SetVertexDeclaration(vertexDeclaration)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n }\n\n /** Binds one vertex stream slot and its stride. */\n SetStreamSource(index, vertexBuffer, vertexStride)\n {\n this.vertexStreams[index] = vertexBuffer ?? null;\n this.stride[index] = vertexStride >>> 0;\n }\n\n // Carbon spells this SetInidices (a typo in the C++ API); we use the corrected\n // name since both producer and consumer are ours.\n\n /**\n * Binds the index buffer and its stride; Carbon spells this SetInidices, a\n * typo corrected here because both producer and consumer are ours.\n */\n SetIndices(indexBuffer, indexStride)\n {\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n /**\n * Sets the primitive topology; only TRIANGLELIST batches are eligible for GDPR\n * binning.\n */\n SetTopology(topology)\n {\n this.topology = topology;\n }\n\n /**\n * References the per-object payload the engine binds when dispatching this\n * batch; the batch borrows it and does not own it.\n */\n SetPerObjectData(objectData)\n {\n this.objectData = objectData ?? null;\n }\n\n /** Records the indexed instanced draw arguments verbatim. */\n SetDrawIndexedInstanced(indexCountPerInstance, instanceCount, startIndexLocation, baseVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = indexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startIndexLocation >>> 0;\n this.baseVertexLocation = baseVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n // Non-indexed draw: reuses indexCountPerInstance for the vertex count and\n // startIndexLocation for the start vertex; baseVertexLocation is left as is.\n\n /**\n * Records a non-indexed instanced draw, reusing indexCountPerInstance for the\n * vertex count and startIndexLocation for the start vertex; baseVertexLocation\n * is left untouched.\n */\n SetDrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = vertexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n /**\n * Sets the batch's rendering mode; note that Commit overwrites it with the\n * accumulator's own mode.\n */\n SetRenderingMode(mode)\n {\n this.renderingMode = mode;\n }\n\n // Carbon overloads SetPickingData(data) and SetPickingData(meshIndex, areaIndex).\n\n /**\n * Stores picking data either as a raw value or, when a second argument is\n * given, as the mesh index shifted above the low byte of the area index.\n */\n SetPickingData(a, b)\n {\n this.pickingData = (b === undefined) ? (a >>> 0) : (((a << 8) | (b & 0xff)) >>> 0);\n }\n\n // A batch is valid iff it has a shader (i.e. SetMaterial was called with a\n // material that exposed a shader-state interface). Invalid batches are dropped\n // silently at Commit time.\n\n /**\n * A batch is valid only once it has a shader, that is once SetMaterial\n * received a material; invalid batches are dropped silently at Commit.\n */\n IsValid()\n {\n return this.shader !== null && this.shader !== undefined;\n }\n\n // Carbon Tr2MeshBase.cpp:341-395 (the draw arguments inside\n // CreateGeometryBatch) and Tr2SuballocatedBuffer.cpp:212-215\n // (Allocation::GetStartIndex).\n //\n // THE ARITHMETIC LIVES HERE ONCE. Carbon replicates this expression in\n // Tr2InstancedMesh and at least eight further call sites that bypass\n // CreateGeometryBatch; that duplication is a defect this port declines to\n // inherit. Every producer calls resolveDrawArguments instead.\n //\n // A draw argument is neither wholly CPU-derivable nor wholly the engine's:\n //\n // primCount - pure geometry data (area primitive counts). CPU.\n // firstIndex - pure geometry data. CPU.\n // startIndex - firstIndex PLUS the index allocation's start index. The base\n // is a suballocation, which only a realizing engine knows.\n // baseVertex - the vertex allocation's offset / stride, which IS\n // GetStartIndex() hand-inlined (Tr2MeshBase.cpp:391).\n //\n // The two bases default to ZERO when nothing has realized the geometry, and\n // zero is the CORRECT answer for an engine that gives each mesh its own\n // buffers rather than suballocating from a shared one - which is what ccpwgl\n // does and what a first WebGL implementation naturally does. A suballocating\n // engine writes its allocation into the resource and the same expression\n // yields the pooled bases. Trinity never sees a GPU handle: it asks the\n // allocation for two integers.\n //\n // Carbon gates the BATCH on lod->m_allocationsValid, because in Carbon an\n // unrealized draw cannot exist. This runtime is GPU-free, so an unrealized\n // LOD is normal and the flags gate the DRAW ARGUMENTS instead: collection\n // still emits the geometry-source descriptor.\n //\n // LOD selection and the primitive-count sum are NOT here. Carbon declares\n // both beside TriGeometryRes (Resources/TriGeometryRes.h:202/:242), which\n // the runtime resource layer owns.\n\n /**\n * Carbon's indexed draw arguments for one mesh area of one LOD, or null when\n * the area contributes no primitives or a reversed draw has no reversed\n * indices - both of which are Carbon's \"emit no batch\" answers.\n *\n * `reversed` is the already-resolved winding for this draw, which Carbon\n * computes as `area->GetReversed() != reverseWinding` at the call site.\n */\n static resolveDrawArguments(lod, areaIndex, areaCount, reversed = false)\n {\n if (!lod) return null;\n\n // Carbon clamps both to zero before use (Tr2MeshBase.cpp:356).\n const index = Math.max(0, areaIndex | 0);\n const count = Math.max(0, areaCount | 0);\n\n const primitiveCount = TriGeometryRes.getPrimitiveCount(lod, index, count);\n\n if (!primitiveCount) return null;\n\n if (reversed && lod.reversedIndicesValid === false) return null;\n\n // Not `area.firstIndex` directly: a CMF-shaped LOD writes the area start as\n // a first TRIANGLE, and the geometry layer owns that conversion.\n const firstIndex = TriGeometryRes.getAreaFirstIndex(lod.areas?.[index]);\n\n // Carbon binds the FORWARD index allocation on both paths and only reads\n // the reversed allocation for the start index (Tr2MeshBase.cpp:371/375).\n // That works because both live in one pool at one stride; an engine that\n // separates them must bind the one this start index belongs to.\n const indices = reversed ? lod.reversedIndexAllocation : lod.indexAllocation;\n\n const startIndexLocation = reversed\n ? Tr2RenderBatch.startIndexOf(indices) + TriGeometryRes.getLodPrimitiveCount(lod) * 3 - firstIndex - primitiveCount * 3\n : Tr2RenderBatch.startIndexOf(indices) + firstIndex;\n\n return {\n indexCountPerInstance: primitiveCount * 3,\n instanceCount: 1,\n startIndexLocation,\n baseVertexLocation: Tr2RenderBatch.startIndexOf(lod.vertexAllocation),\n startInstanceLocation: 0\n };\n }\n\n /**\n * The start index of a realized suballocation, or zero when the geometry is\n * unrealized or the engine allocates per mesh rather than from a shared\n * buffer; Carbon reads Allocation::GetStartIndex.\n */\n static startIndexOf(allocation)\n {\n if (!allocation) return 0;\n\n if (typeof allocation.GetStartIndex === \"function\")\n {\n return allocation.GetStartIndex() >>> 0;\n }\n\n // GetStartIndex() IS offset / stride; Carbon hand-inlines exactly this for\n // the base vertex (Tr2MeshBase.cpp:391).\n const stride = AllocationStride(allocation);\n\n if (!stride) return 0;\n\n const offset = typeof allocation.GetOffset === \"function\"\n ? allocation.GetOffset()\n : allocation.offset ?? 0;\n\n return (offset / stride) >>> 0;\n }\n}\n\n// Two batches can share a single state-set (one bin/GDPR group) iff all of these\n// match. Note: priority, material and topology are intentionally NOT compared\n// here (faithful to Carbon CanBeBinned).\n\n/**\n * Whether two batches can share one state-set: shader, vertex declaration, index\n * stride, both vertex streams and rendering mode must match, while priority,\n * material and topology are deliberately not compared (faithful to Carbon).\n */\nexport function CanBeBinned(batch1, batch2)\n{\n return batch1.shader === batch2.shader\n && batch1.vertexDeclaration === batch2.vertexDeclaration\n && batch1.indexStride === batch2.indexStride\n && batch1.vertexStreams[0] === batch2.vertexStreams[0]\n && batch1.vertexStreams[1] === batch2.vertexStreams[1]\n && batch1.renderingMode === batch2.renderingMode;\n}\n\n// JS comparator (negative/zero/positive) reproducing Carbon Compare's strict-weak\n// ordering: priority, shader, vertexDeclaration, indexStride, stream0, stream1,\n// renderingMode. Pointer identity is replaced by a stable per-reference order id.\n\n/**\n * Strict-weak comparator reproducing Carbon's batch ordering - priority, shader,\n * vertex declaration, index stride, stream 0, stream 1, rendering mode - with\n * pointer identity replaced by stable order ids.\n */\nexport function CompareBatches(batch1, batch2)\n{\n if (batch1.priority !== batch2.priority) return batch1.priority - batch2.priority;\n\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder;\n\n if (batch1.vertexDeclaration !== batch2.vertexDeclaration) return batch1.vertexDeclaration - batch2.vertexDeclaration;\n if (batch1.indexStride !== batch2.indexStride) return batch1.indexStride - batch2.indexStride;\n\n const stream0Order = OrderOf(batch1.vertexStreams[0]) - OrderOf(batch2.vertexStreams[0]);\n if (stream0Order !== 0) return stream0Order;\n\n const stream1Order = OrderOf(batch1.vertexStreams[1]) - OrderOf(batch2.vertexStreams[1]);\n if (stream1Order !== 0) return stream1Order;\n\n return batch1.renderingMode - batch2.renderingMode;\n}\n\n// Sorts a batch vector and writes each bin-run's length onto the run's leading\n// batch (groupCount). Mirrors Tr2GdprBatchFullPartition. JS Array.sort is stable,\n// so the \"full\" and \"stable\" partition variants are behaviourally identical here.\n\n/**\n * Sorts a batch vector and writes each bin-run's length onto that run's leading\n * batch groupCount, so dispatch can stride one state-set over several draws.\n */\nexport function Tr2GdprBatchFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\n/**\n * Stable variant of the full partition, behaviourally identical here because JS\n * Array.sort is already stable.\n */\nexport function Tr2GdprBatchStableFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\nfunction PartitionBatchGroups(batches)\n{\n if (batches.length === 0) return;\n\n batches.sort(CompareBatches);\n\n let first = 0;\n for (let current = 0; current < batches.length; current++)\n {\n if (!CanBeBinned(batches[first], batches[current]))\n {\n batches[first].groupCount = current - first;\n first = current;\n }\n }\n batches[first].groupCount = batches.length - first;\n}\n"],"names":["nextOrderId","orderIds","WeakMap","OrderOf","ref","undefined","Number","id","get","set","AllocationBuffer","allocation","GetBuffer","AllocationStride","GetStride","stride","Tr2RenderBatch","constructor","material","shader","vertexDeclaration","vertexStreams","indexBuffer","indexStride","geometrySource","objectData","renderingMode","RenderingMode","RM_ANY","topology","Topology","TOP_TRIANGLES","indexCountPerInstance","instanceCount","startIndexLocation","baseVertexLocation","startInstanceLocation","pickingData","depth","priority","groupCount","SetMaterial","GetShaderStateInterface","SetPriority","SetGeometry","vertexBuffer","vertexStride","SetGeometryFromAllocations","vertexAllocation","indexAllocation","SetGeometryFromAllocations2","vertexAllocation1","vertexAllocation2","SetGeometrySource","geometry","meshIndex","areaIndex","count","reversed","lod","SetVertexDeclaration","SetStreamSource","index","SetIndices","SetTopology","SetPerObjectData","SetDrawIndexedInstanced","SetDrawInstanced","vertexCountPerInstance","startVertexLocation","SetRenderingMode","mode","SetPickingData","a","b","IsValid","resolveDrawArguments","areaCount","Math","max","primitiveCount","TriGeometryRes","getPrimitiveCount","reversedIndicesValid","firstIndex","getAreaFirstIndex","areas","indices","reversedIndexAllocation","startIndexOf","getLodPrimitiveCount","GetStartIndex","offset","GetOffset","CanBeBinned","batch1","batch2","CompareBatches","shaderOrder","stream0Order","stream1Order","Tr2GdprBatchFullPartition","batches","PartitionBatchGroups","Tr2GdprBatchStableFullPartition","length","sort","first","current"],"mappings":"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"}
|