Я работаю над небольшим игровым движком и столкнулся с проблемой.
Пока у меня есть класс окна, который является оболочкой для окна Win32. У меня также есть класс Window Manager (это одноэлементный класс), который управляет созданием окон и обработкой сообщений окон. Затем у меня есть класс двигателя, который до сих пор является самым важным классом, так как это интерфейс для двигателя. Этот класс движка содержит основной цикл и устройство direct3d, а также код для его создания и уничтожения. Этот класс движка также содержит объект класса Window, который действует как главное / главное окно для устройства direct3d.
Моя проблема заключается в том, что движок должен реагировать на некоторые сообщения Windows (например, WM_SIZE или WM_ACTIVATEAPP), но обработчик сообщений является частью класса Widnow, который является «уровнем» ниже класса Engine. Я также думаю, что мне следует создать другой класс для инкапсуляции рендеринга / графики движка, а затем добавить этот класс в основной класс движка.
Так что я не уверен, должен ли я иметь класс Graphics внутри класса Window или класс Window внутри класса Graphics или иметь их рядом в главном классе Engine.