@carbonenginejs/runtime-resource 0.10.0 → 0.11.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/dist/format/effect/effectPermutationGraph.js +257 -0
- package/dist/format/effect/effectPermutationGraph.js.map +1 -0
- package/dist/format/effect/effectReflectionPackage.js +636 -0
- package/dist/format/effect/effectReflectionPackage.js.map +1 -0
- package/dist/format/effect/sha256.js +114 -0
- package/dist/format/effect/sha256.js.map +1 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
- package/dist/formats/dxbc/core/DxbcReader.js +266 -0
- package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
- package/dist/formats/dxbc/core/container.js +169 -0
- package/dist/formats/dxbc/core/container.js.map +1 -0
- package/dist/formats/dxbc/core/decoder.js +789 -0
- package/dist/formats/dxbc/core/decoder.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -0
- package/dist/formats/dxbc/core/errors.js.map +1 -0
- package/dist/formats/dxbc/core/helpers.js +220 -0
- package/dist/formats/dxbc/core/helpers.js.map +1 -0
- package/dist/formats/dxbc/core/opcodes.js +45 -0
- package/dist/formats/dxbc/core/opcodes.js.map +1 -0
- package/dist/formats/dxbc/core/program.js +91 -0
- package/dist/formats/dxbc/core/program.js.map +1 -0
- package/dist/formats/dxbc/core/signature.js +172 -0
- package/dist/formats/dxbc/core/signature.js.map +1 -0
- package/dist/formats/dxbc/index.js +2 -0
- package/dist/formats/dxbc/index.js.map +1 -0
- package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
- package/dist/formats/hlsl/core/HlslReader.js +266 -0
- package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
- package/dist/formats/hlsl/core/analysis.js +51 -0
- package/dist/formats/hlsl/core/analysis.js.map +1 -0
- package/dist/formats/hlsl/core/helpers.js +270 -0
- package/dist/formats/hlsl/core/helpers.js.map +1 -0
- package/dist/formats/hlsl/core/json.js +284 -0
- package/dist/formats/hlsl/core/json.js.map +1 -0
- package/dist/formats/hlsl/core/metadata.js +327 -0
- package/dist/formats/hlsl/core/metadata.js.map +1 -0
- package/dist/formats/hlsl/core/portableReflection.js +848 -0
- package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
- package/dist/formats/hlsl/core/render-states.js +280 -0
- package/dist/formats/hlsl/core/render-states.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
- package/dist/formats/hlsl/index.js +2 -0
- package/dist/formats/hlsl/index.js.map +1 -0
- package/dist/formats/hlsl/portable.js +2 -0
- package/dist/formats/hlsl/portable.js.map +1 -0
- package/dist/formats/index.js +4 -0
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +221 -0
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
- package/dist/formats/webgl/core/cewg/binary.js +101 -0
- package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
- package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
- package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +789 -0
- package/dist/formats/webgl/core/effectPackage.js.map +1 -0
- package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
- package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgl/core/errors.js +27 -0
- package/dist/formats/webgl/core/errors.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +306 -0
- package/dist/formats/webgl/core/helpers.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -0
- package/dist/formats/webgl/index.js.map +1 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
- package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgpu/core/errors.js +20 -0
- package/dist/formats/webgpu/core/errors.js.map +1 -0
- package/dist/formats/webgpu/core/helpers.js +448 -0
- package/dist/formats/webgpu/core/helpers.js.map +1 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffect.js +300 -0
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
- package/dist/formats/webgpu/core/packageMetadata.js +8 -0
- package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
- package/dist/formats/webgpu/core/schema.js +4 -0
- package/dist/formats/webgpu/core/schema.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
- package/dist/formats/webgpu/index.js +2 -0
- package/dist/formats/webgpu/index.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +159 -150
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +23 -28
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialMesh.js +21 -27
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialRes.js +24 -29
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
- package/dist/resource/shader/Tr2Shader.js +45 -39
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +30 -32
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +113 -78
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +17 -23
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +23 -29
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +44 -40
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +82 -86
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +55 -61
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +49 -45
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +25 -30
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +30 -32
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +21 -26
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/docs/formats/README.md +4 -0
- package/docs/formats/provenance.md +11 -3
- package/docs/reference/classes/formats.md +440 -0
- package/format-notices/dxbc/LICENSE +21 -0
- package/format-notices/dxbc/NOTICE +20 -0
- package/format-notices/hlsl/LICENSE +21 -0
- package/format-notices/hlsl/NOTICE +25 -0
- package/format-notices/webgl/LICENSE +21 -0
- package/format-notices/webgl/NOTICE +35 -0
- package/format-notices/webgpu/LICENSE +21 -0
- package/format-notices/webgpu/NOTICE +31 -0
- package/package.json +6 -1
- package/dist/resource/shader/portableValidation.js +0 -461
- package/dist/resource/shader/portableValidation.js.map +0 -1
|
@@ -1,70 +1,55 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { impl, type } from '@carbonenginejs/runtime-utils/schema';
|
|
1
|
+
import { CjsSchema, impl, type } from '@carbonenginejs/runtime-utils/schema';
|
|
3
2
|
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
4
3
|
import { copyBytes } from '@carbonenginejs/runtime-utils/bytes';
|
|
5
4
|
import { isPlainObject, isArray, isUint32 } from '@carbonenginejs/runtime-utils/is';
|
|
6
5
|
import { cloneCarbonValue } from '@carbonenginejs/runtime-utils/types';
|
|
7
6
|
import { requirePortableStageType, clonePortableSourceProgram } from '../portable.js';
|
|
8
|
-
import {
|
|
9
|
-
import { Tr2SamplerSetup
|
|
10
|
-
import { Tr2EffectConstant
|
|
11
|
-
import { Tr2EffectParameterAnnotation
|
|
12
|
-
import { Tr2EffectResource
|
|
7
|
+
import { validateEffectBodyInput } from '../../../formats/hlsl/core/portableReflection.js';
|
|
8
|
+
import { Tr2SamplerSetup } from '../sampler/Tr2SamplerSetup.js';
|
|
9
|
+
import { Tr2EffectConstant } from './Tr2EffectConstant.js';
|
|
10
|
+
import { Tr2EffectParameterAnnotation } from './Tr2EffectParameterAnnotation.js';
|
|
11
|
+
import { Tr2EffectResource } from './Tr2EffectResource.js';
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
14
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.cpp
|
|
15
15
|
|
|
16
16
|
/** Complete device-free reflection for one shader stage input. */
|
|
17
|
-
let _Tr2EffectStageInput;
|
|
18
17
|
class Tr2EffectStageInput extends CjsModel {
|
|
19
|
-
static {
|
|
20
|
-
({
|
|
21
|
-
e: [_init_stageType, _init_extra_stageType, _init_exists, _init_extra_exists, _init_resources, _init_extra_resources, _init_uavs, _init_extra_uavs, _init_samplers, _init_extra_samplers, _init_shader, _init_extra_shader, _init_constants, _init_extra_constants, _init_constantValueSize, _init_extra_constantValueSize, _init_constantValues, _init_extra_constantValues, _init_signature, _init_extra_signature, _init_annotation, _init_extra_annotation, _init_sourceProgram, _init_extra_sourceProgram, _initStatic],
|
|
22
|
-
c: [_Tr2EffectStageInput, _initClass]
|
|
23
|
-
} = _applyDecs2311(this, [type.define({
|
|
24
|
-
className: "Tr2EffectStageInput",
|
|
25
|
-
family: "shader"
|
|
26
|
-
})], [[[impl, impl.adapted, void 0, impl.reason("The source format identifies stage inputs by array index; the device-free graph retains the index explicitly for serialization and engine adapters."), type, type.int32], 16, "stageType"], [[type, type.boolean], 16, "exists"], [type.map("Tr2EffectResource"), 0, "resources"], [type.map("Tr2EffectResource"), 0, "uavs"], [type.map("Tr2SamplerSetup"), 0, "samplers"], [[type, type.uint32], 16, "shader"], [type.list("Tr2EffectConstant"), 0, "constants"], [[type, type.uint32], 16, "constantValueSize"], [type.typedArray("Uint8Array"), 0, "constantValues"], [type.rawStruct("Tr2ShaderSignatureAL"), 0, "signature"], [type.list("Tr2EffectParameterAnnotation"), 0, "annotation"], [[impl, impl.adapted, void 0, impl.reason("Carbon replaces source program data with renderer handles while reading; the device-free resource graph must retain the portable source program for later engine realization."), void 0, type.rawStruct("CjsEffectSourceProgram")], 16, "sourceProgram"], [[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"], [[impl, impl.custom, void 0, impl.reason("Carbon reads stage-input bytes in place; CarbonEngineJS also supports the portable stage-input record used by effect packages.")], 26, "fromPortableInput"], [[impl, impl.custom, void 0, impl.reason("Carbon stores six fixed stage slots in each pass; CarbonEngineJS constructs explicit absent canonical slots before portable stages are assigned.")], 26, "createEmpty"], [[impl, impl.custom, void 0, impl.reason("Carbon reads a native register map; CarbonEngineJS indexes validated portable resource records into the canonical numeric map.")], 26, "readPortableResourceMap"], [[impl, impl.custom, void 0, impl.reason("Carbon reads a native sampler map; CarbonEngineJS indexes validated portable sampler records into the canonical numeric map.")], 26, "readPortableSamplerMap"], [[impl, impl.custom, void 0, impl.reason("Carbon has fixed native map types; CarbonEngineJS restores numeric register keys and canonical child identity from JSON-compatible maps.")], 26, "readCanonicalRegisterMap"]], 0, void 0, CjsModel));
|
|
27
|
-
_initStatic(this);
|
|
28
|
-
}
|
|
29
|
-
constructor(...args) {
|
|
30
|
-
super(...args);
|
|
31
|
-
_init_extra_sourceProgram(this);
|
|
32
|
-
}
|
|
33
18
|
/** Portable stage index; Carbon otherwise implies this from the containing array. */
|
|
34
|
-
stageType =
|
|
19
|
+
stageType = -1;
|
|
35
20
|
|
|
36
21
|
/** m_exists (bool) */
|
|
37
|
-
exists =
|
|
22
|
+
exists = false;
|
|
38
23
|
|
|
39
24
|
/** resources (Tr2EffectResourceMap) */
|
|
40
|
-
resources =
|
|
25
|
+
resources = new Map();
|
|
41
26
|
|
|
42
27
|
/** uavs (Tr2EffectResourceMap) */
|
|
43
|
-
uavs =
|
|
28
|
+
uavs = new Map();
|
|
44
29
|
|
|
45
30
|
/** samplers (Tr2SamplerSetupMap) */
|
|
46
|
-
samplers =
|
|
31
|
+
samplers = new Map();
|
|
47
32
|
|
|
48
33
|
/** m_shader (unsigned) */
|
|
49
|
-
shader =
|
|
34
|
+
shader = 0xffffffff;
|
|
50
35
|
|
|
51
36
|
/** constants (Tr2EffectConstantVector) */
|
|
52
|
-
constants =
|
|
37
|
+
constants = [];
|
|
53
38
|
|
|
54
39
|
/** m_constantValueSize (unsigned) */
|
|
55
|
-
constantValueSize =
|
|
40
|
+
constantValueSize = 0;
|
|
56
41
|
|
|
57
42
|
/** constantValues (char[SHADER_CONSTANTS_MAX]) */
|
|
58
|
-
constantValues =
|
|
43
|
+
constantValues = new Uint8Array(0);
|
|
59
44
|
|
|
60
45
|
/** signature (Tr2ShaderSignatureAL) */
|
|
61
|
-
signature =
|
|
46
|
+
signature = null;
|
|
62
47
|
|
|
63
48
|
/** annotation (Tr2EffectParameterAnnotationMap) */
|
|
64
|
-
annotation =
|
|
49
|
+
annotation = [];
|
|
65
50
|
|
|
66
51
|
/** Exact source program metadata and owned bytes, before backend realization. */
|
|
67
|
-
sourceProgram =
|
|
52
|
+
sourceProgram = null;
|
|
68
53
|
|
|
69
54
|
/**
|
|
70
55
|
* Construct one canonical stage input from JS/JSON model values.
|
|
@@ -76,7 +61,7 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
76
61
|
static from(values = {}, options = {}) {
|
|
77
62
|
let normalized = values;
|
|
78
63
|
const maps = new Map();
|
|
79
|
-
for (const [field, Constructor] of [["resources",
|
|
64
|
+
for (const [field, Constructor] of [["resources", Tr2EffectResource], ["uavs", Tr2EffectResource], ["samplers", Tr2SamplerSetup]]) {
|
|
80
65
|
if (values && Object.hasOwn(values, field)) {
|
|
81
66
|
normalized = normalized === values ? {
|
|
82
67
|
...values
|
|
@@ -118,7 +103,7 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
118
103
|
if (!isPlainObject(value)) {
|
|
119
104
|
throw new TypeError("Portable effect stage input must be an object");
|
|
120
105
|
}
|
|
121
|
-
|
|
106
|
+
validateEffectBodyInput(value);
|
|
122
107
|
if (!isArray(value.constants)) {
|
|
123
108
|
throw new TypeError("Portable effect constants must be an array");
|
|
124
109
|
}
|
|
@@ -148,14 +133,14 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
148
133
|
const input = new this();
|
|
149
134
|
input.stageType = stageType;
|
|
150
135
|
input.exists = true;
|
|
151
|
-
input.constants = value.constants.map(entry =>
|
|
136
|
+
input.constants = value.constants.map(entry => Tr2EffectConstant.fromPortable(entry));
|
|
152
137
|
input.resources = this.readPortableResourceMap(value.resources);
|
|
153
138
|
input.uavs = this.readPortableResourceMap(value.uavs);
|
|
154
139
|
input.samplers = this.readPortableSamplerMap(value.samplers);
|
|
155
140
|
input.constantValueSize = constantValues.byteLength;
|
|
156
141
|
input.constantValues = constantValues;
|
|
157
142
|
input.signature = cloneCarbonValue(value.signature);
|
|
158
|
-
input.annotation = value.annotations.map(entry =>
|
|
143
|
+
input.annotation = value.annotations.map(entry => Tr2EffectParameterAnnotation.fromPortable(entry));
|
|
159
144
|
input.sourceProgram = sourceProgram ? clonePortableSourceProgram(sourceProgram, "stage") : null;
|
|
160
145
|
return input;
|
|
161
146
|
}
|
|
@@ -186,7 +171,7 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
186
171
|
if (result.has(registerIndex)) {
|
|
187
172
|
throw new Error(`Portable effect resource register ${registerIndex} is duplicated`);
|
|
188
173
|
}
|
|
189
|
-
result.set(registerIndex,
|
|
174
|
+
result.set(registerIndex, Tr2EffectResource.fromPortable(value));
|
|
190
175
|
}
|
|
191
176
|
return result;
|
|
192
177
|
}
|
|
@@ -205,7 +190,7 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
205
190
|
if (result.has(registerIndex)) {
|
|
206
191
|
throw new Error(`Portable effect sampler register ${registerIndex} is duplicated`);
|
|
207
192
|
}
|
|
208
|
-
result.set(registerIndex,
|
|
193
|
+
result.set(registerIndex, Tr2SamplerSetup.fromPortable(value));
|
|
209
194
|
}
|
|
210
195
|
return result;
|
|
211
196
|
}
|
|
@@ -226,10 +211,29 @@ class Tr2EffectStageInput extends CjsModel {
|
|
|
226
211
|
}
|
|
227
212
|
return result;
|
|
228
213
|
}
|
|
229
|
-
static {
|
|
230
|
-
_initClass();
|
|
231
|
-
}
|
|
232
214
|
}
|
|
233
215
|
|
|
234
|
-
|
|
216
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
217
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
218
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
219
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
220
|
+
// would register a static as an instance field.
|
|
221
|
+
CjsSchema.define(Tr2EffectStageInput, {
|
|
222
|
+
className: "Tr2EffectStageInput",
|
|
223
|
+
family: "shader"
|
|
224
|
+
});
|
|
225
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "stageType", impl.adapted, impl.reason("The source format identifies stage inputs by array index; the device-free graph retains the index explicitly for serialization and engine adapters."), type.int32);
|
|
226
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "exists", type.boolean);
|
|
227
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "resources", type.map("Tr2EffectResource"));
|
|
228
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "uavs", type.map("Tr2EffectResource"));
|
|
229
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "samplers", type.map("Tr2SamplerSetup"));
|
|
230
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "shader", type.uint32);
|
|
231
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "constants", type.list("Tr2EffectConstant"));
|
|
232
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "constantValueSize", type.uint32);
|
|
233
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "constantValues", type.typedArray("Uint8Array"));
|
|
234
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "signature", type.rawStruct("Tr2ShaderSignatureAL"));
|
|
235
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "annotation", type.list("Tr2EffectParameterAnnotation"));
|
|
236
|
+
CjsSchema.decorateField(Tr2EffectStageInput, "sourceProgram", impl.adapted, impl.reason("Carbon replaces source program data with renderer handles while reading; the device-free resource graph must retain the portable source program for later engine realization."), type.rawStruct("CjsEffectSourceProgram"));
|
|
237
|
+
|
|
238
|
+
export { Tr2EffectStageInput };
|
|
235
239
|
//# sourceMappingURL=Tr2EffectStageInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2EffectStageInput.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectStageInput.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\n// Source: trinity/trinity/Shader/Tr2EffectDescription.cpp\nimport { impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { copyBytes } from \"@carbonenginejs/runtime-utils/bytes\";\nimport {\n isArray,\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { cloneCarbonValue } from \"@carbonenginejs/runtime-utils/types\";\nimport {\n clonePortableSourceProgram,\n requirePortableStageType\n} from \"../portable.js\";\nimport { validatePortableEffectInput } from \"../portableValidation.js\";\nimport { Tr2SamplerSetup } from \"../sampler/Tr2SamplerSetup.js\";\nimport { Tr2EffectConstant } from \"./Tr2EffectConstant.js\";\nimport { Tr2EffectParameterAnnotation } from \"./Tr2EffectParameterAnnotation.js\";\nimport { Tr2EffectResource } from \"./Tr2EffectResource.js\";\n\n/** Complete device-free reflection for one shader stage input. */\n@type.define({ className: \"Tr2EffectStageInput\", family: \"shader\" })\nexport class Tr2EffectStageInput extends CjsModel\n{\n\n /** Portable stage index; Carbon otherwise implies this from the containing array. */\n @impl.adapted\n @impl.reason(\"The source format identifies stage inputs by array index; the device-free graph retains the index explicitly for serialization and engine adapters.\")\n @type.int32\n stageType = -1;\n\n /** m_exists (bool) */\n @type.boolean\n exists = false;\n\n /** resources (Tr2EffectResourceMap) */\n @type.map(\"Tr2EffectResource\")\n resources = new Map();\n\n /** uavs (Tr2EffectResourceMap) */\n @type.map(\"Tr2EffectResource\")\n uavs = new Map();\n\n /** samplers (Tr2SamplerSetupMap) */\n @type.map(\"Tr2SamplerSetup\")\n samplers = new Map();\n\n /** m_shader (unsigned) */\n @type.uint32\n shader = 0xffffffff;\n\n /** constants (Tr2EffectConstantVector) */\n @type.list(\"Tr2EffectConstant\")\n constants = [];\n\n /** m_constantValueSize (unsigned) */\n @type.uint32\n constantValueSize = 0;\n\n /** constantValues (char[SHADER_CONSTANTS_MAX]) */\n @type.typedArray(\"Uint8Array\")\n constantValues = new Uint8Array(0);\n\n /** signature (Tr2ShaderSignatureAL) */\n @type.rawStruct(\"Tr2ShaderSignatureAL\")\n signature = null;\n\n /** annotation (Tr2EffectParameterAnnotationMap) */\n @type.list(\"Tr2EffectParameterAnnotation\")\n annotation = [];\n\n /** Exact source program metadata and owned bytes, before backend realization. */\n @impl.adapted\n @impl.reason(\"Carbon replaces source program data with renderer handles while reading; the device-free resource graph must retain the portable source program for later engine realization.\")\n @type.rawStruct(\"CjsEffectSourceProgram\")\n sourceProgram = null;\n\n /**\n * Construct one canonical stage input from JS/JSON model values.\n *\n * @param {object} values Canonical model values.\n * @param {object} options CjsModel import options.\n * @returns {Tr2EffectStageInput} Hydrated stage input.\n */\n static from(values = {}, options = {})\n {\n let normalized = values;\n const maps = new Map();\n for (const [ field, Constructor ] of [\n [ \"resources\", Tr2EffectResource ],\n [ \"uavs\", Tr2EffectResource ],\n [ \"samplers\", Tr2SamplerSetup ]\n ])\n {\n if (values && Object.hasOwn(values, field))\n {\n normalized = normalized === values ? { ...values } : normalized;\n normalized[field] = this.readCanonicalRegisterMap(\n values[field],\n Constructor,\n options,\n field\n );\n maps.set(field, normalized[field]);\n }\n }\n const stage = super.from(normalized, options);\n for (const [ field, value ] of maps)\n {\n stage[field] = value;\n }\n return stage;\n }\n\n /**\n * Build one stage input from its complete portable JSON stage record.\n *\n * @param {object} value Portable stage record.\n * @returns {Tr2EffectStageInput} Reflected stage input.\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 stage must be an object\");\n }\n const stageType = requirePortableStageType(value.stageType);\n return this.fromPortableInput(\n value.input,\n stageType,\n value.sourceProgram\n );\n }\n\n /**\n * Build one input record used by a render stage or shader library.\n *\n * @param {object} value Portable input record.\n * @param {number} stageType Stage index, or -1 for a library input.\n * @param {object|null} sourceProgram Optional stage source program.\n * @returns {Tr2EffectStageInput} Reflected input.\n */\n @impl.custom\n @impl.reason(\"Carbon reads stage-input bytes in place; CarbonEngineJS also supports the portable stage-input record used by effect packages.\")\n static fromPortableInput(value, stageType = -1, sourceProgram = null)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect stage input must be an object\");\n }\n validatePortableEffectInput(value);\n if (!isArray(value.constants))\n {\n throw new TypeError(\"Portable effect constants must be an array\");\n }\n if (!isArray(value.resources))\n {\n throw new TypeError(\"Portable effect resources must be an array\");\n }\n if (!isArray(value.uavs))\n {\n throw new TypeError(\"Portable effect UAVs must be an array\");\n }\n if (!isArray(value.samplers))\n {\n throw new TypeError(\"Portable effect samplers must be an array\");\n }\n if (!isArray(value.annotations))\n {\n throw new TypeError(\n \"Portable effect stage annotations must be an array\"\n );\n }\n if (!isPlainObject(value.constantDefaults))\n {\n throw new TypeError(\n \"Portable effect constant defaults must be an object\"\n );\n }\n if (!(value.constantDefaults.bytes instanceof Uint8Array))\n {\n throw new TypeError(\n \"Portable effect constant defaults must be Uint8Array bytes\"\n );\n }\n\n const defaults = value.constantDefaults;\n const constantValues = copyBytes(defaults.bytes);\n if (defaults.declaredByteLength !== constantValues.byteLength)\n {\n throw new Error(\n \"Portable effect constant defaults disagree with their declared byte length\"\n );\n }\n\n const input = new this();\n input.stageType = stageType;\n input.exists = true;\n input.constants = value.constants.map(\n entry => Tr2EffectConstant.fromPortable(entry)\n );\n input.resources = this.readPortableResourceMap(value.resources);\n input.uavs = this.readPortableResourceMap(value.uavs);\n input.samplers = this.readPortableSamplerMap(value.samplers);\n input.constantValueSize = constantValues.byteLength;\n input.constantValues = constantValues;\n input.signature = cloneCarbonValue(value.signature);\n input.annotation = value.annotations.map(\n entry => Tr2EffectParameterAnnotation.fromPortable(entry)\n );\n input.sourceProgram = sourceProgram\n ? clonePortableSourceProgram(sourceProgram, \"stage\")\n : null;\n return input;\n }\n\n /**\n * Create one explicit absent stage slot.\n *\n * @param {number} stageType Stage index.\n * @returns {Tr2EffectStageInput} Empty stage input.\n */\n @impl.custom\n @impl.reason(\"Carbon stores six fixed stage slots in each pass; CarbonEngineJS constructs explicit absent canonical slots before portable stages are assigned.\")\n static createEmpty(stageType)\n {\n const stage = new this();\n stage.stageType = requirePortableStageType(stageType);\n return stage;\n }\n\n /** Build one register-indexed portable resource map. */\n @impl.custom\n @impl.reason(\"Carbon reads a native register map; CarbonEngineJS indexes validated portable resource records into the canonical numeric map.\")\n static readPortableResourceMap(values)\n {\n const result = new Map();\n for (const value of values)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect resource must be an object\");\n }\n if (!isUint32(value.registerIndex))\n {\n throw new RangeError(\n \"Portable resource register index must fit uint32\"\n );\n }\n const registerIndex = value.registerIndex;\n if (result.has(registerIndex))\n {\n throw new Error(\n `Portable effect resource register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n Tr2EffectResource.fromPortable(value)\n );\n }\n return result;\n }\n\n /** Build one register-indexed portable sampler map. */\n @impl.custom\n @impl.reason(\"Carbon reads a native sampler map; CarbonEngineJS indexes validated portable sampler records into the canonical numeric map.\")\n static readPortableSamplerMap(values)\n {\n const result = new Map();\n for (const value of values)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect sampler must be an object\");\n }\n if (!isUint32(value.registerIndex))\n {\n throw new RangeError(\n \"Portable sampler register index must fit uint32\"\n );\n }\n const registerIndex = value.registerIndex;\n if (result.has(registerIndex))\n {\n throw new Error(\n `Portable effect sampler register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n Tr2SamplerSetup.fromPortable(value)\n );\n }\n return result;\n }\n\n /** Hydrate one numeric-register map from canonical JS/JSON values. */\n @impl.custom\n @impl.reason(\"Carbon has fixed native map types; CarbonEngineJS restores numeric register keys and canonical child identity from JSON-compatible maps.\")\n static readCanonicalRegisterMap(values, Constructor, options, field)\n {\n const entries = values instanceof Map\n ? values\n : Object.entries(values ?? {});\n const result = new Map();\n for (const [ key, value ] of entries)\n {\n const registerIndex = Number(key);\n if (!isUint32(registerIndex))\n {\n throw new RangeError(\n `Effect ${field} register index must fit uint32`\n );\n }\n if (result.has(registerIndex))\n {\n throw new Error(\n `Effect ${field} register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n value instanceof Constructor\n ? value\n : Constructor.from(value, options)\n );\n }\n return result;\n }\n\n}\n"],"names":["_Tr2EffectStageInput","Tr2EffectStageInput","CjsModel","e","_init_stageType","_init_extra_stageType","_init_exists","_init_extra_exists","_init_resources","_init_extra_resources","_init_uavs","_init_extra_uavs","_init_samplers","_init_extra_samplers","_init_shader","_init_extra_shader","_init_constants","_init_extra_constants","_init_constantValueSize","_init_extra_constantValueSize","_init_constantValues","_init_extra_constantValues","_init_signature","_init_extra_signature","_init_annotation","_init_extra_annotation","_init_sourceProgram","_init_extra_sourceProgram","_initStatic","c","_initClass","_applyDecs","type","define","className","family","impl","adapted","reason","int32","boolean","map","uint32","list","typedArray","rawStruct","custom","constructor","args","stageType","exists","resources","Map","uavs","samplers","shader","constants","constantValueSize","constantValues","Uint8Array","signature","annotation","sourceProgram","from","values","options","normalized","maps","field","Constructor","Tr2EffectResource","Tr2SamplerSetup","Object","hasOwn","readCanonicalRegisterMap","set","stage","value","fromPortable","isPlainObject","TypeError","requirePortableStageType","fromPortableInput","input","validatePortableEffectInput","isArray","annotations","constantDefaults","bytes","defaults","copyBytes","declaredByteLength","byteLength","Error","entry","Tr2EffectConstant","readPortableResourceMap","readPortableSamplerMap","cloneCarbonValue","Tr2EffectParameterAnnotation","clonePortableSourceProgram","createEmpty","result","isUint32","registerIndex","RangeError","has","entries","key","Number"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tr2EffectStageInput.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectStageInput.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\n// Source: trinity/trinity/Shader/Tr2EffectDescription.cpp\nimport { CjsSchema, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { copyBytes } from \"@carbonenginejs/runtime-utils/bytes\";\nimport {\n isArray,\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { cloneCarbonValue } from \"@carbonenginejs/runtime-utils/types\";\nimport {\n clonePortableSourceProgram,\n requirePortableStageType\n} from \"../portable.js\";\nimport { validateEffectBodyInput } from \"../../../formats/hlsl/portable.js\";\nimport { Tr2SamplerSetup } from \"../sampler/Tr2SamplerSetup.js\";\nimport { Tr2EffectConstant } from \"./Tr2EffectConstant.js\";\nimport { Tr2EffectParameterAnnotation } from \"./Tr2EffectParameterAnnotation.js\";\nimport { Tr2EffectResource } from \"./Tr2EffectResource.js\";\n\n/** Complete device-free reflection for one shader stage input. */\nexport class Tr2EffectStageInput extends CjsModel\n{\n\n /** Portable stage index; Carbon otherwise implies this from the containing array. */\n stageType = -1;\n\n /** m_exists (bool) */\n exists = false;\n\n /** resources (Tr2EffectResourceMap) */\n resources = new Map();\n\n /** uavs (Tr2EffectResourceMap) */\n uavs = new Map();\n\n /** samplers (Tr2SamplerSetupMap) */\n samplers = new Map();\n\n /** m_shader (unsigned) */\n shader = 0xffffffff;\n\n /** constants (Tr2EffectConstantVector) */\n constants = [];\n\n /** m_constantValueSize (unsigned) */\n constantValueSize = 0;\n\n /** constantValues (char[SHADER_CONSTANTS_MAX]) */\n constantValues = new Uint8Array(0);\n\n /** signature (Tr2ShaderSignatureAL) */\n signature = null;\n\n /** annotation (Tr2EffectParameterAnnotationMap) */\n annotation = [];\n\n /** Exact source program metadata and owned bytes, before backend realization. */\n sourceProgram = null;\n\n /**\n * Construct one canonical stage input from JS/JSON model values.\n *\n * @param {object} values Canonical model values.\n * @param {object} options CjsModel import options.\n * @returns {Tr2EffectStageInput} Hydrated stage input.\n */\n static from(values = {}, options = {})\n {\n let normalized = values;\n const maps = new Map();\n for (const [ field, Constructor ] of [\n [ \"resources\", Tr2EffectResource ],\n [ \"uavs\", Tr2EffectResource ],\n [ \"samplers\", Tr2SamplerSetup ]\n ])\n {\n if (values && Object.hasOwn(values, field))\n {\n normalized = normalized === values ? { ...values } : normalized;\n normalized[field] = this.readCanonicalRegisterMap(\n values[field],\n Constructor,\n options,\n field\n );\n maps.set(field, normalized[field]);\n }\n }\n const stage = super.from(normalized, options);\n for (const [ field, value ] of maps)\n {\n stage[field] = value;\n }\n return stage;\n }\n\n /**\n * Build one stage input from its complete portable JSON stage record.\n *\n * @param {object} value Portable stage record.\n * @returns {Tr2EffectStageInput} Reflected stage input.\n */\n static fromPortable(value)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect stage must be an object\");\n }\n const stageType = requirePortableStageType(value.stageType);\n return this.fromPortableInput(\n value.input,\n stageType,\n value.sourceProgram\n );\n }\n\n /**\n * Build one input record used by a render stage or shader library.\n *\n * @param {object} value Portable input record.\n * @param {number} stageType Stage index, or -1 for a library input.\n * @param {object|null} sourceProgram Optional stage source program.\n * @returns {Tr2EffectStageInput} Reflected input.\n */\n static fromPortableInput(value, stageType = -1, sourceProgram = null)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect stage input must be an object\");\n }\n validateEffectBodyInput(value);\n if (!isArray(value.constants))\n {\n throw new TypeError(\"Portable effect constants must be an array\");\n }\n if (!isArray(value.resources))\n {\n throw new TypeError(\"Portable effect resources must be an array\");\n }\n if (!isArray(value.uavs))\n {\n throw new TypeError(\"Portable effect UAVs must be an array\");\n }\n if (!isArray(value.samplers))\n {\n throw new TypeError(\"Portable effect samplers must be an array\");\n }\n if (!isArray(value.annotations))\n {\n throw new TypeError(\n \"Portable effect stage annotations must be an array\"\n );\n }\n if (!isPlainObject(value.constantDefaults))\n {\n throw new TypeError(\n \"Portable effect constant defaults must be an object\"\n );\n }\n if (!(value.constantDefaults.bytes instanceof Uint8Array))\n {\n throw new TypeError(\n \"Portable effect constant defaults must be Uint8Array bytes\"\n );\n }\n\n const defaults = value.constantDefaults;\n const constantValues = copyBytes(defaults.bytes);\n if (defaults.declaredByteLength !== constantValues.byteLength)\n {\n throw new Error(\n \"Portable effect constant defaults disagree with their declared byte length\"\n );\n }\n\n const input = new this();\n input.stageType = stageType;\n input.exists = true;\n input.constants = value.constants.map(\n entry => Tr2EffectConstant.fromPortable(entry)\n );\n input.resources = this.readPortableResourceMap(value.resources);\n input.uavs = this.readPortableResourceMap(value.uavs);\n input.samplers = this.readPortableSamplerMap(value.samplers);\n input.constantValueSize = constantValues.byteLength;\n input.constantValues = constantValues;\n input.signature = cloneCarbonValue(value.signature);\n input.annotation = value.annotations.map(\n entry => Tr2EffectParameterAnnotation.fromPortable(entry)\n );\n input.sourceProgram = sourceProgram\n ? clonePortableSourceProgram(sourceProgram, \"stage\")\n : null;\n return input;\n }\n\n /**\n * Create one explicit absent stage slot.\n *\n * @param {number} stageType Stage index.\n * @returns {Tr2EffectStageInput} Empty stage input.\n */\n static createEmpty(stageType)\n {\n const stage = new this();\n stage.stageType = requirePortableStageType(stageType);\n return stage;\n }\n\n /** Build one register-indexed portable resource map. */\n static readPortableResourceMap(values)\n {\n const result = new Map();\n for (const value of values)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect resource must be an object\");\n }\n if (!isUint32(value.registerIndex))\n {\n throw new RangeError(\n \"Portable resource register index must fit uint32\"\n );\n }\n const registerIndex = value.registerIndex;\n if (result.has(registerIndex))\n {\n throw new Error(\n `Portable effect resource register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n Tr2EffectResource.fromPortable(value)\n );\n }\n return result;\n }\n\n /** Build one register-indexed portable sampler map. */\n static readPortableSamplerMap(values)\n {\n const result = new Map();\n for (const value of values)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect sampler must be an object\");\n }\n if (!isUint32(value.registerIndex))\n {\n throw new RangeError(\n \"Portable sampler register index must fit uint32\"\n );\n }\n const registerIndex = value.registerIndex;\n if (result.has(registerIndex))\n {\n throw new Error(\n `Portable effect sampler register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n Tr2SamplerSetup.fromPortable(value)\n );\n }\n return result;\n }\n\n /** Hydrate one numeric-register map from canonical JS/JSON values. */\n static readCanonicalRegisterMap(values, Constructor, options, field)\n {\n const entries = values instanceof Map\n ? values\n : Object.entries(values ?? {});\n const result = new Map();\n for (const [ key, value ] of entries)\n {\n const registerIndex = Number(key);\n if (!isUint32(registerIndex))\n {\n throw new RangeError(\n `Effect ${field} register index must fit uint32`\n );\n }\n if (result.has(registerIndex))\n {\n throw new Error(\n `Effect ${field} register ${registerIndex} is duplicated`\n );\n }\n result.set(\n registerIndex,\n value instanceof Constructor\n ? value\n : Constructor.from(value, options)\n );\n }\n return result;\n }\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2EffectStageInput, {\n className: \"Tr2EffectStageInput\",\n family: \"shader\"\n});\nCjsSchema.decorateField(Tr2EffectStageInput, \"stageType\", impl.adapted, impl.reason(\"The source format identifies stage inputs by array index; the device-free graph retains the index explicitly for serialization and engine adapters.\"), type.int32);\nCjsSchema.decorateField(Tr2EffectStageInput, \"exists\", type.boolean);\nCjsSchema.decorateField(Tr2EffectStageInput, \"resources\", type.map(\"Tr2EffectResource\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"uavs\", type.map(\"Tr2EffectResource\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"samplers\", type.map(\"Tr2SamplerSetup\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"shader\", type.uint32);\nCjsSchema.decorateField(Tr2EffectStageInput, \"constants\", type.list(\"Tr2EffectConstant\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"constantValueSize\", type.uint32);\nCjsSchema.decorateField(Tr2EffectStageInput, \"constantValues\", type.typedArray(\"Uint8Array\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"signature\", type.rawStruct(\"Tr2ShaderSignatureAL\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"annotation\", type.list(\"Tr2EffectParameterAnnotation\"));\nCjsSchema.decorateField(Tr2EffectStageInput, \"sourceProgram\", impl.adapted, impl.reason(\"Carbon replaces source program data with renderer handles while reading; the device-free resource graph must retain the portable source program for later engine realization.\"), type.rawStruct(\"CjsEffectSourceProgram\"));\n"],"names":["Tr2EffectStageInput","CjsModel","stageType","exists","resources","Map","uavs","samplers","shader","constants","constantValueSize","constantValues","Uint8Array","signature","annotation","sourceProgram","from","values","options","normalized","maps","field","Constructor","Tr2EffectResource","Tr2SamplerSetup","Object","hasOwn","readCanonicalRegisterMap","set","stage","value","fromPortable","isPlainObject","TypeError","requirePortableStageType","fromPortableInput","input","validateEffectBodyInput","isArray","annotations","constantDefaults","bytes","defaults","copyBytes","declaredByteLength","byteLength","Error","map","entry","Tr2EffectConstant","readPortableResourceMap","readPortableSamplerMap","cloneCarbonValue","Tr2EffectParameterAnnotation","clonePortableSourceProgram","createEmpty","result","isUint32","registerIndex","RangeError","has","entries","key","Number","CjsSchema","define","className","family","decorateField","impl","adapted","reason","type","int32","boolean","uint32","list","typedArray","rawStruct"],"mappings":"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"}
|
|
@@ -1,40 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
1
|
+
import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
|
|
3
2
|
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
4
3
|
import { isPlainObject, isArray } from '@carbonenginejs/runtime-utils/is';
|
|
5
|
-
import { Tr2EffectLibrary
|
|
6
|
-
import { Tr2Pass
|
|
4
|
+
import { Tr2EffectLibrary } from './Tr2EffectLibrary.js';
|
|
5
|
+
import { Tr2Pass } from './Tr2Pass.js';
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
9
8
|
|
|
10
9
|
/** Reflected effect technique and its passes and libraries. */
|
|
11
|
-
let _Tr2EffectTechnique;
|
|
12
10
|
class Tr2EffectTechnique extends CjsModel {
|
|
13
|
-
static {
|
|
14
|
-
({
|
|
15
|
-
e: [_init_name, _init_extra_name, _init_passes, _init_extra_passes, _init_libraries, _init_extra_libraries, _init_shaderTypeMask, _init_extra_shaderTypeMask, _initStatic],
|
|
16
|
-
c: [_Tr2EffectTechnique, _initClass]
|
|
17
|
-
} = _applyDecs2311(this, [type.define({
|
|
18
|
-
className: "Tr2EffectTechnique",
|
|
19
|
-
family: "shader"
|
|
20
|
-
})], [[[type, type.string], 16, "name"], [type.list("Tr2Pass"), 0, "passes"], [type.list("Tr2EffectLibrary"), 0, "libraries"], [[type, type.uint32], 16, "shaderTypeMask"], [[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));
|
|
21
|
-
_initStatic(this);
|
|
22
|
-
}
|
|
23
|
-
constructor(...args) {
|
|
24
|
-
super(...args);
|
|
25
|
-
_init_extra_shaderTypeMask(this);
|
|
26
|
-
}
|
|
27
11
|
/** name (BlueSharedString) */
|
|
28
|
-
name =
|
|
12
|
+
name = "";
|
|
29
13
|
|
|
30
14
|
/** passes (TrackableStdVector<Tr2Pass>) */
|
|
31
|
-
passes =
|
|
15
|
+
passes = [];
|
|
32
16
|
|
|
33
17
|
/** libraries (std::vector<Tr2EffectLibrary>) */
|
|
34
|
-
libraries =
|
|
18
|
+
libraries = [];
|
|
35
19
|
|
|
36
20
|
/** shaderTypeMask (unsigned int) */
|
|
37
|
-
shaderTypeMask =
|
|
21
|
+
shaderTypeMask = 0;
|
|
38
22
|
|
|
39
23
|
/**
|
|
40
24
|
* Build one technique from its portable JSON reflection record.
|
|
@@ -57,15 +41,26 @@ class Tr2EffectTechnique extends CjsModel {
|
|
|
57
41
|
}
|
|
58
42
|
const technique = new this();
|
|
59
43
|
technique.name = String(value.name ?? "");
|
|
60
|
-
technique.passes = value.passes.map(entry =>
|
|
61
|
-
technique.libraries = value.libraries.map(entry =>
|
|
44
|
+
technique.passes = value.passes.map(entry => Tr2Pass.fromPortable(entry));
|
|
45
|
+
technique.libraries = value.libraries.map(entry => Tr2EffectLibrary.fromPortable(entry));
|
|
62
46
|
technique.shaderTypeMask = technique.passes.reduce((mask, pass) => mask | pass.shaderTypeMask, 0) >>> 0;
|
|
63
47
|
return technique;
|
|
64
48
|
}
|
|
65
|
-
static {
|
|
66
|
-
_initClass();
|
|
67
|
-
}
|
|
68
49
|
}
|
|
69
50
|
|
|
70
|
-
|
|
51
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
52
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
53
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
54
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
55
|
+
// would register a static as an instance field.
|
|
56
|
+
CjsSchema.define(Tr2EffectTechnique, {
|
|
57
|
+
className: "Tr2EffectTechnique",
|
|
58
|
+
family: "shader"
|
|
59
|
+
});
|
|
60
|
+
CjsSchema.decorateField(Tr2EffectTechnique, "name", type.string);
|
|
61
|
+
CjsSchema.decorateField(Tr2EffectTechnique, "passes", type.list("Tr2Pass"));
|
|
62
|
+
CjsSchema.decorateField(Tr2EffectTechnique, "libraries", type.list("Tr2EffectLibrary"));
|
|
63
|
+
CjsSchema.decorateField(Tr2EffectTechnique, "shaderTypeMask", type.uint32);
|
|
64
|
+
|
|
65
|
+
export { Tr2EffectTechnique };
|
|
71
66
|
//# sourceMappingURL=Tr2EffectTechnique.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2EffectTechnique.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectTechnique.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isArray,\n isPlainObject\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { Tr2EffectLibrary } from \"./Tr2EffectLibrary.js\";\nimport { Tr2Pass } from \"./Tr2Pass.js\";\n\n/** Reflected effect technique and its passes and libraries. */\
|
|
1
|
+
{"version":3,"file":"Tr2EffectTechnique.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectTechnique.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { CjsSchema, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isArray,\n isPlainObject\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { Tr2EffectLibrary } from \"./Tr2EffectLibrary.js\";\nimport { Tr2Pass } from \"./Tr2Pass.js\";\n\n/** Reflected effect technique and its passes and libraries. */\nexport class Tr2EffectTechnique extends CjsModel\n{\n\n /** name (BlueSharedString) */\n name = \"\";\n\n /** passes (TrackableStdVector<Tr2Pass>) */\n passes = [];\n\n /** libraries (std::vector<Tr2EffectLibrary>) */\n libraries = [];\n\n /** shaderTypeMask (unsigned int) */\n shaderTypeMask = 0;\n\n /**\n * Build one technique from its portable JSON reflection record.\n *\n * @param {object} value Portable technique record.\n * @returns {Tr2EffectTechnique} Reflected technique.\n */\n static fromPortable(value)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect technique must be an object\");\n }\n if (!isArray(value.passes))\n {\n throw new TypeError(\n \"Portable effect technique passes must be an array\"\n );\n }\n if (!isArray(value.libraries))\n {\n throw new TypeError(\n \"Portable effect technique libraries must be an array\"\n );\n }\n if (value.passCount !== value.passes.length\n || value.libraryCount !== value.libraries.length)\n {\n throw new Error(\n \"Portable effect technique counts disagree with its collections\"\n );\n }\n\n const technique = new this();\n technique.name = String(value.name ?? \"\");\n technique.passes = value.passes.map(\n entry => Tr2Pass.fromPortable(entry)\n );\n technique.libraries = value.libraries.map(\n entry => Tr2EffectLibrary.fromPortable(entry)\n );\n technique.shaderTypeMask = technique.passes.reduce(\n (mask, pass) => mask | pass.shaderTypeMask,\n 0\n ) >>> 0;\n return technique;\n }\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2EffectTechnique, {\n className: \"Tr2EffectTechnique\",\n family: \"shader\"\n});\nCjsSchema.decorateField(Tr2EffectTechnique, \"name\", type.string);\nCjsSchema.decorateField(Tr2EffectTechnique, \"passes\", type.list(\"Tr2Pass\"));\nCjsSchema.decorateField(Tr2EffectTechnique, \"libraries\", type.list(\"Tr2EffectLibrary\"));\nCjsSchema.decorateField(Tr2EffectTechnique, \"shaderTypeMask\", type.uint32);\n"],"names":["Tr2EffectTechnique","CjsModel","name","passes","libraries","shaderTypeMask","fromPortable","value","isPlainObject","TypeError","isArray","passCount","length","libraryCount","Error","technique","String","map","entry","Tr2Pass","Tr2EffectLibrary","reduce","mask","pass","CjsSchema","define","className","family","decorateField","type","string","list","uint32"],"mappings":";;;;;;AAAA;;AAUA;AACO,MAAMA,kBAAkB,SAASC,QAAQ,CAChD;AAEE;AACAC,EAAAA,IAAI,GAAG,EAAE;;AAET;AACAC,EAAAA,MAAM,GAAG,EAAE;;AAEX;AACAC,EAAAA,SAAS,GAAG,EAAE;;AAEd;AACAC,EAAAA,cAAc,GAAG,CAAC;;AAElB;AACF;AACA;AACA;AACA;AACA;EACE,OAAOC,YAAYA,CAACC,KAAK,EACzB;AACE,IAAA,IAAI,CAACC,aAAa,CAACD,KAAK,CAAC,EACzB;AACE,MAAA,MAAM,IAAIE,SAAS,CAAC,6CAA6C,CAAC;AACpE,IAAA;AACA,IAAA,IAAI,CAACC,OAAO,CAACH,KAAK,CAACJ,MAAM,CAAC,EAC1B;AACE,MAAA,MAAM,IAAIM,SAAS,CACjB,mDACF,CAAC;AACH,IAAA;AACA,IAAA,IAAI,CAACC,OAAO,CAACH,KAAK,CAACH,SAAS,CAAC,EAC7B;AACE,MAAA,MAAM,IAAIK,SAAS,CACjB,sDACF,CAAC;AACH,IAAA;AACA,IAAA,IAAIF,KAAK,CAACI,SAAS,KAAKJ,KAAK,CAACJ,MAAM,CAACS,MAAM,IACtCL,KAAK,CAACM,YAAY,KAAKN,KAAK,CAACH,SAAS,CAACQ,MAAM,EAClD;AACE,MAAA,MAAM,IAAIE,KAAK,CACb,gEACF,CAAC;AACH,IAAA;AAEA,IAAA,MAAMC,SAAS,GAAG,IAAI,IAAI,EAAE;IAC5BA,SAAS,CAACb,IAAI,GAAGc,MAAM,CAACT,KAAK,CAACL,IAAI,IAAI,EAAE,CAAC;AACzCa,IAAAA,SAAS,CAACZ,MAAM,GAAGI,KAAK,CAACJ,MAAM,CAACc,GAAG,CACjCC,KAAK,IAAIC,OAAO,CAACb,YAAY,CAACY,KAAK,CACrC,CAAC;AACDH,IAAAA,SAAS,CAACX,SAAS,GAAGG,KAAK,CAACH,SAAS,CAACa,GAAG,CACvCC,KAAK,IAAIE,gBAAgB,CAACd,YAAY,CAACY,KAAK,CAC9C,CAAC;IACDH,SAAS,CAACV,cAAc,GAAGU,SAAS,CAACZ,MAAM,CAACkB,MAAM,CAChD,CAACC,IAAI,EAAEC,IAAI,KAAKD,IAAI,GAAGC,IAAI,CAAClB,cAAc,EAC1C,CACF,CAAC,KAAK,CAAC;AACP,IAAA,OAAOU,SAAS;AAClB,EAAA;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACAS,SAAS,CAACC,MAAM,CAACzB,kBAAkB,EAAE;AACnC0B,EAAAA,SAAS,EAAE,oBAAoB;AAC/BC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;AACFH,SAAS,CAACI,aAAa,CAAC5B,kBAAkB,EAAE,MAAM,EAAE6B,IAAI,CAACC,MAAM,CAAC;AAChEN,SAAS,CAACI,aAAa,CAAC5B,kBAAkB,EAAE,QAAQ,EAAE6B,IAAI,CAACE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3EP,SAAS,CAACI,aAAa,CAAC5B,kBAAkB,EAAE,WAAW,EAAE6B,IAAI,CAACE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvFP,SAAS,CAACI,aAAa,CAAC5B,kBAAkB,EAAE,gBAAgB,EAAE6B,IAAI,CAACG,MAAM,CAAC;;;;"}
|
|
@@ -1,50 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
1
|
+
import { CjsSchema, type, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
3
2
|
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
4
3
|
import { isPlainObject, isArray, isUint32 } from '@carbonenginejs/runtime-utils/is';
|
|
5
4
|
import { requirePortableStageType } from '../portable.js';
|
|
6
|
-
import { Tr2EffectStageInput
|
|
5
|
+
import { Tr2EffectStageInput } from './Tr2EffectStageInput.js';
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
9
8
|
const SHADER_TYPE_COUNT = 6;
|
|
10
9
|
|
|
11
10
|
/** Reflected effect pass; backend program and state handles remain engine-owned. */
|
|
12
|
-
let _Tr2Pass;
|
|
13
11
|
class Tr2Pass extends CjsModel {
|
|
14
|
-
static {
|
|
15
|
-
({
|
|
16
|
-
e: [_init_stageInputs, _init_extra_stageInputs, _init_renderStates, _init_extra_renderStates, _init_shaderTypeMask, _init_extra_shaderTypeMask, _init_shaderProgram, _init_extra_shaderProgram, _init_resourceSetDesc, _init_extra_resourceSetDesc, _init_indirectLayout, _init_extra_indirectLayout, _init_renderStateValues, _init_extra_renderStateValues, _initStatic],
|
|
17
|
-
c: [_Tr2Pass, _initClass]
|
|
18
|
-
} = _applyDecs2311(this, [type.define({
|
|
19
|
-
className: "Tr2Pass",
|
|
20
|
-
family: "shader"
|
|
21
|
-
})], [[type.list("Tr2EffectStageInput"), 0, "stageInputs"], [[type, type.uint32], 16, "renderStates"], [[type, type.uint32], 16, "shaderTypeMask"], [[type, type.uint32], 16, "shaderProgram"], [type.rawStruct("Tr2ResourceSetDescriptionAL"), 0, "resourceSetDesc"], [type.rawStruct("Tr2IndirectDrawBufferLayout"), 0, "indirectLayout"], [[impl, impl.adapted, void 0, impl.reason("Carbon stores a renderer-owned render-state handle; the device-free graph retains the authored state/value pairs until an engine realizes them."), void 0, type.rawStruct("CjsEffectRenderStateValues")], 16, "renderStateValues"], [[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));
|
|
22
|
-
_initStatic(this);
|
|
23
|
-
}
|
|
24
|
-
constructor(...args) {
|
|
25
|
-
super(...args);
|
|
26
|
-
_init_extra_renderStateValues(this);
|
|
27
|
-
}
|
|
28
12
|
/** stageInputs (Tr2EffectStageInput) */
|
|
29
|
-
stageInputs =
|
|
13
|
+
stageInputs = [];
|
|
30
14
|
|
|
31
15
|
/** renderStates (unsigned int) */
|
|
32
|
-
renderStates =
|
|
16
|
+
renderStates = 0;
|
|
33
17
|
|
|
34
18
|
/** shaderTypeMask (unsigned int) */
|
|
35
|
-
shaderTypeMask =
|
|
19
|
+
shaderTypeMask = 0;
|
|
36
20
|
|
|
37
21
|
/** shaderProgram (unsigned int) */
|
|
38
|
-
shaderProgram =
|
|
22
|
+
shaderProgram = 0;
|
|
39
23
|
|
|
40
24
|
/** resourceSetDesc (Tr2ResourceSetDescriptionAL) */
|
|
41
|
-
resourceSetDesc =
|
|
25
|
+
resourceSetDesc = null;
|
|
42
26
|
|
|
43
27
|
/** indirectLayout (Tr2IndirectDrawBufferLayout) */
|
|
44
|
-
indirectLayout =
|
|
28
|
+
indirectLayout = null;
|
|
45
29
|
|
|
46
30
|
/** Exact authored render-state pairs retained before an engine creates a state handle. */
|
|
47
|
-
renderStateValues =
|
|
31
|
+
renderStateValues = [];
|
|
48
32
|
|
|
49
33
|
/**
|
|
50
34
|
* Build one pass from its portable JSON reflection record.
|
|
@@ -93,19 +77,33 @@ class Tr2Pass extends CjsModel {
|
|
|
93
77
|
});
|
|
94
78
|
pass.stageInputs = Array.from({
|
|
95
79
|
length: SHADER_TYPE_COUNT
|
|
96
|
-
}, (_, stageType) =>
|
|
80
|
+
}, (_, stageType) => Tr2EffectStageInput.createEmpty(stageType));
|
|
97
81
|
pass.shaderTypeMask = 0;
|
|
98
82
|
for (const stageValue of value.stages) {
|
|
99
|
-
const stage =
|
|
83
|
+
const stage = Tr2EffectStageInput.fromPortable(stageValue);
|
|
100
84
|
pass.stageInputs[stage.stageType] = stage;
|
|
101
85
|
pass.shaderTypeMask = (pass.shaderTypeMask | 1 << stage.stageType) >>> 0;
|
|
102
86
|
}
|
|
103
87
|
return pass;
|
|
104
88
|
}
|
|
105
|
-
static {
|
|
106
|
-
_initClass();
|
|
107
|
-
}
|
|
108
89
|
}
|
|
109
90
|
|
|
110
|
-
|
|
91
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
92
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
93
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
94
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
95
|
+
// would register a static as an instance field.
|
|
96
|
+
CjsSchema.define(Tr2Pass, {
|
|
97
|
+
className: "Tr2Pass",
|
|
98
|
+
family: "shader"
|
|
99
|
+
});
|
|
100
|
+
CjsSchema.decorateField(Tr2Pass, "stageInputs", type.list("Tr2EffectStageInput"));
|
|
101
|
+
CjsSchema.decorateField(Tr2Pass, "renderStates", type.uint32);
|
|
102
|
+
CjsSchema.decorateField(Tr2Pass, "shaderTypeMask", type.uint32);
|
|
103
|
+
CjsSchema.decorateField(Tr2Pass, "shaderProgram", type.uint32);
|
|
104
|
+
CjsSchema.decorateField(Tr2Pass, "resourceSetDesc", type.rawStruct("Tr2ResourceSetDescriptionAL"));
|
|
105
|
+
CjsSchema.decorateField(Tr2Pass, "indirectLayout", type.rawStruct("Tr2IndirectDrawBufferLayout"));
|
|
106
|
+
CjsSchema.decorateField(Tr2Pass, "renderStateValues", impl.adapted, impl.reason("Carbon stores a renderer-owned render-state handle; the device-free graph retains the authored state/value pairs until an engine realizes them."), type.rawStruct("CjsEffectRenderStateValues"));
|
|
107
|
+
|
|
108
|
+
export { Tr2Pass };
|
|
111
109
|
//# sourceMappingURL=Tr2Pass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2Pass.js","sources":["../../../../../src/resource/shader/reflection/Tr2Pass.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isArray,\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { requirePortableStageType } from \"../portable.js\";\nimport { Tr2EffectStageInput } from \"./Tr2EffectStageInput.js\";\n\nconst SHADER_TYPE_COUNT = 6;\n\n/** Reflected effect pass; backend program and state handles remain engine-owned. */\
|
|
1
|
+
{"version":3,"file":"Tr2Pass.js","sources":["../../../../../src/resource/shader/reflection/Tr2Pass.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { CjsSchema, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isArray,\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { requirePortableStageType } from \"../portable.js\";\nimport { Tr2EffectStageInput } from \"./Tr2EffectStageInput.js\";\n\nconst SHADER_TYPE_COUNT = 6;\n\n/** Reflected effect pass; backend program and state handles remain engine-owned. */\nexport class Tr2Pass extends CjsModel\n{\n\n /** stageInputs (Tr2EffectStageInput) */\n stageInputs = [];\n\n /** renderStates (unsigned int) */\n renderStates = 0;\n\n /** shaderTypeMask (unsigned int) */\n shaderTypeMask = 0;\n\n /** shaderProgram (unsigned int) */\n shaderProgram = 0;\n\n /** resourceSetDesc (Tr2ResourceSetDescriptionAL) */\n resourceSetDesc = null;\n\n /** indirectLayout (Tr2IndirectDrawBufferLayout) */\n indirectLayout = null;\n\n /** Exact authored render-state pairs retained before an engine creates a state handle. */\n renderStateValues = [];\n\n /**\n * Build one pass from its portable JSON reflection record.\n *\n * @param {object} value Portable pass record.\n * @returns {Tr2Pass} Reflected pass.\n */\n static fromPortable(value)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect pass must be an object\");\n }\n if (!isArray(value.renderStates))\n {\n throw new TypeError(\n \"Portable effect render states must be an array\"\n );\n }\n if (!isArray(value.stages))\n {\n throw new TypeError(\"Portable effect stages must be an array\");\n }\n if (value.renderStateCount !== value.renderStates.length\n || value.stageCount !== value.stages.length)\n {\n throw new Error(\n \"Portable effect pass counts disagree with its collections\"\n );\n }\n\n const pass = new this();\n const renderStateIds = new Set();\n pass.renderStateValues = value.renderStates.map(entry =>\n {\n if (!isUint32(entry?.state))\n {\n throw new RangeError(\"Portable render-state id must fit uint32\");\n }\n if (!isUint32(entry?.value))\n {\n throw new RangeError(\n \"Portable render-state value must fit uint32\"\n );\n }\n if (renderStateIds.has(entry.state))\n {\n throw new Error(\n `Portable render-state id ${entry.state} is duplicated`\n );\n }\n renderStateIds.add(entry.state);\n return {\n state: entry.state,\n value: entry.value\n };\n });\n\n const stageTypes = new Set();\n value.stages.forEach(stage =>\n {\n const stageType = requirePortableStageType(stage?.stageType);\n if (stageTypes.has(stageType))\n {\n throw new Error(\n `Portable effect stage type ${stageType} is duplicated`\n );\n }\n stageTypes.add(stageType);\n });\n pass.stageInputs = Array.from(\n { length: SHADER_TYPE_COUNT },\n (_, stageType) => Tr2EffectStageInput.createEmpty(stageType)\n );\n pass.shaderTypeMask = 0;\n\n for (const stageValue of value.stages)\n {\n const stage = Tr2EffectStageInput.fromPortable(stageValue);\n pass.stageInputs[stage.stageType] = stage;\n pass.shaderTypeMask = (\n pass.shaderTypeMask | (1 << stage.stageType)\n ) >>> 0;\n }\n\n return pass;\n }\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2Pass, {\n className: \"Tr2Pass\",\n family: \"shader\"\n});\nCjsSchema.decorateField(Tr2Pass, \"stageInputs\", type.list(\"Tr2EffectStageInput\"));\nCjsSchema.decorateField(Tr2Pass, \"renderStates\", type.uint32);\nCjsSchema.decorateField(Tr2Pass, \"shaderTypeMask\", type.uint32);\nCjsSchema.decorateField(Tr2Pass, \"shaderProgram\", type.uint32);\nCjsSchema.decorateField(Tr2Pass, \"resourceSetDesc\", type.rawStruct(\"Tr2ResourceSetDescriptionAL\"));\nCjsSchema.decorateField(Tr2Pass, \"indirectLayout\", type.rawStruct(\"Tr2IndirectDrawBufferLayout\"));\nCjsSchema.decorateField(Tr2Pass, \"renderStateValues\", impl.adapted, impl.reason(\"Carbon stores a renderer-owned render-state handle; the device-free graph retains the authored state/value pairs until an engine realizes them.\"), type.rawStruct(\"CjsEffectRenderStateValues\"));\n"],"names":["SHADER_TYPE_COUNT","Tr2Pass","CjsModel","stageInputs","renderStates","shaderTypeMask","shaderProgram","resourceSetDesc","indirectLayout","renderStateValues","fromPortable","value","isPlainObject","TypeError","isArray","stages","renderStateCount","length","stageCount","Error","pass","renderStateIds","Set","map","entry","isUint32","state","RangeError","has","add","stageTypes","forEach","stage","stageType","requirePortableStageType","Array","from","_","Tr2EffectStageInput","createEmpty","stageValue","CjsSchema","define","className","family","decorateField","type","list","uint32","rawStruct","impl","adapted","reason"],"mappings":";;;;;;AAAA;AAWA,MAAMA,iBAAiB,GAAG,CAAC;;AAE3B;AACO,MAAMC,OAAO,SAASC,QAAQ,CACrC;AAEE;AACAC,EAAAA,WAAW,GAAG,EAAE;;AAEhB;AACAC,EAAAA,YAAY,GAAG,CAAC;;AAEhB;AACAC,EAAAA,cAAc,GAAG,CAAC;;AAElB;AACAC,EAAAA,aAAa,GAAG,CAAC;;AAEjB;AACAC,EAAAA,eAAe,GAAG,IAAI;;AAEtB;AACAC,EAAAA,cAAc,GAAG,IAAI;;AAErB;AACAC,EAAAA,iBAAiB,GAAG,EAAE;;AAEtB;AACF;AACA;AACA;AACA;AACA;EACE,OAAOC,YAAYA,CAACC,KAAK,EACzB;AACE,IAAA,IAAI,CAACC,aAAa,CAACD,KAAK,CAAC,EACzB;AACE,MAAA,MAAM,IAAIE,SAAS,CAAC,wCAAwC,CAAC;AAC/D,IAAA;AACA,IAAA,IAAI,CAACC,OAAO,CAACH,KAAK,CAACP,YAAY,CAAC,EAChC;AACE,MAAA,MAAM,IAAIS,SAAS,CACjB,gDACF,CAAC;AACH,IAAA;AACA,IAAA,IAAI,CAACC,OAAO,CAACH,KAAK,CAACI,MAAM,CAAC,EAC1B;AACE,MAAA,MAAM,IAAIF,SAAS,CAAC,yCAAyC,CAAC;AAChE,IAAA;AACA,IAAA,IAAIF,KAAK,CAACK,gBAAgB,KAAKL,KAAK,CAACP,YAAY,CAACa,MAAM,IACnDN,KAAK,CAACO,UAAU,KAAKP,KAAK,CAACI,MAAM,CAACE,MAAM,EAC7C;AACE,MAAA,MAAM,IAAIE,KAAK,CACb,2DACF,CAAC;AACH,IAAA;AAEA,IAAA,MAAMC,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,IAAA,MAAMC,cAAc,GAAG,IAAIC,GAAG,EAAE;IAChCF,IAAI,CAACX,iBAAiB,GAAGE,KAAK,CAACP,YAAY,CAACmB,GAAG,CAACC,KAAK,IACrD;AACE,MAAA,IAAI,CAACC,QAAQ,CAACD,KAAK,EAAEE,KAAK,CAAC,EAC3B;AACE,QAAA,MAAM,IAAIC,UAAU,CAAC,0CAA0C,CAAC;AAClE,MAAA;AACA,MAAA,IAAI,CAACF,QAAQ,CAACD,KAAK,EAAEb,KAAK,CAAC,EAC3B;AACE,QAAA,MAAM,IAAIgB,UAAU,CAClB,6CACF,CAAC;AACH,MAAA;MACA,IAAIN,cAAc,CAACO,GAAG,CAACJ,KAAK,CAACE,KAAK,CAAC,EACnC;QACE,MAAM,IAAIP,KAAK,CACb,CAAA,yBAAA,EAA4BK,KAAK,CAACE,KAAK,gBACzC,CAAC;AACH,MAAA;AACAL,MAAAA,cAAc,CAACQ,GAAG,CAACL,KAAK,CAACE,KAAK,CAAC;MAC/B,OAAO;QACLA,KAAK,EAAEF,KAAK,CAACE,KAAK;QAClBf,KAAK,EAAEa,KAAK,CAACb;OACd;AACH,IAAA,CAAC,CAAC;AAEF,IAAA,MAAMmB,UAAU,GAAG,IAAIR,GAAG,EAAE;AAC5BX,IAAAA,KAAK,CAACI,MAAM,CAACgB,OAAO,CAACC,KAAK,IAC1B;AACE,MAAA,MAAMC,SAAS,GAAGC,wBAAwB,CAACF,KAAK,EAAEC,SAAS,CAAC;AAC5D,MAAA,IAAIH,UAAU,CAACF,GAAG,CAACK,SAAS,CAAC,EAC7B;AACE,QAAA,MAAM,IAAId,KAAK,CACb,CAAA,2BAAA,EAA8Bc,SAAS,gBACzC,CAAC;AACH,MAAA;AACAH,MAAAA,UAAU,CAACD,GAAG,CAACI,SAAS,CAAC;AAC3B,IAAA,CAAC,CAAC;AACFb,IAAAA,IAAI,CAACjB,WAAW,GAAGgC,KAAK,CAACC,IAAI,CAC3B;AAAEnB,MAAAA,MAAM,EAAEjB;AAAkB,KAAC,EAC7B,CAACqC,CAAC,EAAEJ,SAAS,KAAKK,mBAAmB,CAACC,WAAW,CAACN,SAAS,CAC7D,CAAC;IACDb,IAAI,CAACf,cAAc,GAAG,CAAC;AAEvB,IAAA,KAAK,MAAMmC,UAAU,IAAI7B,KAAK,CAACI,MAAM,EACrC;AACE,MAAA,MAAMiB,KAAK,GAAGM,mBAAmB,CAAC5B,YAAY,CAAC8B,UAAU,CAAC;MAC1DpB,IAAI,CAACjB,WAAW,CAAC6B,KAAK,CAACC,SAAS,CAAC,GAAGD,KAAK;AACzCZ,MAAAA,IAAI,CAACf,cAAc,GAAG,CACpBe,IAAI,CAACf,cAAc,GAAI,CAAC,IAAI2B,KAAK,CAACC,SAAU,MACxC,CAAC;AACT,IAAA;AAEA,IAAA,OAAOb,IAAI;AACb,EAAA;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACAqB,SAAS,CAACC,MAAM,CAACzC,OAAO,EAAE;AACxB0C,EAAAA,SAAS,EAAE,SAAS;AACpBC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;AACFH,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,aAAa,EAAE6C,IAAI,CAACC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACjFN,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,cAAc,EAAE6C,IAAI,CAACE,MAAM,CAAC;AAC7DP,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,gBAAgB,EAAE6C,IAAI,CAACE,MAAM,CAAC;AAC/DP,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,eAAe,EAAE6C,IAAI,CAACE,MAAM,CAAC;AAC9DP,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,iBAAiB,EAAE6C,IAAI,CAACG,SAAS,CAAC,6BAA6B,CAAC,CAAC;AAClGR,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,gBAAgB,EAAE6C,IAAI,CAACG,SAAS,CAAC,6BAA6B,CAAC,CAAC;AACjGR,SAAS,CAACI,aAAa,CAAC5C,OAAO,EAAE,mBAAmB,EAAEiD,IAAI,CAACC,OAAO,EAAED,IAAI,CAACE,MAAM,CAAC,iJAAiJ,CAAC,EAAEN,IAAI,CAACG,SAAS,CAAC,4BAA4B,CAAC,CAAC;;;;"}
|