@carbonenginejs/runtime-resource 0.9.2 → 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 (544) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +47 -6
  3. package/dist/CjsMotherLode.js +88 -88
  4. package/dist/CjsMotherLode.js.map +1 -1
  5. package/dist/CjsResMan.js +717 -228
  6. package/dist/CjsResMan.js.map +1 -1
  7. package/dist/CjsResManFetchProvider.js +94 -0
  8. package/dist/CjsResManFetchProvider.js.map +1 -0
  9. package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
  10. package/dist/CjsResManWorkQueue.js.map +1 -0
  11. package/dist/format/CjsBlueReader.js +89 -0
  12. package/dist/format/CjsBlueReader.js.map +1 -1
  13. package/dist/format/CjsFormat.js +42 -16
  14. package/dist/format/CjsFormat.js.map +1 -1
  15. package/dist/format/CjsReader.js +4 -0
  16. package/dist/format/CjsReader.js.map +1 -1
  17. package/dist/format/CjsResourceProbe.js +2 -0
  18. package/dist/format/CjsResourceProbe.js.map +1 -1
  19. package/dist/format/effect/effectPermutationGraph.js +257 -0
  20. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  21. package/dist/format/effect/effectReflectionPackage.js +636 -0
  22. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  23. package/dist/format/effect/sha256.js +114 -0
  24. package/dist/format/effect/sha256.js.map +1 -0
  25. package/dist/format/payloadContract.js +20 -0
  26. package/dist/format/payloadContract.js.map +1 -1
  27. package/dist/formats/black/CjsBlackFormat.js +15 -1
  28. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  32. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  33. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  34. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  35. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  36. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  37. package/dist/formats/black/core/helpers.js +17 -0
  38. package/dist/formats/black/core/helpers.js.map +1 -1
  39. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/helpers.js +20 -0
  42. package/dist/formats/bnk/core/helpers.js.map +1 -1
  43. package/dist/formats/bnk/core/musicNodes.js +40 -3
  44. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  45. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  46. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  47. package/dist/formats/cmf/core/binary.js +71 -0
  48. package/dist/formats/cmf/core/binary.js.map +1 -1
  49. package/dist/formats/cmf/core/buffers.js +4 -0
  50. package/dist/formats/cmf/core/buffers.js.map +1 -1
  51. package/dist/formats/cmf/core/helpers.js +31 -0
  52. package/dist/formats/cmf/core/helpers.js.map +1 -1
  53. package/dist/formats/cmf/core/schema.js +10 -0
  54. package/dist/formats/cmf/core/schema.js.map +1 -1
  55. package/dist/formats/cmf/core/shared.js +9 -0
  56. package/dist/formats/cmf/core/shared.js.map +1 -1
  57. package/dist/formats/cmf/core/writer.js +54 -0
  58. package/dist/formats/cmf/core/writer.js.map +1 -1
  59. package/dist/formats/dds/core/bc6h.js +10 -0
  60. package/dist/formats/dds/core/bc6h.js.map +1 -1
  61. package/dist/formats/dds/core/bc7.js +16 -0
  62. package/dist/formats/dds/core/bc7.js.map +1 -1
  63. package/dist/formats/dds/core/helpers.js +47 -0
  64. package/dist/formats/dds/core/helpers.js.map +1 -1
  65. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  66. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  67. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  68. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  69. package/dist/formats/dxbc/core/container.js +169 -0
  70. package/dist/formats/dxbc/core/container.js.map +1 -0
  71. package/dist/formats/dxbc/core/decoder.js +789 -0
  72. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  73. package/dist/formats/dxbc/core/errors.js +19 -0
  74. package/dist/formats/dxbc/core/errors.js.map +1 -0
  75. package/dist/formats/dxbc/core/helpers.js +220 -0
  76. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  77. package/dist/formats/dxbc/core/opcodes.js +45 -0
  78. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  79. package/dist/formats/dxbc/core/program.js +91 -0
  80. package/dist/formats/dxbc/core/program.js.map +1 -0
  81. package/dist/formats/dxbc/core/signature.js +172 -0
  82. package/dist/formats/dxbc/core/signature.js.map +1 -0
  83. package/dist/formats/dxbc/index.js +2 -0
  84. package/dist/formats/dxbc/index.js.map +1 -0
  85. package/dist/formats/fbx/core/helpers.js +21 -0
  86. package/dist/formats/fbx/core/helpers.js.map +1 -1
  87. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  88. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  89. package/dist/formats/flac/core/helpers.js +20 -0
  90. package/dist/formats/flac/core/helpers.js.map +1 -1
  91. package/dist/formats/gif/CjsGifFormat.js +49 -0
  92. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  93. package/dist/formats/gif/core/helpers.js +20 -0
  94. package/dist/formats/gif/core/helpers.js.map +1 -1
  95. package/dist/formats/gltf/core/helpers.js +15 -0
  96. package/dist/formats/gltf/core/helpers.js.map +1 -1
  97. package/dist/formats/gltf/core/parser.js +13 -0
  98. package/dist/formats/gltf/core/parser.js.map +1 -1
  99. package/dist/formats/gltf/core/targets.js +10 -0
  100. package/dist/formats/gltf/core/targets.js.map +1 -1
  101. package/dist/formats/gr2/core/bitknit2.js +2 -0
  102. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  103. package/dist/formats/gr2/core/helpers.js +20 -0
  104. package/dist/formats/gr2/core/helpers.js.map +1 -1
  105. package/dist/formats/gr2/core/targets.js +10 -0
  106. package/dist/formats/gr2/core/targets.js.map +1 -1
  107. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  108. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  109. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  110. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  111. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  112. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  113. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  114. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  115. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  116. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  118. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  119. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  120. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  121. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  122. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  123. package/dist/formats/hlsl/core/analysis.js +51 -0
  124. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  125. package/dist/formats/hlsl/core/helpers.js +270 -0
  126. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  127. package/dist/formats/hlsl/core/json.js +284 -0
  128. package/dist/formats/hlsl/core/json.js.map +1 -0
  129. package/dist/formats/hlsl/core/metadata.js +327 -0
  130. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  131. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  132. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  133. package/dist/formats/hlsl/core/render-states.js +280 -0
  134. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  135. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  136. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  137. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  138. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  139. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  140. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  141. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  142. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  143. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  144. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  145. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  146. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  147. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  148. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  149. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  150. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  151. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  152. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  153. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  154. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  155. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  156. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  157. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  158. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  159. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  160. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  161. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  162. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  163. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  164. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  165. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  166. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  167. package/dist/formats/hlsl/index.js +2 -0
  168. package/dist/formats/hlsl/index.js.map +1 -0
  169. package/dist/formats/hlsl/portable.js +2 -0
  170. package/dist/formats/hlsl/portable.js.map +1 -0
  171. package/dist/formats/index.js +4 -0
  172. package/dist/formats/index.js.map +1 -1
  173. package/dist/formats/jpeg/core/helpers.js +52 -0
  174. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  175. package/dist/formats/jpeg/core/jpeg.js +93 -0
  176. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  177. package/dist/formats/mp3/core/helpers.js +37 -0
  178. package/dist/formats/mp3/core/helpers.js.map +1 -1
  179. package/dist/formats/mp4/core/helpers.js +35 -0
  180. package/dist/formats/mp4/core/helpers.js.map +1 -1
  181. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  182. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  183. package/dist/formats/ogg/core/helpers.js +23 -0
  184. package/dist/formats/ogg/core/helpers.js.map +1 -1
  185. package/dist/formats/ogg/core/vorbis.js +13 -0
  186. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  187. package/dist/formats/png/core/helpers.js +52 -0
  188. package/dist/formats/png/core/helpers.js.map +1 -1
  189. package/dist/formats/red/CjsRedFormat.js +2 -0
  190. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  191. package/dist/formats/red/core/CjsRedReader.js +52 -0
  192. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  193. package/dist/formats/red/core/helpers.js +19 -0
  194. package/dist/formats/red/core/helpers.js.map +1 -1
  195. package/dist/formats/stl/core/stl.js +8 -0
  196. package/dist/formats/stl/core/stl.js.map +1 -1
  197. package/dist/formats/stl/core/targets.js +10 -0
  198. package/dist/formats/stl/core/targets.js.map +1 -1
  199. package/dist/formats/tga/core/helpers.js +47 -0
  200. package/dist/formats/tga/core/helpers.js.map +1 -1
  201. package/dist/formats/wav/core/helpers.js +37 -0
  202. package/dist/formats/wav/core/helpers.js.map +1 -1
  203. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  204. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  205. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  206. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  207. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  208. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  209. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  210. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  211. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  212. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  213. package/dist/formats/webgl/core/effectPackage.js +789 -0
  214. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  215. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  216. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  217. package/dist/formats/webgl/core/errors.js +27 -0
  218. package/dist/formats/webgl/core/errors.js.map +1 -0
  219. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  220. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  221. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  222. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  223. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  224. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  225. package/dist/formats/webgl/core/helpers.js +306 -0
  226. package/dist/formats/webgl/core/helpers.js.map +1 -0
  227. package/dist/formats/webgl/index.js +2 -0
  228. package/dist/formats/webgl/index.js.map +1 -0
  229. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  230. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  231. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  232. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  233. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  234. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  235. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  236. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  237. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  238. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  239. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  240. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  241. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  242. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  243. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  244. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  245. package/dist/formats/webgpu/core/errors.js +20 -0
  246. package/dist/formats/webgpu/core/errors.js.map +1 -0
  247. package/dist/formats/webgpu/core/helpers.js +448 -0
  248. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  249. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  250. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  251. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  252. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  253. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  254. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  255. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  256. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  257. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  258. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  259. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  260. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  261. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  262. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  263. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  264. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  265. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  266. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  267. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  268. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  269. package/dist/formats/webgpu/core/schema.js +4 -0
  270. package/dist/formats/webgpu/core/schema.js.map +1 -0
  271. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  272. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  273. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  274. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  275. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  276. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  277. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  278. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  279. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  280. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  281. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  282. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  283. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  284. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  285. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  286. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  287. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  288. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  289. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  290. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  291. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  292. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  293. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  294. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  295. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  296. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  297. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  298. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  299. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  300. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  301. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  302. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  303. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  304. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  305. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  306. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  307. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  308. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  309. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  310. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  311. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  312. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  313. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  314. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  315. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  316. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  317. package/dist/formats/webgpu/index.js +2 -0
  318. package/dist/formats/webgpu/index.js.map +1 -0
  319. package/dist/formats/webm/core/helpers.js +35 -0
  320. package/dist/formats/webm/core/helpers.js.map +1 -1
  321. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  322. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  323. package/dist/formats/webp/core/helpers.js +23 -0
  324. package/dist/formats/webp/core/helpers.js.map +1 -1
  325. package/dist/formats/wem/CjsWemFormat.js +8 -0
  326. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  327. package/dist/formats/wem/core/bitStream.js +2 -0
  328. package/dist/formats/wem/core/bitStream.js.map +1 -1
  329. package/dist/formats/wem/core/helpers.js +20 -0
  330. package/dist/formats/wem/core/helpers.js.map +1 -1
  331. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  332. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  333. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  334. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  335. package/dist/formats/yaml/core/helpers.js +10 -0
  336. package/dist/formats/yaml/core/helpers.js.map +1 -1
  337. package/dist/index.js +56 -43
  338. package/dist/index.js.map +1 -1
  339. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  340. package/dist/resource/CjsResource.js.map +1 -0
  341. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  342. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  343. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  344. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  345. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  346. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  347. package/dist/resource/audio/CjsAudioRes.js +213 -0
  348. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  349. package/dist/resource/audio/index.js +4 -0
  350. package/dist/resource/audio/index.js.map +1 -0
  351. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  352. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  353. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  354. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  355. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  356. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  357. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  358. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  359. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  360. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  361. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  362. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  363. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  364. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  365. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  366. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  367. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  368. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  369. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  370. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  371. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  372. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  373. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  374. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  375. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  376. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  377. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  378. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  379. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  380. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  381. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  382. package/dist/resource/geometry/granny/enums.js.map +1 -0
  383. package/dist/resource/geometry/granny/index.js +6 -0
  384. package/dist/resource/geometry/granny/index.js.map +1 -0
  385. package/dist/resource/geometry/index.js +17 -0
  386. package/dist/resource/geometry/index.js.map +1 -0
  387. package/dist/resource/index.js +52 -0
  388. package/dist/resource/index.js.map +1 -0
  389. package/dist/resource/resourceBoundary.js +64 -0
  390. package/dist/resource/resourceBoundary.js.map +1 -0
  391. package/dist/resource/shader/Tr2EffectRes.js +429 -0
  392. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  393. package/dist/resource/shader/Tr2MaterialArea.js +34 -0
  394. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  395. package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
  396. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  397. package/dist/resource/shader/Tr2MaterialRes.js +35 -0
  398. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  399. package/dist/resource/shader/Tr2Shader.js +256 -0
  400. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  401. package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
  402. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  403. package/dist/resource/shader/index.js +17 -0
  404. package/dist/resource/shader/index.js.map +1 -0
  405. package/dist/resource/shader/portable.js +33 -0
  406. package/dist/resource/shader/portable.js.map +1 -0
  407. package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
  408. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  409. package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
  410. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  411. package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
  412. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  413. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
  414. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  415. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
  416. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  417. package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
  418. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  419. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
  420. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  421. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
  422. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  423. package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
  424. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  425. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
  426. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  427. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  428. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  429. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  430. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  431. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  432. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  433. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  434. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  435. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  436. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  437. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  438. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  439. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  440. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  441. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  442. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  443. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  444. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  445. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  446. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  447. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  448. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  449. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  450. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  451. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  452. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  453. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  454. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  455. package/dist/resource/texture/index.js +15 -0
  456. package/dist/resource/texture/index.js.map +1 -0
  457. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  458. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  459. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  460. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  461. package/dist/worker/CjsResManWorker.js +217 -0
  462. package/dist/worker/CjsResManWorker.js.map +1 -0
  463. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  464. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  465. package/dist/worker/protocol.js +12 -0
  466. package/dist/worker/protocol.js.map +1 -0
  467. package/docs/README.md +16 -3
  468. package/docs/architecture.md +39 -16
  469. package/docs/concepts/resource-lifecycle.md +2 -1
  470. package/docs/formats/README.md +8 -0
  471. package/docs/formats/provenance.md +11 -3
  472. package/docs/reference/classes/README.md +6 -4
  473. package/docs/reference/classes/audio.md +30 -0
  474. package/docs/reference/classes/core.md +31 -11
  475. package/docs/reference/classes/formats.md +440 -0
  476. package/docs/reference/classes/resources.md +151 -41
  477. package/docs/reference/classes/texture.md +7 -7
  478. package/docs/reference/motherlode-cache.md +17 -0
  479. package/docs/reference/queues.md +9 -1
  480. package/docs/reference/workers.md +135 -0
  481. package/docs/roadmap.md +27 -1
  482. package/format-notices/dxbc/LICENSE +21 -0
  483. package/format-notices/dxbc/NOTICE +20 -0
  484. package/format-notices/hlsl/LICENSE +21 -0
  485. package/format-notices/hlsl/NOTICE +25 -0
  486. package/format-notices/webgl/LICENSE +21 -0
  487. package/format-notices/webgl/NOTICE +35 -0
  488. package/format-notices/webgpu/LICENSE +21 -0
  489. package/format-notices/webgpu/NOTICE +31 -0
  490. package/package.json +13 -1
  491. package/dist/CjsResManQueue.js.map +0 -1
  492. package/dist/CjsResource.js.map +0 -1
  493. package/dist/CjsResourceSource.js +0 -68
  494. package/dist/CjsResourceSource.js.map +0 -1
  495. package/dist/resourcePath.js +0 -18
  496. package/dist/resourcePath.js.map +0 -1
  497. package/dist/resourceStates.js +0 -9
  498. package/dist/resourceStates.js.map +0 -1
  499. package/dist/resources/AudioGeometryResData.js.map +0 -1
  500. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  501. package/dist/resources/MeshDecalData.js.map +0 -1
  502. package/dist/resources/MeshDecalLodData.js.map +0 -1
  503. package/dist/resources/Tr2EffectRes.js +0 -71
  504. package/dist/resources/Tr2EffectRes.js.map +0 -1
  505. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  506. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  507. package/dist/resources/Tr2ImageRes.js.map +0 -1
  508. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  509. package/dist/resources/Tr2MaterialArea.js +0 -34
  510. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  511. package/dist/resources/Tr2MaterialMesh.js +0 -31
  512. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  513. package/dist/resources/Tr2MaterialRes.js +0 -34
  514. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  515. package/dist/resources/Tr2ShaderPermutation.js +0 -43
  516. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  517. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  518. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  519. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  520. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  521. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  522. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  523. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  524. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  525. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  526. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  527. package/dist/resources/TriGeometryRes.js +0 -239
  528. package/dist/resources/TriGeometryRes.js.map +0 -1
  529. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  530. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  531. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  532. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  533. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  534. package/dist/resources/TriGrannyRes.js.map +0 -1
  535. package/dist/resources/TriJointBinding.js.map +0 -1
  536. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  537. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  538. package/dist/resources/TriTextureRes.js.map +0 -1
  539. package/dist/resources/enums.js.map +0 -1
  540. package/dist/resources/resourceBoundary.js +0 -47
  541. package/dist/resources/resourceBoundary.js.map +0 -1
  542. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  543. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  544. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2MaterialRes.js","sources":["../../../../src/resource/shader/Tr2MaterialRes.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2MaterialRes.h\r\n// Schema: format-carbon resources/Tr2MaterialRes.json; maintained by runtime-resource.\r\nimport { CjsSchema, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\n\r\n/**\r\n * Root persisted material record containing its authored name and material\r\n * mesh dictionary.\r\n *\r\n * It owns the serializable material description, not device shaders,\r\n * descriptor bindings, or pipelines.\r\n */\r\nexport class Tr2MaterialRes extends CjsModel\r\n{\r\n\r\n /** Persisted dictionary of material meshes. */\r\n meshes = null;\r\n\r\n /** Authored material name. */\r\n name = \"\";\r\n\r\n}\r\n\r\n// Declared imperatively rather than with decorators, so this module stays\r\n// plain ESM that loads from source without a transform. The decorator\r\n// expressions are reused verbatim, so the registered metadata is identical.\r\n// Statics belong in `methods`: decorateMethod targets the prototype and\r\n// would register a static as an instance field.\r\nCjsSchema.define(Tr2MaterialRes, {\r\n className: \"Tr2MaterialRes\",\r\n family: \"resources\"\r\n});\r\nCjsSchema.decorateField(Tr2MaterialRes, \"meshes\", io.persist, type.objectRef(\"Tr2MaterialMeshDict\"));\r\nCjsSchema.decorateField(Tr2MaterialRes, \"name\", io.persist, type.string);\r\n"],"names":["Tr2MaterialRes","CjsModel","meshes","name","CjsSchema","define","className","family","decorateField","io","persist","type","objectRef","string"],"mappings":";;;AAAA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,SAASC,QAAQ,CAC5C;AAEE;AACAC,EAAAA,MAAM,GAAG,IAAI;;AAEb;AACAC,EAAAA,IAAI,GAAG,EAAE;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACAC,SAAS,CAACC,MAAM,CAACL,cAAc,EAAE;AAC/BM,EAAAA,SAAS,EAAE,gBAAgB;AAC3BC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;AACFH,SAAS,CAACI,aAAa,CAACR,cAAc,EAAE,QAAQ,EAAES,EAAE,CAACC,OAAO,EAAEC,IAAI,CAACC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACpGR,SAAS,CAACI,aAAa,CAACR,cAAc,EAAE,MAAM,EAAES,EAAE,CAACC,OAAO,EAAEC,IAAI,CAACE,MAAM,CAAC;;;;"}
@@ -0,0 +1,256 @@
1
+ import { CjsSchema, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
2
+ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
+ import { validateEffectBodyReflection, isEffectBodyReflection } from '../../formats/hlsl/core/portableReflection.js';
4
+ import { Tr2EffectDescription } from './reflection/Tr2EffectDescription.js';
5
+
6
+ // Source: trinity/trinity/Shader/Tr2Shader.h
7
+ // Source: trinity/trinity/Shader/Tr2Shader.cpp
8
+
9
+ /** GPU-free selected shader and its complete source reflection graph. */
10
+ class Tr2Shader extends CjsModel {
11
+ /** m_sortValue (unsigned int) */
12
+ sortValue = 0;
13
+
14
+ /** m_effect (Tr2EffectDescription) */
15
+ effect = new Tr2EffectDescription();
16
+
17
+ /** m_hasVertexBufferAccessInRtShadow (bool) */
18
+ hasVertexBufferAccessInRtShadow = false;
19
+
20
+ /**
21
+ * Index of the named technique; 0 for Carbon's empty-string any-technique
22
+ * sentinel and -1 when the shader has no techniques or the name is unknown.
23
+ */
24
+ GetTechniqueIndex(name = "Main") {
25
+ const techniques = this.effect?.techniques ?? [];
26
+ if (!techniques.length) {
27
+ return -1;
28
+ }
29
+ if (name === "") {
30
+ return 0;
31
+ }
32
+ return techniques.findIndex(technique => technique?.name === name);
33
+ }
34
+
35
+ /** Number of passes in a technique; 0 for an unknown index. */
36
+ GetPassCount(techniqueIndex = 0) {
37
+ return this.effect?.techniques?.[techniqueIndex]?.passes?.length ?? 0;
38
+ }
39
+
40
+ /**
41
+ * The reflected constant of this name from any stage of any pass, or null;
42
+ * the description is metadata, not a bound GPU slot.
43
+ */
44
+ GetConstant(name) {
45
+ return Tr2Shader.findStageValue(this.effect, name, "constants");
46
+ }
47
+
48
+ /**
49
+ * The reflected resource of this name, searching stage resources before
50
+ * UAVs; null when neither has it.
51
+ */
52
+ GetResource(name) {
53
+ for (const stage of Tr2Shader.iterateStages(this.effect)) {
54
+ const resource = Tr2Shader.findNamedCollectionValue(stage?.resources, name);
55
+ if (resource) {
56
+ return resource;
57
+ }
58
+ const uav = Tr2Shader.findNamedCollectionValue(stage?.uavs, name);
59
+ if (uav) {
60
+ return uav;
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+
66
+ /**
67
+ * The annotation set authored for a parameter name, or null; the shape
68
+ * depends on the reflection source.
69
+ */
70
+ GetParameterAnnotations(parameterName) {
71
+ return Tr2Shader.findAnnotationSet(this.effect?.annotations, parameterName);
72
+ }
73
+
74
+ /** The packed draw-sort key; 0 until ProcessEffect has run. */
75
+ GetSortValue() {
76
+ return this.sortValue;
77
+ }
78
+
79
+ /** The reflected effect description, by reference rather than copy. */
80
+ GetEffectDescription() {
81
+ return this.effect;
82
+ }
83
+
84
+ /** The same object GetEffectDescription returns. */
85
+ GetEffect() {
86
+ return this.effect;
87
+ }
88
+
89
+ /** The technique's bitmask of shader stages, or 0 for an unknown index. */
90
+ GetShaderTypeMask(techniqueIndex = 0) {
91
+ return Number(this.effect?.techniques?.[techniqueIndex]?.shaderTypeMask ?? 0);
92
+ }
93
+
94
+ /**
95
+ * Pack the first technique/pass's renderer handles into Carbon's sort key.
96
+ * A device-free source graph retains 0 while its handles remain invalid.
97
+ */
98
+ ProcessEffect() {
99
+ this.sortValue = 0;
100
+ const pass = this.effect?.techniques?.[0]?.passes?.[0];
101
+ if (!pass) {
102
+ return;
103
+ }
104
+ const stages = pass.stageInputs ?? [];
105
+ const pixelHandle = Number(stages[1]?.shader ?? stages[1]?.m_shader ?? 0xffffffff);
106
+ const vertexHandle = Number(stages[0]?.shader ?? stages[0]?.m_shader ?? 0xffffffff);
107
+ if (pixelHandle === 0xffffffff || vertexHandle === 0xffffffff) {
108
+ return;
109
+ }
110
+ const pixelShader = pixelHandle & 0x3ff;
111
+ const vertexShader = vertexHandle & 0x3ff;
112
+ const renderStates = Number(pass.renderStates ?? 0) & 0x3ff;
113
+ const passCount = Number(this.effect?.techniques?.[0]?.passes?.length ?? 0) & 0x3;
114
+ this.sortValue = (passCount << 30 | pixelShader << 20 | vertexShader << 10 | renderStates) >>> 0;
115
+ }
116
+
117
+ /** Whether this shader accesses vertex buffers in RT shadow mode. */
118
+ HasVertexBufferAccessInRtShadow() {
119
+ return this.hasVertexBufferAccessInRtShadow;
120
+ }
121
+
122
+ /**
123
+ * Construct a canonical shader graph from JS/JSON model values.
124
+ *
125
+ * @param {object} values Canonical model values.
126
+ * @param {object} options CjsModel import options.
127
+ * @returns {Tr2Shader} Hydrated shader graph.
128
+ */
129
+ static from(values = {}, options = {}) {
130
+ let normalized = values;
131
+ if (values?.effect && !(values.effect instanceof Tr2EffectDescription)) {
132
+ normalized = {
133
+ ...values,
134
+ effect: Tr2EffectDescription.from(values.effect, options)
135
+ };
136
+ }
137
+ const shader = super.from(normalized, options);
138
+ if (!Object.hasOwn(values ?? {}, "sortValue")) {
139
+ shader.ProcessEffect();
140
+ }
141
+ return shader;
142
+ }
143
+
144
+ /**
145
+ * Build one canonical GPU-free shader from complete portable reflection.
146
+ * Each child reflection class owns conversion of its own portable record.
147
+ *
148
+ * @param {object} portable Portable effect-body reflection.
149
+ * @returns {Tr2Shader} Canonical selected shader.
150
+ */
151
+ static fromPortable(portable) {
152
+ validateEffectBodyReflection(portable);
153
+ const shader = new this();
154
+ shader.effect = Tr2EffectDescription.fromPortable(portable.effect);
155
+ shader.ProcessEffect();
156
+ return shader;
157
+ }
158
+
159
+ /**
160
+ * Whether a value has the supported complete portable-reflection envelope.
161
+ *
162
+ * @param {*} value Candidate value.
163
+ * @returns {boolean} Whether the portable envelope is supported.
164
+ */
165
+ static isPortableReflection(value) {
166
+ return isEffectBodyReflection(value);
167
+ }
168
+
169
+ /** Find one named reflection entry across every stage. */
170
+ static findStageValue(effect, name, key) {
171
+ for (const stage of Tr2Shader.iterateStages(effect)) {
172
+ const found = Tr2Shader.findNamedCollectionValue(stage?.[key], name);
173
+ if (found) {
174
+ return found;
175
+ }
176
+ }
177
+ return null;
178
+ }
179
+
180
+ /** Flatten pass stage inputs in Carbon lookup order. */
181
+ static iterateStages(effect) {
182
+ const stages = [];
183
+ for (const technique of effect?.techniques ?? []) {
184
+ for (const pass of technique?.passes ?? []) {
185
+ stages.push(...(pass?.stageInputs ?? []));
186
+ }
187
+ }
188
+ return stages;
189
+ }
190
+
191
+ /** Find a named entry in an array, Map, or plain object collection. */
192
+ static findNamedCollectionValue(values, name) {
193
+ if (!values) {
194
+ return null;
195
+ }
196
+ if (Array.isArray(values)) {
197
+ return values.find(value => value?.name === name || value?.[1]?.name === name) ?? null;
198
+ }
199
+ if (values instanceof Map) {
200
+ for (const value of values.values()) {
201
+ if (value?.name === name) {
202
+ return value;
203
+ }
204
+ }
205
+ return null;
206
+ }
207
+ for (const value of Object.values(values)) {
208
+ if (value?.name === name) {
209
+ return value;
210
+ }
211
+ }
212
+ return null;
213
+ }
214
+
215
+ /** Resolve a parameter's annotations from a Map, array, or plain object. */
216
+ static findAnnotationSet(annotations, parameterName) {
217
+ if (!annotations) {
218
+ return null;
219
+ }
220
+ if (annotations instanceof Map) {
221
+ return annotations.get(parameterName) ?? null;
222
+ }
223
+ if (Array.isArray(annotations)) {
224
+ const entry = annotations.find(item => item?.name === parameterName || item?.[0] === parameterName);
225
+ return entry?.annotations ?? entry?.value ?? entry?.[1] ?? null;
226
+ }
227
+ return annotations[parameterName] ?? null;
228
+ }
229
+ }
230
+
231
+ // Declared imperatively rather than with decorators, so this module stays
232
+ // plain ESM that loads from source without a transform. The decorator
233
+ // expressions are reused verbatim, so the registered metadata is identical.
234
+ // Statics belong in `methods`: decorateMethod targets the prototype and
235
+ // would register a static as an instance field.
236
+ CjsSchema.define(Tr2Shader, {
237
+ className: "Tr2Shader",
238
+ family: "shader"
239
+ });
240
+ CjsSchema.decorateField(Tr2Shader, "sortValue", type.uint32);
241
+ CjsSchema.decorateField(Tr2Shader, "effect", type.rawStruct("Tr2EffectDescription"));
242
+ CjsSchema.decorateField(Tr2Shader, "hasVertexBufferAccessInRtShadow", type.boolean);
243
+ CjsSchema.decorateMethod(Tr2Shader, "GetTechniqueIndex", carbon.method, impl.adapted, impl.reason("Carbon returns success through a bool plus output index; CarbonEngineJS returns the index directly or -1 while preserving exact name lookup."));
244
+ CjsSchema.decorateMethod(Tr2Shader, "GetPassCount", carbon.method, impl.adapted, impl.reason("Carbon assumes an already-validated technique index; CarbonEngineJS safely returns zero for an unavailable index."));
245
+ CjsSchema.decorateMethod(Tr2Shader, "GetConstant", carbon.method, impl.implemented);
246
+ CjsSchema.decorateMethod(Tr2Shader, "GetResource", carbon.method, impl.implemented);
247
+ CjsSchema.decorateMethod(Tr2Shader, "GetParameterAnnotations", carbon.method, impl.implemented);
248
+ CjsSchema.decorateMethod(Tr2Shader, "GetSortValue", carbon.method, impl.implemented);
249
+ CjsSchema.decorateMethod(Tr2Shader, "GetEffectDescription", carbon.method, impl.implemented);
250
+ CjsSchema.decorateMethod(Tr2Shader, "GetEffect", carbon.method, impl.implemented);
251
+ CjsSchema.decorateMethod(Tr2Shader, "GetShaderTypeMask", carbon.method, impl.adapted, impl.reason("Carbon assumes an already-validated technique index; CarbonEngineJS safely returns zero for an unavailable index."));
252
+ CjsSchema.decorateMethod(Tr2Shader, "ProcessEffect", carbon.method, impl.adapted, impl.reason("Carbon packs renderer handles assigned while reading; the device-free graph leaves the sort key zero until an engine assigns valid handles."));
253
+ CjsSchema.decorateMethod(Tr2Shader, "HasVertexBufferAccessInRtShadow", carbon.method, impl.implemented);
254
+
255
+ export { Tr2Shader };
256
+ //# sourceMappingURL=Tr2Shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2Shader.js","sources":["../../../../src/resource/shader/Tr2Shader.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2Shader.h\n// Source: trinity/trinity/Shader/Tr2Shader.cpp\nimport { CjsSchema, carbon, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isEffectBodyReflection,\n validateEffectBodyReflection\n} from \"../../formats/hlsl/portable.js\";\nimport { Tr2EffectDescription } from \"./reflection/Tr2EffectDescription.js\";\n\n/** GPU-free selected shader and its complete source reflection graph. */\nexport class Tr2Shader extends CjsModel\n{\n\n /** m_sortValue (unsigned int) */\n sortValue = 0;\n\n /** m_effect (Tr2EffectDescription) */\n effect = new Tr2EffectDescription();\n\n /** m_hasVertexBufferAccessInRtShadow (bool) */\n hasVertexBufferAccessInRtShadow = false;\n\n /**\n * Index of the named technique; 0 for Carbon's empty-string any-technique\n * sentinel and -1 when the shader has no techniques or the name is unknown.\n */\n GetTechniqueIndex(name = \"Main\")\n {\n const techniques = this.effect?.techniques ?? [];\n if (!techniques.length)\n {\n return -1;\n }\n if (name === \"\")\n {\n return 0;\n }\n return techniques.findIndex(technique => technique?.name === name);\n }\n\n /** Number of passes in a technique; 0 for an unknown index. */\n GetPassCount(techniqueIndex = 0)\n {\n return this.effect?.techniques?.[techniqueIndex]?.passes?.length ?? 0;\n }\n\n /**\n * The reflected constant of this name from any stage of any pass, or null;\n * the description is metadata, not a bound GPU slot.\n */\n GetConstant(name)\n {\n return Tr2Shader.findStageValue(this.effect, name, \"constants\");\n }\n\n /**\n * The reflected resource of this name, searching stage resources before\n * UAVs; null when neither has it.\n */\n GetResource(name)\n {\n for (const stage of Tr2Shader.iterateStages(this.effect))\n {\n const resource = Tr2Shader.findNamedCollectionValue(\n stage?.resources,\n name\n );\n if (resource)\n {\n return resource;\n }\n const uav = Tr2Shader.findNamedCollectionValue(stage?.uavs, name);\n if (uav)\n {\n return uav;\n }\n }\n return null;\n }\n\n /**\n * The annotation set authored for a parameter name, or null; the shape\n * depends on the reflection source.\n */\n GetParameterAnnotations(parameterName)\n {\n return Tr2Shader.findAnnotationSet(\n this.effect?.annotations,\n parameterName\n );\n }\n\n /** The packed draw-sort key; 0 until ProcessEffect has run. */\n GetSortValue()\n {\n return this.sortValue;\n }\n\n /** The reflected effect description, by reference rather than copy. */\n GetEffectDescription()\n {\n return this.effect;\n }\n\n /** The same object GetEffectDescription returns. */\n GetEffect()\n {\n return this.effect;\n }\n\n /** The technique's bitmask of shader stages, or 0 for an unknown index. */\n GetShaderTypeMask(techniqueIndex = 0)\n {\n return Number(\n this.effect?.techniques?.[techniqueIndex]?.shaderTypeMask ?? 0\n );\n }\n\n /**\n * Pack the first technique/pass's renderer handles into Carbon's sort key.\n * A device-free source graph retains 0 while its handles remain invalid.\n */\n ProcessEffect()\n {\n this.sortValue = 0;\n const pass = this.effect?.techniques?.[0]?.passes?.[0];\n if (!pass)\n {\n return;\n }\n const stages = pass.stageInputs ?? [];\n const pixelHandle = Number(\n stages[1]?.shader ?? stages[1]?.m_shader ?? 0xffffffff\n );\n const vertexHandle = Number(\n stages[0]?.shader ?? stages[0]?.m_shader ?? 0xffffffff\n );\n if (pixelHandle === 0xffffffff || vertexHandle === 0xffffffff)\n {\n return;\n }\n const pixelShader = pixelHandle & 0x3ff;\n const vertexShader = vertexHandle & 0x3ff;\n const renderStates = Number(pass.renderStates ?? 0) & 0x3ff;\n const passCount = Number(\n this.effect?.techniques?.[0]?.passes?.length ?? 0\n ) & 0x3;\n this.sortValue = (\n (passCount << 30)\n | (pixelShader << 20)\n | (vertexShader << 10)\n | renderStates\n ) >>> 0;\n }\n\n /** Whether this shader accesses vertex buffers in RT shadow mode. */\n HasVertexBufferAccessInRtShadow()\n {\n return this.hasVertexBufferAccessInRtShadow;\n }\n\n /**\n * Construct a canonical shader graph from JS/JSON model values.\n *\n * @param {object} values Canonical model values.\n * @param {object} options CjsModel import options.\n * @returns {Tr2Shader} Hydrated shader graph.\n */\n static from(values = {}, options = {})\n {\n let normalized = values;\n if (values?.effect\n && !(values.effect instanceof Tr2EffectDescription))\n {\n normalized = {\n ...values,\n effect: Tr2EffectDescription.from(values.effect, options)\n };\n }\n const shader = super.from(normalized, options);\n if (!Object.hasOwn(values ?? {}, \"sortValue\"))\n {\n shader.ProcessEffect();\n }\n return shader;\n }\n\n /**\n * Build one canonical GPU-free shader from complete portable reflection.\n * Each child reflection class owns conversion of its own portable record.\n *\n * @param {object} portable Portable effect-body reflection.\n * @returns {Tr2Shader} Canonical selected shader.\n */\n static fromPortable(portable)\n {\n validateEffectBodyReflection(portable);\n\n const shader = new this();\n shader.effect = Tr2EffectDescription.fromPortable(portable.effect);\n shader.ProcessEffect();\n return shader;\n }\n\n /**\n * Whether a value has the supported complete portable-reflection envelope.\n *\n * @param {*} value Candidate value.\n * @returns {boolean} Whether the portable envelope is supported.\n */\n static isPortableReflection(value)\n {\n return isEffectBodyReflection(value);\n }\n\n /** Find one named reflection entry across every stage. */\n static findStageValue(effect, name, key)\n {\n for (const stage of Tr2Shader.iterateStages(effect))\n {\n const found = Tr2Shader.findNamedCollectionValue(stage?.[key], name);\n if (found)\n {\n return found;\n }\n }\n return null;\n }\n\n /** Flatten pass stage inputs in Carbon lookup order. */\n static iterateStages(effect)\n {\n const stages = [];\n for (const technique of effect?.techniques ?? [])\n {\n for (const pass of technique?.passes ?? [])\n {\n stages.push(...pass?.stageInputs ?? []);\n }\n }\n return stages;\n }\n\n /** Find a named entry in an array, Map, or plain object collection. */\n static findNamedCollectionValue(values, name)\n {\n if (!values)\n {\n return null;\n }\n if (Array.isArray(values))\n {\n return values.find(\n value => value?.name === name || value?.[1]?.name === name\n ) ?? null;\n }\n if (values instanceof Map)\n {\n for (const value of values.values())\n {\n if (value?.name === name)\n {\n return value;\n }\n }\n return null;\n }\n for (const value of Object.values(values))\n {\n if (value?.name === name)\n {\n return value;\n }\n }\n return null;\n }\n\n /** Resolve a parameter's annotations from a Map, array, or plain object. */\n static findAnnotationSet(annotations, parameterName)\n {\n if (!annotations)\n {\n return null;\n }\n if (annotations instanceof Map)\n {\n return annotations.get(parameterName) ?? null;\n }\n if (Array.isArray(annotations))\n {\n const entry = annotations.find(\n item => item?.name === parameterName\n || item?.[0] === parameterName\n );\n return entry?.annotations ?? entry?.value ?? entry?.[1] ?? null;\n }\n return annotations[parameterName] ?? null;\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(Tr2Shader, {\n className: \"Tr2Shader\",\n family: \"shader\"\n});\nCjsSchema.decorateField(Tr2Shader, \"sortValue\", type.uint32);\nCjsSchema.decorateField(Tr2Shader, \"effect\", type.rawStruct(\"Tr2EffectDescription\"));\nCjsSchema.decorateField(Tr2Shader, \"hasVertexBufferAccessInRtShadow\", type.boolean);\nCjsSchema.decorateMethod(Tr2Shader, \"GetTechniqueIndex\", carbon.method, impl.adapted, impl.reason(\"Carbon returns success through a bool plus output index; CarbonEngineJS returns the index directly or -1 while preserving exact name lookup.\"));\nCjsSchema.decorateMethod(Tr2Shader, \"GetPassCount\", carbon.method, impl.adapted, impl.reason(\"Carbon assumes an already-validated technique index; CarbonEngineJS safely returns zero for an unavailable index.\"));\nCjsSchema.decorateMethod(Tr2Shader, \"GetConstant\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetResource\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetParameterAnnotations\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetSortValue\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetEffectDescription\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetEffect\", carbon.method, impl.implemented);\nCjsSchema.decorateMethod(Tr2Shader, \"GetShaderTypeMask\", carbon.method, impl.adapted, impl.reason(\"Carbon assumes an already-validated technique index; CarbonEngineJS safely returns zero for an unavailable index.\"));\nCjsSchema.decorateMethod(Tr2Shader, \"ProcessEffect\", carbon.method, impl.adapted, impl.reason(\"Carbon packs renderer handles assigned while reading; the device-free graph leaves the sort key zero until an engine assigns valid handles.\"));\nCjsSchema.decorateMethod(Tr2Shader, \"HasVertexBufferAccessInRtShadow\", carbon.method, impl.implemented);\n"],"names":["Tr2Shader","CjsModel","sortValue","effect","Tr2EffectDescription","hasVertexBufferAccessInRtShadow","GetTechniqueIndex","name","techniques","length","findIndex","technique","GetPassCount","techniqueIndex","passes","GetConstant","findStageValue","GetResource","stage","iterateStages","resource","findNamedCollectionValue","resources","uav","uavs","GetParameterAnnotations","parameterName","findAnnotationSet","annotations","GetSortValue","GetEffectDescription","GetEffect","GetShaderTypeMask","Number","shaderTypeMask","ProcessEffect","pass","stages","stageInputs","pixelHandle","shader","m_shader","vertexHandle","pixelShader","vertexShader","renderStates","passCount","HasVertexBufferAccessInRtShadow","from","values","options","normalized","Object","hasOwn","fromPortable","portable","validateEffectBodyReflection","isPortableReflection","value","isEffectBodyReflection","key","found","push","Array","isArray","find","Map","get","entry","item","CjsSchema","define","className","family","decorateField","type","uint32","rawStruct","boolean","decorateMethod","carbon","method","impl","adapted","reason","implemented"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
2
+ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
+
4
+ // Source: trinity/trinity/Resources/Tr2EffectRes.h
5
+ // Schema: format-carbon resources/Tr2ShaderPermutation.json; maintained by runtime-resource.
6
+
7
+ /**
8
+ * Describes one authored effect permutation and the option values a shader
9
+ * resolver may select.
10
+ *
11
+ * This is resource metadata only. Backend shader compilation and pipeline
12
+ * realization remain engine responsibilities.
13
+ */
14
+ class Tr2ShaderPermutation extends CjsModel {
15
+ /** Authored permutation name. */
16
+ name = "";
17
+
18
+ /** Ordered option names accepted by the permutation. */
19
+ options = [];
20
+
21
+ /** Index of the option selected when a caller supplies no override. */
22
+ defaultOption = 0;
23
+
24
+ /** Human-readable description retained from the effect resource. */
25
+ description = "";
26
+
27
+ /** Carbon permutation category value. */
28
+ type = 0;
29
+ }
30
+
31
+ // Declared imperatively rather than with decorators, so this module stays
32
+ // plain ESM that loads from source without a transform. The decorator
33
+ // expressions are reused verbatim, so the registered metadata is identical.
34
+ // Statics belong in `methods`: decorateMethod targets the prototype and
35
+ // would register a static as an instance field.
36
+ CjsSchema.define(Tr2ShaderPermutation, {
37
+ className: "Tr2ShaderPermutation",
38
+ family: "resources"
39
+ });
40
+ CjsSchema.decorateField(Tr2ShaderPermutation, "name", type.string);
41
+ CjsSchema.decorateField(Tr2ShaderPermutation, "options", type.list("BlueSharedString"));
42
+ CjsSchema.decorateField(Tr2ShaderPermutation, "defaultOption", type.uint64);
43
+ CjsSchema.decorateField(Tr2ShaderPermutation, "description", type.string);
44
+ CjsSchema.decorateField(Tr2ShaderPermutation, "type", type.uint8);
45
+
46
+ export { Tr2ShaderPermutation };
47
+ //# sourceMappingURL=Tr2ShaderPermutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2ShaderPermutation.js","sources":["../../../../src/resource/shader/Tr2ShaderPermutation.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Tr2EffectRes.h\r\n// Schema: format-carbon resources/Tr2ShaderPermutation.json; maintained by runtime-resource.\r\nimport { CjsSchema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\n\r\n/**\r\n * Describes one authored effect permutation and the option values a shader\r\n * resolver may select.\r\n *\r\n * This is resource metadata only. Backend shader compilation and pipeline\r\n * realization remain engine responsibilities.\r\n */\r\nexport class Tr2ShaderPermutation extends CjsModel\r\n{\r\n\r\n /** Authored permutation name. */\r\n name = \"\";\r\n\r\n /** Ordered option names accepted by the permutation. */\r\n options = [];\r\n\r\n /** Index of the option selected when a caller supplies no override. */\r\n defaultOption = 0;\r\n\r\n /** Human-readable description retained from the effect resource. */\r\n description = \"\";\r\n\r\n /** Carbon permutation category value. */\r\n type = 0;\r\n\r\n}\r\n\r\n// Declared imperatively rather than with decorators, so this module stays\r\n// plain ESM that loads from source without a transform. The decorator\r\n// expressions are reused verbatim, so the registered metadata is identical.\r\n// Statics belong in `methods`: decorateMethod targets the prototype and\r\n// would register a static as an instance field.\r\nCjsSchema.define(Tr2ShaderPermutation, {\r\n className: \"Tr2ShaderPermutation\",\r\n family: \"resources\"\r\n});\r\nCjsSchema.decorateField(Tr2ShaderPermutation, \"name\", type.string);\r\nCjsSchema.decorateField(Tr2ShaderPermutation, \"options\", type.list(\"BlueSharedString\"));\r\nCjsSchema.decorateField(Tr2ShaderPermutation, \"defaultOption\", type.uint64);\r\nCjsSchema.decorateField(Tr2ShaderPermutation, \"description\", type.string);\r\nCjsSchema.decorateField(Tr2ShaderPermutation, \"type\", type.uint8);\r\n"],"names":["Tr2ShaderPermutation","CjsModel","name","options","defaultOption","description","type","CjsSchema","define","className","family","decorateField","string","list","uint64","uint8"],"mappings":";;;AAAA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,oBAAoB,SAASC,QAAQ,CAClD;AAEE;AACAC,EAAAA,IAAI,GAAG,EAAE;;AAET;AACAC,EAAAA,OAAO,GAAG,EAAE;;AAEZ;AACAC,EAAAA,aAAa,GAAG,CAAC;;AAEjB;AACAC,EAAAA,WAAW,GAAG,EAAE;;AAEhB;AACAC,EAAAA,IAAI,GAAG,CAAC;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACAC,SAAS,CAACC,MAAM,CAACR,oBAAoB,EAAE;AACrCS,EAAAA,SAAS,EAAE,sBAAsB;AACjCC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;AACFH,SAAS,CAACI,aAAa,CAACX,oBAAoB,EAAE,MAAM,EAAEM,IAAI,CAACM,MAAM,CAAC;AAClEL,SAAS,CAACI,aAAa,CAACX,oBAAoB,EAAE,SAAS,EAAEM,IAAI,CAACO,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvFN,SAAS,CAACI,aAAa,CAACX,oBAAoB,EAAE,eAAe,EAAEM,IAAI,CAACQ,MAAM,CAAC;AAC3EP,SAAS,CAACI,aAAa,CAACX,oBAAoB,EAAE,aAAa,EAAEM,IAAI,CAACM,MAAM,CAAC;AACzEL,SAAS,CAACI,aAAa,CAACX,oBAAoB,EAAE,MAAM,EAAEM,IAAI,CAACS,KAAK,CAAC;;;;"}
@@ -0,0 +1,17 @@
1
+ export { GetGlobalEffectOptions, ModifyGlobalEffectOptions, Tr2EffectRes } from './Tr2EffectRes.js';
2
+ export { Tr2MaterialArea } from './Tr2MaterialArea.js';
3
+ export { Tr2MaterialMesh } from './Tr2MaterialMesh.js';
4
+ export { Tr2MaterialRes } from './Tr2MaterialRes.js';
5
+ export { Tr2Shader } from './Tr2Shader.js';
6
+ export { Tr2ShaderPermutation } from './Tr2ShaderPermutation.js';
7
+ export { Tr2EffectConstant } from './reflection/Tr2EffectConstant.js';
8
+ export { Tr2EffectDefine } from './reflection/Tr2EffectDefine.js';
9
+ export { Tr2EffectDescription } from './reflection/Tr2EffectDescription.js';
10
+ export { Tr2EffectLibrary } from './reflection/Tr2EffectLibrary.js';
11
+ export { Tr2EffectParameterAnnotation } from './reflection/Tr2EffectParameterAnnotation.js';
12
+ export { Tr2EffectResource } from './reflection/Tr2EffectResource.js';
13
+ export { Tr2EffectStageInput } from './reflection/Tr2EffectStageInput.js';
14
+ export { Tr2EffectTechnique } from './reflection/Tr2EffectTechnique.js';
15
+ export { Tr2Pass } from './reflection/Tr2Pass.js';
16
+ export { Tr2SamplerSetup } from './sampler/Tr2SamplerSetup.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ import { copyBytes } from '@carbonenginejs/runtime-utils/bytes';
2
+ import { isUint32, isPlainObject } from '@carbonenginejs/runtime-utils/is';
3
+ import { cloneCarbonValue } from '@carbonenginejs/runtime-utils/types';
4
+
5
+ /** Require one of Carbon's six authored shader-stage indices. */
6
+ function requirePortableStageType(value) {
7
+ if (!isUint32(value)) {
8
+ throw new RangeError("Portable shader stage type must fit uint32");
9
+ }
10
+ if (value >= 6) {
11
+ throw new RangeError("Portable shader stage type must be in [0, 5]");
12
+ }
13
+ return value;
14
+ }
15
+
16
+ /** Clone and validate one owned source-program payload. */
17
+ function clonePortableSourceProgram(value, expectedKind) {
18
+ if (!isPlainObject(value)) {
19
+ throw new TypeError(`Portable ${expectedKind} source program must be an object`);
20
+ }
21
+ if (value.kind !== expectedKind) {
22
+ throw new Error(`Portable source program kind "${value.kind}" is not "${expectedKind}"`);
23
+ }
24
+ if (!(value.bytes instanceof Uint8Array)) {
25
+ throw new TypeError(`Portable ${expectedKind} source program must be Uint8Array bytes`);
26
+ }
27
+ const result = cloneCarbonValue(value);
28
+ result.bytes = copyBytes(value.bytes);
29
+ return result;
30
+ }
31
+
32
+ export { clonePortableSourceProgram, requirePortableStageType };
33
+ //# sourceMappingURL=portable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable.js","sources":["../../../../src/resource/shader/portable.js"],"sourcesContent":["import { copyBytes } from \"@carbonenginejs/runtime-utils/bytes\";\nimport {\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\nimport { cloneCarbonValue } from \"@carbonenginejs/runtime-utils/types\";\n\n/** Require one of Carbon's six authored shader-stage indices. */\nexport function requirePortableStageType(value)\n{\n if (!isUint32(value))\n {\n throw new RangeError(\"Portable shader stage type must fit uint32\");\n }\n if (value >= 6)\n {\n throw new RangeError(\"Portable shader stage type must be in [0, 5]\");\n }\n return value;\n}\n\n/** Clone and validate one owned source-program payload. */\nexport function clonePortableSourceProgram(value, expectedKind)\n{\n if (!isPlainObject(value))\n {\n throw new TypeError(\n `Portable ${expectedKind} source program must be an object`\n );\n }\n if (value.kind !== expectedKind)\n {\n throw new Error(\n `Portable source program kind \"${value.kind}\" is not \"${expectedKind}\"`\n );\n }\n if (!(value.bytes instanceof Uint8Array))\n {\n throw new TypeError(\n `Portable ${expectedKind} source program must be Uint8Array bytes`\n );\n }\n\n const result = cloneCarbonValue(value);\n result.bytes = copyBytes(value.bytes);\n return result;\n}\n"],"names":["requirePortableStageType","value","isUint32","RangeError","clonePortableSourceProgram","expectedKind","isPlainObject","TypeError","kind","Error","bytes","Uint8Array","result","cloneCarbonValue","copyBytes"],"mappings":";;;;AAOA;AACO,SAASA,wBAAwBA,CAACC,KAAK,EAC9C;AACE,EAAA,IAAI,CAACC,QAAQ,CAACD,KAAK,CAAC,EACpB;AACE,IAAA,MAAM,IAAIE,UAAU,CAAC,4CAA4C,CAAC;AACpE,EAAA;EACA,IAAIF,KAAK,IAAI,CAAC,EACd;AACE,IAAA,MAAM,IAAIE,UAAU,CAAC,8CAA8C,CAAC;AACtE,EAAA;AACA,EAAA,OAAOF,KAAK;AACd;;AAEA;AACO,SAASG,0BAA0BA,CAACH,KAAK,EAAEI,YAAY,EAC9D;AACE,EAAA,IAAI,CAACC,aAAa,CAACL,KAAK,CAAC,EACzB;AACE,IAAA,MAAM,IAAIM,SAAS,CACjB,CAAA,SAAA,EAAYF,YAAY,mCAC1B,CAAC;AACH,EAAA;AACA,EAAA,IAAIJ,KAAK,CAACO,IAAI,KAAKH,YAAY,EAC/B;IACE,MAAM,IAAII,KAAK,CACb,CAAA,8BAAA,EAAiCR,KAAK,CAACO,IAAI,CAAA,UAAA,EAAaH,YAAY,CAAA,CAAA,CACtE,CAAC;AACH,EAAA;AACA,EAAA,IAAI,EAAEJ,KAAK,CAACS,KAAK,YAAYC,UAAU,CAAC,EACxC;AACE,IAAA,MAAM,IAAIJ,SAAS,CACjB,CAAA,SAAA,EAAYF,YAAY,0CAC1B,CAAC;AACH,EAAA;AAEA,EAAA,MAAMO,MAAM,GAAGC,gBAAgB,CAACZ,KAAK,CAAC;EACtCW,MAAM,CAACF,KAAK,GAAGI,SAAS,CAACb,KAAK,CAACS,KAAK,CAAC;AACrC,EAAA,OAAOE,MAAM;AACf;;;;"}
@@ -0,0 +1,135 @@
1
+ import { CjsSchema } from '@carbonenginejs/runtime-utils/schema';
2
+ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
+ import { isPlainObject, isUint32 } from '@carbonenginejs/runtime-utils/is';
4
+
5
+ // Source: trinity/trinity/Shader/Tr2EffectDescription.h
6
+
7
+ /** Reflected shader constant metadata. */
8
+ class Tr2EffectConstant extends CjsModel {
9
+ /** name (BlueSharedString) */
10
+ name = "";
11
+
12
+ /** offset (unsigned) */
13
+ offset = 0;
14
+
15
+ /** size (unsigned) */
16
+ size = 0;
17
+
18
+ /** type (Type - enum Type) */
19
+ type = 0;
20
+
21
+ /** dimension (unsigned) */
22
+ dimension = 0;
23
+
24
+ /** elements (unsigned) */
25
+ elements = 0;
26
+
27
+ /** isSRGB (bool) */
28
+ isSRGB = false;
29
+
30
+ /** isAutoregister (bool) */
31
+ isAutoregister = false;
32
+
33
+ /**
34
+ * Build one constant from its portable JSON reflection record.
35
+ *
36
+ * @param {object} value Portable constant record.
37
+ * @returns {Tr2EffectConstant} Reflected constant.
38
+ */
39
+ static fromPortable(value) {
40
+ if (!isPlainObject(value)) {
41
+ throw new TypeError("Portable effect constant must be an object");
42
+ }
43
+ if (!isUint32(value.offset)) {
44
+ throw new RangeError("Portable constant offset must fit uint32");
45
+ }
46
+ if (!isUint32(value.size)) {
47
+ throw new RangeError("Portable constant size must fit uint32");
48
+ }
49
+ if (!isUint32(value.type)) {
50
+ throw new RangeError("Portable constant type must fit uint32");
51
+ }
52
+ if (!isUint32(value.dimension)) {
53
+ throw new RangeError("Portable constant dimension must fit uint32");
54
+ }
55
+ if (!isUint32(value.elements)) {
56
+ throw new RangeError("Portable constant element count must fit uint32");
57
+ }
58
+ const constant = new this();
59
+ constant.name = String(value.name ?? "");
60
+ constant.offset = value.offset;
61
+ constant.size = value.size;
62
+ constant.type = value.type;
63
+ constant.dimension = value.dimension;
64
+ constant.elements = value.elements;
65
+ constant.isSRGB = !!value.isSRGB;
66
+ constant.isAutoregister = !!value.isAutoregister;
67
+ return constant;
68
+ }
69
+ static Type = Object.freeze({
70
+ FLOAT: 0,
71
+ INT: 1,
72
+ UINT: 2,
73
+ BOOL: 3,
74
+ OTHER: 4
75
+ });
76
+ }
77
+
78
+ // Declared imperatively rather than with decorators, so this module stays plain
79
+ // ESM that loads from source without a transform, which lets its tests import
80
+ // source instead of build output.
81
+ //
82
+ // Field order matters: it drives GetValues() export order. Statics belong in
83
+ // `methods` here rather than in a decorateMethod() call, which targets the
84
+ // prototype and would register a static as an instance field.
85
+ CjsSchema.define(Tr2EffectConstant, {
86
+ className: "Tr2EffectConstant",
87
+ family: "shader",
88
+ fields: [{
89
+ name: "name",
90
+ type: {
91
+ kind: "string"
92
+ }
93
+ }, {
94
+ name: "offset",
95
+ type: {
96
+ kind: "uint32"
97
+ }
98
+ }, {
99
+ name: "size",
100
+ type: {
101
+ kind: "uint32"
102
+ }
103
+ }, {
104
+ name: "type",
105
+ enum: {
106
+ enumType: "Type"
107
+ },
108
+ type: {
109
+ kind: "int32"
110
+ }
111
+ }, {
112
+ name: "dimension",
113
+ type: {
114
+ kind: "uint32"
115
+ }
116
+ }, {
117
+ name: "elements",
118
+ type: {
119
+ kind: "uint32"
120
+ }
121
+ }, {
122
+ name: "isSRGB",
123
+ type: {
124
+ kind: "boolean"
125
+ }
126
+ }, {
127
+ name: "isAutoregister",
128
+ type: {
129
+ kind: "boolean"
130
+ }
131
+ }]
132
+ });
133
+
134
+ export { Tr2EffectConstant };
135
+ //# sourceMappingURL=Tr2EffectConstant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2EffectConstant.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectConstant.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { CjsSchema } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport {\n isPlainObject,\n isUint32\n} from \"@carbonenginejs/runtime-utils/is\";\n\n/** Reflected shader constant metadata. */\nexport class Tr2EffectConstant extends CjsModel\n{\n\n /** name (BlueSharedString) */\n name = \"\";\n\n /** offset (unsigned) */\n offset = 0;\n\n /** size (unsigned) */\n size = 0;\n\n /** type (Type - enum Type) */\n type = 0;\n\n /** dimension (unsigned) */\n dimension = 0;\n\n /** elements (unsigned) */\n elements = 0;\n\n /** isSRGB (bool) */\n isSRGB = false;\n\n /** isAutoregister (bool) */\n isAutoregister = false;\n\n /**\n * Build one constant from its portable JSON reflection record.\n *\n * @param {object} value Portable constant record.\n * @returns {Tr2EffectConstant} Reflected constant.\n */\n static fromPortable(value)\n {\n if (!isPlainObject(value))\n {\n throw new TypeError(\"Portable effect constant must be an object\");\n }\n if (!isUint32(value.offset))\n {\n throw new RangeError(\"Portable constant offset must fit uint32\");\n }\n if (!isUint32(value.size))\n {\n throw new RangeError(\"Portable constant size must fit uint32\");\n }\n if (!isUint32(value.type))\n {\n throw new RangeError(\"Portable constant type must fit uint32\");\n }\n if (!isUint32(value.dimension))\n {\n throw new RangeError(\"Portable constant dimension must fit uint32\");\n }\n if (!isUint32(value.elements))\n {\n throw new RangeError(\n \"Portable constant element count must fit uint32\"\n );\n }\n\n const constant = new this();\n constant.name = String(value.name ?? \"\");\n constant.offset = value.offset;\n constant.size = value.size;\n constant.type = value.type;\n constant.dimension = value.dimension;\n constant.elements = value.elements;\n constant.isSRGB = !!value.isSRGB;\n constant.isAutoregister = !!value.isAutoregister;\n return constant;\n }\n\n static Type = Object.freeze({\n FLOAT: 0,\n INT: 1,\n UINT: 2,\n BOOL: 3,\n OTHER: 4\n });\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays plain\n// ESM that loads from source without a transform, which lets its tests import\n// source instead of build output.\n//\n// Field order matters: it drives GetValues() export order. Statics belong in\n// `methods` here rather than in a decorateMethod() call, which targets the\n// prototype and would register a static as an instance field.\nCjsSchema.define(Tr2EffectConstant, {\n className: \"Tr2EffectConstant\",\n family: \"shader\",\n fields: [\n { name: \"name\", type: { kind: \"string\" } },\n { name: \"offset\", type: { kind: \"uint32\" } },\n { name: \"size\", type: { kind: \"uint32\" } },\n { name: \"type\", enum: { enumType: \"Type\" }, type: { kind: \"int32\" } },\n { name: \"dimension\", type: { kind: \"uint32\" } },\n { name: \"elements\", type: { kind: \"uint32\" } },\n { name: \"isSRGB\", type: { kind: \"boolean\" } },\n { name: \"isAutoregister\", type: { kind: \"boolean\" } }\n ]\n});\n"],"names":["Tr2EffectConstant","CjsModel","name","offset","size","type","dimension","elements","isSRGB","isAutoregister","fromPortable","value","isPlainObject","TypeError","isUint32","RangeError","constant","String","Type","Object","freeze","FLOAT","INT","UINT","BOOL","OTHER","CjsSchema","define","className","family","fields","kind","enum","enumType"],"mappings":";;;;AAAA;;AAQA;AACO,MAAMA,iBAAiB,SAASC,QAAQ,CAC/C;AAEE;AACAC,EAAAA,IAAI,GAAG,EAAE;;AAET;AACAC,EAAAA,MAAM,GAAG,CAAC;;AAEV;AACAC,EAAAA,IAAI,GAAG,CAAC;;AAER;AACAC,EAAAA,IAAI,GAAG,CAAC;;AAER;AACAC,EAAAA,SAAS,GAAG,CAAC;;AAEb;AACAC,EAAAA,QAAQ,GAAG,CAAC;;AAEZ;AACAC,EAAAA,MAAM,GAAG,KAAK;;AAEd;AACAC,EAAAA,cAAc,GAAG,KAAK;;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,4CAA4C,CAAC;AACnE,IAAA;AACA,IAAA,IAAI,CAACC,QAAQ,CAACH,KAAK,CAACR,MAAM,CAAC,EAC3B;AACE,MAAA,MAAM,IAAIY,UAAU,CAAC,0CAA0C,CAAC;AAClE,IAAA;AACA,IAAA,IAAI,CAACD,QAAQ,CAACH,KAAK,CAACP,IAAI,CAAC,EACzB;AACE,MAAA,MAAM,IAAIW,UAAU,CAAC,wCAAwC,CAAC;AAChE,IAAA;AACA,IAAA,IAAI,CAACD,QAAQ,CAACH,KAAK,CAACN,IAAI,CAAC,EACzB;AACE,MAAA,MAAM,IAAIU,UAAU,CAAC,wCAAwC,CAAC;AAChE,IAAA;AACA,IAAA,IAAI,CAACD,QAAQ,CAACH,KAAK,CAACL,SAAS,CAAC,EAC9B;AACE,MAAA,MAAM,IAAIS,UAAU,CAAC,6CAA6C,CAAC;AACrE,IAAA;AACA,IAAA,IAAI,CAACD,QAAQ,CAACH,KAAK,CAACJ,QAAQ,CAAC,EAC7B;AACE,MAAA,MAAM,IAAIQ,UAAU,CAClB,iDACF,CAAC;AACH,IAAA;AAEA,IAAA,MAAMC,QAAQ,GAAG,IAAI,IAAI,EAAE;IAC3BA,QAAQ,CAACd,IAAI,GAAGe,MAAM,CAACN,KAAK,CAACT,IAAI,IAAI,EAAE,CAAC;AACxCc,IAAAA,QAAQ,CAACb,MAAM,GAAGQ,KAAK,CAACR,MAAM;AAC9Ba,IAAAA,QAAQ,CAACZ,IAAI,GAAGO,KAAK,CAACP,IAAI;AAC1BY,IAAAA,QAAQ,CAACX,IAAI,GAAGM,KAAK,CAACN,IAAI;AAC1BW,IAAAA,QAAQ,CAACV,SAAS,GAAGK,KAAK,CAACL,SAAS;AACpCU,IAAAA,QAAQ,CAACT,QAAQ,GAAGI,KAAK,CAACJ,QAAQ;AAClCS,IAAAA,QAAQ,CAACR,MAAM,GAAG,CAAC,CAACG,KAAK,CAACH,MAAM;AAChCQ,IAAAA,QAAQ,CAACP,cAAc,GAAG,CAAC,CAACE,KAAK,CAACF,cAAc;AAChD,IAAA,OAAOO,QAAQ;AACjB,EAAA;AAEA,EAAA,OAAOE,IAAI,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC1BC,IAAAA,KAAK,EAAE,CAAC;AACRC,IAAAA,GAAG,EAAE,CAAC;AACNC,IAAAA,IAAI,EAAE,CAAC;AACPC,IAAAA,IAAI,EAAE,CAAC;AACPC,IAAAA,KAAK,EAAE;AACT,GAAC,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,SAAS,CAACC,MAAM,CAAC3B,iBAAiB,EAAE;AAClC4B,EAAAA,SAAS,EAAE,mBAAmB;AAC9BC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,MAAM,EAAE,CACN;AAAE5B,IAAAA,IAAI,EAAE,MAAM;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAS;AAAE,GAAC,EAC1C;AAAE7B,IAAAA,IAAI,EAAE,QAAQ;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAS;AAAE,GAAC,EAC5C;AAAE7B,IAAAA,IAAI,EAAE,MAAM;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAS;AAAE,GAAC,EAC1C;AAAE7B,IAAAA,IAAI,EAAE,MAAM;AAAE8B,IAAAA,IAAI,EAAE;AAAEC,MAAAA,QAAQ,EAAE;KAAQ;AAAE5B,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAQ;AAAE,GAAC,EACrE;AAAE7B,IAAAA,IAAI,EAAE,WAAW;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAS;AAAE,GAAC,EAC/C;AAAE7B,IAAAA,IAAI,EAAE,UAAU;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAS;AAAE,GAAC,EAC9C;AAAE7B,IAAAA,IAAI,EAAE,QAAQ;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAU;AAAE,GAAC,EAC7C;AAAE7B,IAAAA,IAAI,EAAE,gBAAgB;AAAEG,IAAAA,IAAI,EAAE;AAAE0B,MAAAA,IAAI,EAAE;AAAU;GAAG;AAEzD,CAAC,CAAC;;;;"}
@@ -0,0 +1,28 @@
1
+ import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
2
+ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
+
4
+ // Source: trinity/trinity/Shader/Tr2EffectDescription.h
5
+
6
+ /** Effect compile define retained as source metadata. */
7
+ class Tr2EffectDefine extends CjsModel {
8
+ /** name (const char*) */
9
+ name = "";
10
+
11
+ /** value (const char*) */
12
+ value = "";
13
+ }
14
+
15
+ // Declared imperatively rather than with decorators, so this module stays
16
+ // plain ESM that loads from source without a transform. The decorator
17
+ // expressions are reused verbatim, so the registered metadata is identical.
18
+ // Statics belong in `methods`: decorateMethod targets the prototype and
19
+ // would register a static as an instance field.
20
+ CjsSchema.define(Tr2EffectDefine, {
21
+ className: "Tr2EffectDefine",
22
+ family: "shader"
23
+ });
24
+ CjsSchema.decorateField(Tr2EffectDefine, "name", type.string);
25
+ CjsSchema.decorateField(Tr2EffectDefine, "value", type.string);
26
+
27
+ export { Tr2EffectDefine };
28
+ //# sourceMappingURL=Tr2EffectDefine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2EffectDefine.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectDefine.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { CjsSchema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\n\n/** Effect compile define retained as source metadata. */\nexport class Tr2EffectDefine extends CjsModel\n{\n\n /** name (const char*) */\n name = \"\";\n\n /** value (const char*) */\n 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(Tr2EffectDefine, {\n className: \"Tr2EffectDefine\",\n family: \"shader\"\n});\nCjsSchema.decorateField(Tr2EffectDefine, \"name\", type.string);\nCjsSchema.decorateField(Tr2EffectDefine, \"value\", type.string);\n"],"names":["Tr2EffectDefine","CjsModel","name","value","CjsSchema","define","className","family","decorateField","type","string"],"mappings":";;;AAAA;;AAIA;AACO,MAAMA,eAAe,SAASC,QAAQ,CAC7C;AAEE;AACAC,EAAAA,IAAI,GAAG,EAAE;;AAET;AACAC,EAAAA,KAAK,GAAG,EAAE;AAEZ;;AAEA;AACA;AACA;AACA;AACA;AACAC,SAAS,CAACC,MAAM,CAACL,eAAe,EAAE;AAChCM,EAAAA,SAAS,EAAE,iBAAiB;AAC5BC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAC;AACFH,SAAS,CAACI,aAAa,CAACR,eAAe,EAAE,MAAM,EAAES,IAAI,CAACC,MAAM,CAAC;AAC7DN,SAAS,CAACI,aAAa,CAACR,eAAe,EAAE,OAAO,EAAES,IAAI,CAACC,MAAM,CAAC;;;;"}