@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/global/blue/BlueClasses.js +200 -0
- package/dist/global/blue/BlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueClasses.js +79 -0
- package/dist/global/blue/IBlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
- package/dist/global/blue/blue.js +8 -2
- package/dist/global/blue/blue.js.map +1 -1
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/consts/index.js +0 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/renderContext/formats.js +26 -25
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
- package/dist/global/imageio/BitmapDimensions.js.map +1 -0
- package/dist/global/imageio/Cutout.js +28 -0
- package/dist/global/imageio/Cutout.js.map +1 -0
- package/dist/global/imageio/HostBitmap.js +1106 -0
- package/dist/global/imageio/HostBitmap.js.map +1 -0
- package/dist/global/imageio/ImageIOResult.js +99 -0
- package/dist/global/imageio/ImageIOResult.js.map +1 -0
- package/dist/global/imageio/ImageUtility.js +205 -0
- package/dist/global/imageio/ImageUtility.js.map +1 -0
- package/dist/global/imageio/LoadParameters.js +86 -0
- package/dist/global/imageio/LoadParameters.js.map +1 -0
- package/dist/global/imageio/Metadata.js +22 -0
- package/dist/global/imageio/Metadata.js.map +1 -0
- package/dist/global/imageio/index.js +8 -0
- package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
- package/dist/global/index.js +2 -1
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/color.js +1 -1
- package/dist/global/math/color.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +8 -0
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +47 -7
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +37 -0
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/format/CjsByteWriter.js +46 -46
- package/dist/resource/format/CjsByteWriter.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +7 -8
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatStore.js +8 -8
- package/dist/resource/format/CjsFormatStore.js.map +1 -1
- package/dist/resource/format/CjsGeometryFormat.js +114 -0
- package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
- package/dist/resource/format/CjsImageFormat.js +282 -0
- package/dist/resource/format/CjsImageFormat.js.map +1 -0
- package/dist/resource/format/CjsResourceProbe.js +12 -48
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/CjsStringTable.js +37 -37
- package/dist/resource/format/CjsStringTable.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +3 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
- package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +1 -3
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/constants.js +1 -2
- package/dist/resource/formats/cmf/core/constants.js.map +1 -1
- package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
- package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
- package/dist/resource/formats/cmf/core/helpers.js +13 -13
- package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/core/writer.js +24 -24
- package/dist/resource/formats/cmf/core/writer.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +125 -40
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
- package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
- package/dist/resource/formats/dxbc/core/decoder.js +2 -2
- package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +3 -3
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
- package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
- package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -12
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
- package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
- package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +3 -5
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
- package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +3 -5
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +3 -5
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +5 -113
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +40 -15
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +4 -6
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/red/CjsRedFormat.js +22 -28
- package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
- package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +5 -19
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +3 -5
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +3 -5
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
- package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
- package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
- package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +3 -5
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +35 -35
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -3
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
- package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/resource/imageio/ImageIO.js +142 -0
- package/dist/resource/imageio/ImageIO.js.map +1 -0
- package/dist/resource/imageio/index.js +17 -0
- package/dist/resource/imageio/index.js.map +1 -0
- package/dist/resource/index.js +7 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
- package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +100 -68
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +151 -29
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +7 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/registerTextureResources.js +83 -0
- package/dist/resource/texture/registerTextureResources.js.map +1 -0
- package/dist/resource/texture/solidColorTexture.js +10 -19
- package/dist/resource/texture/solidColorTexture.js.map +1 -1
- package/dist/sof/EveSOF.js +39 -7
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
- package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
- package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
- package/dist/trinity/core/Tr2RenderUtils.js +1 -1
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
- package/dist/trinity/core/Tr2TextureReference.js +114 -0
- package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
- package/dist/trinity/core/procedural/gradientTexture.js +10 -13
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +102 -50
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +242 -234
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +57 -16
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/index.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +3 -3
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
- package/dist/trinityal/index.js +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +1 -0
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/global/reference/classes/README.md +90 -0
- package/docs/resource/concepts/format-capabilities.md +3 -3
- package/docs/resource/formats/README.md +1 -1
- package/docs/resource/reference/classes/core.md +31 -1
- package/docs/resource/reference/classes/formats.md +7 -7
- package/docs/resource/reference/classes/resources.md +76 -16
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
- package/docs/trinityal/reference/classes/README.md +0 -10
- package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
- package/package.json +4 -3
- package/dist/global/consts/webgpu/index.js +0 -2
- package/dist/global/consts/webgpu/textureFormats.js +0 -180
- package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
- package/dist/resource/formats/dxbc/core/container.js.map +0 -1
- package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
- package/dist/resource/formats/dxbc/core/program.js.map +0 -1
- package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
- package/dist/resource/formats/stl/core/targets.js.map +0 -1
- package/dist/resource/formats/webgl/core/errors.js.map +0 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
- package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
- package/dist/resource/texture/texturePipelineBehavior.js +0 -332
- package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
- package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveSpaceSceneRenderDriver.js","sources":["../../../../../src/trinity/eve/scene/EveSpaceSceneRenderDriver.js"],"sourcesContent":["// Source: trinity/trinity/Eve/EveSpaceSceneRenderDriver.{h,cpp}\r\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\r\n//\r\n// THE FRAME DRIVER. Carbon's EveSpaceScene::Render is an empty function body\r\n// (EveSpaceScene.cpp:2947-2949) and TriStepRenderScene calls it anyway, so a\r\n// scene draws nothing through that path in Carbon either. The real driver is\r\n// this class, an ITr2RenderNode reached through Tr2StepExecuteRenderNode from a\r\n// render job (EveSpaceSceneRenderDriver.cpp:404).\r\n//\r\n// DELIBERATELY PARTIAL. Carbon's Execute is a forty-step frame: background,\r\n// reflection, depth prepass, shadows, SSAO, light lists, distortion, the main\r\n// colour pass, overlays, lensflare occlusion, post-process and 3D UI. This\r\n// implements the spine - update, gather, submit opaque and decal - and nothing\r\n// else. Every omitted stage is a later insertion into the SAME sequence rather\r\n// than a redesign, and they are listed on Execute so a reader can tell \"not\r\n// yet\" from \"not needed\".\r\n//\r\n// It does not own the passes Carbon's scene owns. CarbonEngineJS splits\r\n// Carbon's BeginRender/GatherBatches into scene-owned CPU methods that a driver\r\n// calls in order; that contract is written on EveSpaceScene itself, and this is\r\n// the driver it describes.\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { PixelFormat } from \"#consts/render-context\";\r\nimport { AmbientOcclusionQuality, AntiAliasingQuality, EveVisualizeMethod } from \"../../generated/eve/enums.js\";\r\nimport { ShadowQuality, Tr2VolumerticQuality } from \"../../generated/trinityCore/enums.js\";\r\nimport { Quality } from \"../../generated/postProcess/enums.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\nimport { CjsBatchManager } from \"../../core/batch/CjsBatchManager.js\";\r\nimport { BindPerFramePSData, BindPerFrameVSData } from \"../../core/rawData/Tr2ConstantBufferFormats.js\";\r\nimport { TriFrustum } from \"../../core/view/TriFrustum.js\";\r\n\r\n/** Collects camera, quality, pass-toggle, overlay, background, and post-process state for driving an EVE space-scene frame. */\r\n@type.define({ className: \"EveSpaceSceneRenderDriver\", family: \"eve/scene\", purpose: \"Collects camera, quality, pass-toggle, overlay, background, and post-process state for driving an EVE space-scene frame.\" })\r\nexport class EveSpaceSceneRenderDriver extends CjsModel\r\n{\r\n\r\n /** m_settings.aoQuality (AmbientOcclusionQuality - enum AmbientOcclusionQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"AmbientOcclusionQuality\")\r\n aoQuality = 0;\r\n\r\n /** m_settings.antiAliasingQuality (AntiAliasingQuality - enum AntiAliasingQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"AntiAliasingQuality\")\r\n antiAliasingQuality = 0;\r\n\r\n /** m_settings.visualizeMethod (EveSpaceScene::EveVisualizeMethod - enum EveVisualizeMethod) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"EveVisualizeMethod\")\r\n visualizeMethod = 0;\r\n\r\n /** m_settings.postProcessingQuality (PostProcess::Quality - enum Quality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"Quality\")\r\n postProcessingQuality = 0;\r\n\r\n /** m_settings.shadowQuality (ShadowQuality - enum ShadowQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"ShadowQuality\")\r\n shadowQuality = 0;\r\n\r\n /** m_customStencilFormat (ImageIO::PixelFormat - enum PixelFormat) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"PixelFormat\")\r\n customStencilFormat = 0;\r\n\r\n /** m_internalPixelFormat (ImageIO::PixelFormat - enum PixelFormat) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"PixelFormat\")\r\n internalPixelFormat = 10;\r\n\r\n /** m_settings.volumetricQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"Tr2VolumerticQuality\")\r\n volumetricQuality = 0;\r\n\r\n /** m_scene (EveSpaceScenePtr) [PERSISTONLY] */\r\n @edit.persistOnly\r\n @type.model(\"EveSpaceScene\")\r\n scene = null;\r\n\r\n /** m_name (std::string) [READWRITE] */\r\n @edit.readwrite\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_settings.enableUpscaling (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableUpscaling = false;\r\n\r\n /** m_projection (TriProjectionPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"TriProjection\")\r\n projection = null;\r\n\r\n /** m_camera (EveCameraPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"EveCamera\")\r\n camera = null;\r\n\r\n /** m_view (TriViewPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"TriView\")\r\n view = null;\r\n\r\n /** m_settings.clearColor (Settings) [READWRITE] */\r\n @edit.readwrite\r\n @type.rawStruct(\"Settings\")\r\n clearColor = null;\r\n\r\n /** m_distortionEffect (Tr2EffectPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"Tr2Effect\")\r\n distortionEffect = null;\r\n\r\n /** m_settings.enableDistortion (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableDistortion = false;\r\n\r\n /** m_reflectionCorrectionEnabled (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n reflectionCorrectionEnabled = true;\r\n\r\n /** m_settings.forceOpaqueBuffer (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceOpaqueBuffer = false;\r\n\r\n /** m_settings.forceNormalMap (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceNormalMap = false;\r\n\r\n /** m_settings.forceVelocityMap (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceVelocityMap = false;\r\n\r\n /** m_fpsRenderer (TriStepRenderFpsPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"TriStepRenderFps\")\r\n fpsRenderer = null;\r\n\r\n /** m_mainPassRenderingEnabled (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n mainPassRenderingEnabled = true;\r\n\r\n /** m_toolsScenes (PITr2SceneVector) [READ] */\r\n @edit.read\r\n @type.list(\"ITr2Scene\")\r\n toolsScenes = [];\r\n\r\n /** m_depthPassTechnique (unknown) [READWRITE] */\r\n @edit.readwrite\r\n @type.string\r\n depthPassTechnique = \"Depth\";\r\n\r\n /** m_postProcess (Tr2PostProcessRendererPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"Tr2PostProcessRenderer\")\r\n postProcess = null;\r\n\r\n /** m_settings.showFPS (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n showFPS = false;\r\n\r\n /** m_sceneOverlay (ITr2RenderNodePtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"ITr2RenderNode\")\r\n sceneOverlay = null;\r\n\r\n /** m_background (ITr2RenderNodePtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"ITr2RenderNode\")\r\n background = null;\r\n\r\n /** m_ssao (Tr2SSAOPtr) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"Tr2SSAO\")\r\n SSAO = null;\r\n\r\n /** m_enableRendering (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableRendering = true;\r\n\r\n /** Carbon method GetAllTempTextures (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetAllTempTextures(...args)\r\n {\r\n throw new Error(\"EveSpaceSceneRenderDriver.GetAllTempTextures is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** The frustum this driver derives each frame; Carbon keeps one per driver. */\r\n #frustum = new TriFrustum();\r\n\r\n /** Collects renderables into batches; composed, so the caller owns its producers. */\r\n #batchManager = null;\r\n\r\n /**\r\n * The batch types this driver submits, in submission order.\r\n *\r\n * Carbon's main pass draws OPAQUE then DECAL (EveSpaceScene.cpp:2725/2731),\r\n * with transparent and additive following in the same pass (:2758). Only the\r\n * first two are submitted here; the rest are a later insertion at the marked\r\n * point in #Submit.\r\n */\r\n static SubmittedBatchTypes = Object.freeze([\r\n TriBatchType.TRIBATCHTYPE_OPAQUE,\r\n TriBatchType.TRIBATCHTYPE_DECAL\r\n ]);\r\n\r\n /**\r\n * Supplies the batch manager this driver collects through.\r\n *\r\n * Composed rather than constructed, because which producers and collectors are\r\n * registered is the caller's: Carbon's equivalent is the scene's component\r\n * registry plus the quad and instanced-mesh collectors it gathers from\r\n * (EveSpaceScene.cpp:1509-1520).\r\n *\r\n * @param {CjsBatchManager} batchManager Initialized batch manager.\r\n * @returns {EveSpaceSceneRenderDriver} This driver.\r\n */\r\n SetBatchManager(batchManager)\r\n {\r\n this.#batchManager = batchManager ?? null;\r\n return this;\r\n }\r\n\r\n /** @returns {CjsBatchManager|null} The composed batch manager. */\r\n GetBatchManager()\r\n {\r\n return this.#batchManager;\r\n }\r\n\r\n /** @returns {TriFrustum} The frustum derived by the last Execute. */\r\n GetFrustum()\r\n {\r\n return this.#frustum;\r\n }\r\n\r\n /**\r\n * Whether this node can run against the requested destinations.\r\n *\r\n * Carbon guards on a scene plus either a camera or a view/projection pair\r\n * (EveSpaceSceneRenderDriver.cpp:406-425) and returns rather than failing,\r\n * because a driver with nothing to draw is a legitimate frame.\r\n *\r\n * @returns {boolean} Whether Execute would draw.\r\n */\r\n Validate(_destinationDimensions = null, _outputs = null, _realTime = 0, _simTime = 0)\r\n {\r\n if (!this.scene) return false;\r\n\r\n return Boolean(this.camera || (this.view && this.projection));\r\n }\r\n\r\n /**\r\n * Drives one frame of a space scene into its destination.\r\n *\r\n * The spine of Carbon's Execute, in Carbon's order. NOT here, each an\r\n * insertion into this same sequence: the background node, the reflection\r\n * pass, the depth prepass, shadows, SSAO, the light-list update, distortion\r\n * and velocity maps, transparent and additive submission, the scene overlay,\r\n * lensflare occlusion queries, post-process and 3D UI.\r\n *\r\n * Rendering-disabled is not a no-op in Carbon either: the scene still\r\n * updates, so simulation keeps running while nothing is drawn (cpp:408-419).\r\n *\r\n * @returns {boolean} Whether anything was submitted.\r\n */\r\n Execute(destinations = null, _outputs = null, realTime = 0, simTime = 0, _rootTimer = null, renderContext = null)\r\n {\r\n if (!renderContext || !this.Validate()) return false;\r\n\r\n this.camera?.Update(simTime);\r\n\r\n // Carbon sets the camera onto the renderer before the scene updates, so the\r\n // scene's own update reads this frame's view (cpp:476 -> 479).\r\n this.#SetCameraToRenderer(renderContext);\r\n\r\n const target = Array.isArray(destinations) ? destinations[0] ?? null : destinations;\r\n\r\n if (target) renderContext.SetRenderTarget(0, target);\r\n\r\n renderContext.Clear({ color: this.clearColor ?? null, depth: 1 });\r\n\r\n this.scene.Update(realTime, simTime);\r\n\r\n if (!this.enableRendering) return false;\r\n\r\n // BeginRender's CPU half, in the order EveSpaceScene's own contract gives.\r\n this.scene.BlendLightingOverrides();\r\n this.scene.UpdateFogSettings();\r\n this.scene.UpdateVisibility?.(renderContext.GetInverseViewTransform?.() ?? null);\r\n\r\n const map = this.#Collect(this.scene.GetRenderables?.([]) ?? [], renderContext);\r\n\r\n // Carbon populates per-frame data AFTER the gather, because the blended sun\r\n // colour is only current once lights have been gathered (cpp:1396-1426),\r\n // and BEFORE the render job's steps draw the batches. RenderBatches draws\r\n // immediately now - Carbon's shape - so the blocks must be populated AND\r\n // BOUND here, between the gather and the submission. They are bound the\r\n // way Carbon binds them (Tr2ConstantBufferFormats.cpp:54-66); until\r\n // 2026-09-10 nothing bound them at all on this path.\r\n this.scene.PopulatePerFramePSData?.(renderContext, null, null);\r\n this.scene.PopulatePerFrameVSData?.(renderContext, null);\r\n const scene = this.scene;\r\n\r\n BindPerFrameVSData(typeof scene.GetPerFrameVSData === \"function\" ? scene.GetPerFrameVSData() : null, renderContext);\r\n BindPerFramePSData(typeof scene.GetPerFramePSData === \"function\" ? scene.GetPerFramePSData() : null, renderContext);\r\n\r\n return this.#Submit(map, renderContext);\r\n }\r\n\r\n /**\r\n * Collects one frame's batches.\r\n *\r\n * @param {Array<object>} renderables Pre-culled renderables.\r\n * @param {object} renderContext Recording render context.\r\n * @returns {object|null} The batch map, or null without a manager.\r\n */\r\n #Collect(renderables, renderContext)\r\n {\r\n if (!this.#batchManager) return null;\r\n\r\n this.#batchManager.Collect(renderables, undefined, renderContext);\r\n\r\n return this.#batchManager.GetBatchMap();\r\n }\r\n\r\n /**\r\n * Submits one frame's collected batches.\r\n *\r\n * @param {object|null} map The batch map `#Collect` produced.\r\n * @param {object} renderContext Recording render context.\r\n * @returns {boolean} Whether anything was submitted.\r\n */\r\n #Submit(map, renderContext)\r\n {\r\n if (!map) return false;\r\n\r\n let submitted = false;\r\n\r\n for (const batchType of EveSpaceSceneRenderDriver.SubmittedBatchTypes)\r\n {\r\n const accumulator = map?.GetAccumulator?.(batchType) ?? null;\r\n\r\n // An empty accumulator is submitted anyway. Carbon does not test one, and\r\n // a pass that draws nothing is still a pass; skipping it here would move a\r\n // frame-planning decision into the driver.\r\n if (accumulator) submitted = renderContext.RenderBatches(accumulator) || submitted;\r\n }\r\n\r\n // Transparent, additive and distortion submission belongs here, after the\r\n // opaque family and before the overlay, exactly as Carbon orders them.\r\n\r\n return submitted;\r\n }\r\n\r\n /**\r\n * Puts this frame's projection and view onto the render context, and derives\r\n * the frustum the scene culls against.\r\n *\r\n * Carbon's SetCameraToRenderer (cpp:384-391) sets the projection then the view\r\n * transform. The frustum derivation is the driver step our own scene contract\r\n * names, because Carbon derives it inside BeginRender.\r\n *\r\n * @param {object} renderContext Recording render context.\r\n * @returns {void}\r\n */\r\n #SetCameraToRenderer(renderContext)\r\n {\r\n // Resolved explicitly rather than with ??, because a holder whose getter\r\n // returns null must yield NULL - coalescing would fall back to the holder\r\n // itself and hand a wrapper object to SetProjection.\r\n const projection = this.#Resolve(this.projection, \"GetProjection\");\r\n const view = this.#Resolve(this.camera, \"GetView\") ?? this.#Resolve(this.view, \"GetView\");\r\n\r\n if (projection) renderContext.SetProjection?.(projection);\r\n if (view) renderContext.SetViewTransform?.(view);\r\n\r\n // Derived only when there is something to derive from. Validate accepts a\r\n // camera OR a view/projection pair, and a holder can still yield null, so a\r\n // frame can legitimately reach here with nothing to cull against - that is\r\n // an empty frustum, not an exception thrown out of matrix code.\r\n const viewport = renderContext.GetViewport?.() ?? null;\r\n\r\n if (view && projection && viewport)\r\n {\r\n this.#frustum.DeriveFrustum(\r\n view,\r\n renderContext.GetViewPosition() ?? null,\r\n projection,\r\n viewport\r\n );\r\n }\r\n\r\n this.scene.StampFrameContext?.({ frustum: this.#frustum });\r\n }\r\n\r\n /**\r\n * Unwraps a holder through its getter, or takes it as the value itself.\r\n *\r\n * @param {object|null} holder Camera, view or projection holder.\r\n * @param {string} getter Accessor name.\r\n * @returns {object|null} The resolved value.\r\n */\r\n #Resolve(holder, getter)\r\n {\r\n if (!holder) return null;\r\n\r\n return typeof holder[getter] === \"function\" ? holder[getter]() ?? null : holder;\r\n }\r\n\r\n static AmbientOcclusionQuality = AmbientOcclusionQuality;\r\n\r\n static AntiAliasingQuality = AntiAliasingQuality;\r\n\r\n static EveVisualizeMethod = EveVisualizeMethod;\r\n\r\n static Quality = Quality;\r\n\r\n static ShadowQuality = ShadowQuality;\r\n\r\n static Tr2VolumerticQuality = Tr2VolumerticQuality;\r\n\r\n static PixelFormat = PixelFormat;\r\n\r\n}\r\n"],"names":["_EveSpaceSceneRenderD","_identity","EveSpaceSceneRenderDriver","CjsModel","e","_init_aoQuality","_init_extra_aoQuality","_init_antiAliasingQuality","_init_extra_antiAliasingQuality","_init_visualizeMethod","_init_extra_visualizeMethod","_init_postProcessingQuality","_init_extra_postProcessingQuality","_init_shadowQuality","_init_extra_shadowQuality","_init_customStencilFormat","_init_extra_customStencilFormat","_init_internalPixelFormat","_init_extra_internalPixelFormat","_init_volumetricQuality","_init_extra_volumetricQuality","_init_scene","_init_extra_scene","_init_name","_init_extra_name","_init_enableUpscaling","_init_extra_enableUpscaling","_init_projection","_init_extra_projection","_init_camera","_init_extra_camera","_init_view","_init_extra_view","_init_clearColor","_init_extra_clearColor","_init_distortionEffect","_init_extra_distortionEffect","_init_enableDistortion","_init_extra_enableDistortion","_init_reflectionCorrectionEnabled","_init_extra_reflectionCorrectionEnabled","_init_forceOpaqueBuffer","_init_extra_forceOpaqueBuffer","_init_forceNormalMap","_init_extra_forceNormalMap","_init_forceVelocityMap","_init_extra_forceVelocityMap","_init_fpsRenderer","_init_extra_fpsRenderer","_init_mainPassRenderingEnabled","_init_extra_mainPassRenderingEnabled","_init_toolsScenes","_init_extra_toolsScenes","_init_depthPassTechnique","_init_extra_depthPassTechnique","_init_postProcess","_init_extra_postProcess","_init_showFPS","_init_extra_showFPS","_init_sceneOverlay","_init_extra_sceneOverlay","_init_background","_init_extra_background","_init_SSAO","_init_extra_SSAO","_init_enableRendering","_init_extra_enableRendering","_initProto","c","_initClass","_applyDecs","type","define","className","family","purpose","edit","readwrite","int32","enum","persistOnly","model","string","boolean","objectRef","rawStruct","read","persist","list","carbon","method","impl","notImplemented","aoQuality","antiAliasingQuality","visualizeMethod","postProcessingQuality","shadowQuality","customStencilFormat","internalPixelFormat","volumetricQuality","scene","name","enableUpscaling","projection","camera","view","clearColor","distortionEffect","enableDistortion","reflectionCorrectionEnabled","forceOpaqueBuffer","forceNormalMap","forceVelocityMap","fpsRenderer","mainPassRenderingEnabled","toolsScenes","depthPassTechnique","postProcess","showFPS","sceneOverlay","background","SSAO","enableRendering","GetAllTempTextures","args","Error","TriFrustum","SetBatchManager","batchManager","GetBatchManager","GetFrustum","Validate","_destinationDimensions","_outputs","_realTime","_simTime","Boolean","Execute","destinations","realTime","simTime","_rootTimer","renderContext","Update","target","Array","isArray","SetRenderTarget","Clear","color","depth","BlendLightingOverrides","UpdateFogSettings","UpdateVisibility","GetInverseViewTransform","map","GetRenderables","PopulatePerFramePSData","PopulatePerFrameVSData","BindPerFrameVSData","GetPerFrameVSData","BindPerFramePSData","GetPerFramePSData","#Collect","renderables","Collect","undefined","GetBatchMap","#Submit","submitted","batchType","SubmittedBatchTypes","accumulator","GetAccumulator","RenderBatches","#SetCameraToRenderer","SetProjection","SetViewTransform","viewport","GetViewport","DeriveFrustum","GetViewPosition","StampFrameContext","frustum","#Resolve","holder","getter","Object","freeze","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","AmbientOcclusionQuality","AntiAliasingQuality","EveVisualizeMethod","Quality","ShadowQuality","Tr2VolumerticQuality","PixelFormat","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveSpaceSceneRenderDriver.js","sources":["../../../../../src/trinity/eve/scene/EveSpaceSceneRenderDriver.js"],"sourcesContent":["// Source: trinity/trinity/Eve/EveSpaceSceneRenderDriver.{h,cpp}\r\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\r\n//\r\n// THE FRAME DRIVER. Carbon's EveSpaceScene::Render is an empty function body\r\n// (EveSpaceScene.cpp:2947-2949) and TriStepRenderScene calls it anyway, so a\r\n// scene draws nothing through that path in Carbon either. The real driver is\r\n// this class, an ITr2RenderNode reached through Tr2StepExecuteRenderNode from a\r\n// render job (EveSpaceSceneRenderDriver.cpp:404).\r\n//\r\n// DELIBERATELY PARTIAL. Carbon's Execute is a forty-step frame: background,\r\n// reflection, depth prepass, shadows, SSAO, light lists, distortion, the main\r\n// colour pass, overlays, lensflare occlusion, post-process and 3D UI. This\r\n// implements the spine - update, gather, submit opaque and decal - and nothing\r\n// else. Every omitted stage is a later insertion into the SAME sequence rather\r\n// than a redesign, and they are listed on Execute so a reader can tell \"not\r\n// yet\" from \"not needed\".\r\n//\r\n// It does not own the passes Carbon's scene owns. CarbonEngineJS splits\r\n// Carbon's BeginRender/GatherBatches into scene-owned CPU methods that a driver\r\n// calls in order; that contract is written on EveSpaceScene itself, and this is\r\n// the driver it describes.\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { PixelFormat } from \"#consts/render-context\";\r\nimport { AmbientOcclusionQuality, AntiAliasingQuality, EveVisualizeMethod } from \"../../generated/eve/enums.js\";\r\nimport { ShadowQuality, Tr2VolumerticQuality } from \"../../generated/trinityCore/enums.js\";\r\nimport { Quality } from \"../../generated/postProcess/enums.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\nimport { CjsBatchManager } from \"../../core/batch/CjsBatchManager.js\";\r\nimport { BindPerFramePSData, BindPerFrameVSData } from \"../../core/rawData/Tr2ConstantBufferFormats.js\";\r\nimport { TriFrustum } from \"../../core/view/TriFrustum.js\";\r\n\r\n/** Collects camera, quality, pass-toggle, overlay, background, and post-process state for driving an EVE space-scene frame. */\r\n@type.define({ className: \"EveSpaceSceneRenderDriver\", family: \"eve/scene\", purpose: \"Collects camera, quality, pass-toggle, overlay, background, and post-process state for driving an EVE space-scene frame.\" })\r\nexport class EveSpaceSceneRenderDriver extends CjsModel\r\n{\r\n\r\n /** m_settings.aoQuality (AmbientOcclusionQuality - enum AmbientOcclusionQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"AmbientOcclusionQuality\")\r\n aoQuality = 0;\r\n\r\n /** m_settings.antiAliasingQuality (AntiAliasingQuality - enum AntiAliasingQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"AntiAliasingQuality\")\r\n antiAliasingQuality = 0;\r\n\r\n /** m_settings.visualizeMethod (EveSpaceScene::EveVisualizeMethod - enum EveVisualizeMethod) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"EveVisualizeMethod\")\r\n visualizeMethod = 0;\r\n\r\n /** m_settings.postProcessingQuality (PostProcess::Quality - enum Quality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"Quality\")\r\n postProcessingQuality = 0;\r\n\r\n /** m_settings.shadowQuality (ShadowQuality - enum ShadowQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"ShadowQuality\")\r\n shadowQuality = 0;\r\n\r\n /** m_customStencilFormat (ImageIO::PixelFormat - enum PixelFormat) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"PixelFormat\")\r\n customStencilFormat = 0;\r\n\r\n /** m_internalPixelFormat (ImageIO::PixelFormat - enum PixelFormat) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"PixelFormat\")\r\n internalPixelFormat = 10;\r\n\r\n /** m_settings.volumetricQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, ENUM] */\r\n @edit.readwrite\r\n @type.int32\r\n @type.enum(\"Tr2VolumerticQuality\")\r\n volumetricQuality = 0;\r\n\r\n /** m_scene (EveSpaceScenePtr) [PERSISTONLY] */\r\n @edit.persistOnly\r\n @type.model(\"EveSpaceScene\")\r\n scene = null;\r\n\r\n /** m_name (std::string) [READWRITE] */\r\n @edit.readwrite\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_settings.enableUpscaling (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableUpscaling = false;\r\n\r\n /** m_projection (TriProjectionPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"TriProjection\")\r\n projection = null;\r\n\r\n /** m_camera (EveCameraPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"EveCamera\")\r\n camera = null;\r\n\r\n /** m_view (TriViewPtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"TriView\")\r\n view = null;\r\n\r\n /** m_settings.clearColor (Settings) [READWRITE] */\r\n @edit.readwrite\r\n @type.rawStruct(\"Settings\")\r\n clearColor = null;\r\n\r\n /** m_distortionEffect (Tr2EffectPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"Tr2Effect\")\r\n distortionEffect = null;\r\n\r\n /** m_settings.enableDistortion (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableDistortion = false;\r\n\r\n /** m_reflectionCorrectionEnabled (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n reflectionCorrectionEnabled = true;\r\n\r\n /** m_settings.forceOpaqueBuffer (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceOpaqueBuffer = false;\r\n\r\n /** m_settings.forceNormalMap (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceNormalMap = false;\r\n\r\n /** m_settings.forceVelocityMap (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n forceVelocityMap = false;\r\n\r\n /** m_fpsRenderer (TriStepRenderFpsPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"TriStepRenderFps\")\r\n fpsRenderer = null;\r\n\r\n /** m_mainPassRenderingEnabled (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n mainPassRenderingEnabled = true;\r\n\r\n /** m_toolsScenes (PITr2SceneVector) [READ] */\r\n @edit.read\r\n @type.list(\"ITr2Scene\")\r\n toolsScenes = [];\r\n\r\n /** m_depthPassTechnique (unknown) [READWRITE] */\r\n @edit.readwrite\r\n @type.string\r\n depthPassTechnique = \"Depth\";\r\n\r\n /** m_postProcess (Tr2PostProcessRendererPtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"Tr2PostProcessRenderer\")\r\n postProcess = null;\r\n\r\n /** m_settings.showFPS (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n showFPS = false;\r\n\r\n /** m_sceneOverlay (ITr2RenderNodePtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"ITr2RenderNode\")\r\n sceneOverlay = null;\r\n\r\n /** m_background (ITr2RenderNodePtr) [READWRITE] */\r\n @edit.readwrite\r\n @type.objectRef(\"ITr2RenderNode\")\r\n background = null;\r\n\r\n /** m_ssao (Tr2SSAOPtr) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"Tr2SSAO\")\r\n SSAO = null;\r\n\r\n /** m_enableRendering (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n enableRendering = true;\r\n\r\n /** Carbon method GetAllTempTextures (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetAllTempTextures(...args)\r\n {\r\n throw new Error(\"EveSpaceSceneRenderDriver.GetAllTempTextures is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** The frustum this driver derives each frame; Carbon keeps one per driver. */\r\n #frustum = new TriFrustum();\r\n\r\n /** Collects renderables into batches; composed, so the caller owns its producers. */\r\n #batchManager = null;\r\n\r\n /**\r\n * The batch types this driver submits, in submission order.\r\n *\r\n * Carbon's main pass draws OPAQUE then DECAL (EveSpaceScene.cpp:2725/2731),\r\n * with transparent and additive following in the same pass (:2758). Only the\r\n * first two are submitted here; the rest are a later insertion at the marked\r\n * point in #Submit.\r\n */\r\n static SubmittedBatchTypes = Object.freeze([\r\n TriBatchType.TRIBATCHTYPE_OPAQUE,\r\n TriBatchType.TRIBATCHTYPE_DECAL\r\n ]);\r\n\r\n /**\r\n * Supplies the batch manager this driver collects through.\r\n *\r\n * Composed rather than constructed, because which producers and collectors are\r\n * registered is the caller's: Carbon's equivalent is the scene's component\r\n * registry plus the quad and instanced-mesh collectors it gathers from\r\n * (EveSpaceScene.cpp:1509-1520).\r\n *\r\n * @param {CjsBatchManager} batchManager Initialized batch manager.\r\n * @returns {EveSpaceSceneRenderDriver} This driver.\r\n */\r\n SetBatchManager(batchManager)\r\n {\r\n this.#batchManager = batchManager ?? null;\r\n return this;\r\n }\r\n\r\n /** @returns {CjsBatchManager|null} The composed batch manager. */\r\n GetBatchManager()\r\n {\r\n return this.#batchManager;\r\n }\r\n\r\n /** @returns {TriFrustum} The frustum derived by the last Execute. */\r\n GetFrustum()\r\n {\r\n return this.#frustum;\r\n }\r\n\r\n /**\r\n * Whether this node can run against the requested destinations.\r\n *\r\n * Carbon guards on a scene plus either a camera or a view/projection pair\r\n * (EveSpaceSceneRenderDriver.cpp:406-425) and returns rather than failing,\r\n * because a driver with nothing to draw is a legitimate frame.\r\n *\r\n * @returns {boolean} Whether Execute would draw.\r\n */\r\n Validate(_destinationDimensions = null, _outputs = null, _realTime = 0, _simTime = 0)\r\n {\r\n if (!this.scene) return false;\r\n\r\n return Boolean(this.camera || (this.view && this.projection));\r\n }\r\n\r\n /**\r\n * Drives one frame of a space scene into its destination.\r\n *\r\n * The spine of Carbon's Execute, in Carbon's order. NOT here, each an\r\n * insertion into this same sequence: the background node, the reflection\r\n * pass, the depth prepass, shadows, SSAO, the light-list update, distortion\r\n * and velocity maps, transparent and additive submission, the scene overlay,\r\n * lensflare occlusion queries, post-process and 3D UI.\r\n *\r\n * Rendering-disabled is not a no-op in Carbon either: the scene still\r\n * updates, so simulation keeps running while nothing is drawn (cpp:408-419).\r\n *\r\n * @returns {boolean} Whether anything was submitted.\r\n */\r\n Execute(destinations = null, _outputs = null, realTime = 0, simTime = 0, _rootTimer = null, renderContext = null)\r\n {\r\n if (!renderContext || !this.Validate()) return false;\r\n\r\n this.camera?.Update(simTime);\r\n\r\n // Carbon sets the camera onto the renderer before the scene updates, so the\r\n // scene's own update reads this frame's view (cpp:476 -> 479).\r\n this.#SetCameraToRenderer(renderContext);\r\n\r\n const target = Array.isArray(destinations) ? destinations[0] ?? null : destinations;\r\n\r\n if (target) renderContext.SetRenderTarget(0, target);\r\n\r\n renderContext.Clear({ color: this.clearColor ?? null, depth: 1 });\r\n\r\n this.scene.Update(realTime, simTime);\r\n\r\n if (!this.enableRendering) return false;\r\n\r\n // BeginRender's CPU half, in the order EveSpaceScene's own contract gives.\r\n // The impact data texture is republished first (EveSpaceScene.cpp:1324-1327).\r\n if (this.scene.dataTextureMgr) this.scene.dataTextureMgr.SetVariables();\r\n this.scene.BlendLightingOverrides();\r\n this.scene.UpdateFogSettings();\r\n this.scene.UpdateVisibility?.(renderContext.GetInverseViewTransform?.() ?? null);\r\n\r\n const map = this.#Collect(this.scene.GetRenderables?.([]) ?? [], renderContext);\r\n\r\n // Carbon populates per-frame data AFTER the gather, because the blended sun\r\n // colour is only current once lights have been gathered (cpp:1396-1426),\r\n // and BEFORE the render job's steps draw the batches. RenderBatches draws\r\n // immediately now - Carbon's shape - so the blocks must be populated AND\r\n // BOUND here, between the gather and the submission. They are bound the\r\n // way Carbon binds them (Tr2ConstantBufferFormats.cpp:54-66); until\r\n // 2026-09-10 nothing bound them at all on this path.\r\n this.scene.PopulatePerFramePSData?.(renderContext, null, null);\r\n this.scene.PopulatePerFrameVSData?.(renderContext, null);\r\n const scene = this.scene;\r\n\r\n BindPerFrameVSData(typeof scene.GetPerFrameVSData === \"function\" ? scene.GetPerFrameVSData() : null, renderContext);\r\n BindPerFramePSData(typeof scene.GetPerFramePSData === \"function\" ? scene.GetPerFramePSData() : null, renderContext);\r\n\r\n return this.#Submit(map, renderContext);\r\n }\r\n\r\n /**\r\n * Collects one frame's batches.\r\n *\r\n * @param {Array<object>} renderables Pre-culled renderables.\r\n * @param {object} renderContext Recording render context.\r\n * @returns {object|null} The batch map, or null without a manager.\r\n */\r\n #Collect(renderables, renderContext)\r\n {\r\n if (!this.#batchManager) return null;\r\n\r\n this.#batchManager.Collect(renderables, undefined, renderContext);\r\n\r\n return this.#batchManager.GetBatchMap();\r\n }\r\n\r\n /**\r\n * Submits one frame's collected batches.\r\n *\r\n * @param {object|null} map The batch map `#Collect` produced.\r\n * @param {object} renderContext Recording render context.\r\n * @returns {boolean} Whether anything was submitted.\r\n */\r\n #Submit(map, renderContext)\r\n {\r\n if (!map) return false;\r\n\r\n let submitted = false;\r\n\r\n for (const batchType of EveSpaceSceneRenderDriver.SubmittedBatchTypes)\r\n {\r\n const accumulator = map?.GetAccumulator?.(batchType) ?? null;\r\n\r\n // An empty accumulator is submitted anyway. Carbon does not test one, and\r\n // a pass that draws nothing is still a pass; skipping it here would move a\r\n // frame-planning decision into the driver.\r\n if (accumulator) submitted = renderContext.RenderBatches(accumulator) || submitted;\r\n }\r\n\r\n // Transparent, additive and distortion submission belongs here, after the\r\n // opaque family and before the overlay, exactly as Carbon orders them.\r\n\r\n return submitted;\r\n }\r\n\r\n /**\r\n * Puts this frame's projection and view onto the render context, and derives\r\n * the frustum the scene culls against.\r\n *\r\n * Carbon's SetCameraToRenderer (cpp:384-391) sets the projection then the view\r\n * transform. The frustum derivation is the driver step our own scene contract\r\n * names, because Carbon derives it inside BeginRender.\r\n *\r\n * @param {object} renderContext Recording render context.\r\n * @returns {void}\r\n */\r\n #SetCameraToRenderer(renderContext)\r\n {\r\n // Resolved explicitly rather than with ??, because a holder whose getter\r\n // returns null must yield NULL - coalescing would fall back to the holder\r\n // itself and hand a wrapper object to SetProjection.\r\n const projection = this.#Resolve(this.projection, \"GetProjection\");\r\n const view = this.#Resolve(this.camera, \"GetView\") ?? this.#Resolve(this.view, \"GetView\");\r\n\r\n if (projection) renderContext.SetProjection?.(projection);\r\n if (view) renderContext.SetViewTransform?.(view);\r\n\r\n // Derived only when there is something to derive from. Validate accepts a\r\n // camera OR a view/projection pair, and a holder can still yield null, so a\r\n // frame can legitimately reach here with nothing to cull against - that is\r\n // an empty frustum, not an exception thrown out of matrix code.\r\n const viewport = renderContext.GetViewport?.() ?? null;\r\n\r\n if (view && projection && viewport)\r\n {\r\n this.#frustum.DeriveFrustum(\r\n view,\r\n renderContext.GetViewPosition() ?? null,\r\n projection,\r\n viewport\r\n );\r\n }\r\n\r\n this.scene.StampFrameContext?.({ frustum: this.#frustum });\r\n }\r\n\r\n /**\r\n * Unwraps a holder through its getter, or takes it as the value itself.\r\n *\r\n * @param {object|null} holder Camera, view or projection holder.\r\n * @param {string} getter Accessor name.\r\n * @returns {object|null} The resolved value.\r\n */\r\n #Resolve(holder, getter)\r\n {\r\n if (!holder) return null;\r\n\r\n return typeof holder[getter] === \"function\" ? holder[getter]() ?? null : holder;\r\n }\r\n\r\n static AmbientOcclusionQuality = AmbientOcclusionQuality;\r\n\r\n static AntiAliasingQuality = AntiAliasingQuality;\r\n\r\n static EveVisualizeMethod = EveVisualizeMethod;\r\n\r\n static Quality = Quality;\r\n\r\n static ShadowQuality = ShadowQuality;\r\n\r\n static Tr2VolumerticQuality = Tr2VolumerticQuality;\r\n\r\n static PixelFormat = PixelFormat;\r\n\r\n}\r\n"],"names":["_EveSpaceSceneRenderD","_identity","EveSpaceSceneRenderDriver","CjsModel","e","_init_aoQuality","_init_extra_aoQuality","_init_antiAliasingQuality","_init_extra_antiAliasingQuality","_init_visualizeMethod","_init_extra_visualizeMethod","_init_postProcessingQuality","_init_extra_postProcessingQuality","_init_shadowQuality","_init_extra_shadowQuality","_init_customStencilFormat","_init_extra_customStencilFormat","_init_internalPixelFormat","_init_extra_internalPixelFormat","_init_volumetricQuality","_init_extra_volumetricQuality","_init_scene","_init_extra_scene","_init_name","_init_extra_name","_init_enableUpscaling","_init_extra_enableUpscaling","_init_projection","_init_extra_projection","_init_camera","_init_extra_camera","_init_view","_init_extra_view","_init_clearColor","_init_extra_clearColor","_init_distortionEffect","_init_extra_distortionEffect","_init_enableDistortion","_init_extra_enableDistortion","_init_reflectionCorrectionEnabled","_init_extra_reflectionCorrectionEnabled","_init_forceOpaqueBuffer","_init_extra_forceOpaqueBuffer","_init_forceNormalMap","_init_extra_forceNormalMap","_init_forceVelocityMap","_init_extra_forceVelocityMap","_init_fpsRenderer","_init_extra_fpsRenderer","_init_mainPassRenderingEnabled","_init_extra_mainPassRenderingEnabled","_init_toolsScenes","_init_extra_toolsScenes","_init_depthPassTechnique","_init_extra_depthPassTechnique","_init_postProcess","_init_extra_postProcess","_init_showFPS","_init_extra_showFPS","_init_sceneOverlay","_init_extra_sceneOverlay","_init_background","_init_extra_background","_init_SSAO","_init_extra_SSAO","_init_enableRendering","_init_extra_enableRendering","_initProto","c","_initClass","_applyDecs","type","define","className","family","purpose","edit","readwrite","int32","enum","persistOnly","model","string","boolean","objectRef","rawStruct","read","persist","list","carbon","method","impl","notImplemented","aoQuality","antiAliasingQuality","visualizeMethod","postProcessingQuality","shadowQuality","customStencilFormat","internalPixelFormat","volumetricQuality","scene","name","enableUpscaling","projection","camera","view","clearColor","distortionEffect","enableDistortion","reflectionCorrectionEnabled","forceOpaqueBuffer","forceNormalMap","forceVelocityMap","fpsRenderer","mainPassRenderingEnabled","toolsScenes","depthPassTechnique","postProcess","showFPS","sceneOverlay","background","SSAO","enableRendering","GetAllTempTextures","args","Error","TriFrustum","SetBatchManager","batchManager","GetBatchManager","GetFrustum","Validate","_destinationDimensions","_outputs","_realTime","_simTime","Boolean","Execute","destinations","realTime","simTime","_rootTimer","renderContext","Update","target","Array","isArray","SetRenderTarget","Clear","color","depth","dataTextureMgr","SetVariables","BlendLightingOverrides","UpdateFogSettings","UpdateVisibility","GetInverseViewTransform","map","GetRenderables","PopulatePerFramePSData","PopulatePerFrameVSData","BindPerFrameVSData","GetPerFrameVSData","BindPerFramePSData","GetPerFramePSData","#Collect","renderables","Collect","undefined","GetBatchMap","#Submit","submitted","batchType","SubmittedBatchTypes","accumulator","GetAccumulator","RenderBatches","#SetCameraToRenderer","SetProjection","SetViewTransform","viewport","GetViewport","DeriveFrustum","GetViewPosition","StampFrameContext","frustum","#Resolve","holder","getter","Object","freeze","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","AmbientOcclusionQuality","AntiAliasingQuality","EveVisualizeMethod","Quality","ShadowQuality","Tr2VolumerticQuality","PixelFormat","constructor"],"mappings":"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"}
|