首页 文章

使用GLEW在Windows下使用OpenGL扩展

提问于
浏览
23

我一直在Windows上使用OpenGL扩展painful way . GLEW是更容易的方式吗?我该如何开始使用它?

3 回答

  • 33

    是的, 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头文件 . )

    初始化GLUT或GL后,使用 glewInit() 初始化GLEW . 如果失败,那么您的设置有问题 .

    if (GLEW_OK != glewInit())
    {
        // GLEW failed!
        exit(1);
    }
    

    检查您希望使用的扩展程序现在是否可以通过GLEW获得 . 您可以通过检查由GLEW公开的名为 GLEW_your_extension_name 的布尔变量来完成此操作 .

    示例:

    if (!GLEW_EXT_framebuffer_object)
    {
        exit(1);
    }
    

    而已!您现在可以在代码中使用OpenGL扩展调用,就像它们自然存在于Windows中一样 .

  • 3

    我个人不会使用退出命令 .

    我会抛出异常,因此您可以在函数结束时清除任何其他初始化 .

    即:

    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 .

  • 5

    我失去了一些时间,但最后我设法让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>

相关问题