多个shader进行合并的时候,非mainshader的variable问题
描述一下
如果我们同时编译多个shader(同一类型的shader,只有一个还有main函数的shader)
那么就是还有main函数的shader:
#version ***
void testFunc();
out vec4 output;
void main(){ testFunc();}
其他定义了testFunc的shader为:
#version ***
float testArry[5] = float[](0,0,0,0,0);
void testFunc2(in int i);
void testFunc(){
for(int i = 0;i < 4;i++){
if(testArry[i] < 0){
testFunc2(i);
}
}
}
void testFunc2(in int i){
if(testArry[i] == 0){
testArry[i]++;
}
}
那么在编译的过程中mainshader会inline testFunc存在的shader部分的指令,但是变量(也就是testArry)该怎么考虑也复制过去呢?