【问题标题】:Design question for an SDL\OpenGL Window & Widget librarySDL\OpenGL Window & Widget 库的设计问题
【发布时间】:2009-07-30 15:06:37
【问题描述】:

我想为在 SDL 之上运行的 OpenGL 设计和实现一个简单的窗口和小部件,就像 Agar 或 GiGi,只是更接近于 SDL 和 OpenGL。

我的一般问题是:在 OpenGL 上下文中 的窗口系统的最佳设计是什么??

我希望拥有仅用于控件的窗口,如果可能的话,我希望拥有带有自己的 OpenGL 上下文的线程化窗口。我认为它甚至可能的唯一方法是渲染纹理,然后他们在这些纹理周围添加窗口装饰......

我想向其他程序员公开这些工作原理,但哪种方式最好。我更像是一个 C++ 程序员,所以继承是我想到的第一种方式。创建我在共享头文件中公开的基本类,然后程序员从中派生他们自己的窗口对象,覆盖 Init() 或 Run() 方法来实现他们需要的东西。这种方法的问题是要控制程序员,没有真正的方法可以“阻止”他们在 OpenGL 屏幕中简单地绘制他们想要的任何位置。

另一种可能的方法是仿函数,将程序员想要使用的仿函数传递到库中,然后在完成渲染它的 GUI 组件后调用它。

解决这些问题的最佳方法是什么??

【问题讨论】:

    标签: opengl structure sdl


    【解决方案1】:

    具有自己的 OpenGL 上下文的窗口

    这需要破解 SDL,因为它只为每个进程提供一个上下文。除非您正在考虑使用多个独立的子视口按顺序呈现的单个 GL 上下文。

    【讨论】:

    • 这是一个很好的观点,我并没有真正想到搞乱 SDL 本身。视口工作,除了在库外移交绘图。我正在考虑更多地为用户“渲染表面”使用帧缓冲区对象,然后只是为窗口添加一些装饰的四边形。
    猜你喜欢
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2011-12-10
    • 2023-01-26
    • 1970-01-01
    相关资源
    最近更新 更多