1. 程式人生 > >OpenGL+VS2010_+Win10環境配置

OpenGL+VS2010_+Win10環境配置

1.GLEW GLEW是OpenGL的擴充套件庫,支援多個作業系統,下載地址(原始碼):https://sourceforge.net/projects/glew/files/glew/1.13.0/glew-1.13.0.zip/download 解壓後找到  glew-1.13.0\build\vc10 資料夾下的glew.sln檔案,通過VS2010開啟之後,選擇好方案配置 Relese-Win32,進行編譯,生成的.lib和.dll分別在glew-1.13.0/lib、glew-1.13.0/bin資料夾下。

(1)將glew-1.13.0/include資料夾下的GL資料夾複製到VS安裝目錄下D:\Program Files\Microsoft Visual Studio 10.0\VC\include下
(2)將glew-1.13.0\lib\Release\Win32\glew32.lib複製到D:\Program Files\Microsoft Visual Studio 10.0\VC\lib下 (3)將glew-1.13.0\bin\Release\Win32\glew32.dll複製到C:\Windows\System32下

至此,GLEW配置完成。

2.Freeglut

Freeglut下載地址:http://prdownloads.sourceforge.net/freeglut/freeglut-2.8.1.tar.gz?download

解壓後找到  

freeglut-2.8.1\VisualStudio\2010 資料夾下的freeglut.sln檔案,通過VS2010開啟之後,選擇好方案配置 Relese-Win32,進行編譯,生成的.lib和.dll在freeglut-2.8.1\lib\x86\Debug資料夾下。


(1)將\freeglut-2.8.1\include\GL資料夾下的標頭檔案複製到VS安裝目錄下D:\Program Files\Microsoft Visual Studio 10.0\VC\include\GL下 (2)將freeglut-2.8.1\lib\x86\Debug\freeglut.lib複製到D:\Program Files\Microsoft Visual Studio 10.0\VC\lib下
(3)將freeglut-2.8.1\lib\x86\Debug\freegult.dll複製到C:\Windows\System32下。(x64 複製到 SysWOW64 目錄下)。

至此,Freeguly配置完成。

3.GLTools
原始碼下載:https://github.com/HazimGazov/GLTools

解壓之後,在VS2010中新建一個Win32專案,設定工程名為GLTools,將src中的幾個原始檔(.cpp)匯入控專案中,同時將GLEW中的glew.c匯入,選擇好方案配置 Debug-Win32

編譯通過生成GLTools.lib庫檔案,在工程目錄下GLTool\Debug中,將GTool.lib複製到D:\Program Files\Microsoft Visual Studio 10.0\VC\lib下
至此,GTools配置完成。 4.測試 (1)新建一個專案,選擇控制檯程式。 (2)配置依賴項,如下圖所示。


(3)測試程式碼,摘自《OpenGL超級寶典》第二章。 #include "stdafx.h" #include <iostream> #include <GLTools.h> #include <GLShaderManager.h> #include <GL/glut.h> using namespace std;
GLBatch triangleBatch; GLShaderManager shadeManager;
void ChangeSize(int w,int h) {                 glViewport(0,0,w,h); }
void SetupRC() {                 glClearColor(0.0f,0.0f,1.0f,1.0f);                 shadeManager.InitializeStockShaders();
                GLfloat vVerts[] = {-0.5f,0.0f,0.0f,0.5f,0.0f,0.0f,0.0f,0.5f,0.0f};
                triangleBatch.Begin(GL_TRIANGLES,3);                 triangleBatch.CopyVertexData3f(vVerts);                 triangleBatch.End(); }
void RemderScene(void ) {                 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
                GLfloat vRed[] = {1.0f,0.0f,0.0f,1.0f};                 shadeManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);                 triangleBatch.Draw();
                glutSwapBuffers(); }
int _tmain(int argc, char* argv[]) {                 gltSetWorkingDirectory(argv[0]);                 glutInit(&argc,argv);                 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);                 glutInitWindowSize(800,600);                 glutCreateWindow( "Triangle");                 glutReshapeFunc(ChangeSize);                 glutDisplayFunc(RemderScene);
                GLenum err = glewInit();                  if(GLEW_OK != err)                 {                                 fprintf(stderr, "GLEW Error: %s\n",glewGetErrorString(err));                                  return 1;                 }                 SetupRC();                                  glutMainLoop();                  return 0; }

執行效果:


參考連結:https://blog.csdn.net/u011923796/article/details/50880870