我无法在不是由 glut 创建的 OpenGL 上下文中使用 GLTools 库存着色器。
我正在从 Superbible 第 5 版学习 OpenGL。提供的GLShaderManager
和gltMakeCube
(来自 GLTools)允许我GLBatch::Draw()
使用 Superbible 中的以下代码在 glut 创建的窗口中渲染一些立方体():
gltSetWorkingDirectory(values[0]);
glutInit(&count, values);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(1200, 400);
glutCreateWindow("Test");
我正在尝试从该程序中删除过剩代码,按照此处的示例http://www.opengl.org/wiki/Programming_OpenGL_in_Linux:_Programming_Animations_with_GLX_and_Xlib创建一个窗口并为其附加上下文。(我正在运行 Ubuntu)
我设法创建了一个窗口和一个上下文,并成功调用 glClearColor 来更改窗口的背景颜色。但是,我的立方体不再被绘制。上面链接的示例程序可以正常工作,但它似乎没有使用着色器,而是依赖于调用glColor3f
和glVertex3f
构建立方体。
为什么我使用 GLTools 的股票着色器进行渲染的技术不能在不是由 glut 创建的窗口/上下文中工作?