GLSL着色器编译失败,没有错误消息

问题描述 投票:-2回答:1

我的代码中嵌入了以下着色器:

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.我完全卡在这里。

为什么着色器不能编译?

c opengl-es-2.0
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.