Browse Source

TSL: support `uniformArrays` from `userData()` and `.label()` for `userData()` and `reference()` (#29430)

support reference().label()
remove duplicate method

Co-authored-by: aardgoose <angus.sawyer@email.com>
aardgoose 1 year ago
parent
commit
915392f4cf

+ 11 - 0
src/nodes/accessors/ReferenceNode.js

@@ -66,6 +66,7 @@ class ReferenceNode extends Node {
 		this.reference = object;
 		this.node = null;
 		this.group = null;
+		this.name = null;
 
 		this.updateType = NodeUpdateType.OBJECT;
 
@@ -85,6 +86,14 @@ class ReferenceNode extends Node {
 
 	}
 
+	label( name ) {
+
+		this.name = name;
+
+		return this;
+
+	}
+
 	setNodeType( uniformType ) {
 
 		let node = null;
@@ -117,6 +126,8 @@ class ReferenceNode extends Node {
 
 		}
 
+		if ( this.name !== null ) node.label( this.name );
+
 		this.node = node.getSelf();
 
 	}

+ 0 - 6
src/nodes/accessors/UniformArrayNode.js

@@ -20,12 +20,6 @@ class UniformArrayElementNode extends ArrayElementNode {
 
 	}
 
-	getNodeType( builder ) {
-
-		return this.node.getElementType( builder );
-
-	}
-
 	generate( builder ) {
 
 		const snippet = super.generate( builder );

+ 3 - 3
src/nodes/accessors/UserDataNode.js

@@ -17,11 +17,11 @@ class UserDataNode extends ReferenceNode {
 
 	}
 
-	update( frame ) {
+	updateReference( state ) {
 
-		this.reference = this.userData !== null ? this.userData : frame.object.userData;
+		this.reference = this.userData !== null ? this.userData : state.object.userData;
 
-		super.update( frame );
+		return this.reference;
 
 	}
 

粤ICP备19079148号