如何使用opengl的扩展
今天下午在写三维纹理的程序,结果发现我的机器,NV Quadro FX1000竟然不支持glTexImage3d,一想不对呀。我用opengl extension viewer看这台机器支持的opengl是2.0.1呀,怎么会不支持这个opengl1.2的函数呢?
一想这个函数肯定不是opengl32.lib 和glut32.lib所支持的函数,估计是显卡提供的,肯定要用不同于这些用lib的函数了。在查了sgi的网站找知道要用这些扩展函数得先要用,以下为例子:
PFNGLTEXIMAGE3DPROC glTexImage3DEXT;
然后QueryExtension("GL_EXT_texture3D"),
如果支持用
glTexImage3DEXT = (PFNGLTEXIMAGE3DPROC)wglGetProcAddress("glTexImage3DEXT")
后来心想有这么多函数我要用,如果在程序不停这样写,代码肯定看起来很能看,于是我就从以前看过的一个开源项目找到附件里文件,它将这些操作全部封装好了,此时你只需要像包含一个.h文件,在程序初始化时加上loadallextension()这个函数,就可以正常opengl函数一样调用它们,
附件下载:glUE.rar
一想这个函数肯定不是opengl32.lib 和glut32.lib所支持的函数,估计是显卡提供的,肯定要用不同于这些用lib的函数了。在查了sgi的网站找知道要用这些扩展函数得先要用,以下为例子:
PFNGLTEXIMAGE3DPROC glTexImage3DEXT;
然后QueryExtension("GL_EXT_texture3D"),
如果支持用
glTexImage3DEXT = (PFNGLTEXIMAGE3DPROC)wglGetProcAddress("glTexImage3DEXT")
后来心想有这么多函数我要用,如果在程序不停这样写,代码肯定看起来很能看,于是我就从以前看过的一个开源项目找到附件里文件,它将这些操作全部封装好了,此时你只需要像包含一个.h文件,在程序初始化时加上loadallextension()这个函数,就可以正常opengl函数一样调用它们,
附件下载:glUE.rar
posted on 2007-01-12 20:57 cloudseawang 阅读(1305) 评论(0) 编辑 收藏 举报