LOL Engine день 3
Всем привет.
Из комментов в прошлых постах я кое что изменил. Огромное спасибо всем, кто помогает мне учиться:
Переделал структуру на гите и вынес include по совету из коммента
Взял spdlog для логов. Пока не оборачивал - сделаю позже.
Убрал Timer и this_thread::sleep
Как советовали, вместо того, чтобы заниматься фигней и получать состояние выполнения bool, сделал возврат состояния EXIT_SUCCESS/EXIT_FAILURE прямо из Application, ну и убрал все инициализации в конструктор
Структура проекта больше похожа на другие проекты на гите:
src / include / thirdparty / example (куда убрал базовый проект. Он пока пустоват. Займусь)
Инициализация запускаемого проекта проходит теперь через два extern.
Один прокидывает настройки приложения (разрешение, название, лимит кадров, название стартовой сцены)
Второй регистрирует сцены в SceneManager
Ну и удалил бгмерзский ServiceProvider. Это была ну ооочень плохая идея. Возможно, не буду изобретать велосипед, а просто возьму потом какую-нибудь DI библиотеку типа Boost.DI
Основной работы прибавилось, так что занимаюсь пет-проектом пореже. Спасибо всем кто участвует и помогает!





frameTimeLimit optional? Может, просто нулем если нет лимита?
Рекомендую сразу Update поделить на Update + before, post и подобные. В будущем сильно пригодится.
Так и не понял, зачем extern функции, ну да и ладно.
В Application Loop и в Start и в Init.
Для spdlog, всё-таки рекомендую написать пару define-ов для warn/err и тп. Потом проще на свой заменить будет.
Нет возможности прокинуть свои хинты для создания окна.
Если нет сцены, может, просто пустое окно выдавать?
GlfwForward - отличная идея. Вообще, можно glfw в какой-то удобный класс обернуть, в будущем, при чём в скором, пригодится. Пока накинуть в этот класс создание, ресайз, ивенты, закрытие. Пока этого хватит.
У application эт же не Start а Exec. Т.к это функция отбирает поток управления, пока не завершится.
С cross-platform в Readme посмеялся)
В подпроекты на Cmake вы проиграли. Стоит погуглить как нормально сделать, а то каждая попытка - занятный перл) Build interface на уровень выше - мега странно.
Так, мажорных доебов нет, уже выглядит как задел на что-то великое.
Дерзайте)