From c1699fe882a1f0503fee705ba81cdf29e3f893be Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 19 Dec 2022 09:52:02 +0300 Subject: [PATCH] Add default image provider --- .../psemek/ui/default_image_provider.hpp | 30 +++++++++++++++++++ libs/ui/include/psemek/ui/image_provider.hpp | 2 +- libs/ui/source/default_image_provider.cpp | 0 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 libs/ui/include/psemek/ui/default_image_provider.hpp create mode 100644 libs/ui/source/default_image_provider.cpp 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