OpenGL 在Win7(32)上配置开发环境流程及注意问题
来源:互联网 发布:结构分析软件 编辑:程序博客网 时间:2024/05/22 21:47
在Win7 32位计算机上配置 OpenGL开发环境:Visual Studio 2013(编程环境)+库文件(freeglut,glew,gltools,glut)
具体步骤:
1.安装Visual Studio 2013(或者其他版本)。需要先安装IE10。
2.安装GLUT工具包。第一步:下载GLUT,将解压得到的.h文件放到Visual Studio 2013安装目录下“VC/include”下。可以在include目录下面新建一个GL文件夹,专门放置OpenGL的头文件,这样在编程时包含头文件时注意写成“#include<GL/glut.h>”。也可以不新建GL文件夹,这样在编程时包含头文件时注意写成“#include<glut.h>”。
第二步:将解压得到的glut.lib和glut32.lib放到Visual Studio 2013安装目录“VC/lib”。
第三步:将解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹下,典型位置:“C/Windows/System32”。假如是64位系统,放到“C/Windows/Syswow64”。
3.安装glew工具包。下载GLEW,将解压得到的.h文件,.lib文件,.dll文件按照安装GLUT工具包的路径放到相应的文件夹下面。
4.安装freeglut工具包。下载freeglut,解压。第一步:打开Visual Studio 2013开发环境。通过Visual Studio 2013打开解压freeglut后得到的工程文件(freeglut.sln)。将Visual Studio 2013的解决方案配置由Debug改为Release_Static。然后对整个工程生成解决方案。
第二步:第一步编译通过后,回到freeglut文件夹,编译会生成lib文件(在“lib/x86”文件夹下面找)。将lib文件和freeglut文件夹下的.h文件以及.dll文件按照安装GLUT工具包的路径放到相应的文件夹下面。
5.安装gltools工具包。下载gltools,解压。第一步:打开Visual Studio 2013开发环境。新建一个空的控制台项目。然后将解压后文件夹下的“Src\GLTools\src”目录下的所有cpp文件加入刚才新建的空的工程中。然后编译生成解决方案。
第二步:参考安装freeglut工具包,将.h文件,和编译生成的.lib文件放到相应的文件夹下。
6.打开Visual Studio 2013,新建一个工程(编写代码测试OpenGL用),进入“项目->属性->配置属性->链接器->输入->附加依赖项”,添加“freeglut.lib;glut32.lib;glew32s.lib;gltools.lib;”特别注意这几个lib的排列顺序,排列前后顺序不对的话,会导致编写的OpenGL程序编译出错,或者就算编译通过后,运行会卡死、停止工作等情况。
7.在刚才新建的工程中新建一个cpp文件,新建测试程序。具体的OpenGL代码如下:
#include <GLTools.h> // OpenGL toolkit
#include <GLShaderManager.h> // Shader Manager Class
#include<GLFrustum.h>
#include<math3d.h>
#include<StopWatch.h>
#include <GL/glut.h> // Windows FreeGlut equivalent
GLBatch triangleBatch;
GLShaderManager shaderManager;
GLTriangleBatch sphere;
GLFrustum frustum;
M3DMatrix44f translation, rotation, modelviewmatrix, finalmatrix;
///////////////////////////////////////////////////////////////////////////////
void ChangeSize(int w, int h)
{
if (h == 0)
h = 1;
glViewport(0, 0, w, h);
frustum.SetPerspective(45.0, float(w) / float(h), 1.0, 10.0);
}
///////////////////////////////////////////////////////////////////////////////
void SetupRC()
{
// Blue background
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
shaderManager.InitializeStockShaders();
gltMakeSphere(sphere, 0.6,40, 20);
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
}
///////////////////////////////////////////////////////////////////////////////
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
static CStopWatch time;
GLfloat deg = time.GetElapsedSeconds()*45.0f;
m3dTranslationMatrix44(translation, 0.0f, 0.0f, x);
m3dRotationMatrix44(rotation, m3dDegToRad(deg), 1.0f, 0.0f, 0.0f);
m3dMatrixMultiply44(modelviewmatrix, translation, rotation);
m3dMatrixMultiply44(finalmatrix, frustum.GetProjectionMatrix(), modelviewmatrix);
GLfloat vBlack[] = { 0.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_FLAT, finalmatrix,vBlack);
sphere.Draw();
// Perform the buffer swap to display back buffer
glutSwapBuffers();
glutPostRedisplay();
}
///////////////////////////////////////////////////////////////////////////////
int main(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(RenderScene);
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
return 1;
}
SetupRC();
glutMainLoop();
return 0;
}
- OpenGL 在Win7(32)上配置开发环境流程及注意问题
- win7 上配置openGL开发环境(配套openGL 超级宝典Super Bible 6th)
- VS2010+Win7配置OpenGL开发环境
- Win7 64 + VS2010 + OpenGL 开发环境配置
- 在Win7上配置python开发环境(Sublime Text 2)
- [OpenGL]OpenGL概述及VS2010配置OpenGL开发环境
- VS2010上openGL开发环境配置
- Win7 64位+VS2008环境下配置 opengl 开发环境
- opengl在windows上的开发环境
- 在Win7上配置php环境
- Win7上配置Cocos2dx开发环境
- win7 64位系统,vs2010下配置OpenGL开发环境
- win7 64位系统,vs2010下配置OpenGL开发环境
- win7 64位系统,vs2010下配置OpenGL开发环境
- 在win7下搭建OpenGL ES 2.0的开发环境
- 在Win7下配置Android开发环境
- 在win7下配置 hadoop开发环境
- android开发环境及注意问题
- 用Eclipse创建第一个Spring项目(最最入门级)
- 使用CLI获取EBS的总使用大小
- Android5.1 Telephony流程分析——拨打电话流程(MO CALL)
- postgresql 的自动增量字段
- activemq接收到的消息为空
- OpenGL 在Win7(32)上配置开发环境流程及注意问题
- HDU-1856 More is better
- muduo网络库源码学习————互斥锁
- 可滑动关闭的对话框(二)
- J2SE配置问题—;expected错误总结
- 结构体成员内部含有一级指针和二级指针的情况
- UI22_动画
- 【网络流之最大流】POJ1273-Drainage Ditche【模板题】
- CentOS系统下的Hadoop集群(第8期)_HDFS初探之旅