glu,glut,glext,glew
来源:互联网 发布:linux高性能服务器编程 编辑:程序博客网 时间:2024/04/27 00:31
在学习OpenGL的过程中,我想,对于除了它自身版本里提供的那些核心函数库外,下面这些也是一个常用GL的人所应该了解的。
glu是实用库,包含有43个函数,函数名的前缀为glu。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。
glaux是OpenGL辅助库,包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。
glut是实用工具库,基本上是用于做窗口界面的,并且是跨平台(所以有时你喜欢做简单的demo的话,可以光用glut就ok了)
而关于glext,glew,glee则是如下(参考文章:glext; glew, glee这些library的原理):
下面就是glext为我们做的事:
(1), 根据显卡厂商对某个extension的具体说明来定义一些宏.
#define GL_ARRAY_BUFFER_ARB 0×8892 //具体的地址是在各个specification中定义的.
#define GL_STATIC_DRAW_ARB 0×88E4
(2), 声明一些函数指针的类型.
typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, int size, const GLvoid *data, GLenum usage);
然后在我自己的实现中就需要做以下的事:
(3). 声明定义一些函数指针:
PFNGLGENBUFFERSARBPROC glGenBuffersARB = NULL;
PFNGLBINDBUFFERARBPROC glBindBufferARB = NULL;
PFNGLBUFFERDATAARBPROC glBufferDataARB = NULL;
PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB = NULL;
(4). 利用wglGetProcAddress函数取得各个函数的地址指针.
glBindBufferARB = (PFNGLBINDBUFFERARBPROC)wglGetProcAddress(“glBindBufferARB”);
glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)wglGetProcAddress(“glGenBuffersARB”);
glBufferDataARB = (PFNGLBUFFERDATAARBPROC)wglGetProcAddress(“glBufferDataARB”);
而其实在glATI.h, wglATI.h, ATIExtensions.h, and ATIExtensions.c中也是这么做的.那些glew, glee就将上面4步都给我们做了.
所以当使用extensions时候,要么是下载glext回来,自己提供源代码实现(3, 4)两步。要么是直接用glew or glee。
超越C++原创文章,转载请注明来源并保留原文链接
本文链接:http://www.beyondc.cn/glu-glut-glext-glew.html
- glu,glut,glext,glew
- glew, glee与 gl glu glut glx glext的区别和关系
- glew, glee与 gl, glu, glut, glx, glext的区别和关系
- glew, glee与 gl glu glut glx glext的区别和关系
- glew, glee与 gl, glu, glut, glx, glext的区别和关系
- glew, glee与 gl, glu, glut, glx, glext的区别和关系【转】
- glew,glee与gl,glu,glut,glx,glext的区别和关系
- glew, glee与 gl glu glut glx glext的区别和关系
- glew, glee与 gl glu glut glx glext的区别和关系
- glew, glee与 gl glu glut glx glext的区别和关系
- glew, glee与 gl, glu, glut, glx, glext的区别和关系
- 在 visual studio 2015 下配置 opengl (GLU/GLUT以及glew/freeglut)
- OpenGL 各类库的解析 gl/glu/glut/freeglut/glfw/glew
- GLU、GLUT常用函数库
- qt+opengl+glu+glut
- GL、GLU、GLUT
- gl glu glut函数简介
- gl glu glut函数简介
- 20100617--算法竞赛入门经典 语言篇读书笔记
- VS2005创建win32 dll的项目向导
- C#学习笔记—数组的冒泡排序
- error C2440: ’static_cast’
- 和为n连续正数序列--总结
- glu,glut,glext,glew
- C#学习笔记—数组的选择排序
- 编程中的多字节和Unicode
- C++托管到底是什么
- C#学习笔记—数组的顺序查找
- 【个人整理】那些也许被遗漏在角落的JS知识点(二)
- Ubuntu中Netbeans的中文问题彻底解决
- C#学习笔记—数组的折半查找(二分查找)
- Windows下编辑的(脚本)文本copy到linux下带个^M结尾