Можно ли спроектировать Qt dll, которая тянет за собой OpenGL?
Я хочу создать некий графический движок (основан на QOpenGL
). Наработки уже есть, если вдруг вам интересно, с ними можно ознакомиться тут: https://github.com/StrawberryAttacks/OpenGLWorldEngine
Сейчас планирую перестроить его, в корне изменив архитектуру. Будет большая фабрика WorldEngineFactory, от которой наследуются три фабрики: SkyBoxFactory, Object3DFactory, LightFactory. Классы: SkyBox - куб, отвечающий за окружение (пространство, в котором будет всё находиться), Object3D, экземпляры которого являются моделями на сцене, Light, экземпляром которого будет источник освещения (планирую добавить разные типы).
Мой движок - это динамическая библиотека. Но получится ли у меня сделать Qt dll
, которая в себе бы подключала OpenGL? Я хочу, чтобы, при создании нового проекта, не нужно было в него загружать OpenGL и движок, а достаточно было бы динамически загрузить только движок. Существует ли такая возможность?
Критика архитектуры приветствуется, это мой первый проект, который я пытаюсь построить правильно с точки зрения ООП, поэтому заранее спасибо за любые предложения.
Или лучше всё перевести в статику? Избавиться от полиморфизма, заменив необходимость реализации интерфейса на compile time requirements (с++ 20) ? Как-никак, виртуальные функции - дорогое удовольствие, тем более все типы данных будут известны на момент компиляции (если, конечно, пользователь движка не захочет сделать в игре что-то вроде "выберите создаваемый объект"). Я в замешательстве!