问题标签 [glfw]

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 回答
6371 浏览

xcode - GLFW 库的 Xcode 项目设置

我正在做一项任务,即使用 C 和 OpenGL/GLFW 模拟宇宙的开始。

我对 C 和 Xcode 都很陌生,这根本没有帮助。我已经克服了我愚蠢的编译问题,并且代码找到了 GL/glfw.h ok。当我编译并运行时,我收到“可视化 [项目名称] 已退出,状态为 5”。

我不太确定这意味着什么,但如果我尝试从命令行运行代码,我会收到以下错误:

我将 libglfw.dylib 添加到项目中的方式与添加 libglfw.a 的方式相同,以查看是否修复了它,不,它没有。

我无法弄清楚 @executable_path 的设置位置或设置的位置,但在库搜索路径中项目的构建设置中是“$(SRCROOT)/../../../../glfw/ lib/macosx”,这是该库所在的位置。

我检查了该库是否是可执行的,我是否需要在其他地方设置该库路径?

0 投票
4 回答
473 浏览

c++ - 如何维护 C++/STL 中的函数列表?

在直接问你我的问题之前,我将描述我的问题的性质。我正在使用 C++/OpenGL 和 GLFW 库编写 2D 模拟。而且我需要正确管理很多线程。在 GLFW 中我们必须调用函数:thread = glfwCreateThread(ThreadFunc, NULL); (第一个参数是执行线程的函数,第二个代表这个函数的参数)。而且glfwCreateThread,每次都必须调用!(即:在每个周期中)。这种工作方式并没有真正帮助我,因为它破坏了我构建代码的方式,因为我需要在主循环范围之外创建线程。所以我正在创建一个 ThreadManager 类,它将具有以下原型:

例如,如果我想添加一个特定线程,我只需要使用特定参数和特定函数调用 AddThread。目标只是能够调用: ExecuteAllThreads(); 在主循环范围内。但为此我需要有类似的东西:

在 AddThread 中,我只需要将 pt2Func 引用的函数添加到向量:list_functions。

好吧,这是我想做的事情的总体思路..这是正确的方法吗?你有更好的主意吗?如何做到这一点,真的吗?(我的意思是问题在于语法,我不知道该怎么做)。

谢谢 !

0 投票
1 回答
524 浏览

c - 使用 OpenGL 和 GLFW 操作 C 数组

我正在尝试构建一个应用程序来模拟一些移动的基本球体。

我面临的问题是,当我真正需要数据时,它看起来并没有被分配给 init 语句之外的数组。这与我声明包含粒子的数组的方式有关吗?

我想创建一个可以从各种方法访问的结构数组,因此在我使用的包含语句下方的文件顶部:

我有一个初始化方法,它创建数组并将粒子分配给它

然后是一个draw方法里面的一个方法来绘制设定的场景

这是我的代码的副本http://pastebin.com/m131405dc

0 投票
3 回答
1545 浏览

c++ - glfwSleep() 如何导致段错误?

在我的多线程应用程序中,我使用了 sleep() 函数(来自 GLFW 库的函数):

它显然导致我的应用程序出现段错误,因为我的调用堆栈显示:

glfwSleep()用于线程内部。那很危险吗?为什么我的程序会因此而出现段错误?

编辑:

当 的参数glfwSleep()< 0.02 (secs) 时,它不会出现段错误!

编辑2:

来自 GLFW 的官方文档:

在您习惯之前编写线程应用程序可能会非常尴尬,但有一些非常容易遵循的关键规则:

  • 始终确保对线程之间共享的数据的独占访问!
  • 确保线程正确同步!
  • 从不忙等待!

我想我得到了答案..现在必须找到替代方案..

谢谢!

0 投票
2 回答
1675 浏览

c++ - C++/GLFW - 使用 Mutex 对象的正确方法?

我正在研究一个广泛使用多线程的模拟。问题是,到目前为止,我从未使用任何互斥对象来保护我的数据。结果是我遇到了一堆分段错误。

我正在尝试在读/写时使用互斥锁锁定/解锁,但这会导致我出现另一个段错误:

当然,我创建了一个测试项目,在该项目中我应用了锁定/解锁的基本情况并且它起作用了,这是一个基本示例,展示了如何使用 GLFW 处理 Mutex 对象:

我正在工作的项目更大,我有 5 个线程在上面运行,并且同时访问了很多向量、地图、队列。在代码的某处,我尝试执行以下操作:

之所以将我的 VehicleManager:CreateVehicles() 方法放在锁定/解锁之间,是因为在此方法中有这一行:

所以我想保护向量:vehicles_。但是,结果我得到了上面的段错误。即使有:

我有同样的段错误。

我希望,我已经让自己足够清楚,让您了解我的问题的本质。我想,并不是所有人都使用过 GLFW,这就是为什么我给你第一个基本示例,以便你了解互斥锁如何与这个库一起工作。

谢谢 !

0 投票
4 回答
7329 浏览

c - GLFW 窗口无法打开(Ubuntu)

在 Ubuntu (9.04) 下编译和运行我的基于 GLFW 的 C 程序时,尝试打开窗口时失败(它编译正常,安装了最新的 GLFW)。我尝试了不同的分辨率,低至 300x300,并将位深度保持为零,希望默认值能流行起来。

相关的代码读取(直接从我的主文件顶部截取,基于示例文件gears.c):

其他值得注意的事实是:

  • 在 VirtualBox 3.0.2 中运行 Ubuntu,配置了 512 MB RAM,启用了 3D 加速,64 MB VRAM,成功安装了 Guest Additions
  • glxgears工作正常,甚至 > 300 FPS
  • 使用构建 GLFWmake-x11
  • 生成文件命令行:

    gcc `pkg-config --cflags libglfw` main.c -o program `pkg-config --libs libglfw` -lglfw -lGLU -lGL -lm

  • 马克关于C - GLFW 窗口在 Debian 上无法打开的提示似乎并没有缓解这种情况

编辑:

有没有办法提取更花哨的错误信息?任何getLastErrorDesc()或调试日志文件?

0 投票
2 回答
400 浏览

c++ - 我在这个 C++ FreeType GLFW 应用程序的编译/链接阶段缺少什么?

这是在 Mac OS X 上。

我正在尝试让 GLFT_FONT 在带有 GLFW 和 FreeType2 的 MacOSX 上工作。这不是标准的 Makefile。我自己更改了部分内容(例如“-framework OpenGL”

我来自 Linux 领域,对 Mac 有点陌生。

我在 Mac OS X 10.5.8 上;使用 XCode 3.1.3

谢谢!

0 投票
2 回答
143 浏览

macos - 如何使全屏 MacOSX 捆绑包可以杀死?

博览会:

我正在 MacOSX 上编写 GLFW 应用程序。该应用程序是一个 Mac 捆绑包。

我希望我的应用程序以全屏模式运行(简单,使用 GLFW_FULLSCREEN)。问题是..我的代码仍然有问题,我不知道如何杀死无限循环的全屏应用程序(即如果程序中没有调用 exit(0); 我不知道如何强制杀了它)。

问题是:如何设置 MacOSX Glfw Bundle,以便在无限循环时强制杀死它?

谢谢!

0 投票
2 回答
205 浏览

c++ - c++ glfw macosx 暗屏 vs f1

我正在 MacOSX 上用 C++ 编写 GLFW 应用程序。

它以 GLFW_FULLSCREEN 模式运行

现在,当我按下“dim screen / f1”按钮时,我的 Mac 会使我的屏幕变暗。

我不希望这种情况发生。相反,我希望 GLFW 接收“key press F1”事件(或“key press blah blah blah”事件。有没有办法告诉 MacOSX 不解释“dim screen”并将其发送到我的全屏 GLFW应用程序?

谢谢!

PS:我在 Mac 上拥有管理员权限,并且愿意在必要时对系统进行更改以实现这一点。

0 投票
2 回答
2778 浏览

c++ - OpenGL 不绘图

我使用 GLFW 作为 OpenGL 项目的 GUI。我正在使用我的红皮书和测试代码,而且第一段代码根本不起作用。我想说这是一个 GLFW 问题,因为我在 JOGL 中没有这个问题。