OpenGL + vs2010開發環境配置
阿新 • • 發佈:2019-01-09
vs2010-OpenGL環境配置
1、下載GLUT。Windows環境下的GLUT下載地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip2、將下載的壓縮包解開,將得到5個檔案:glut.h glut.lib glut32.lib glut.dll glut32.dll
3、將glut.h放到(C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl\)這個資料夾
4、將glut.lib和glut32.lib放到靜態函式庫所在資料夾(C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib)
5、將glut.dll和glut32.dll放到作業系統所在目錄下面的system32資料夾內 (C:Windows\system32)
測試配置環境開啟VS2010,選擇File->New->Project,然後選擇Win32 Console Application,選擇一個名字OpenGLTest,然後按OK。
在彈出的對話方塊左邊點Application Settings,找到Empty project並勾上,選擇Finish。
然後向該工程新增一個程式碼檔案,取名為OpenGLTest.cpp。
向OpenGLTest.cpp中新增程式碼
#include<gl/glut.h> //#include<gl/glu.h> //glut.h自動包含了glu.h 和 gl.h //#include<gl/gl.h> /*<gl/glut.h>內部有 #pragma comment (lib, "winmm.lib") // link with Windows MultiMedia lib #pragma comment (lib, "opengl32.lib") // link with Microsoft OpenGL lib #pragma comment (lib, "glu32.lib") // link with OpenGL Utility lib #pragma comment (lib, "glut32.lib") // link with Win32 GLUT lib */ void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); glEnd(); glutSwapBuffers(); } int _tmain(int argc, _TCHAR* argv[]) { glutInit(&argc, (char**) argv);//glutInit用來初始化GLUT庫並同視窗系統對話協商。 glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);//glutInitDisplayMode用來確定所建立視窗的顯示模式。引數GLUT_SINGLE 指定單快取視窗,這也是預設模式,對應的模式為GLUT_DOUBLE 雙快取視窗。引數GLUT_RGB指定顏色RGBA模式,這也是預設模式,對應的模式為GLUT_INDEX 顏色索引模式視窗。 glutInitWindowPosition(100,100);//glutInitWindowPosition 設定初始視窗的位置,第一個引數為視窗左上角x的座標,第二個引數為視窗左上角y的座標,以畫素為單位。螢幕的左上角的座標為(0,0),橫座標向右逐漸增加,縱座標向下逐漸增加。 glutInitWindowSize(320,320);//glutInitWindowSize 初始化視窗的大小,第一個引數為視窗的寬度,第二個引數為視窗的高度,以畫素為單位。 glutCreateWindow("Hello OpenGL");//glutCreateWindow 建立頂層視窗,視窗的標題名字為擴號中的引數。 glutDisplayFunc(renderScene);//glutDisplayFunc 註冊當前視窗的顯示回撥函式。當一個視窗的影象層需要重新繪製時,GLUT將呼叫該視窗的顯示回撥函式。在此例中的renderScene就是顯示回撥函式,顯示回撥函式不帶任何引數,它負責整個影象層的繪製。我們的大部分工作將集中在這個函式中。 glutMainLoop();//glutMainLoop 進入GLUT事件處理迴圈。glutMainLoop函式在GLUT程式中最多隻能呼叫一次,它一旦被呼叫就不再返回,並且呼叫註冊過的回撥函式。所以這個函式必須放在註冊回撥函式的後面,此例中為glutDisplayFunc 。 return 0; }