使用GLEW在Windows下使用OpenGL扩展
我一直在Windows上使用OpenGL扩展。GLEW是更简单的方法吗?如何开始使用它?是的,OpenGL Extension Wrangler库(GLEW)是在Windows上使用OpenGL扩展的一种无痛方法。以下是如何开始使用它: 确定希望使用的OpenGL扩展和扩展API。中列出了OpenGL扩展 检查图形卡是否支持您希望使用的扩展。下载并安装图形卡的最新驱动程序和SDK 带有GLEW的ship的最新版本。如果您正在使用此功能,则不需要执行以下某些步骤 下载并解压缩它 将GLEWbin路径添加到Windowspath环境变量中。或者,您也可以将glew32.dll放在Windows提取其dll的目录中 将GLEW包含路径添加到编译器的包含目录列表中 将GLEWlib路径添加到编译器的库目录列表中 指示编译器在链接期间使用glew32.lib。如果你使用VisualC++编译器,那么一种方法是通过在代码中添加下面的行:使用GLEW在Windows下使用OpenGL扩展,opengl,glew,Opengl,Glew,我一直在Windows上使用OpenGL扩展。GLEW是更简单的方法吗?如何开始使用它?是的,OpenGL Extension Wrangler库(GLEW)是在Windows上使用OpenGL扩展的一种无痛方法。以下是如何开始使用它: 确定希望使用的OpenGL扩展和扩展API。中列出了OpenGL扩展 检查图形卡是否支持您希望使用的扩展。下载并安装图形卡的最新驱动程序和SDK 带有GLEW的ship的最新版本。如果您正在使用此功能,则不需要执行以下某些步骤 下载并解压缩它 将GLEWbin路
#pragma comment(lib, "glew32.lib")
在代码中添加一行#include
。确保将其放置在其他总账头文件的包含项之上。(如果包含glew.h
,则实际上可能不需要GL头文件包含)
初始化GLUT或GL后,使用glewInit()
初始化GLEW。如果失败,则说明您的设置有问题
if (GLEW_OK != glewInit())
{
// GLEW failed!
exit(1);
}
检查您希望使用的扩展现在是否可通过GLEW使用。您可以通过检查名为GLEW\u您的扩展名\u name的布尔变量来实现这一点,该变量由GLEW公开
例如:
就这样!您现在可以在代码中使用OpenGL扩展调用,就像它们在Windows中自然存在一样。我个人不会使用exit命令 我会抛出一个异常,以便您可以在函数末尾清除任何其他初始化 即:
我同意OJ的观点——如果你想为别人写教程,那么这真的是一个错误的地方。opengl教程已经有很多好地方了 我浪费了一些时间,但最终还是设法让GLEW工作起来了。 我正在使用Windows7(x64)、Eclipse CDT和MinGW,方法是: 下载MSYS(用于MinGW)并记住正确安装MinGW(路径环境变量设置正确): 安装MSYS后,转到: 并下载TGZ软件包,该软件包用于UNIX系统 然后打开包(也可以使用7zip)并找到“Makefile”。 打开它,用文本编辑器(记事本可以正常工作)找到包含“GLEW_DEST”的行,并用类似“GLEW_DEST?=C:/MinGW”的内容替换它 现在您可以开始了,打开MSYS(我的例子是C:\MinGW\MSYS\1.0\MSYS.bat),在打开的shell中,转到“Makefile”所在的文件夹 然后写一个简单的:“makeinstall”就完成了(至少对我来说是这样)
PS:我还将粘贴的glew-1.10.0-win32\glew-1.10.0\bin\Release\win32文件复制到我的System32文件夹中,在Eclipse CDT中,我在链接器选项中添加了库“glew32”,并在
\include
之前添加了一个\include
您好。这对MinGW有用吗?我已经尝试了2天了,但是我得到的都是错误,比如:未定义对“\u imp”的引用__glewInit@0“< /代码>和<代码>未定义的引用“Dan the Man IMPULYXYGL WEWCREATESHDER”< /COD> >:此解决方案是用VisualC++编写的。我不知道这是否与MingGW.AFAIK一起工作,代码> > PrimaMyTrimeIn(LIB,GLW32,LIB)< /COD>只在Visual C++上工作。对于MinGW,您应该将库添加到编译器的命令行中(我认为它是-L
)。@DantheMan尝试更改库的顺序,尤其是在C::B中,在C::B中,您有“Project”和“Target”设置,您可以决定先链接哪个。我不完全理解它,但我只是这样解决了我的问题:)。我应该得到哪个GLEW,源代码还是二进制文件?我迷路了。。。我注意到其中一个有一个空的lib文件夹。
if (!GLEW_EXT_framebuffer_object)
{
exit(1);
}
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
}