#include "gameMainWindow.h" #include "editNetwork.h" #include "gameMainSelector.h" #include "gfx/camera_controller.h" #include "manualCameraController.h" #include "modeHelper.hpp" #include "toolbar.h" #include "window.h" #include #include #include #include #include #include // IWYU pragma: keep #include #include #include #include class GameMainToolbar : Mode, public Toolbar { public: explicit GameMainToolbar(GameMainSelector * gms_) : Mode {gms_->target}, Toolbar { {"ui/icon/network.png", toggle>()}, } { } }; GameMainWindow::GameMainWindow(size_t w, size_t h) : Window {w, h, "I Like Trains", SDL_WINDOW_OPENGL}, SceneRenderer {Window::size, 0} { uiComponents.create(glm::vec2 {-1150, -1150}); auto gms = uiComponents.create(&camera, glm::vec2 {w, h}); uiComponents.create(gms.get()); } void GameMainWindow::tick(TickDuration) { uiComponents.apply(&CameraController::updateCamera, &camera); } void GameMainWindow::render() const { SceneRenderer::render(*this); Window::render(); } void GameMainWindow::content(const SceneShader & shader) const { gameState->world.apply(&Renderable::render, shader); uiComponents.apply(&WorldOverlay::render, shader); } void GameMainWindow::environment(const SceneShader & s, const SceneRenderer & r) const { // default for now SceneRenderer::SceneProvider::environment(s, r); }