#pragma once #include #include #include #include #include #include #include #include #include #include #include #include "scene/SceneManager.hpp" namespace thermion { typedef std::chrono::time_point time_point_t; using namespace std::chrono; class RenderTicker { public: RenderTicker(filament::Renderer renderer, thermion::SceneManager sceneManager) : mRenderer(renderer), mSceneManager(sceneManager) { } ~RenderTicker(); void render( uint64_t frameTimeInNanos ); void setRenderable(SwapChain *swapChain, View **view, uint8_t numViews); private: std::mutex mMutex; Renderer *mRenderer = nullptr; SceneManager *mSceneManager = nullptr; std::vector mSwapChains; std::map> mRenderable; }; }