我的代码中嵌入了以下着色器:
static const GLchar * frag_shader_rect =
"precision mediump float;\n"
"varying vec4 v_color;\n"
"void main() {\n"
" gl_FragColor = v_color;\n"
"}\n";
当我尝试使用编译该着色器时
glShaderSource(shader, 1, &frag_shader_rect, NULL);
glCompileShader(shader);
我收到一条错误消息,指出未编译着色器,但错误消息的长度为0。我完全卡在这里。
为什么着色器无法编译?
答案 0 :(得分:0)
您的示例不完整,因此我想知道您是否使用glCreateShader(GL_FRAGMENT_SHADER)正确创建了着色器。
static const GLchar* frag_shader_rect =
"precision mediump float;\n"
"varying vec4 v_color;\n"
"void main() {\n"
" gl_FragColor = v_color;\n"
"}\n";
GLuint shader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(shader, 1, &frag_shader_rect, NULL);
glCompileShader(shader);