【问题标题】:OpenGL subwindowsOpenGL 子窗口
【发布时间】:2011-06-14 13:14:44
【问题描述】:

我正在我的 Mac 上用 OpenGL 编写一个小程序。我有一个考虑子窗口的问题。我在主窗口中创建了两个子窗口。到那时一切都很好。这两个我都能画。但我想要一些不同的东西。我想(用我的鼠标)在一个窗口中绘制,同时在另一个窗口中得到一个绘图。

现在甚至不可能在两个窗口中获得相同的绘图。如果我想看一些东西,我总是必须在那个特定的窗口中绘制。

您是否有一些想法可能如何做到这一点。或者你有一个例子。不幸的是,我找不到关于“子窗口”主题的太多信息。

【问题讨论】:

标签: c++ xcode macos opengl


【解决方案1】:

OpenGL 不是场景图。它给你的只是铅笔和蜡笔的电脑等价物。因此,您将某些内容绘制到帧缓冲区中,它只会显示在该帧缓冲区中。

您想从多个有利位置绘制场景吗?然后你必须从那些选定的有利位置多次绘制该场景到指定的视口。

【讨论】:

  • 嗯,谢谢你的回复。所以我必须创建多个视口。但是如何在不同的子窗口中看到视口。这是我不明白的。有什么例子吗?
  • @buddy:如果您使用多个窗口,那么每个窗口都有自己的 OpenGL 上下文;在任何时候,一个线程都只有一个或没有 OpenGL 处于活动状态。在 MacOS X 上,NSOpenGLView 负责在进入任何绘图处理程序之前正确激活 OpenGL 上下文。另一种方法是使用单个 OpenGL 窗口并使用 glViewport 和 glScissor 的组合来渲染到该窗口的子区域(例如 Blender 就是这样做的 - 它实际上渲染所有内容,即 3D 模型、UI、脚本文本等使用OpenGL)。
猜你喜欢
  • 1970-01-01
  • 2011-07-28
  • 2011-02-23
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 2012-08-22
  • 1970-01-01
相关资源
最近更新 更多