@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.
Files changed (254) hide show
  1. package/dist/format/effect/effectPermutationGraph.js +257 -0
  2. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  3. package/dist/format/effect/effectReflectionPackage.js +636 -0
  4. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  5. package/dist/format/effect/sha256.js +114 -0
  6. package/dist/format/effect/sha256.js.map +1 -0
  7. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  8. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  9. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  10. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  11. package/dist/formats/dxbc/core/container.js +169 -0
  12. package/dist/formats/dxbc/core/container.js.map +1 -0
  13. package/dist/formats/dxbc/core/decoder.js +789 -0
  14. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  15. package/dist/formats/dxbc/core/errors.js +19 -0
  16. package/dist/formats/dxbc/core/errors.js.map +1 -0
  17. package/dist/formats/dxbc/core/helpers.js +220 -0
  18. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  19. package/dist/formats/dxbc/core/opcodes.js +45 -0
  20. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  21. package/dist/formats/dxbc/core/program.js +91 -0
  22. package/dist/formats/dxbc/core/program.js.map +1 -0
  23. package/dist/formats/dxbc/core/signature.js +172 -0
  24. package/dist/formats/dxbc/core/signature.js.map +1 -0
  25. package/dist/formats/dxbc/index.js +2 -0
  26. package/dist/formats/dxbc/index.js.map +1 -0
  27. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  28. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  29. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  30. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  31. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  32. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  33. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  34. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  35. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  36. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  37. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  38. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  39. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  40. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  41. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  42. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  43. package/dist/formats/hlsl/core/analysis.js +51 -0
  44. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  45. package/dist/formats/hlsl/core/helpers.js +270 -0
  46. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  47. package/dist/formats/hlsl/core/json.js +284 -0
  48. package/dist/formats/hlsl/core/json.js.map +1 -0
  49. package/dist/formats/hlsl/core/metadata.js +327 -0
  50. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  51. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  52. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  53. package/dist/formats/hlsl/core/render-states.js +280 -0
  54. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  55. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  56. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  57. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  58. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  59. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  60. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  61. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  62. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  63. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  64. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  65. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  66. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  67. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  68. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  69. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  70. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  71. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  72. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  73. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  74. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  75. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  76. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  77. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  78. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  79. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  80. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  81. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  82. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  83. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  84. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  85. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  86. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  87. package/dist/formats/hlsl/index.js +2 -0
  88. package/dist/formats/hlsl/index.js.map +1 -0
  89. package/dist/formats/hlsl/portable.js +2 -0
  90. package/dist/formats/hlsl/portable.js.map +1 -0
  91. package/dist/formats/index.js +4 -0
  92. package/dist/formats/index.js.map +1 -1
  93. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  94. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  95. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  96. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  97. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  98. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  99. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  100. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  101. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  102. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  103. package/dist/formats/webgl/core/effectPackage.js +789 -0
  104. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  105. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  106. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  107. package/dist/formats/webgl/core/errors.js +27 -0
  108. package/dist/formats/webgl/core/errors.js.map +1 -0
  109. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  110. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  111. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  112. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  113. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  114. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  115. package/dist/formats/webgl/core/helpers.js +306 -0
  116. package/dist/formats/webgl/core/helpers.js.map +1 -0
  117. package/dist/formats/webgl/index.js +2 -0
  118. package/dist/formats/webgl/index.js.map +1 -0
  119. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  120. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  121. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  122. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  123. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  124. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  125. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  126. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  127. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  128. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  129. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  130. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  131. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  132. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  133. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  134. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  135. package/dist/formats/webgpu/core/errors.js +20 -0
  136. package/dist/formats/webgpu/core/errors.js.map +1 -0
  137. package/dist/formats/webgpu/core/helpers.js +448 -0
  138. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  139. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  140. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  141. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  142. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  143. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  144. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  145. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  146. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  147. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  148. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  149. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  150. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  151. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  152. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  153. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  154. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  155. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  156. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  157. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  158. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  159. package/dist/formats/webgpu/core/schema.js +4 -0
  160. package/dist/formats/webgpu/core/schema.js.map +1 -0
  161. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  162. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  163. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  164. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  165. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  166. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  167. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  168. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  169. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  170. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  171. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  172. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  173. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  174. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  175. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  176. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  177. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  178. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  179. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  180. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  181. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  182. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  183. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  184. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  185. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  186. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  187. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  188. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  189. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  190. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  191. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  192. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  193. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  194. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  195. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  196. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  197. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  198. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  199. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  200. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  201. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  202. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  203. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  204. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  205. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  206. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  207. package/dist/formats/webgpu/index.js +2 -0
  208. package/dist/formats/webgpu/index.js.map +1 -0
  209. package/dist/resource/shader/Tr2EffectRes.js +159 -150
  210. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  211. package/dist/resource/shader/Tr2MaterialArea.js +23 -28
  212. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  213. package/dist/resource/shader/Tr2MaterialMesh.js +21 -27
  214. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  215. package/dist/resource/shader/Tr2MaterialRes.js +24 -29
  216. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  217. package/dist/resource/shader/Tr2Shader.js +45 -39
  218. package/dist/resource/shader/Tr2Shader.js.map +1 -1
  219. package/dist/resource/shader/Tr2ShaderPermutation.js +30 -32
  220. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
  221. package/dist/resource/shader/reflection/Tr2EffectConstant.js +113 -78
  222. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  223. package/dist/resource/shader/reflection/Tr2EffectDefine.js +17 -23
  224. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
  225. package/dist/resource/shader/reflection/Tr2EffectDescription.js +23 -29
  226. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  227. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +44 -40
  228. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  229. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +82 -86
  230. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  231. package/dist/resource/shader/reflection/Tr2EffectResource.js +55 -61
  232. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  233. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +49 -45
  234. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  235. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +25 -30
  236. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  237. package/dist/resource/shader/reflection/Tr2Pass.js +30 -32
  238. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  239. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +21 -26
  240. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  241. package/docs/formats/README.md +4 -0
  242. package/docs/formats/provenance.md +11 -3
  243. package/docs/reference/classes/formats.md +440 -0
  244. package/format-notices/dxbc/LICENSE +21 -0
  245. package/format-notices/dxbc/NOTICE +20 -0
  246. package/format-notices/hlsl/LICENSE +21 -0
  247. package/format-notices/hlsl/NOTICE +25 -0
  248. package/format-notices/webgl/LICENSE +21 -0
  249. package/format-notices/webgl/NOTICE +35 -0
  250. package/format-notices/webgpu/LICENSE +21 -0
  251. package/format-notices/webgpu/NOTICE +31 -0
  252. package/package.json +6 -1
  253. package/dist/resource/shader/portableValidation.js +0 -461
  254. package/dist/resource/shader/portableValidation.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,10 +1,11 @@
1
- import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { carbon, impl, type } from '@carbonenginejs/runtime-utils/schema';
1
+ import { CjsSchema, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
3
2
  import { CjsResource as _CjsResource } from '../CjsResource.js';
4
3
  import { validateResourcePayload } from '../resourceBoundary.js';
5
- import { Tr2Shader as _Tr2Shader } from './Tr2Shader.js';
4
+ import { Tr2Shader } from './Tr2Shader.js';
6
5
 
7
- let _initProto, _initClass;
6
+ // Source: trinity/trinity/Resources/Tr2EffectRes.h
7
+ // Source: trinity/trinity/Resources/Tr2EffectRes.cpp
8
+ // Source: trinity/trinity/Resources/Tr2EffectRes_Blue.cpp
8
9
  const globalEffectOptions = [];
9
10
  const SHA256 = /^[0-9a-f]{64}$/u;
10
11
  const UINT8_MAX = 0xff;
@@ -17,168 +18,162 @@ const MAX_EFFECT_PERMUTATIONS = 0x10000;
17
18
  * This stores effect/shader payload facts. Engine-gpu decides shader module,
18
19
  * pipeline, bind group, and sampler realization.
19
20
  */
20
- let _Tr2EffectRes;
21
- new class extends _identity {
22
- static [class Tr2EffectRes extends _CjsResource {
23
- static {
24
- ({
25
- e: [_initProto],
26
- c: [_Tr2EffectRes, _initClass]
27
- } = _applyDecs2311(this, [type.define({
28
- className: "Tr2EffectRes",
29
- family: "resources"
30
- })], [[[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the selected body directly from compiled effect bytes and registers renderer handles; CarbonEngineJS hydrates the format package's validated portable reflection without realizing GPU state.")], 18, "GetShader"], [[impl, impl.custom, void 0, impl.reason("Carbon selects compiled bodies through GetShader; CarbonEngineJS exposes exact package-index hydration for deterministic package consumers and tests.")], 18, "GetShaderByIndex"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon exposes a Python tuple through Blue; CarbonEngineJS returns a JSON-friendly plain axis description.")], 18, "GetPermutationDescription"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Backend resources are engine-owned; the resource-side release clears only hydrated device-free shader graphs.")], 18, "ReleaseResources"]], 0, void 0, _CjsResource));
31
- }
32
- #shaders = (_initProto(this), new Map());
21
+ class Tr2EffectRes extends _CjsResource {
22
+ #shaders = new Map();
33
23
 
34
- /** Creates a Tr2EffectRes with caller-provided initial state. */
35
- constructor(values = null) {
36
- super();
37
- this.SetValues(values || {}, {
38
- markDirty: false,
39
- skipUpdate: true,
40
- skipEvents: true
41
- });
42
- }
24
+ /** Creates a Tr2EffectRes with caller-provided initial state. */
25
+ constructor(values = null) {
26
+ super();
27
+ this.SetValues(values || {}, {
28
+ markDirty: false,
29
+ skipUpdate: true,
30
+ skipEvents: true
31
+ });
32
+ }
43
33
 
44
- /**
45
- * Attach a plain shader/effect payload.
46
- *
47
- * @param {object|null} payload
48
- * @param {object|null} options
49
- * @returns {Tr2EffectRes}
50
- */
51
- SetPayload(payload = null, options = null) {
52
- if (payload === null) {
53
- this.#shaders.clear();
54
- super.SetPayload(null);
55
- return this;
56
- }
57
- validateResourcePayload("Tr2EffectRes", payload, validateEffectPayload);
34
+ /**
35
+ * Attach a plain shader/effect payload.
36
+ *
37
+ * @param {object|null} payload
38
+ * @param {object|null} options
39
+ * @returns {Tr2EffectRes}
40
+ */
41
+ SetPayload(payload = null, options = null) {
42
+ if (payload === null) {
58
43
  this.#shaders.clear();
59
- super.SetPayload(payload);
60
- this.SetValues(options || {});
44
+ super.SetPayload(null);
61
45
  return this;
62
46
  }
47
+ validateResourcePayload("Tr2EffectRes", payload, validateEffectPayload);
48
+ this.#shaders.clear();
49
+ super.SetPayload(payload);
50
+ this.SetValues(options || {});
51
+ return this;
52
+ }
63
53
 
64
- /**
65
- * Select and hydrate one canonical shader from the complete permutation
66
- * graph exposed by a CEWG/CEWGPU raw package.
67
- *
68
- * Global options have Carbon-compatible precedence over caller options.
69
- * Unknown option values retain the authored default.
70
- *
71
- * @param {Array<object>|Map<string,string>} options Local name/value choices.
72
- * @param {number|null} count Number of local entries to consider.
73
- * @returns {Tr2Shader|null} Selected device-free shader reflection.
74
- */
75
- GetShader(options = [], count = null) {
76
- const axes = getPermutationAxes(this.GetPayload());
77
- if (!axes.length) {
78
- const portableIndex = _Tr2Shader.isPortableReflection(this.GetPayload()) ? this.GetPayload().permutationIndex : 0;
79
- return this.GetShaderByIndex(portableIndex);
80
- }
81
- const localOptions = normalizeShaderOptions(options);
82
- const localCount = Number.isSafeInteger(count) ? Math.max(0, Math.min(count, localOptions.length)) : localOptions.length;
83
- let multiplier = 1;
84
- let index = 0;
85
- for (const axis of axes) {
86
- let selectedIndex = axis.defaultOption;
87
- const globalOption = globalEffectOptions.find(option => option.name === axis.name);
88
- if (globalOption) {
89
- const requestedIndex = axis.options.indexOf(globalOption.value);
54
+ /**
55
+ * Select and hydrate one canonical shader from the complete permutation
56
+ * graph exposed by a CEWG/CEWGPU raw package.
57
+ *
58
+ * Global options have Carbon-compatible precedence over caller options.
59
+ * Unknown option values retain the authored default.
60
+ *
61
+ * @param {Array<object>|Map<string,string>} options Local name/value choices.
62
+ * @param {number|null} count Number of local entries to consider.
63
+ * @returns {Tr2Shader|null} Selected device-free shader reflection.
64
+ */
65
+ GetShader(options = [], count = null) {
66
+ const axes = getPermutationAxes(this.GetPayload());
67
+ if (!axes.length) {
68
+ const portableIndex = Tr2Shader.isPortableReflection(this.GetPayload()) ? this.GetPayload().permutationIndex : 0;
69
+ return this.GetShaderByIndex(portableIndex);
70
+ }
71
+ const localOptions = normalizeShaderOptions(options);
72
+ const localCount = Number.isSafeInteger(count) ? Math.max(0, Math.min(count, localOptions.length)) : localOptions.length;
73
+ let multiplier = 1;
74
+ let index = 0;
75
+ for (const axis of axes) {
76
+ let selectedIndex = axis.defaultOption;
77
+ const globalOption = globalEffectOptions.find(option => option.name === axis.name);
78
+ if (globalOption) {
79
+ const requestedIndex = axis.options.indexOf(globalOption.value);
80
+ if (requestedIndex >= 0) {
81
+ selectedIndex = requestedIndex;
82
+ }
83
+ } else {
84
+ for (let optionIndex = 0; optionIndex < localCount; optionIndex += 1) {
85
+ const localOption = localOptions[optionIndex];
86
+ if (localOption.name !== axis.name) {
87
+ continue;
88
+ }
89
+ const requestedIndex = axis.options.indexOf(localOption.value);
90
90
  if (requestedIndex >= 0) {
91
91
  selectedIndex = requestedIndex;
92
92
  }
93
- } else {
94
- for (let optionIndex = 0; optionIndex < localCount; optionIndex += 1) {
95
- const localOption = localOptions[optionIndex];
96
- if (localOption.name !== axis.name) {
97
- continue;
98
- }
99
- const requestedIndex = axis.options.indexOf(localOption.value);
100
- if (requestedIndex >= 0) {
101
- selectedIndex = requestedIndex;
102
- }
103
- }
104
93
  }
105
- index += selectedIndex * multiplier;
106
- multiplier *= axis.options.length;
107
94
  }
108
- return this.GetShaderByIndex(index);
95
+ index += selectedIndex * multiplier;
96
+ multiplier *= axis.options.length;
109
97
  }
98
+ return this.GetShaderByIndex(index);
99
+ }
110
100
 
111
- /**
112
- * Hydrate one exact permutation-table index and cache the resulting runtime
113
- * graph for this payload.
114
- *
115
- * @param {number} index Exact permutation index.
116
- * @returns {Tr2Shader|null} Canonical shader or null when reflection is absent.
117
- */
118
- GetShaderByIndex(index) {
119
- if (!Number.isSafeInteger(index) || index < 0) {
120
- throw new TypeError("Tr2EffectRes shader index must be a non-negative safe integer");
121
- }
122
- if (this.#shaders.has(index)) {
123
- return this.#shaders.get(index);
124
- }
125
- const payload = this.GetPayload();
126
- const variantCount = getPermutationVariantCount(payload);
127
- if (variantCount !== null && index >= variantCount) {
128
- return null;
129
- }
130
- const portable = getPortableReflection(payload, index);
131
- if (!portable) {
132
- return null;
133
- }
134
- if (portable.permutationIndex !== index) {
135
- throw new Error(`Portable effect reflection index ${portable.permutationIndex} does not match requested index ${index}`);
136
- }
137
- const shader = _Tr2Shader.fromPortable(portable);
138
- this.#shaders.set(index, shader);
139
- return shader;
101
+ /**
102
+ * Hydrate one exact permutation-table index and cache the resulting runtime
103
+ * graph for this payload.
104
+ *
105
+ * @param {number} index Exact permutation index.
106
+ * @returns {Tr2Shader|null} Canonical shader or null when reflection is absent.
107
+ */
108
+ GetShaderByIndex(index) {
109
+ if (!Number.isSafeInteger(index) || index < 0) {
110
+ throw new TypeError("Tr2EffectRes shader index must be a non-negative safe integer");
111
+ }
112
+ if (this.#shaders.has(index)) {
113
+ return this.#shaders.get(index);
140
114
  }
115
+ const payload = this.GetPayload();
116
+ const variantCount = getPermutationVariantCount(payload);
117
+ if (variantCount !== null && index >= variantCount) {
118
+ return null;
119
+ }
120
+ const portable = getPortableReflection(payload, index);
121
+ if (!portable) {
122
+ return null;
123
+ }
124
+ if (portable.permutationIndex !== index) {
125
+ throw new Error(`Portable effect reflection index ${portable.permutationIndex} does not match requested index ${index}`);
126
+ }
127
+ const shader = Tr2Shader.fromPortable(portable);
128
+ this.#shaders.set(index, shader);
129
+ return shader;
130
+ }
141
131
 
142
- /**
143
- * Return a small JSON-friendly permutation description.
144
- *
145
- * @returns {Array<*>}
146
- */
147
- GetPermutationDescription() {
148
- const payload = this.GetPayload();
149
- const axes = getPermutationAxes(payload);
150
- if (!axes.length && Array.isArray(payload?.permutations)) {
151
- return payload.permutations.map(permutation => ({
152
- ...permutation
153
- }));
154
- }
155
- return axes.map(axis => ({
156
- name: axis.name,
157
- options: [...axis.options],
158
- defaultOption: axis.defaultOption,
159
- description: axis.description,
160
- type: axis.type
132
+ /**
133
+ * Return a small JSON-friendly permutation description.
134
+ *
135
+ * @returns {Array<*>}
136
+ */
137
+ GetPermutationDescription() {
138
+ const payload = this.GetPayload();
139
+ const axes = getPermutationAxes(payload);
140
+ if (!axes.length && Array.isArray(payload?.permutations)) {
141
+ return payload.permutations.map(permutation => ({
142
+ ...permutation
161
143
  }));
162
144
  }
145
+ return axes.map(axis => ({
146
+ name: axis.name,
147
+ options: [...axis.options],
148
+ defaultOption: axis.defaultOption,
149
+ description: axis.description,
150
+ type: axis.type
151
+ }));
152
+ }
163
153
 
164
- /**
165
- * Drop hydrated shader graphs while retaining the validated CPU payload.
166
- */
167
- ReleaseResources() {
168
- this.#shaders.clear();
169
- }
154
+ /**
155
+ * Drop hydrated shader graphs while retaining the validated CPU payload.
156
+ */
157
+ ReleaseResources() {
158
+ this.#shaders.clear();
159
+ }
170
160
 
171
- /** Release the payload and every shader graph hydrated from it. */
172
- ReleasePayload() {
173
- this.#shaders.clear();
174
- return super.ReleasePayload();
175
- }
176
- }];
177
- payload = "shader";
178
- constructor() {
179
- super(_Tr2EffectRes), _initClass();
161
+ /** Release the payload and every shader graph hydrated from it. */
162
+ ReleasePayload() {
163
+ this.#shaders.clear();
164
+ return super.ReleasePayload();
180
165
  }
181
- }();
166
+ static payload = "shader";
167
+ }
168
+
169
+ /**
170
+ * Merge Carbon-style global effect option overrides.
171
+ *
172
+ * An empty value removes the override. Existing Tr2EffectRes shader caches
173
+ * remain valid objects; callers rebuild effects to request the new selection.
174
+ *
175
+ * @param {Array<object>|Map<string,string>} changes Option changes.
176
+ */
182
177
  function ModifyGlobalEffectOptions(changes = []) {
183
178
  for (const change of normalizeShaderOptions(changes)) {
184
179
  const index = globalEffectOptions.findIndex(option => option.name === change.name);
@@ -214,7 +209,7 @@ function validateEffectPayload(payload) {
214
209
  } else {
215
210
  validateLegacyPermutationDescription(payload.permutations);
216
211
  }
217
- } else if (!_Tr2Shader.isPortableReflection(payload)) {
212
+ } else if (!Tr2Shader.isPortableReflection(payload)) {
218
213
  throw new TypeError("Tr2EffectRes payload requires a complete permutation graph, permutations array, or one portable reflection");
219
214
  }
220
215
  if (Array.isArray(payload.portableReflections)) {
@@ -223,7 +218,7 @@ function validateEffectPayload(payload) {
223
218
  throw new Error("Tr2EffectRes portable reflection count disagrees with its permutations");
224
219
  }
225
220
  payload.portableReflections.forEach((reflection, index) => {
226
- if (!_Tr2Shader.isPortableReflection(reflection) || reflection.permutationIndex !== index) {
221
+ if (!Tr2Shader.isPortableReflection(reflection) || reflection.permutationIndex !== index) {
227
222
  throw new Error(`Tr2EffectRes portable reflection ${index} is malformed`);
228
223
  }
229
224
  });
@@ -392,7 +387,7 @@ function getPortableReflection(payload, index) {
392
387
  if (typeof payload.getPortableEffectReflection === "function") {
393
388
  return payload.getPortableEffectReflection(index);
394
389
  }
395
- if (_Tr2Shader.isPortableReflection(payload)) {
390
+ if (Tr2Shader.isPortableReflection(payload)) {
396
391
  return index === payload.permutationIndex ? payload : null;
397
392
  }
398
393
  if (Array.isArray(payload.portableReflections)) {
@@ -416,5 +411,19 @@ function normalizeShaderOptions(options) {
416
411
  }));
417
412
  }
418
413
 
419
- export { GetGlobalEffectOptions, ModifyGlobalEffectOptions, _Tr2EffectRes as Tr2EffectRes };
414
+ // Declared imperatively rather than with decorators, so this module stays
415
+ // plain ESM that loads from source without a transform. The decorator
416
+ // expressions are reused verbatim, so the registered metadata is identical.
417
+ // Statics belong in `methods`: decorateMethod targets the prototype and
418
+ // would register a static as an instance field.
419
+ CjsSchema.define(Tr2EffectRes, {
420
+ className: "Tr2EffectRes",
421
+ family: "resources"
422
+ });
423
+ CjsSchema.decorateMethod(Tr2EffectRes, "GetShader", carbon.method, impl.adapted, impl.reason("Carbon reads the selected body directly from compiled effect bytes and registers renderer handles; CarbonEngineJS hydrates the format package's validated portable reflection without realizing GPU state."));
424
+ CjsSchema.decorateMethod(Tr2EffectRes, "GetShaderByIndex", impl.custom, impl.reason("Carbon selects compiled bodies through GetShader; CarbonEngineJS exposes exact package-index hydration for deterministic package consumers and tests."));
425
+ CjsSchema.decorateMethod(Tr2EffectRes, "GetPermutationDescription", carbon.method, impl.adapted, impl.reason("Carbon exposes a Python tuple through Blue; CarbonEngineJS returns a JSON-friendly plain axis description."));
426
+ CjsSchema.decorateMethod(Tr2EffectRes, "ReleaseResources", carbon.method, impl.adapted, impl.reason("Backend resources are engine-owned; the resource-side release clears only hydrated device-free shader graphs."));
427
+
428
+ export { GetGlobalEffectOptions, ModifyGlobalEffectOptions, Tr2EffectRes };
420
429
  //# sourceMappingURL=Tr2EffectRes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectRes.js","sources":["../../../../src/resource/shader/Tr2EffectRes.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2EffectRes.h\n// Source: trinity/trinity/Resources/Tr2EffectRes.cpp\n// Source: trinity/trinity/Resources/Tr2EffectRes_Blue.cpp\nimport { carbon, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsResource } from \"../CjsResource.js\";\nimport { validateResourcePayload } from \"../resourceBoundary.js\";\nimport { Tr2Shader } from \"./Tr2Shader.js\";\n\nconst globalEffectOptions = [];\nconst SHA256 = /^[0-9a-f]{64}$/u;\nconst UINT8_MAX = 0xff;\nconst UINT32_MAX = 0xffffffff;\nconst MAX_EFFECT_PERMUTATIONS = 0x10000;\n\n/**\n * Tr2EffectRes resource record.\n *\n * This stores effect/shader payload facts. Engine-gpu decides shader module,\n * pipeline, bind group, and sampler realization.\n */\n@type.define({ className: \"Tr2EffectRes\", family: \"resources\" })\nexport class Tr2EffectRes extends CjsResource\n{\n\n #shaders = new Map();\n\n /** Creates a Tr2EffectRes with caller-provided initial state. */\n constructor(values = null)\n {\n super();\n this.SetValues(values || {}, {\n markDirty: false,\n skipUpdate: true,\n skipEvents: true\n });\n }\n\n /**\n * Attach a plain shader/effect payload.\n *\n * @param {object|null} payload\n * @param {object|null} options\n * @returns {Tr2EffectRes}\n */\n SetPayload(payload = null, options = null)\n {\n if (payload === null)\n {\n this.#shaders.clear();\n super.SetPayload(null);\n return this;\n }\n validateResourcePayload(\n \"Tr2EffectRes\",\n payload,\n validateEffectPayload\n );\n this.#shaders.clear();\n super.SetPayload(payload);\n this.SetValues(options || {});\n return this;\n }\n\n /**\n * Select and hydrate one canonical shader from the complete permutation\n * graph exposed by a CEWG/CEWGPU raw package.\n *\n * Global options have Carbon-compatible precedence over caller options.\n * Unknown option values retain the authored default.\n *\n * @param {Array<object>|Map<string,string>} options Local name/value choices.\n * @param {number|null} count Number of local entries to consider.\n * @returns {Tr2Shader|null} Selected device-free shader reflection.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the selected body directly from compiled effect bytes and registers renderer handles; CarbonEngineJS hydrates the format package's validated portable reflection without realizing GPU state.\")\n GetShader(options = [], count = null)\n {\n const axes = getPermutationAxes(this.GetPayload());\n if (!axes.length)\n {\n const portableIndex = Tr2Shader.isPortableReflection(this.GetPayload())\n ? this.GetPayload().permutationIndex\n : 0;\n return this.GetShaderByIndex(portableIndex);\n }\n const localOptions = normalizeShaderOptions(options);\n const localCount = Number.isSafeInteger(count)\n ? Math.max(0, Math.min(count, localOptions.length))\n : localOptions.length;\n let multiplier = 1;\n let index = 0;\n\n for (const axis of axes)\n {\n let selectedIndex = axis.defaultOption;\n const globalOption = globalEffectOptions.find(\n option => option.name === axis.name\n );\n if (globalOption)\n {\n const requestedIndex = axis.options.indexOf(globalOption.value);\n if (requestedIndex >= 0)\n {\n selectedIndex = requestedIndex;\n }\n }\n else\n {\n for (let optionIndex = 0; optionIndex < localCount; optionIndex += 1)\n {\n const localOption = localOptions[optionIndex];\n if (localOption.name !== axis.name)\n {\n continue;\n }\n const requestedIndex = axis.options.indexOf(localOption.value);\n if (requestedIndex >= 0)\n {\n selectedIndex = requestedIndex;\n }\n }\n }\n\n index += selectedIndex * multiplier;\n multiplier *= axis.options.length;\n }\n\n return this.GetShaderByIndex(index);\n }\n\n /**\n * Hydrate one exact permutation-table index and cache the resulting runtime\n * graph for this payload.\n *\n * @param {number} index Exact permutation index.\n * @returns {Tr2Shader|null} Canonical shader or null when reflection is absent.\n */\n @impl.custom\n @impl.reason(\"Carbon selects compiled bodies through GetShader; CarbonEngineJS exposes exact package-index hydration for deterministic package consumers and tests.\")\n GetShaderByIndex(index)\n {\n if (!Number.isSafeInteger(index) || index < 0)\n {\n throw new TypeError(\n \"Tr2EffectRes shader index must be a non-negative safe integer\"\n );\n }\n if (this.#shaders.has(index))\n {\n return this.#shaders.get(index);\n }\n\n const payload = this.GetPayload();\n const variantCount = getPermutationVariantCount(payload);\n if (variantCount !== null && index >= variantCount)\n {\n return null;\n }\n\n const portable = getPortableReflection(payload, index);\n if (!portable)\n {\n return null;\n }\n if (portable.permutationIndex !== index)\n {\n throw new Error(\n `Portable effect reflection index ${portable.permutationIndex} does not match requested index ${index}`\n );\n }\n\n const shader = Tr2Shader.fromPortable(portable);\n this.#shaders.set(index, shader);\n return shader;\n }\n\n /**\n * Return a small JSON-friendly permutation description.\n *\n * @returns {Array<*>}\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon exposes a Python tuple through Blue; CarbonEngineJS returns a JSON-friendly plain axis description.\")\n GetPermutationDescription()\n {\n const payload = this.GetPayload();\n const axes = getPermutationAxes(payload);\n if (!axes.length && Array.isArray(payload?.permutations))\n {\n return payload.permutations.map(permutation => ({ ...permutation }));\n }\n return axes.map(axis => ({\n name: axis.name,\n options: [ ...axis.options ],\n defaultOption: axis.defaultOption,\n description: axis.description,\n type: axis.type\n }));\n }\n\n /**\n * Drop hydrated shader graphs while retaining the validated CPU payload.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Backend resources are engine-owned; the resource-side release clears only hydrated device-free shader graphs.\")\n ReleaseResources()\n {\n this.#shaders.clear();\n }\n\n /** Release the payload and every shader graph hydrated from it. */\n ReleasePayload()\n {\n this.#shaders.clear();\n return super.ReleasePayload();\n }\n\n static payload = \"shader\";\n\n}\n\n/**\n * Merge Carbon-style global effect option overrides.\n *\n * An empty value removes the override. Existing Tr2EffectRes shader caches\n * remain valid objects; callers rebuild effects to request the new selection.\n *\n * @param {Array<object>|Map<string,string>} changes Option changes.\n */\nexport function ModifyGlobalEffectOptions(changes = [])\n{\n for (const change of normalizeShaderOptions(changes))\n {\n const index = globalEffectOptions.findIndex(\n option => option.name === change.name\n );\n if (!change.value)\n {\n if (index >= 0)\n {\n globalEffectOptions.splice(index, 1);\n }\n }\n else if (index >= 0)\n {\n globalEffectOptions[index] = change;\n }\n else\n {\n globalEffectOptions.push(change);\n }\n }\n}\n\n/**\n * Return an owned snapshot of the current global option overrides.\n *\n * @returns {Array<{name:string,value:string}>} Global option choices.\n */\nexport function GetGlobalEffectOptions()\n{\n return globalEffectOptions.map(option => ({ ...option }));\n}\n\nfunction validateEffectPayload(payload)\n{\n const graph = payload.permutationGraph;\n if (graph !== null && graph !== undefined)\n {\n validatePermutationGraph(graph);\n }\n else if (Array.isArray(payload.permutations))\n {\n if (payload.permutations.every(permutation =>\n Array.isArray(permutation?.options)))\n {\n payload.permutations.forEach(normalizePermutationAxis);\n }\n else\n {\n validateLegacyPermutationDescription(payload.permutations);\n }\n }\n else if (!Tr2Shader.isPortableReflection(payload))\n {\n throw new TypeError(\n \"Tr2EffectRes payload requires a complete permutation graph, permutations array, or one portable reflection\"\n );\n }\n\n if (Array.isArray(payload.portableReflections))\n {\n const expectedCount = getPermutationVariantCount(payload);\n if (expectedCount !== null\n && payload.portableReflections.length !== expectedCount)\n {\n throw new Error(\n \"Tr2EffectRes portable reflection count disagrees with its permutations\"\n );\n }\n payload.portableReflections.forEach((reflection, index) =>\n {\n if (!Tr2Shader.isPortableReflection(reflection)\n || reflection.permutationIndex !== index)\n {\n throw new Error(\n `Tr2EffectRes portable reflection ${index} is malformed`\n );\n }\n });\n }\n}\n\nfunction validateLegacyPermutationDescription(permutations)\n{\n for (const [ index, permutation ] of permutations.entries())\n {\n if (!permutation\n || typeof permutation !== \"object\"\n || Array.isArray(permutation)\n || typeof permutation.name !== \"string\"\n || !permutation.name)\n {\n throw new TypeError(\n `Tr2EffectRes legacy permutation ${index} is malformed`\n );\n }\n }\n}\n\nfunction validatePermutationGraph(graph)\n{\n if (!graph || typeof graph !== \"object\" || Array.isArray(graph)\n || graph.format !== \"CJS_EFFECT_PERMUTATION_GRAPH\"\n || graph.formatVersion !== 1\n || !graph.coverage || typeof graph.coverage !== \"object\"\n || Array.isArray(graph.coverage)\n || graph.coverage.permutations !== \"complete\"\n || graph.coverage.bodies !== \"identity-only\"\n || graph.coverage.reflection !== \"absent\"\n || !Array.isArray(graph.axes)\n || !Array.isArray(graph.variants)\n || !Array.isArray(graph.bodies))\n {\n throw new TypeError(\n \"Tr2EffectRes requires CJS_EFFECT_PERMUTATION_GRAPH version 1\"\n );\n }\n\n const axisNames = new Set();\n const axes = graph.axes.map((axis, index) =>\n validatePermutationAxis(axis, index, axisNames));\n const expectedCount = getPermutationProduct(axes);\n if (graph.variants.length !== expectedCount\n || !graph.bodies.length\n || graph.bodies.length > graph.variants.length)\n {\n throw new Error(\n \"Tr2EffectRes permutation graph requires complete variants and bodies\"\n );\n }\n\n const bodies = new Map();\n const bodyDigests = new Set();\n graph.bodies.forEach((body, bodyIndex) =>\n {\n if (!body || typeof body !== \"object\" || Array.isArray(body)\n || typeof body.key !== \"string\" || !body.key\n || body.key !== body.key.trim()\n || !Number.isSafeInteger(body.byteLength) || body.byteLength < 1\n || body.byteLength > UINT32_MAX\n || typeof body.sha256 !== \"string\" || !SHA256.test(body.sha256)\n || bodies.has(body.key)\n || bodyDigests.has(body.sha256))\n {\n throw new Error(\n `Tr2EffectRes permutation body ${bodyIndex} is malformed or duplicated`\n );\n }\n bodyDigests.add(body.sha256);\n bodies.set(body.key, {\n byteLength: body.byteLength,\n references: 0\n });\n });\n\n const bodyKeyBySourceRecord = new Map();\n const sourceRecords = [];\n graph.variants.forEach((variant, permutationIndex) =>\n {\n const expectedOptions = decodePermutationOptions(permutationIndex, axes);\n if (!variant || typeof variant !== \"object\" || Array.isArray(variant)\n || variant.permutationIndex !== permutationIndex\n || !Array.isArray(variant.optionIndices)\n || variant.optionIndices.length !== expectedOptions.length\n || variant.optionIndices.some((value, index) =>\n value !== expectedOptions[index])\n || typeof variant.bodyKey !== \"string\"\n || !bodies.has(variant.bodyKey))\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} is malformed`\n );\n }\n\n const sourceRecord = validatePermutationSourceRecord(\n variant.sourceRecord,\n permutationIndex\n );\n const body = bodies.get(variant.bodyKey);\n if (sourceRecord.byteLength !== body.byteLength)\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} body length disagrees`\n );\n }\n const recordKey = `${sourceRecord.offset}:${sourceRecord.byteLength}`;\n const existingBodyKey = bodyKeyBySourceRecord.get(recordKey);\n if (existingBodyKey && existingBodyKey !== variant.bodyKey)\n {\n throw new Error(\n `Tr2EffectRes source record ${recordKey} maps to multiple bodies`\n );\n }\n bodyKeyBySourceRecord.set(recordKey, variant.bodyKey);\n sourceRecords.push(sourceRecord);\n body.references += 1;\n });\n\n validateDisjointPermutationRecords(sourceRecords);\n for (const [ bodyKey, body ] of bodies)\n {\n if (!body.references)\n {\n throw new Error(\n `Tr2EffectRes permutation body ${bodyKey} is unreferenced`\n );\n }\n }\n}\n\nfunction validatePermutationAxis(axis, index, names)\n{\n if (!axis || typeof axis !== \"object\" || Array.isArray(axis)\n || axis.index !== index\n || typeof axis.name !== \"string\" || !axis.name\n || axis.name !== axis.name.trim() || names.has(axis.name)\n || !Array.isArray(axis.options) || !axis.options.length\n || axis.options.length > UINT8_MAX\n || !Number.isSafeInteger(axis.defaultOption)\n || axis.defaultOption < 0\n || axis.defaultOption >= axis.options.length\n || typeof axis.description !== \"string\"\n || !Number.isSafeInteger(axis.type)\n || axis.type < 0 || axis.type > UINT8_MAX)\n {\n throw new Error(\n `Tr2EffectRes permutation axis ${index} is malformed or duplicated`\n );\n }\n names.add(axis.name);\n const options = new Set();\n for (const option of axis.options)\n {\n if (typeof option !== \"string\" || !option\n || option !== option.trim() || options.has(option))\n {\n throw new Error(\n `Tr2EffectRes permutation axis ${index} options are malformed`\n );\n }\n options.add(option);\n }\n return normalizePermutationAxis(axis);\n}\n\nfunction getPermutationProduct(axes)\n{\n let product = 1;\n for (const axis of axes)\n {\n product *= axis.options.length;\n if (!Number.isSafeInteger(product)\n || product < 1\n || product > MAX_EFFECT_PERMUTATIONS)\n {\n throw new Error(\n \"Tr2EffectRes permutation count exceeds the implementation limit\"\n );\n }\n }\n return product;\n}\n\nfunction decodePermutationOptions(permutationIndex, axes)\n{\n let value = permutationIndex;\n return axes.map(axis =>\n {\n const optionIndex = value % axis.options.length;\n value = Math.floor(value / axis.options.length);\n return optionIndex;\n });\n}\n\nfunction validatePermutationSourceRecord(record, permutationIndex)\n{\n const offset = record?.offset;\n const byteLength = record?.byteLength;\n const end = offset + byteLength;\n if (!record || typeof record !== \"object\" || Array.isArray(record)\n || !Number.isSafeInteger(offset) || offset < 0 || offset > UINT32_MAX\n || !Number.isSafeInteger(byteLength) || byteLength < 1\n || byteLength > UINT32_MAX\n || !Number.isSafeInteger(end)\n || end > UINT32_MAX + 1)\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} source record is malformed`\n );\n }\n return { offset, byteLength };\n}\n\nfunction validateDisjointPermutationRecords(records)\n{\n const unique = new Map();\n for (const record of records)\n {\n const key = `${record.offset}:${record.byteLength}`;\n if (!unique.has(key))\n {\n unique.set(key, {\n offset: record.offset,\n end: record.offset + record.byteLength\n });\n }\n }\n const ordered = Array.from(unique.values()).sort((left, right) =>\n left.offset - right.offset || left.end - right.end);\n for (let index = 1; index < ordered.length; index += 1)\n {\n if (ordered[index].offset < ordered[index - 1].end)\n {\n throw new Error(\n \"Tr2EffectRes permutation source body records partially overlap\"\n );\n }\n }\n}\n\nfunction getPermutationAxes(payload)\n{\n if (!payload)\n {\n return [];\n }\n if (payload.permutationGraph)\n {\n return payload.permutationGraph.axes.map(normalizePermutationAxis);\n }\n if (Array.isArray(payload.permutations)\n && payload.permutations.every(permutation =>\n Array.isArray(permutation?.options)))\n {\n return payload.permutations.map(normalizePermutationAxis);\n }\n return [];\n}\n\nfunction normalizePermutationAxis(axis)\n{\n if (!axis || typeof axis !== \"object\" || Array.isArray(axis)\n || typeof axis.name !== \"string\" || !axis.name\n || !Array.isArray(axis.options) || !axis.options.length\n || axis.options.some(option => typeof option !== \"string\" || !option)\n || !Number.isSafeInteger(axis.defaultOption)\n || axis.defaultOption < 0\n || axis.defaultOption >= axis.options.length)\n {\n throw new TypeError(\"Tr2EffectRes permutation axis is malformed\");\n }\n return {\n name: axis.name,\n options: [ ...axis.options ],\n defaultOption: axis.defaultOption,\n description: String(axis.description ?? \"\"),\n type: Number(axis.type ?? 0)\n };\n}\n\nfunction getPermutationVariantCount(payload)\n{\n if (Array.isArray(payload?.permutationGraph?.variants))\n {\n return payload.permutationGraph.variants.length;\n }\n const axes = getPermutationAxes(payload);\n if (axes.length)\n {\n return axes.reduce((count, axis) => count * axis.options.length, 1);\n }\n return null;\n}\n\nfunction getPortableReflection(payload, index)\n{\n if (!payload)\n {\n return null;\n }\n if (typeof payload.GetPortableEffectReflection === \"function\")\n {\n return payload.GetPortableEffectReflection(index);\n }\n if (typeof payload.getPortableEffectReflection === \"function\")\n {\n return payload.getPortableEffectReflection(index);\n }\n if (Tr2Shader.isPortableReflection(payload))\n {\n return index === payload.permutationIndex ? payload : null;\n }\n if (Array.isArray(payload.portableReflections))\n {\n return payload.portableReflections[index] ?? null;\n }\n return null;\n}\n\nfunction normalizeShaderOptions(options)\n{\n if (options instanceof Map)\n {\n return Array.from(options, ([ name, value ]) => ({\n name: String(name),\n value: String(value)\n }));\n }\n if (!Array.isArray(options))\n {\n return [];\n }\n return options.map(option => ({\n name: String(option?.name ?? \"\"),\n value: String(option?.value ?? \"\")\n }));\n}\n"],"names":["globalEffectOptions","SHA256","UINT8_MAX","UINT32_MAX","MAX_EFFECT_PERMUTATIONS","_Tr2EffectRes","_identity","Tr2EffectRes","CjsResource","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","adapted","reason","custom","Map","constructor","values","SetValues","markDirty","skipUpdate","skipEvents","SetPayload","payload","options","clear","validateResourcePayload","validateEffectPayload","GetShader","count","axes","getPermutationAxes","GetPayload","length","portableIndex","Tr2Shader","isPortableReflection","permutationIndex","GetShaderByIndex","localOptions","normalizeShaderOptions","localCount","Number","isSafeInteger","Math","max","min","multiplier","index","axis","selectedIndex","defaultOption","globalOption","find","option","name","requestedIndex","indexOf","value","optionIndex","localOption","TypeError","has","get","variantCount","getPermutationVariantCount","portable","getPortableReflection","Error","shader","fromPortable","set","GetPermutationDescription","Array","isArray","permutations","map","permutation","description","ReleaseResources","ReleasePayload","ModifyGlobalEffectOptions","changes","change","findIndex","splice","push","GetGlobalEffectOptions","graph","permutationGraph","undefined","validatePermutationGraph","every","forEach","normalizePermutationAxis","validateLegacyPermutationDescription","portableReflections","expectedCount","reflection","entries","format","formatVersion","coverage","bodies","variants","axisNames","Set","validatePermutationAxis","getPermutationProduct","bodyDigests","body","bodyIndex","key","trim","byteLength","sha256","test","add","references","bodyKeyBySourceRecord","sourceRecords","variant","expectedOptions","decodePermutationOptions","optionIndices","some","bodyKey","sourceRecord","validatePermutationSourceRecord","recordKey","offset","existingBodyKey","validateDisjointPermutationRecords","names","product","floor","record","end","records","unique","ordered","from","sort","left","right","String","reduce","GetPortableEffectReflection","getPortableEffectReflection"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectRes.js","sources":["../../../../src/resource/shader/Tr2EffectRes.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2EffectRes.h\n// Source: trinity/trinity/Resources/Tr2EffectRes.cpp\n// Source: trinity/trinity/Resources/Tr2EffectRes_Blue.cpp\nimport { CjsSchema, carbon, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsResource } from \"../CjsResource.js\";\nimport { validateResourcePayload } from \"../resourceBoundary.js\";\nimport { Tr2Shader } from \"./Tr2Shader.js\";\n\nconst globalEffectOptions = [];\nconst SHA256 = /^[0-9a-f]{64}$/u;\nconst UINT8_MAX = 0xff;\nconst UINT32_MAX = 0xffffffff;\nconst MAX_EFFECT_PERMUTATIONS = 0x10000;\n\n/**\n * Tr2EffectRes resource record.\n *\n * This stores effect/shader payload facts. Engine-gpu decides shader module,\n * pipeline, bind group, and sampler realization.\n */\nexport class Tr2EffectRes extends CjsResource\n{\n\n #shaders = new Map();\n\n /** Creates a Tr2EffectRes with caller-provided initial state. */\n constructor(values = null)\n {\n super();\n this.SetValues(values || {}, {\n markDirty: false,\n skipUpdate: true,\n skipEvents: true\n });\n }\n\n /**\n * Attach a plain shader/effect payload.\n *\n * @param {object|null} payload\n * @param {object|null} options\n * @returns {Tr2EffectRes}\n */\n SetPayload(payload = null, options = null)\n {\n if (payload === null)\n {\n this.#shaders.clear();\n super.SetPayload(null);\n return this;\n }\n validateResourcePayload(\n \"Tr2EffectRes\",\n payload,\n validateEffectPayload\n );\n this.#shaders.clear();\n super.SetPayload(payload);\n this.SetValues(options || {});\n return this;\n }\n\n /**\n * Select and hydrate one canonical shader from the complete permutation\n * graph exposed by a CEWG/CEWGPU raw package.\n *\n * Global options have Carbon-compatible precedence over caller options.\n * Unknown option values retain the authored default.\n *\n * @param {Array<object>|Map<string,string>} options Local name/value choices.\n * @param {number|null} count Number of local entries to consider.\n * @returns {Tr2Shader|null} Selected device-free shader reflection.\n */\n GetShader(options = [], count = null)\n {\n const axes = getPermutationAxes(this.GetPayload());\n if (!axes.length)\n {\n const portableIndex = Tr2Shader.isPortableReflection(this.GetPayload())\n ? this.GetPayload().permutationIndex\n : 0;\n return this.GetShaderByIndex(portableIndex);\n }\n const localOptions = normalizeShaderOptions(options);\n const localCount = Number.isSafeInteger(count)\n ? Math.max(0, Math.min(count, localOptions.length))\n : localOptions.length;\n let multiplier = 1;\n let index = 0;\n\n for (const axis of axes)\n {\n let selectedIndex = axis.defaultOption;\n const globalOption = globalEffectOptions.find(\n option => option.name === axis.name\n );\n if (globalOption)\n {\n const requestedIndex = axis.options.indexOf(globalOption.value);\n if (requestedIndex >= 0)\n {\n selectedIndex = requestedIndex;\n }\n }\n else\n {\n for (let optionIndex = 0; optionIndex < localCount; optionIndex += 1)\n {\n const localOption = localOptions[optionIndex];\n if (localOption.name !== axis.name)\n {\n continue;\n }\n const requestedIndex = axis.options.indexOf(localOption.value);\n if (requestedIndex >= 0)\n {\n selectedIndex = requestedIndex;\n }\n }\n }\n\n index += selectedIndex * multiplier;\n multiplier *= axis.options.length;\n }\n\n return this.GetShaderByIndex(index);\n }\n\n /**\n * Hydrate one exact permutation-table index and cache the resulting runtime\n * graph for this payload.\n *\n * @param {number} index Exact permutation index.\n * @returns {Tr2Shader|null} Canonical shader or null when reflection is absent.\n */\n GetShaderByIndex(index)\n {\n if (!Number.isSafeInteger(index) || index < 0)\n {\n throw new TypeError(\n \"Tr2EffectRes shader index must be a non-negative safe integer\"\n );\n }\n if (this.#shaders.has(index))\n {\n return this.#shaders.get(index);\n }\n\n const payload = this.GetPayload();\n const variantCount = getPermutationVariantCount(payload);\n if (variantCount !== null && index >= variantCount)\n {\n return null;\n }\n\n const portable = getPortableReflection(payload, index);\n if (!portable)\n {\n return null;\n }\n if (portable.permutationIndex !== index)\n {\n throw new Error(\n `Portable effect reflection index ${portable.permutationIndex} does not match requested index ${index}`\n );\n }\n\n const shader = Tr2Shader.fromPortable(portable);\n this.#shaders.set(index, shader);\n return shader;\n }\n\n /**\n * Return a small JSON-friendly permutation description.\n *\n * @returns {Array<*>}\n */\n GetPermutationDescription()\n {\n const payload = this.GetPayload();\n const axes = getPermutationAxes(payload);\n if (!axes.length && Array.isArray(payload?.permutations))\n {\n return payload.permutations.map(permutation => ({ ...permutation }));\n }\n return axes.map(axis => ({\n name: axis.name,\n options: [ ...axis.options ],\n defaultOption: axis.defaultOption,\n description: axis.description,\n type: axis.type\n }));\n }\n\n /**\n * Drop hydrated shader graphs while retaining the validated CPU payload.\n */\n ReleaseResources()\n {\n this.#shaders.clear();\n }\n\n /** Release the payload and every shader graph hydrated from it. */\n ReleasePayload()\n {\n this.#shaders.clear();\n return super.ReleasePayload();\n }\n\n static payload = \"shader\";\n\n}\n\n/**\n * Merge Carbon-style global effect option overrides.\n *\n * An empty value removes the override. Existing Tr2EffectRes shader caches\n * remain valid objects; callers rebuild effects to request the new selection.\n *\n * @param {Array<object>|Map<string,string>} changes Option changes.\n */\nexport function ModifyGlobalEffectOptions(changes = [])\n{\n for (const change of normalizeShaderOptions(changes))\n {\n const index = globalEffectOptions.findIndex(\n option => option.name === change.name\n );\n if (!change.value)\n {\n if (index >= 0)\n {\n globalEffectOptions.splice(index, 1);\n }\n }\n else if (index >= 0)\n {\n globalEffectOptions[index] = change;\n }\n else\n {\n globalEffectOptions.push(change);\n }\n }\n}\n\n/**\n * Return an owned snapshot of the current global option overrides.\n *\n * @returns {Array<{name:string,value:string}>} Global option choices.\n */\nexport function GetGlobalEffectOptions()\n{\n return globalEffectOptions.map(option => ({ ...option }));\n}\n\nfunction validateEffectPayload(payload)\n{\n const graph = payload.permutationGraph;\n if (graph !== null && graph !== undefined)\n {\n validatePermutationGraph(graph);\n }\n else if (Array.isArray(payload.permutations))\n {\n if (payload.permutations.every(permutation =>\n Array.isArray(permutation?.options)))\n {\n payload.permutations.forEach(normalizePermutationAxis);\n }\n else\n {\n validateLegacyPermutationDescription(payload.permutations);\n }\n }\n else if (!Tr2Shader.isPortableReflection(payload))\n {\n throw new TypeError(\n \"Tr2EffectRes payload requires a complete permutation graph, permutations array, or one portable reflection\"\n );\n }\n\n if (Array.isArray(payload.portableReflections))\n {\n const expectedCount = getPermutationVariantCount(payload);\n if (expectedCount !== null\n && payload.portableReflections.length !== expectedCount)\n {\n throw new Error(\n \"Tr2EffectRes portable reflection count disagrees with its permutations\"\n );\n }\n payload.portableReflections.forEach((reflection, index) =>\n {\n if (!Tr2Shader.isPortableReflection(reflection)\n || reflection.permutationIndex !== index)\n {\n throw new Error(\n `Tr2EffectRes portable reflection ${index} is malformed`\n );\n }\n });\n }\n}\n\nfunction validateLegacyPermutationDescription(permutations)\n{\n for (const [ index, permutation ] of permutations.entries())\n {\n if (!permutation\n || typeof permutation !== \"object\"\n || Array.isArray(permutation)\n || typeof permutation.name !== \"string\"\n || !permutation.name)\n {\n throw new TypeError(\n `Tr2EffectRes legacy permutation ${index} is malformed`\n );\n }\n }\n}\n\nfunction validatePermutationGraph(graph)\n{\n if (!graph || typeof graph !== \"object\" || Array.isArray(graph)\n || graph.format !== \"CJS_EFFECT_PERMUTATION_GRAPH\"\n || graph.formatVersion !== 1\n || !graph.coverage || typeof graph.coverage !== \"object\"\n || Array.isArray(graph.coverage)\n || graph.coverage.permutations !== \"complete\"\n || graph.coverage.bodies !== \"identity-only\"\n || graph.coverage.reflection !== \"absent\"\n || !Array.isArray(graph.axes)\n || !Array.isArray(graph.variants)\n || !Array.isArray(graph.bodies))\n {\n throw new TypeError(\n \"Tr2EffectRes requires CJS_EFFECT_PERMUTATION_GRAPH version 1\"\n );\n }\n\n const axisNames = new Set();\n const axes = graph.axes.map((axis, index) =>\n validatePermutationAxis(axis, index, axisNames));\n const expectedCount = getPermutationProduct(axes);\n if (graph.variants.length !== expectedCount\n || !graph.bodies.length\n || graph.bodies.length > graph.variants.length)\n {\n throw new Error(\n \"Tr2EffectRes permutation graph requires complete variants and bodies\"\n );\n }\n\n const bodies = new Map();\n const bodyDigests = new Set();\n graph.bodies.forEach((body, bodyIndex) =>\n {\n if (!body || typeof body !== \"object\" || Array.isArray(body)\n || typeof body.key !== \"string\" || !body.key\n || body.key !== body.key.trim()\n || !Number.isSafeInteger(body.byteLength) || body.byteLength < 1\n || body.byteLength > UINT32_MAX\n || typeof body.sha256 !== \"string\" || !SHA256.test(body.sha256)\n || bodies.has(body.key)\n || bodyDigests.has(body.sha256))\n {\n throw new Error(\n `Tr2EffectRes permutation body ${bodyIndex} is malformed or duplicated`\n );\n }\n bodyDigests.add(body.sha256);\n bodies.set(body.key, {\n byteLength: body.byteLength,\n references: 0\n });\n });\n\n const bodyKeyBySourceRecord = new Map();\n const sourceRecords = [];\n graph.variants.forEach((variant, permutationIndex) =>\n {\n const expectedOptions = decodePermutationOptions(permutationIndex, axes);\n if (!variant || typeof variant !== \"object\" || Array.isArray(variant)\n || variant.permutationIndex !== permutationIndex\n || !Array.isArray(variant.optionIndices)\n || variant.optionIndices.length !== expectedOptions.length\n || variant.optionIndices.some((value, index) =>\n value !== expectedOptions[index])\n || typeof variant.bodyKey !== \"string\"\n || !bodies.has(variant.bodyKey))\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} is malformed`\n );\n }\n\n const sourceRecord = validatePermutationSourceRecord(\n variant.sourceRecord,\n permutationIndex\n );\n const body = bodies.get(variant.bodyKey);\n if (sourceRecord.byteLength !== body.byteLength)\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} body length disagrees`\n );\n }\n const recordKey = `${sourceRecord.offset}:${sourceRecord.byteLength}`;\n const existingBodyKey = bodyKeyBySourceRecord.get(recordKey);\n if (existingBodyKey && existingBodyKey !== variant.bodyKey)\n {\n throw new Error(\n `Tr2EffectRes source record ${recordKey} maps to multiple bodies`\n );\n }\n bodyKeyBySourceRecord.set(recordKey, variant.bodyKey);\n sourceRecords.push(sourceRecord);\n body.references += 1;\n });\n\n validateDisjointPermutationRecords(sourceRecords);\n for (const [ bodyKey, body ] of bodies)\n {\n if (!body.references)\n {\n throw new Error(\n `Tr2EffectRes permutation body ${bodyKey} is unreferenced`\n );\n }\n }\n}\n\nfunction validatePermutationAxis(axis, index, names)\n{\n if (!axis || typeof axis !== \"object\" || Array.isArray(axis)\n || axis.index !== index\n || typeof axis.name !== \"string\" || !axis.name\n || axis.name !== axis.name.trim() || names.has(axis.name)\n || !Array.isArray(axis.options) || !axis.options.length\n || axis.options.length > UINT8_MAX\n || !Number.isSafeInteger(axis.defaultOption)\n || axis.defaultOption < 0\n || axis.defaultOption >= axis.options.length\n || typeof axis.description !== \"string\"\n || !Number.isSafeInteger(axis.type)\n || axis.type < 0 || axis.type > UINT8_MAX)\n {\n throw new Error(\n `Tr2EffectRes permutation axis ${index} is malformed or duplicated`\n );\n }\n names.add(axis.name);\n const options = new Set();\n for (const option of axis.options)\n {\n if (typeof option !== \"string\" || !option\n || option !== option.trim() || options.has(option))\n {\n throw new Error(\n `Tr2EffectRes permutation axis ${index} options are malformed`\n );\n }\n options.add(option);\n }\n return normalizePermutationAxis(axis);\n}\n\nfunction getPermutationProduct(axes)\n{\n let product = 1;\n for (const axis of axes)\n {\n product *= axis.options.length;\n if (!Number.isSafeInteger(product)\n || product < 1\n || product > MAX_EFFECT_PERMUTATIONS)\n {\n throw new Error(\n \"Tr2EffectRes permutation count exceeds the implementation limit\"\n );\n }\n }\n return product;\n}\n\nfunction decodePermutationOptions(permutationIndex, axes)\n{\n let value = permutationIndex;\n return axes.map(axis =>\n {\n const optionIndex = value % axis.options.length;\n value = Math.floor(value / axis.options.length);\n return optionIndex;\n });\n}\n\nfunction validatePermutationSourceRecord(record, permutationIndex)\n{\n const offset = record?.offset;\n const byteLength = record?.byteLength;\n const end = offset + byteLength;\n if (!record || typeof record !== \"object\" || Array.isArray(record)\n || !Number.isSafeInteger(offset) || offset < 0 || offset > UINT32_MAX\n || !Number.isSafeInteger(byteLength) || byteLength < 1\n || byteLength > UINT32_MAX\n || !Number.isSafeInteger(end)\n || end > UINT32_MAX + 1)\n {\n throw new Error(\n `Tr2EffectRes permutation variant ${permutationIndex} source record is malformed`\n );\n }\n return { offset, byteLength };\n}\n\nfunction validateDisjointPermutationRecords(records)\n{\n const unique = new Map();\n for (const record of records)\n {\n const key = `${record.offset}:${record.byteLength}`;\n if (!unique.has(key))\n {\n unique.set(key, {\n offset: record.offset,\n end: record.offset + record.byteLength\n });\n }\n }\n const ordered = Array.from(unique.values()).sort((left, right) =>\n left.offset - right.offset || left.end - right.end);\n for (let index = 1; index < ordered.length; index += 1)\n {\n if (ordered[index].offset < ordered[index - 1].end)\n {\n throw new Error(\n \"Tr2EffectRes permutation source body records partially overlap\"\n );\n }\n }\n}\n\nfunction getPermutationAxes(payload)\n{\n if (!payload)\n {\n return [];\n }\n if (payload.permutationGraph)\n {\n return payload.permutationGraph.axes.map(normalizePermutationAxis);\n }\n if (Array.isArray(payload.permutations)\n && payload.permutations.every(permutation =>\n Array.isArray(permutation?.options)))\n {\n return payload.permutations.map(normalizePermutationAxis);\n }\n return [];\n}\n\nfunction normalizePermutationAxis(axis)\n{\n if (!axis || typeof axis !== \"object\" || Array.isArray(axis)\n || typeof axis.name !== \"string\" || !axis.name\n || !Array.isArray(axis.options) || !axis.options.length\n || axis.options.some(option => typeof option !== \"string\" || !option)\n || !Number.isSafeInteger(axis.defaultOption)\n || axis.defaultOption < 0\n || axis.defaultOption >= axis.options.length)\n {\n throw new TypeError(\"Tr2EffectRes permutation axis is malformed\");\n }\n return {\n name: axis.name,\n options: [ ...axis.options ],\n defaultOption: axis.defaultOption,\n description: String(axis.description ?? \"\"),\n type: Number(axis.type ?? 0)\n };\n}\n\nfunction getPermutationVariantCount(payload)\n{\n if (Array.isArray(payload?.permutationGraph?.variants))\n {\n return payload.permutationGraph.variants.length;\n }\n const axes = getPermutationAxes(payload);\n if (axes.length)\n {\n return axes.reduce((count, axis) => count * axis.options.length, 1);\n }\n return null;\n}\n\nfunction getPortableReflection(payload, index)\n{\n if (!payload)\n {\n return null;\n }\n if (typeof payload.GetPortableEffectReflection === \"function\")\n {\n return payload.GetPortableEffectReflection(index);\n }\n if (typeof payload.getPortableEffectReflection === \"function\")\n {\n return payload.getPortableEffectReflection(index);\n }\n if (Tr2Shader.isPortableReflection(payload))\n {\n return index === payload.permutationIndex ? payload : null;\n }\n if (Array.isArray(payload.portableReflections))\n {\n return payload.portableReflections[index] ?? null;\n }\n return null;\n}\n\nfunction normalizeShaderOptions(options)\n{\n if (options instanceof Map)\n {\n return Array.from(options, ([ name, value ]) => ({\n name: String(name),\n value: String(value)\n }));\n }\n if (!Array.isArray(options))\n {\n return [];\n }\n return options.map(option => ({\n name: String(option?.name ?? \"\"),\n value: String(option?.value ?? \"\")\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(Tr2EffectRes, {\n className: \"Tr2EffectRes\",\n family: \"resources\"\n});\nCjsSchema.decorateMethod(Tr2EffectRes, \"GetShader\", carbon.method, impl.adapted, impl.reason(\"Carbon reads the selected body directly from compiled effect bytes and registers renderer handles; CarbonEngineJS hydrates the format package's validated portable reflection without realizing GPU state.\"));\nCjsSchema.decorateMethod(Tr2EffectRes, \"GetShaderByIndex\", impl.custom, impl.reason(\"Carbon selects compiled bodies through GetShader; CarbonEngineJS exposes exact package-index hydration for deterministic package consumers and tests.\"));\nCjsSchema.decorateMethod(Tr2EffectRes, \"GetPermutationDescription\", carbon.method, impl.adapted, impl.reason(\"Carbon exposes a Python tuple through Blue; CarbonEngineJS returns a JSON-friendly plain axis description.\"));\nCjsSchema.decorateMethod(Tr2EffectRes, \"ReleaseResources\", carbon.method, impl.adapted, impl.reason(\"Backend resources are engine-owned; the resource-side release clears only hydrated device-free shader graphs.\"));\n"],"names":["globalEffectOptions","SHA256","UINT8_MAX","UINT32_MAX","MAX_EFFECT_PERMUTATIONS","Tr2EffectRes","CjsResource","Map","constructor","values","SetValues","markDirty","skipUpdate","skipEvents","SetPayload","payload","options","clear","validateResourcePayload","validateEffectPayload","GetShader","count","axes","getPermutationAxes","GetPayload","length","portableIndex","Tr2Shader","isPortableReflection","permutationIndex","GetShaderByIndex","localOptions","normalizeShaderOptions","localCount","Number","isSafeInteger","Math","max","min","multiplier","index","axis","selectedIndex","defaultOption","globalOption","find","option","name","requestedIndex","indexOf","value","optionIndex","localOption","TypeError","has","get","variantCount","getPermutationVariantCount","portable","getPortableReflection","Error","shader","fromPortable","set","GetPermutationDescription","Array","isArray","permutations","map","permutation","description","type","ReleaseResources","ReleasePayload","ModifyGlobalEffectOptions","changes","change","findIndex","splice","push","GetGlobalEffectOptions","graph","permutationGraph","undefined","validatePermutationGraph","every","forEach","normalizePermutationAxis","validateLegacyPermutationDescription","portableReflections","expectedCount","reflection","entries","format","formatVersion","coverage","bodies","variants","axisNames","Set","validatePermutationAxis","getPermutationProduct","bodyDigests","body","bodyIndex","key","trim","byteLength","sha256","test","add","references","bodyKeyBySourceRecord","sourceRecords","variant","expectedOptions","decodePermutationOptions","optionIndices","some","bodyKey","sourceRecord","validatePermutationSourceRecord","recordKey","offset","existingBodyKey","validateDisjointPermutationRecords","names","product","floor","record","end","records","unique","ordered","from","sort","left","right","String","reduce","GetPortableEffectReflection","getPortableEffectReflection","CjsSchema","define","className","family","decorateMethod","carbon","method","impl","adapted","reason","custom"],"mappings":"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"}
@@ -1,39 +1,34 @@
1
- import { applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { io, type } from '@carbonenginejs/runtime-utils/schema';
1
+ import { CjsSchema, io, type } from '@carbonenginejs/runtime-utils/schema';
3
2
  import { CjsModel } from '@carbonenginejs/runtime-utils/model';
4
3
 
5
- let _initClass, _init_material, _init_extra_material, _init_metatype, _init_extra_metatype;
4
+ // Source: trinity/trinity/Resources/Tr2MaterialRes.h
5
+ // Schema: format-carbon resources/Tr2MaterialArea.json; maintained by runtime-resource.
6
6
 
7
- /**
8
- * Associates one material-area metatype with its persisted parameter store.
9
- *
10
- * The record describes resource data and does not own shader bindings or
11
- * backend material realization.
7
+ /**
8
+ * Associates one material-area metatype with its persisted parameter store.
9
+ *
10
+ * The record describes resource data and does not own shader bindings or
11
+ * backend material realization.
12
12
  */
13
- let _Tr2MaterialArea;
14
13
  class Tr2MaterialArea extends CjsModel {
15
- static {
16
- ({
17
- e: [_init_material, _init_extra_material, _init_metatype, _init_extra_metatype],
18
- c: [_Tr2MaterialArea, _initClass]
19
- } = _applyDecs2311(this, [type.define({
20
- className: "Tr2MaterialArea",
21
- family: "resources"
22
- })], [[[io, io.persist, void 0, type.objectRef("Tr2MaterialParameterStore")], 16, "material"], [[io, io.persist, type, type.string], 16, "metatype"]], 0, void 0, CjsModel));
23
- }
24
- constructor(...args) {
25
- super(...args);
26
- _init_extra_metatype(this);
27
- }
28
14
  /** Persisted material parameter-store reference. */
29
- material = _init_material(this, null);
15
+ material = null;
30
16
 
31
17
  /** Authored material-area metatype. */
32
- metatype = (_init_extra_material(this), _init_metatype(this, ""));
33
- static {
34
- _initClass();
35
- }
18
+ metatype = "";
36
19
  }
37
20
 
38
- export { _Tr2MaterialArea as Tr2MaterialArea };
21
+ // Declared imperatively rather than with decorators, so this module stays
22
+ // plain ESM that loads from source without a transform. The decorator
23
+ // expressions are reused verbatim, so the registered metadata is identical.
24
+ // Statics belong in `methods`: decorateMethod targets the prototype and
25
+ // would register a static as an instance field.
26
+ CjsSchema.define(Tr2MaterialArea, {
27
+ className: "Tr2MaterialArea",
28
+ family: "resources"
29
+ });
30
+ CjsSchema.decorateField(Tr2MaterialArea, "material", io.persist, type.objectRef("Tr2MaterialParameterStore"));
31
+ CjsSchema.decorateField(Tr2MaterialArea, "metatype", io.persist, type.string);
32
+
33
+ export { Tr2MaterialArea };
39
34
  //# sourceMappingURL=Tr2MaterialArea.js.map