我从android SDK样本中获取了以下着色器:
final String vertexShader =
"uniform mat4 uMVPMatrix;\n" +
"attribute vec4 aPosition;\n" +
"attribute vec2 aTextureCoord;\n" +
"varying vec2 vTextureCoord;\n" +
"void main() {\n" +
" gl_Position = uMVPMatrix * aPosition;\n" +
" vTextureCoord = aTextureCoord;\n" +
"}\n";
着色器来自他们的opengl es 2.0示例,并且在我编写示例时工作正常。
然而,当我尝试在程序中编译着色器时,我得到:
03-07 17:36:21.109: ERROR/GLES20TEST(5992): Could not compile shader 35633:
还有一个方法:
GLES20.glGetShaderInfoLog(shader)
没有返回任何信息(就我从谷歌研究中所理解的那样,我相信这是一个已知的错误)
有谁知道我做错了什么?
谢谢, 杰森
答案 0 :(得分:9)
解决了这个问题。
问题在于我试图在OnSurfaceCreated之外创建一个着色器 导致线程问题