GLSL第1行:错误:#ifdef之后的意外令牌

时间:2016-09-02 09:50:28

标签: android opengl-es glsl c-preprocessor

我有简单的GLSL顶点着色器,我尝试在5.1 Android(设备小米mi4i)上编译

#ifdef GL_ES
    precision mediump float;
#endif

attribute vec3 coord3d;
attribute vec2 texcoord;

varying vec2 f_texcoord;

uniform mat4 mvp;

void main(void) {
    gl_Position = mvp * vec4(coord3d, 1.0);
    f_texcoord = texcoord;
}

但我收到了错误

  

09-02 12:44:40.462 22673-22788 / com.sample.opengl.test E / Adreno-SC :: GLSL第1行:错误:#ifdef之后的意外令牌。

AFAIK GL_ES a valid preprocessor define

那么问题是什么?这是一个实施问题吗?

更新

> cat -v cube.v.glsl

#ifdef GL_ES
    precision mediump float;
#endif

attribute vec3 coord3d;
attribute vec2 texcoord;

varying vec2 f_texcoord;

uniform mat4 mvp;

void main(void) {
    gl_Position = mvp * vec4(coord3d, 1.0);
    f_texcoord = texcoord;
}

> od cube.v.glsl

0000000    064443  062146  063145  043440  057514  051505  020012  020040
0000020    070040  062562  064543  064563  067157  066440  062145  072551
0000040    070155  063040  067554  072141  005073  062443  062156  063151
0000060    005012  072141  071164  061151  072165  020145  062566  031543
0000100    061440  067557  062162  062063  005073  072141  071164  061151
0000120    072165  020145  062566  031143  072040  074145  067543  071157
0000140    035544  005012  060566  074562  067151  020147  062566  031143
0000160    063040  072137  074145  067543  071157  035544  005012  067165
0000200    063151  071157  020155  060555  032164  066440  070166  005073
0000220    073012  064557  020144  060555  067151  073050  064557  024544
0000240    075440  020012  063440  057554  067520  064563  064564  067157
0000260    036440  066440  070166  025040  073040  061545  024064  067543
0000300    071157  031544  026144  030440  030056  035451  020012  063040
0000320    072137  074145  067543  071157  020144  020075  062564  061570
0000340    067557  062162  005073  005175                                
0000350

0 个答案:

没有答案