aboutsummaryrefslogtreecommitdiff
path: root/src/ImageViewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ImageViewer.cpp')
-rw-r--r--src/ImageViewer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp
index 6efc688..9297edf 100644
--- a/src/ImageViewer.cpp
+++ b/src/ImageViewer.cpp
@@ -5,6 +5,7 @@
#include "../include/ResourceLoader.hpp"
#include "../plugins/Manga.hpp"
#include <cmath>
+#include <malloc.h>
#include <SFML/Window/Event.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
@@ -265,6 +266,7 @@ namespace QuickMedia {
min_page_center_dist = 9999999.0;
page_closest_to_center = -1;
+ bool loaded_textures_changed = false;
int page_i = 0;
for(auto &page_data : image_data) {
if(page_data) {
@@ -287,6 +289,7 @@ namespace QuickMedia {
page_data->image_status = ImageStatus::FAILED_TO_LOAD;
}
page_data->image.reset();
+ loaded_textures_changed = true;
}
page_data->visible_on_screen = false;
}
@@ -349,10 +352,14 @@ namespace QuickMedia {
if(page_data && !page_data->visible_on_screen) {
fprintf(stderr, "ImageViewer: Unloaded page %d\n", 1 + i);
page_data.reset();
+ loaded_textures_changed = true;
}
++i;
}
+ if(loaded_textures_changed)
+ malloc_trim(0);
+
return ImageViewerAction::NONE;
}