问题标签 [glut]

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 投票
6 回答
6429 浏览

c++ - 回调非静态方法

想想你的基本 GLUT 程序。它们只是从一个主方法运行并包含像 `glutMouseFunc(MouseButton) 这样的回调,其中 MouseButton 是方法的名称。

我所做的是将主文件封装到一个类中,这样MouseButton就不再是一个静态函数而是有一个实例。但是这样做会给我一个编译错误:

错误 2 错误 C3867:“StartHand::MouseButton”:函数调用缺少参数列表;使用 '&StartHand::MouseButton' 创建指向成员 c:\users\angeleyes\documents\visual studio 2008\projects\capstone ver 4\starthand.cpp 388 IK Engine 的指针

由于该类非常庞大,因此无法提供代码示例。

我试过使用this->MouseButton,但这给出了同样的错误。不能为回调提供指向实例函数的指针吗?

0 投票
4 回答
16302 浏览

c++ - OS X 上 Eclipse 中的 OpenGL 和 GLUT

我一直在尝试在 OS X 上使用 CDT 在 Eclipse 中设置 OpenGL 和 GLUT 库,但没有取得多大成功。我似乎无法让 eclipse 真正意识到 GLUT 在哪里。它目前给我的错误是我有一个未解决的包含 GL/glut.h。在网上环顾四周,我发现我应该在 gcc 链接器设置中使用 -framework GLUT 标志,但这似乎无效。

0 投票
1 回答
258 浏览

c++ - 初始化过剩的问题

我已经将我的问题简化为这个例子:

当它执行 glutCreateWindow 时,大约需要 1 分钟,屏幕会闪烁几次。

这可笑的长。这不可能是正常的。

环境:

  • 软呢帽 10
  • 双 NVIDIA GTX280 卡驱动 3 台显示器。
  • 已安装 NVIDIA 驱动程序版本 190.53 CUDA 2.3
  • gcc 版本 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC)

关于什么可能是错的任何想法?

编辑:我没有显示功能,因为我的最终目标是创建一个渲染上下文,以便我可以从一些 CUDA 代码创建一个像素缓冲区对象(目前不会显示其输出。我还尝试创建一个当调用 gkxMakeCurrent 时,一系列 glx 调用具有相同的延迟和闪烁的上下文。

0 投票
2 回答
4816 浏览

visual-studio-2008 - 编译为 64 位时启动 GLUT 应用程序时出错

我有一个 GLUT 应用程序的基本框架。当我为 Win32 编译它时,它工作正常,但如果我为 x64 编译它,我得到这个错误:

The application was unable to start correctly (0xc000007b). Click OK to close the application.

我有glut64.lib作为链接器的输入,它来自 nVidia CUDA sdk"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib"

我想将 OpenGL 与 CUDA 结合使用,尽管这个简单的应用程序没有引用 CUDA。我在 Windows 7 64 位上运行 Visual Studio 2008。

您可以提供的任何见解将不胜感激。

主要.cpp:

0 投票
3 回答
2649 浏览

c++ - 如何创建一个类来包装 GLUT?

我正在用 OpenGL 为学校编写游戏。由于会有更多类似的任务,我想制作一个小框架来在 OpenGL 中做常见的事情。我之前做过一些简单的游戏,我通常把它分解成一个 IO 类来处理输入和绘制到屏幕上,用于主游戏循环/逻辑的 Game 类,以及用于游戏中任何对象的类。

在我使用 SDL 之前,我的问题是,这是在 OpenGL 中进行此操作的正确方法吗?我已经遇到了一些麻烦。我希望我的 IO 类能够处理初始化窗口、绘制场景和单击鼠标。所以构造函数看起来像这样:

但是,drawScene是一个类方法。有没有办法将类方法传递给glutDisplayFunc()而不使其成为静态?

0 投票
3 回答
3205 浏览

macos - 如何在 OS X 的主线程中使用 GLUT?

我曾经试图从一个子线程打开一个 GLUT 窗口,但遇到了很多讨厌的问题。我记得lists.apple.com上的这篇文章:

Mac OS X 上的 GLUT 在这方面有什么变化吗?是否有线程安全的 GLUT 可以让您从任何线程打开窗口?

如果 GLUT 不是一个选项,是否有一个小型库可以替换 GLUT 并且可以在任何线程上工作?

[编辑]

这是我的测试结果,由作为答案提出的各种解决方案触发:

  • GLFW 看起来不错,但没有编译(当前分支已有 3 年历史)
  • 琼脂是另一个伪装者,但它对于我的微小需求来说太大了
  • SDL 不兼容 BSD 许可证,它是一个巨大的代码库,应该适合单个文件
  • GLUT 不能在任何线程中运行。

我决定重新发明轮子(是的,有时这很好),最后的课程只有 200 行代码。它让我可以从任何线程打开和关闭一个窗口(openGL 在新线程中绘制),并且我可以完全控制垂直同步等(SDL 使用双缓冲 = openGL 慢)。我不得不绕过NSApp来正确启动和停止应用程序(否则它不使用事件循环)。

对于那些告诉我 OpenGL 不是线程安全的人来说,这并不完全正确:您可以运行多个 OpenGL 线程,并且绘制命令将在分配给该线程的 OpenGL 状态下执行。OpenGL 是线程特定的

如果有人需要一些基本代码来使用 Cocoa 创建 OpenGL 窗口:gl_window.mm

0 投票
1 回答
3317 浏览

c++ - 使用 glut 加载 ppm 文件

我想在 C++ 中对 PPM 文件进行纹理映射。有什么方法可以加载 PPM 文件。谢谢。

0 投票
2 回答
12323 浏览

c++ - 使用 GLUT 将 OpenGL 窗口居中

我有一个 640x480 的 openGL 窗口,我需要在屏幕中间居中。我以前用过:

哪个有效。

但是现在当我编译时突然...

有人请帮忙。这对我来说非常烦人和令人沮丧,因为我对 OpenGL 和 GLUT 了解不多。

0 投票
2 回答
689 浏览

opengl - 过剩可视化编辑器

我想知道他们是否是任何 Glut (opengl) 可视化编辑器,比如 autocad。

0 投票
2 回答
3306 浏览

c++ - 当我编译这个需要 GLUT 的 C++ 程序时,如何解决链接器问题?

我正在尝试编译这个利用 GLUT32 库的 C++ 程序。

现在我收到以下错误:

错误 1 ​​错误 LNK2001:无法解析的外部符号 _gluPerspective@32 Camera.obj soundCube 错误 2 错误 LNK2001:无法解析的外部符号 _gluLookAt@72 Camera.obj soundCube 错误 3 错误 LNK2001:无法解析的外部符号 __imp__glMaterialfv@12 GLWindow.obj soundCube 错误 4 错误 LNK2001:无法解析的外部符号 __imp__glClear@4 GLWindow.obj soundCube 错误 5 错误 LNK2001:无法解析的外部符号 __imp__glClearColor@16 GLWindow.obj soundCube 错误 6 错误 LNK2001:无法解析的外部符号 __imp__glMaterialf@12 GLWindow.obj soundCube 错误 7 错误 LNK2001:无法解析的外部符号 __imp__glEnd@ 0 GLWindow.obj soundCube 错误 8 错误 LNK2001:无法解析的外部符号 __imp__glRasterPos2f@8 GLWindow.obj soundCube 错误 9 错误 LNK2001:无法解析的外部符号 __imp__timeGetTime@0 GLWindow.obj soundCube 错误 10 错误 LNK2001:无法解析的外部符号 __imp__glDisable@4 GLWindow.obj soundCube 错误 11 错误 LNK2001:无法解析的外部符号 __imp__glBegin@4 GLWindow.obj soundCube 错误 12 错误 LNK2001:无法解析的外部符号 __imp__glColor4f@ 16 GLWindow.obj soundCube 错误 13 错误 LNK2001:无法解析的外部符号 __imp__glPopMatrix@0 GLWindow.obj soundCube 错误 14 错误 LNK2001:无法解析的外部符号 __imp__glPushMatrix@0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube错误 16 错误 LNK2001:无法解析的外部符号 __imp__glBlendFunc@8obj soundCube 错误 10 错误 LNK2001:无法解析的外部符号 __imp__glDisable@4 GLWindow.obj soundCube 错误 11 错误 LNK2001:无法解析的外部符号 __imp__glBegin@4 GLWindow.obj soundCube 错误 12 错误 LNK2001:无法解析的外部符号 __imp__glColor4f@16 GLWindow.obj soundCube 错误 13 错误LNK2001:无法解析的外部符号 __imp__glPopMatrix@0 GLWindow.obj soundCube 错误 14 错误 LNK2001:无法解析的外部符号 __imp__glPushMatrix@0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号__imp__glBlendFunc@8obj soundCube 错误 10 错误 LNK2001:无法解析的外部符号 __imp__glDisable@4 GLWindow.obj soundCube 错误 11 错误 LNK2001:无法解析的外部符号 __imp__glBegin@4 GLWindow.obj soundCube 错误 12 错误 LNK2001:无法解析的外部符号 __imp__glColor4f@16 GLWindow.obj soundCube 错误 13 错误LNK2001:无法解析的外部符号 __imp__glPopMatrix@0 GLWindow.obj soundCube 错误 14 错误 LNK2001:无法解析的外部符号 __imp__glPushMatrix@0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号__imp__glBlendFunc@8无法解析的外部符号 __imp__glBegin@4 GLWindow.obj soundCube 错误 12 错误 LNK2001:无法解析的外部符号 __imp__glColor4f@16 GLWindow.obj soundCube 错误 13 错误 LNK2001:无法解析的外部符号 __imp__glPopMatrix@0 GLWindow.obj soundCube 错误 14 错误 LNK2001:无法解析的外部符号 __imp__glPushMatrix@ 0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号 __imp__glBlendFunc@8无法解析的外部符号 __imp__glBegin@4 GLWindow.obj soundCube 错误 12 错误 LNK2001:无法解析的外部符号 __imp__glColor4f@16 GLWindow.obj soundCube 错误 13 错误 LNK2001:无法解析的外部符号 __imp__glPopMatrix@0 GLWindow.obj soundCube 错误 14 错误 LNK2001:无法解析的外部符号 __imp__glPushMatrix@ 0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号 __imp__glBlendFunc@8无法解析的外部符号 __imp__glPushMatrix@0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号 __imp__glBlendFunc@8无法解析的外部符号 __imp__glPushMatrix@0 GLWindow.obj soundCube 错误 15 错误 LNK2001:无法解析的外部符号 __imp__glRotatef@16 GLWindow.obj soundCube 错误 16 错误 LNK2001:无法解析的外部符号 __imp__glBlendFunc@8

...

错误 56 致命错误 LNK1120:55 个未解析的外部 C:\Users\Simucal\Documents\Downloads\SoundCubeSrc soundCube

我在 C++ 方面没有那么有经验,但我尝试正确设置 GLUT,以便该项目可以链接到它。

我为Nate Robin 的页面下载了 GLUT32 库。

然后我将以下文件放入:

  • glut.h - C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
  • glut32.lib - C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
  • glut.dll - C:\Windows\System32

我还选择了项目 -> 属性 -> 链接器 -> 附加依赖项 -> 添加了“glut32.lib”

如果有人想看看我正在处理什么项目,那就在这里

为了解决这些错误,我遗漏了哪些步骤或做错了什么?