我的代码中如何以及在什么阶段创建有效的 OpenGL 上下文?即使是简单的 OpenGL 代码我也会遇到错误。
从帖子上comp.graphics.api.opengl
,似乎大多数新手都在他们的第一个 OpenGL 程序上烧伤了双手。在大多数情况下,错误是由于在创建有效的 OpenGL 上下文之前调用 OpenGL 函数而导致的。 OpenGL 是一个状态机。机器启动并处于就绪状态后,方可投入工作。
下面是一些创建有效 OpenGL 上下文的简单代码:
#include <stdlib.h>
#include <GL/glut.h>
// Window attributes
static const unsigned int WIN_POS_X = 30;
static const unsigned int WIN_POS_Y = WIN_POS_X;
static const unsigned int WIN_WIDTH = 512;
static const unsigned int WIN_HEIGHT = WIN_WIDTH;
void glInit(int, char **);
int main(int argc, char * argv[])
{
// Initialize OpenGL
glInit(argc, argv);
// A valid OpenGL context has been created.
// You can call OpenGL functions from here on.
glutMainLoop();
return 0;
}
void glInit(int argc, char ** argv)
{
// Initialize GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowPosition(WIN_POS_X, WIN_POS_Y);
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
glutCreateWindow("Hello OpenGL!");
return;
}
Note:
- 这里感兴趣的电话是
glutCreateWindow()
。它不仅创建一个窗口,还创建一个OpenGL上下文。
- 使用创建的窗口
glutCreateWindow()
直到glutMainLoop()
叫做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)