setCurrentStack
setCurrentStack
一个 TSL 内部核心函数,用于在将节点图转换为 GLSL 的过程中管理和切换当前的构建上下文(例如,顶点或片元着色器),确保代码生成的正确性。
核心优势
通过隔离不同的构建上下文(如顶点与片元、函数作用域),确保生成的着色器程序结构正确、逻辑清晰,是 TSL 模块化和可扩展性的基础。
常见用途
在 TSL 内部构建器中切换顶点/片元着色器上下文
在处理函数调用时创建和销毁局部作用域
如何调整
由于是内部状态管理函数,错误地切换或忘记切换堆栈将导致灾难性的构建错误,例如将片元着色器的逻辑写入顶点着色器,从而导致最终的 GLSL 代码编译失败。
代码示例
1// 切换到顶点堆栈以开始构建
2setCurrentStack( this.vertexStack );
3
4// ...
5
6// 切换到片元堆栈以继续构建
7setCurrentStack( this.fragmentStack );