0

在 OpenGL ES 2 中,您可以将字符串数组设置为着色器源

void ShaderSource( uint shader, sizei count, const char **string, const int *length );

可用于将宏“注入”到着色器源中。WebGL 中的相应函数看起来只需要一个字符串。

void shaderSource(WebGLShader shader, DOMString source)

使用宏手动将它们插入源字符串的唯一可能性是什么?

4

1 回答 1

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 而言,它只是一个大字符串。

于 2012-08-07T19:21:29.170 回答