1. 程式人生 > >OpenGL + vs2010開發環境配置

OpenGL + vs2010開發環境配置

vs2010-OpenGL環境配置

1、下載GLUT。Windows環境下的GLUT下載地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2、將下載的壓縮包解開,將得到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;
}