@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2LightManager.js","sources":["../../../../../src/trinity/core/lighting/Tr2LightManager.js"],"sourcesContent":["// Source: trinity/trinity/Tr2LightManager.h + Tr2LightManager.cpp\n//\n// The local-light manager: collects per-light records from every\n// ITr2LightOwner during the scene gather, culls and premultiplies them,\n// selects the volumetric set, and owns the PACKED light buffer bytes the\n// abstraction layer uploads. Description-building throughout - under the\n// engine-means-AL vocabulary (docs c5a4b66) everything here is Trinity's;\n// only realizing LightBuffer/LightIndexBuffer into device objects, the\n// tiling compute dispatch, the shadow atlas textures and the raytraced\n// path are the AL's, and all of those are deferred below.\n//\n// SHIPPING BEHAVIOUR PIN: Carbon ships with g_useDynamicLightsShadows =\n// false (cpp:21-22, a TRI_REGISTER_SETTING - runtime-mutable, hence the\n// static below rather than a constant). With it false, ResolveLightData\n// returns after the volumetric pass (cpp:568-571) and AddLight always\n// strips FLAG_CASTS_SHADOWS (cpp:359-365). The caster/atlas CPU half IS\n// ported (settings derivation, guillotine packer, five-pass fit, packed\n// 10-bit offsets) and sits behind the same setting; only its GPU\n// realization (the pooled D32 atlas texture, cpp:703-706) stays the\n// abstraction layer's.\n//\n// Carbon's thread-local gather vectors (safe under Tr2ParallelFor,\n// EveSpaceScene.cpp:1410) collapse to one array: the JS gather is\n// sequential. Carbon's file-static singleton (GetOrCreateInstance) is NOT\n// ported - the runtime injects a manager into GatherLights, which is the\n// shape every call site and test already has.\n//\n// docs/contracts/carbon-light-data.md owns the PerLightData layout, the\n// packed flag word, the premultiply and the fade band; the packing below\n// cites it rather than re-deriving it.\n\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, type } from \"#schema\";\nimport { num } from \"#math/num\";\nimport { vec3 } from \"#math/vec3\";\nimport { ShadowQuality } from \"../../generated/trinityCore/enums.js\";\nimport { Tr2TextureArray } from \"../Tr2TextureArray.js\";\n\n// Tr2LightManager.cpp:30-48 - copied verbatim; the buffer sizes are the ABI\n// the AL uploads against.\nconst LIGHT_BUFFER_SIZE = 1024;\nconst CUTOFF_PIXEL_SIZE = 7;\nconst FADE_SIZE = 5;\nconst MAX_NUM_VOLUMETRIC_LIGHTS = 16;\nconst MAX_NUM_SHADOWCASTING_LIGHTS = 16;\nconst HIGH_QUALITY_ATLAS_SIZE_LOG2 = 14;\nconst HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE = 1 << 13;\nconst INFINITE_SIZE_CLAMP = 1 << 14; // 1 << HIGH_QUALITY_ATLAS_SIZE_LOG2\nconst FLOATS_PER_LIGHT = 12; // 48 bytes / 3 RGBA32 texels\n\n/** CCP_ALIGN: round up to a power-of-two alignment. */\nfunction align(value, alignment)\n{\n return (value + alignment - 1) & ~(alignment - 1);\n}\n\n/**\n * Carbon's anonymous-namespace CalculateShadowMapAtlasSettings (cpp:92-122).\n *\n * Ported branch for branch, including the SHADOW_RAYTRACED quirk: it zeroes\n * with SHADOW_DISABLED but then re-enters the != DISABLED block, so\n * `entryMinSizeLog2 = 0 - 10` wraps unsigned (4294967286) and\n * `1 << entryMinSizeLog2` shifts by that count. MSVC x86 masks the shift\n * count by 31 and SO DOES JavaScript's << - writing the arithmetic plainly\n * reproduces Carbon's shipping behaviour exactly (entryMinSize 1<<22,\n * entryMaxSize 8192 >> 14 = 0).\n *\n * @param {number} shadowQuality ShadowQuality ordinal.\n * @returns {object} ShadowMapAtlasSettings (actualTextureSize starts 0).\n */\nfunction calculateShadowMapAtlasSettings(shadowQuality)\n{\n const settings = {\n actualTextureSize: 0,\n sizeLog2: 0,\n size: 0,\n entryMinSizeLog2: 0,\n entryMinSize: 0,\n entryInverseScaleFactorLog2: 0,\n entryMaxSize: 0\n };\n switch (shadowQuality)\n {\n case ShadowQuality.SHADOW_DISABLED:\n case ShadowQuality.SHADOW_RAYTRACED:\n break;\n case ShadowQuality.SHADOW_LOW:\n settings.sizeLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2 - 2;\n break;\n case ShadowQuality.SHADOW_HIGH:\n settings.sizeLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2;\n break;\n }\n if (shadowQuality !== ShadowQuality.SHADOW_DISABLED)\n {\n settings.size = 1 << settings.sizeLog2;\n settings.entryMinSizeLog2 = (settings.sizeLog2 - 10) >>> 0;\n settings.entryMinSize = 1 << settings.entryMinSizeLog2;\n settings.entryInverseScaleFactorLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2 - settings.sizeLog2;\n settings.entryMaxSize = HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE >> settings.entryInverseScaleFactorLog2;\n }\n return settings;\n}\n\n// Carbon packs these halves through Float_16(...) (Tr2LightManager.cpp:297,\n// :328-329), which rounds to nearest. num.toHalfFloat is the runtime's one\n// half codec and rounds identically for every in-range value; an earlier\n// file-local encoder here TRUNCATED, a 1-ulp divergence from Carbon,\n// removed 2026-09-08.\nconst toHalf = num.toHalfFloat;\n\n/** Owns the frame's local-light records, their selection, and the packed light-buffer bytes the abstraction layer uploads. */\n@type.define({ className: \"Tr2LightManager\", family: \"trinityCore\" })\nexport class Tr2LightManager extends CjsModel\n{\n\n // Carbon m_lightData after the TLS flatten: the frame's accepted records,\n // plain-object copies (every producer reuses a static scratch record, so\n // AddLight copies by value exactly as std::vector::push_back does).\n #records = [];\n\n // Carbon m_volumetricLights / m_shadowCastingLights: indices into #records.\n #volumetricLights = [];\n\n #shadowCastingLights = [];\n\n // Carbon m_frustum, by reference (SetFrustum copies by value in C++; the\n // stamped frame frustum is not mutated during the gather, so a reference\n // carries the same guarantee here).\n #frustum = null;\n\n // Carbon m_adjustedCutoff (cpp:249-252).\n #adjustedCutoff = CUTOFF_PIXEL_SIZE;\n\n // Carbon m_currentSpaceSceneShadowQuality (h:197).\n #currentSpaceSceneShadowQuality = ShadowQuality.SHADOW_DISABLED;\n\n // Carbon nextFrameShadowQuality (h:196) - a bitmask collecting every\n // scene's requested quality during the current frame.\n #nextFrameShadowQuality = 0;\n\n // Carbon m_currentFrameCounter (h:198; ctor sets -1, cpp:164).\n #currentFrameCounter = -1;\n\n // Carbon's anonymous m_ShadowMap block (h:200-205): the atlas settings,\n // the guillotine node tree, and the quality the atlas was last sized for.\n #shadowMap = {\n atlasSettings: calculateShadowMapAtlasSettings(ShadowQuality.SHADOW_DISABLED),\n atlasNodes: [],\n qualityUsedByAtlas: ShadowQuality.SHADOW_DISABLED\n };\n\n // Non-Carbon: the frame clock the packed sets read for curve sampling.\n #animationTime = 0;\n\n // Non-Carbon: profile-object -> slice index, assigned on first sight. The\n // slot registry is description-side (Carbon assigns slices through the\n // manager-owned Tr2TextureArray, cpp:682-686, whose realization is AL).\n #profileSlots = new Map();\n\n // The packed PerLightData buffer (contract: 48 bytes / 3 RGBA32 texels per\n // light), built by ResolveLightData, uploaded by the AL.\n #packed = new Float32Array(LIGHT_BUFFER_SIZE * FLOATS_PER_LIGHT);\n\n #packedBits = new Uint32Array(this.#packed.buffer);\n\n #packedCount = 0;\n\n // Non-Carbon: bumped by ResolveLightData so the AL can skip re-uploads.\n #revision = 0;\n\n /** Tr2LightManager.h:100-105 - the light flag bits, Carbon's raw uint16 spelling. */\n static Flags = Object.freeze({\n AFFECTS_SURFACES: 1,\n AFFECTS_PARTICLES: 1 << 1,\n CASTS_SHADOWS: 1 << 2,\n IS_VOLUMETRIC: 1 << 3,\n DEFAULT: 1\n });\n\n /** The variable-store names the AL binds the packed buffers under\n * (Tr2LightManager.h:46-47; both isAutoregister). The NAMES are Trinity's\n * contract; the variables are the AL's to create. */\n static LIGHT_BUFFER_NAME = \"LightBuffer\";\n\n static LIGHT_INDEX_BUFFER_NAME = \"LightIndexBuffer\";\n\n /**\n * Carbon g_useDynamicLightsShadows (cpp:21-22) - a TRI_REGISTER_SETTING,\n * i.e. a runtime-mutable setting rather than a compile constant, shipped\n * FALSE. The whole shadow-caster/atlas half sits behind it; flipping it\n * exercises the ported path (the tests do), and shipping behaviour is\n * unchanged while it stays false.\n */\n static useDynamicLightsShadows = false;\n\n /** The atlas-settings derivation, exposed for tests (Carbon cpp:92-122). */\n static calculateShadowMapAtlasSettings = calculateShadowMapAtlasSettings;\n\n /**\n * Carbon Tr2LightManager::AreLightFlagsValid (cpp:677-680): a light must\n * affect surfaces or particles to exist at all.\n */\n @carbon.method\n @impl.implemented\n static areLightFlagsValid(flags)\n {\n return (flags & (Tr2LightManager.Flags.AFFECTS_SURFACES | Tr2LightManager.Flags.AFFECTS_PARTICLES)) !== 0;\n }\n\n /**\n * Carbon SetShadowQuality (cpp:262-295), the full body: record the\n * scene's quality, collapse the previous frame's quality bitmask into\n * qualityUsedByAtlas on a frame change (HIGH beats LOW beats DISABLED),\n * and recompute the atlas settings for min(requested, atlas quality)\n * with actualTextureSize taken from the atlas quality - multiple scenes\n * may request different qualities in one frame and the texture must fit\n * the largest.\n */\n @carbon.method\n @impl.implemented\n SetShadowQuality(quality, frameCounter = 0)\n {\n const shadowQuality = Number(quality) || 0;\n this.#currentSpaceSceneShadowQuality = shadowQuality;\n\n if (this.#currentFrameCounter !== frameCounter)\n {\n if (!Tr2LightManager.useDynamicLightsShadows)\n {\n this.#nextFrameShadowQuality = 0;\n }\n\n if (this.#nextFrameShadowQuality & (1 << ShadowQuality.SHADOW_HIGH))\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_HIGH;\n }\n else if (this.#nextFrameShadowQuality & (1 << ShadowQuality.SHADOW_LOW))\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_LOW;\n }\n else\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_DISABLED;\n }\n this.#nextFrameShadowQuality = 1 << shadowQuality;\n this.#currentFrameCounter = frameCounter;\n }\n\n this.#nextFrameShadowQuality |= 1 << shadowQuality;\n\n const clamped = Math.min(shadowQuality, this.#shadowMap.qualityUsedByAtlas);\n this.#shadowMap.atlasSettings = calculateShadowMapAtlasSettings(clamped);\n this.#shadowMap.atlasSettings.actualTextureSize =\n calculateShadowMapAtlasSettings(this.#shadowMap.qualityUsedByAtlas).size;\n }\n\n /** Carbon GetShadowMapAtlasSettings (cpp:708-711). */\n @carbon.method\n @impl.implemented\n GetShadowMapAtlasSettings()\n {\n return this.#shadowMap.atlasSettings;\n }\n\n /**\n * Carbon GetUnpackedShadowMapData (cpp:810-815): the packed 10-bit\n * offsets/scale back into texels via the entry-min-size shift.\n *\n * @param {object} record A light record carrying the packed fields.\n * @param {object} [out] Receives scale/offsetX/offsetY.\n * @returns {object} out\n */\n @carbon.method\n @impl.implemented\n GetUnpackedShadowMapData(record, out = {})\n {\n const shift = this.#shadowMap.atlasSettings.entryMinSizeLog2;\n out.shadowMapScale = (record.shadowMapScale ?? 0) << shift;\n out.shadowMapOffsetX = (record.shadowMapOffsetX ?? 0) << shift;\n out.shadowMapOffsetY = (record.shadowMapOffsetY ?? 0) << shift;\n return out;\n }\n\n /**\n * Carbon Clear (cpp:220-242), the CPU half: drops the frame's records and\n * selections. The index-buffer UAV clear (cpp:224) is device work the AL\n * performs when it consumes the frame.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"ClearLightIndices' UAV clear is AL realization; the vector clears are ported. The render-context parameter is accepted for signature parity and unused.\")\n Clear(_renderContext = null)\n {\n this.#records.length = 0;\n this.#volumetricLights.length = 0;\n this.#shadowCastingLights.length = 0;\n }\n\n /** Carbon SetFrustum (cpp:244-247). */\n @carbon.method\n @impl.implemented\n SetFrustum(frustum)\n {\n this.#frustum = frustum ?? null;\n }\n\n /** Carbon AdjustLightCutoff (cpp:249-252): the cull threshold is 7px * lodFactor. */\n @carbon.method\n @impl.implemented\n AdjustLightCutoff(lodFactor)\n {\n this.#adjustedCutoff = CUTOFF_PIXEL_SIZE * (Number(lodFactor) || 0);\n }\n\n /**\n * Carbon AddPointLight (cpp:297-332): authors a record from scratch, in\n * Carbon's exact order - flags gate, brightness gate, frustum cull, pixel\n * cutoff, premultiply+fade, defaults for everything a caller cannot\n * supply. The direction default is (1,0,0), never zero - a zero direction\n * is a legal bit pattern the shader normalises into NaN (contract §\"third\n * texel\").\n */\n @carbon.method\n @impl.implemented\n AddPointLight(position, radius, color, innerRadius = 0, flags = Tr2LightManager.Flags.DEFAULT)\n {\n if (!Tr2LightManager.areLightFlagsValid(flags)) return;\n\n const brightness = Math.max(color[0], color[1], color[2]);\n if (!(brightness > 0)) return;\n\n const dimming = this.#CullAndDim(position, radius);\n if (dimming <= 0) return;\n\n const scale = radius * dimming;\n this.#records.push({\n owner: null,\n lightData: null,\n lightProfile: null,\n lightType: 0,\n position: vec3.fromValues(position[0], position[1], position[2]),\n direction: vec3.fromValues(1, 0, 0),\n color: vec3.fromValues(color[0] * scale, color[1] * scale, color[2] * scale),\n radius,\n innerRadius,\n flags,\n outerAngle: 0,\n innerAngle: 0,\n projectionPlaneDistance: 0\n });\n }\n\n /**\n * Carbon AddLight (cpp:334-368): takes a caller-built record, applies the\n * same gates, premultiplies, and - faithfully - MUTATES the caller's\n * record in place where Carbon does (the shadow-flag strip on the non-const\n * reference, cpp:359-365; always taken under the shipping pin). The stored\n * record is a by-value copy: every producer reuses a static scratch record,\n * exactly as Carbon's std::vector push copies.\n */\n @carbon.method\n @impl.implemented\n AddLight(record)\n {\n if (!Tr2LightManager.areLightFlagsValid(record.flags)) return;\n\n const brightness = Math.max(record.color[0], record.color[1], record.color[2]);\n if (!(brightness > 0) || !(record.radius > 0)) return;\n\n const dimming = this.#CullAndDim(record.position, record.radius);\n if (dimming <= 0) return;\n\n // Carbon's conditional strip (cpp:359-365): shadows survive only when\n // the setting is on, the scene quality is not DISABLED, and a shadow-map\n // quality has an atlas actually sized for it (qualityUsedByAtlas lags a\n // frame behind). Always taken under the shipping default.\n const usingShadowMap = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_LOW\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_HIGH;\n if (this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_DISABLED\n || (usingShadowMap && this.#shadowMap.qualityUsedByAtlas === ShadowQuality.SHADOW_DISABLED)\n || !Tr2LightManager.useDynamicLightsShadows)\n {\n record.flags &= ~Tr2LightManager.Flags.CASTS_SHADOWS;\n }\n\n const scale = record.radius * dimming;\n this.#records.push({\n owner: record.owner ?? null,\n lightData: record.lightData ?? null,\n lightProfile: record.lightProfile ?? null,\n lightType: record.lightType ?? 0,\n position: vec3.fromValues(record.position[0], record.position[1], record.position[2]),\n direction: vec3.fromValues(record.direction[0], record.direction[1], record.direction[2]),\n color: vec3.fromValues(record.color[0] * scale, record.color[1] * scale, record.color[2] * scale),\n radius: record.radius,\n innerRadius: record.innerRadius ?? 0,\n flags: record.flags,\n outerAngle: record.outerAngle ?? 0,\n innerAngle: record.innerAngle ?? 0,\n projectionPlaneDistance: record.projectionPlaneDistance ?? 0\n });\n }\n\n /**\n * Carbon ResolveLightData (cpp:520-620): the TLS flatten is a no-op here\n * (one array), the volumetric top-16 selection runs exactly as Carbon's -\n * including clearing IS_VOLUMETRIC on the losers so shader and CPU agree -\n * then the shadow-caster half (ported in full, gated by the same\n * useDynamicLightsShadows setting Carbon ships false), then the packed\n * buffer: byte layout per the contract, profile slots biased by one into\n * flag bits 4-15, the shadow union in word 11.\n */\n @carbon.method\n @impl.implemented\n ResolveLightData()\n {\n const volumetric = [];\n for (let i = 0; i < this.#records.length; i++)\n {\n if (this.#records[i].flags & Tr2LightManager.Flags.IS_VOLUMETRIC)\n {\n const size = this.#ScreenSize(this.#records[i]);\n volumetric.push([ i, Math.min(size, INFINITE_SIZE_CLAMP) ]);\n }\n }\n volumetric.sort((a, b) => b[1] - a[1]);\n\n this.#volumetricLights.length = 0;\n for (let i = 0; i < volumetric.length; i++)\n {\n if (i < MAX_NUM_VOLUMETRIC_LIGHTS) this.#volumetricLights.push(volumetric[i][0]);\n else this.#records[volumetric[i][0]].flags &= ~Tr2LightManager.Flags.IS_VOLUMETRIC;\n }\n\n this.#ResolveShadowCasters();\n\n this.#Pack();\n this.#revision += 1;\n }\n\n /**\n * Carbon's shadow-caster half of ResolveLightData (cpp:568-620): the\n * useDynamicLightsShadows/DISABLED early-out (Carbon ships with the\n * setting FALSE - it is a TRI_REGISTER_SETTING, hence a mutable static\n * here rather than a constant), then filter casters by flag, estimate\n * screen size (Carbon's FLT_MAX inside-the-sphere sentinel clamps to the\n * high-quality atlas size), sort descending, keep the largest sixteen,\n * strip FLAG_CASTS_SHADOWS from the losers, assign raytracing masks by\n * rank under SHADOW_RAYTRACED, and pack the atlas for LOW/HIGH.\n */\n #ResolveShadowCasters()\n {\n this.#shadowCastingLights.length = 0;\n if (!Tr2LightManager.useDynamicLightsShadows\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_DISABLED)\n {\n return;\n }\n\n const lightTuples = [];\n for (let i = 0; i < this.#records.length; i++)\n {\n if ((this.#records[i].flags & Tr2LightManager.Flags.CASTS_SHADOWS) !== 0)\n {\n let sizeAcross = this.#frustum\n ? this.#frustum.GetPixelSizeAccrossEst(this.#records[i].position, this.#records[i].radius)\n : 0;\n if (!Number.isFinite(sizeAcross)) sizeAcross = 1 << HIGH_QUALITY_ATLAS_SIZE_LOG2;\n lightTuples.push({ lightIndex: i, sizeAcross });\n }\n }\n\n lightTuples.sort((a, b) => b.sizeAcross - a.sizeAcross);\n\n const raytraced = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_RAYTRACED;\n const numShadowCastingLights = Math.min(MAX_NUM_SHADOWCASTING_LIGHTS, lightTuples.length);\n let i = 0;\n for (; i < numShadowCastingLights; i++)\n {\n this.#shadowCastingLights.push(lightTuples[i].lightIndex);\n if (raytraced)\n {\n this.#records[lightTuples[i].lightIndex].raytracingShadowMask = 1 << i;\n }\n }\n for (; i < lightTuples.length; i++)\n {\n const record = this.#records[lightTuples[i].lightIndex];\n record.flags &= ~Tr2LightManager.Flags.CASTS_SHADOWS;\n if (raytraced)\n {\n record.raytracingShadowMask = 0;\n }\n }\n\n if (this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_LOW\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_HIGH)\n {\n this.#CreateShadowMapAtlas(numShadowCastingLights, lightTuples);\n }\n }\n\n /**\n * Carbon CreateShadowMapAtlas (cpp:442-508): five fitting passes, each\n * halving entryMaxSize and incrementing the inverse-scale shift; entry\n * MIN size never scales. A failing pass still inserts every remaining\n * light before retrying. Point lights (innerAngle <= 0) take a 3x2\n * cube-cross, spots a square. Successful entries pack their offsets and\n * scale in entry-min-size units into the record's 10-bit fields; failures\n * zero them.\n */\n #CreateShadowMapAtlas(numShadowCastingLights, lightTuples)\n {\n const settings = this.#shadowMap.atlasSettings;\n const entry = { x: 0, y: 0 };\n let everythingFit = false;\n for (let j = 0; j < 5 && !everythingFit; j++)\n {\n everythingFit = true;\n const entryInverseScaleFactorLog2 = settings.entryInverseScaleFactorLog2 + j;\n const entryMaxSize = settings.entryMaxSize >> j;\n\n this.#shadowMap.atlasNodes.length = 0;\n this.#shadowMap.atlasNodes.push({\n children: [ -1, -1 ],\n lightIndex: -1,\n x: 0,\n y: 0,\n width: settings.size,\n height: settings.size\n });\n\n for (let i = 0; i < numShadowCastingLights; i++)\n {\n const lightIndex = lightTuples[i].lightIndex;\n const record = this.#records[lightIndex];\n\n let size = (lightTuples[i].sizeAcross >>> 0) >>> entryInverseScaleFactorLog2;\n size = Math.min(Math.max(size, settings.entryMinSize), entryMaxSize);\n size = align(size, settings.entryMinSize);\n\n let width, height;\n if (record.innerAngle <= 0)\n {\n // pointlight: a 3x2 cube-face cross\n width = 3 * size;\n height = 2 * size;\n }\n else\n {\n // spotlight\n width = size;\n height = size;\n }\n\n if (this.#GetShadowMapAtlasEntry(lightIndex, width, height, entry))\n {\n record.shadowMapOffsetX = entry.x >>> settings.entryMinSizeLog2;\n record.shadowMapOffsetY = entry.y >>> settings.entryMinSizeLog2;\n record.shadowMapScale = size >>> settings.entryMinSizeLog2;\n }\n else\n {\n record.shadowMapOffsetX = 0;\n record.shadowMapOffsetY = 0;\n record.shadowMapScale = 0;\n everythingFit = false;\n }\n }\n }\n }\n\n /**\n * Carbon GetShadowMapAtlasEntry (cpp:790-808): align the request to the\n * entry min size, insert from the root, and report position ONLY on\n * success - the out object is untouched on failure, exactly as Carbon\n * leaves its out-references.\n */\n #GetShadowMapAtlasEntry(lightIndex, width, height, out)\n {\n const settings = this.#shadowMap.atlasSettings;\n width = align(width, settings.entryMinSize);\n height = align(height, settings.entryMinSize);\n\n const nodeId = this.#InsertAtlasNode(this.#shadowMap.atlasNodes, 0, lightIndex, width, height);\n if (nodeId !== -1)\n {\n out.x = this.#shadowMap.atlasNodes[nodeId].x;\n out.y = this.#shadowMap.atlasNodes[nodeId].y;\n }\n return nodeId !== -1;\n }\n\n /**\n * Carbon InsertAtlasNode (cpp:718-788) - the blackpawn.com guillotine\n * packer, ported branch for branch: descend into split nodes (first\n * child, then second), reject occupied or too-small leaves, claim exact\n * fits, otherwise split along the larger remainder axis and recurse into\n * the first child.\n */\n #InsertAtlasNode(atlasNodes, nodeId, lightIndex, width, height)\n {\n const node = atlasNodes[nodeId];\n if (node.children[0] !== -1 || node.children[1] !== -1)\n {\n const newNode = this.#InsertAtlasNode(atlasNodes, node.children[0], lightIndex, width, height);\n if (newNode !== -1)\n {\n return newNode;\n }\n return this.#InsertAtlasNode(atlasNodes, node.children[1], lightIndex, width, height);\n }\n\n if (node.lightIndex !== -1)\n {\n return -1;\n }\n if (node.width < width || node.height < height)\n {\n return -1;\n }\n if (node.width === width && node.height === height)\n {\n node.lightIndex = lightIndex;\n return nodeId;\n }\n\n const child0 = { children: [ -1, -1 ], lightIndex: -1, x: 0, y: 0, width: 0, height: 0 };\n const child1 = { children: [ -1, -1 ], lightIndex: -1, x: 0, y: 0, width: 0, height: 0 };\n atlasNodes.push(child0, child1);\n node.children[0] = atlasNodes.length - 2;\n node.children[1] = atlasNodes.length - 1;\n\n const deltaWidth = node.width - width;\n const deltaHeight = node.height - height;\n\n if (deltaWidth > deltaHeight)\n {\n child0.x = node.x;\n child0.y = node.y;\n child0.width = width;\n child0.height = node.height;\n child1.x = node.x + width;\n child1.y = node.y;\n child1.width = node.width - width;\n child1.height = node.height;\n }\n else\n {\n child0.x = node.x;\n child0.y = node.y;\n child0.width = node.width;\n child0.height = height;\n child1.x = node.x;\n child1.y = node.y + height;\n child1.width = node.width;\n child1.height = node.height - height;\n }\n\n return this.#InsertAtlasNode(atlasNodes, node.children[0], lightIndex, width, height);\n }\n\n /** Carbon GetCurrentSpaceSceneShadowQuality (cpp:713-716): a bare field read; every record producer asks it before building. */\n @carbon.method\n @impl.implemented\n GetCurrentSpaceSceneShadowQuality()\n {\n return this.#currentSpaceSceneShadowQuality;\n }\n\n /** Carbon GetLightData (cpp:695-698): the frame's resolved records, borrowed. */\n @carbon.method\n @impl.implemented\n GetLightData()\n {\n return this.#records;\n }\n\n /** Carbon GetVolumetricLights (cpp:707-710): indices into GetLightData, borrowed. */\n @carbon.method\n @impl.implemented\n GetVolumetricLights()\n {\n return this.#volumetricLights;\n }\n\n /** Carbon GetShadowCastingLights (cpp:688-691): empty under the shipping pin, kept for signature parity. */\n @carbon.method\n @impl.implemented\n GetShadowCastingLights()\n {\n return this.#shadowCastingLights;\n }\n\n /**\n * Non-Carbon: the frame clock the packed light sets sample their curves\n * with. Carbon's sets read the renderer's clock; the GPU-free runtime\n * threads it through the manager the sets already hold.\n */\n @impl.custom\n @impl.reason(\"Non-Carbon seam: the packed sets need the frame time for curve sampling and the manager is the one object every GetLights implementation already receives.\")\n GetAnimationTime()\n {\n return this.#animationTime;\n }\n\n /** Sets the frame clock GetAnimationTime reports. */\n @impl.custom\n @impl.reason(\"Setter half of the non-Carbon frame-clock seam.\")\n SetAnimationTime(seconds)\n {\n this.#animationTime = Number(seconds) || 0;\n }\n\n /** The packed PerLightData bytes for the AL to upload, borrowed (contract layout, 3 RGBA32 texels per light). */\n @impl.custom\n @impl.reason(\"AL seam: Trinity owns the packed description bytes; the AL realizes LightBuffer from this view (precedent: Tr2DataTextureManager.GetPackedBlocks).\")\n GetLightBufferData()\n {\n return this.#packed.subarray(0, this.#packedCount * FLOATS_PER_LIGHT);\n }\n\n /** The number of packed lights in GetLightBufferData. */\n @impl.custom\n @impl.reason(\"AL seam companion to GetLightBufferData.\")\n GetLightCount()\n {\n return this.#packedCount;\n }\n\n /** Monotonic revision of the packed data, bumped by ResolveLightData, so the AL can skip unchanged re-uploads. */\n @impl.custom\n @impl.reason(\"Non-Carbon extension: cheaper than the AL diffing a typed array; Carbon re-uploads unconditionally.\")\n GetDataRevision()\n {\n return this.#revision;\n }\n\n /** Frustum cull + pixel-size cutoff, returning the fade-band dimming factor (0 = rejected). Cull applies only when a frustum was set. */\n #CullAndDim(position, radius)\n {\n if (!this.#frustum) return 1;\n if (!this.#frustum.IsSphereVisible(position, radius)) return 0;\n const size = this.#frustum.GetPixelSizeAccross(position, radius);\n if (!(size > this.#adjustedCutoff)) return 0;\n // Contract §\"Colour carries the radius\": the fade band sits ABOVE the\n // cutoff - absent at the cutoff, full brightness FADE_SIZE above it.\n return Math.min((size - this.#adjustedCutoff) / FADE_SIZE, 1);\n }\n\n #ScreenSize(record)\n {\n if (!this.#frustum) return record.radius;\n return this.#frustum.GetPixelSizeAccross(record.position, record.radius);\n }\n\n /**\n * The slice a profile occupies, +1 biased so 0 means \"no profile\"\n * (Tr2Light.cpp:137: `m_lightProfile ? GetTextureIndex() + 1 : 0`).\n *\n * The index comes from the RESOURCE (`GetTextureIndex`, the texture-array\n * slice - stable, shared across managers, reused after release), never\n * from an invented per-manager counter: Carbon assigns slices through the\n * process-wide light profile array (cpp:682-686), and a manager-local\n * numbering diverges from what the shader samples the moment two managers\n * or a released slot exist. A profile carrying a baked payload but no\n * slice yet is registered here - Carbon does this in the resource's\n * DoPrepare (Tr2LightProfileRes.cpp:95-99), which the layering forbids\n * (resource cannot import trinity), so the manager performs it at the\n * first pack instead; same array, same first-fit slot, one seam later.\n * The first-sight map remains only for foreign profile objects that\n * expose no GetTextureIndex.\n */\n #ProfileSlot(profile)\n {\n if (!profile) return 0;\n if (typeof profile.GetTextureIndex === \"function\")\n {\n let index = profile.GetTextureIndex();\n if (index < 0 && typeof profile.RegisterProfileElement === \"function\")\n {\n const payload = typeof profile.GetPayload === \"function\" ? profile.GetPayload() : null;\n if (payload && payload.samples)\n {\n const element = Tr2LightManager.getLightProfileArray().AddElement(payload);\n if (element.IsValid())\n {\n profile.RegisterProfileElement(element);\n index = element.GetElementIndex();\n }\n }\n }\n return index >= 0 ? index + 1 : 0;\n }\n let slot = this.#profileSlots.get(profile);\n if (slot === undefined)\n {\n slot = this.#profileSlots.size;\n this.#profileSlots.set(profile, slot);\n }\n return slot + 1;\n }\n\n /**\n * The process-wide light profile array (Tr2LightManager.cpp:682-686).\n *\n * Carbon's is a function-local static that deliberately survives manager\n * destruction (ResetVariableStore re-registers the SAME live array,\n * cpp:186) - so under instance-per-scene managers this stays a class\n * static: two scenes share slices, and a profile's texture index means\n * the same thing everywhere. Realizing it as a GPU texture array is the\n * abstraction layer's job; consumers poll GetRevision or subscribe via\n * OnTextureChange.\n *\n * @returns {Tr2TextureArray} The shared profile array.\n */\n static getLightProfileArray()\n {\n if (!Tr2LightManager.#lightProfileArray)\n {\n Tr2LightManager.#lightProfileArray = new Tr2TextureArray();\n }\n return Tr2LightManager.#lightProfileArray;\n }\n\n static #lightProfileArray = null;\n\n /** Packs #records into the 48-byte-per-light buffer per the contract layout. */\n #Pack()\n {\n const count = Math.min(this.#records.length, LIGHT_BUFFER_SIZE);\n for (let i = 0; i < count; i++)\n {\n const record = this.#records[i];\n const f = i * FLOATS_PER_LIGHT;\n\n // Texel 0: position + radius, four f32.\n this.#packed[f] = record.position[0];\n this.#packed[f + 1] = record.position[1];\n this.#packed[f + 2] = record.position[2];\n this.#packed[f + 3] = record.radius;\n\n // Texel 1: colour (premultiplied at Add time) + the packed word -\n // innerRadius f16 low, flags u16 high with the biased profile slot in\n // bits 4-15 (contract §\"The packed flag word\").\n this.#packed[f + 4] = record.color[0];\n this.#packed[f + 5] = record.color[1];\n this.#packed[f + 6] = record.color[2];\n const flagsWord = (record.flags & 0xF) | (this.#ProfileSlot(record.lightProfile) << 4);\n this.#packedBits[f + 7] = toHalf(record.innerRadius) | ((flagsWord & 0xFFFF) << 16);\n\n // Texel 2: direction as three f16, projectionPlaneDistance, the two\n // angles, then the shadow union (h:70-84, MSVC low-bit-first layout:\n // bits 0-1 padding, 2-11 scale, 12-21 offsetX, 22-31 offsetY; the\n // raytraced mask shares the word - the paths are exclusive by\n // quality). All zeros under the shipping pin, exactly as before.\n this.#packedBits[f + 8] = toHalf(record.direction[0]) | (toHalf(record.direction[1]) << 16);\n this.#packedBits[f + 9] = toHalf(record.direction[2]) | (toHalf(record.projectionPlaneDistance) << 16);\n this.#packedBits[f + 10] = toHalf(record.outerAngle) | (toHalf(record.innerAngle) << 16);\n this.#packedBits[f + 11] = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_RAYTRACED\n ? (record.raytracingShadowMask ?? 0) & 0xFFFF\n : (((record.shadowMapScale ?? 0) & 0x3FF) << 2)\n | (((record.shadowMapOffsetX ?? 0) & 0x3FF) << 12)\n | (((record.shadowMapOffsetY ?? 0) & 0x3FF) << 22);\n }\n this.#packedCount = count;\n }\n}\n"],"names":["LIGHT_BUFFER_SIZE","CUTOFF_PIXEL_SIZE","FADE_SIZE","MAX_NUM_VOLUMETRIC_LIGHTS","MAX_NUM_SHADOWCASTING_LIGHTS","HIGH_QUALITY_ATLAS_SIZE_LOG2","HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE","INFINITE_SIZE_CLAMP","FLOATS_PER_LIGHT","align","value","alignment","calculateShadowMapAtlasSettings","shadowQuality","settings","actualTextureSize","sizeLog2","size","entryMinSizeLog2","entryMinSize","entryInverseScaleFactorLog2","entryMaxSize","ShadowQuality","SHADOW_DISABLED","SHADOW_RAYTRACED","SHADOW_LOW","SHADOW_HIGH","toHalf","num","toHalfFloat","_Tr2LightManager","_identity","Tr2LightManager","CjsModel","e","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","reason","custom","atlasSettings","atlasNodes","qualityUsedByAtlas","Map","Float32Array","Uint32Array","buffer","areLightFlagsValid","flags","Flags","AFFECTS_SURFACES","AFFECTS_PARTICLES","SetShadowQuality","quality","frameCounter","Number","useDynamicLightsShadows","clamped","Math","min","GetShadowMapAtlasSettings","GetUnpackedShadowMapData","record","out","shift","shadowMapScale","shadowMapOffsetX","shadowMapOffsetY","Clear","_renderContext","length","SetFrustum","frustum","AdjustLightCutoff","lodFactor","AddPointLight","position","radius","color","innerRadius","DEFAULT","brightness","max","dimming","scale","push","owner","lightData","lightProfile","lightType","vec3","fromValues","direction","outerAngle","innerAngle","projectionPlaneDistance","AddLight","usingShadowMap","CASTS_SHADOWS","ResolveLightData","volumetric","i","IS_VOLUMETRIC","sort","a","b","#ResolveShadowCasters","lightTuples","sizeAcross","GetPixelSizeAccrossEst","isFinite","lightIndex","raytraced","numShadowCastingLights","raytracingShadowMask","#CreateShadowMapAtlas","entry","x","y","everythingFit","j","children","width","height","#GetShadowMapAtlasEntry","nodeId","#InsertAtlasNode","node","newNode","child0","child1","deltaWidth","deltaHeight","GetCurrentSpaceSceneShadowQuality","GetLightData","GetVolumetricLights","GetShadowCastingLights","GetAnimationTime","SetAnimationTime","seconds","GetLightBufferData","subarray","GetLightCount","GetDataRevision","#CullAndDim","IsSphereVisible","GetPixelSizeAccross","#ScreenSize","#ProfileSlot","profile","GetTextureIndex","index","RegisterProfileElement","payload","GetPayload","samples","element","getLightProfileArray","AddElement","IsValid","GetElementIndex","slot","get","undefined","set","Tr2TextureArray","#Pack","count","f","flagsWord","Object","freeze","LIGHT_BUFFER_NAME","LIGHT_INDEX_BUFFER_NAME","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tr2LightManager.js","sources":["../../../../../src/trinity/core/lighting/Tr2LightManager.js"],"sourcesContent":["// Source: trinity/trinity/Tr2LightManager.h + Tr2LightManager.cpp\n//\n// The local-light manager: collects per-light records from every\n// ITr2LightOwner during the scene gather, culls and premultiplies them,\n// selects the volumetric set, and owns the PACKED light buffer bytes the\n// abstraction layer uploads. Description-building throughout - under the\n// engine-means-AL vocabulary (docs c5a4b66) everything here is Trinity's;\n// only realizing LightBuffer/LightIndexBuffer into device objects, the\n// tiling compute dispatch, the shadow atlas textures and the raytraced\n// path are the AL's, and all of those are deferred below.\n//\n// SHIPPING BEHAVIOUR PIN: Carbon ships with g_useDynamicLightsShadows =\n// false (cpp:21-22, a TRI_REGISTER_SETTING - runtime-mutable, hence the\n// static below rather than a constant). With it false, ResolveLightData\n// returns after the volumetric pass (cpp:568-571) and AddLight always\n// strips FLAG_CASTS_SHADOWS (cpp:359-365). The caster/atlas CPU half IS\n// ported (settings derivation, guillotine packer, five-pass fit, packed\n// 10-bit offsets) and sits behind the same setting; only its GPU\n// realization (the pooled D32 atlas texture, cpp:703-706) stays the\n// abstraction layer's.\n//\n// Carbon's thread-local gather vectors (safe under Tr2ParallelFor,\n// EveSpaceScene.cpp:1410) collapse to one array: the JS gather is\n// sequential. Carbon's file-static singleton (GetOrCreateInstance) is NOT\n// ported - the runtime injects a manager into GatherLights, which is the\n// shape every call site and test already has.\n//\n// docs/contracts/carbon-light-data.md owns the PerLightData layout, the\n// packed flag word, the premultiply and the fade band; the packing below\n// cites it rather than re-deriving it.\n\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, type } from \"#schema\";\nimport { num } from \"#math/num\";\nimport { vec3 } from \"#math/vec3\";\nimport { ShadowQuality } from \"../../generated/trinityCore/enums.js\";\nimport { Tr2TextureArray } from \"../Tr2TextureArray/index.js\";\n\n// Tr2LightManager.cpp:30-48 - copied verbatim; the buffer sizes are the ABI\n// the AL uploads against.\nconst LIGHT_BUFFER_SIZE = 1024;\nconst CUTOFF_PIXEL_SIZE = 7;\nconst FADE_SIZE = 5;\nconst MAX_NUM_VOLUMETRIC_LIGHTS = 16;\nconst MAX_NUM_SHADOWCASTING_LIGHTS = 16;\nconst HIGH_QUALITY_ATLAS_SIZE_LOG2 = 14;\nconst HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE = 1 << 13;\nconst INFINITE_SIZE_CLAMP = 1 << 14; // 1 << HIGH_QUALITY_ATLAS_SIZE_LOG2\nconst FLOATS_PER_LIGHT = 12; // 48 bytes / 3 RGBA32 texels\n\n/** CCP_ALIGN: round up to a power-of-two alignment. */\nfunction align(value, alignment)\n{\n return (value + alignment - 1) & ~(alignment - 1);\n}\n\n/**\n * Carbon's anonymous-namespace CalculateShadowMapAtlasSettings (cpp:92-122).\n *\n * Ported branch for branch, including the SHADOW_RAYTRACED quirk: it zeroes\n * with SHADOW_DISABLED but then re-enters the != DISABLED block, so\n * `entryMinSizeLog2 = 0 - 10` wraps unsigned (4294967286) and\n * `1 << entryMinSizeLog2` shifts by that count. MSVC x86 masks the shift\n * count by 31 and SO DOES JavaScript's << - writing the arithmetic plainly\n * reproduces Carbon's shipping behaviour exactly (entryMinSize 1<<22,\n * entryMaxSize 8192 >> 14 = 0).\n *\n * @param {number} shadowQuality ShadowQuality ordinal.\n * @returns {object} ShadowMapAtlasSettings (actualTextureSize starts 0).\n */\nfunction calculateShadowMapAtlasSettings(shadowQuality)\n{\n const settings = {\n actualTextureSize: 0,\n sizeLog2: 0,\n size: 0,\n entryMinSizeLog2: 0,\n entryMinSize: 0,\n entryInverseScaleFactorLog2: 0,\n entryMaxSize: 0\n };\n switch (shadowQuality)\n {\n case ShadowQuality.SHADOW_DISABLED:\n case ShadowQuality.SHADOW_RAYTRACED:\n break;\n case ShadowQuality.SHADOW_LOW:\n settings.sizeLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2 - 2;\n break;\n case ShadowQuality.SHADOW_HIGH:\n settings.sizeLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2;\n break;\n }\n if (shadowQuality !== ShadowQuality.SHADOW_DISABLED)\n {\n settings.size = 1 << settings.sizeLog2;\n settings.entryMinSizeLog2 = (settings.sizeLog2 - 10) >>> 0;\n settings.entryMinSize = 1 << settings.entryMinSizeLog2;\n settings.entryInverseScaleFactorLog2 = HIGH_QUALITY_ATLAS_SIZE_LOG2 - settings.sizeLog2;\n settings.entryMaxSize = HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE >> settings.entryInverseScaleFactorLog2;\n }\n return settings;\n}\n\n// Carbon packs these halves through Float_16(...) (Tr2LightManager.cpp:297,\n// :328-329), which rounds to nearest. num.toHalfFloat is the runtime's one\n// half codec and rounds identically for every in-range value; an earlier\n// file-local encoder here TRUNCATED, a 1-ulp divergence from Carbon,\n// removed 2026-09-08.\nconst toHalf = num.toHalfFloat;\n\n/** Owns the frame's local-light records, their selection, and the packed light-buffer bytes the abstraction layer uploads. */\n@type.define({ className: \"Tr2LightManager\", family: \"trinityCore\" })\nexport class Tr2LightManager extends CjsModel\n{\n\n // Carbon m_lightData after the TLS flatten: the frame's accepted records,\n // plain-object copies (every producer reuses a static scratch record, so\n // AddLight copies by value exactly as std::vector::push_back does).\n #records = [];\n\n // Carbon m_volumetricLights / m_shadowCastingLights: indices into #records.\n #volumetricLights = [];\n\n #shadowCastingLights = [];\n\n // Carbon m_frustum, by reference (SetFrustum copies by value in C++; the\n // stamped frame frustum is not mutated during the gather, so a reference\n // carries the same guarantee here).\n #frustum = null;\n\n // Carbon m_adjustedCutoff (cpp:249-252).\n #adjustedCutoff = CUTOFF_PIXEL_SIZE;\n\n // Carbon m_currentSpaceSceneShadowQuality (h:197).\n #currentSpaceSceneShadowQuality = ShadowQuality.SHADOW_DISABLED;\n\n // Carbon nextFrameShadowQuality (h:196) - a bitmask collecting every\n // scene's requested quality during the current frame.\n #nextFrameShadowQuality = 0;\n\n // Carbon m_currentFrameCounter (h:198; ctor sets -1, cpp:164).\n #currentFrameCounter = -1;\n\n // Carbon's anonymous m_ShadowMap block (h:200-205): the atlas settings,\n // the guillotine node tree, and the quality the atlas was last sized for.\n #shadowMap = {\n atlasSettings: calculateShadowMapAtlasSettings(ShadowQuality.SHADOW_DISABLED),\n atlasNodes: [],\n qualityUsedByAtlas: ShadowQuality.SHADOW_DISABLED\n };\n\n // Non-Carbon: the frame clock the packed sets read for curve sampling.\n #animationTime = 0;\n\n // Non-Carbon: profile-object -> slice index, assigned on first sight. The\n // slot registry is description-side (Carbon assigns slices through the\n // manager-owned Tr2TextureArray, cpp:682-686, whose realization is AL).\n #profileSlots = new Map();\n\n // The packed PerLightData buffer (contract: 48 bytes / 3 RGBA32 texels per\n // light), built by ResolveLightData, uploaded by the AL.\n #packed = new Float32Array(LIGHT_BUFFER_SIZE * FLOATS_PER_LIGHT);\n\n #packedBits = new Uint32Array(this.#packed.buffer);\n\n #packedCount = 0;\n\n // Non-Carbon: bumped by ResolveLightData so the AL can skip re-uploads.\n #revision = 0;\n\n /** Tr2LightManager.h:100-105 - the light flag bits, Carbon's raw uint16 spelling. */\n static Flags = Object.freeze({\n AFFECTS_SURFACES: 1,\n AFFECTS_PARTICLES: 1 << 1,\n CASTS_SHADOWS: 1 << 2,\n IS_VOLUMETRIC: 1 << 3,\n DEFAULT: 1\n });\n\n /** The variable-store names the AL binds the packed buffers under\n * (Tr2LightManager.h:46-47; both isAutoregister). The NAMES are Trinity's\n * contract; the variables are the AL's to create. */\n static LIGHT_BUFFER_NAME = \"LightBuffer\";\n\n static LIGHT_INDEX_BUFFER_NAME = \"LightIndexBuffer\";\n\n /**\n * Carbon g_useDynamicLightsShadows (cpp:21-22) - a TRI_REGISTER_SETTING,\n * i.e. a runtime-mutable setting rather than a compile constant, shipped\n * FALSE. The whole shadow-caster/atlas half sits behind it; flipping it\n * exercises the ported path (the tests do), and shipping behaviour is\n * unchanged while it stays false.\n */\n static useDynamicLightsShadows = false;\n\n /** The atlas-settings derivation, exposed for tests (Carbon cpp:92-122). */\n static calculateShadowMapAtlasSettings = calculateShadowMapAtlasSettings;\n\n /**\n * Carbon Tr2LightManager::AreLightFlagsValid (cpp:677-680): a light must\n * affect surfaces or particles to exist at all.\n */\n @carbon.method\n @impl.implemented\n static areLightFlagsValid(flags)\n {\n return (flags & (Tr2LightManager.Flags.AFFECTS_SURFACES | Tr2LightManager.Flags.AFFECTS_PARTICLES)) !== 0;\n }\n\n /**\n * Carbon SetShadowQuality (cpp:262-295), the full body: record the\n * scene's quality, collapse the previous frame's quality bitmask into\n * qualityUsedByAtlas on a frame change (HIGH beats LOW beats DISABLED),\n * and recompute the atlas settings for min(requested, atlas quality)\n * with actualTextureSize taken from the atlas quality - multiple scenes\n * may request different qualities in one frame and the texture must fit\n * the largest.\n */\n @carbon.method\n @impl.implemented\n SetShadowQuality(quality, frameCounter = 0)\n {\n const shadowQuality = Number(quality) || 0;\n this.#currentSpaceSceneShadowQuality = shadowQuality;\n\n if (this.#currentFrameCounter !== frameCounter)\n {\n if (!Tr2LightManager.useDynamicLightsShadows)\n {\n this.#nextFrameShadowQuality = 0;\n }\n\n if (this.#nextFrameShadowQuality & (1 << ShadowQuality.SHADOW_HIGH))\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_HIGH;\n }\n else if (this.#nextFrameShadowQuality & (1 << ShadowQuality.SHADOW_LOW))\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_LOW;\n }\n else\n {\n this.#shadowMap.qualityUsedByAtlas = ShadowQuality.SHADOW_DISABLED;\n }\n this.#nextFrameShadowQuality = 1 << shadowQuality;\n this.#currentFrameCounter = frameCounter;\n }\n\n this.#nextFrameShadowQuality |= 1 << shadowQuality;\n\n const clamped = Math.min(shadowQuality, this.#shadowMap.qualityUsedByAtlas);\n this.#shadowMap.atlasSettings = calculateShadowMapAtlasSettings(clamped);\n this.#shadowMap.atlasSettings.actualTextureSize =\n calculateShadowMapAtlasSettings(this.#shadowMap.qualityUsedByAtlas).size;\n }\n\n /** Carbon GetShadowMapAtlasSettings (cpp:708-711). */\n @carbon.method\n @impl.implemented\n GetShadowMapAtlasSettings()\n {\n return this.#shadowMap.atlasSettings;\n }\n\n /**\n * Carbon GetUnpackedShadowMapData (cpp:810-815): the packed 10-bit\n * offsets/scale back into texels via the entry-min-size shift.\n *\n * @param {object} record A light record carrying the packed fields.\n * @param {object} [out] Receives scale/offsetX/offsetY.\n * @returns {object} out\n */\n @carbon.method\n @impl.implemented\n GetUnpackedShadowMapData(record, out = {})\n {\n const shift = this.#shadowMap.atlasSettings.entryMinSizeLog2;\n out.shadowMapScale = (record.shadowMapScale ?? 0) << shift;\n out.shadowMapOffsetX = (record.shadowMapOffsetX ?? 0) << shift;\n out.shadowMapOffsetY = (record.shadowMapOffsetY ?? 0) << shift;\n return out;\n }\n\n /**\n * Carbon Clear (cpp:220-242), the CPU half: drops the frame's records and\n * selections. The index-buffer UAV clear (cpp:224) is device work the AL\n * performs when it consumes the frame.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"ClearLightIndices' UAV clear is AL realization; the vector clears are ported. The render-context parameter is accepted for signature parity and unused.\")\n Clear(_renderContext = null)\n {\n this.#records.length = 0;\n this.#volumetricLights.length = 0;\n this.#shadowCastingLights.length = 0;\n }\n\n /** Carbon SetFrustum (cpp:244-247). */\n @carbon.method\n @impl.implemented\n SetFrustum(frustum)\n {\n this.#frustum = frustum ?? null;\n }\n\n /** Carbon AdjustLightCutoff (cpp:249-252): the cull threshold is 7px * lodFactor. */\n @carbon.method\n @impl.implemented\n AdjustLightCutoff(lodFactor)\n {\n this.#adjustedCutoff = CUTOFF_PIXEL_SIZE * (Number(lodFactor) || 0);\n }\n\n /**\n * Carbon AddPointLight (cpp:297-332): authors a record from scratch, in\n * Carbon's exact order - flags gate, brightness gate, frustum cull, pixel\n * cutoff, premultiply+fade, defaults for everything a caller cannot\n * supply. The direction default is (1,0,0), never zero - a zero direction\n * is a legal bit pattern the shader normalises into NaN (contract §\"third\n * texel\").\n */\n @carbon.method\n @impl.implemented\n AddPointLight(position, radius, color, innerRadius = 0, flags = Tr2LightManager.Flags.DEFAULT)\n {\n if (!Tr2LightManager.areLightFlagsValid(flags)) return;\n\n const brightness = Math.max(color[0], color[1], color[2]);\n if (!(brightness > 0)) return;\n\n const dimming = this.#CullAndDim(position, radius);\n if (dimming <= 0) return;\n\n const scale = radius * dimming;\n this.#records.push({\n owner: null,\n lightData: null,\n lightProfile: null,\n lightType: 0,\n position: vec3.fromValues(position[0], position[1], position[2]),\n direction: vec3.fromValues(1, 0, 0),\n color: vec3.fromValues(color[0] * scale, color[1] * scale, color[2] * scale),\n radius,\n innerRadius,\n flags,\n outerAngle: 0,\n innerAngle: 0,\n projectionPlaneDistance: 0\n });\n }\n\n /**\n * Carbon AddLight (cpp:334-368): takes a caller-built record, applies the\n * same gates, premultiplies, and - faithfully - MUTATES the caller's\n * record in place where Carbon does (the shadow-flag strip on the non-const\n * reference, cpp:359-365; always taken under the shipping pin). The stored\n * record is a by-value copy: every producer reuses a static scratch record,\n * exactly as Carbon's std::vector push copies.\n */\n @carbon.method\n @impl.implemented\n AddLight(record)\n {\n if (!Tr2LightManager.areLightFlagsValid(record.flags)) return;\n\n const brightness = Math.max(record.color[0], record.color[1], record.color[2]);\n if (!(brightness > 0) || !(record.radius > 0)) return;\n\n const dimming = this.#CullAndDim(record.position, record.radius);\n if (dimming <= 0) return;\n\n // Carbon's conditional strip (cpp:359-365): shadows survive only when\n // the setting is on, the scene quality is not DISABLED, and a shadow-map\n // quality has an atlas actually sized for it (qualityUsedByAtlas lags a\n // frame behind). Always taken under the shipping default.\n const usingShadowMap = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_LOW\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_HIGH;\n if (this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_DISABLED\n || (usingShadowMap && this.#shadowMap.qualityUsedByAtlas === ShadowQuality.SHADOW_DISABLED)\n || !Tr2LightManager.useDynamicLightsShadows)\n {\n record.flags &= ~Tr2LightManager.Flags.CASTS_SHADOWS;\n }\n\n const scale = record.radius * dimming;\n this.#records.push({\n owner: record.owner ?? null,\n lightData: record.lightData ?? null,\n lightProfile: record.lightProfile ?? null,\n lightType: record.lightType ?? 0,\n position: vec3.fromValues(record.position[0], record.position[1], record.position[2]),\n direction: vec3.fromValues(record.direction[0], record.direction[1], record.direction[2]),\n color: vec3.fromValues(record.color[0] * scale, record.color[1] * scale, record.color[2] * scale),\n radius: record.radius,\n innerRadius: record.innerRadius ?? 0,\n flags: record.flags,\n outerAngle: record.outerAngle ?? 0,\n innerAngle: record.innerAngle ?? 0,\n projectionPlaneDistance: record.projectionPlaneDistance ?? 0\n });\n }\n\n /**\n * Carbon ResolveLightData (cpp:520-620): the TLS flatten is a no-op here\n * (one array), the volumetric top-16 selection runs exactly as Carbon's -\n * including clearing IS_VOLUMETRIC on the losers so shader and CPU agree -\n * then the shadow-caster half (ported in full, gated by the same\n * useDynamicLightsShadows setting Carbon ships false), then the packed\n * buffer: byte layout per the contract, profile slots biased by one into\n * flag bits 4-15, the shadow union in word 11.\n */\n @carbon.method\n @impl.implemented\n ResolveLightData()\n {\n const volumetric = [];\n for (let i = 0; i < this.#records.length; i++)\n {\n if (this.#records[i].flags & Tr2LightManager.Flags.IS_VOLUMETRIC)\n {\n const size = this.#ScreenSize(this.#records[i]);\n volumetric.push([ i, Math.min(size, INFINITE_SIZE_CLAMP) ]);\n }\n }\n volumetric.sort((a, b) => b[1] - a[1]);\n\n this.#volumetricLights.length = 0;\n for (let i = 0; i < volumetric.length; i++)\n {\n if (i < MAX_NUM_VOLUMETRIC_LIGHTS) this.#volumetricLights.push(volumetric[i][0]);\n else this.#records[volumetric[i][0]].flags &= ~Tr2LightManager.Flags.IS_VOLUMETRIC;\n }\n\n this.#ResolveShadowCasters();\n\n this.#Pack();\n this.#revision += 1;\n }\n\n /**\n * Carbon's shadow-caster half of ResolveLightData (cpp:568-620): the\n * useDynamicLightsShadows/DISABLED early-out (Carbon ships with the\n * setting FALSE - it is a TRI_REGISTER_SETTING, hence a mutable static\n * here rather than a constant), then filter casters by flag, estimate\n * screen size (Carbon's FLT_MAX inside-the-sphere sentinel clamps to the\n * high-quality atlas size), sort descending, keep the largest sixteen,\n * strip FLAG_CASTS_SHADOWS from the losers, assign raytracing masks by\n * rank under SHADOW_RAYTRACED, and pack the atlas for LOW/HIGH.\n */\n #ResolveShadowCasters()\n {\n this.#shadowCastingLights.length = 0;\n if (!Tr2LightManager.useDynamicLightsShadows\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_DISABLED)\n {\n return;\n }\n\n const lightTuples = [];\n for (let i = 0; i < this.#records.length; i++)\n {\n if ((this.#records[i].flags & Tr2LightManager.Flags.CASTS_SHADOWS) !== 0)\n {\n let sizeAcross = this.#frustum\n ? this.#frustum.GetPixelSizeAccrossEst(this.#records[i].position, this.#records[i].radius)\n : 0;\n if (!Number.isFinite(sizeAcross)) sizeAcross = 1 << HIGH_QUALITY_ATLAS_SIZE_LOG2;\n lightTuples.push({ lightIndex: i, sizeAcross });\n }\n }\n\n lightTuples.sort((a, b) => b.sizeAcross - a.sizeAcross);\n\n const raytraced = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_RAYTRACED;\n const numShadowCastingLights = Math.min(MAX_NUM_SHADOWCASTING_LIGHTS, lightTuples.length);\n let i = 0;\n for (; i < numShadowCastingLights; i++)\n {\n this.#shadowCastingLights.push(lightTuples[i].lightIndex);\n if (raytraced)\n {\n this.#records[lightTuples[i].lightIndex].raytracingShadowMask = 1 << i;\n }\n }\n for (; i < lightTuples.length; i++)\n {\n const record = this.#records[lightTuples[i].lightIndex];\n record.flags &= ~Tr2LightManager.Flags.CASTS_SHADOWS;\n if (raytraced)\n {\n record.raytracingShadowMask = 0;\n }\n }\n\n if (this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_LOW\n || this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_HIGH)\n {\n this.#CreateShadowMapAtlas(numShadowCastingLights, lightTuples);\n }\n }\n\n /**\n * Carbon CreateShadowMapAtlas (cpp:442-508): five fitting passes, each\n * halving entryMaxSize and incrementing the inverse-scale shift; entry\n * MIN size never scales. A failing pass still inserts every remaining\n * light before retrying. Point lights (innerAngle <= 0) take a 3x2\n * cube-cross, spots a square. Successful entries pack their offsets and\n * scale in entry-min-size units into the record's 10-bit fields; failures\n * zero them.\n */\n #CreateShadowMapAtlas(numShadowCastingLights, lightTuples)\n {\n const settings = this.#shadowMap.atlasSettings;\n const entry = { x: 0, y: 0 };\n let everythingFit = false;\n for (let j = 0; j < 5 && !everythingFit; j++)\n {\n everythingFit = true;\n const entryInverseScaleFactorLog2 = settings.entryInverseScaleFactorLog2 + j;\n const entryMaxSize = settings.entryMaxSize >> j;\n\n this.#shadowMap.atlasNodes.length = 0;\n this.#shadowMap.atlasNodes.push({\n children: [ -1, -1 ],\n lightIndex: -1,\n x: 0,\n y: 0,\n width: settings.size,\n height: settings.size\n });\n\n for (let i = 0; i < numShadowCastingLights; i++)\n {\n const lightIndex = lightTuples[i].lightIndex;\n const record = this.#records[lightIndex];\n\n let size = (lightTuples[i].sizeAcross >>> 0) >>> entryInverseScaleFactorLog2;\n size = Math.min(Math.max(size, settings.entryMinSize), entryMaxSize);\n size = align(size, settings.entryMinSize);\n\n let width, height;\n if (record.innerAngle <= 0)\n {\n // pointlight: a 3x2 cube-face cross\n width = 3 * size;\n height = 2 * size;\n }\n else\n {\n // spotlight\n width = size;\n height = size;\n }\n\n if (this.#GetShadowMapAtlasEntry(lightIndex, width, height, entry))\n {\n record.shadowMapOffsetX = entry.x >>> settings.entryMinSizeLog2;\n record.shadowMapOffsetY = entry.y >>> settings.entryMinSizeLog2;\n record.shadowMapScale = size >>> settings.entryMinSizeLog2;\n }\n else\n {\n record.shadowMapOffsetX = 0;\n record.shadowMapOffsetY = 0;\n record.shadowMapScale = 0;\n everythingFit = false;\n }\n }\n }\n }\n\n /**\n * Carbon GetShadowMapAtlasEntry (cpp:790-808): align the request to the\n * entry min size, insert from the root, and report position ONLY on\n * success - the out object is untouched on failure, exactly as Carbon\n * leaves its out-references.\n */\n #GetShadowMapAtlasEntry(lightIndex, width, height, out)\n {\n const settings = this.#shadowMap.atlasSettings;\n width = align(width, settings.entryMinSize);\n height = align(height, settings.entryMinSize);\n\n const nodeId = this.#InsertAtlasNode(this.#shadowMap.atlasNodes, 0, lightIndex, width, height);\n if (nodeId !== -1)\n {\n out.x = this.#shadowMap.atlasNodes[nodeId].x;\n out.y = this.#shadowMap.atlasNodes[nodeId].y;\n }\n return nodeId !== -1;\n }\n\n /**\n * Carbon InsertAtlasNode (cpp:718-788) - the blackpawn.com guillotine\n * packer, ported branch for branch: descend into split nodes (first\n * child, then second), reject occupied or too-small leaves, claim exact\n * fits, otherwise split along the larger remainder axis and recurse into\n * the first child.\n */\n #InsertAtlasNode(atlasNodes, nodeId, lightIndex, width, height)\n {\n const node = atlasNodes[nodeId];\n if (node.children[0] !== -1 || node.children[1] !== -1)\n {\n const newNode = this.#InsertAtlasNode(atlasNodes, node.children[0], lightIndex, width, height);\n if (newNode !== -1)\n {\n return newNode;\n }\n return this.#InsertAtlasNode(atlasNodes, node.children[1], lightIndex, width, height);\n }\n\n if (node.lightIndex !== -1)\n {\n return -1;\n }\n if (node.width < width || node.height < height)\n {\n return -1;\n }\n if (node.width === width && node.height === height)\n {\n node.lightIndex = lightIndex;\n return nodeId;\n }\n\n const child0 = { children: [ -1, -1 ], lightIndex: -1, x: 0, y: 0, width: 0, height: 0 };\n const child1 = { children: [ -1, -1 ], lightIndex: -1, x: 0, y: 0, width: 0, height: 0 };\n atlasNodes.push(child0, child1);\n node.children[0] = atlasNodes.length - 2;\n node.children[1] = atlasNodes.length - 1;\n\n const deltaWidth = node.width - width;\n const deltaHeight = node.height - height;\n\n if (deltaWidth > deltaHeight)\n {\n child0.x = node.x;\n child0.y = node.y;\n child0.width = width;\n child0.height = node.height;\n child1.x = node.x + width;\n child1.y = node.y;\n child1.width = node.width - width;\n child1.height = node.height;\n }\n else\n {\n child0.x = node.x;\n child0.y = node.y;\n child0.width = node.width;\n child0.height = height;\n child1.x = node.x;\n child1.y = node.y + height;\n child1.width = node.width;\n child1.height = node.height - height;\n }\n\n return this.#InsertAtlasNode(atlasNodes, node.children[0], lightIndex, width, height);\n }\n\n /** Carbon GetCurrentSpaceSceneShadowQuality (cpp:713-716): a bare field read; every record producer asks it before building. */\n @carbon.method\n @impl.implemented\n GetCurrentSpaceSceneShadowQuality()\n {\n return this.#currentSpaceSceneShadowQuality;\n }\n\n /** Carbon GetLightData (cpp:695-698): the frame's resolved records, borrowed. */\n @carbon.method\n @impl.implemented\n GetLightData()\n {\n return this.#records;\n }\n\n /** Carbon GetVolumetricLights (cpp:707-710): indices into GetLightData, borrowed. */\n @carbon.method\n @impl.implemented\n GetVolumetricLights()\n {\n return this.#volumetricLights;\n }\n\n /** Carbon GetShadowCastingLights (cpp:688-691): empty under the shipping pin, kept for signature parity. */\n @carbon.method\n @impl.implemented\n GetShadowCastingLights()\n {\n return this.#shadowCastingLights;\n }\n\n /**\n * Non-Carbon: the frame clock the packed light sets sample their curves\n * with. Carbon's sets read the renderer's clock; the GPU-free runtime\n * threads it through the manager the sets already hold.\n */\n @impl.custom\n @impl.reason(\"Non-Carbon seam: the packed sets need the frame time for curve sampling and the manager is the one object every GetLights implementation already receives.\")\n GetAnimationTime()\n {\n return this.#animationTime;\n }\n\n /** Sets the frame clock GetAnimationTime reports. */\n @impl.custom\n @impl.reason(\"Setter half of the non-Carbon frame-clock seam.\")\n SetAnimationTime(seconds)\n {\n this.#animationTime = Number(seconds) || 0;\n }\n\n /** The packed PerLightData bytes for the AL to upload, borrowed (contract layout, 3 RGBA32 texels per light). */\n @impl.custom\n @impl.reason(\"AL seam: Trinity owns the packed description bytes; the AL realizes LightBuffer from this view (precedent: Tr2DataTextureManager.GetPackedBlocks).\")\n GetLightBufferData()\n {\n return this.#packed.subarray(0, this.#packedCount * FLOATS_PER_LIGHT);\n }\n\n /** The number of packed lights in GetLightBufferData. */\n @impl.custom\n @impl.reason(\"AL seam companion to GetLightBufferData.\")\n GetLightCount()\n {\n return this.#packedCount;\n }\n\n /** Monotonic revision of the packed data, bumped by ResolveLightData, so the AL can skip unchanged re-uploads. */\n @impl.custom\n @impl.reason(\"Non-Carbon extension: cheaper than the AL diffing a typed array; Carbon re-uploads unconditionally.\")\n GetDataRevision()\n {\n return this.#revision;\n }\n\n /** Frustum cull + pixel-size cutoff, returning the fade-band dimming factor (0 = rejected). Cull applies only when a frustum was set. */\n #CullAndDim(position, radius)\n {\n if (!this.#frustum) return 1;\n if (!this.#frustum.IsSphereVisible(position, radius)) return 0;\n const size = this.#frustum.GetPixelSizeAccross(position, radius);\n if (!(size > this.#adjustedCutoff)) return 0;\n // Contract §\"Colour carries the radius\": the fade band sits ABOVE the\n // cutoff - absent at the cutoff, full brightness FADE_SIZE above it.\n return Math.min((size - this.#adjustedCutoff) / FADE_SIZE, 1);\n }\n\n /**\n * Returns the light's projected pixel size, or its radius when no frustum is\n * set.\n */\n #ScreenSize(record)\n {\n if (!this.#frustum) return record.radius;\n return this.#frustum.GetPixelSizeAccross(record.position, record.radius);\n }\n\n /**\n * The slice a profile occupies, +1 biased so 0 means \"no profile\"\n * (Tr2Light.cpp:137: `m_lightProfile ? GetTextureIndex() + 1 : 0`).\n *\n * The index comes from the RESOURCE (`GetTextureIndex`, the texture-array\n * slice - stable, shared across managers, reused after release), never\n * from an invented per-manager counter: Carbon assigns slices through the\n * process-wide light profile array (cpp:682-686), and a manager-local\n * numbering diverges from what the shader samples the moment two managers\n * or a released slot exist. A profile carrying a baked payload but no\n * slice yet is registered here - Carbon does this in the resource's\n * DoPrepare (Tr2LightProfileRes.cpp:95-99), which the layering forbids\n * (resource cannot import trinity), so the manager performs it at the\n * first pack instead; same array, same first-fit slot, one seam later.\n * The first-sight map remains only for foreign profile objects that\n * expose no GetTextureIndex.\n */\n #ProfileSlot(profile)\n {\n if (!profile) return 0;\n if (typeof profile.GetTextureIndex === \"function\")\n {\n let index = profile.GetTextureIndex();\n if (index < 0 && typeof profile.RegisterProfileElement === \"function\")\n {\n const payload = typeof profile.GetPayload === \"function\" ? profile.GetPayload() : null;\n if (payload && payload.samples)\n {\n const element = Tr2LightManager.getLightProfileArray().AddElement(payload);\n if (element.IsValid())\n {\n profile.RegisterProfileElement(element);\n index = element.GetElementIndex();\n }\n }\n }\n return index >= 0 ? index + 1 : 0;\n }\n let slot = this.#profileSlots.get(profile);\n if (slot === undefined)\n {\n slot = this.#profileSlots.size;\n this.#profileSlots.set(profile, slot);\n }\n return slot + 1;\n }\n\n /**\n * The process-wide light profile array (Tr2LightManager.cpp:682-686).\n *\n * Carbon's is a function-local static that deliberately survives manager\n * destruction (ResetVariableStore re-registers the SAME live array,\n * cpp:186) - so under instance-per-scene managers this stays a class\n * static: two scenes share slices, and a profile's texture index means\n * the same thing everywhere. Realizing it as a GPU texture array is the\n * abstraction layer's job; consumers poll GetRevision or subscribe via\n * OnTextureChange.\n *\n * @returns {Tr2TextureArray} The shared profile array.\n */\n static getLightProfileArray()\n {\n if (!Tr2LightManager.#lightProfileArray)\n {\n Tr2LightManager.#lightProfileArray = new Tr2TextureArray();\n }\n return Tr2LightManager.#lightProfileArray;\n }\n\n static #lightProfileArray = null;\n\n /** Packs #records into the 48-byte-per-light buffer per the contract layout. */\n #Pack()\n {\n const count = Math.min(this.#records.length, LIGHT_BUFFER_SIZE);\n for (let i = 0; i < count; i++)\n {\n const record = this.#records[i];\n const f = i * FLOATS_PER_LIGHT;\n\n // Texel 0: position + radius, four f32.\n this.#packed[f] = record.position[0];\n this.#packed[f + 1] = record.position[1];\n this.#packed[f + 2] = record.position[2];\n this.#packed[f + 3] = record.radius;\n\n // Texel 1: colour (premultiplied at Add time) + the packed word -\n // innerRadius f16 low, flags u16 high with the biased profile slot in\n // bits 4-15 (contract §\"The packed flag word\").\n this.#packed[f + 4] = record.color[0];\n this.#packed[f + 5] = record.color[1];\n this.#packed[f + 6] = record.color[2];\n const flagsWord = (record.flags & 0xF) | (this.#ProfileSlot(record.lightProfile) << 4);\n this.#packedBits[f + 7] = toHalf(record.innerRadius) | ((flagsWord & 0xFFFF) << 16);\n\n // Texel 2: direction as three f16, projectionPlaneDistance, the two\n // angles, then the shadow union (h:70-84, MSVC low-bit-first layout:\n // bits 0-1 padding, 2-11 scale, 12-21 offsetX, 22-31 offsetY; the\n // raytraced mask shares the word - the paths are exclusive by\n // quality). All zeros under the shipping pin, exactly as before.\n this.#packedBits[f + 8] = toHalf(record.direction[0]) | (toHalf(record.direction[1]) << 16);\n this.#packedBits[f + 9] = toHalf(record.direction[2]) | (toHalf(record.projectionPlaneDistance) << 16);\n this.#packedBits[f + 10] = toHalf(record.outerAngle) | (toHalf(record.innerAngle) << 16);\n this.#packedBits[f + 11] = this.#currentSpaceSceneShadowQuality === ShadowQuality.SHADOW_RAYTRACED\n ? (record.raytracingShadowMask ?? 0) & 0xFFFF\n : (((record.shadowMapScale ?? 0) & 0x3FF) << 2)\n | (((record.shadowMapOffsetX ?? 0) & 0x3FF) << 12)\n | (((record.shadowMapOffsetY ?? 0) & 0x3FF) << 22);\n }\n this.#packedCount = count;\n }\n}\n"],"names":["LIGHT_BUFFER_SIZE","CUTOFF_PIXEL_SIZE","FADE_SIZE","MAX_NUM_VOLUMETRIC_LIGHTS","MAX_NUM_SHADOWCASTING_LIGHTS","HIGH_QUALITY_ATLAS_SIZE_LOG2","HIGH_QUALITY_ATLAS_ENTRY_MAX_SIZE","INFINITE_SIZE_CLAMP","FLOATS_PER_LIGHT","align","value","alignment","calculateShadowMapAtlasSettings","shadowQuality","settings","actualTextureSize","sizeLog2","size","entryMinSizeLog2","entryMinSize","entryInverseScaleFactorLog2","entryMaxSize","ShadowQuality","SHADOW_DISABLED","SHADOW_RAYTRACED","SHADOW_LOW","SHADOW_HIGH","toHalf","num","toHalfFloat","_Tr2LightManager","_identity","Tr2LightManager","CjsModel","e","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","reason","custom","atlasSettings","atlasNodes","qualityUsedByAtlas","Map","Float32Array","Uint32Array","buffer","areLightFlagsValid","flags","Flags","AFFECTS_SURFACES","AFFECTS_PARTICLES","SetShadowQuality","quality","frameCounter","Number","useDynamicLightsShadows","clamped","Math","min","GetShadowMapAtlasSettings","GetUnpackedShadowMapData","record","out","shift","shadowMapScale","shadowMapOffsetX","shadowMapOffsetY","Clear","_renderContext","length","SetFrustum","frustum","AdjustLightCutoff","lodFactor","AddPointLight","position","radius","color","innerRadius","DEFAULT","brightness","max","dimming","scale","push","owner","lightData","lightProfile","lightType","vec3","fromValues","direction","outerAngle","innerAngle","projectionPlaneDistance","AddLight","usingShadowMap","CASTS_SHADOWS","ResolveLightData","volumetric","i","IS_VOLUMETRIC","sort","a","b","#ResolveShadowCasters","lightTuples","sizeAcross","GetPixelSizeAccrossEst","isFinite","lightIndex","raytraced","numShadowCastingLights","raytracingShadowMask","#CreateShadowMapAtlas","entry","x","y","everythingFit","j","children","width","height","#GetShadowMapAtlasEntry","nodeId","#InsertAtlasNode","node","newNode","child0","child1","deltaWidth","deltaHeight","GetCurrentSpaceSceneShadowQuality","GetLightData","GetVolumetricLights","GetShadowCastingLights","GetAnimationTime","SetAnimationTime","seconds","GetLightBufferData","subarray","GetLightCount","GetDataRevision","#CullAndDim","IsSphereVisible","GetPixelSizeAccross","#ScreenSize","#ProfileSlot","profile","GetTextureIndex","index","RegisterProfileElement","payload","GetPayload","samples","element","getLightProfileArray","AddElement","IsValid","GetElementIndex","slot","get","undefined","set","Tr2TextureArray","#Pack","count","f","flagsWord","Object","freeze","LIGHT_BUFFER_NAME","LIGHT_INDEX_BUFFER_NAME","constructor"],"mappings":"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"}
|
package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js}
RENAMED
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { type, CjsSchema, impl } from '#schema';
|
|
1
|
+
import '#math/vec3';
|
|
2
|
+
import '#model';
|
|
3
|
+
import { CjsSchema, impl } from '#schema';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
// Source: trinity/trinity/Tr2ImpostorManager.h
|
|
7
6
|
const ITR2_IMPOSTOR_SOURCE = Symbol.for("carbonenginejs.contract.ITr2ImpostorSource");
|
|
8
7
|
|
|
9
|
-
/**
|
|
10
|
-
let _ITr2ImpostorSourceIm;
|
|
11
|
-
class ITr2ImpostorSourceImpostorHash extends CjsModel {
|
|
12
|
-
static {
|
|
13
|
-
({
|
|
14
|
-
e: [_init_viewDir, _init_extra_viewDir, _init_upDir, _init_extra_upDir],
|
|
15
|
-
c: [_ITr2ImpostorSourceIm, _initClass]
|
|
16
|
-
} = _applyDecs2311(this, [type.define({
|
|
17
|
-
className: "ITr2ImpostorSourceImpostorHash",
|
|
18
|
-
family: "trinityCore"
|
|
19
|
-
})], [[[type, type.vec3], 16, "viewDir"], [[type, type.vec3], 16, "upDir"]], 0, void 0, CjsModel));
|
|
20
|
-
}
|
|
21
|
-
constructor(...args) {
|
|
22
|
-
super(...args);
|
|
23
|
-
_init_extra_upDir(this);
|
|
24
|
-
}
|
|
25
|
-
viewDir = _init_viewDir(this, vec3.create());
|
|
26
|
-
upDir = (_init_extra_viewDir(this), _init_upDir(this, vec3.create()));
|
|
27
|
-
static {
|
|
28
|
-
_initClass();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
8
|
+
/** Contract for an object that can be captured into an impostor atlas. */
|
|
31
9
|
class ITr2ImpostorSource {
|
|
32
10
|
static [Symbol.hasInstance](value) {
|
|
33
11
|
return value !== null && value !== undefined && value[ITR2_IMPOSTOR_SOURCE] === true;
|
|
@@ -96,5 +74,5 @@ function withITr2ImpostorSource(Base) {
|
|
|
96
74
|
return Provider;
|
|
97
75
|
}
|
|
98
76
|
|
|
99
|
-
export { ITr2ImpostorSource,
|
|
77
|
+
export { ITr2ImpostorSource, withITr2ImpostorSource };
|
|
100
78
|
//# sourceMappingURL=ITr2ImpostorSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITr2ImpostorSource.js","sources":["../../../../../../src/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js"],"sourcesContent":["// Source: trinity/trinity/Tr2ImpostorManager.h\nimport { vec3 } from \"#math/vec3\";\nimport { CjsModel } from \"#model\";\nimport { CjsSchema, impl, type } from \"#schema\";\n\n\nconst ITR2_IMPOSTOR_SOURCE = Symbol.for(\"carbonenginejs.contract.ITr2ImpostorSource\");\n\n\n/** Contract for an object that can be captured into an impostor atlas. */\nexport class ITr2ImpostorSource\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_IMPOSTOR_SOURCE] === true;\n }\n\n /** Writes the source's current local-to-world transform into `out`. */\n GetLocalToWorldTransform(_out)\n {\n throw new Error(\"ITr2ImpostorSource.GetLocalToWorldTransform must be implemented by an impostor source.\");\n }\n\n /** Collects the batches used to capture this source into an impostor. */\n GetImpostorBatches(_frustum, _batches)\n {\n throw new Error(\"ITr2ImpostorSource.GetImpostorBatches must be implemented by an impostor source.\");\n }\n\n /** Scores how urgently a changed view hash should be recaptured. */\n GetRenderPriority(_oldHash, _newHash)\n {\n throw new Error(\"ITr2ImpostorSource.GetRenderPriority must be implemented by an impostor source.\");\n }\n\n /** Writes the source's current impostor bounding sphere into `out`. */\n GetImpostorBoundingSphere(_out)\n {\n throw new Error(\"ITr2ImpostorSource.GetImpostorBoundingSphere must be implemented by an impostor source.\");\n }\n\n /** Writes the bounding sphere used for the previous impostor capture. */\n GetLastImpostorBoundingSphere(_out)\n {\n throw new Error(\"ITr2ImpostorSource.GetLastImpostorBoundingSphere must be implemented by an impostor source.\");\n }\n}\n\nObject.defineProperty(ITr2ImpostorSource.prototype, ITR2_IMPOSTOR_SOURCE, { value: true });\nfor (const method of [\n \"GetLocalToWorldTransform\",\n \"GetImpostorBatches\",\n \"GetRenderPriority\",\n \"GetImpostorBoundingSphere\",\n \"GetLastImpostorBoundingSphere\"\n])\n{\n CjsSchema.decorateMethod(ITr2ImpostorSource, method, impl.abstract);\n}\nCjsSchema.define(ITr2ImpostorSource, { className: \"ITr2ImpostorSource\" });\n\n\n/** Adds the ITr2ImpostorSource contract without replacing an existing base. */\nexport function withITr2ImpostorSource(Base)\n{\n const Provider = class extends Base\n {\n GetLocalToWorldTransform(out)\n {\n return ITr2ImpostorSource.prototype.GetLocalToWorldTransform.call(this, out);\n }\n\n GetImpostorBatches(frustum, batches)\n {\n return ITr2ImpostorSource.prototype.GetImpostorBatches.call(this, frustum, batches);\n }\n\n GetRenderPriority(oldHash, newHash)\n {\n return ITr2ImpostorSource.prototype.GetRenderPriority.call(this, oldHash, newHash);\n }\n\n GetImpostorBoundingSphere(out)\n {\n return ITr2ImpostorSource.prototype.GetImpostorBoundingSphere.call(this, out);\n }\n\n GetLastImpostorBoundingSphere(out)\n {\n return ITr2ImpostorSource.prototype.GetLastImpostorBoundingSphere.call(this, out);\n }\n };\n\n Object.defineProperty(Provider.prototype, ITR2_IMPOSTOR_SOURCE, { value: true });\n for (const method of [\n \"GetLocalToWorldTransform\",\n \"GetImpostorBatches\",\n \"GetRenderPriority\",\n \"GetImpostorBoundingSphere\",\n \"GetLastImpostorBoundingSphere\"\n ])\n {\n CjsSchema.decorateMethod(Provider, method, impl.abstract);\n }\n return Provider;\n}\n"],"names":["ITR2_IMPOSTOR_SOURCE","Symbol","for","ITr2ImpostorSource","hasInstance","value","undefined","GetLocalToWorldTransform","_out","Error","GetImpostorBatches","_frustum","_batches","GetRenderPriority","_oldHash","_newHash","GetImpostorBoundingSphere","GetLastImpostorBoundingSphere","Object","defineProperty","prototype","method","CjsSchema","decorateMethod","impl","abstract","define","className","withITr2ImpostorSource","Base","Provider","out","call","frustum","batches","oldHash","newHash"],"mappings":";;;;AAAA;AAMA,MAAMA,oBAAoB,GAAGC,MAAM,CAACC,GAAG,CAAC,4CAA4C,CAAC;;AAGrF;AACO,MAAMC,kBAAkB,CAC/B;AACE,EAAA,QAAQF,MAAM,CAACG,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACL,oBAAoB,CAAC,KAAK,IAAI;AACtF,EAAA;;AAEA;EACAO,wBAAwBA,CAACC,IAAI,EAC7B;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,wFAAwF,CAAC;AAC3G,EAAA;;AAEA;AACAC,EAAAA,kBAAkBA,CAACC,QAAQ,EAAEC,QAAQ,EACrC;AACE,IAAA,MAAM,IAAIH,KAAK,CAAC,kFAAkF,CAAC;AACrG,EAAA;;AAEA;AACAI,EAAAA,iBAAiBA,CAACC,QAAQ,EAAEC,QAAQ,EACpC;AACE,IAAA,MAAM,IAAIN,KAAK,CAAC,iFAAiF,CAAC;AACpG,EAAA;;AAEA;EACAO,yBAAyBA,CAACR,IAAI,EAC9B;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,yFAAyF,CAAC;AAC5G,EAAA;;AAEA;EACAQ,6BAA6BA,CAACT,IAAI,EAClC;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,6FAA6F,CAAC;AAChH,EAAA;AACF;AAEAS,MAAM,CAACC,cAAc,CAAChB,kBAAkB,CAACiB,SAAS,EAAEpB,oBAAoB,EAAE;AAAEK,EAAAA,KAAK,EAAE;AAAK,CAAC,CAAC;AAC1F,KAAK,MAAMgB,MAAM,IAAI,CACnB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,+BAA+B,CAChC,EACD;EACEC,SAAS,CAACC,cAAc,CAACpB,kBAAkB,EAAEkB,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AACrE;AACAH,SAAS,CAACI,MAAM,CAACvB,kBAAkB,EAAE;AAAEwB,EAAAA,SAAS,EAAE;AAAqB,CAAC,CAAC;;AAGzE;AACO,SAASC,sBAAsBA,CAACC,IAAI,EAC3C;AACE,EAAA,MAAMC,QAAQ,GAAG,cAAcD,IAAI,CACnC;IACEtB,wBAAwBA,CAACwB,GAAG,EAC5B;MACE,OAAO5B,kBAAkB,CAACiB,SAAS,CAACb,wBAAwB,CAACyB,IAAI,CAAC,IAAI,EAAED,GAAG,CAAC;AAC9E,IAAA;AAEArB,IAAAA,kBAAkBA,CAACuB,OAAO,EAAEC,OAAO,EACnC;AACE,MAAA,OAAO/B,kBAAkB,CAACiB,SAAS,CAACV,kBAAkB,CAACsB,IAAI,CAAC,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;AACrF,IAAA;AAEArB,IAAAA,iBAAiBA,CAACsB,OAAO,EAAEC,OAAO,EAClC;AACE,MAAA,OAAOjC,kBAAkB,CAACiB,SAAS,CAACP,iBAAiB,CAACmB,IAAI,CAAC,IAAI,EAAEG,OAAO,EAAEC,OAAO,CAAC;AACpF,IAAA;IAEApB,yBAAyBA,CAACe,GAAG,EAC7B;MACE,OAAO5B,kBAAkB,CAACiB,SAAS,CAACJ,yBAAyB,CAACgB,IAAI,CAAC,IAAI,EAAED,GAAG,CAAC;AAC/E,IAAA;IAEAd,6BAA6BA,CAACc,GAAG,EACjC;MACE,OAAO5B,kBAAkB,CAACiB,SAAS,CAACH,6BAA6B,CAACe,IAAI,CAAC,IAAI,EAAED,GAAG,CAAC;AACnF,IAAA;GACD;EAEDb,MAAM,CAACC,cAAc,CAACW,QAAQ,CAACV,SAAS,EAAEpB,oBAAoB,EAAE;AAAEK,IAAAA,KAAK,EAAE;AAAK,GAAC,CAAC;AAChF,EAAA,KAAK,MAAMgB,MAAM,IAAI,CACnB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,+BAA+B,CAChC,EACD;IACEC,SAAS,CAACC,cAAc,CAACO,QAAQ,EAAET,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AAC3D,EAAA;AACA,EAAA,OAAOK,QAAQ;AACjB;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { vec3 } from '#math/vec3';
|
|
3
|
+
import { CjsModel } from '#model';
|
|
4
|
+
import { type } from '#schema';
|
|
5
|
+
|
|
6
|
+
let _initClass, _init_viewDir, _init_extra_viewDir, _init_upDir, _init_extra_upDir;
|
|
7
|
+
|
|
8
|
+
/** Camera directions used to decide when an impostor must be recaptured. */
|
|
9
|
+
let _ITr2ImpostorSourceIm;
|
|
10
|
+
class ITr2ImpostorSourceImpostorHash extends CjsModel {
|
|
11
|
+
static {
|
|
12
|
+
({
|
|
13
|
+
e: [_init_viewDir, _init_extra_viewDir, _init_upDir, _init_extra_upDir],
|
|
14
|
+
c: [_ITr2ImpostorSourceIm, _initClass]
|
|
15
|
+
} = _applyDecs2311(this, [type.define({
|
|
16
|
+
className: "ITr2ImpostorSourceImpostorHash",
|
|
17
|
+
family: "trinityCore"
|
|
18
|
+
})], [[[type, type.vec3], 16, "viewDir"], [[type, type.vec3], 16, "upDir"]], 0, void 0, CjsModel));
|
|
19
|
+
}
|
|
20
|
+
constructor(...args) {
|
|
21
|
+
super(...args);
|
|
22
|
+
_init_extra_upDir(this);
|
|
23
|
+
}
|
|
24
|
+
viewDir = _init_viewDir(this, vec3.create());
|
|
25
|
+
upDir = (_init_extra_viewDir(this), _init_upDir(this, vec3.create()));
|
|
26
|
+
static {
|
|
27
|
+
_initClass();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { _ITr2ImpostorSourceIm as ITr2ImpostorSourceImpostorHash };
|
|
32
|
+
//# sourceMappingURL=ITr2ImpostorSourceImpostorHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITr2ImpostorSourceImpostorHash.js","sources":["../../../../../../src/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js"],"sourcesContent":["// Source: trinity/trinity/Tr2ImpostorManager.h\nimport { vec3 } from \"#math/vec3\";\nimport { CjsModel } from \"#model\";\nimport { type } from \"#schema\";\n\n/** Camera directions used to decide when an impostor must be recaptured. */\n@type.define({ className: \"ITr2ImpostorSourceImpostorHash\", family: \"trinityCore\" })\nexport class ITr2ImpostorSourceImpostorHash extends CjsModel\n{\n @type.vec3\n viewDir = vec3.create();\n\n @type.vec3\n upDir = vec3.create();\n}\n"],"names":["_ITr2ImpostorSourceIm","ITr2ImpostorSourceImpostorHash","CjsModel","e","_init_viewDir","_init_extra_viewDir","_init_upDir","_init_extra_upDir","c","_initClass","_applyDecs","type","define","className","family","vec3","constructor","args","viewDir","create","upDir"],"mappings":";;;;;;;AAKA;AAAA,IAAAA;AACA,MAAAC,8BAAA,SACoDC,QAAQ,CAC5D;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,aAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,iBAAA,CAAA;MAAAC,CAAA,EAAA,CAAAR,qBAAA,EAAAS,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,gCAAgC;AAAEC,MAAAA,MAAM,EAAE;AAAc,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAGjFH,IAAI,EAAJA,IAAI,CAACI,IAAI,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAGTJ,IAAI,EAAJA,IAAI,CAACI,IAAI,6BALwCb,QAAQ,CAAA;AAAA;AAAAc,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAV,iBAAA,CAAA,IAAA,CAAA;AAAA,EAAA;AAG1DW,EAAAA,OAAO,GAAAd,aAAA,CAAA,IAAA,EAAGW,IAAI,CAACI,MAAM,EAAE,CAAA;EAGvBC,KAAK,IAAAf,mBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGS,IAAI,CAACI,MAAM,EAAE,CAAA;AAAC,EAAA;IAAAV,UAAA,EAAA;AAAA;AACxB;;;;"}
|
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { type, CjsSchema, impl } from '#schema';
|
|
1
|
+
import '#model';
|
|
2
|
+
import { CjsSchema, impl } from '#schema';
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
// Source: trinity/trinity/Include/ITr2InstanceData.h
|
|
6
5
|
const ITR2_INSTANCE_DATA = Symbol.for("carbonenginejs.contract.ITr2InstanceData");
|
|
7
6
|
|
|
8
|
-
/**
|
|
9
|
-
let _ITr2InstanceDataInst;
|
|
10
|
-
class ITr2InstanceDataInstanceData extends CjsModel {
|
|
11
|
-
static {
|
|
12
|
-
({
|
|
13
|
-
e: [_init_buffer, _init_extra_buffer, _init_offset, _init_extra_offset, _init_stride, _init_extra_stride, _init_count, _init_extra_count],
|
|
14
|
-
c: [_ITr2InstanceDataInst, _initClass]
|
|
15
|
-
} = _applyDecs2311(this, [type.define({
|
|
16
|
-
className: "ITr2InstanceDataInstanceData",
|
|
17
|
-
family: "trinityCore"
|
|
18
|
-
})], [[type.rawStruct("Tr2BufferAL"), 0, "buffer"], [[type, type.uint32], 16, "offset"], [[type, type.uint32], 16, "stride"], [[type, type.uint32], 16, "count"]], 0, void 0, CjsModel));
|
|
19
|
-
}
|
|
20
|
-
constructor(...args) {
|
|
21
|
-
super(...args);
|
|
22
|
-
_init_extra_count(this);
|
|
23
|
-
}
|
|
24
|
-
buffer = _init_buffer(this, null);
|
|
25
|
-
offset = (_init_extra_buffer(this), _init_offset(this, 0));
|
|
26
|
-
stride = (_init_extra_offset(this), _init_stride(this, 0));
|
|
27
|
-
count = (_init_extra_stride(this), _init_count(this, 0));
|
|
28
|
-
static {
|
|
29
|
-
_initClass();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
7
|
+
/** Contract for a provider of instance-stream data and layout metadata. */
|
|
32
8
|
class ITr2InstanceData {
|
|
33
9
|
static [Symbol.hasInstance](value) {
|
|
34
10
|
return value !== null && value !== undefined && value[ITR2_INSTANCE_DATA] === true;
|
|
@@ -89,5 +65,5 @@ function withITr2InstanceData(Base) {
|
|
|
89
65
|
return Provider;
|
|
90
66
|
}
|
|
91
67
|
|
|
92
|
-
export { ITr2InstanceData,
|
|
68
|
+
export { ITr2InstanceData, withITr2InstanceData };
|
|
93
69
|
//# sourceMappingURL=ITr2InstanceData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITr2InstanceData.js","sources":["../../../../../../src/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js"],"sourcesContent":["// Source: trinity/trinity/Include/ITr2InstanceData.h\nimport { CjsModel } from \"#model\";\nimport { CjsSchema, impl, type } from \"#schema\";\n\n\nconst ITR2_INSTANCE_DATA = Symbol.for(\"carbonenginejs.contract.ITr2InstanceData\");\n\n\n/** Contract for a provider of instance-stream data and layout metadata. */\nexport class ITr2InstanceData\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_INSTANCE_DATA] === true;\n }\n\n /** Whether the provider's instance stream is ready for batch collection. */\n IsInstanceDataReady()\n {\n throw new Error(\"ITr2InstanceData.IsInstanceDataReady must be implemented by an instance-data provider.\");\n }\n\n /** Returns one realized instance-buffer slice for a screen-size selection. */\n GetInstanceData(_bufferIndex, _screenSize)\n {\n throw new Error(\"ITr2InstanceData.GetInstanceData must be implemented by an instance-data provider.\");\n }\n\n /** Returns the vertex declaration for one instance buffer. */\n GetInstanceBufferVertexDeclaration(_bufferIndex)\n {\n throw new Error(\"ITr2InstanceData.GetInstanceBufferVertexDeclaration must be implemented by an instance-data provider.\");\n }\n\n /** Returns the local bounding box represented by one instance buffer. */\n GetInstanceBufferBoundingBox(_bufferIndex)\n {\n throw new Error(\"ITr2InstanceData.GetInstanceBufferBoundingBox must be implemented by an instance-data provider.\");\n }\n}\n\nObject.defineProperty(ITr2InstanceData.prototype, ITR2_INSTANCE_DATA, { value: true });\nfor (const method of [\n \"IsInstanceDataReady\",\n \"GetInstanceData\",\n \"GetInstanceBufferVertexDeclaration\",\n \"GetInstanceBufferBoundingBox\"\n])\n{\n CjsSchema.decorateMethod(ITr2InstanceData, method, impl.abstract);\n}\nCjsSchema.define(ITr2InstanceData, { className: \"ITr2InstanceData\" });\n\n\n/** Adds the ITr2InstanceData contract without replacing an existing base. */\nexport function withITr2InstanceData(Base)\n{\n const Provider = class extends Base\n {\n IsInstanceDataReady()\n {\n return ITr2InstanceData.prototype.IsInstanceDataReady.call(this);\n }\n\n GetInstanceData(bufferIndex, screenSize)\n {\n return ITr2InstanceData.prototype.GetInstanceData.call(this, bufferIndex, screenSize);\n }\n\n GetInstanceBufferVertexDeclaration(bufferIndex)\n {\n return ITr2InstanceData.prototype.GetInstanceBufferVertexDeclaration.call(this, bufferIndex);\n }\n\n GetInstanceBufferBoundingBox(bufferIndex)\n {\n return ITr2InstanceData.prototype.GetInstanceBufferBoundingBox.call(this, bufferIndex);\n }\n };\n\n Object.defineProperty(Provider.prototype, ITR2_INSTANCE_DATA, { value: true });\n for (const method of [\n \"IsInstanceDataReady\",\n \"GetInstanceData\",\n \"GetInstanceBufferVertexDeclaration\",\n \"GetInstanceBufferBoundingBox\"\n ])\n {\n CjsSchema.decorateMethod(Provider, method, impl.abstract);\n }\n return Provider;\n}\n"],"names":["ITR2_INSTANCE_DATA","Symbol","for","ITr2InstanceData","hasInstance","value","undefined","IsInstanceDataReady","Error","GetInstanceData","_bufferIndex","_screenSize","GetInstanceBufferVertexDeclaration","GetInstanceBufferBoundingBox","Object","defineProperty","prototype","method","CjsSchema","decorateMethod","impl","abstract","define","className","withITr2InstanceData","Base","Provider","call","bufferIndex","screenSize"],"mappings":";;;AAAA;AAKA,MAAMA,kBAAkB,GAAGC,MAAM,CAACC,GAAG,CAAC,0CAA0C,CAAC;;AAGjF;AACO,MAAMC,gBAAgB,CAC7B;AACE,EAAA,QAAQF,MAAM,CAACG,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACL,kBAAkB,CAAC,KAAK,IAAI;AACpF,EAAA;;AAEA;AACAO,EAAAA,mBAAmBA,GACnB;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,wFAAwF,CAAC;AAC3G,EAAA;;AAEA;AACAC,EAAAA,eAAeA,CAACC,YAAY,EAAEC,WAAW,EACzC;AACE,IAAA,MAAM,IAAIH,KAAK,CAAC,oFAAoF,CAAC;AACvG,EAAA;;AAEA;EACAI,kCAAkCA,CAACF,YAAY,EAC/C;AACE,IAAA,MAAM,IAAIF,KAAK,CAAC,uGAAuG,CAAC;AAC1H,EAAA;;AAEA;EACAK,4BAA4BA,CAACH,YAAY,EACzC;AACE,IAAA,MAAM,IAAIF,KAAK,CAAC,iGAAiG,CAAC;AACpH,EAAA;AACF;AAEAM,MAAM,CAACC,cAAc,CAACZ,gBAAgB,CAACa,SAAS,EAAEhB,kBAAkB,EAAE;AAAEK,EAAAA,KAAK,EAAE;AAAK,CAAC,CAAC;AACtF,KAAK,MAAMY,MAAM,IAAI,CACnB,qBAAqB,EACrB,iBAAiB,EACjB,oCAAoC,EACpC,8BAA8B,CAC/B,EACD;EACEC,SAAS,CAACC,cAAc,CAAChB,gBAAgB,EAAEc,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AACnE;AACAH,SAAS,CAACI,MAAM,CAACnB,gBAAgB,EAAE;AAAEoB,EAAAA,SAAS,EAAE;AAAmB,CAAC,CAAC;;AAGrE;AACO,SAASC,oBAAoBA,CAACC,IAAI,EACzC;AACE,EAAA,MAAMC,QAAQ,GAAG,cAAcD,IAAI,CACnC;AACElB,IAAAA,mBAAmBA,GACnB;MACE,OAAOJ,gBAAgB,CAACa,SAAS,CAACT,mBAAmB,CAACoB,IAAI,CAAC,IAAI,CAAC;AAClE,IAAA;AAEAlB,IAAAA,eAAeA,CAACmB,WAAW,EAAEC,UAAU,EACvC;AACE,MAAA,OAAO1B,gBAAgB,CAACa,SAAS,CAACP,eAAe,CAACkB,IAAI,CAAC,IAAI,EAAEC,WAAW,EAAEC,UAAU,CAAC;AACvF,IAAA;IAEAjB,kCAAkCA,CAACgB,WAAW,EAC9C;MACE,OAAOzB,gBAAgB,CAACa,SAAS,CAACJ,kCAAkC,CAACe,IAAI,CAAC,IAAI,EAAEC,WAAW,CAAC;AAC9F,IAAA;IAEAf,4BAA4BA,CAACe,WAAW,EACxC;MACE,OAAOzB,gBAAgB,CAACa,SAAS,CAACH,4BAA4B,CAACc,IAAI,CAAC,IAAI,EAAEC,WAAW,CAAC;AACxF,IAAA;GACD;EAEDd,MAAM,CAACC,cAAc,CAACW,QAAQ,CAACV,SAAS,EAAEhB,kBAAkB,EAAE;AAAEK,IAAAA,KAAK,EAAE;AAAK,GAAC,CAAC;AAC9E,EAAA,KAAK,MAAMY,MAAM,IAAI,CACnB,qBAAqB,EACrB,iBAAiB,EACjB,oCAAoC,EACpC,8BAA8B,CAC/B,EACD;IACEC,SAAS,CAACC,cAAc,CAACO,QAAQ,EAAET,MAAM,EAAEG,IAAI,CAACC,QAAQ,CAAC;AAC3D,EAAA;AACA,EAAA,OAAOK,QAAQ;AACjB;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { CjsModel } from '#model';
|
|
3
|
+
import { type } from '#schema';
|
|
4
|
+
|
|
5
|
+
let _initClass, _init_buffer, _init_extra_buffer, _init_offset, _init_extra_offset, _init_stride, _init_extra_stride, _init_count, _init_extra_count;
|
|
6
|
+
|
|
7
|
+
/** One realized instance-buffer slice returned by an ITr2InstanceData provider. */
|
|
8
|
+
let _ITr2InstanceDataInst;
|
|
9
|
+
class ITr2InstanceDataInstanceData extends CjsModel {
|
|
10
|
+
static {
|
|
11
|
+
({
|
|
12
|
+
e: [_init_buffer, _init_extra_buffer, _init_offset, _init_extra_offset, _init_stride, _init_extra_stride, _init_count, _init_extra_count],
|
|
13
|
+
c: [_ITr2InstanceDataInst, _initClass]
|
|
14
|
+
} = _applyDecs2311(this, [type.define({
|
|
15
|
+
className: "ITr2InstanceDataInstanceData",
|
|
16
|
+
family: "trinityCore"
|
|
17
|
+
})], [[type.rawStruct("Tr2BufferAL"), 0, "buffer"], [[type, type.uint32], 16, "offset"], [[type, type.uint32], 16, "stride"], [[type, type.uint32], 16, "count"]], 0, void 0, CjsModel));
|
|
18
|
+
}
|
|
19
|
+
constructor(...args) {
|
|
20
|
+
super(...args);
|
|
21
|
+
_init_extra_count(this);
|
|
22
|
+
}
|
|
23
|
+
buffer = _init_buffer(this, null);
|
|
24
|
+
offset = (_init_extra_buffer(this), _init_offset(this, 0));
|
|
25
|
+
stride = (_init_extra_offset(this), _init_stride(this, 0));
|
|
26
|
+
count = (_init_extra_stride(this), _init_count(this, 0));
|
|
27
|
+
static {
|
|
28
|
+
_initClass();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { _ITr2InstanceDataInst as ITr2InstanceDataInstanceData };
|
|
33
|
+
//# sourceMappingURL=ITr2InstanceDataInstanceData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITr2InstanceDataInstanceData.js","sources":["../../../../../../src/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js"],"sourcesContent":["// Source: trinity/trinity/Include/ITr2InstanceData.h\nimport { CjsModel } from \"#model\";\nimport { type } from \"#schema\";\n\n/** One realized instance-buffer slice returned by an ITr2InstanceData provider. */\n@type.define({ className: \"ITr2InstanceDataInstanceData\", family: \"trinityCore\" })\nexport class ITr2InstanceDataInstanceData extends CjsModel\n{\n @type.rawStruct(\"Tr2BufferAL\")\n buffer = null;\n\n @type.uint32\n offset = 0;\n\n @type.uint32\n stride = 0;\n\n @type.uint32\n count = 0;\n}\n"],"names":["_ITr2InstanceDataInst","ITr2InstanceDataInstanceData","CjsModel","e","_init_buffer","_init_extra_buffer","_init_offset","_init_extra_offset","_init_stride","_init_extra_stride","_init_count","_init_extra_count","c","_initClass","_applyDecs","type","define","className","family","rawStruct","uint32","constructor","args","buffer","offset","stride","count"],"mappings":";;;;;;AAIA;AAAA,IAAAA;AACA,MAAAC,4BAAA,SACkDC,QAAQ,CAC1D;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,EAAA,CAAAC,YAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,WAAA,EAAAC,iBAAA,CAAA;MAAAC,CAAA,EAAA,CAAAZ,qBAAA,EAAAa,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,8BAA8B;AAAEC,MAAAA,MAAM,EAAE;KAAe,CAAC,CAAA,EAAA,CAAA,CAG/EH,IAAI,CAACI,SAAS,CAAC,aAAa,CAAC,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAG7BJ,IAAI,EAAJA,IAAI,CAACK,MAAM,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGXL,IAAI,EAAJA,IAAI,CAACK,MAAM,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGXL,IAAI,EAAJA,IAAI,CAACK,MAAM,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAXoClB,QAAQ,CAAA;AAAA;AAAAmB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAX,iBAAA,CAAA,IAAA,CAAA;AAAA,EAAA;EAGxDY,MAAM,GAAAnB,YAAA,CAAA,IAAA,EAAG,IAAI,CAAA;AAGboB,EAAAA,MAAM,IAAAnB,kBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;AAGVmB,EAAAA,MAAM,IAAAlB,kBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;AAGVkB,EAAAA,KAAK,IAAAjB,kBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,CAAC,CAAA;AAAC,EAAA;IAAAG,UAAA,EAAA;AAAA;AACZ;;;;"}
|
|
@@ -2,7 +2,8 @@ import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPlugin
|
|
|
2
2
|
import { vec3 } from '#math/vec3';
|
|
3
3
|
import { CjsModel } from '#model';
|
|
4
4
|
import { io, type, carbon, impl } from '#schema';
|
|
5
|
-
import
|
|
5
|
+
import './ITr2InstanceData/ITr2InstanceDataInstanceData.js';
|
|
6
|
+
import { withITr2InstanceData } from './ITr2InstanceData/ITr2InstanceData.js';
|
|
6
7
|
|
|
7
8
|
var _withITr2InstanceData;
|
|
8
9
|
let _initProto, _initClass, _init_aabbMax, _init_extra_aabbMax, _init_aabbMin, _init_extra_aabbMin, _init_count, _init_extra_count;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2DirectInstanceData.js","sources":["../../../../../src/trinity/core/mesh/Tr2DirectInstanceData.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DirectInstanceData.h\n// trinity/trinity/Tr2DirectInstanceData.cpp\n// trinity/trinity/Tr2DirectInstanceData_Blue.cpp\nimport { vec3 } from \"#math/vec3\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { withITr2InstanceData } from \"./ITr2InstanceData.js\";\n\n\n/**\n * Instance data whose buffer lives entirely on the GPU: Trinity keeps only the\n * CPU-side layout metadata, stride, instance count and bounds.\n */\n@type.define({ className: \"Tr2DirectInstanceData\", family: \"trinityCore\" })\nexport class Tr2DirectInstanceData extends withITr2InstanceData(CjsModel)\n{\n\n /** m_aabb.m_max (Vector3) [READ] */\n @io.read\n @type.vec3\n aabbMax = vec3.create();\n\n /** m_aabb.m_min (Vector3) [READ] */\n @io.read\n @type.vec3\n aabbMin = vec3.create();\n\n /** GetCount (MAP_PROPERTY_READONLY \"count\") - number of instances. */\n @io.read\n @type.uint32\n count = 0;\n\n /** m_layout (Tr2VertexDefinition) - CPU metadata for the direct GPU stream. */\n #layout = Object.freeze([]);\n\n #stride = 0;\n\n /**\n * Assigns the CPU-side instance bounds without realizing a GPU buffer.\n * Accepts the JavaScript `{ min, max }` box representation; a two-vector\n * form is retained for consistency with `Tr2RuntimeInstanceData`.\n */\n @carbon.method\n @impl.adapted\n SetBoundingBox(bounds, maxBounds)\n {\n const min = maxBounds === undefined ? bounds?.min ?? bounds?.minBounds : bounds;\n const max = maxBounds === undefined ? bounds?.max ?? bounds?.maxBounds : maxBounds;\n if (!min || !max)\n {\n throw new TypeError(\"Bounding box requires min and max vectors\");\n }\n vec3.copy(this.aabbMin, min);\n vec3.copy(this.aabbMax, max);\n }\n\n /** Number of instances in the GPU-side buffer. */\n @carbon.method\n @impl.implemented\n GetCount()\n {\n return this.count;\n }\n\n /**\n * Byte stride of one instance, computed by SetLayout as the largest offset\n * plus element size in the layout.\n */\n @carbon.method\n @impl.implemented\n GetStride()\n {\n return this.#stride;\n }\n\n /**\n * Records the CPU vertex-layout metadata. Carbon computes the stride as\n * max(offset + elementSize); the direct GPU buffer itself is realized by\n * the engine (GetData/UpdateData/DestroyData are engine-owned).\n */\n @carbon.method\n @impl.adapted\n SetLayout(layout)\n {\n if (!Array.isArray(layout))\n {\n throw new TypeError(\"Layout must be an array of element descriptors\");\n }\n let stride = 0;\n for (const element of layout)\n {\n const offset = Number(element?.offset) || 0;\n const byteSize = Number(element?.byteSize) || 0;\n stride = Math.max(stride, offset + byteSize);\n }\n this.#layout = layout.slice();\n this.#stride = stride;\n }\n\n /** The frozen element-descriptor list recorded by SetLayout. */\n @carbon.method\n @impl.implemented\n GetLayout()\n {\n return this.#layout;\n }\n\n /**\n * A detached copy of the recorded bounds; the buffer index is ignored because\n * only one stream is modelled.\n */\n @carbon.method\n @impl.implemented\n GetInstanceBufferBoundingBox(_bufferIndex = 0)\n {\n return {\n min: vec3.clone(this.aabbMin),\n max: vec3.clone(this.aabbMax)\n };\n }\n\n}\n"],"names":["_Tr2DirectInstanceDat","Tr2DirectInstanceData","_withITr2InstanceData","withITr2InstanceData","CjsModel","e","_init_aabbMax","_init_extra_aabbMax","_init_aabbMin","_init_extra_aabbMin","_init_count","_init_extra_count","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","vec3","uint32","carbon","method","impl","adapted","implemented","aabbMax","create","aabbMin","count","Object","freeze","SetBoundingBox","bounds","maxBounds","min","undefined","minBounds","max","TypeError","copy","GetCount","GetStride","SetLayout","layout","Array","isArray","stride","element","offset","Number","byteSize","Math","slice","GetLayout","GetInstanceBufferBoundingBox","_bufferIndex","clone"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tr2DirectInstanceData.js","sources":["../../../../../src/trinity/core/mesh/Tr2DirectInstanceData.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DirectInstanceData.h\n// trinity/trinity/Tr2DirectInstanceData.cpp\n// trinity/trinity/Tr2DirectInstanceData_Blue.cpp\nimport { vec3 } from \"#math/vec3\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { withITr2InstanceData } from \"./ITr2InstanceData/index.js\";\n\n\n/**\n * Instance data whose buffer lives entirely on the GPU: Trinity keeps only the\n * CPU-side layout metadata, stride, instance count and bounds.\n */\n@type.define({ className: \"Tr2DirectInstanceData\", family: \"trinityCore\" })\nexport class Tr2DirectInstanceData extends withITr2InstanceData(CjsModel)\n{\n\n /** m_aabb.m_max (Vector3) [READ] */\n @io.read\n @type.vec3\n aabbMax = vec3.create();\n\n /** m_aabb.m_min (Vector3) [READ] */\n @io.read\n @type.vec3\n aabbMin = vec3.create();\n\n /** GetCount (MAP_PROPERTY_READONLY \"count\") - number of instances. */\n @io.read\n @type.uint32\n count = 0;\n\n /** m_layout (Tr2VertexDefinition) - CPU metadata for the direct GPU stream. */\n #layout = Object.freeze([]);\n\n #stride = 0;\n\n /**\n * Assigns the CPU-side instance bounds without realizing a GPU buffer.\n * Accepts the JavaScript `{ min, max }` box representation; a two-vector\n * form is retained for consistency with `Tr2RuntimeInstanceData`.\n */\n @carbon.method\n @impl.adapted\n SetBoundingBox(bounds, maxBounds)\n {\n const min = maxBounds === undefined ? bounds?.min ?? bounds?.minBounds : bounds;\n const max = maxBounds === undefined ? bounds?.max ?? bounds?.maxBounds : maxBounds;\n if (!min || !max)\n {\n throw new TypeError(\"Bounding box requires min and max vectors\");\n }\n vec3.copy(this.aabbMin, min);\n vec3.copy(this.aabbMax, max);\n }\n\n /** Number of instances in the GPU-side buffer. */\n @carbon.method\n @impl.implemented\n GetCount()\n {\n return this.count;\n }\n\n /**\n * Byte stride of one instance, computed by SetLayout as the largest offset\n * plus element size in the layout.\n */\n @carbon.method\n @impl.implemented\n GetStride()\n {\n return this.#stride;\n }\n\n /**\n * Records the CPU vertex-layout metadata. Carbon computes the stride as\n * max(offset + elementSize); the direct GPU buffer itself is realized by\n * the engine (GetData/UpdateData/DestroyData are engine-owned).\n */\n @carbon.method\n @impl.adapted\n SetLayout(layout)\n {\n if (!Array.isArray(layout))\n {\n throw new TypeError(\"Layout must be an array of element descriptors\");\n }\n let stride = 0;\n for (const element of layout)\n {\n const offset = Number(element?.offset) || 0;\n const byteSize = Number(element?.byteSize) || 0;\n stride = Math.max(stride, offset + byteSize);\n }\n this.#layout = layout.slice();\n this.#stride = stride;\n }\n\n /** The frozen element-descriptor list recorded by SetLayout. */\n @carbon.method\n @impl.implemented\n GetLayout()\n {\n return this.#layout;\n }\n\n /**\n * A detached copy of the recorded bounds; the buffer index is ignored because\n * only one stream is modelled.\n */\n @carbon.method\n @impl.implemented\n GetInstanceBufferBoundingBox(_bufferIndex = 0)\n {\n return {\n min: vec3.clone(this.aabbMin),\n max: vec3.clone(this.aabbMax)\n };\n }\n\n}\n"],"names":["_Tr2DirectInstanceDat","Tr2DirectInstanceData","_withITr2InstanceData","withITr2InstanceData","CjsModel","e","_init_aabbMax","_init_extra_aabbMax","_init_aabbMin","_init_extra_aabbMin","_init_count","_init_extra_count","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","vec3","uint32","carbon","method","impl","adapted","implemented","aabbMax","create","aabbMin","count","Object","freeze","SetBoundingBox","bounds","maxBounds","min","undefined","minBounds","max","TypeError","copy","GetCount","GetStride","SetLayout","layout","Array","isArray","stride","element","offset","Number","byteSize","Math","slice","GetLayout","GetInstanceBufferBoundingBox","_bufferIndex","clone"],"mappings":"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"}
|
|
@@ -3,7 +3,13 @@ import { CjsModel } from '#model';
|
|
|
3
3
|
import { vec3 } from '#math/vec3';
|
|
4
4
|
import { io, type, carbon, impl } from '#schema';
|
|
5
5
|
import { TriBatchType } from '#consts/graphics';
|
|
6
|
-
import {
|
|
6
|
+
import { TriRenderBatchAreaBlock } from '../batch/TriRenderBatch/TriRenderBatchAreaBlock.js';
|
|
7
|
+
import { TriRenderBatchAreaBlocksWithSharedMaterial } from '../batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js';
|
|
8
|
+
import { Tr2RenderBatch } from '../batch/TriRenderBatch/Tr2RenderBatch.js';
|
|
9
|
+
import '../batch/TriRenderBatch/DefaultKeyGenerator.js';
|
|
10
|
+
import '../batch/TriRenderBatch/EffectKeyGenerator.js';
|
|
11
|
+
import '../batch/TriRenderBatch/ITriRenderBatchAccumulator.js';
|
|
12
|
+
import '#consts/render-context';
|
|
7
13
|
import { Tr2EffectStateManager as _Tr2EffectStateManage } from '../../shader/Tr2EffectStateManager.js';
|
|
8
14
|
import { CarbonVertexElements } from '../vertex/vertexUsage.js';
|
|
9
15
|
|