From 3b21eda9ad3b2ece9c6e5472eb419fb4d88424bd Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 17 Sep 2020 19:20:36 +0200 Subject: Add image upscaling with waifu2x-ncnn-vulkan, async load images in scroll image view mode --- include/ImageViewer.hpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'include/ImageViewer.hpp') diff --git a/include/ImageViewer.hpp b/include/ImageViewer.hpp index 7fe4921..93e7d7c 100644 --- a/include/ImageViewer.hpp +++ b/include/ImageViewer.hpp @@ -9,14 +9,22 @@ #include #include #include +#include namespace QuickMedia { class Manga; + enum class ImageStatus { + WAITING, + LOADING, + FAILED_TO_LOAD, + LOADED + }; + struct ImageData { sf::Texture texture; sf::Sprite sprite; - bool failed_to_load_image; + ImageStatus image_status; bool visible_on_screen; }; @@ -39,6 +47,7 @@ namespace QuickMedia { int get_focused_page() const; int get_num_pages() const { return num_pages; } private: + void load_image_async(const Path &path, std::shared_ptr image_data, int page); bool render_page(sf::RenderWindow &window, int page, double offset_y); sf::Vector2 get_page_size(int page); private: @@ -61,7 +70,7 @@ namespace QuickMedia { sf::Clock frame_timer; sf::Text page_text; - std::vector> image_data; + std::vector> image_data; std::vector page_size; sf::Vector2 window_size; @@ -77,5 +86,8 @@ namespace QuickMedia { bool up_pressed = false; bool down_pressed = false; + + std::thread image_loader_thread; + bool loading_image = false; }; } \ No newline at end of file -- cgit v1.2.3