@carbonenginejs/runtime-resource 0.12.0 → 0.12.1

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 (170) hide show
  1. package/dist/CjsResMan.js +4 -4
  2. package/dist/CjsResMan.js.map +1 -1
  3. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -4
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  5. package/dist/format/CjsByteReader.js +310 -0
  6. package/dist/format/CjsByteReader.js.map +1 -0
  7. package/dist/format/CjsByteWriter.js +242 -0
  8. package/dist/format/CjsByteWriter.js.map +1 -0
  9. package/dist/format/CjsFormatError.js +41 -0
  10. package/dist/format/CjsFormatError.js.map +1 -0
  11. package/dist/format/CjsStringTable.js +268 -0
  12. package/dist/format/CjsStringTable.js.map +1 -0
  13. package/dist/format/carbonEffect/CjsCarbonEffectReader.js +361 -0
  14. package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -0
  15. package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -0
  16. package/dist/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -0
  17. package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +372 -0
  18. package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +1 -0
  19. package/dist/format/carbonEffect/carbonEffectBackendBlock.js +427 -0
  20. package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -0
  21. package/dist/format/carbonEffect/carbonEffectRecords.js +955 -0
  22. package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -0
  23. package/dist/format/compareUtf8.js +36 -0
  24. package/dist/format/compareUtf8.js.map +1 -0
  25. package/dist/format/index.js +11 -0
  26. package/dist/format/index.js.map +1 -0
  27. package/dist/formats/bnk/CjsBnkFormat.js +10 -4
  28. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  29. package/dist/formats/bnk/core/eventAction.js +305 -0
  30. package/dist/formats/bnk/core/eventAction.js.map +1 -0
  31. package/dist/formats/bnk/core/helpers.js +11 -2
  32. package/dist/formats/bnk/core/helpers.js.map +1 -1
  33. package/dist/formats/bnk/core/nodeBase.js +532 -0
  34. package/dist/formats/bnk/core/nodeBase.js.map +1 -0
  35. package/dist/formats/bnk/core/sfxNodes.js +252 -152
  36. package/dist/formats/bnk/core/sfxNodes.js.map +1 -1
  37. package/dist/formats/hlsl/core/HlslReader.js +7 -257
  38. package/dist/formats/hlsl/core/HlslReader.js.map +1 -1
  39. package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +781 -0
  40. package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -0
  41. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +21 -1
  42. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
  43. package/dist/formats/index.js +1 -1
  44. package/dist/formats/webgl/core/cewg/CewgPackage.js +2 -1
  45. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -1
  46. package/dist/formats/webgl/core/cewg/binary.js +11 -93
  47. package/dist/formats/webgl/core/cewg/binary.js.map +1 -1
  48. package/dist/formats/webgl/core/effectPackage.js +1 -1
  49. package/dist/formats/webgpu/CjsWebgpuFormat.js +4 -23
  50. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  51. package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +197 -0
  52. package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -0
  53. package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js +368 -0
  54. package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +1 -0
  55. package/dist/formats/webgpu/core/cewgpu/containerViews.js +355 -0
  56. package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +1 -0
  57. package/dist/formats/webgpu/core/cewgpu/validateContainer.js +90 -0
  58. package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +1 -0
  59. package/dist/formats/webgpu/core/effectBackendBodySet.js +21 -20
  60. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
  61. package/dist/formats/webgpu/core/helpers.js +87 -92
  62. package/dist/formats/webgpu/core/helpers.js.map +1 -1
  63. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +14 -13
  64. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -1
  65. package/dist/formats/webgpu/core/ir/inferValueTypes.js +10 -8
  66. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -1
  67. package/dist/formats/webgpu/core/packageEffect.js +94 -9
  68. package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
  69. package/dist/formats/webgpu/core/packageMetadata.js +10 -1
  70. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -1
  71. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +17 -15
  72. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -1
  73. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +13 -12
  74. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -1
  75. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +9 -8
  76. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  77. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +23 -22
  78. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -1
  79. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +46 -44
  80. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -1
  81. package/dist/resource/CjsResource.js +700 -684
  82. package/dist/resource/CjsResource.js.map +1 -1
  83. package/dist/resource/Tr2LightProfileRes.js +18 -27
  84. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  85. package/dist/resource/audio/CjsAudioBufferRes.js +2 -2
  86. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -1
  87. package/dist/resource/audio/CjsAudioRes.js +2 -2
  88. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  89. package/dist/resource/geometry/TriGeometryRes.js +605 -586
  90. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  91. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +21 -30
  92. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
  93. package/dist/resource/geometry/granny/TriGrannyRes.js +21 -30
  94. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
  95. package/dist/resource/shader/Tr2EffectRes.js +9 -7
  96. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  97. package/dist/resource/shader/Tr2MaterialArea.js +5 -3
  98. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  99. package/dist/resource/shader/Tr2MaterialMesh.js +4 -2
  100. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  101. package/dist/resource/shader/Tr2MaterialRes.js +5 -3
  102. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  103. package/dist/resource/shader/Tr2Shader.js +26 -21
  104. package/dist/resource/shader/Tr2Shader.js.map +1 -1
  105. package/dist/resource/shader/Tr2ShaderPermutation.js +8 -6
  106. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
  107. package/dist/resource/shader/reflection/Tr2EffectDefine.js +5 -3
  108. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
  109. package/dist/resource/shader/reflection/Tr2EffectDescription.js +5 -3
  110. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  111. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +17 -15
  112. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  113. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +11 -9
  114. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  115. package/dist/resource/shader/reflection/Tr2EffectResource.js +8 -6
  116. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  117. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +15 -13
  118. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  119. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +7 -5
  120. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  121. package/dist/resource/shader/reflection/Tr2Pass.js +11 -9
  122. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  123. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +8 -6
  124. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  125. package/dist/resource/texture/CjsTextureArrayRes.js +400 -411
  126. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  127. package/dist/resource/texture/Tr2ImageRes.js +99 -95
  128. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  129. package/dist/resource/texture/TriTextureRes.js +312 -273
  130. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  131. package/docs/README.md +13 -1
  132. package/docs/architecture.md +3 -3
  133. package/docs/concepts/resource-lifecycle.md +9 -2
  134. package/docs/concepts/shader-resource-model.md +114 -0
  135. package/docs/concepts/writing-an-engine-adapter.md +115 -0
  136. package/docs/formats/README.md +24 -1
  137. package/docs/formats/carbon-effect-container.md +452 -0
  138. package/docs/formats/dxbc/reference/classes/README.md +5 -72
  139. package/docs/formats/hlsl/reference/api.md +5 -4
  140. package/docs/formats/hlsl/reference/classes/README.md +6 -11
  141. package/docs/formats/provenance.md +23 -13
  142. package/docs/formats/webgl/reference/classes/README.md +5 -92
  143. package/docs/formats/webgpu/README.md +19 -16
  144. package/docs/formats/webgpu/architecture.md +15 -12
  145. package/docs/formats/webgpu/formats/cewgpu.md +175 -438
  146. package/docs/formats/webgpu/guides/effect-packaging.md +132 -140
  147. package/docs/formats/webgpu/reference/api.md +131 -131
  148. package/docs/formats/webgpu/reference/classes/README.md +5 -62
  149. package/docs/formats/webgpu/reference/wgsl-compatibility.md +146 -45
  150. package/docs/formats/wwise.md +34 -8
  151. package/docs/reference/classes/core.md +80 -0
  152. package/docs/reference/classes/formats.md +18 -28
  153. package/docs/reference/events.md +25 -0
  154. package/docs/reference/motherlode-cache.md +22 -8
  155. package/docs/reference/workers.md +5 -5
  156. package/docs/roadmap.md +61 -41
  157. package/package.json +2 -1
  158. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +0 -415
  159. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +0 -1
  160. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +0 -100
  161. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +0 -1
  162. package/dist/formats/webgpu/core/cewgpu/binary.js +0 -93
  163. package/dist/formats/webgpu/core/cewgpu/binary.js.map +0 -1
  164. package/dist/formats/webgpu/core/cewgpu/tags.js +0 -17
  165. package/dist/formats/webgpu/core/cewgpu/tags.js.map +0 -1
  166. package/dist/formats/webgpu/core/effectPackageValidation.js +0 -1078
  167. package/dist/formats/webgpu/core/effectPackageValidation.js.map +0 -1
  168. package/docs/formats/hlsl/reference/classes/carbon-compatibility.md +0 -66
  169. package/docs/formats/hlsl/reference/classes/public-api.md +0 -26
  170. package/docs/formats/hlsl/reference/classes/tr2-effect-model.md +0 -150
@@ -1,100 +0,0 @@
1
- import { validateCewgpuChunkTag } from './tags.js';
2
-
3
- const CEWGPU_MAGIC = "CWGP";
4
- const CEWGPU_VERSION = 1;
5
- const textEncoder = new TextEncoder();
6
-
7
- /**
8
- * Builds CarbonEngineJS CEWGPU package bytes.
9
- */
10
- class CewgpuPackageBuilder {
11
- /**
12
- * Builds a CEWGPU v1 package from ordered chunks.
13
- *
14
- * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.
15
- * @returns {Uint8Array} Package bytes.
16
- */
17
- static build(chunks) {
18
- const tags = new Set();
19
- const encodedChunks = chunks.map(([tag, value]) => ({
20
- tag: normalizeTag(tag, tags),
21
- bytes: normalizeChunkValue(value)
22
- }));
23
- const size = CEWGPU_MAGIC.length + 8 + encodedChunks.reduce((sum, chunk) => sum + 8 + chunk.bytes.length, 0);
24
- const out = new Uint8Array(size);
25
- const view = new DataView(out.buffer, out.byteOffset, out.byteLength);
26
- let offset = 0;
27
- offset = writeAscii(out, offset, CEWGPU_MAGIC);
28
- view.setUint32(offset, CEWGPU_VERSION, true);
29
- offset += 4;
30
- view.setUint32(offset, encodedChunks.length, true);
31
- offset += 4;
32
- for (const chunk of encodedChunks) {
33
- offset = writeAscii(out, offset, chunk.tag);
34
- view.setUint32(offset, chunk.bytes.length, true);
35
- offset += 4;
36
- out.set(chunk.bytes, offset);
37
- offset += chunk.bytes.length;
38
- }
39
- return out;
40
- }
41
- }
42
-
43
- /**
44
- * Normalizes a package chunk tag.
45
- *
46
- * @param {string} tag Four-character chunk tag.
47
- * @param {Set<string>} tags Tags already present in the package.
48
- * @returns {string} Normalized tag.
49
- */
50
- function normalizeTag(tag, tags) {
51
- const normalized = validateCewgpuChunkTag(tag);
52
- if (tags.has(normalized)) {
53
- throw new Error(`CEWGPU package contains duplicate chunk tag ${normalized}`);
54
- }
55
- tags.add(normalized);
56
- return normalized;
57
- }
58
-
59
- /**
60
- * Normalizes a package chunk payload.
61
- *
62
- * @param {string|object|Uint8Array|ArrayBuffer|ArrayBufferView} value Chunk payload.
63
- * @returns {Uint8Array} Payload bytes.
64
- */
65
- function normalizeChunkValue(value) {
66
- if (typeof value === "string") {
67
- return textEncoder.encode(value);
68
- }
69
- if (value instanceof Uint8Array) {
70
- return value;
71
- }
72
- if (value instanceof ArrayBuffer) {
73
- return new Uint8Array(value);
74
- }
75
- if (ArrayBuffer.isView(value)) {
76
- return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
77
- }
78
- if (value && typeof value === "object") {
79
- return textEncoder.encode(`${JSON.stringify(value)}\n`);
80
- }
81
- throw new Error("Unsupported CEWGPU chunk value");
82
- }
83
-
84
- /**
85
- * Writes ASCII text into a byte buffer.
86
- *
87
- * @param {Uint8Array} out Output buffer.
88
- * @param {number} offset Current byte offset.
89
- * @param {string} value ASCII text.
90
- * @returns {number} Updated byte offset.
91
- */
92
- function writeAscii(out, offset, value) {
93
- for (let i = 0; i < value.length; i += 1) {
94
- out[offset + i] = value.charCodeAt(i) & 0xff;
95
- }
96
- return offset + value.length;
97
- }
98
-
99
- export { CewgpuPackageBuilder };
100
- //# sourceMappingURL=CewgpuPackageBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CewgpuPackageBuilder.js","sources":["../../../../../../src/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js"],"sourcesContent":["import { validateCewgpuChunkTag } from \"./tags.js\";\n\nconst CEWGPU_MAGIC = \"CWGP\";\nconst CEWGPU_VERSION = 1;\nconst textEncoder = new TextEncoder();\n\n/**\n * Builds CarbonEngineJS CEWGPU package bytes.\n */\nexport class CewgpuPackageBuilder\n{\n /**\n * Builds a CEWGPU v1 package from ordered chunks.\n *\n * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.\n * @returns {Uint8Array} Package bytes.\n */\n static build(chunks)\n {\n const tags = new Set();\n const encodedChunks = chunks.map(([ tag, value ]) => ({\n tag: normalizeTag(tag, tags),\n bytes: normalizeChunkValue(value)\n }));\n\n const size = CEWGPU_MAGIC.length + 8 + encodedChunks.reduce((sum, chunk) => sum + 8 + chunk.bytes.length, 0);\n const out = new Uint8Array(size);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n let offset = 0;\n\n offset = writeAscii(out, offset, CEWGPU_MAGIC);\n view.setUint32(offset, CEWGPU_VERSION, true);\n offset += 4;\n view.setUint32(offset, encodedChunks.length, true);\n offset += 4;\n\n for (const chunk of encodedChunks)\n {\n offset = writeAscii(out, offset, chunk.tag);\n view.setUint32(offset, chunk.bytes.length, true);\n offset += 4;\n out.set(chunk.bytes, offset);\n offset += chunk.bytes.length;\n }\n\n return out;\n }\n}\n\n/**\n * Normalizes a package chunk tag.\n *\n * @param {string} tag Four-character chunk tag.\n * @param {Set<string>} tags Tags already present in the package.\n * @returns {string} Normalized tag.\n */\nfunction normalizeTag(tag, tags)\n{\n const normalized = validateCewgpuChunkTag(tag);\n if (tags.has(normalized))\n {\n throw new Error(`CEWGPU package contains duplicate chunk tag ${normalized}`);\n }\n tags.add(normalized);\n return normalized;\n}\n\n/**\n * Normalizes a package chunk payload.\n *\n * @param {string|object|Uint8Array|ArrayBuffer|ArrayBufferView} value Chunk payload.\n * @returns {Uint8Array} Payload bytes.\n */\nfunction normalizeChunkValue(value)\n{\n if (typeof value === \"string\")\n {\n return textEncoder.encode(value);\n }\n if (value instanceof Uint8Array)\n {\n return value;\n }\n if (value instanceof ArrayBuffer)\n {\n return new Uint8Array(value);\n }\n if (ArrayBuffer.isView(value))\n {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n if (value && typeof value === \"object\")\n {\n return textEncoder.encode(`${JSON.stringify(value)}\\n`);\n }\n throw new Error(\"Unsupported CEWGPU chunk value\");\n}\n\n/**\n * Writes ASCII text into a byte buffer.\n *\n * @param {Uint8Array} out Output buffer.\n * @param {number} offset Current byte offset.\n * @param {string} value ASCII text.\n * @returns {number} Updated byte offset.\n */\nfunction writeAscii(out, offset, value)\n{\n for (let i = 0; i < value.length; i += 1)\n {\n out[offset + i] = value.charCodeAt(i) & 0xff;\n }\n return offset + value.length;\n}\n"],"names":["CEWGPU_MAGIC","CEWGPU_VERSION","textEncoder","TextEncoder","CewgpuPackageBuilder","build","chunks","tags","Set","encodedChunks","map","tag","value","normalizeTag","bytes","normalizeChunkValue","size","length","reduce","sum","chunk","out","Uint8Array","view","DataView","buffer","byteOffset","byteLength","offset","writeAscii","setUint32","set","normalized","validateCewgpuChunkTag","has","Error","add","encode","ArrayBuffer","isView","JSON","stringify","i","charCodeAt"],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- import { WebgpuReadError } from '../errors.js';
2
-
3
- /**
4
- * Returns a byte view for supported binary inputs without copying when
5
- * possible.
6
- *
7
- * @param {ArrayBuffer|ArrayBufferView|Uint8Array} value Binary payload.
8
- * @returns {Uint8Array} Normalized byte view.
9
- */
10
- function asUint8Array(value) {
11
- if (value instanceof Uint8Array) return value;
12
- if (value instanceof ArrayBuffer) return new Uint8Array(value);
13
- if (ArrayBuffer.isView(value)) {
14
- return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
15
- }
16
- throw new TypeError("Expected an ArrayBuffer or Uint8Array");
17
- }
18
-
19
- /**
20
- * Minimal little-endian binary reader for the flat CEWGPU chunk container.
21
- */
22
- class WebgpuReader {
23
- /**
24
- * Creates a reader over a byte payload.
25
- *
26
- * @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes Source payload.
27
- * @param {object} [options] Reader bounds and metadata.
28
- * @param {number} [options.offset] Initial byte offset.
29
- * @param {number} [options.end] Exclusive end offset.
30
- * @param {string} [options.source] Source name used in error details.
31
- */
32
- constructor(bytes, options = {}) {
33
- this.bytes = asUint8Array(bytes);
34
- this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
35
- this.offset = Number(options.offset) || 0;
36
- this.end = Number.isInteger(options.end) ? options.end : this.bytes.length;
37
- this.source = options.source || "memory";
38
- }
39
-
40
- /**
41
- * Returns the unread byte count inside the configured reader bounds.
42
- *
43
- * @returns {number} Remaining bytes.
44
- */
45
- get remaining() {
46
- return this.end - this.offset;
47
- }
48
-
49
- /**
50
- * Reads a byte range from the payload.
51
- *
52
- * @param {number} size Byte count to read.
53
- * @returns {Uint8Array} View over the read bytes.
54
- */
55
- readRaw(size) {
56
- this._require(size);
57
- const start = this.offset;
58
- this.offset += size;
59
- return this.bytes.subarray(start, start + size);
60
- }
61
-
62
- /**
63
- * Reads a little-endian unsigned 32-bit integer.
64
- *
65
- * @returns {number} Integer value.
66
- */
67
- readUint32() {
68
- this._require(4);
69
- const value = this.view.getUint32(this.offset, true);
70
- this.offset += 4;
71
- return value;
72
- }
73
-
74
- /**
75
- * Ensures the requested read fits inside the configured payload bounds.
76
- *
77
- * @param {number} size Requested byte count.
78
- * @private
79
- */
80
- _require(size) {
81
- if (!Number.isInteger(size) || size < 0 || this.offset + size > this.end) {
82
- throw new WebgpuReadError("Unexpected end of CEWGPU package data", {
83
- source: this.source,
84
- offset: this.offset,
85
- requested: size,
86
- end: this.end
87
- });
88
- }
89
- }
90
- }
91
-
92
- export { WebgpuReader, asUint8Array };
93
- //# sourceMappingURL=binary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binary.js","sources":["../../../../../../src/formats/webgpu/core/cewgpu/binary.js"],"sourcesContent":["import { WebgpuReadError } from \"../errors.js\";\n\n/**\n * Returns a byte view for supported binary inputs without copying when\n * possible.\n *\n * @param {ArrayBuffer|ArrayBufferView|Uint8Array} value Binary payload.\n * @returns {Uint8Array} Normalized byte view.\n */\nexport function asUint8Array(value)\n{\n if (value instanceof Uint8Array) return value;\n if (value instanceof ArrayBuffer) return new Uint8Array(value);\n if (ArrayBuffer.isView(value))\n {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n throw new TypeError(\"Expected an ArrayBuffer or Uint8Array\");\n}\n\n/**\n * Minimal little-endian binary reader for the flat CEWGPU chunk container.\n */\nexport class WebgpuReader\n{\n /**\n * Creates a reader over a byte payload.\n *\n * @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes Source payload.\n * @param {object} [options] Reader bounds and metadata.\n * @param {number} [options.offset] Initial byte offset.\n * @param {number} [options.end] Exclusive end offset.\n * @param {string} [options.source] Source name used in error details.\n */\n constructor(bytes, options = {})\n {\n this.bytes = asUint8Array(bytes);\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\n this.offset = Number(options.offset) || 0;\n this.end = Number.isInteger(options.end) ? options.end : this.bytes.length;\n this.source = options.source || \"memory\";\n }\n\n /**\n * Returns the unread byte count inside the configured reader bounds.\n *\n * @returns {number} Remaining bytes.\n */\n get remaining()\n {\n return this.end - this.offset;\n }\n\n /**\n * Reads a byte range from the payload.\n *\n * @param {number} size Byte count to read.\n * @returns {Uint8Array} View over the read bytes.\n */\n readRaw(size)\n {\n this._require(size);\n const start = this.offset;\n this.offset += size;\n return this.bytes.subarray(start, start + size);\n }\n\n /**\n * Reads a little-endian unsigned 32-bit integer.\n *\n * @returns {number} Integer value.\n */\n readUint32()\n {\n this._require(4);\n const value = this.view.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Ensures the requested read fits inside the configured payload bounds.\n *\n * @param {number} size Requested byte count.\n * @private\n */\n _require(size)\n {\n if (!Number.isInteger(size) || size < 0 || this.offset + size > this.end)\n {\n throw new WebgpuReadError(\"Unexpected end of CEWGPU package data\", {\n source: this.source,\n offset: this.offset,\n requested: size,\n end: this.end\n });\n }\n }\n}\n"],"names":["asUint8Array","value","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","WebgpuReader","constructor","bytes","options","view","DataView","offset","Number","end","isInteger","length","source","remaining","readRaw","size","_require","start","subarray","readUint32","getUint32","WebgpuReadError","requested"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- const PRINTABLE_ASCII_TAG = /^[\x20-\x7e]{4}$/u;
2
-
3
- /**
4
- * Validate one four-byte printable ASCII CEWGPU chunk tag.
5
- *
6
- * @param {string} tag Candidate chunk tag.
7
- * @returns {string} The validated tag.
8
- */
9
- function validateCewgpuChunkTag(tag) {
10
- if (typeof tag !== "string" || !PRINTABLE_ASCII_TAG.test(tag)) {
11
- throw new Error(`CEWGPU chunk tag must be four printable ASCII characters: ${tag}`);
12
- }
13
- return tag;
14
- }
15
-
16
- export { validateCewgpuChunkTag };
17
- //# sourceMappingURL=tags.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tags.js","sources":["../../../../../../src/formats/webgpu/core/cewgpu/tags.js"],"sourcesContent":["const PRINTABLE_ASCII_TAG = /^[\\x20-\\x7e]{4}$/u;\n\n/**\n * Validate one four-byte printable ASCII CEWGPU chunk tag.\n *\n * @param {string} tag Candidate chunk tag.\n * @returns {string} The validated tag.\n */\nexport function validateCewgpuChunkTag(tag)\n{\n if (typeof tag !== \"string\" || !PRINTABLE_ASCII_TAG.test(tag))\n {\n throw new Error(`CEWGPU chunk tag must be four printable ASCII characters: ${tag}`);\n }\n\n return tag;\n}\n"],"names":["PRINTABLE_ASCII_TAG","validateCewgpuChunkTag","tag","test","Error"],"mappings":"AAAA,MAAMA,mBAAmB,GAAG,mBAAmB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CAACC,GAAG,EAC1C;AACI,EAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACF,mBAAmB,CAACG,IAAI,CAACD,GAAG,CAAC,EAC7D;AACI,IAAA,MAAM,IAAIE,KAAK,CAAC,CAAA,0DAAA,EAA6DF,GAAG,EAAE,CAAC;AACvF,EAAA;AAEA,EAAA,OAAOA,GAAG;AACd;;;;"}