OpenGL 开发环境配置

From: http://www.cnblogs.com/kesalin/archive/2009/09/08/1562499.html

 

OpenGL 下有一些重用的辅助库,比如glut,glee,glew等等,在windows平台下需要自己安装,因为微软为了推广自己的DX,在windows下只支持openGL 1.1版本。你可以打开\Microsoft Visual Studio X.X\VC\include\gl\gl.h 或 \Microsoft  SDKs\Windows\v6.1\Include\gl\gl.h 文件,查看微软默认支持的openGL版本号是:


/* Version */

#define GL_VERSION_1_1                    1


现在openGL已经发展到3.0了,因此我们需要自己下载配置这些库,在这里我们来安装glut, glee, glew这三个库,以及一些OpenGL扩展支持。


glut : 提供对窗口的封装,这是跨平台窗口的,我们就不必自己去编写烦琐的窗口代码。

glee : 方便用来判断当前系统是不是支持某项OpenGL特性,我们就不用自己去写烦琐的先取函数地址然后再判断的代码了。

glew : 因为windows默认只支持OpenGL 1.1,你要想用更高版本的OpenGL,你就需要安装它,它能自动识别你的平台所支持的全部OpenGL高级扩展函数。


1,安装 glut


GLUT3.7下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip


点击上面的链接下载最新的GLUT,最新的GLUT版本是3.7,解压,将 glut32.dll 和 glut.dll 拷贝到 c:\windows\system32 下面,将 glut32.lib 和 glut.lib 拷贝到 VC 安装目录下的 lib 目录下(如:\Microsoft Visual Studio 9.0\VC\lib\下),将 glut.h 拷贝到VC安装目录下的 \include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。在程序中我们只需要把


#include <GL/gl.h>

#include <GL/glu.h>



#include <GL/glut.h>


替换就可以了。因为在头文件 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 */


2,安装 glew


下载链接:https://sourceforge.net/project/downloading.php?group_id=67586&filename=glew-1.5.1-win32.zip


点击上面的链接下载最新的GLEW(支持OpenGL 3.0),解压,将 \bin\glew32.dll 拷贝到 c:\windows\system32 下面,将 \lib\glew32.lib 拷贝到VC安装目录下的 lib 目录下(如:\Microsoft Visual Studio 9.0\VC\lib\下),将 \include\glew.h 和 \include\wglew.h 拷贝到 VC 安装目录下的 \include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。在程序中我们只需要在包含gl,glu 或 glut.h 之前包含 glew.h就可以了(注意:一定要先包含 glew.h),在在代码中加上这么一句:


#pragma comment (lib, "glew32.lib")  


示例:


#include <GL/glew.h>

#include <GL/glut.h>


#progrma comment(lib, "glew32.lib")


在创建OpenGL渲染context之后,调用 glewInit(); 初始化glew就可以了。



3,安装 glee


GLee 主页:http://elf-stone.com/glee.php

下载链接:http://elf-stone.com/getfile.php?title=GLee


点击上面的链接下载最新的GLee,解压,将 GLee.lib 拷贝到 VC 安装目录下的 lib 目录下(如:\Microsoft Visual Studio 9.0\VC\lib\下),将 GLee.h 拷贝到VC安装目录下的 \include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。在应用程序中,我们就可以像如下来使用:


#include <GL/GLee.h>

#progrma comment(lib, "GLee.lib")


if( GLEE_ARB_multitexture ) // is multitexture support available?

{

      glMultiTexCoord2fARB(...);    // safe to use multitexture

}

else 

{

      // fallback

}


4,安装一些扩展支持

下载这三个文件 glext.hglxext.h, 和 wglext.h ,放置到 VC 安装目录下的 \include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。使用的时候直接包含它们就可以了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS Grid布局(3)

10.网格线命名 通过grid-template-rows和grid-template-columns定义网格时&#xff0c;网格线可以被命名。网格线名称也可以设置网格项目位置 grid-template-rows和grid-template-columns定义你的网格&#xff0c;将名称分配给网格线 定义网格线名称时需要避免使用规范中出现…

main.js中的Vue.config.productionTip = false

开发模式&#xff1a;npm run dev是前端自己开发用的 生产模式&#xff1a;npm run build 打包之后给后端放在服务端上用的 Vue.config.productionTip false 1 上面这行代码的意思 是阻止显示生产模式的消息。 如果没有这行代码&#xff0c;或者设置为true&#xff0c;控制台就…

VS 2010 OpenGL 配置与实例开发

首先参考了网上的安装配置环境部分&#xff1a;http://blog.csdn.net/Ididcan/article/details/4490797 最近准备学习OpenGL,结果发现敲入书中给的代码&#xff0c;居然提示头文件找不到&#xff0c;相当郁闷&#xff0c;查了一下才发现有些不是VC自带的&#xff0c;需要自己下…

《COM原理与应用》学习笔记二——COM对象和COM接口的实现

COM对象是给用户提供服务的封装的实体。这个应该和C中类的对象理解起来是相似的。但是有时候也把COM对象当作提供服务的那个类。COM对象也对数据进行了封装&#xff0c;然后也提供了接口。不过和类还是有一些不一样的。类中的数据可以申明为public&#xff0c;然后让用户能够直…

禁止ipc$默认共享的方法

以下四种方法可以参考一下: A、一种办法是把ipc$和默认共享都删除了。但重起后还会有。这就需要改注册表。 1&#xff0c;先把已有的删除 net share ipc$ /del net share admin$ /del net share c$ /del …………&#xff08;有几个删几个&#xff09; 2&#xff0c;禁止建立空…

NODE属性说明

注&#xff1a;文本节点、元素节点或者注释节点等都是Node类型的子类&#xff0c;它们继承自Node类&#xff0c;所以这里的node可以是任何一种节点类型 1.node.nodeType用来以数字值返回指定节点node的节点类型 2.node.nodeName用来返回指定节点的节点名称 如果节点是元素节点…

使用临时文件mkstemp和输出errno对应的错误描述信息strerror

/* <<高级Linux编程.pdf>> page24-25: temp_file.cmkstemp: 从一个文件名模板(结尾是&#xff1a;XXXXXX)生成临时文件名&#xff0c;创建这个临时文件&#xff0c;将模式设置为仅当前用户可以访问&#xff0c;并且以读写权限打开这个文件。mkstemp函数用其他字符替…

微信h5网页关闭分享以及关闭当前页面

关闭网页分享一些按钮 document.addEventListener("WeixinJSBridgeReady", function () {WeixinJSBridge.call(hideOptionMenu); });关闭网页 WeixinJSBridge.call(closeWindow);

Linux Shell脚本中点号和source命令

Linux中一个文件是根据其是否具有执行属性来判断他是否可以直接运行的。就像Windows下的exe一样。如果我们要执行某一个文件&#xff0c;可以先将其权限修改为可执行(必须是所有者或者root才能修改)。然后&#xff0c;通过用sh来执行该脚本或者./脚本名。 但有时候我们并不想修…

[转载]使用命名管道实现进程间通信

使用命名管道实现进程间通信 来源 : VChelp 4.5 进程间通信 在Win32下提供的进程间通信方式有以下几种&#xff1a; 剪贴板Clipboard&#xff1a;在16位时代常使用的方式&#xff0c;CWnd类中提供了支持。 COM/DCOM&#xff1a;通过COM系统的代理存根方式进行进程间数据交换&…

HTML DOM之标签操作方法

1.document.getElementById(id)方法可返回对拥有指定 ID 的第一个对象的引用 2.document.getElementsByName(name)方法可返回带有指定名称的对象的集合 3.document.getElementsByTagName(tagname)方法可返回带有指定标签名的对象的集合。如果把特殊字符串 “*” 传递给 getEle…

Vue中动态(import 、require)显示img图片

vue中&#xff0c;经常会遇到显示图片的问题&#xff0c; 如果是一个普通组件的话&#xff0c;那么这样就可以了 <img src"../assets/images/avtor.jpg" width"100%"> 上文的弊端有两个&#xff1a; 首先&#xff0c;是采用绝对路径引入。如果以…

案例精解企业级网络构建

早就听说51CTO博客出书了,但由于放假在家,没有来得及购买.现在开学了,天天上51CTO网站,博客出书的广告打的到处都是,嘿嘿!~~想不关注都不行啊!看了各位博友对这本书的好评,终于禁不住诱惑,也在网上购买了一本.今天终于收到书了.打开包装,书真的很精美.自己非常喜欢,我是一名专科…

Oracle 中 for update 和 for update nowait 的区别

原文出处http://bijian1013.iteye.com/blog/1895412 一.for update 和 for update nowait 的区别 首先一点&#xff0c;如果只是select 的话&#xff0c;Oracle是不会加任何锁的&#xff0c;也就是Oracle对 select 读到的数据不会有任何限制&#xff0c;虽然这时候有可能另外一…

HTML DOM之节点操作方法(1)

1.checkboxObject.focus()方法用于为 checkbox 赋予焦点 2.checkboxObject.blur()方法用于让 checkbox 失去焦点 3.appendChild()在子节点列表之后插入新增的子节点 注&#xff1a;您也可以使用 appendChild()方法将一个元素移动到另一个元素中 这里就将”myList2”中最后一个…

常用端口号

端口号标识了一个主机上进行通信的不同的应用程序。 1.HTTP协议代理服务器常用端口号&#xff1a;80/8080/3128/8081/90982.SOCKS代理协议服务器常用端口号&#xff1a;10803.FTP&#xff08;文件传输&#xff09;协议代理服务器常用端口号&#xff1a;214.Telnet&#xff08;…

关于停止发表“每周新闻回顾”的通知

各位朋友&#xff1a;从2007年春节之后&#xff0c;老杨就基本上坚持每周整理当周重大IT新闻&#xff0c;如此坚持了一年。之后&#xff0c;由51CTO编辑部各位编辑轮流进行这项工作&#xff0c;算来已经超过一年半了。承蒙各位读者厚爱&#xff0c;如今新闻回顾已经成为51CTO.c…