我的代码中嵌入了以下着色器:
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.我完全卡在这里。
为什么着色器不能编译?
您的示例不完整,因此我发现自己想知道是否使用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);