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


解压之后,在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

猜你喜欢

转载自blog.csdn.net/gis0911178/article/details/80592855