@carbonenginejs/runtime-resource 0.11.1 → 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.
- package/dist/CjsResMan.js +4 -4
- package/dist/CjsResMan.js.map +1 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -4
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/format/CjsByteReader.js +310 -0
- package/dist/format/CjsByteReader.js.map +1 -0
- package/dist/format/CjsByteWriter.js +242 -0
- package/dist/format/CjsByteWriter.js.map +1 -0
- package/dist/format/CjsFormatError.js +41 -0
- package/dist/format/CjsFormatError.js.map +1 -0
- package/dist/format/CjsStringTable.js +268 -0
- package/dist/format/CjsStringTable.js.map +1 -0
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +361 -0
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -0
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -0
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -0
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +372 -0
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +427 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectRecords.js +955 -0
- package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -0
- package/dist/format/compareUtf8.js +36 -0
- package/dist/format/compareUtf8.js.map +1 -0
- package/dist/format/index.js +11 -0
- package/dist/format/index.js.map +1 -0
- package/dist/formats/bnk/CjsBnkFormat.js +18 -2
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/eventAction.js +305 -0
- package/dist/formats/bnk/core/eventAction.js.map +1 -0
- package/dist/formats/bnk/core/graph.js +3 -6
- package/dist/formats/bnk/core/graph.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +62 -11
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/nodeBase.js +532 -0
- package/dist/formats/bnk/core/nodeBase.js.map +1 -0
- package/dist/formats/bnk/core/sfxNodes.js +632 -0
- package/dist/formats/bnk/core/sfxNodes.js.map +1 -0
- package/dist/formats/bnk/core/soundbanksInfo.js +59 -51
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
- package/dist/formats/gr2/CjsGr2Format.js +256 -13
- package/dist/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/formats/gr2/core/helpers.js +15 -15
- package/dist/formats/gr2/core/helpers.js.map +1 -1
- package/dist/formats/gr2/core/json.js +1 -1
- package/dist/formats/gr2/core/json.js.map +1 -1
- package/dist/formats/gr2/core/targets.js +1 -1
- package/dist/formats/gr2/core/targets.js.map +1 -1
- package/dist/formats/gr2/index.js +0 -1
- package/dist/formats/gr2/index.js.map +1 -1
- package/dist/formats/hlsl/core/HlslReader.js +7 -257
- package/dist/formats/hlsl/core/HlslReader.js.map +1 -1
- package/dist/formats/hlsl/core/analysis.js +1 -1
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +781 -0
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +21 -1
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
- package/dist/formats/hlsl/index.js +1 -0
- package/dist/formats/hlsl/index.js.map +1 -1
- package/dist/formats/index.js +3 -6
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js +2 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -1
- package/dist/formats/webgl/core/cewg/binary.js +11 -93
- package/dist/formats/webgl/core/cewg/binary.js.map +1 -1
- package/dist/formats/webgl/core/effectPackage.js +4 -1
- package/dist/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/formats/webgl/core/errors.js +3 -3
- package/dist/formats/webgl/core/errors.js.map +1 -1
- package/dist/formats/webgpu/CjsWebgpuFormat.js +4 -23
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +197 -0
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js +368 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/containerViews.js +355 -0
- package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js +90 -0
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +21 -20
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/formats/webgpu/core/helpers.js +87 -92
- package/dist/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +14 -13
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -1
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +10 -8
- package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffect.js +94 -9
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/formats/webgpu/core/packageMetadata.js +10 -1
- package/dist/formats/webgpu/core/packageMetadata.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +17 -15
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +13 -12
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +9 -8
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +23 -22
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +46 -44
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -1
- package/dist/resource/CjsResource.js +700 -684
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +18 -27
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/audio/CjsAudioBufferRes.js +2 -2
- package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +2 -2
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +605 -586
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +21 -30
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
- package/dist/resource/geometry/granny/TriGrannyRes.js +21 -30
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
- package/dist/resource/shader/Tr2EffectRes.js +9 -7
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +5 -3
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialMesh.js +4 -2
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialRes.js +5 -3
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
- package/dist/resource/shader/Tr2Shader.js +26 -21
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +8 -6
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +5 -3
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +5 -3
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +17 -15
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +11 -9
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +8 -6
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +15 -13
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +7 -5
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +11 -9
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +8 -6
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +400 -411
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +99 -95
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +312 -273
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/docs/README.md +13 -1
- package/docs/architecture.md +3 -3
- package/docs/concepts/resource-lifecycle.md +9 -2
- package/docs/concepts/shader-resource-model.md +114 -0
- package/docs/concepts/writing-an-engine-adapter.md +115 -0
- package/docs/formats/README.md +24 -1
- package/docs/formats/carbon-effect-container.md +452 -0
- package/docs/formats/dxbc/README.md +68 -0
- package/docs/formats/dxbc/architecture.md +80 -0
- package/docs/formats/dxbc/reference/api.md +77 -0
- package/docs/formats/dxbc/reference/classes/README.md +9 -0
- package/docs/formats/dxbc/reference/decoded-output.md +122 -0
- package/docs/formats/gr2.md +3 -4
- package/docs/formats/hlsl/README.md +54 -0
- package/docs/formats/hlsl/architecture.md +67 -0
- package/docs/formats/hlsl/guides/hydrating-json-output.md +62 -0
- package/docs/formats/hlsl/guides/reading-effects.md +64 -0
- package/docs/formats/hlsl/reference/advanced-analysis.md +66 -0
- package/docs/formats/hlsl/reference/api.md +98 -0
- package/docs/formats/hlsl/reference/classes/README.md +11 -0
- package/docs/formats/hlsl/reference/json-graph.md +100 -0
- package/docs/formats/hlsl/reference/portable-reflection.md +141 -0
- package/docs/formats/provenance.md +32 -17
- package/docs/formats/webgl/README.md +57 -0
- package/docs/formats/webgl/architecture.md +70 -0
- package/docs/formats/webgl/carbon-constant-layouts.md +326 -0
- package/docs/formats/webgl/decl-io.md +1234 -0
- package/docs/formats/webgl/effect-reflection.md +127 -0
- package/docs/formats/webgl/memory-structured.md +871 -0
- package/docs/formats/webgl/reference/classes/README.md +9 -0
- package/docs/formats/webgl/texture-sample.md +964 -0
- package/docs/formats/webgpu/README.md +84 -0
- package/docs/formats/webgpu/architecture.md +96 -0
- package/docs/formats/webgpu/formats/cewgpu.md +216 -0
- package/docs/formats/webgpu/guides/effect-packaging.md +191 -0
- package/docs/formats/webgpu/reference/api.md +197 -0
- package/docs/formats/webgpu/reference/classes/README.md +9 -0
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1543 -0
- package/docs/formats/wwise.md +45 -4
- package/docs/reference/classes/core.md +80 -0
- package/docs/reference/classes/formats.md +24 -34
- package/docs/reference/events.md +25 -0
- package/docs/reference/motherlode-cache.md +22 -8
- package/docs/reference/workers.md +5 -5
- package/docs/roadmap.md +61 -41
- package/format-notices/bnk/NOTICE +5 -4
- package/format-notices/webgl/NOTICE +1 -1
- package/package.json +2 -1
- package/dist/formats/gr2/core/CjsFormatGr2.js +0 -273
- package/dist/formats/gr2/core/CjsFormatGr2.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +0 -415
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +0 -100
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/binary.js +0 -93
- package/dist/formats/webgpu/core/cewgpu/binary.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/tags.js +0 -17
- package/dist/formats/webgpu/core/cewgpu/tags.js.map +0 -1
- package/dist/formats/webgpu/core/effectPackageValidation.js +0 -1078
- package/dist/formats/webgpu/core/effectPackageValidation.js.map +0 -1
|
@@ -1,265 +1,15 @@
|
|
|
1
|
+
import { CjsByteReader } from '../../../format/CjsByteReader.js';
|
|
1
2
|
import { HlslEffectReadError } from './HlslEffectReadError.js';
|
|
2
|
-
import { asUint8Array } from '@carbonenginejs/runtime-utils/bytes';
|
|
3
|
-
|
|
4
|
-
const textDecoder = new TextDecoder("utf-8", {
|
|
5
|
-
fatal: false
|
|
6
|
-
});
|
|
7
3
|
|
|
8
4
|
/**
|
|
9
5
|
* Little-endian binary reader for Carbon/Trinity compiled effect data.
|
|
6
|
+
*
|
|
7
|
+
* The implementation is `CjsByteReader` in `src/format/`; this subclass only
|
|
8
|
+
* supplies the error class and message this format reports.
|
|
10
9
|
*/
|
|
11
|
-
class HlslReader {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes Source payload.
|
|
16
|
-
* @param {object} [options] Reader bounds and metadata.
|
|
17
|
-
* @param {number} [options.offset] Initial byte offset.
|
|
18
|
-
* @param {number} [options.end] Exclusive end offset.
|
|
19
|
-
* @param {string} [options.source] Source name used in error details.
|
|
20
|
-
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} [options.stringTable] Effect string table.
|
|
21
|
-
* @param {number} [options.stringTableSize] Valid string-table byte count.
|
|
22
|
-
*/
|
|
23
|
-
constructor(bytes, options = {}) {
|
|
24
|
-
this.bytes = asUint8Array(bytes);
|
|
25
|
-
this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
|
|
26
|
-
this.offset = Number(options.offset) || 0;
|
|
27
|
-
this.end = Number.isInteger(options.end) ? options.end : this.bytes.length;
|
|
28
|
-
this.source = options.source || "memory";
|
|
29
|
-
this.stringTable = options.stringTable ? asUint8Array(options.stringTable) : null;
|
|
30
|
-
this.stringTableSize = Number.isInteger(options.stringTableSize) ? options.stringTableSize : this.stringTable ? this.stringTable.length : 0;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Attaches or replaces the effect string table used by string and blob reads.
|
|
35
|
-
*
|
|
36
|
-
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes String-table bytes.
|
|
37
|
-
* @param {number|null} [size] Valid string-table byte count.
|
|
38
|
-
*/
|
|
39
|
-
setStringTable(bytes, size = null) {
|
|
40
|
-
this.stringTable = asUint8Array(bytes);
|
|
41
|
-
this.stringTableSize = Number.isInteger(size) ? size : this.stringTable.length;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Returns the unread byte count inside the configured reader bounds.
|
|
46
|
-
*
|
|
47
|
-
* @returns {number} Remaining bytes.
|
|
48
|
-
*/
|
|
49
|
-
get remaining() {
|
|
50
|
-
return this.end - this.offset;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Advances the reader by a fixed number of bytes.
|
|
55
|
-
*
|
|
56
|
-
* @param {number} size Byte count to skip.
|
|
57
|
-
*/
|
|
58
|
-
skip(size) {
|
|
59
|
-
this._require(size);
|
|
60
|
-
this.offset += size;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Reads a byte range from the main payload.
|
|
65
|
-
*
|
|
66
|
-
* @param {number} size Byte count to read.
|
|
67
|
-
* @returns {Uint8Array} View over the read bytes.
|
|
68
|
-
*/
|
|
69
|
-
readRaw(size) {
|
|
70
|
-
this._require(size);
|
|
71
|
-
const start = this.offset;
|
|
72
|
-
this.offset += size;
|
|
73
|
-
return this.bytes.subarray(start, start + size);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Reads an unsigned 8-bit integer.
|
|
78
|
-
*
|
|
79
|
-
* @returns {number} Integer value.
|
|
80
|
-
*/
|
|
81
|
-
readUint8() {
|
|
82
|
-
this._require(1);
|
|
83
|
-
const value = this.view.getUint8(this.offset);
|
|
84
|
-
this.offset += 1;
|
|
85
|
-
return value;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Reads a little-endian unsigned 16-bit integer.
|
|
90
|
-
*
|
|
91
|
-
* @returns {number} Integer value.
|
|
92
|
-
*/
|
|
93
|
-
readUint16() {
|
|
94
|
-
this._require(2);
|
|
95
|
-
const value = this.view.getUint16(this.offset, true);
|
|
96
|
-
this.offset += 2;
|
|
97
|
-
return value;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Reads a little-endian unsigned 32-bit integer.
|
|
102
|
-
*
|
|
103
|
-
* @returns {number} Integer value.
|
|
104
|
-
*/
|
|
105
|
-
readUint32() {
|
|
106
|
-
this._require(4);
|
|
107
|
-
const value = this.view.getUint32(this.offset, true);
|
|
108
|
-
this.offset += 4;
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Reads a little-endian signed 32-bit integer.
|
|
114
|
-
*
|
|
115
|
-
* @returns {number} Integer value.
|
|
116
|
-
*/
|
|
117
|
-
readInt32() {
|
|
118
|
-
this._require(4);
|
|
119
|
-
const value = this.view.getInt32(this.offset, true);
|
|
120
|
-
this.offset += 4;
|
|
121
|
-
return value;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Reads a little-endian 32-bit float.
|
|
126
|
-
*
|
|
127
|
-
* @returns {number} Float value.
|
|
128
|
-
*/
|
|
129
|
-
readFloat32() {
|
|
130
|
-
this._require(4);
|
|
131
|
-
const value = this.view.getFloat32(this.offset, true);
|
|
132
|
-
this.offset += 4;
|
|
133
|
-
return value;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Reads Carbon's byte-sized boolean encoding.
|
|
138
|
-
*
|
|
139
|
-
* @returns {boolean} Boolean value.
|
|
140
|
-
*/
|
|
141
|
-
readBool() {
|
|
142
|
-
return this.readUint8() !== 0;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Reads a string-table offset and resolves it to a UTF-8 string.
|
|
147
|
-
*
|
|
148
|
-
* @param {number} [sizeHint] Optional maximum byte span for bounds checking.
|
|
149
|
-
* @returns {string} Decoded string.
|
|
150
|
-
*/
|
|
151
|
-
readString(sizeHint = 0) {
|
|
152
|
-
const offset = this.readUint32();
|
|
153
|
-
return this.readStringAt(offset, sizeHint);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Reads an optional string-table offset, returning null for zero-length fields.
|
|
158
|
-
*
|
|
159
|
-
* @param {number} length Source field length.
|
|
160
|
-
* @returns {string|null} Decoded string or null.
|
|
161
|
-
*/
|
|
162
|
-
readStringOptional(length) {
|
|
163
|
-
const offset = this.readUint32();
|
|
164
|
-
if (length === 0) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
return this.readStringAt(offset, length);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Reads a string-table blob offset and returns the referenced byte range.
|
|
172
|
-
*
|
|
173
|
-
* @param {number} size Blob byte count.
|
|
174
|
-
* @returns {{offset:number,bytes:Uint8Array}} Blob location and bytes.
|
|
175
|
-
*/
|
|
176
|
-
readTableBlob(size) {
|
|
177
|
-
const offset = this.readUint32();
|
|
178
|
-
this._requireStringTable(offset, size);
|
|
179
|
-
return {
|
|
180
|
-
offset,
|
|
181
|
-
bytes: this.stringTable.subarray(offset, offset + size)
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Reads a possibly empty string-table blob reference.
|
|
187
|
-
*
|
|
188
|
-
* @param {number} size Blob byte count.
|
|
189
|
-
* @returns {{offset:number,bytes:Uint8Array}} Blob location and bytes.
|
|
190
|
-
*/
|
|
191
|
-
readTableBlobOptional(size) {
|
|
192
|
-
const offset = this.readUint32();
|
|
193
|
-
if (size === 0) {
|
|
194
|
-
return {
|
|
195
|
-
offset,
|
|
196
|
-
bytes: new Uint8Array(0)
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
this._requireStringTable(offset, size);
|
|
200
|
-
return {
|
|
201
|
-
offset,
|
|
202
|
-
bytes: this.stringTable.subarray(offset, offset + size)
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Resolves a string table offset to a null-terminated UTF-8 string.
|
|
208
|
-
*
|
|
209
|
-
* @param {number} offset String-table byte offset.
|
|
210
|
-
* @param {number} [sizeHint] Optional maximum byte span for bounds checking.
|
|
211
|
-
* @returns {string} Decoded string.
|
|
212
|
-
*/
|
|
213
|
-
readStringAt(offset, sizeHint = 0) {
|
|
214
|
-
this._requireStringTable(offset, sizeHint);
|
|
215
|
-
let end = offset;
|
|
216
|
-
while (end < this.stringTableSize && this.stringTable[end] !== 0) {
|
|
217
|
-
end += 1;
|
|
218
|
-
}
|
|
219
|
-
return textDecoder.decode(this.stringTable.subarray(offset, end));
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Ensures the requested read fits inside the configured payload bounds.
|
|
224
|
-
*
|
|
225
|
-
* @param {number} size Requested byte count.
|
|
226
|
-
* @private
|
|
227
|
-
*/
|
|
228
|
-
_require(size) {
|
|
229
|
-
if (!Number.isInteger(size) || size < 0 || this.offset + size > this.end) {
|
|
230
|
-
throw new HlslEffectReadError("Unexpected end of effect data", {
|
|
231
|
-
source: this.source,
|
|
232
|
-
offset: this.offset,
|
|
233
|
-
requested: size,
|
|
234
|
-
end: this.end
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Ensures a string-table offset and optional span are valid.
|
|
241
|
-
*
|
|
242
|
-
* @param {number} offset String-table byte offset.
|
|
243
|
-
* @param {number} [sizeHint] Optional byte span for bounds checking.
|
|
244
|
-
* @private
|
|
245
|
-
*/
|
|
246
|
-
_requireStringTable(offset, sizeHint = 0) {
|
|
247
|
-
const size = Number(sizeHint) || 0;
|
|
248
|
-
if (!this.stringTable) {
|
|
249
|
-
throw new HlslEffectReadError("Missing effect string table", {
|
|
250
|
-
source: this.source,
|
|
251
|
-
offset
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
if (!Number.isInteger(offset) || offset < 0 || offset >= this.stringTableSize || offset + size > this.stringTableSize) {
|
|
255
|
-
throw new HlslEffectReadError("Invalid string-table offset", {
|
|
256
|
-
source: this.source,
|
|
257
|
-
offset,
|
|
258
|
-
sizeHint: size,
|
|
259
|
-
stringTableSize: this.stringTableSize
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
}
|
|
10
|
+
class HlslReader extends CjsByteReader {
|
|
11
|
+
static ReadError = HlslEffectReadError;
|
|
12
|
+
static endOfDataMessage = "Unexpected end of effect data";
|
|
263
13
|
}
|
|
264
14
|
|
|
265
15
|
export { HlslReader };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlslReader.js","sources":["../../../../../src/formats/hlsl/core/HlslReader.js"],"sourcesContent":["import { HlslEffectReadError } from \"./HlslEffectReadError.js\";\nimport { asUint8Array } from \"@carbonenginejs/runtime-utils/bytes\";\n\nconst textDecoder = new TextDecoder(\"utf-8\", { fatal: false });\n\n/**\n * Little-endian binary reader for Carbon/Trinity compiled effect data.\n */\nexport class HlslReader\n{\n /**\n * Creates a reader over a byte payload and optional shared string table.\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 * @param {ArrayBuffer|ArrayBufferView|Uint8Array} [options.stringTable] Effect string table.\n * @param {number} [options.stringTableSize] Valid string-table byte count.\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 this.stringTable = options.stringTable ? asUint8Array(options.stringTable) : null;\n this.stringTableSize = Number.isInteger(options.stringTableSize)\n ? options.stringTableSize\n : (this.stringTable ? this.stringTable.length : 0);\n }\n\n /**\n * Attaches or replaces the effect string table used by string and blob reads.\n *\n * @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes String-table bytes.\n * @param {number|null} [size] Valid string-table byte count.\n */\n setStringTable(bytes, size = null)\n {\n this.stringTable = asUint8Array(bytes);\n this.stringTableSize = Number.isInteger(size) ? size : this.stringTable.length;\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 * Advances the reader by a fixed number of bytes.\n *\n * @param {number} size Byte count to skip.\n */\n skip(size)\n {\n this._require(size);\n this.offset += size;\n }\n\n /**\n * Reads a byte range from the main 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 an unsigned 8-bit integer.\n *\n * @returns {number} Integer value.\n */\n readUint8()\n {\n this._require(1);\n const value = this.view.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n /**\n * Reads a little-endian unsigned 16-bit integer.\n *\n * @returns {number} Integer value.\n */\n readUint16()\n {\n this._require(2);\n const value = this.view.getUint16(this.offset, true);\n this.offset += 2;\n return value;\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 * Reads a little-endian signed 32-bit integer.\n *\n * @returns {number} Integer value.\n */\n readInt32()\n {\n this._require(4);\n const value = this.view.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads a little-endian 32-bit float.\n *\n * @returns {number} Float value.\n */\n readFloat32()\n {\n this._require(4);\n const value = this.view.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads Carbon's byte-sized boolean encoding.\n *\n * @returns {boolean} Boolean value.\n */\n readBool()\n {\n return this.readUint8() !== 0;\n }\n\n /**\n * Reads a string-table offset and resolves it to a UTF-8 string.\n *\n * @param {number} [sizeHint] Optional maximum byte span for bounds checking.\n * @returns {string} Decoded string.\n */\n readString(sizeHint = 0)\n {\n const offset = this.readUint32();\n return this.readStringAt(offset, sizeHint);\n }\n\n /**\n * Reads an optional string-table offset, returning null for zero-length fields.\n *\n * @param {number} length Source field length.\n * @returns {string|null} Decoded string or null.\n */\n readStringOptional(length)\n {\n const offset = this.readUint32();\n if (length === 0)\n {\n return null;\n }\n return this.readStringAt(offset, length);\n }\n\n /**\n * Reads a string-table blob offset and returns the referenced byte range.\n *\n * @param {number} size Blob byte count.\n * @returns {{offset:number,bytes:Uint8Array}} Blob location and bytes.\n */\n readTableBlob(size)\n {\n const offset = this.readUint32();\n this._requireStringTable(offset, size);\n return {\n offset,\n bytes: this.stringTable.subarray(offset, offset + size)\n };\n }\n\n /**\n * Reads a possibly empty string-table blob reference.\n *\n * @param {number} size Blob byte count.\n * @returns {{offset:number,bytes:Uint8Array}} Blob location and bytes.\n */\n readTableBlobOptional(size)\n {\n const offset = this.readUint32();\n if (size === 0)\n {\n return {\n offset,\n bytes: new Uint8Array(0)\n };\n }\n this._requireStringTable(offset, size);\n return {\n offset,\n bytes: this.stringTable.subarray(offset, offset + size)\n };\n }\n\n /**\n * Resolves a string table offset to a null-terminated UTF-8 string.\n *\n * @param {number} offset String-table byte offset.\n * @param {number} [sizeHint] Optional maximum byte span for bounds checking.\n * @returns {string} Decoded string.\n */\n readStringAt(offset, sizeHint = 0)\n {\n this._requireStringTable(offset, sizeHint);\n let end = offset;\n while (end < this.stringTableSize && this.stringTable[end] !== 0)\n {\n end += 1;\n }\n return textDecoder.decode(this.stringTable.subarray(offset, end));\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 HlslEffectReadError(\"Unexpected end of effect data\", {\n source: this.source,\n offset: this.offset,\n requested: size,\n end: this.end\n });\n }\n }\n\n /**\n * Ensures a string-table offset and optional span are valid.\n *\n * @param {number} offset String-table byte offset.\n * @param {number} [sizeHint] Optional byte span for bounds checking.\n * @private\n */\n _requireStringTable(offset, sizeHint = 0)\n {\n const size = Number(sizeHint) || 0;\n if (!this.stringTable)\n {\n throw new HlslEffectReadError(\"Missing effect string table\", {\n source: this.source,\n offset\n });\n }\n if (!Number.isInteger(offset) || offset < 0 || offset >= this.stringTableSize || offset + size > this.stringTableSize)\n {\n throw new HlslEffectReadError(\"Invalid string-table offset\", {\n source: this.source,\n offset,\n sizeHint: size,\n stringTableSize: this.stringTableSize\n });\n }\n }\n}\n"],"names":["textDecoder","TextDecoder","fatal","HlslReader","constructor","bytes","options","asUint8Array","view","DataView","buffer","byteOffset","byteLength","offset","Number","end","isInteger","length","source","stringTable","stringTableSize","setStringTable","size","remaining","skip","_require","readRaw","start","subarray","readUint8","value","getUint8","readUint16","getUint16","readUint32","getUint32","readInt32","getInt32","readFloat32","getFloat32","readBool","readString","sizeHint","readStringAt","readStringOptional","readTableBlob","_requireStringTable","readTableBlobOptional","Uint8Array","decode","HlslEffectReadError","requested"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HlslReader.js","sources":["../../../../../src/formats/hlsl/core/HlslReader.js"],"sourcesContent":["import { CjsByteReader } from \"../../../format/CjsByteReader.js\";\nimport { HlslEffectReadError } from \"./HlslEffectReadError.js\";\n\n/**\n * Little-endian binary reader for Carbon/Trinity compiled effect data.\n *\n * The implementation is `CjsByteReader` in `src/format/`; this subclass only\n * supplies the error class and message this format reports.\n */\nexport class HlslReader extends CjsByteReader\n{\n static ReadError = HlslEffectReadError;\n\n static endOfDataMessage = \"Unexpected end of effect data\";\n}\n\nexport default HlslReader;\n"],"names":["HlslReader","CjsByteReader","ReadError","HlslEffectReadError","endOfDataMessage"],"mappings":";;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,UAAU,SAASC,aAAa,CAC7C;EACI,OAAOC,SAAS,GAAGC,mBAAmB;EAEtC,OAAOC,gBAAgB,GAAG,+BAA+B;AAC7D;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { normalizeValues,
|
|
1
|
+
import { normalizeValues, readRaw, DEFAULT_VALUES } from './helpers.js';
|
|
2
2
|
import { resolveSelectedOptions } from './metadata.js';
|
|
3
3
|
import { HlslEffectBindingManifest } from './tr2/shader/HlslEffectBindingManifest.js';
|
|
4
4
|
|