我是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'代码。
答案 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”并正常工作