我的代码中嵌入了以下着色器:
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);
关于c - GLSL Shader 编译失败,没有错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745499/