代码之家  ›  专栏  ›  技术社区  ›  ypnos

在窗口的特定区域中创建GLX上下文

  •  1
  • ypnos  · 技术社区  · 16 年前

    我想在窗口中创建一个带有GLX的OpenGL上下文。但是,我不希望它跨越整个窗口区域。相反,它应该只覆盖一个次区域。

    例如,GLUT为这种行为提供了一种功能。此外,GTK+或QT等主要工具包还提供GL小部件,它们只是X窗口的子区域。但是我需要低水平的工作。

    GLX reference (Blue Book)

    2 回复  |  直到 16 年前
        1
  •  2
  •   Nathan Kidd    16 年前

    您只能将glXMakeCurrent()作为一个X可绘制窗口,而不是它的一个子部分,但是您的解决方案很简单:停止将X窗口视为您的应用程序。每个X应用程序通常由10个或100个X窗口组成。在所需区域中创建一个子窗口,并在其中绘制。

    或者,您可以创建一个pixmap,渲染到其中,然后复制到窗口的某个区域,但速度会慢一些。

        2
  •  1
  •   ypnos    16 年前

    我在一份报告中发现了这条有用的信息 BSD manpage

    在几乎所有对您重要的方面,子窗口都像顶级窗口。它有一个窗口id;它有自己的一组事件回调;你可以对它进行渲染;您将收到其创建的通知。。。

    子窗口位于其他窗口(可能是顶级窗口,也可能是其他子窗口)的内部。因此,它通常只与您自己创建的其他窗口交互,因此不受窗口管理器的约束。这是其与顶级窗口的差异的主要来源:

    推荐文章