From 079b3974dbe8ad319a9d1810245d6d9265adfb69 Mon Sep 17 00:00:00 2001 From: Marek Trtik <trtikm@mail.muni.cz> Date: Fri, 2 Aug 2024 01:42:34 +0200 Subject: [PATCH] Added lfs tutorial --- include/maker/presenter.hpp | 2 ++ src/presenter.cpp | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/maker/presenter.hpp b/include/maker/presenter.hpp index a281896..b2187c3 100644 --- a/include/maker/presenter.hpp +++ b/include/maker/presenter.hpp @@ -19,6 +19,8 @@ struct Presenter : public com::Runner protected: + void on_content_changed(File* sender) override; + void initialize() override; void release() override; }; diff --git a/src/presenter.cpp b/src/presenter.cpp index c6ad96e..f4abdd7 100644 --- a/src/presenter.cpp +++ b/src/presenter.cpp @@ -3,6 +3,7 @@ #include <gfx/index.hpp> #include <osi/index.hpp> #include <com/math_files.hpp> +#include <lfs/index.hpp> namespace mak { @@ -59,6 +60,24 @@ void Presenter::initialize() gfx::object_system()->insert_light(test_box, dir_light); gfx::light_system()->insert_shadow_caster(dir_light, test_box); + + // ----------------------------- + + auto* handle{ lfs::loader()->load({"age", "texture", "font", "Consolas_16.txt"}) }; + if (handle->state() == lfs::ResourceHandle::LOADED) + Presenter::on_content_changed(handle); + else + handle->register_on_content_changed(this); +} + +void Presenter::on_content_changed(File* const sender) +{ + if (lfs::ResourceHandle* const handle = dynamic_cast<lfs::ResourceHandle*>(sender)) + { + ASSUMPTION(handle->state() == lfs::ResourceHandle::LOADED); + std::string const my_loaded_data{ handle->data().begin(), handle->data().end() }; + handle->unregister_on_content_changed(this); + } } void Presenter::release() -- GitLab