Parcourir la source

TSL: Fix `tslFn()` output type called before build (#28409)

sunag il y a 1 an
Parent
commit
013e93d5b5
1 fichiers modifiés avec 16 ajouts et 2 suppressions
  1. 16 2
      examples/jsm/nodes/shadernode/ShaderNode.js

+ 16 - 2
examples/jsm/nodes/shadernode/ShaderNode.js

@@ -251,9 +251,15 @@ class ShaderCallNodeInternal extends Node {
 
 	getNodeType( builder ) {
 
-		const { outputNode } = builder.getNodeProperties( this );
+		const properties = builder.getNodeProperties( this );
+
+		if ( properties.outputNode === null ) {
+
+			properties.outputNode = this.setupOutput( builder );
 
-		return outputNode ? outputNode.getNodeType( builder ) : super.getNodeType( builder );
+		}
+
+		return properties.outputNode.getNodeType( builder );
 
 	}
 
@@ -302,6 +308,14 @@ class ShaderCallNodeInternal extends Node {
 
 	setup( builder ) {
 
+		const { outputNode } = builder.getNodeProperties( this );
+
+		return outputNode || this.setupOutput( builder );
+
+	}
+
+	setupOutput( builder ) {
+
 		builder.addStack();
 
 		builder.stack.outputNode = this.call( builder );