当然我们还要获取当前屏幕的分辨率大小以用来设置窗口的大小和位置:
//获取客户区屏幕大小
GLint ScreenWidth = glutGet(GLUT_SCREEN_WIDTH);
GLint ScreenHeight = glutGet(GLUT_SCREEN_HEIGHT);
// 窗口设置
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT); // 窗口尺寸
glutInitWindowPosition((ScreenWidth - WIN_WIDTH) / 2, (ScreenHeight - WIN_HEIGHT) / 2 - 50); // 窗口位置
glutCreateWindow("第1个OpenGL窗口"); // 窗口标题
还记得刚才写的渲染回调函数吗?我们现在就来指定它:
glutDisplayFunc(RenderSceneCB);//指定OpenGL程序的渲染函数
来指定一下擦除屏幕所用的颜色值吧,这个颜色值会当窗口什么都不绘制时填满整个窗口:
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);// 缓存清空后的颜色值
接下来初始化另外一个库,就是glew了:
GLenum res = glewInit();
if (res != GLEW_OK) {
fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res));
return 1;
}
最后一步!!!!!!
我们通知这个C++窗口程序可以开始OpenGL主循环了:
glutMainLoop();// 通知开始GLUT的内部循环
这个函数调用传递指令给GLUT现在开始它的内部循环。在这个循环中它监听窗口系统中的事件并通过我们配置的回调传递出去。在我们这个例子中,GLUT将只会调用我们注册的那个display回调(RenderScenceCB),在这个回调函数中(RenderScenceCB)我们可以自定义代码来渲染这一帧的图像。
好了,一切都告一段落了,我们现在可以按下Ctrl+F5键来运行我们的第1个OpenGL窗口程序了,运行正确的话就会出现上面课件中所列举的画面。。
>>本文地址:https://www.ujiuye.com/zhuanye/2020/49137.html
声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。
1 您的年龄
2 您的学历
3 您更想做哪个方向的工作?