@carbonenginejs/runtime-resource 0.9.2 → 0.10.0
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/NOTICE +3 -2
- package/README.md +47 -6
- package/dist/CjsMotherLode.js +88 -88
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +717 -228
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManFetchProvider.js +94 -0
- package/dist/CjsResManFetchProvider.js.map +1 -0
- package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
- package/dist/CjsResManWorkQueue.js.map +1 -0
- package/dist/format/CjsBlueReader.js +89 -0
- package/dist/format/CjsBlueReader.js.map +1 -1
- package/dist/format/CjsFormat.js +42 -16
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +4 -0
- package/dist/format/CjsReader.js.map +1 -1
- package/dist/format/CjsResourceProbe.js +2 -0
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/format/payloadContract.js +20 -0
- package/dist/format/payloadContract.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +15 -1
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +125 -0
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/formats/black/core/helpers.js +17 -0
- package/dist/formats/black/core/helpers.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +8 -0
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +20 -0
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +40 -3
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
- package/dist/formats/cmf/core/binary.js +71 -0
- package/dist/formats/cmf/core/binary.js.map +1 -1
- package/dist/formats/cmf/core/buffers.js +4 -0
- package/dist/formats/cmf/core/buffers.js.map +1 -1
- package/dist/formats/cmf/core/helpers.js +31 -0
- package/dist/formats/cmf/core/helpers.js.map +1 -1
- package/dist/formats/cmf/core/schema.js +10 -0
- package/dist/formats/cmf/core/schema.js.map +1 -1
- package/dist/formats/cmf/core/shared.js +9 -0
- package/dist/formats/cmf/core/shared.js.map +1 -1
- package/dist/formats/cmf/core/writer.js +54 -0
- package/dist/formats/cmf/core/writer.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +10 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -1
- package/dist/formats/dds/core/bc7.js +16 -0
- package/dist/formats/dds/core/bc7.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +47 -0
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/fbx/core/helpers.js +21 -0
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +49 -0
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +20 -0
- package/dist/formats/flac/core/helpers.js.map +1 -1
- package/dist/formats/gif/CjsGifFormat.js +49 -0
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +20 -0
- package/dist/formats/gif/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +15 -0
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/parser.js +13 -0
- package/dist/formats/gltf/core/parser.js.map +1 -1
- package/dist/formats/gltf/core/targets.js +10 -0
- package/dist/formats/gltf/core/targets.js.map +1 -1
- package/dist/formats/gr2/core/bitknit2.js +2 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -1
- package/dist/formats/gr2/core/helpers.js +20 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -1
- package/dist/formats/gr2/core/targets.js +10 -0
- package/dist/formats/gr2/core/targets.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +52 -0
- package/dist/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/formats/jpeg/core/jpeg.js +93 -0
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +37 -0
- package/dist/formats/mp3/core/helpers.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +35 -0
- package/dist/formats/mp4/core/helpers.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +49 -0
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +23 -0
- package/dist/formats/ogg/core/helpers.js.map +1 -1
- package/dist/formats/ogg/core/vorbis.js +13 -0
- package/dist/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/formats/png/core/helpers.js +52 -0
- package/dist/formats/png/core/helpers.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +2 -0
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +52 -0
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/helpers.js +19 -0
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/stl.js +8 -0
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +10 -0
- package/dist/formats/stl/core/targets.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +47 -0
- package/dist/formats/tga/core/helpers.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +37 -0
- package/dist/formats/wav/core/helpers.js.map +1 -1
- package/dist/formats/webm/core/helpers.js +35 -0
- package/dist/formats/webm/core/helpers.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +49 -0
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +23 -0
- package/dist/formats/webp/core/helpers.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +8 -0
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +2 -0
- package/dist/formats/wem/core/bitStream.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +20 -0
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/yaml/CjsYamlFormat.js +45 -0
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +10 -0
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/index.js +56 -43
- package/dist/index.js.map +1 -1
- package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
- package/dist/resource/CjsResource.js.map +1 -0
- package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
- package/dist/resource/Tr2LightProfileRes.js.map +1 -0
- package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
- package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
- package/dist/resource/audio/CjsAudioRes.js +213 -0
- package/dist/resource/audio/CjsAudioRes.js.map +1 -0
- package/dist/resource/audio/index.js +4 -0
- package/dist/resource/audio/index.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
- package/dist/resource/geometry/MeshDecalData.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
- package/dist/resource/geometry/TriGeometryRes.js +656 -0
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
- package/dist/resource/geometry/TriJointBinding.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
- package/dist/resource/geometry/granny/enums.js.map +1 -0
- package/dist/resource/geometry/granny/index.js +6 -0
- package/dist/resource/geometry/granny/index.js.map +1 -0
- package/dist/resource/geometry/index.js +17 -0
- package/dist/resource/geometry/index.js.map +1 -0
- package/dist/resource/index.js +52 -0
- package/dist/resource/index.js.map +1 -0
- package/dist/resource/resourceBoundary.js +64 -0
- package/dist/resource/resourceBoundary.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +420 -0
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
- package/dist/{resources → resource/shader}/Tr2MaterialArea.js +9 -4
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
- package/dist/{resources → resource/shader}/Tr2MaterialMesh.js +8 -3
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
- package/dist/{resources → resource/shader}/Tr2MaterialRes.js +10 -4
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
- package/dist/resource/shader/Tr2Shader.js +250 -0
- package/dist/resource/shader/Tr2Shader.js.map +1 -0
- package/dist/{resources → resource/shader}/Tr2ShaderPermutation.js +13 -7
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
- package/dist/resource/shader/index.js +17 -0
- package/dist/resource/shader/index.js.map +1 -0
- package/dist/resource/shader/portable.js +33 -0
- package/dist/resource/shader/portable.js.map +1 -0
- package/dist/resource/shader/portableValidation.js +461 -0
- package/dist/resource/shader/portableValidation.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +100 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +34 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +113 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +141 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +107 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js +90 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +235 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +71 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2Pass.js +111 -0
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +80 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
- package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
- package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
- package/dist/resource/texture/TriTextureRes.js.map +1 -0
- package/dist/resource/texture/index.js +15 -0
- package/dist/resource/texture/index.js.map +1 -0
- package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
- package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
- package/dist/worker/CjsResManMainThreadLoader.js +87 -0
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
- package/dist/worker/CjsResManWorker.js +217 -0
- package/dist/worker/CjsResManWorker.js.map +1 -0
- package/dist/worker/CjsResManWorkerLoader.js +434 -0
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
- package/dist/worker/protocol.js +12 -0
- package/dist/worker/protocol.js.map +1 -0
- package/docs/README.md +16 -3
- package/docs/architecture.md +39 -16
- package/docs/concepts/resource-lifecycle.md +2 -1
- package/docs/formats/README.md +4 -0
- package/docs/reference/classes/README.md +6 -4
- package/docs/reference/classes/audio.md +30 -0
- package/docs/reference/classes/core.md +31 -11
- package/docs/reference/classes/resources.md +151 -41
- package/docs/reference/classes/texture.md +7 -7
- package/docs/reference/motherlode-cache.md +17 -0
- package/docs/reference/queues.md +9 -1
- package/docs/reference/workers.md +135 -0
- package/docs/roadmap.md +27 -1
- package/package.json +8 -1
- package/dist/CjsResManQueue.js.map +0 -1
- package/dist/CjsResource.js.map +0 -1
- package/dist/CjsResourceSource.js +0 -68
- package/dist/CjsResourceSource.js.map +0 -1
- package/dist/resourcePath.js +0 -18
- package/dist/resourcePath.js.map +0 -1
- package/dist/resourceStates.js +0 -9
- package/dist/resourceStates.js.map +0 -1
- package/dist/resources/AudioGeometryResData.js.map +0 -1
- package/dist/resources/GStateBindingCallbackData.js.map +0 -1
- package/dist/resources/MeshDecalData.js.map +0 -1
- package/dist/resources/MeshDecalLodData.js.map +0 -1
- package/dist/resources/Tr2EffectRes.js +0 -71
- package/dist/resources/Tr2EffectRes.js.map +0 -1
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
- package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
- package/dist/resources/Tr2ImageRes.js.map +0 -1
- package/dist/resources/Tr2LightProfileRes.js.map +0 -1
- package/dist/resources/Tr2MaterialArea.js.map +0 -1
- package/dist/resources/Tr2MaterialMesh.js.map +0 -1
- package/dist/resources/Tr2MaterialRes.js.map +0 -1
- package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
- package/dist/resources/Tr2TextureLodManager.js.map +0 -1
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
- package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
- package/dist/resources/Tr2TexturePipeline.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
- package/dist/resources/TriGeometryRes.js +0 -239
- package/dist/resources/TriGeometryRes.js.map +0 -1
- package/dist/resources/TriGeometryResAreaData.js.map +0 -1
- package/dist/resources/TriGeometryResJointData.js.map +0 -1
- package/dist/resources/TriGeometryResLodData.js.map +0 -1
- package/dist/resources/TriGeometryResMeshData.js.map +0 -1
- package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
- package/dist/resources/TriGrannyRes.js.map +0 -1
- package/dist/resources/TriJointBinding.js.map +0 -1
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
- package/dist/resources/TriRtGeometryConstants.js.map +0 -1
- package/dist/resources/TriTextureRes.js.map +0 -1
- package/dist/resources/enums.js.map +0 -1
- package/dist/resources/resourceBoundary.js +0 -47
- package/dist/resources/resourceBoundary.js.map +0 -1
- package/dist/resources/texturePipelineBehavior.js.map +0 -1
- package/dist/texture/CjsTextureArrayRes.js.map +0 -1
- package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { type, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
3
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
4
|
+
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
5
|
+
import { cloneCarbonValue } from '@carbonenginejs/runtime-utils/types';
|
|
6
|
+
|
|
7
|
+
let _initStatic, _initClass, _init_name, _init_extra_name, _init_hasName, _init_extra_hasName, _init_sampler, _init_extra_sampler, _init_isDynamic, _init_extra_isDynamic;
|
|
8
|
+
|
|
9
|
+
/** Reflected sampler name and complete device-free sampler descriptor. */
|
|
10
|
+
let _Tr2SamplerSetup;
|
|
11
|
+
class Tr2SamplerSetup extends CjsModel {
|
|
12
|
+
static {
|
|
13
|
+
({
|
|
14
|
+
e: [_init_name, _init_extra_name, _init_hasName, _init_extra_hasName, _init_sampler, _init_extra_sampler, _init_isDynamic, _init_extra_isDynamic, _initStatic],
|
|
15
|
+
c: [_Tr2SamplerSetup, _initClass]
|
|
16
|
+
} = _applyDecs2311(this, [type.define({
|
|
17
|
+
className: "Tr2SamplerSetup",
|
|
18
|
+
family: "shader"
|
|
19
|
+
})], [[[type, type.string], 16, "name"], [[impl, impl.adapted, void 0, impl.reason("The schema string field cannot distinguish an authored null sampler name from an empty name; portable reflection must retain that distinction for static sampler records."), type, type.boolean], 16, "hasName"], [type.rawStruct("Tr2SamplerStateAL"), 0, "sampler"], [[impl, impl.adapted, void 0, impl.reason("The portable effect contract distinguishes dynamic and static sampler declarations before an engine creates sampler state."), type, type.boolean], 16, "isDynamic"], [[impl, impl.custom, void 0, impl.reason("Carbon reads compiled effect bytes directly; CarbonEngineJS hydrates the browser-safe portable-reflection contract after format parsing.")], 26, "fromPortable"]], 0, void 0, CjsModel));
|
|
20
|
+
_initStatic(this);
|
|
21
|
+
}
|
|
22
|
+
constructor(...args) {
|
|
23
|
+
super(...args);
|
|
24
|
+
_init_extra_isDynamic(this);
|
|
25
|
+
}
|
|
26
|
+
/** name (const char*) */
|
|
27
|
+
name = _init_name(this, "");
|
|
28
|
+
|
|
29
|
+
/** Whether the source sampler carried a name rather than authored null. */
|
|
30
|
+
hasName = (_init_extra_name(this), _init_hasName(this, false));
|
|
31
|
+
|
|
32
|
+
/** sampler (Tr2SamplerStateAL) */
|
|
33
|
+
sampler = (_init_extra_hasName(this), _init_sampler(this, null));
|
|
34
|
+
|
|
35
|
+
/** Whether the sampler occupies a dynamic register rather than static signature state. */
|
|
36
|
+
isDynamic = (_init_extra_sampler(this), _init_isDynamic(this, false));
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Construct a canonical sampler record from JS/JSON model values.
|
|
40
|
+
*
|
|
41
|
+
* @param {object} values Canonical model values.
|
|
42
|
+
* @param {object} options CjsModel import options.
|
|
43
|
+
* @returns {Tr2SamplerSetup} Hydrated sampler.
|
|
44
|
+
*/
|
|
45
|
+
static from(values = {}, options = {}) {
|
|
46
|
+
let normalized = values;
|
|
47
|
+
if (values && Object.hasOwn(values, "name") && !Object.hasOwn(values, "hasName")) {
|
|
48
|
+
normalized = {
|
|
49
|
+
...values,
|
|
50
|
+
hasName: values.name !== null,
|
|
51
|
+
name: values.name === null ? "" : values.name
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return super.from(normalized, options);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Build one sampler from its portable JSON reflection record.
|
|
59
|
+
*
|
|
60
|
+
* @param {object} value Portable sampler record.
|
|
61
|
+
* @returns {Tr2SamplerSetup} Reflected sampler.
|
|
62
|
+
*/
|
|
63
|
+
static fromPortable(value) {
|
|
64
|
+
if (!isPlainObject(value)) {
|
|
65
|
+
throw new TypeError("Portable effect sampler must be an object");
|
|
66
|
+
}
|
|
67
|
+
const sampler = new this();
|
|
68
|
+
sampler.hasName = value.name !== null;
|
|
69
|
+
sampler.name = sampler.hasName ? String(value.name ?? "") : "";
|
|
70
|
+
sampler.sampler = cloneCarbonValue(value.descriptor);
|
|
71
|
+
sampler.isDynamic = !!value.isDynamic;
|
|
72
|
+
return sampler;
|
|
73
|
+
}
|
|
74
|
+
static {
|
|
75
|
+
_initClass();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export { _Tr2SamplerSetup as Tr2SamplerSetup };
|
|
80
|
+
//# sourceMappingURL=Tr2SamplerSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tr2SamplerSetup.js","sources":["../../../../../src/resource/shader/sampler/Tr2SamplerSetup.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { isPlainObject } from \"@carbonenginejs/runtime-utils/is\";\nimport { cloneCarbonValue } from \"@carbonenginejs/runtime-utils/types\";\n\n/** Reflected sampler name and complete device-free sampler descriptor. */\n@type.define({ className: \"Tr2SamplerSetup\", family: \"shader\" })\nexport class Tr2SamplerSetup extends CjsModel\n{\n\n /** name (const char*) */\n @type.string\n name = \"\";\n\n /** Whether the source sampler carried a name rather than authored null. */\n @impl.adapted\n @impl.reason(\"The schema string field cannot distinguish an authored null sampler name from an empty name; portable reflection must retain that distinction for static sampler records.\")\n @type.boolean\n hasName = false;\n\n /** sampler (Tr2SamplerStateAL) */\n @type.rawStruct(\"Tr2SamplerStateAL\")\n sampler = null;\n\n /** Whether the sampler occupies a dynamic register rather than static signature state. */\n @impl.adapted\n @impl.reason(\"The portable effect contract distinguishes dynamic and static sampler declarations before an engine creates sampler state.\")\n @type.boolean\n isDynamic = false;\n\n /**\n * Construct a canonical sampler record from JS/JSON model values.\n *\n * @param {object} values Canonical model values.\n * @param {object} options CjsModel import options.\n * @returns {Tr2SamplerSetup} Hydrated sampler.\n */\n static from(values = {}, options = {})\n {\n let normalized = values;\n if (values && Object.hasOwn(values, \"name\")\n && !Object.hasOwn(values, \"hasName\"))\n {\n normalized = {\n ...values,\n hasName: values.name !== null,\n name: values.name === null ? \"\" : values.name\n };\n }\n return super.from(normalized, options);\n }\n\n /**\n * Build one sampler from its portable JSON reflection record.\n *\n * @param {object} value Portable sampler record.\n * @returns {Tr2SamplerSetup} Reflected sampler.\n */\n @impl.custom\n @impl.reason(\"Carbon reads compiled effect bytes directly; CarbonEngineJS hydrates the browser-safe portable-reflection contract after format parsing.\")\n static fromPortable(value)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect sampler must be an object\");\n }\n const sampler = new this();\n sampler.hasName = value.name !== null;\n sampler.name = sampler.hasName ? String(value.name ?? \"\") : \"\";\n sampler.sampler = cloneCarbonValue(value.descriptor);\n sampler.isDynamic = !!value.isDynamic;\n return sampler;\n }\n\n}\n"],"names":["_Tr2SamplerSetup","Tr2SamplerSetup","CjsModel","e","_init_name","_init_extra_name","_init_hasName","_init_extra_hasName","_init_sampler","_init_extra_sampler","_init_isDynamic","_init_extra_isDynamic","_initStatic","c","_initClass","_applyDecs","type","define","className","family","string","impl","adapted","reason","boolean","rawStruct","custom","constructor","args","name","hasName","sampler","isDynamic","from","values","options","normalized","Object","hasOwn","fromPortable","value","isPlainObject","TypeError","String","cloneCarbonValue","descriptor"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '
|
|
1
|
+
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { type } from '@carbonenginejs/runtime-utils/schema';
|
|
3
|
+
import { normalizeResourcePath } from '@carbonenginejs/runtime-utils/path';
|
|
3
4
|
import { CjsResource as _CjsResource } from '../CjsResource.js';
|
|
4
|
-
import {
|
|
5
|
-
import { CjsTextureParameterProxy } from './CjsTextureParameterProxy.js';
|
|
5
|
+
import { CjsTextureArrayResParameterProxy } from './CjsTextureArrayResParameterProxy.js';
|
|
6
6
|
|
|
7
7
|
let _initClass;
|
|
8
8
|
|
|
@@ -34,6 +34,8 @@ new class extends _identity {
|
|
|
34
34
|
#failedError = null;
|
|
35
35
|
#updateScheduler = null;
|
|
36
36
|
#updateHandler = null;
|
|
37
|
+
|
|
38
|
+
/** Creates a CjsTextureArrayRes with caller-provided initial state. */
|
|
37
39
|
constructor(values = null) {
|
|
38
40
|
const options = values && typeof values === "object" && !Array.isArray(values) ? values : {};
|
|
39
41
|
const resourceValues = {
|
|
@@ -55,9 +57,13 @@ new class extends _identity {
|
|
|
55
57
|
this.SetLayerCount(options.layerCount, options.layerNames);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
60
|
+
|
|
61
|
+
/** Returns layer count from the current texture-array resource. */
|
|
58
62
|
GetLayerCount() {
|
|
59
63
|
return this.#layers.length;
|
|
60
64
|
}
|
|
65
|
+
|
|
66
|
+
/** Updates layer count in the current texture-array resource. */
|
|
61
67
|
SetLayerCount(value, names = null) {
|
|
62
68
|
const count = Number(value);
|
|
63
69
|
if (!Number.isInteger(count) || count < 1) {
|
|
@@ -79,20 +85,30 @@ new class extends _identity {
|
|
|
79
85
|
this.#InvalidateRange(count, true);
|
|
80
86
|
return true;
|
|
81
87
|
}
|
|
88
|
+
|
|
89
|
+
/** Returns layer parameter from the current texture-array resource. */
|
|
82
90
|
GetLayerParameter(layer) {
|
|
83
91
|
return this.#GetLayer(layer).proxy;
|
|
84
92
|
}
|
|
93
|
+
|
|
94
|
+
/** Returns layer parameters from the current texture-array resource. */
|
|
85
95
|
GetLayerParameters(out = []) {
|
|
86
96
|
for (const layer of this.#layers) out.push(layer.proxy);
|
|
87
97
|
return out;
|
|
88
98
|
}
|
|
99
|
+
|
|
100
|
+
/** Returns layer resource path from the current texture-array resource. */
|
|
89
101
|
GetLayerResourcePath(layer) {
|
|
90
102
|
return this.#GetLayer(layer).path;
|
|
91
103
|
}
|
|
104
|
+
|
|
105
|
+
/** Returns layer resource paths from the current texture-array resource. */
|
|
92
106
|
GetLayerResourcePaths(out = []) {
|
|
93
107
|
for (const layer of this.#layers) out.push(layer.path);
|
|
94
108
|
return out;
|
|
95
109
|
}
|
|
110
|
+
|
|
111
|
+
/** Updates layer resource path in the current texture-array resource. */
|
|
96
112
|
SetLayerResourcePath(layer, value) {
|
|
97
113
|
const record = this.#GetLayer(layer);
|
|
98
114
|
const path = normalizeResourcePath(value);
|
|
@@ -102,6 +118,8 @@ new class extends _identity {
|
|
|
102
118
|
this.#InvalidateLayer(layer);
|
|
103
119
|
return true;
|
|
104
120
|
}
|
|
121
|
+
|
|
122
|
+
/** Updates layer resource paths in the current texture-array resource. */
|
|
105
123
|
SetLayerResourcePaths(values, names = null) {
|
|
106
124
|
if (!Array.isArray(values) || values.length === 0) {
|
|
107
125
|
throw new TypeError("CjsTextureArrayRes layers must be a non-empty array of resource paths.");
|
|
@@ -136,9 +154,13 @@ new class extends _identity {
|
|
|
136
154
|
}
|
|
137
155
|
return contentChanged || namesChanged;
|
|
138
156
|
}
|
|
157
|
+
|
|
158
|
+
/** Returns layer resource from the current texture-array resource. */
|
|
139
159
|
GetLayerResource(layer) {
|
|
140
160
|
return this.#GetLayer(layer).resource;
|
|
141
161
|
}
|
|
162
|
+
|
|
163
|
+
/** Updates layer resource in the current texture-array resource. */
|
|
142
164
|
SetLayerResource(layer, resource) {
|
|
143
165
|
const record = this.#GetLayer(layer);
|
|
144
166
|
const next = resource ?? null;
|
|
@@ -160,25 +182,45 @@ new class extends _identity {
|
|
|
160
182
|
this.#InvalidateRange(this.#layers.length, !!options.topologyChanged);
|
|
161
183
|
return this;
|
|
162
184
|
}
|
|
185
|
+
|
|
186
|
+
/** Returns requested revision from the current texture-array resource. */
|
|
163
187
|
GetRequestedRevision() {
|
|
164
188
|
return this.#requestedRevision;
|
|
165
189
|
}
|
|
190
|
+
|
|
191
|
+
/** Returns prepared revision from the current texture-array resource. */
|
|
166
192
|
GetPreparedRevision() {
|
|
167
193
|
return this.#preparedRevision;
|
|
168
194
|
}
|
|
195
|
+
|
|
196
|
+
/** Reports whether update is required by the current texture-array resource. */
|
|
169
197
|
NeedsUpdate() {
|
|
170
198
|
return this.#updateScheduled || this.#dirtyLayers.size > 0 || this.#preparedRevision < this.#requestedRevision;
|
|
171
199
|
}
|
|
200
|
+
|
|
201
|
+
/** Returns dirty layers from the current texture-array resource. */
|
|
172
202
|
GetDirtyLayers() {
|
|
173
203
|
return new Set(this.#dirtyLayers);
|
|
174
204
|
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Returns revisions currently being prepared by the update handler for the
|
|
208
|
+
* texture-array resource.
|
|
209
|
+
*/
|
|
175
210
|
GetInFlightRevisions(out = []) {
|
|
176
211
|
for (const revision of this.#inFlightRequests.keys()) out.push(revision);
|
|
177
212
|
return out.sort((a, b) => a - b);
|
|
178
213
|
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Reports whether a requested revision is currently being prepared for the
|
|
217
|
+
* texture-array resource.
|
|
218
|
+
*/
|
|
179
219
|
IsRevisionInFlight(revision) {
|
|
180
220
|
return this.#inFlightRequests.has(revision);
|
|
181
221
|
}
|
|
222
|
+
|
|
223
|
+
/** Updates update scheduler in the current texture-array resource. */
|
|
182
224
|
SetUpdateScheduler(schedule = null) {
|
|
183
225
|
if (schedule !== null && typeof schedule !== "function") {
|
|
184
226
|
throw new TypeError("CjsTextureArrayRes update scheduler must be a function or null.");
|
|
@@ -187,6 +229,8 @@ new class extends _identity {
|
|
|
187
229
|
if (schedule && this.#updateScheduled) schedule(this);
|
|
188
230
|
return this;
|
|
189
231
|
}
|
|
232
|
+
|
|
233
|
+
/** Updates update handler in the current texture-array resource. */
|
|
190
234
|
SetUpdateHandler(handler = null) {
|
|
191
235
|
if (handler !== null && typeof handler !== "function") {
|
|
192
236
|
throw new TypeError("CjsTextureArrayRes update handler must be a function or null.");
|
|
@@ -269,7 +313,7 @@ new class extends _identity {
|
|
|
269
313
|
const inFlight = this.#inFlightRequests.has(revision);
|
|
270
314
|
if (!inFlight || revision !== this.#requestedRevision) {
|
|
271
315
|
if (inFlight) this.#inFlightRequests.delete(revision);
|
|
272
|
-
if (options.destroyRejected !== false)
|
|
316
|
+
if (options.destroyRejected !== false) destroyAdapterValue(candidate);
|
|
273
317
|
return Object.freeze({
|
|
274
318
|
published: false,
|
|
275
319
|
revision,
|
|
@@ -325,35 +369,56 @@ new class extends _identity {
|
|
|
325
369
|
});
|
|
326
370
|
});
|
|
327
371
|
}
|
|
372
|
+
|
|
373
|
+
/** Creates one texture-array layer record for the texture-array resource. */
|
|
328
374
|
#CreateLayer(layer, name = "", path = "") {
|
|
329
375
|
return {
|
|
330
376
|
path: normalizeResourcePath(path),
|
|
331
377
|
resource: null,
|
|
332
|
-
proxy: new
|
|
378
|
+
proxy: new CjsTextureArrayResParameterProxy(this, layer, {
|
|
333
379
|
name
|
|
334
380
|
})
|
|
335
381
|
};
|
|
336
382
|
}
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Returns a validated texture-array layer record for the texture-array
|
|
386
|
+
* resource.
|
|
387
|
+
*/
|
|
337
388
|
#GetLayer(layer) {
|
|
338
389
|
if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length) {
|
|
339
390
|
throw new RangeError(`CjsTextureArrayRes layer ${layer} is out of range.`);
|
|
340
391
|
}
|
|
341
392
|
return this.#layers[layer];
|
|
342
393
|
}
|
|
394
|
+
|
|
395
|
+
/** Updates layer names in the current texture-array resource. */
|
|
343
396
|
#SetLayerNames(names) {
|
|
344
397
|
if (!names) return;
|
|
345
398
|
for (let layer = 0; layer < Math.min(names.length, this.#layers.length); layer++) {
|
|
346
399
|
this.#layers[layer].proxy.SetParameterName(names[layer]);
|
|
347
400
|
}
|
|
348
401
|
}
|
|
402
|
+
|
|
403
|
+
/** Invalidates one texture-array layer for the texture-array resource. */
|
|
349
404
|
#InvalidateLayer(layer) {
|
|
350
405
|
this.#InvalidateLayers([layer]);
|
|
351
406
|
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Invalidates the requested texture-array layer range for the texture-array
|
|
410
|
+
* resource.
|
|
411
|
+
*/
|
|
352
412
|
#InvalidateRange(count, topologyChanged = false) {
|
|
353
413
|
const layers = [];
|
|
354
414
|
for (let layer = 0; layer < count; layer++) layers.push(layer);
|
|
355
415
|
this.#InvalidateLayers(layers, topologyChanged);
|
|
356
416
|
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Invalidates the supplied texture-array layers for the texture-array
|
|
420
|
+
* resource.
|
|
421
|
+
*/
|
|
357
422
|
#InvalidateLayers(layers, topologyChanged = false) {
|
|
358
423
|
const changed = [];
|
|
359
424
|
for (const layer of layers) {
|
|
@@ -371,11 +436,18 @@ new class extends _identity {
|
|
|
371
436
|
topologyChanged: this.#topologyChanged
|
|
372
437
|
}));
|
|
373
438
|
}
|
|
439
|
+
|
|
440
|
+
/** Schedules the coalesced texture-array update for the texture-array resource. */
|
|
374
441
|
#ScheduleUpdate() {
|
|
375
442
|
if (this.#updateScheduled) return;
|
|
376
443
|
this.#updateScheduled = true;
|
|
377
444
|
this.#updateScheduler?.(this);
|
|
378
445
|
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Resolves waiters satisfied by the prepared revision for the texture-array
|
|
449
|
+
* resource.
|
|
450
|
+
*/
|
|
379
451
|
#ResolveReadyWaiters(revision) {
|
|
380
452
|
const pending = [];
|
|
381
453
|
for (const waiter of this.#readyWaiters) {
|
|
@@ -383,6 +455,11 @@ new class extends _identity {
|
|
|
383
455
|
}
|
|
384
456
|
this.#readyWaiters = pending;
|
|
385
457
|
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Rejects waiters affected by a failed revision for the texture-array
|
|
461
|
+
* resource.
|
|
462
|
+
*/
|
|
386
463
|
#RejectReadyWaiters(revision, error) {
|
|
387
464
|
const pending = [];
|
|
388
465
|
for (const waiter of this.#readyWaiters) {
|
|
@@ -396,7 +473,7 @@ new class extends _identity {
|
|
|
396
473
|
super(_CjsTextureArrayRes), _initClass();
|
|
397
474
|
}
|
|
398
475
|
}();
|
|
399
|
-
function
|
|
476
|
+
function destroyAdapterValue(value) {
|
|
400
477
|
if (!value || typeof value !== "object" && typeof value !== "function") return;
|
|
401
478
|
const destroy = value.Destroy || value.Dispose || value.destroy || value.dispose;
|
|
402
479
|
if (typeof destroy === "function") destroy.call(value);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsTextureArrayRes.js","sources":["../../../../src/resource/texture/CjsTextureArrayRes.js"],"sourcesContent":["import { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { normalizeResourcePath } from \"@carbonenginejs/runtime-utils/path\";\nimport { CjsResource } from \"../CjsResource.js\";\nimport { CjsTextureArrayResParameterProxy } from \"./CjsTextureArrayResParameterProxy.js\";\n\n/**\n * Mutable runtime aggregate for an ordered texture-array request.\n *\n * Private engine-bridge layer proxies only invalidate this parent. A resource\n * manager or engine scheduler consumes the coalesced update on a later frame\n * and prepares the corresponding immutable/cached texture-array payload.\n */\n@type.define({ className: \"CjsTextureArrayRes\", family: \"resource\" })\nexport class CjsTextureArrayRes extends CjsResource\n{\n #layers = [];\n #dirtyLayers = new Set();\n #requestedRevision = 0;\n #preparedRevision = 0;\n #updateScheduled = false;\n #topologyChanged = false;\n #inFlightRequests = new Map();\n #readyWaiters = [];\n #failedRevision = 0;\n #failedError = null;\n #updateScheduler = null;\n #updateHandler = null;\n\n /** Creates a CjsTextureArrayRes with caller-provided initial state. */\n constructor(values = null)\n {\n const options = values && typeof values === \"object\" && !Array.isArray(values) ? values : {};\n const resourceValues = { ...options };\n delete resourceValues.layers;\n delete resourceValues.paths;\n delete resourceValues.layerCount;\n delete resourceValues.layerNames;\n delete resourceValues.updateScheduler;\n delete resourceValues.updateHandler;\n super(resourceValues);\n\n if (options.updateScheduler) this.SetUpdateScheduler(options.updateScheduler);\n if (options.updateHandler) this.SetUpdateHandler(options.updateHandler);\n\n const paths = options.layers || options.paths;\n if (paths !== undefined)\n {\n this.SetLayerResourcePaths(paths, options.layerNames);\n }\n else if (options.layerCount !== undefined)\n {\n this.SetLayerCount(options.layerCount, options.layerNames);\n }\n }\n\n /** Returns layer count from the current texture-array resource. */\n GetLayerCount()\n {\n return this.#layers.length;\n }\n\n /** Updates layer count in the current texture-array resource. */\n SetLayerCount(value, names = null)\n {\n const count = Number(value);\n if (!Number.isInteger(count) || count < 1)\n {\n throw new RangeError(\"CjsTextureArrayRes layer count must be a positive integer.\");\n }\n if (count === this.#layers.length)\n {\n this.#SetLayerNames(names);\n return false;\n }\n\n const previousCount = this.#layers.length;\n if (count < previousCount)\n {\n this.#layers.length = count;\n }\n else\n {\n for (let layer = previousCount; layer < count; layer++)\n {\n this.#layers.push(this.#CreateLayer(layer, names?.[layer]));\n }\n }\n this.#SetLayerNames(names);\n this.#InvalidateRange(count, true);\n return true;\n }\n\n /** Returns layer parameter from the current texture-array resource. */\n GetLayerParameter(layer)\n {\n return this.#GetLayer(layer).proxy;\n }\n\n /** Returns layer parameters from the current texture-array resource. */\n GetLayerParameters(out = [])\n {\n for (const layer of this.#layers) out.push(layer.proxy);\n return out;\n }\n\n /** Returns layer resource path from the current texture-array resource. */\n GetLayerResourcePath(layer)\n {\n return this.#GetLayer(layer).path;\n }\n\n /** Returns layer resource paths from the current texture-array resource. */\n GetLayerResourcePaths(out = [])\n {\n for (const layer of this.#layers) out.push(layer.path);\n return out;\n }\n\n /** Updates layer resource path in the current texture-array resource. */\n SetLayerResourcePath(layer, value)\n {\n const record = this.#GetLayer(layer);\n const path = normalizeResourcePath(value);\n if (path === record.path) return false;\n record.path = path;\n record.resource = null;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n /** Updates layer resource paths in the current texture-array resource. */\n SetLayerResourcePaths(values, names = null)\n {\n if (!Array.isArray(values) || values.length === 0)\n {\n throw new TypeError(\"CjsTextureArrayRes layers must be a non-empty array of resource paths.\");\n }\n\n const paths = values.map(value => normalizeResourcePath(\n value && typeof value === \"object\"\n ? value.resourcePath ?? value.path ?? value.GetPath?.() ?? \"\"\n : value\n ));\n const topologyChanged = paths.length !== this.#layers.length;\n let contentChanged = topologyChanged;\n let namesChanged = false;\n const changedLayers = new Set();\n const next = [];\n for (let layer = 0; layer < paths.length; layer++)\n {\n const current = this.#layers[layer];\n const name = names?.[layer] ?? current?.proxy?.GetParameterName?.() ?? \"\";\n if (!current)\n {\n next.push(this.#CreateLayer(layer, name, paths[layer]));\n }\n else\n {\n if (current.path !== paths[layer])\n {\n current.path = paths[layer];\n current.resource = null;\n contentChanged = true;\n changedLayers.add(layer);\n }\n if (current.proxy.SetParameterName(name)) namesChanged = true;\n next.push(current);\n }\n }\n this.#layers = next;\n if (topologyChanged)\n {\n this.#InvalidateRange(paths.length, true);\n }\n else if (contentChanged)\n {\n this.#InvalidateLayers(changedLayers);\n }\n return contentChanged || namesChanged;\n }\n\n /** Returns layer resource from the current texture-array resource. */\n GetLayerResource(layer)\n {\n return this.#GetLayer(layer).resource;\n }\n\n /** Updates layer resource in the current texture-array resource. */\n SetLayerResource(layer, resource)\n {\n const record = this.#GetLayer(layer);\n const next = resource ?? null;\n if (record.resource === next) return false;\n record.resource = next;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n /** Invalidate a layer whose resolved resource changed without changing identity. */\n TouchLayer(layer)\n {\n this.#GetLayer(layer);\n this.#InvalidateLayer(layer);\n return this;\n }\n\n /** Invalidate every current layer, for example after an adapter generation loss. */\n TouchAllLayers(options = {})\n {\n this.#InvalidateRange(this.#layers.length, !!options.topologyChanged);\n return this;\n }\n\n /** Returns requested revision from the current texture-array resource. */\n GetRequestedRevision()\n {\n return this.#requestedRevision;\n }\n\n /** Returns prepared revision from the current texture-array resource. */\n GetPreparedRevision()\n {\n return this.#preparedRevision;\n }\n\n /** Reports whether update is required by the current texture-array resource. */\n NeedsUpdate()\n {\n return this.#updateScheduled || this.#dirtyLayers.size > 0 || this.#preparedRevision < this.#requestedRevision;\n }\n\n /** Returns dirty layers from the current texture-array resource. */\n GetDirtyLayers()\n {\n return new Set(this.#dirtyLayers);\n }\n\n /**\n * Returns revisions currently being prepared by the update handler for the\n * texture-array resource.\n */\n GetInFlightRevisions(out = [])\n {\n for (const revision of this.#inFlightRequests.keys()) out.push(revision);\n return out.sort((a, b) => a - b);\n }\n\n /**\n * Reports whether a requested revision is currently being prepared for the\n * texture-array resource.\n */\n IsRevisionInFlight(revision)\n {\n return this.#inFlightRequests.has(revision);\n }\n\n /** Updates update scheduler in the current texture-array resource. */\n SetUpdateScheduler(schedule = null)\n {\n if (schedule !== null && typeof schedule !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update scheduler must be a function or null.\");\n }\n this.#updateScheduler = schedule;\n if (schedule && this.#updateScheduled) schedule(this);\n return this;\n }\n\n /** Updates update handler in the current texture-array resource. */\n SetUpdateHandler(handler = null)\n {\n if (handler !== null && typeof handler !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update handler must be a function or null.\");\n }\n this.#updateHandler = handler;\n return this;\n }\n\n /**\n * Consume all proxy changes as one immutable request snapshot.\n * A frame scheduler should call this at most once per parent per frame.\n */\n ConsumeUpdateRequest()\n {\n if (!this.#updateScheduled && this.#dirtyLayers.size === 0) return null;\n const request = Object.freeze({\n revision: this.#requestedRevision,\n paths: Object.freeze(this.GetLayerResourcePaths()),\n resources: Object.freeze(this.#layers.map(layer => layer.resource)),\n dirtyLayers: Object.freeze([ ...this.#dirtyLayers ].sort((a, b) => a - b)),\n topologyChanged: this.#topologyChanged\n });\n this.#dirtyLayers.clear();\n this.#topologyChanged = false;\n this.#updateScheduled = false;\n this.#inFlightRequests.set(request.revision, request);\n return request;\n }\n\n /** Requeue a consumed current request after cancellation, loss, or retryable failure. */\n RetryUpdateRequest(revision = this.#requestedRevision)\n {\n const request = this.#inFlightRequests.get(revision);\n if (!request) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n if (this.#failedRevision === revision)\n {\n this.#failedRevision = 0;\n this.#failedError = null;\n }\n for (const layer of request.dirtyLayers)\n {\n if (layer < this.#layers.length) this.#dirtyLayers.add(layer);\n }\n this.#topologyChanged ||= request.topologyChanged;\n this.#ScheduleUpdate();\n this.EmitEvent(\"revisionretry\", this, revision);\n return true;\n }\n\n /** Complete a consumed request as failed, optionally making it retryable. */\n FailUpdateRequest(revision, error, options = {})\n {\n if (options.retry) return this.RetryUpdateRequest(revision);\n if (!this.#inFlightRequests.has(revision)) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n const failure = error instanceof Error ? error : new Error(String(error ?? \"Texture array preparation failed.\"));\n this.#failedRevision = revision;\n this.#failedError = failure;\n if (this.#preparedRevision === 0) this.SetError(failure);\n this.EmitEvent(\"revisionfailed\", this, revision, failure);\n this.#RejectReadyWaiters(revision, failure);\n return true;\n }\n\n /** Run the registered update handler for the current coalesced frame request. */\n Update(context = {})\n {\n const request = this.ConsumeUpdateRequest();\n if (!request) return null;\n this.EmitEvent(\"update\", this, request, context);\n return this.#updateHandler\n ? this.#updateHandler(this, request, context)\n : request;\n }\n\n /**\n * Atomically publish an opaque adapter allocation with its prepared revision.\n * The caller owns disposal of a successfully displaced allocation.\n */\n CommitPreparedAdapterRevision(revision, adapterKey, candidate, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter publication requires a key.\");\n if (candidate === null || candidate === undefined)\n {\n throw new TypeError(\"CjsTextureArrayRes adapter publication requires a candidate allocation.\");\n }\n const inFlight = this.#inFlightRequests.has(revision);\n if (!inFlight || revision !== this.#requestedRevision)\n {\n if (inFlight) this.#inFlightRequests.delete(revision);\n if (options.destroyRejected !== false) destroyAdapterValue(candidate);\n return Object.freeze({ published: false, revision, displaced: null });\n }\n\n const displaced = this.GetAdapterResource(adapterKey);\n this.SetAdapterResource(adapterKey, candidate);\n this.#preparedRevision = revision;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#inFlightRequests.delete(revision);\n for (const pendingRevision of this.#inFlightRequests.keys())\n {\n if (pendingRevision < revision) this.#inFlightRequests.delete(pendingRevision);\n }\n this.MarkPrepared();\n this.EmitEvent(\"revisionprepared\", this, revision, adapterKey, candidate);\n this.#ResolveReadyWaiters(revision);\n return Object.freeze({\n published: true,\n revision,\n displaced: displaced === candidate ? null : displaced\n });\n }\n\n /** Destroy an unusable adapter allocation and request a complete rebuild. */\n HandleAdapterLoss(adapterKey, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter loss requires a key.\");\n const lost = this.GetAdapterResource(adapterKey);\n if (this.HasAdapterResource(adapterKey)) this.DestroyAdapterResource(adapterKey, options);\n this.#preparedRevision = 0;\n if (this.#layers.length) this.#InvalidateRange(this.#layers.length, true);\n if (this.state === CjsResource.State.PREPARED) this.MarkPreparing();\n this.EmitEvent(\"adapterlost\", this, adapterKey, lost);\n return lost;\n }\n\n /** Resolve when the generation requested at call time has been prepared. */\n Ready()\n {\n if (this.#requestedRevision === 0)\n {\n const error = new Error(\"Texture array resource has no configured layers.\");\n error.code = \"CJS_TEXTURE_ARRAY_UNCONFIGURED\";\n return Promise.reject(error);\n }\n const revision = this.#requestedRevision;\n if (this.#preparedRevision >= revision && this.IsPrepared()) return Promise.resolve(this);\n if (this.#failedRevision === revision) return Promise.reject(this.#failedError);\n return new Promise((resolve, reject) =>\n {\n this.#readyWaiters.push({ revision, resolve, reject });\n });\n }\n\n /** Creates one texture-array layer record for the texture-array resource. */\n #CreateLayer(layer, name = \"\", path = \"\")\n {\n return {\n path: normalizeResourcePath(path),\n resource: null,\n proxy: new CjsTextureArrayResParameterProxy(this, layer, { name })\n };\n }\n\n /**\n * Returns a validated texture-array layer record for the texture-array\n * resource.\n */\n #GetLayer(layer)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length)\n {\n throw new RangeError(`CjsTextureArrayRes layer ${layer} is out of range.`);\n }\n return this.#layers[layer];\n }\n\n /** Updates layer names in the current texture-array resource. */\n #SetLayerNames(names)\n {\n if (!names) return;\n for (let layer = 0; layer < Math.min(names.length, this.#layers.length); layer++)\n {\n this.#layers[layer].proxy.SetParameterName(names[layer]);\n }\n }\n\n /** Invalidates one texture-array layer for the texture-array resource. */\n #InvalidateLayer(layer)\n {\n this.#InvalidateLayers([ layer ]);\n }\n\n /**\n * Invalidates the requested texture-array layer range for the texture-array\n * resource.\n */\n #InvalidateRange(count, topologyChanged = false)\n {\n const layers = [];\n for (let layer = 0; layer < count; layer++) layers.push(layer);\n this.#InvalidateLayers(layers, topologyChanged);\n }\n\n /**\n * Invalidates the supplied texture-array layers for the texture-array\n * resource.\n */\n #InvalidateLayers(layers, topologyChanged = false)\n {\n const changed = [];\n for (const layer of layers)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length) continue;\n this.#dirtyLayers.add(layer);\n changed.push(layer);\n }\n if (!changed.length && !topologyChanged) return;\n this.#topologyChanged ||= topologyChanged;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#requestedRevision += 1;\n this.#ScheduleUpdate();\n this.EmitEvent(\"invalidated\", this, Object.freeze(changed), this.#requestedRevision, Object.freeze({\n topologyChanged: this.#topologyChanged\n }));\n }\n\n /** Schedules the coalesced texture-array update for the texture-array resource. */\n #ScheduleUpdate()\n {\n if (this.#updateScheduled) return;\n this.#updateScheduled = true;\n this.#updateScheduler?.(this);\n }\n\n /**\n * Resolves waiters satisfied by the prepared revision for the texture-array\n * resource.\n */\n #ResolveReadyWaiters(revision)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.resolve(this);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n /**\n * Rejects waiters affected by a failed revision for the texture-array\n * resource.\n */\n #RejectReadyWaiters(revision, error)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.reject(error);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n static payload = \"texture-array\";\n}\n\nfunction destroyAdapterValue(value)\n{\n if (!value || (typeof value !== \"object\" && typeof value !== \"function\")) return;\n const destroy = value.Destroy || value.Dispose || value.destroy || value.dispose;\n if (typeof destroy === \"function\") destroy.call(value);\n}\n"],"names":["_CjsTextureArrayRes","_identity","CjsTextureArrayRes","CjsResource","_initClass","_applyDecs","type","define","className","family","c","Set","Map","constructor","values","options","Array","isArray","resourceValues","layers","paths","layerCount","layerNames","updateScheduler","updateHandler","SetUpdateScheduler","SetUpdateHandler","undefined","SetLayerResourcePaths","SetLayerCount","GetLayerCount","length","value","names","count","Number","isInteger","RangeError","previousCount","layer","push","GetLayerParameter","proxy","GetLayerParameters","out","GetLayerResourcePath","path","GetLayerResourcePaths","SetLayerResourcePath","record","normalizeResourcePath","resource","TypeError","map","resourcePath","GetPath","topologyChanged","contentChanged","namesChanged","changedLayers","next","current","name","GetParameterName","add","SetParameterName","GetLayerResource","SetLayerResource","TouchLayer","TouchAllLayers","GetRequestedRevision","GetPreparedRevision","NeedsUpdate","size","GetDirtyLayers","GetInFlightRevisions","revision","keys","sort","a","b","IsRevisionInFlight","has","schedule","handler","ConsumeUpdateRequest","request","Object","freeze","resources","dirtyLayers","clear","set","RetryUpdateRequest","get","delete","EmitEvent","FailUpdateRequest","error","retry","failure","Error","String","SetError","Update","context","CommitPreparedAdapterRevision","adapterKey","candidate","inFlight","destroyRejected","destroyAdapterValue","published","displaced","GetAdapterResource","SetAdapterResource","pendingRevision","MarkPrepared","HandleAdapterLoss","lost","HasAdapterResource","DestroyAdapterResource","state","State","PREPARED","MarkPreparing","Ready","code","Promise","reject","IsPrepared","resolve","#CreateLayer","CjsTextureArrayResParameterProxy","#GetLayer","#SetLayerNames","Math","min","#InvalidateLayer","#InvalidateRange","#InvalidateLayers","changed","#ScheduleUpdate","#ResolveReadyWaiters","pending","waiter","#RejectReadyWaiters","payload","destroy","Destroy","Dispose","dispose","call"],"mappings":"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"}
|
|
@@ -1,30 +1,37 @@
|
|
|
1
1
|
import { CjsEventEmitter } from '@carbonenginejs/runtime-utils/model';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* `CjsTextureArrayRes`-owned parameter facade for one array layer that mirrors
|
|
5
|
+
* the public path API while delegating storage, invalidation, readiness, and
|
|
6
|
+
* adapter ownership to its parent, carrying no shader metadata or backend
|
|
7
|
+
* objects itself.
|
|
5
8
|
*
|
|
6
|
-
* The proxy mirrors the public texture-parameter path API while delegating
|
|
7
|
-
* storage, invalidation, readiness, and adapter ownership to its parent array.
|
|
8
9
|
* Engines bridge public parameters into it; it does not replace persisted
|
|
9
|
-
* parameter entries or their individual source resources.
|
|
10
|
-
* carries no shader metadata or backend objects.
|
|
10
|
+
* parameter entries or their individual source resources.
|
|
11
11
|
*/
|
|
12
|
-
class
|
|
12
|
+
class CjsTextureArrayResParameterProxy extends CjsEventEmitter {
|
|
13
13
|
#parent;
|
|
14
14
|
#layer;
|
|
15
15
|
#name;
|
|
16
|
+
|
|
17
|
+
/** Creates a CjsTextureArrayResParameterProxy with caller-provided initial state. */
|
|
16
18
|
constructor(parent, layer, options = {}) {
|
|
17
19
|
super();
|
|
18
20
|
if (!parent || typeof parent.SetLayerResourcePath !== "function") {
|
|
19
|
-
throw new TypeError("
|
|
21
|
+
throw new TypeError("CjsTextureArrayResParameterProxy requires a CjsTextureArrayRes-compatible parent.");
|
|
20
22
|
}
|
|
21
23
|
if (!Number.isInteger(layer) || layer < 0) {
|
|
22
|
-
throw new RangeError("
|
|
24
|
+
throw new RangeError("CjsTextureArrayResParameterProxy layer must be a non-negative integer.");
|
|
23
25
|
}
|
|
24
26
|
this.#parent = parent;
|
|
25
27
|
this.#layer = layer;
|
|
26
28
|
this.#name = options.name === undefined ? "" : String(options.name);
|
|
27
29
|
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns the resource path represented by this texture layer proxy for the
|
|
33
|
+
* texture parameter proxy.
|
|
34
|
+
*/
|
|
28
35
|
get resourcePath() {
|
|
29
36
|
return this.GetResourcePath();
|
|
30
37
|
}
|
|
@@ -43,24 +50,41 @@ class CjsTextureParameterProxy extends CjsEventEmitter {
|
|
|
43
50
|
get resource() {
|
|
44
51
|
return this.#parent;
|
|
45
52
|
}
|
|
53
|
+
|
|
54
|
+
/** Updates the resource path exposed by the current texture parameter proxy. */
|
|
46
55
|
set resourcePath(value) {
|
|
47
56
|
this.SetResourcePath(value);
|
|
48
57
|
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Returns the public parameter name represented by this texture layer proxy
|
|
61
|
+
* for the texture parameter proxy.
|
|
62
|
+
*/
|
|
49
63
|
get name() {
|
|
50
64
|
return this.#name;
|
|
51
65
|
}
|
|
66
|
+
|
|
67
|
+
/** Updates the name exposed by the current texture parameter proxy. */
|
|
52
68
|
set name(value) {
|
|
53
69
|
this.SetParameterName(value);
|
|
54
70
|
}
|
|
71
|
+
|
|
72
|
+
/** Returns parent from the current texture parameter proxy. */
|
|
55
73
|
GetParent() {
|
|
56
74
|
return this.#parent;
|
|
57
75
|
}
|
|
76
|
+
|
|
77
|
+
/** Returns layer index from the current texture parameter proxy. */
|
|
58
78
|
GetLayerIndex() {
|
|
59
79
|
return this.#layer;
|
|
60
80
|
}
|
|
81
|
+
|
|
82
|
+
/** Returns parameter name from the current texture parameter proxy. */
|
|
61
83
|
GetParameterName() {
|
|
62
84
|
return this.#name;
|
|
63
85
|
}
|
|
86
|
+
|
|
87
|
+
/** Updates parameter name in the current texture parameter proxy. */
|
|
64
88
|
SetParameterName(value) {
|
|
65
89
|
const next = value === null || value === undefined ? "" : String(value);
|
|
66
90
|
if (next === this.#name) return false;
|
|
@@ -69,22 +93,32 @@ class CjsTextureParameterProxy extends CjsEventEmitter {
|
|
|
69
93
|
this.EmitEvent("changed", this, "name", next, previous);
|
|
70
94
|
return true;
|
|
71
95
|
}
|
|
96
|
+
|
|
97
|
+
/** Returns resource path from the current texture parameter proxy. */
|
|
72
98
|
GetResourcePath() {
|
|
73
99
|
return this.#parent.GetLayerResourcePath(this.#layer);
|
|
74
100
|
}
|
|
101
|
+
|
|
102
|
+
/** Updates resource path in the current texture parameter proxy. */
|
|
75
103
|
SetResourcePath(value) {
|
|
76
104
|
const previous = this.GetResourcePath();
|
|
77
105
|
if (!this.#parent.SetLayerResourcePath(this.#layer, value)) return false;
|
|
78
106
|
this.EmitEvent("changed", this, "resourcepath", this.GetResourcePath(), previous);
|
|
79
107
|
return true;
|
|
80
108
|
}
|
|
109
|
+
|
|
110
|
+
/** Returns value from the current texture parameter proxy. */
|
|
81
111
|
GetValue() {
|
|
82
112
|
return this.GetResourcePath();
|
|
83
113
|
}
|
|
114
|
+
|
|
115
|
+
/** Updates value in the current texture parameter proxy. */
|
|
84
116
|
SetValue(value) {
|
|
85
117
|
if (value === undefined) return false;
|
|
86
118
|
return this.SetResourcePath(value);
|
|
87
119
|
}
|
|
120
|
+
|
|
121
|
+
/** Compares value with the current texture parameter proxy value. */
|
|
88
122
|
EqualsValue(value) {
|
|
89
123
|
return String(value ?? "").trim().replace(/\\/gu, "/").replace(/\/+/gu, "/").toLowerCase() === this.GetResourcePath();
|
|
90
124
|
}
|
|
@@ -98,12 +132,16 @@ class CjsTextureParameterProxy extends CjsEventEmitter {
|
|
|
98
132
|
GetSourceResource() {
|
|
99
133
|
return this.#parent.GetLayerResource(this.#layer);
|
|
100
134
|
}
|
|
135
|
+
|
|
136
|
+
/** Updates source resource in the current texture parameter proxy. */
|
|
101
137
|
SetSourceResource(resource) {
|
|
102
138
|
const previous = this.GetSourceResource();
|
|
103
139
|
if (!this.#parent.SetLayerResource(this.#layer, resource)) return false;
|
|
104
140
|
this.EmitEvent("changed", this, "sourceresource", this.GetSourceResource(), previous);
|
|
105
141
|
return true;
|
|
106
142
|
}
|
|
143
|
+
|
|
144
|
+
/** Updates resource in the current texture parameter proxy. */
|
|
107
145
|
SetResource(resource) {
|
|
108
146
|
return this.SetSourceResource(resource);
|
|
109
147
|
}
|
|
@@ -114,20 +152,28 @@ class CjsTextureParameterProxy extends CjsEventEmitter {
|
|
|
114
152
|
this.EmitEvent("changed", this, "sourcerevision", this.GetSourceResource());
|
|
115
153
|
return this;
|
|
116
154
|
}
|
|
155
|
+
|
|
156
|
+
/** Returns resources from the current texture parameter proxy. */
|
|
117
157
|
GetResources(out = []) {
|
|
118
158
|
if (!out.includes(this.#parent)) out.push(this.#parent);
|
|
119
159
|
return out;
|
|
120
160
|
}
|
|
161
|
+
|
|
162
|
+
/** Reports whether the current texture parameter proxy satisfies prepared. */
|
|
121
163
|
IsPrepared() {
|
|
122
164
|
return this.#parent.IsPrepared();
|
|
123
165
|
}
|
|
166
|
+
|
|
167
|
+
/** Reports whether the current texture parameter proxy satisfies good. */
|
|
124
168
|
IsGood() {
|
|
125
169
|
return this.#parent.IsGood();
|
|
126
170
|
}
|
|
171
|
+
|
|
172
|
+
/** Reads y from the current texture parameter proxy. */
|
|
127
173
|
Ready(options = {}) {
|
|
128
174
|
return this.#parent.Ready(options);
|
|
129
175
|
}
|
|
130
176
|
}
|
|
131
177
|
|
|
132
|
-
export {
|
|
133
|
-
//# sourceMappingURL=
|
|
178
|
+
export { CjsTextureArrayResParameterProxy };
|
|
179
|
+
//# sourceMappingURL=CjsTextureArrayResParameterProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsTextureArrayResParameterProxy.js","sources":["../../../../src/resource/texture/CjsTextureArrayResParameterProxy.js"],"sourcesContent":["import { CjsEventEmitter } from \"@carbonenginejs/runtime-utils/model\";\n\n/**\n * `CjsTextureArrayRes`-owned parameter facade for one array layer that mirrors\n * the public path API while delegating storage, invalidation, readiness, and\n * adapter ownership to its parent, carrying no shader metadata or backend\n * objects itself.\n *\n * Engines bridge public parameters into it; it does not replace persisted\n * parameter entries or their individual source resources.\n */\nexport class CjsTextureArrayResParameterProxy extends CjsEventEmitter\n{\n #parent;\n #layer;\n #name;\n\n /** Creates a CjsTextureArrayResParameterProxy with caller-provided initial state. */\n constructor(parent, layer, options = {})\n {\n super();\n if (!parent || typeof parent.SetLayerResourcePath !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayResParameterProxy requires a CjsTextureArrayRes-compatible parent.\");\n }\n if (!Number.isInteger(layer) || layer < 0)\n {\n throw new RangeError(\"CjsTextureArrayResParameterProxy layer must be a non-negative integer.\");\n }\n\n this.#parent = parent;\n this.#layer = layer;\n this.#name = options.name === undefined ? \"\" : String(options.name);\n }\n\n /**\n * Returns the resource path represented by this texture layer proxy for the\n * texture parameter proxy.\n */\n get resourcePath()\n {\n return this.GetResourcePath();\n }\n\n /** The aggregate texture resource used by the shader. */\n get textureRes()\n {\n return this.#parent;\n }\n\n /** Compatibility alias for textureRes. */\n get res()\n {\n return this.#parent;\n }\n\n /** Compatibility alias used by Carbon-shaped texture parameters. */\n get resource()\n {\n return this.#parent;\n }\n\n /** Updates the resource path exposed by the current texture parameter proxy. */\n set resourcePath(value)\n {\n this.SetResourcePath(value);\n }\n\n /**\n * Returns the public parameter name represented by this texture layer proxy\n * for the texture parameter proxy.\n */\n get name()\n {\n return this.#name;\n }\n\n /** Updates the name exposed by the current texture parameter proxy. */\n set name(value)\n {\n this.SetParameterName(value);\n }\n\n /** Returns parent from the current texture parameter proxy. */\n GetParent()\n {\n return this.#parent;\n }\n\n /** Returns layer index from the current texture parameter proxy. */\n GetLayerIndex()\n {\n return this.#layer;\n }\n\n /** Returns parameter name from the current texture parameter proxy. */\n GetParameterName()\n {\n return this.#name;\n }\n\n /** Updates parameter name in the current texture parameter proxy. */\n SetParameterName(value)\n {\n const next = value === null || value === undefined ? \"\" : String(value);\n if (next === this.#name) return false;\n const previous = this.#name;\n this.#name = next;\n this.EmitEvent(\"changed\", this, \"name\", next, previous);\n return true;\n }\n\n /** Returns resource path from the current texture parameter proxy. */\n GetResourcePath()\n {\n return this.#parent.GetLayerResourcePath(this.#layer);\n }\n\n /** Updates resource path in the current texture parameter proxy. */\n SetResourcePath(value)\n {\n const previous = this.GetResourcePath();\n if (!this.#parent.SetLayerResourcePath(this.#layer, value)) return false;\n this.EmitEvent(\"changed\", this, \"resourcepath\", this.GetResourcePath(), previous);\n return true;\n }\n\n /** Returns value from the current texture parameter proxy. */\n GetValue()\n {\n return this.GetResourcePath();\n }\n\n /** Updates value in the current texture parameter proxy. */\n SetValue(value)\n {\n if (value === undefined) return false;\n return this.SetResourcePath(value);\n }\n\n /** Compares value with the current texture parameter proxy value. */\n EqualsValue(value)\n {\n return String(value ?? \"\").trim().replace(/\\\\/gu, \"/\").replace(/\\/+/gu, \"/\").toLowerCase() === this.GetResourcePath();\n }\n\n /** Return the aggregate texture resource used by the shader binding. */\n GetResource()\n {\n return this.#parent;\n }\n\n /** Return the optional resolved source resource for this layer. */\n GetSourceResource()\n {\n return this.#parent.GetLayerResource(this.#layer);\n }\n\n /** Updates source resource in the current texture parameter proxy. */\n SetSourceResource(resource)\n {\n const previous = this.GetSourceResource();\n if (!this.#parent.SetLayerResource(this.#layer, resource)) return false;\n this.EmitEvent(\"changed\", this, \"sourceresource\", this.GetSourceResource(), previous);\n return true;\n }\n\n /** Updates resource in the current texture parameter proxy. */\n SetResource(resource)\n {\n return this.SetSourceResource(resource);\n }\n\n /** Invalidate this layer after an in-place source content revision. */\n Touch()\n {\n this.#parent.TouchLayer(this.#layer);\n this.EmitEvent(\"changed\", this, \"sourcerevision\", this.GetSourceResource());\n return this;\n }\n\n /** Returns resources from the current texture parameter proxy. */\n GetResources(out = [])\n {\n if (!out.includes(this.#parent)) out.push(this.#parent);\n return out;\n }\n\n /** Reports whether the current texture parameter proxy satisfies prepared. */\n IsPrepared()\n {\n return this.#parent.IsPrepared();\n }\n\n /** Reports whether the current texture parameter proxy satisfies good. */\n IsGood()\n {\n return this.#parent.IsGood();\n }\n\n /** Reads y from the current texture parameter proxy. */\n Ready(options = {})\n {\n return this.#parent.Ready(options);\n }\n}\n"],"names":["CjsTextureArrayResParameterProxy","CjsEventEmitter","constructor","parent","layer","options","SetLayerResourcePath","TypeError","Number","isInteger","RangeError","name","undefined","String","resourcePath","GetResourcePath","textureRes","res","resource","value","SetResourcePath","SetParameterName","GetParent","GetLayerIndex","GetParameterName","next","previous","EmitEvent","GetLayerResourcePath","GetValue","SetValue","EqualsValue","trim","replace","toLowerCase","GetResource","GetSourceResource","GetLayerResource","SetSourceResource","SetLayerResource","SetResource","Touch","TouchLayer","GetResources","out","includes","push","IsPrepared","IsGood","Ready"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '
|
|
1
|
+
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
3
3
|
import { CjsResource as _CjsResource } from '../CjsResource.js';
|
|
4
|
-
import { validateRgbaPayload } from '
|
|
5
|
-
import {
|
|
4
|
+
import { validateRgbaPayload } from '../../format/payloadContract.js';
|
|
5
|
+
import { validateResourcePayload } from '../resourceBoundary.js';
|
|
6
6
|
|
|
7
7
|
let _initProto, _initClass, _init_width, _init_extra_width, _init_height, _init_extra_height;
|
|
8
8
|
|
|
@@ -26,6 +26,8 @@ new class extends _identity {
|
|
|
26
26
|
}
|
|
27
27
|
width = (_initProto(this), _init_width(this, 0));
|
|
28
28
|
height = (_init_extra_width(this), _init_height(this, 0));
|
|
29
|
+
|
|
30
|
+
/** Creates a Tr2ImageRes with caller-provided initial state. */
|
|
29
31
|
constructor(values = null) {
|
|
30
32
|
super(), _init_extra_height(this);
|
|
31
33
|
this.SetValues(values || {}, {
|
|
@@ -47,7 +49,7 @@ new class extends _identity {
|
|
|
47
49
|
super.SetPayload(null);
|
|
48
50
|
return this;
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
validateResourcePayload("Tr2ImageRes", payload, validateRgbaPayload);
|
|
51
53
|
const values = {
|
|
52
54
|
...(options || {})
|
|
53
55
|
};
|