c - GLSL Shader 编译失败,没有错误消息

标签 c opengl-es-2.0

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

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/

相关文章:

opengl-es - 使用片段着色器在二维多边形上绘制边框

ios - 如何使用 GLSL 在没有 alpha 混合的情况下组合两个纹理

c - if 语句在 stm32 无限循环内不起作用

android - 如何通过opengl显示相机预览

c - "scanf with printf"与 "fgets with printf"

c - 结构体中的整型 double 指针

ios - 如何从 AVCaptureVideoPreviewLayer 获取 UIImage?

ios - iPhone 6s/RoboVM (?) GLTexImage2D 渲染问题

c - 主进程 -> pthread -> fork + execvp

c - 在 C 中获取未定义或实现定义行为的无效指针的值?