在OpenGL ES 2中,您可以将字符串数组设置为着色器源
void ShaderSource( uint shader, sizei count, const char **string, const int *length );
可用于将“注入”宏到着色器源中。 WebGL中的相应函数只占用一个字符串。
void shaderSource(WebGLShader shader, DOMString source)
是唯一可以使用宏手动将它们插入源字符串吗?
答案 0 :(得分:0)
我不确定inject macros
const char* str1 = "foo";
const char* str2 = "bar";
const char* strings[] = { str1, str2, }
glShaderSource(shader, 2, strings, NULL);
在功能上等同于
var str1 = "foo";
var str2 = "bar";
var strings = [str1, str2];
gl.shaderSource(shader, strings.join(""));
所以,回答你的问题。如果要插入宏,请将它们添加到您提供给gl.shaderSource的字符串中。宏没有什么特别之处,它们来自哪个字符串。就GL而言,它只是一个大字符串。