安东的OpenGL Hello Triangle教程中的黑屏

时间:2015-12-03 13:28:02

标签: c++ opengl

我是OpenGL的新手,并开始使用Anton's OpenGL教程进行学习。 我完成了#34; Hello Triangle"教程并使用以下g ++命令编译它而没有错误:

g++ -o hello_triangle main.c -lGLEW -lglfw -lGL -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lm

但是,系统窗口仅在我的代码和book repository的代码中显示黑屏。

glGetString(GL_RENDERER)和glGetString(GL_VERSION)的输出如下:

Renderer: Mesa DRI Intel(R) Sandybridge Mobile  
OpenGL version supported 3.0 Mesa 11.0.6

这个黑屏可能是什么原因?

如果您想查看代码,请查看' 00_hello_triangle'代码。

1 个答案:

答案 0 :(得分:0)

正如@ gnimuc-key建议的那样,当我更改着色器代码中的版本时,无论是顶点还是片段着色器,它都有效:

const char* vertex_shader =
    "#version 130\n"
    "in vec3 vp;"
    "void main () {"
    " gl_Position = vec4 (vp, 1.0);"
    "}"; 

const char* fragment_shader =
    "#version 130\n"
    "out vec4 frag_colour;"
    "void main () {"
    " frag_colour = vec4 (0.5, 0.0, 0.5, 1.0);"
    "}"; 

我将“#version 150”更改为“#version 130”并正常工作