当前位置: 首页 > 知识库问答 >
问题:

第二个线程中Mac OS X上的OpenGL

佘缪文
2023-03-14

我一直在网上搜索,但找不到这个问题的可靠答案。

我有一个程序,它旋转第二个线程。从这第二个线程(不是主线程)它打开一个GLFW窗口并执行所有OpenGL调用。没有其他线程执行单个OpenGL调用。

在Mac OS X上可以吗?有消息称,苹果操作系统只能在主线程中运行OpenGL,也有消息称情况并非如此,所以我很好奇。(我自己没有Mac电脑来测试)。

非常感谢。

共有1个答案

微生慈
2023-03-14

这将起作用,因为我已经用我的Mac电脑尝试了同样的方法。我也不明白为什么它不应该起作用。此外,你为什么不试试呢?编写呈现三角形或其他东西的测试代码应该很短。在处理多线程时,只需小心竞争条件。

实际上,新的图形API依赖于这个漏洞,因为虽然OpenGL会阻止主线程,但另一个可以处理数据,这会缩短每帧的净时间。

退房https://www.khronos.org/vulkan/ . 该API利用了这种并行化。

 类似资料:
  • 因此,我正在我的Win32应用程序中设置我的OpenGL上下文。我正在设置一个多线程环境,一个线程处理窗口消息,另一个线程处理OpenGL渲染调用。到目前为止,我的工作流程如下: 线程A: 创建窗口 获取显示上下文 选择像素格式 创建临时OpenGL上下文并使其成为当前 抓取扩展函数指针 将当前上下文设置为NULL并删除临时上下文 使用wglCreateContextAttribsARB创建新上下

  • 先尝试用 D3 写第一个 HelloWorld 程序。学编程入门的第一个程序都是在屏幕上输出 HelloWorld,本课稍微有些不同,不是单纯的输出。 HTML 是怎么输出 HelloWorld 的 都知道 HTML 吧,如果不知道请下百度一下吧。在 HTML 中输出 HelloWorld 是怎样的呢,先看下面的代码。 <html> <head> <meta charset="

  • 问题内容: 使用MacOSX 10.6上的最新Java更新,Eclipse不再找到Java源代码。 我不确定(如果我不再记得)过去是否手动下载了源并将它们放在某个地方,或者MacOSX是否提供了它们并且Eclipse自动找到了它们。 MacOSX是否在某处有源?(请不要在这里做任何假设。我真的很想知道。) 如果没有,我在哪里可以得到它们? 问题答案: 安装最新的Java更新后,您会在下面找到src

  • 3. 第二个汇编程序 例 18.2. 求一组数的最大值的汇编程序 #PURPOSE: This program finds the maximum number of a # set of data items. # #VARIABLES: The registers have the following uses: # # %edi - Holds the index of the data

  • 问题内容: 我有Thrad和Handler: 当应用启动时,第一次使用 thread.start(); 一切正常。但是当我尝试启动 thread.start(); 从按钮第二次我有: E / MessageQueue-JNI:java.lang.IllegalThreadStateException:线程已启动。 问题答案: 您应该在启动之前检查该线程的状态。

  • 我的中有10个选项卡。打开活动后,第一个片段就会显示出来,但下一个片段中的方法(AsyncTask)会被调用。如果我转到下一个选项卡,比如第3个选项卡,那么将调用第4个中的方法,依此类推。 我不理解这种行为。请救命!