From 2d99fa5961fac6b37a34c49e51a189898332c914 Mon Sep 17 00:00:00 2001 From: demiralp <demiralp@vr.rwth-aachen.de> Date: Wed, 18 Apr 2018 16:00:55 +0200 Subject: [PATCH] New display system complete. --- library/phx/display_system.cpp | 13 +++++++++++-- library/phx/display_system.hpp | 22 ++++++---------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/library/phx/display_system.cpp b/library/phx/display_system.cpp index 675f9642..cd49d6be 100644 --- a/library/phx/display_system.cpp +++ b/library/phx/display_system.cpp @@ -22,8 +22,17 @@ #include "display_system.hpp" +#include <vector> + namespace phx { -DisplaySystem::DisplaySystem(Engine* engine) : System(engine) {} -DisplaySystem::~DisplaySystem() {} +void DisplaySystem::Update(const FrameTimer::TimeInfo&) { tick(); } +std::vector<di::opengl_window*> DisplaySystem::OpenGLWindows() const { + std::vector<di::opengl_window*> opengl_windows; + for (auto window : windows()) { + auto opengl_window = dynamic_cast<di::opengl_window*>(window); + if (opengl_window) opengl_windows.push_back(opengl_window); + } + return opengl_windows; +} } // namespace phx diff --git a/library/phx/display_system.hpp b/library/phx/display_system.hpp index 08e2d363..9a22be33 100644 --- a/library/phx/display_system.hpp +++ b/library/phx/display_system.hpp @@ -23,32 +23,22 @@ #ifndef LIBRARY_PHX_DISPLAY_SYSTEM_HPP_ #define LIBRARY_PHX_DISPLAY_SYSTEM_HPP_ -#include <memory> +#include <di/systems/display/display_system.hpp> +#include <di/systems/display/opengl_window.hpp> + #include <vector> #include "phx/engine.hpp" #include "phx/export.hpp" -#include "phx/render_target.hpp" #include "phx/system.hpp" namespace phx { - -class PHOENIX_EXPORT DisplaySystem : public System { +class PHOENIX_EXPORT DisplaySystem : public System, public di::display_system { public: - DisplaySystem(const DisplaySystem&) = delete; - DisplaySystem(DisplaySystem&&) = default; - ~DisplaySystem(); - - DisplaySystem& operator=(const DisplaySystem&) = delete; - DisplaySystem& operator=(DisplaySystem&&) = default; + void Update(const FrameTimer::TimeInfo&) override; - void Update(const FrameTimer::TimeInfo&) override = 0; - - protected: - explicit DisplaySystem(Engine* engine); - friend DisplaySystem* Engine::CreateSystem<DisplaySystem>(); + std::vector<di::opengl_window*> OpenGLWindows() const; }; - } // namespace phx #endif // LIBRARY_PHX_DISPLAY_SYSTEM_HPP_ -- GitLab