问题标签 [glew]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1054 浏览

c++ - 使用 OpenGL 的 C++ 中的原始重启索引错误

我只是在学习 OpenGl 并尝试对 Primitive Restart Index 如何工作进行简单的测试。无论我尝试什么,g++ 都会给我错误“未定义对 `__glewPrimitiveRestartIndex' 的引用”。

这是有问题的代码:

我承认我对使用 g++ 有点陌生,并不完全理解它的 switch 和 include 机制。我用来编译它的 g++ 命令如下: g++ -o test test.cpp -lGL -lglut

将“-lGLEW”附加到命令后,程序编译但给我一个段错误。删除“glPrimitiveRestartIndex(0xffff);”行 当 -lGLEW 附加到编译命令时,从代码中可以编译和运行而没有错误(当然,没有原始重启索引工作),但在尝试没有时会出现相同的错误。

这让我相信最初的问题是由于没有包含 -lGLEW - 所以唯一剩下的问题是弄清楚为什么我被交给了一个段错误。我尝试过使用 0xffff 以外的其他值,但问题仍然存在。

0 投票
3 回答
15962 浏览

opengl - 使用 glew 和 glfw 的 opengl 的 cmake 标志

我有这个简单的代码:

在我的 CmakeLists.txt 中:

运行“cmake”。不会产生任何错误,但运行 make 会说:

在跑步的时候:

成功编译代码没有错误。如何使 cmake 使用我的代码运行?

另外,如果我将这些行添加到主函数:

即使使用相同的标志运行 gcc 也会产生错误:

我正在运行基于 kubuntu 10.04、cmake v2.8、libglfw-dev、libglfw2、libglew1.5、libglew1.5-dev、glew-utils 的 linux mint。

我是 cmake、glew 和 glfw 的新手。谢谢你们的帮助!

干杯!

0 投票
3 回答
1671 浏览

c - 无法让 GLEW 工作

注意:glGetString(GL_VERSION) 返回:2.1.0 - Build 8.15.10.2361

我已将 GLEW 安装到 System32 以及 VCDir/lib 和 VCDir/include 目录。所以链接器在找到 GLEW 的必要位时应该没有任何问题。我遇到的麻烦是以下代码:

给我以下错误:

这个错误是我决定安装 GLEW 的全部原因。请参阅:未解决的外部符号 _glGenBuffers 错误

除了这个错误之外,还有一些令人担忧的警告:

此外,像我为 GLEW 所做的那样,将 SDL 简单地安装到我的 VC inc 和 lib 和 System32 目录是一个好主意吗?

我的文件顶部的#include 如下所示:

但如果需要,这里是整个代码体:

0 投票
0 回答
799 浏览

linker - 将 glew 与 CodeLite 链接的问题

我一直在尝试将 glew 链接到我在 Windows 上的 c++ CodeLite 项目,但收效甚微。首先我使用MinGW将glew源码编译成libglew32.a和glew32.dll。这些在 C:/glew-1.6.0/lib 中。

在项目设置中,编译器选项卡中的包含路径是 C:/glew-1.6.0/include 并且在链接器选项卡中我在库路径下有 C:/glew-1.6.0/lib。对于链接器选项,我有 -lglew。

在这一点上,我什至没有在 main.cpp 中包含 glew 或编写任何与 glew 相关的代码。但是当我运行程序时它卡住了,给我留下了一条输出消息:“正在运行程序:./TestProgram”,而没有任何反应。

当我从链接器选​​项中删除 -lglew 标志时,程序运行良好。我链接 glew 的方式似乎有问题,但我不知道是什么。

0 投票
1 回答
9549 浏览

linux - 在 Linux 上静态构建 glew 和 glfw

在我的项目目录中,我有:

  • ./external/glew,已从源代码编译 glew(运行 make)
  • ./external/glfw,其中 glfw 也是从源代码编译的(运行 make x11)

在我的 .c 源代码中:

我尝试使用 GCC 进行编译:

./external/glew/lib 是 libGLEW.a 所在的位置, ./external/glfw/lib/x11 是 libglfw.a 所在的位置。

它编译没有错误。但后来我尝试运行 ./test1 它给了我:

我如何静态编译 glew 和 glfw?

编辑 1感谢您的帮助。在 stackoverflow 和老 nabble 的一些人的帮助下,我设法写下静态链接 GLFW 和 GLEW 需要做的事情,并将其放在http://www.phacks.net/static-compile-glfw-and-glew /

0 投票
1 回答
1331 浏览

qt - QT OpenGL,顶点缓冲区对象和 GLEW?

我正在将旧的 openGL 代码(即时模式)迁移到 Vertext-Buffer-Objects。我意识到我需要为此使用 OpenGL3 API 调用 (GL_ARB_vertex_buffer_object)。所以我打算使用 GLEW 作为扩展加载库。

我的问题是,有没有一种特殊的方法来为 OpenGL3 contexT 初始化 QGLWidget?

0 投票
1 回答
4509 浏览

c++ - 使用 CodeBlock 将 GLEW 链接到 SFML 项目的问题

所以我正在尝试学习编写着色器并将它们合并到我的 OpenGL 程序中(我使用 SFML 1.6 创建一个有效的 OpenGL 环境,而不是使用 GLUT;我的 IDE 是 Codeblocks;我的卡支持 OpenGL 3.1 和 GLSL 1.3)。但是,我遇到了障碍。看起来我需要 GLEW 来帮助将 GLSL 着色器合并到我的程序中。所以我去找到 GLEW 的源代码,并使用 CodeBlocks 将其编译为静态库,按照此处最终评论的说明(我添加#define GLEW_STATIC到 c. 文件中,因为我不清楚我应该在哪里添加它),所以我现在有四个 .a 文件:

libglew32.a、libglew32d.a、libglew32mx.a、libglew32mxd.a

我已经告诉我的编译器在哪里可以找到头文件(glew.h、glxew.h、wglew.h),并且我已经告诉链接器在哪里可以找到库(上图),方法是将相关目录添加到 Settings- >编译器和调试器...->搜索目录。在我的项目中,在 Build Options->Linker Settings->Link Libraries 下,我还链接了上面的四个。

执行上述所有操作后,在尝试调用 glewInit() 时出现以下错误:

对“_imp__glewInit”的未定义引用

一些阅读告诉我我需要在#define GLEW_STATIC之前添加#include <glew.h>,所以我这样做了,现在我得到了一大堆对“wglGetProcAddress@4”错误的未定义引用(我的程序中唯一的 GLEW 代码行是glewInit();):

我不知所措;所有这些(链接/编译/等)的技术方面对我来说仍然是新的和困惑的。

为了让 GLEW 工作,我需要做什么才能将 GLSL 着色器合并到我的 SFML OpenGL 项目中?(或者如果没有 GLEW 或任何其他外部库,我能以某种方式更轻松地做到这一点吗?这太棒了!)

0 投票
3 回答
503 浏览

c++ - GL VBO 问题:第一条和最后一条三角形没有正确显示

我对 C++ 和 OpenGL 并不陌生,但我对使用 VBO 并不陌生。到目前为止,我一直很懒惰,几乎所有东西都使用显示列表。

我的问题很可能很简单,但很烦人!似乎第一个也是最后一个三角形列表没有正确显示,在这个例子中,我从一个简单的波前模型 obj 文件加载一个球体。对于显示列表和 VBO,我以完全相同的方式从 obj 文件中加载它,并且我已经验证它们从 obj 文件中获得了完全相同的数字。

在这个例子中,我使用了 STL 向量来存储顶点和顶点索引。但是我之前也尝试过使用 float* 和 int* ,但它给出了完全相同的结果。

所以这是一个从 VBO 绘制的球体屏幕

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的......正如你所看到的,有一个巨大的圆锥体从球体的远端进入球体的中间,它很难看到,但从最近一侧到最远一侧的三角形带也是错误的,这将在接下来的几个屏幕之一中变得明显 这是从 DL 绘制的完全相同的球体

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的...

您可以在那里看到 DL 正在正确绘制它们这是同时绘制的,您会看到最大的区别是线条是绿色的,这就是它们应该是的样子

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的...

在这里更明显的是,从 VBO 中绘制的顶部条带是错误的

然后我尝试在每个顶点的 y 值上添加一个大数字,这表明我的 VBO 肯定有问题,因为球体内的圆锥体顶点永远不会移动!

好的,现在您已经对问题有了一个直观的了解,我想我会在这里扔一些代码,我可能只是错过了一步或有一个数字错误。请看一下

这就是我创建 vbo 的方式

{

}

其中 m_vertices 是 Vec3f 的 STL 向量,它简单地保存 x,y,z。我也试过这个作为向量,它给出了同样的问题,所以改变为向量或浮点*不是问题。

好的,现在到我画它的地方,我觉得这是我做错了什么

{

}

我正在使用 glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); 仅出于调试目的,因为它最好地显示了不正确三角形的问题。

谁能看看我是否做错了什么?我是否错误地初始化了某些东西?我错过了一步吗?我查看了各种教程并在谷歌上搜索了很多,我似乎与其他人并没有太大的不同。大多数教程都使用 float* 而不是 stl 向量,但我再次这样做了,它给出了完全相同的结果。

不确定我是否需要提供更多信息,我只包括 glew 和 freeglut (两者中最新的..在 Windows 上)

0 投票
1 回答
5052 浏览

c++ - 使用 Visual Studio 构建错误

我有一个提供给我的以前的 c++ 项目的解决方案。当我在 Visual Studio 中打开解决方案并尝试构建时,出现错误:

我必须更改项目的输入链接器设置以包含 glew32d.lib。这修复了它,它可以正确编译和运行。

但是,当我更改 example1.cpp(即使只是添加评论)时,我不再能够构建它并且我收到此错误:

glew32d 仍在链接中,所以我不确定我在哪里得到错误以及为什么我无法构建

0 投票
1 回答
418 浏览

opengl - OpenGL/GLEW:如何在不引起编译时错误的情况下选择正确/现有的枚举

我目前正在使用 glew 来检测绑定的 openGL 上下文的一些 GPU 功能。

想象一个纹理类,如果可用,我想使用 openGL 3.0 枚举,如果没有 opengl 3.0 但扩展名是,则回退到扩展名,即:

显然,这会导致编译时错误,因为GL_R8UI如果不支持 opengl 3.0,则不会存在。-解决此问题的常用方法是什么?