これが私が使用しようとしているフラグメントシェーダーコードです(OpenGL ES 2.0、OpenGLES GLSL ES 1.00):
GLchar strFragmentShader[] =
"precision mediump float; \n"
"varying vec2 vTexCoord; \n"
"uniform sampler2D sTexture; \n"
"uniform float offset[] = float[]( 0.0000, 1.3846, 3.2307); \n"
"uniform float weight[] = float[]( 0.2270, 0.3162, 0.0702); \n"
"void main() \n"
"{ \n"
" vec4 sum = texture2D( sTexture, vec2(vTexCoord)/1024.0)*weight[0]; \n"
" for (int i=0;i<3;i++) { \n"
" sum += texture2D( sTexture, ( vec2(vTexCoord+vec2(0.0,offset[i])/1024.0 )*weight[i]; \n"
" sum += texture2D( sTexture, ( vec2(vTexCoord-vec2(0.0,offset[i])/1024.0 )*weight[i]; \n"
" } \n"
" gl_FragColor = sum; \n"
"} \n";
基本的にこのページの例に従っていますが、ERROR:LEX/PARSE-1 (fragment shader, line 4) Syntax error
.
ここ(配列コンストラクターの下) で提案されているのconst
ではなく、それらを宣言しようとすると、 . uniform
ERROR:CUSTOM-5 (fragment shader, line 4) Array cannot be const
明らかに、4行目と5行目に同じ問題があります。これをコンパイルするにはどうすればよいですか?正しい構文は何ですか?