I made a very basic shader that works perfectly fine on Desktop, but when I try it with an AVD the sprite affected by the shader is not drawn. I have tried with WQVGA API 16 and Nexus S API 23. I have also tried putting this in my shaders but then it doesn't work on Desktop nor android :
#ifdef GL_ES
"#version 300"
precision mediump float;
#else
"#version 130"
#endif
My vertex shader is simply a "passthrough" :
#version 130
attribute vec4 a_color;
attribute vec3 a_position;
attribute vec2 a_texCoord0;
uniform mat4 u_projTrans;
varying vec4 v_color;
varying vec2 v_texCoord0;
void main() {
v_color = a_color;
v_texCoord0 = a_texCoord0;
gl_Position = u_projTrans * vec4(a_position, 1.0);
}
My Fragment Shader :
#version 130
precision mediump float;
varying vec4 v_color;
varying vec2 v_texCoord0;
uniform sampler2D u_sampler2D;
uniform vec4 color1;
uniform vec4 color2;
void main()
{
vec4 actualColor = v_color * texture2D( u_sampler2D, v_texCoord0 );
if(actualColor.g > actualColor.r)
actualColor = color1;
else if(actualColor.r > actualColor.g)
actualColor = color2;
gl_FragColor = actualColor;
}
Edit :
I changed gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
in my fragment shader in order to test if a red rectangle would appear, but it failed. The red rectangle being the desktop version and on top being Android.
If it helps I also get this error in my Android console :
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
emulator: emulator window was out of view and was recentered
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1628 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1628 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1628 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1628 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetAttribLocation:988 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetAttribLocation:988 error 0x501
distrib/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetAttribLocation:988 error 0x501
#version 130
? I think API 18 brought it into the mix, but I'd try#version 120
since it's a quick test. \$\endgroup\$