@react-three/tsl 10.0.0-canary.dd5379c → 10.0.0-canary.de8b03c
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/index.cjs +4 -13
- package/dist/index.d.cts +32 -46
- package/dist/index.d.mts +32 -46
- package/dist/index.d.ts +32 -46
- package/dist/index.mjs +4 -13
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -177,10 +177,6 @@ function extractTSLValue(value) {
|
|
|
177
177
|
if (node.isConstNode) {
|
|
178
178
|
return node.value;
|
|
179
179
|
}
|
|
180
|
-
if (node.isVarNode && node.node) {
|
|
181
|
-
const inner = extractTSLValue(node.node);
|
|
182
|
-
return inner === node.node ? value : inner;
|
|
183
|
-
}
|
|
184
180
|
if ("value" in node) {
|
|
185
181
|
let extractedValue = node.value;
|
|
186
182
|
if (typeof node.traverse === "function") {
|
|
@@ -763,20 +759,18 @@ function isSameThreeType(a, b) {
|
|
|
763
759
|
const uniformOf = tsl.uniform;
|
|
764
760
|
function useUniform(name, value) {
|
|
765
761
|
const store = usePrimaryStore();
|
|
766
|
-
const memoizedInput = useCompareMemoize(value === void 0 ? name : { [name]: normalizeValue(value) });
|
|
767
762
|
const registered = useScopedResource({
|
|
768
763
|
store,
|
|
769
764
|
kind: "uniforms",
|
|
770
765
|
scope: void 0,
|
|
771
766
|
isLeaf: isUniformNode,
|
|
772
|
-
input:
|
|
767
|
+
input: name,
|
|
773
768
|
create: () => value === void 0 ? {} : { [name]: value },
|
|
774
769
|
prepare: createNamedUniform,
|
|
775
770
|
reconcile: (existing2) => {
|
|
776
|
-
if (value
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
existing2.value = next;
|
|
771
|
+
if (value !== void 0 && !isTSLNode(value) && !isUniformNode(value)) {
|
|
772
|
+
existing2.value = typeof value === "string" ? new THREE.Color(value) : value;
|
|
773
|
+
}
|
|
780
774
|
}
|
|
781
775
|
});
|
|
782
776
|
if (registered[name]) return registered[name];
|
|
@@ -786,9 +780,6 @@ function useUniform(name, value) {
|
|
|
786
780
|
`[useUniform] Uniform "${name}" not found. Create it first with: useUniform('${name}', initialValue)`
|
|
787
781
|
);
|
|
788
782
|
}
|
|
789
|
-
function normalizeValue(value) {
|
|
790
|
-
return typeof value === "string" ? new THREE.Color(value) : vectorize(value);
|
|
791
|
-
}
|
|
792
783
|
function createNamedUniform(name, value) {
|
|
793
784
|
let node;
|
|
794
785
|
if (isUniformNode(value)) {
|
package/dist/index.d.cts
CHANGED
|
@@ -149,16 +149,6 @@ declare global {
|
|
|
149
149
|
/** Node type accepted by broad dynamic node-store readers. */
|
|
150
150
|
type TSLNodeType = three_webgpu.Node | CallableTSLNode
|
|
151
151
|
|
|
152
|
-
/**
|
|
153
|
-
* What TSL's constant constructors return: `int(1)`, `vec2(0, 1)`, `color('red')` and friends
|
|
154
|
-
* wrap a ConstNode in a VarNode. three's `uniform()` unwraps exactly this shape to
|
|
155
|
-
* `UniformNode<TNodeType, TValue>`, and so do the mappings below.
|
|
156
|
-
*/
|
|
157
|
-
type TSLConstNode<TNodeType, TValue> = three_webgpu.VarNode<
|
|
158
|
-
TNodeType,
|
|
159
|
-
three_webgpu.ConstNode<TNodeType, TValue>
|
|
160
|
-
>
|
|
161
|
-
|
|
162
152
|
/**
|
|
163
153
|
* Derive Three's shader node type from an existing node or a supported raw input.
|
|
164
154
|
* Existing InputNode generics take precedence over structural value normalization.
|
|
@@ -169,48 +159,44 @@ declare global {
|
|
|
169
159
|
? TNodeType
|
|
170
160
|
: T extends three_webgpu.InputNode<infer TNodeType, infer _TValue>
|
|
171
161
|
? TNodeType
|
|
172
|
-
: T extends
|
|
173
|
-
?
|
|
174
|
-
: T extends
|
|
175
|
-
? '
|
|
176
|
-
: T extends
|
|
177
|
-
? '
|
|
178
|
-
: T extends
|
|
179
|
-
? '
|
|
180
|
-
: T extends three_webgpu.
|
|
181
|
-
? '
|
|
182
|
-
: T extends three_webgpu.
|
|
183
|
-
? '
|
|
184
|
-
: T extends three_webgpu.
|
|
185
|
-
? '
|
|
186
|
-
: T extends three_webgpu.
|
|
187
|
-
? '
|
|
188
|
-
: T extends three_webgpu.
|
|
189
|
-
? '
|
|
190
|
-
:
|
|
191
|
-
? 'mat2'
|
|
192
|
-
: unknown
|
|
162
|
+
: T extends number
|
|
163
|
+
? 'float'
|
|
164
|
+
: T extends boolean
|
|
165
|
+
? 'bool'
|
|
166
|
+
: T extends string | three_webgpu.Color | { r: number; g: number; b: number }
|
|
167
|
+
? 'color'
|
|
168
|
+
: T extends three_webgpu.Vector4 | { x: number; y: number; z: number; w: number }
|
|
169
|
+
? 'vec4'
|
|
170
|
+
: T extends three_webgpu.Vector3 | { x: number; y: number; z: number }
|
|
171
|
+
? 'vec3'
|
|
172
|
+
: T extends three_webgpu.Vector2 | { x: number; y: number }
|
|
173
|
+
? 'vec2'
|
|
174
|
+
: T extends three_webgpu.Matrix4
|
|
175
|
+
? 'mat4'
|
|
176
|
+
: T extends three_webgpu.Matrix3
|
|
177
|
+
? 'mat3'
|
|
178
|
+
: T extends three_webgpu.Matrix2
|
|
179
|
+
? 'mat2'
|
|
180
|
+
: unknown
|
|
193
181
|
|
|
194
182
|
/** Derive the normalized JavaScript value stored by a uniform node. */
|
|
195
183
|
type UniformNodeValue<T> = T extends three_webgpu.UniformNode<infer _TNodeType, infer TValue>
|
|
196
184
|
? TValue
|
|
197
185
|
: T extends three_webgpu.InputNode<infer _TNodeType, infer TValue>
|
|
198
186
|
? TValue
|
|
199
|
-
: T extends
|
|
200
|
-
?
|
|
201
|
-
: T extends
|
|
202
|
-
? three_webgpu.
|
|
203
|
-
: T extends { x: number; y: number; z: number
|
|
204
|
-
? three_webgpu.
|
|
205
|
-
: T extends { x: number; y: number
|
|
206
|
-
? three_webgpu.
|
|
207
|
-
: T extends
|
|
208
|
-
?
|
|
209
|
-
: T extends
|
|
210
|
-
?
|
|
211
|
-
: T
|
|
212
|
-
? boolean
|
|
213
|
-
: T
|
|
187
|
+
: T extends string | { r: number; g: number; b: number }
|
|
188
|
+
? three_webgpu.Color
|
|
189
|
+
: T extends { x: number; y: number; z: number; w: number }
|
|
190
|
+
? three_webgpu.Vector4
|
|
191
|
+
: T extends { x: number; y: number; z: number }
|
|
192
|
+
? three_webgpu.Vector3
|
|
193
|
+
: T extends { x: number; y: number }
|
|
194
|
+
? three_webgpu.Vector2
|
|
195
|
+
: T extends number
|
|
196
|
+
? number
|
|
197
|
+
: T extends boolean
|
|
198
|
+
? boolean
|
|
199
|
+
: T
|
|
214
200
|
|
|
215
201
|
/** Three's exact UniformNode with shader and value generics derived from an input. */
|
|
216
202
|
type UniformNodeFor<T> = three_webgpu.UniformNode<UniformNodeType<T>, UniformNodeValue<T>>
|
package/dist/index.d.mts
CHANGED
|
@@ -149,16 +149,6 @@ declare global {
|
|
|
149
149
|
/** Node type accepted by broad dynamic node-store readers. */
|
|
150
150
|
type TSLNodeType = three_webgpu.Node | CallableTSLNode
|
|
151
151
|
|
|
152
|
-
/**
|
|
153
|
-
* What TSL's constant constructors return: `int(1)`, `vec2(0, 1)`, `color('red')` and friends
|
|
154
|
-
* wrap a ConstNode in a VarNode. three's `uniform()` unwraps exactly this shape to
|
|
155
|
-
* `UniformNode<TNodeType, TValue>`, and so do the mappings below.
|
|
156
|
-
*/
|
|
157
|
-
type TSLConstNode<TNodeType, TValue> = three_webgpu.VarNode<
|
|
158
|
-
TNodeType,
|
|
159
|
-
three_webgpu.ConstNode<TNodeType, TValue>
|
|
160
|
-
>
|
|
161
|
-
|
|
162
152
|
/**
|
|
163
153
|
* Derive Three's shader node type from an existing node or a supported raw input.
|
|
164
154
|
* Existing InputNode generics take precedence over structural value normalization.
|
|
@@ -169,48 +159,44 @@ declare global {
|
|
|
169
159
|
? TNodeType
|
|
170
160
|
: T extends three_webgpu.InputNode<infer TNodeType, infer _TValue>
|
|
171
161
|
? TNodeType
|
|
172
|
-
: T extends
|
|
173
|
-
?
|
|
174
|
-
: T extends
|
|
175
|
-
? '
|
|
176
|
-
: T extends
|
|
177
|
-
? '
|
|
178
|
-
: T extends
|
|
179
|
-
? '
|
|
180
|
-
: T extends three_webgpu.
|
|
181
|
-
? '
|
|
182
|
-
: T extends three_webgpu.
|
|
183
|
-
? '
|
|
184
|
-
: T extends three_webgpu.
|
|
185
|
-
? '
|
|
186
|
-
: T extends three_webgpu.
|
|
187
|
-
? '
|
|
188
|
-
: T extends three_webgpu.
|
|
189
|
-
? '
|
|
190
|
-
:
|
|
191
|
-
? 'mat2'
|
|
192
|
-
: unknown
|
|
162
|
+
: T extends number
|
|
163
|
+
? 'float'
|
|
164
|
+
: T extends boolean
|
|
165
|
+
? 'bool'
|
|
166
|
+
: T extends string | three_webgpu.Color | { r: number; g: number; b: number }
|
|
167
|
+
? 'color'
|
|
168
|
+
: T extends three_webgpu.Vector4 | { x: number; y: number; z: number; w: number }
|
|
169
|
+
? 'vec4'
|
|
170
|
+
: T extends three_webgpu.Vector3 | { x: number; y: number; z: number }
|
|
171
|
+
? 'vec3'
|
|
172
|
+
: T extends three_webgpu.Vector2 | { x: number; y: number }
|
|
173
|
+
? 'vec2'
|
|
174
|
+
: T extends three_webgpu.Matrix4
|
|
175
|
+
? 'mat4'
|
|
176
|
+
: T extends three_webgpu.Matrix3
|
|
177
|
+
? 'mat3'
|
|
178
|
+
: T extends three_webgpu.Matrix2
|
|
179
|
+
? 'mat2'
|
|
180
|
+
: unknown
|
|
193
181
|
|
|
194
182
|
/** Derive the normalized JavaScript value stored by a uniform node. */
|
|
195
183
|
type UniformNodeValue<T> = T extends three_webgpu.UniformNode<infer _TNodeType, infer TValue>
|
|
196
184
|
? TValue
|
|
197
185
|
: T extends three_webgpu.InputNode<infer _TNodeType, infer TValue>
|
|
198
186
|
? TValue
|
|
199
|
-
: T extends
|
|
200
|
-
?
|
|
201
|
-
: T extends
|
|
202
|
-
? three_webgpu.
|
|
203
|
-
: T extends { x: number; y: number; z: number
|
|
204
|
-
? three_webgpu.
|
|
205
|
-
: T extends { x: number; y: number
|
|
206
|
-
? three_webgpu.
|
|
207
|
-
: T extends
|
|
208
|
-
?
|
|
209
|
-
: T extends
|
|
210
|
-
?
|
|
211
|
-
: T
|
|
212
|
-
? boolean
|
|
213
|
-
: T
|
|
187
|
+
: T extends string | { r: number; g: number; b: number }
|
|
188
|
+
? three_webgpu.Color
|
|
189
|
+
: T extends { x: number; y: number; z: number; w: number }
|
|
190
|
+
? three_webgpu.Vector4
|
|
191
|
+
: T extends { x: number; y: number; z: number }
|
|
192
|
+
? three_webgpu.Vector3
|
|
193
|
+
: T extends { x: number; y: number }
|
|
194
|
+
? three_webgpu.Vector2
|
|
195
|
+
: T extends number
|
|
196
|
+
? number
|
|
197
|
+
: T extends boolean
|
|
198
|
+
? boolean
|
|
199
|
+
: T
|
|
214
200
|
|
|
215
201
|
/** Three's exact UniformNode with shader and value generics derived from an input. */
|
|
216
202
|
type UniformNodeFor<T> = three_webgpu.UniformNode<UniformNodeType<T>, UniformNodeValue<T>>
|
package/dist/index.d.ts
CHANGED
|
@@ -149,16 +149,6 @@ declare global {
|
|
|
149
149
|
/** Node type accepted by broad dynamic node-store readers. */
|
|
150
150
|
type TSLNodeType = three_webgpu.Node | CallableTSLNode
|
|
151
151
|
|
|
152
|
-
/**
|
|
153
|
-
* What TSL's constant constructors return: `int(1)`, `vec2(0, 1)`, `color('red')` and friends
|
|
154
|
-
* wrap a ConstNode in a VarNode. three's `uniform()` unwraps exactly this shape to
|
|
155
|
-
* `UniformNode<TNodeType, TValue>`, and so do the mappings below.
|
|
156
|
-
*/
|
|
157
|
-
type TSLConstNode<TNodeType, TValue> = three_webgpu.VarNode<
|
|
158
|
-
TNodeType,
|
|
159
|
-
three_webgpu.ConstNode<TNodeType, TValue>
|
|
160
|
-
>
|
|
161
|
-
|
|
162
152
|
/**
|
|
163
153
|
* Derive Three's shader node type from an existing node or a supported raw input.
|
|
164
154
|
* Existing InputNode generics take precedence over structural value normalization.
|
|
@@ -169,48 +159,44 @@ declare global {
|
|
|
169
159
|
? TNodeType
|
|
170
160
|
: T extends three_webgpu.InputNode<infer TNodeType, infer _TValue>
|
|
171
161
|
? TNodeType
|
|
172
|
-
: T extends
|
|
173
|
-
?
|
|
174
|
-
: T extends
|
|
175
|
-
? '
|
|
176
|
-
: T extends
|
|
177
|
-
? '
|
|
178
|
-
: T extends
|
|
179
|
-
? '
|
|
180
|
-
: T extends three_webgpu.
|
|
181
|
-
? '
|
|
182
|
-
: T extends three_webgpu.
|
|
183
|
-
? '
|
|
184
|
-
: T extends three_webgpu.
|
|
185
|
-
? '
|
|
186
|
-
: T extends three_webgpu.
|
|
187
|
-
? '
|
|
188
|
-
: T extends three_webgpu.
|
|
189
|
-
? '
|
|
190
|
-
:
|
|
191
|
-
? 'mat2'
|
|
192
|
-
: unknown
|
|
162
|
+
: T extends number
|
|
163
|
+
? 'float'
|
|
164
|
+
: T extends boolean
|
|
165
|
+
? 'bool'
|
|
166
|
+
: T extends string | three_webgpu.Color | { r: number; g: number; b: number }
|
|
167
|
+
? 'color'
|
|
168
|
+
: T extends three_webgpu.Vector4 | { x: number; y: number; z: number; w: number }
|
|
169
|
+
? 'vec4'
|
|
170
|
+
: T extends three_webgpu.Vector3 | { x: number; y: number; z: number }
|
|
171
|
+
? 'vec3'
|
|
172
|
+
: T extends three_webgpu.Vector2 | { x: number; y: number }
|
|
173
|
+
? 'vec2'
|
|
174
|
+
: T extends three_webgpu.Matrix4
|
|
175
|
+
? 'mat4'
|
|
176
|
+
: T extends three_webgpu.Matrix3
|
|
177
|
+
? 'mat3'
|
|
178
|
+
: T extends three_webgpu.Matrix2
|
|
179
|
+
? 'mat2'
|
|
180
|
+
: unknown
|
|
193
181
|
|
|
194
182
|
/** Derive the normalized JavaScript value stored by a uniform node. */
|
|
195
183
|
type UniformNodeValue<T> = T extends three_webgpu.UniformNode<infer _TNodeType, infer TValue>
|
|
196
184
|
? TValue
|
|
197
185
|
: T extends three_webgpu.InputNode<infer _TNodeType, infer TValue>
|
|
198
186
|
? TValue
|
|
199
|
-
: T extends
|
|
200
|
-
?
|
|
201
|
-
: T extends
|
|
202
|
-
? three_webgpu.
|
|
203
|
-
: T extends { x: number; y: number; z: number
|
|
204
|
-
? three_webgpu.
|
|
205
|
-
: T extends { x: number; y: number
|
|
206
|
-
? three_webgpu.
|
|
207
|
-
: T extends
|
|
208
|
-
?
|
|
209
|
-
: T extends
|
|
210
|
-
?
|
|
211
|
-
: T
|
|
212
|
-
? boolean
|
|
213
|
-
: T
|
|
187
|
+
: T extends string | { r: number; g: number; b: number }
|
|
188
|
+
? three_webgpu.Color
|
|
189
|
+
: T extends { x: number; y: number; z: number; w: number }
|
|
190
|
+
? three_webgpu.Vector4
|
|
191
|
+
: T extends { x: number; y: number; z: number }
|
|
192
|
+
? three_webgpu.Vector3
|
|
193
|
+
: T extends { x: number; y: number }
|
|
194
|
+
? three_webgpu.Vector2
|
|
195
|
+
: T extends number
|
|
196
|
+
? number
|
|
197
|
+
: T extends boolean
|
|
198
|
+
? boolean
|
|
199
|
+
: T
|
|
214
200
|
|
|
215
201
|
/** Three's exact UniformNode with shader and value generics derived from an input. */
|
|
216
202
|
type UniformNodeFor<T> = three_webgpu.UniformNode<UniformNodeType<T>, UniformNodeValue<T>>
|
package/dist/index.mjs
CHANGED
|
@@ -162,10 +162,6 @@ function extractTSLValue(value) {
|
|
|
162
162
|
if (node.isConstNode) {
|
|
163
163
|
return node.value;
|
|
164
164
|
}
|
|
165
|
-
if (node.isVarNode && node.node) {
|
|
166
|
-
const inner = extractTSLValue(node.node);
|
|
167
|
-
return inner === node.node ? value : inner;
|
|
168
|
-
}
|
|
169
165
|
if ("value" in node) {
|
|
170
166
|
let extractedValue = node.value;
|
|
171
167
|
if (typeof node.traverse === "function") {
|
|
@@ -748,20 +744,18 @@ function isSameThreeType(a, b) {
|
|
|
748
744
|
const uniformOf = uniform;
|
|
749
745
|
function useUniform(name, value) {
|
|
750
746
|
const store = usePrimaryStore();
|
|
751
|
-
const memoizedInput = useCompareMemoize(value === void 0 ? name : { [name]: normalizeValue(value) });
|
|
752
747
|
const registered = useScopedResource({
|
|
753
748
|
store,
|
|
754
749
|
kind: "uniforms",
|
|
755
750
|
scope: void 0,
|
|
756
751
|
isLeaf: isUniformNode,
|
|
757
|
-
input:
|
|
752
|
+
input: name,
|
|
758
753
|
create: () => value === void 0 ? {} : { [name]: value },
|
|
759
754
|
prepare: createNamedUniform,
|
|
760
755
|
reconcile: (existing2) => {
|
|
761
|
-
if (value
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
existing2.value = next;
|
|
756
|
+
if (value !== void 0 && !isTSLNode(value) && !isUniformNode(value)) {
|
|
757
|
+
existing2.value = typeof value === "string" ? new Color(value) : value;
|
|
758
|
+
}
|
|
765
759
|
}
|
|
766
760
|
});
|
|
767
761
|
if (registered[name]) return registered[name];
|
|
@@ -771,9 +765,6 @@ function useUniform(name, value) {
|
|
|
771
765
|
`[useUniform] Uniform "${name}" not found. Create it first with: useUniform('${name}', initialValue)`
|
|
772
766
|
);
|
|
773
767
|
}
|
|
774
|
-
function normalizeValue(value) {
|
|
775
|
-
return typeof value === "string" ? new Color(value) : vectorize(value);
|
|
776
|
-
}
|
|
777
768
|
function createNamedUniform(name, value) {
|
|
778
769
|
let node;
|
|
779
770
|
if (isUniformNode(value)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-three/tsl",
|
|
3
|
-
"version": "10.0.0-canary.
|
|
3
|
+
"version": "10.0.0-canary.de8b03c",
|
|
4
4
|
"description": "TSL resource hooks for react-three-fiber: uniforms, nodes, buffers, GPU storage and render pipelines on WebGPU",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/three": "^0.185.0",
|
|
57
57
|
"@webgpu/types": "^0.1.64",
|
|
58
58
|
"three": ">=0.185.0",
|
|
59
|
-
"@react-three/fiber": "10.0.0-canary.
|
|
59
|
+
"@react-three/fiber": "10.0.0-canary.de8b03c"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "unbuild",
|