我想为在 SDL 之上运行的 OpenGL 设计和实现一个简单的窗口和小部件,就像 Agar 或 GiGi,只是更接近于 SDL 和 OpenGL。
我的一般问题是: OpenGL 上下文中的窗口系统的最佳设计是什么?
我想要只用于控件的窗口,如果可能的话,还有带有自己的 OpenGL 上下文的线程窗口。我认为它甚至可能的唯一方法是渲染纹理,然后他们在这些周围添加窗口装饰......
我想将工作原理暴露给其他程序员,但哪种方式最好。我更像是一个 C++ 程序员,所以继承是我想到的第一种方式。创建我在共享头文件中公开的基本类,然后程序员从中派生自己的窗口对象,覆盖 Init() 或 Run() 方法来实现他们需要的东西。这种方法的问题是要控制程序员,没有真正的方法可以“阻止”他们在 OpenGL 屏幕中简单地绘制他们想要的任何位置。
另一种可能的方法是函子,将程序员想要使用的函子传递到库中,然后在完成渲染它的 GUI 组件和其他内容后调用它。
解决这些问题的最佳方法是什么?