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

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

我希望Windows只用于控件,如果可能的话,还有带有自己的OpenGL上下文的线程化窗口。关于它甚至可能的唯一方法是渲染纹理,并在它们周围添加窗口装饰......

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

另一种可能的方式是函子,将程序员想要使用的函子传递给库,然后在它完成呈现GUI组件和什么不是它之后调用它。

接近任何一种方法的最佳方式是什么?

有帮助吗?

解决方案

  

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top