diff --git a/libs/ui/include/psemek/ui/default_image_provider.hpp b/libs/ui/include/psemek/ui/default_image_provider.hpp new file mode 100644 index 00000000..35902d72 --- /dev/null +++ b/libs/ui/include/psemek/ui/default_image_provider.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include +#include + +#include + +namespace psemek::ui +{ + + struct default_image_provider + : image_provider + { + void put(std::string id, gfx::texture_view_2d view) + { + images_[std::move(id)] = view; + } + + gfx::texture_view_2d get(std::string_view const & id) const override + { + if (auto it = images_.find(id); it != images_.end()) + return it->second; + return {}; + } + + private: + std::unordered_map images_; + }; + +} diff --git a/libs/ui/include/psemek/ui/image_provider.hpp b/libs/ui/include/psemek/ui/image_provider.hpp index 126da17d..964f8dbb 100644 --- a/libs/ui/include/psemek/ui/image_provider.hpp +++ b/libs/ui/include/psemek/ui/image_provider.hpp @@ -9,7 +9,7 @@ namespace psemek::ui struct image_provider { - virtual gfx::texture_view_2d get(std::string_view const & id) = 0; + virtual gfx::texture_view_2d get(std::string_view const & id) const = 0; virtual ~ image_provider() {} }; diff --git a/libs/ui/source/default_image_provider.cpp b/libs/ui/source/default_image_provider.cpp new file mode 100644 index 00000000..e69de29b