我正在开发一个小型游戏引擎,遇到了一个问题。
目前,我有一个窗口类,它是Win32窗口的包装器。我还有一个窗口管理器类(它是一个单例类),用于管理窗口的创建和处理窗口消息。然后我有一个引擎类,这是迄今为止最重要的类,因为它是引擎的接口。这个引擎类包含主循环和Direct3D设备,以及创建和销毁设备的代码。这个引擎类还包含一个Window类对象,作为Direct3D设备的主/宿主窗口。
我的问题是,引擎需要对一些窗口消息做出反应(如WM_SIZE或WM_ACTIVATEAPP),但消息处理程序是Window类的一部分,它在Engine类的"水平"位置下面。我还认为,我应该创建另一个类来封装引擎的渲染/图形,并将该类添加到主引擎类中。
所以我不确定是否应该在Window类内部有一个Graphics类,或者在Graphics类内部有一个Window类,或者让它们并排放在主Engine类中。