我一直在Windows上使用OpenGL扩展painful way . GLEW是更容易的方式吗?我该如何开始使用它?
是的, OpenGL Extension Wrangler Library (GLEW)是在Windows上使用OpenGL扩展的一种无痛方式 . 以下是如何开始使用它:
确定您希望使用的OpenGL扩展和扩展API . OpenGL扩展列在OpenGL Extension Registry中 .
检查您的图形卡是否支持您要使用的扩展程序 . 下载并安装适用于您的图形卡的最新驱动程序和SDK .
最新版本的NVIDIA OpenGL SDK与GLEW一起发货 . 如果您需要执行以下某些步骤 .
下载GLEW并解压缩 .
将GLEW bin 路径添加到Windows PATH 环境变量中 . 或者,您也可以将 glew32.dll 放在Windows获取其DLL的目录中 .
将GLEW include 路径添加到编译器的include目录列表中 .
将GLEW lib 路径添加到编译器的库目录列表中 .
指示编译器在链接期间使用 glew32.lib . 如果您使用的是Visual C编译器,那么一种方法是在代码中添加以下行:
#pragma comment(lib, "glew32.lib")
在代码中添加 #include <GL/glew.h> 行 . 确保将其放在其他GL头文件的包含之上 . (如果包含 glew.h ,您可能实际上不需要包含GL头文件 . )
#include <GL/glew.h>
glew.h
初始化GLUT或GL后,使用 glewInit() 初始化GLEW . 如果失败,那么您的设置有问题 .
glewInit()
if (GLEW_OK != glewInit()) { // GLEW failed! exit(1); }
检查您希望使用的扩展程序现在是否可以通过GLEW获得 . 您可以通过检查由GLEW公开的名为 GLEW_your_extension_name 的布尔变量来完成此操作 .
示例:
if (!GLEW_EXT_framebuffer_object) { exit(1); }
而已!您现在可以在代码中使用OpenGL扩展调用,就像它们自然存在于Windows中一样 .
我个人不会使用退出命令 .
我会抛出异常,因此您可以在函数结束时清除任何其他初始化 .
即:
try { // init opengl/directx // init directaudio // init directinput if (GLEW_OK != glewInit()) { throw std::exception("glewInit failed"); } } catch ( const std::exception& ex ) { // message to screen using ex.what() // clear up }
我同意OJ的意见 - 如果你想为其他人编写教程,那么这真的是错误的地方 . opengl教程已经有很多好的地方了 . Try this one for instance .
我失去了一些时间,但最后我设法让GLEW工作 . 我正在使用Windows7(x64),Eclipse CDT和MinGW,方式是:
下载MSYS(适用于MinGW)并重新安装以正确安装MinGW(正确设置PATH环境变量):http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=
安装MSYS后,转到:http://glew.sourceforge.net/并下载TGZ软件包,该软件包适用于UNIX系统
然后打开包(也可以使用7zip)并找到“Makefile” . 打开它并使用文本编辑器(记事本应该可以正常工作)找到包含“GLEW_DEST”的行并将其替换为“GLEW_DEST?= C:/ MinGW”之类的内容
现在你准备好了,打开MSYS(在我的情况下为C:\ MinGW \ msys \ 1.0 \ msys.bat)并在打开的shell中,转到“Makefile”所在的文件夹 .
然后写一个简单的:“make install”并完成工作(至少对我而言是有效的)
PS:我还将glew-1.10.0-win32 \ glew-1.10.0 \ bin \ Release \ Win32文件复制粘贴到我的System32文件夹中,在Eclipse CDT中我在链接器选项中添加了库"glew32"并添加了 #include <GL/glew.h> 之前 #include <GL/glut.h>
#include <GL/glut.h>
3 回答
是的, OpenGL Extension Wrangler Library (GLEW)是在Windows上使用OpenGL扩展的一种无痛方式 . 以下是如何开始使用它:
确定您希望使用的OpenGL扩展和扩展API . OpenGL扩展列在OpenGL Extension Registry中 .
检查您的图形卡是否支持您要使用的扩展程序 . 下载并安装适用于您的图形卡的最新驱动程序和SDK .
最新版本的NVIDIA OpenGL SDK与GLEW一起发货 . 如果您需要执行以下某些步骤 .
下载GLEW并解压缩 .
将GLEW bin 路径添加到Windows PATH 环境变量中 . 或者,您也可以将 glew32.dll 放在Windows获取其DLL的目录中 .
将GLEW include 路径添加到编译器的include目录列表中 .
将GLEW lib 路径添加到编译器的库目录列表中 .
指示编译器在链接期间使用 glew32.lib . 如果您使用的是Visual C编译器,那么一种方法是在代码中添加以下行:
在代码中添加
#include <GL/glew.h>
行 . 确保将其放在其他GL头文件的包含之上 . (如果包含glew.h
,您可能实际上不需要包含GL头文件 . )初始化GLUT或GL后,使用
glewInit()
初始化GLEW . 如果失败,那么您的设置有问题 .检查您希望使用的扩展程序现在是否可以通过GLEW获得 . 您可以通过检查由GLEW公开的名为 GLEW_your_extension_name 的布尔变量来完成此操作 .
而已!您现在可以在代码中使用OpenGL扩展调用,就像它们自然存在于Windows中一样 .
我个人不会使用退出命令 .
我会抛出异常,因此您可以在函数结束时清除任何其他初始化 .
即:
我同意OJ的意见 - 如果你想为其他人编写教程,那么这真的是错误的地方 . opengl教程已经有很多好的地方了 . Try this one for instance .
我失去了一些时间,但最后我设法让GLEW工作 . 我正在使用Windows7(x64),Eclipse CDT和MinGW,方式是:
下载MSYS(适用于MinGW)并重新安装以正确安装MinGW(正确设置PATH环境变量):http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=
安装MSYS后,转到:http://glew.sourceforge.net/并下载TGZ软件包,该软件包适用于UNIX系统
然后打开包(也可以使用7zip)并找到“Makefile” . 打开它并使用文本编辑器(记事本应该可以正常工作)找到包含“GLEW_DEST”的行并将其替换为“GLEW_DEST?= C:/ MinGW”之类的内容
现在你准备好了,打开MSYS(在我的情况下为C:\ MinGW \ msys \ 1.0 \ msys.bat)并在打开的shell中,转到“Makefile”所在的文件夹 .
然后写一个简单的:“make install”并完成工作(至少对我而言是有效的)
PS:我还将glew-1.10.0-win32 \ glew-1.10.0 \ bin \ Release \ Win32文件复制粘贴到我的System32文件夹中,在Eclipse CDT中我在链接器选项中添加了库"glew32"并添加了
#include <GL/glew.h>
之前#include <GL/glut.h>