|
@@ -7,6 +7,7 @@ import SetNode from '../utils/SetNode.js';
|
|
|
import FlipNode from '../utils/FlipNode.js';
|
|
import FlipNode from '../utils/FlipNode.js';
|
|
|
import ConstNode from '../core/ConstNode.js';
|
|
import ConstNode from '../core/ConstNode.js';
|
|
|
import MemberNode from '../utils/MemberNode.js';
|
|
import MemberNode from '../utils/MemberNode.js';
|
|
|
|
|
+import StackTrace from '../core/StackTrace.js';
|
|
|
import { getValueFromType, getValueType } from '../core/NodeUtils.js';
|
|
import { getValueFromType, getValueType } from '../core/NodeUtils.js';
|
|
|
import { warn, error } from '../../utils.js';
|
|
import { warn, error } from '../../utils.js';
|
|
|
|
|
|
|
@@ -18,6 +19,8 @@ const NodeElements = new Map();
|
|
|
|
|
|
|
|
export function addMethodChaining( name, nodeElement ) {
|
|
export function addMethodChaining( name, nodeElement ) {
|
|
|
|
|
|
|
|
|
|
+ // No require StackTrace because this is internal API
|
|
|
|
|
+
|
|
|
if ( NodeElements.has( name ) ) {
|
|
if ( NodeElements.has( name ) ) {
|
|
|
|
|
|
|
|
warn( `TSL: Redefinition of method chaining '${ name }'.` );
|
|
warn( `TSL: Redefinition of method chaining '${ name }'.` );
|
|
@@ -66,7 +69,7 @@ Node.prototype.assign = function ( ...params ) {
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
|
|
- error( 'TSL: No stack defined for assign operation. Make sure the assign is inside a Fn().' );
|
|
|
|
|
|
|
+ error( 'TSL: No stack defined for assign operation. Make sure the assign is inside a Fn().', new StackTrace() );
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -374,13 +377,13 @@ const ShaderNodeProxy = function ( NodeClass, scope = null, factor = null, setti
|
|
|
|
|
|
|
|
if ( minParams !== undefined && params.length < minParams ) {
|
|
if ( minParams !== undefined && params.length < minParams ) {
|
|
|
|
|
|
|
|
- error( `TSL: "${ tslName }" parameter length is less than minimum required.` );
|
|
|
|
|
|
|
+ error( `TSL: "${ tslName }" parameter length is less than minimum required.`, new StackTrace() );
|
|
|
|
|
|
|
|
return params.concat( new Array( minParams - params.length ).fill( 0 ) );
|
|
return params.concat( new Array( minParams - params.length ).fill( 0 ) );
|
|
|
|
|
|
|
|
} else if ( maxParams !== undefined && params.length > maxParams ) {
|
|
} else if ( maxParams !== undefined && params.length > maxParams ) {
|
|
|
|
|
|
|
|
- error( `TSL: "${ tslName }" parameter length exceeds limit.` );
|
|
|
|
|
|
|
+ error( `TSL: "${ tslName }" parameter length exceeds limit.`, new StackTrace() );
|
|
|
|
|
|
|
|
return params.slice( 0, maxParams );
|
|
return params.slice( 0, maxParams );
|
|
|
|
|
|
|
@@ -871,7 +874,7 @@ const ConvertType = function ( type, cacheMap = null ) {
|
|
|
|
|
|
|
|
if ( param === undefined ) {
|
|
if ( param === undefined ) {
|
|
|
|
|
|
|
|
- error( `TSL: Invalid parameter for the type "${ type }".` );
|
|
|
|
|
|
|
+ error( `TSL: Invalid parameter for the type "${ type }".`, new StackTrace() );
|
|
|
|
|
|
|
|
return new ConstNode( 0, type );
|
|
return new ConstNode( 0, type );
|
|
|
|
|
|
|
@@ -960,7 +963,7 @@ class FnNode extends Node {
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
|
|
- error( 'TSL: Invalid layout type.' );
|
|
|
|
|
|
|
+ error( 'TSL: Invalid layout type.', new StackTrace() );
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1044,7 +1047,7 @@ class FnNode extends Node {
|
|
|
|
|
|
|
|
const type = this.getNodeType( builder );
|
|
const type = this.getNodeType( builder );
|
|
|
|
|
|
|
|
- error( 'TSL: "Fn()" was declared but not invoked. Try calling it like "Fn()( ...params )".' );
|
|
|
|
|
|
|
+ error( 'TSL: "Fn()" was declared but not invoked. Try calling it like "Fn()( ...params )".', this.stackTrace );
|
|
|
|
|
|
|
|
return builder.generateConst( type );
|
|
return builder.generateConst( type );
|
|
|
|
|
|
|
@@ -1216,14 +1219,14 @@ addMethodChaining( 'convert', convert );
|
|
|
*/
|
|
*/
|
|
|
export const append = ( node ) => { // @deprecated, r176
|
|
export const append = ( node ) => { // @deprecated, r176
|
|
|
|
|
|
|
|
- warn( 'TSL: append() has been renamed to Stack().' );
|
|
|
|
|
|
|
+ warn( 'TSL: append() has been renamed to Stack().', new StackTrace() );
|
|
|
return Stack( node );
|
|
return Stack( node );
|
|
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
addMethodChaining( 'append', ( node ) => { // @deprecated, r176
|
|
addMethodChaining( 'append', ( node ) => { // @deprecated, r176
|
|
|
|
|
|
|
|
- warn( 'TSL: .append() has been renamed to .toStack().' );
|
|
|
|
|
|
|
+ warn( 'TSL: .append() has been renamed to .toStack().', new StackTrace() );
|
|
|
return Stack( node );
|
|
return Stack( node );
|
|
|
|
|
|
|
|
} );
|
|
} );
|