Просмотр исходного кода

TSL Transpiler: Support `varying`. (#30506)

Michael Herzog 11 месяцев назад
Родитель
Сommit
577ee127b6
1 измененных файлов с 14 добавлено и 7 удалено
  1. 14 7
      examples/jsm/transpiler/TSLEncoder.js

+ 14 - 7
examples/jsm/transpiler/TSLEncoder.js

@@ -110,12 +110,6 @@ class TSLEncoder {
 
 		let code;
 
-		/*@TODO: else if ( node.isVarying ) {
-
-			code = this.emitVarying( node );
-
-		}*/
-
 		if ( node.isAccessor ) {
 
 			this.addImport( node.property );
@@ -243,6 +237,10 @@ class TSLEncoder {
 
 			code = this.emitUniform( node );
 
+		} else if ( node.isVarying ) {
+
+			code = this.emitVarying( node );
+
 		} else if ( node.isTernary ) {
 
 			code = this.emitTernary( node );
@@ -500,7 +498,16 @@ ${ this.tab }} )`;
 
 	}
 
-	/*emitVarying( node ) { }*/
+	emitVarying( node ) {
+
+		const { name, type } = node;
+
+		this.addImport( 'varying' );
+		this.addImport( type );
+
+		return `const ${ name } = varying( ${ type }(), '${ name }' )`;
+
+	}
 
 	emitOverloadingFunction( nodes ) {
 

粤ICP备19079148号