當然我們還要獲取當前屏幕的分辨率大小以用來設置窗口的大小和位置:
//獲取客戶區屏幕大小
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窗口程序了,運行正確的話就會出現上面課件中所列舉的畫面。。
>>本文地址:http://www.jecan.cn/zhuanye/2020/49137.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?