@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,5 +1,7 @@
|
|
|
1
1
|
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { carbon, impl, type } from '#schema';
|
|
3
|
+
import { Tr2Blitter } from './Tr2Blitter.js';
|
|
4
|
+
import { AdjustTextureCoordsToViewport } from './Tr2RenderUtils.js';
|
|
3
5
|
|
|
4
6
|
let _initProto, _initClass;
|
|
5
7
|
|
|
@@ -56,7 +58,7 @@ new class extends _identity {
|
|
|
56
58
|
} = _applyDecs2311(this, [type.define({
|
|
57
59
|
className: "Tr2Renderer",
|
|
58
60
|
family: "trinityCore"
|
|
59
|
-
})], [[[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFrameVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFramePSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectPSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectRTVertexBufferDataRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSGUIStartRegister"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetPerObjectStartRegister"]]));
|
|
61
|
+
})], [[[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFrameVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFramePSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectPSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectRTVertexBufferDataRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSGUIStartRegister"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetPerObjectStartRegister"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon also allocates the quad vertex and index buffers and the debug line set here; only the blitter is ported.")], 18, "PrepareDeviceResources"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawScreenQuad"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon distinguishes this from the material form by overload; JavaScript has none, so the rectangle form carries its own name.")], 18, "DrawScreenQuadRect"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawCameraSpaceScreenQuad"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawFullScreenWithShader"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's four overloads differ only in an optional material and optional coordinates, which are defaults here.")], 18, "DrawTexture"]]));
|
|
60
62
|
}
|
|
61
63
|
// Carbon's header calls these the defaults "for the currently set shader
|
|
62
64
|
// model" and they are mutable statics, but nothing ever reassigns them, so
|
|
@@ -149,6 +151,149 @@ new class extends _identity {
|
|
|
149
151
|
return shaderType === _Tr2Renderer.PIXEL_SHADER ? this.GetPerObjectPSStartRegister() : this.GetPerObjectVSStartRegister();
|
|
150
152
|
}
|
|
151
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Carbon's `s_blitter`: the blitter every screen-space draw runs through.
|
|
156
|
+
*
|
|
157
|
+
* An INSTANCE field rather than Carbon's module global, for the reason this
|
|
158
|
+
* whole class is an instance - a second library instance must not silently
|
|
159
|
+
* share the first one's blitter. Created by `PrepareDeviceResources`, and
|
|
160
|
+
* null until then, which is why every draw below guards on it exactly as
|
|
161
|
+
* Carbon's `if( s_blitter )` does.
|
|
162
|
+
*/
|
|
163
|
+
#blitter = null;
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Creates the device-dependent resources, the blitter among them.
|
|
167
|
+
*
|
|
168
|
+
* Carbon `PrepareDeviceResources` (`Tr2Renderer.cpp:1273-1281`), which makes
|
|
169
|
+
* the blitter HERE rather than at startup and says why: it loads an effect,
|
|
170
|
+
* so the device has to exist and the shader model has to be settled first.
|
|
171
|
+
* That holds for us too - there is always a device by this point, the stub
|
|
172
|
+
* backend included, which is a real device and not an absence.
|
|
173
|
+
*
|
|
174
|
+
* Carbon also allocates its quad vertex and index buffers and its debug line
|
|
175
|
+
* set here. Those are not ported; this creates the blitter only.
|
|
176
|
+
*
|
|
177
|
+
* @param {object} [renderContext] The context to prepare the blitter against.
|
|
178
|
+
* @returns {Tr2Blitter} The renderer's blitter.
|
|
179
|
+
*/
|
|
180
|
+
PrepareDeviceResources(renderContext = null) {
|
|
181
|
+
this.#blitter ??= new Tr2Blitter();
|
|
182
|
+
if (renderContext) this.#blitter.PrepareResources(renderContext);
|
|
183
|
+
return this.#blitter;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Returns the blitter, or null before `PrepareDeviceResources` has run.
|
|
188
|
+
*
|
|
189
|
+
* @returns {Tr2Blitter|null} The renderer's blitter.
|
|
190
|
+
*/
|
|
191
|
+
GetBlitter() {
|
|
192
|
+
return this.#blitter;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Draws a fullscreen quad with a material.
|
|
197
|
+
*
|
|
198
|
+
* Carbon `DrawScreenQuad( renderContext, Tr2Material* )`
|
|
199
|
+
* (`Tr2Renderer.cpp:1006-1012`).
|
|
200
|
+
*
|
|
201
|
+
* TEXTURE COORDINATES ARE NOT VIEWPORT-CORRECTED HERE, and that is Carbon's
|
|
202
|
+
* behaviour rather than an omission: only the `DrawTexture` family adjusts
|
|
203
|
+
* them. `AdjustTextureCoordsToViewport` records what the correction is and
|
|
204
|
+
* why folding it into the blitter would move every screen-quad draw.
|
|
205
|
+
*
|
|
206
|
+
* @param {object} renderContext The context to draw through.
|
|
207
|
+
* @param {object} material The material to draw with.
|
|
208
|
+
* @returns {boolean} Whether the quad was drawn.
|
|
209
|
+
*/
|
|
210
|
+
DrawScreenQuad(renderContext, material) {
|
|
211
|
+
if (!this.#blitter) return false;
|
|
212
|
+
return this.#blitter.Draw(renderContext, material);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Draws a quad with an effect over an explicit screen rectangle.
|
|
217
|
+
*
|
|
218
|
+
* Carbon `DrawScreenQuad( renderContext, Tr2Effect*, topLeft, bottomRight )`
|
|
219
|
+
* (`Tr2Renderer.cpp:1014-1020`), which passes the full [0,1] TEXTURE range and
|
|
220
|
+
* the caller's corners as the VERTEX rectangle. Carbon distinguishes the two
|
|
221
|
+
* by overload; JavaScript has no overloads, so the rectangle form is named.
|
|
222
|
+
*
|
|
223
|
+
* @param {object} renderContext The context to draw through.
|
|
224
|
+
* @param {object} effect The effect to draw with.
|
|
225
|
+
* @param {Array<number>} topLeft Top-left vertex corner.
|
|
226
|
+
* @param {Array<number>} bottomRight Bottom-right vertex corner.
|
|
227
|
+
* @returns {boolean} Whether the quad was drawn.
|
|
228
|
+
*/
|
|
229
|
+
DrawScreenQuadRect(renderContext, effect, topLeft, bottomRight) {
|
|
230
|
+
if (!this.#blitter) return false;
|
|
231
|
+
return this.#blitter.Draw(renderContext, effect, null, {
|
|
232
|
+
tlTexCoord: [0, 0],
|
|
233
|
+
brTexCoord: [1, 1],
|
|
234
|
+
tlVertexCoord: topLeft,
|
|
235
|
+
brVertexCoord: bottomRight
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Draws the quad in camera space rather than screen space.
|
|
241
|
+
*
|
|
242
|
+
* Carbon `DrawCameraSpaceScreenQuad` (`Tr2Renderer.cpp:1022-1028`).
|
|
243
|
+
*
|
|
244
|
+
* @param {object} renderContext The context to draw through.
|
|
245
|
+
* @param {object} shader The shader state interface to run.
|
|
246
|
+
* @param {object} material The material supplying its parameters.
|
|
247
|
+
* @returns {boolean} Whether the quad was drawn.
|
|
248
|
+
*/
|
|
249
|
+
DrawCameraSpaceScreenQuad(renderContext, shader, material) {
|
|
250
|
+
if (!this.#blitter) return false;
|
|
251
|
+
return this.#blitter.DrawInCameraSpace(renderContext, shader, material);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Draws a unit quad with the given material and no texture.
|
|
256
|
+
*
|
|
257
|
+
* Carbon `DrawFullScreenWithShader` (`Tr2Renderer.cpp:768-775`).
|
|
258
|
+
*
|
|
259
|
+
* @param {object} renderContext The context to draw through.
|
|
260
|
+
* @param {object} material The material to draw with.
|
|
261
|
+
* @returns {boolean} Whether the quad was drawn.
|
|
262
|
+
*/
|
|
263
|
+
DrawFullScreenWithShader(renderContext, material) {
|
|
264
|
+
if (!this.#blitter) return false;
|
|
265
|
+
return this.#blitter.Draw(renderContext, material);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Blits a texture, correcting its coordinates for the device viewport.
|
|
270
|
+
*
|
|
271
|
+
* Carbon's four `DrawTexture` overloads (`Tr2Renderer.cpp:750-834`) collapse
|
|
272
|
+
* into one: the material is optional, and without one the filter selects a
|
|
273
|
+
* built-in blit effect. THIS family adjusts the texture coordinates where
|
|
274
|
+
* `DrawScreenQuad` does not - Carbon draws that distinction and it is load
|
|
275
|
+
* bearing.
|
|
276
|
+
*
|
|
277
|
+
* @param {object} renderContext The context to draw through.
|
|
278
|
+
* @param {object} texture The texture to blit.
|
|
279
|
+
* @param {object} [options] `material`, `tlTexCoord`, `brTexCoord`, `filter`.
|
|
280
|
+
* @returns {boolean} Whether the quad was drawn.
|
|
281
|
+
*/
|
|
282
|
+
DrawTexture(renderContext, texture, options = {}) {
|
|
283
|
+
if (!this.#blitter) return false;
|
|
284
|
+
const {
|
|
285
|
+
tlTexCoord,
|
|
286
|
+
brTexCoord
|
|
287
|
+
} = AdjustTextureCoordsToViewport(renderContext, options.tlTexCoord ?? [0, 0], options.brTexCoord ?? [1, 1]);
|
|
288
|
+
return options.material ? this.#blitter.Draw(renderContext, options.material, texture, {
|
|
289
|
+
tlTexCoord,
|
|
290
|
+
brTexCoord
|
|
291
|
+
}) : this.#blitter.DrawTexture(renderContext, texture, {
|
|
292
|
+
tlTexCoord,
|
|
293
|
+
brTexCoord
|
|
294
|
+
}, options.filter);
|
|
295
|
+
}
|
|
296
|
+
|
|
152
297
|
/** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */
|
|
153
298
|
}];
|
|
154
299
|
PIXEL_SHADER = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2Renderer.js","sources":["../../../../src/trinity/core/Tr2Renderer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Renderer.h\n// Source: trinity/trinity/Tr2Renderer.cpp\n//\n// The renderer-wide facade: the constant-buffer register map, the frame clock,\n// and the projection and view state every pass reads.\n//\n// ONE DELIBERATE DEPARTURE, DECIDED BY THE OPERATOR ON 2026-09-05. Carbon's\n// `Tr2Renderer` is entirely STATIC - a process-wide singleton. Ours is an\n// instance the composition root creates and hands out. Two reasons, and the\n// second is the one that matters:\n//\n// - a page is unlikely to want two backends at once, so the singleton is not\n// buying much;\n// - but this runtime already supports more than one library instance with its\n// own resource manager, and a static renderer would silently make the second\n// one share the first one's frame clock and projection. That is a bug nobody\n// would look for.\n//\n// The composition root creating one is not the same as the composition root\n// BECOMING a renderer, which `runtime/docs/core/roadmap.md` rules out: this\n// class holds GPU-free state and the library composes it, exactly as it\n// composes a resource manager it does not implement.\n//\n// WHY THE REGISTER MAP IS HERE AND NOT IN AN ENGINE. Carbon keeps these six\n// numbers as `Tr2Renderer` statics (`Tr2Renderer.cpp:38-43`), because they are\n// the contract between Trinity and EVERY backend rather than one backend's\n// detail. They lived in the WebGPU engine until now, where a second backend\n// could not have reached them without copying them.\n\nimport { carbon, impl, type } from \"#schema\";\n\n\n/** perFrameVS, owned by the scene. */\nexport const PER_FRAME_VS = 1;\n\n/** perFramePS, owned by the scene. */\nexport const PER_FRAME_PS = 2;\n\n/** The effect's own constants. */\nexport const EFFECT_CONSTANTS = 0;\n\n/** perObjectVS, owned by the object being drawn. */\nexport const PER_OBJECT_VS = 3;\n\n/** perObjectPS, owned by the object being drawn. */\nexport const PER_OBJECT_PS = 4;\n\n// THERE WAS A REVERSE MAP HERE AND IT IS GONE. A register-number-to-name table\n// looked necessary because a caller reading a pipeline's DECLARED bindings has a\n// number and wants to know what it means. It is not: the numbers are fixed and\n// this class owns them, so the question is answered by comparing against the\n// accessors below - which is how Carbon answers it, and why Carbon has no such\n// table. The names only ever reached a diagnostic string.\n\n\n/**\n * Renderer-wide state: the register map now, the frame clock and camera later.\n *\n * NOT A `CjsModel`, and the reason is CATEGORY RATHER THAN COST. Operator,\n * 2026-09-05: \"CjsModel is only for things that actually need to hydrate\", and\n * \"there should be little cost in making something a CjsModel\". Both are true\n * at once, and the second is why the first has to be stated as a rule - if the\n * base were expensive, nobody would need telling.\n *\n * A model is an object that arrives from a `.red`/`.black` values graph. This\n * one is composed at runtime by the library, carries no `@io` field, and is\n * named as a type by nothing, so a hydration identity describes something that\n * can never happen. The same goes for the abstraction layer and the resource\n * and GPU classes - none of them is ever part of a serialized object. The AL\n * family already complies.\n *\n * IT IS STILL DECORATED, and that is the point worth keeping straight:\n * decorators are not only hydration. `@type.define` gives the class an\n * identity that tooling and the UI read, and `@carbon.method` is how the\n * parity audit sees a method at all. Dropping `CjsModel` costs neither.\n */\n@type.define({ className: \"Tr2Renderer\", family: \"trinityCore\" })\nexport class Tr2Renderer\n{\n // Carbon's header calls these the defaults \"for the currently set shader\n // model\" and they are mutable statics, but nothing ever reassigns them, so\n // they are constants in practice. Kept as fields rather than inlined so a\n // shader model that did move them has somewhere to move them to.\n\n /** s_perFrameVSStartRegister */\n #perFrameVSStartRegister = PER_FRAME_VS;\n\n /** s_perFramePSStartRegister */\n #perFramePSStartRegister = PER_FRAME_PS;\n\n /** s_perObjectVSStartRegister */\n #perObjectVSStartRegister = PER_OBJECT_VS;\n\n /** s_perObjectPSStartRegister */\n #perObjectPSStartRegister = PER_OBJECT_PS;\n\n /** s_perObjectRTVertexBufferDataRegister */\n #perObjectRTVertexBufferDataRegister = 5;\n\n /** s_perObjectVSGUIStartRegister */\n #perObjectVSGUIStartRegister = 6;\n\n /**\n * The register the scene's per-frame vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFrameVSStartRegister()\n {\n return this.#perFrameVSStartRegister;\n }\n\n /**\n * The register the scene's per-frame pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFramePSStartRegister()\n {\n return this.#perFramePSStartRegister;\n }\n\n /**\n * The register an object's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSStartRegister()\n {\n return this.#perObjectVSStartRegister;\n }\n\n /**\n * The register an object's per-object pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectPSStartRegister()\n {\n return this.#perObjectPSStartRegister;\n }\n\n /**\n * The register ray-traced vertex-buffer data binds at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectRTVertexBufferDataRegister()\n {\n return this.#perObjectRTVertexBufferDataRegister;\n }\n\n /**\n * The register the GUI's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSGUIStartRegister()\n {\n return this.#perObjectVSGUIStartRegister;\n }\n\n /**\n * The per-object register for one shader stage.\n *\n * Carbon's overload pair collapses to a default: the pixel stage has its own\n * register and every other stage shares the vertex one\n * (`Tr2Renderer.h:65-81`).\n *\n * @param {number} [shaderType] A Carbon `ShaderType` value.\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.adapted\n GetPerObjectStartRegister(shaderType = 0)\n {\n return shaderType === Tr2Renderer.PIXEL_SHADER\n ? this.GetPerObjectPSStartRegister()\n : this.GetPerObjectVSStartRegister();\n }\n\n /** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */\n static PIXEL_SHADER = 1;\n}\n"],"names":["PER_FRAME_VS","PER_FRAME_PS","EFFECT_CONSTANTS","PER_OBJECT_VS","PER_OBJECT_PS","_Tr2Renderer","_identity","Tr2Renderer","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","GetPerFrameVSStartRegister","GetPerFramePSStartRegister","GetPerObjectVSStartRegister","GetPerObjectPSStartRegister","GetPerObjectRTVertexBufferDataRegister","GetPerObjectVSGUIStartRegister","GetPerObjectStartRegister","shaderType","PIXEL_SHADER","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tr2Renderer.js","sources":["../../../../src/trinity/core/Tr2Renderer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Renderer.h\n// Source: trinity/trinity/Tr2Renderer.cpp\n//\n// The renderer-wide facade: the constant-buffer register map, the frame clock,\n// and the projection and view state every pass reads.\n//\n// ONE DELIBERATE DEPARTURE, DECIDED BY THE OPERATOR ON 2026-09-05. Carbon's\n// `Tr2Renderer` is entirely STATIC - a process-wide singleton. Ours is an\n// instance the composition root creates and hands out. Two reasons, and the\n// second is the one that matters:\n//\n// - a page is unlikely to want two backends at once, so the singleton is not\n// buying much;\n// - but this runtime already supports more than one library instance with its\n// own resource manager, and a static renderer would silently make the second\n// one share the first one's frame clock and projection. That is a bug nobody\n// would look for.\n//\n// The composition root creating one is not the same as the composition root\n// BECOMING a renderer, which `runtime/docs/core/roadmap.md` rules out: this\n// class holds GPU-free state and the library composes it, exactly as it\n// composes a resource manager it does not implement.\n//\n// WHY THE REGISTER MAP IS HERE AND NOT IN AN ENGINE. Carbon keeps these six\n// numbers as `Tr2Renderer` statics (`Tr2Renderer.cpp:38-43`), because they are\n// the contract between Trinity and EVERY backend rather than one backend's\n// detail. They lived in the WebGPU engine until now, where a second backend\n// could not have reached them without copying them.\n\nimport { carbon, impl, type } from \"#schema\";\nimport { Tr2Blitter } from \"./Tr2Blitter.js\";\nimport { AdjustTextureCoordsToViewport } from \"./Tr2RenderUtils.js\";\n\n\n/** perFrameVS, owned by the scene. */\nexport const PER_FRAME_VS = 1;\n\n/** perFramePS, owned by the scene. */\nexport const PER_FRAME_PS = 2;\n\n/** The effect's own constants. */\nexport const EFFECT_CONSTANTS = 0;\n\n/** perObjectVS, owned by the object being drawn. */\nexport const PER_OBJECT_VS = 3;\n\n/** perObjectPS, owned by the object being drawn. */\nexport const PER_OBJECT_PS = 4;\n\n// THERE WAS A REVERSE MAP HERE AND IT IS GONE. A register-number-to-name table\n// looked necessary because a caller reading a pipeline's DECLARED bindings has a\n// number and wants to know what it means. It is not: the numbers are fixed and\n// this class owns them, so the question is answered by comparing against the\n// accessors below - which is how Carbon answers it, and why Carbon has no such\n// table. The names only ever reached a diagnostic string.\n\n\n/**\n * Renderer-wide state: the register map now, the frame clock and camera later.\n *\n * NOT A `CjsModel`, and the reason is CATEGORY RATHER THAN COST. Operator,\n * 2026-09-05: \"CjsModel is only for things that actually need to hydrate\", and\n * \"there should be little cost in making something a CjsModel\". Both are true\n * at once, and the second is why the first has to be stated as a rule - if the\n * base were expensive, nobody would need telling.\n *\n * A model is an object that arrives from a `.red`/`.black` values graph. This\n * one is composed at runtime by the library, carries no `@io` field, and is\n * named as a type by nothing, so a hydration identity describes something that\n * can never happen. The same goes for the abstraction layer and the resource\n * and GPU classes - none of them is ever part of a serialized object. The AL\n * family already complies.\n *\n * IT IS STILL DECORATED, and that is the point worth keeping straight:\n * decorators are not only hydration. `@type.define` gives the class an\n * identity that tooling and the UI read, and `@carbon.method` is how the\n * parity audit sees a method at all. Dropping `CjsModel` costs neither.\n */\n@type.define({ className: \"Tr2Renderer\", family: \"trinityCore\" })\nexport class Tr2Renderer\n{\n // Carbon's header calls these the defaults \"for the currently set shader\n // model\" and they are mutable statics, but nothing ever reassigns them, so\n // they are constants in practice. Kept as fields rather than inlined so a\n // shader model that did move them has somewhere to move them to.\n\n /** s_perFrameVSStartRegister */\n #perFrameVSStartRegister = PER_FRAME_VS;\n\n /** s_perFramePSStartRegister */\n #perFramePSStartRegister = PER_FRAME_PS;\n\n /** s_perObjectVSStartRegister */\n #perObjectVSStartRegister = PER_OBJECT_VS;\n\n /** s_perObjectPSStartRegister */\n #perObjectPSStartRegister = PER_OBJECT_PS;\n\n /** s_perObjectRTVertexBufferDataRegister */\n #perObjectRTVertexBufferDataRegister = 5;\n\n /** s_perObjectVSGUIStartRegister */\n #perObjectVSGUIStartRegister = 6;\n\n /**\n * The register the scene's per-frame vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFrameVSStartRegister()\n {\n return this.#perFrameVSStartRegister;\n }\n\n /**\n * The register the scene's per-frame pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFramePSStartRegister()\n {\n return this.#perFramePSStartRegister;\n }\n\n /**\n * The register an object's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSStartRegister()\n {\n return this.#perObjectVSStartRegister;\n }\n\n /**\n * The register an object's per-object pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectPSStartRegister()\n {\n return this.#perObjectPSStartRegister;\n }\n\n /**\n * The register ray-traced vertex-buffer data binds at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectRTVertexBufferDataRegister()\n {\n return this.#perObjectRTVertexBufferDataRegister;\n }\n\n /**\n * The register the GUI's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSGUIStartRegister()\n {\n return this.#perObjectVSGUIStartRegister;\n }\n\n /**\n * The per-object register for one shader stage.\n *\n * Carbon's overload pair collapses to a default: the pixel stage has its own\n * register and every other stage shares the vertex one\n * (`Tr2Renderer.h:65-81`).\n *\n * @param {number} [shaderType] A Carbon `ShaderType` value.\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.adapted\n GetPerObjectStartRegister(shaderType = 0)\n {\n return shaderType === Tr2Renderer.PIXEL_SHADER\n ? this.GetPerObjectPSStartRegister()\n : this.GetPerObjectVSStartRegister();\n }\n\n /**\n * Carbon's `s_blitter`: the blitter every screen-space draw runs through.\n *\n * An INSTANCE field rather than Carbon's module global, for the reason this\n * whole class is an instance - a second library instance must not silently\n * share the first one's blitter. Created by `PrepareDeviceResources`, and\n * null until then, which is why every draw below guards on it exactly as\n * Carbon's `if( s_blitter )` does.\n */\n #blitter = null;\n\n /**\n * Creates the device-dependent resources, the blitter among them.\n *\n * Carbon `PrepareDeviceResources` (`Tr2Renderer.cpp:1273-1281`), which makes\n * the blitter HERE rather than at startup and says why: it loads an effect,\n * so the device has to exist and the shader model has to be settled first.\n * That holds for us too - there is always a device by this point, the stub\n * backend included, which is a real device and not an absence.\n *\n * Carbon also allocates its quad vertex and index buffers and its debug line\n * set here. Those are not ported; this creates the blitter only.\n *\n * @param {object} [renderContext] The context to prepare the blitter against.\n * @returns {Tr2Blitter} The renderer's blitter.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon also allocates the quad vertex and index buffers and the debug line set here; only the blitter is ported.\")\n PrepareDeviceResources(renderContext = null)\n {\n this.#blitter ??= new Tr2Blitter();\n if (renderContext) this.#blitter.PrepareResources(renderContext);\n return this.#blitter;\n }\n\n /**\n * Returns the blitter, or null before `PrepareDeviceResources` has run.\n *\n * @returns {Tr2Blitter|null} The renderer's blitter.\n */\n GetBlitter()\n {\n return this.#blitter;\n }\n\n /**\n * Draws a fullscreen quad with a material.\n *\n * Carbon `DrawScreenQuad( renderContext, Tr2Material* )`\n * (`Tr2Renderer.cpp:1006-1012`).\n *\n * TEXTURE COORDINATES ARE NOT VIEWPORT-CORRECTED HERE, and that is Carbon's\n * behaviour rather than an omission: only the `DrawTexture` family adjusts\n * them. `AdjustTextureCoordsToViewport` records what the correction is and\n * why folding it into the blitter would move every screen-quad draw.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawScreenQuad(renderContext, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, material);\n }\n\n /**\n * Draws a quad with an effect over an explicit screen rectangle.\n *\n * Carbon `DrawScreenQuad( renderContext, Tr2Effect*, topLeft, bottomRight )`\n * (`Tr2Renderer.cpp:1014-1020`), which passes the full [0,1] TEXTURE range and\n * the caller's corners as the VERTEX rectangle. Carbon distinguishes the two\n * by overload; JavaScript has no overloads, so the rectangle form is named.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} effect The effect to draw with.\n * @param {Array<number>} topLeft Top-left vertex corner.\n * @param {Array<number>} bottomRight Bottom-right vertex corner.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon distinguishes this from the material form by overload; JavaScript has none, so the rectangle form carries its own name.\")\n DrawScreenQuadRect(renderContext, effect, topLeft, bottomRight)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, effect, null, {\n tlTexCoord: [ 0, 0 ],\n brTexCoord: [ 1, 1 ],\n tlVertexCoord: topLeft,\n brVertexCoord: bottomRight\n });\n }\n\n /**\n * Draws the quad in camera space rather than screen space.\n *\n * Carbon `DrawCameraSpaceScreenQuad` (`Tr2Renderer.cpp:1022-1028`).\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The shader state interface to run.\n * @param {object} material The material supplying its parameters.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawCameraSpaceScreenQuad(renderContext, shader, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.DrawInCameraSpace(renderContext, shader, material);\n }\n\n /**\n * Draws a unit quad with the given material and no texture.\n *\n * Carbon `DrawFullScreenWithShader` (`Tr2Renderer.cpp:768-775`).\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawFullScreenWithShader(renderContext, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, material);\n }\n\n /**\n * Blits a texture, correcting its coordinates for the device viewport.\n *\n * Carbon's four `DrawTexture` overloads (`Tr2Renderer.cpp:750-834`) collapse\n * into one: the material is optional, and without one the filter selects a\n * built-in blit effect. THIS family adjusts the texture coordinates where\n * `DrawScreenQuad` does not - Carbon draws that distinction and it is load\n * bearing.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} texture The texture to blit.\n * @param {object} [options] `material`, `tlTexCoord`, `brTexCoord`, `filter`.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's four overloads differ only in an optional material and optional coordinates, which are defaults here.\")\n DrawTexture(renderContext, texture, options = {})\n {\n if (!this.#blitter) return false;\n\n const { tlTexCoord, brTexCoord } = AdjustTextureCoordsToViewport(\n renderContext,\n options.tlTexCoord ?? [ 0, 0 ],\n options.brTexCoord ?? [ 1, 1 ]\n );\n\n return options.material\n ? this.#blitter.Draw(renderContext, options.material, texture, { tlTexCoord, brTexCoord })\n : this.#blitter.DrawTexture(renderContext, texture, { tlTexCoord, brTexCoord }, options.filter);\n }\n\n /** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */\n static PIXEL_SHADER = 1;\n}\n"],"names":["PER_FRAME_VS","PER_FRAME_PS","EFFECT_CONSTANTS","PER_OBJECT_VS","PER_OBJECT_PS","_Tr2Renderer","_identity","Tr2Renderer","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","reason","GetPerFrameVSStartRegister","GetPerFramePSStartRegister","GetPerObjectVSStartRegister","GetPerObjectPSStartRegister","GetPerObjectRTVertexBufferDataRegister","GetPerObjectVSGUIStartRegister","GetPerObjectStartRegister","shaderType","PIXEL_SHADER","PrepareDeviceResources","renderContext","Tr2Blitter","PrepareResources","GetBlitter","DrawScreenQuad","material","Draw","DrawScreenQuadRect","effect","topLeft","bottomRight","tlTexCoord","brTexCoord","tlVertexCoord","brVertexCoord","DrawCameraSpaceScreenQuad","shader","DrawInCameraSpace","DrawFullScreenWithShader","DrawTexture","texture","options","AdjustTextureCoordsToViewport","filter","constructor"],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { CjsModel } from '#model';
|
|
|
4
4
|
import { mat4 } from '#math/mat4';
|
|
5
5
|
import { vec3 } from '#math/vec3';
|
|
6
6
|
import { vec4 } from '#math/vec4';
|
|
7
|
+
import { PixelFormat, Tr2GpuUsage, TextureType } from '#consts/render-context';
|
|
7
8
|
import { Tr2Effect as _Tr2Effect } from '../shader/Tr2Effect.js';
|
|
8
|
-
import { Tr2Denoiser as _Tr2Denoiser } from '
|
|
9
|
+
import { Tr2Denoiser as _Tr2Denoiser } from './Tr2Denoiser.js';
|
|
9
10
|
import { Tr2VariableStore as _Tr2VariableStore } from './variable/Tr2VariableStore.js';
|
|
10
11
|
import { TriFrustumOrtho } from './view/TriFrustumOrtho.js';
|
|
11
12
|
|
|
@@ -54,8 +55,14 @@ function createSplitSetup() {
|
|
|
54
55
|
function createShadowEffect() {
|
|
55
56
|
const effect = new _Tr2Effect();
|
|
56
57
|
effect.SetEffectPathName("res:/graphics/effect/managed/space/system/ShadowDepth.fx");
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
|
|
59
|
+
// DECLARED BY CLEARING, which is Carbon (`cpp:41-42`), not by
|
|
60
|
+
// AddResourceTexture2D. The difference is not cosmetic: a res-path slot and a
|
|
61
|
+
// runtime slot are different classes, so declaring the res-path kind here left
|
|
62
|
+
// SetParameter unable to find a runtime slot to update - it added a new one on
|
|
63
|
+
// every call, and a per-frame resolve grew the resource list without bound.
|
|
64
|
+
effect.SetParameter("EveSpaceSceneCascadedShadowMap", null);
|
|
65
|
+
effect.SetParameter("DepthMap", null);
|
|
59
66
|
return effect;
|
|
60
67
|
}
|
|
61
68
|
|
|
@@ -123,7 +130,7 @@ new class extends _identity {
|
|
|
123
130
|
} = _applyDecs2311(this, [type.define({
|
|
124
131
|
className: "Tr2ShadowMap",
|
|
125
132
|
family: "trinityCore"
|
|
126
|
-
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ShadowSplitMode")], 16, "shadowSplitMode"], [[io, io.readwrite, void 0, type.objectRef("Tr2Denoiser")], 16, "denoiser"], [[io, io.readwrite, void 0, type.objectRef("Tr2Effect")], 16, "cascadeEffect"], [[io, io.notify, io, io.read, type, type.uint32], 16, "splitCount"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "debugColorSplit"], [[io, io.readwrite, type, type.float32], 16, "SplitNr15"], [[io, io.readwrite, type, type.float32], 16, "SplitNr8"], [[io, io.readwrite, type, type.float32], 16, "SplitNr6"], [[io, io.readwrite, type, type.float32], 16, "SplitNr5"], [[io, io.readwrite, type, type.float32], 16, "SplitNr14"], [[io, io.readwrite, type, type.float32], 16, "SplitNr10"], [[io, io.readwrite, type, type.float32], 16, "SplitNr13"], [[io, io.readwrite, type, type.float32], 16, "SplitNr4"], [[io, io.readwrite, type, type.float32], 16, "SplitNr3"], [[io, io.readwrite, type, type.float32], 16, "SplitNr7"], [[io, io.readwrite, type, type.float32], 16, "SplitNr1"], [[io, io.readwrite, type, type.float32], 16, "SplitNr9"], [[io, io.readwrite, type, type.float32], 16, "SplitNr0"], [[io, io.readwrite, type, type.float32], 16, "SplitNr11"], [[io, io.readwrite, type, type.float32], 16, "SplitNr12"], [[io, io.readwrite, type, type.float32], 16, "SplitNr2"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "disableShimmer"], [[io, io.readwrite, type, type.uint32], 16, "size"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.")], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "ShouldUseDenoiser"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.")], 18, "GetUseDenoiser"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSplitValues"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.")], 26, "CalculateAABB"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon stores Transpose(lightViewProjection) and returns SplitSetup by value; Trinity stores the logical matrix for RawData's terminal transpose and reuses one allocation-free result per split.")], 18, "SetupShadowSplit"], [[carbon, carbon.method, impl, impl.
|
|
133
|
+
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ShadowSplitMode")], 16, "shadowSplitMode"], [[io, io.readwrite, void 0, type.objectRef("Tr2Denoiser")], 16, "denoiser"], [[io, io.readwrite, void 0, type.objectRef("Tr2Effect")], 16, "cascadeEffect"], [[io, io.notify, io, io.read, type, type.uint32], 16, "splitCount"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "debugColorSplit"], [[io, io.readwrite, type, type.float32], 16, "SplitNr15"], [[io, io.readwrite, type, type.float32], 16, "SplitNr8"], [[io, io.readwrite, type, type.float32], 16, "SplitNr6"], [[io, io.readwrite, type, type.float32], 16, "SplitNr5"], [[io, io.readwrite, type, type.float32], 16, "SplitNr14"], [[io, io.readwrite, type, type.float32], 16, "SplitNr10"], [[io, io.readwrite, type, type.float32], 16, "SplitNr13"], [[io, io.readwrite, type, type.float32], 16, "SplitNr4"], [[io, io.readwrite, type, type.float32], 16, "SplitNr3"], [[io, io.readwrite, type, type.float32], 16, "SplitNr7"], [[io, io.readwrite, type, type.float32], 16, "SplitNr1"], [[io, io.readwrite, type, type.float32], 16, "SplitNr9"], [[io, io.readwrite, type, type.float32], 16, "SplitNr0"], [[io, io.readwrite, type, type.float32], 16, "SplitNr11"], [[io, io.readwrite, type, type.float32], 16, "SplitNr12"], [[io, io.readwrite, type, type.float32], 16, "SplitNr2"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "disableShimmer"], [[io, io.readwrite, type, type.uint32], 16, "size"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.")], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "ShouldUseDenoiser"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.")], 18, "GetUseDenoiser"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSplitValues"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.")], 26, "CalculateAABB"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon stores Transpose(lightViewProjection) and returns SplitSetup by value; Trinity stores the logical matrix for RawData's terminal transpose and reuses one allocation-free result per split.")], 18, "SetupShadowSplit"], [[carbon, carbon.method, impl, impl.implemented], 18, "PrepareShadowRendering"], [[carbon, carbon.method, impl, impl.implemented], 18, "BeginShadowRendering"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndShadowRendering"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reaches the blitter and the reversed-depth projection through static Tr2Renderer; ours are an instance and the render context, so the renderer is passed in.")], 18, "DrawToShadowMapResult"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowSplitCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowMapSize"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas width without reading implementation fields.")], 18, "GetShadowMapWidth"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas height without reading implementation fields.")], 18, "GetShadowMapHeight"], [[impl, impl.custom, void 0, impl.reason("The scene needs a nominal direct accessor to Carbon's public PerSplitData without structural probing.")], 18, "GetPerSplitData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugSplitValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugColors"]], 0, void 0, CjsModel));
|
|
127
134
|
_initStatic(this);
|
|
128
135
|
}
|
|
129
136
|
shadowSplitMode = (_initProto(this), _init_shadowSplitMode(this, 0));
|
|
@@ -331,24 +338,138 @@ new class extends _identity {
|
|
|
331
338
|
return setup;
|
|
332
339
|
}
|
|
333
340
|
|
|
334
|
-
/**
|
|
335
|
-
|
|
336
|
-
|
|
341
|
+
/**
|
|
342
|
+
* Allocates the cascaded depth surface and makes it the render target.
|
|
343
|
+
*
|
|
344
|
+
* @param {object} gpuResourcePool The pool to borrow the surface from.
|
|
345
|
+
* @param {object} renderContext The context to set state on.
|
|
346
|
+
* @returns {object|null} The borrowed depth texture, or null when the pool
|
|
347
|
+
* could not supply one - which Carbon notes happens on a lost device.
|
|
348
|
+
*/
|
|
349
|
+
PrepareShadowRendering(gpuResourcePool, renderContext) {
|
|
350
|
+
const cascadedShadowDepth = gpuResourcePool.GetTempTexture("cascadedShadowDepth", {
|
|
351
|
+
width: this.size * this.#width,
|
|
352
|
+
height: this.size * this.#height,
|
|
353
|
+
format: PixelFormat.PIXEL_FORMAT_D32_FLOAT,
|
|
354
|
+
gpuUsage: Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE
|
|
355
|
+
});
|
|
356
|
+
if (!cascadedShadowDepth || !cascadedShadowDepth.IsValid()) return null;
|
|
357
|
+
const esm = renderContext.GetEffectStateManager();
|
|
358
|
+
|
|
359
|
+
// The depth stencil IS the shadow map, so the colour target is pushed EMPTY -
|
|
360
|
+
// Carbon passes a default-constructed Tr2TextureAL and comments it "empty
|
|
361
|
+
// texture" (`cpp:238`). Null is that argument here. Omitting it would only
|
|
362
|
+
// save the slot and leave the scene's colour target bound underneath the
|
|
363
|
+
// whole shadow pass, which is what this line used to do.
|
|
364
|
+
esm.PushViewport();
|
|
365
|
+
esm.PushRenderTarget(null);
|
|
366
|
+
esm.PushDepthStencilBuffer(cascadedShadowDepth);
|
|
367
|
+
esm.UpdateRenderTargetViewport(cascadedShadowDepth.Get().GetWidth(), cascadedShadowDepth.Get().GetHeight());
|
|
368
|
+
|
|
369
|
+
// Carbon wants a clean depth buffer for this pass and says so.
|
|
370
|
+
renderContext.Clear({
|
|
371
|
+
depth: true,
|
|
372
|
+
clearDepth: 1,
|
|
373
|
+
clearStencil: 0
|
|
374
|
+
});
|
|
375
|
+
renderContext.SetReadOnlyDepth(false);
|
|
376
|
+
return cascadedShadowDepth;
|
|
337
377
|
}
|
|
338
378
|
|
|
339
|
-
/**
|
|
379
|
+
/**
|
|
380
|
+
* Points the viewport at one split's cell in the atlas.
|
|
381
|
+
*
|
|
382
|
+
* Eight cells per row: splits 0-7 fill the top row and 8 onward wrap to a
|
|
383
|
+
* second, which is why the row index is `splitIndex % 8` and the y offset is
|
|
384
|
+
* either zero or one cell down.
|
|
385
|
+
*
|
|
386
|
+
* @param {object} renderContext The context to set the viewport on.
|
|
387
|
+
* @param {number} splitIndex Which cascade split.
|
|
388
|
+
*/
|
|
340
389
|
BeginShadowRendering(renderContext, splitIndex) {
|
|
341
|
-
|
|
390
|
+
const esm = renderContext.GetEffectStateManager();
|
|
391
|
+
const topRow = splitIndex < 8;
|
|
392
|
+
esm.SetViewport({
|
|
393
|
+
width: this.size,
|
|
394
|
+
height: this.size,
|
|
395
|
+
x: (topRow ? splitIndex : splitIndex % 8) * this.size,
|
|
396
|
+
y: topRow ? 0 : this.size,
|
|
397
|
+
minZ: 0,
|
|
398
|
+
maxZ: 1
|
|
399
|
+
});
|
|
342
400
|
}
|
|
343
401
|
|
|
344
|
-
/**
|
|
402
|
+
/**
|
|
403
|
+
* Unwinds everything `PrepareShadowRendering` pushed, in reverse.
|
|
404
|
+
*
|
|
405
|
+
* @param {object} renderContext The context to restore.
|
|
406
|
+
*/
|
|
345
407
|
EndShadowRendering(renderContext) {
|
|
346
|
-
|
|
408
|
+
renderContext.SetReadOnlyDepth(false);
|
|
409
|
+
const esm = renderContext.GetEffectStateManager();
|
|
410
|
+
esm.PopRenderTarget();
|
|
411
|
+
esm.PopDepthStencilBuffer();
|
|
412
|
+
esm.PopViewport();
|
|
347
413
|
}
|
|
348
414
|
|
|
349
|
-
/**
|
|
350
|
-
|
|
351
|
-
|
|
415
|
+
/**
|
|
416
|
+
* Resolves the cascaded depth into a screen-space shadow factor.
|
|
417
|
+
*
|
|
418
|
+
* Carbon `DrawToShadowMapResult` (`cpp:278-305`). Borrow an R8 target the
|
|
419
|
+
* size of the scene depth, bind it, run the shadow effect over a fullscreen
|
|
420
|
+
* quad with the atlas and the depth map bound, then optionally denoise.
|
|
421
|
+
*
|
|
422
|
+
* THE DEPTH BUFFER IS PUSHED EMPTY, not merely saved. Carbon passes a
|
|
423
|
+
* default-constructed Tr2TextureAL (`cpp:285`), which unbinds it - this pass
|
|
424
|
+
* writes a full-screen factor and must not be depth-tested against the very
|
|
425
|
+
* buffer it is reading.
|
|
426
|
+
*
|
|
427
|
+
* THE EFFECT'S TEXTURES ARE CLEARED IMMEDIATELY AFTER THE DRAW, as Carbon
|
|
428
|
+
* does (`cpp:290-291`), so a later pass cannot inherit the atlas or the
|
|
429
|
+
* scene depth from this one.
|
|
430
|
+
*
|
|
431
|
+
* `cascadeEffect` is Carbon's `m_shadowEffect` under our name - same
|
|
432
|
+
* ShadowDepth.fx path, same two parameters (`cpp:39-42`).
|
|
433
|
+
*
|
|
434
|
+
* @param {object} renderContext The context to draw against.
|
|
435
|
+
* @param {object} gpuResourcePool The pool to borrow the result target from.
|
|
436
|
+
* @param {object} depthMap The scene depth.
|
|
437
|
+
* @param {object} cascadedShadowDepth The atlas produced by this pass.
|
|
438
|
+
* @param {number} upscaling The denoiser's upscaling factor.
|
|
439
|
+
* @param {object} renderer The renderer owning the blitter.
|
|
440
|
+
* @returns {object|null} The shadow-factor target, or null without a pool.
|
|
441
|
+
*/
|
|
442
|
+
DrawToShadowMapResult(renderContext, gpuResourcePool, depthMap, cascadedShadowDepth, upscaling, renderer) {
|
|
443
|
+
let shadowMapResult = gpuResourcePool.GetTempTexture("shadowMapResult", {
|
|
444
|
+
type: TextureType.TEX_TYPE_2D,
|
|
445
|
+
width: depthMap.GetWidth(),
|
|
446
|
+
height: depthMap.GetHeight(),
|
|
447
|
+
depth: 1,
|
|
448
|
+
mipCount: 1,
|
|
449
|
+
format: PixelFormat.PIXEL_FORMAT_R8_UNORM,
|
|
450
|
+
gpuUsage: Tr2GpuUsage.RENDER_TARGET | Tr2GpuUsage.SHADER_RESOURCE
|
|
451
|
+
});
|
|
452
|
+
const esm = renderContext.GetEffectStateManager();
|
|
453
|
+
esm.PushRenderTarget(shadowMapResult.Get());
|
|
454
|
+
esm.PushDepthStencilBuffer(null);
|
|
455
|
+
try {
|
|
456
|
+
this.cascadeEffect.SetParameter("EveSpaceSceneCascadedShadowMap", cascadedShadowDepth);
|
|
457
|
+
this.cascadeEffect.SetParameter("DepthMap", depthMap);
|
|
458
|
+
renderer.DrawScreenQuad(renderContext, this.cascadeEffect);
|
|
459
|
+
this.cascadeEffect.SetParameter("EveSpaceSceneCascadedShadowMap", null);
|
|
460
|
+
this.cascadeEffect.SetParameter("DepthMap", null);
|
|
461
|
+
|
|
462
|
+
// Carbon gates on all three (`cpp:296`). Setup() nulls the denoiser when
|
|
463
|
+
// it is disabled, so the useDenoiser flag and a present denoiser are not
|
|
464
|
+
// the same question.
|
|
465
|
+
if (this.denoiser && this.#useDenoiser && depthMap.IsValid()) {
|
|
466
|
+
shadowMapResult = this.denoiser.Apply(shadowMapResult, depthMap, null, renderContext.GetReversedDepthProjectionTransform(), upscaling, gpuResourcePool, renderContext, renderer);
|
|
467
|
+
}
|
|
468
|
+
return shadowMapResult;
|
|
469
|
+
} finally {
|
|
470
|
+
esm.PopRenderTarget();
|
|
471
|
+
esm.PopDepthStencilBuffer();
|
|
472
|
+
}
|
|
352
473
|
}
|
|
353
474
|
/** Returns the number of active cascade splits. */
|
|
354
475
|
GetShadowSplitCount() {
|