0

OpenGL ES 2では、文字列の配列をシェーダーソースとして設定できます

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

これは、マクロをシェーダーソースに「注入」するために使用できます。WebGLの対応する関数は、見た目どおり1つの文字列のみを取ります。

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に関する限り、それは1つの大きな文字列にすぎません。

于 2012-08-07T19:21:29.170 に答える