diff options
author | dec05eba <dec05eba@protonmail.com> | 2021-04-17 03:32:56 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-04-17 03:32:56 +0200 |
commit | 23435ac30b25cd1a0a8d52c4a792d90f38300344 (patch) | |
tree | b032a66dfcd30b005e2ff9a506b93f30a013e512 /include | |
parent | e183c47ec2db4e3bdd82a3fbbe81d2d61c64107a (diff) |
Fit image to window in continuous scrolling mode, use n 3 for waifu2x
Diffstat (limited to 'include')
-rw-r--r-- | include/ImageViewer.hpp | 5 | ||||
-rw-r--r-- | include/Scale.hpp | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/include/ImageViewer.hpp b/include/ImageViewer.hpp index c29ea13..74d93c1 100644 --- a/include/ImageViewer.hpp +++ b/include/ImageViewer.hpp @@ -29,6 +29,7 @@ namespace QuickMedia { ImageStatus image_status; std::unique_ptr<sf::Image> image; bool visible_on_screen; + float prev_height = 0.0f; }; struct PageSize { @@ -44,7 +45,7 @@ namespace QuickMedia { class ImageViewer { public: - ImageViewer(sf::RenderWindow *window, int num_pages, const std::string &content_title, const std::string &chapter_title, int current_page, const Path &chapter_cache_dir); + ImageViewer(sf::RenderWindow *window, int num_pages, const std::string &content_title, const std::string &chapter_title, int current_page, const Path &chapter_cache_dir, bool *fit_image_to_window); ~ImageViewer(); ImageViewerAction draw(); // Returns page as 1 indexed @@ -95,5 +96,7 @@ namespace QuickMedia { std::thread image_loader_thread; bool loading_image = false; + + bool *fit_image_to_window; }; }
\ No newline at end of file diff --git a/include/Scale.hpp b/include/Scale.hpp index 375ddff..e458894 100644 --- a/include/Scale.hpp +++ b/include/Scale.hpp @@ -33,6 +33,14 @@ namespace QuickMedia { } template<typename T> + static T clamp_to_size_x(const T &size, const T &clamp_size) { + T new_size = size; + if(size.x > clamp_size.x) + new_size = wrap_to_size_x(new_size, clamp_size); + return new_size; + } + + template<typename T> static T clamp_to_size(const T &size, const T &clamp_size) { T new_size = size; if(size.x > clamp_size.x || size.y > clamp_size.y) |