From b294a76cc9127158e8d91ffc2fe7ddb8f096fdde Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 27 Jan 2025 00:42:32 +0100 Subject: [PATCH] feat: added ui_draw --- src/core/level.cpp | 4 ++++ src/core/level.hpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/core/level.cpp b/src/core/level.cpp index 443247f..3077d82 100644 --- a/src/core/level.cpp +++ b/src/core/level.cpp @@ -34,6 +34,10 @@ void Level::propagate_draw(SDL_Renderer *render) { 0.5f / this->view_transform.scale.x, 0.5f / this->view_transform.scale.y * ratio }) * this->view_transform * screen_transform); + this->root->propagate_draw_ui(render, Transform().translated({ + 0.5f / this->view_transform.scale.x, + 0.5f / this->view_transform.scale.y * ratio + }) * screen_transform); } Node *Level::get_root() { diff --git a/src/core/level.hpp b/src/core/level.hpp index 8b7fd1c..75ef4fb 100644 --- a/src/core/level.hpp +++ b/src/core/level.hpp @@ -2,6 +2,7 @@ #define CANVAS_LEVEL_HPP #include "node.hpp" +#include namespace ce { class Level { @@ -19,6 +20,7 @@ public: void deinstantiate(); void propagate_tick(double delta_time); void propagate_draw(SDL_Renderer *render); + template static std::unique_ptr make(TArgs... args); Node *get_root(); bool is_instantiated() const; @@ -27,6 +29,10 @@ public: protected: Node::OwnedPtr &get_owned_root(); }; + +template std::unique_ptr Level::make(TArgs... args) { + return std::unique_ptr(new TLevel(args...)); +} } #endif // !CANVAS_LEVEL_HPP