我是OpenGL的新手,开始使用Anton的OpenGL教程进行学习。我完成了"Hello Triangle"教程,并使用以下g++命令进行了无错误编译:
g++ -o hello_triangle main.c -lGLEW -lglfw -lGL -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lm
然而,无论是在我的代码中还是在图书存储库的代码中,系统窗口都只显示一个黑屏。
glGetString(GL_RENDRER)和glGetString的输出如下:
Renderer: Mesa DRI Intel(R) Sandybridge Mobile
OpenGL version supported 3.0 Mesa 11.0.6
黑屏的原因可能是什么?
如果要检查代码,只需查看"00_hello_triangle"代码即可。
正如@gnimuc键所建议的,当我更改着色器代码中的版本时,顶点和碎片着色器都起作用:
const char* vertex_shader =
"#version 130n"
"in vec3 vp;"
"void main () {"
" gl_Position = vec4 (vp, 1.0);"
"}";
const char* fragment_shader =
"#version 130n"
"out vec4 frag_colour;"
"void main () {"
" frag_colour = vec4 (0.5, 0.0, 0.5, 1.0);"
"}";
我将"#版本150"更改为"#版本130",并正常工作