0

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

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

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

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

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

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

4

1 回答 1

0

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

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

于 2009-07-30T19:17:45.243 回答