Clear image cache when tabbing out of canvas
This commit is contained in:
parent
c7024578af
commit
1f80107005
9 changed files with 32 additions and 0 deletions
|
|
@ -287,6 +287,20 @@ ResourceDisplay::Type ImageResourceDisplay::get_type() const {
|
|||
return ResourceDisplay::Type::IMAGE;
|
||||
}
|
||||
|
||||
void ImageResourceDisplay::clear_cache() {
|
||||
if(loadThread) {
|
||||
shutdownLoadThread = true;
|
||||
loadThread->join();
|
||||
loadThread = nullptr;
|
||||
}
|
||||
for(auto& frame : frames) {
|
||||
for(auto& mipmap : frame.mipmapLevels)
|
||||
mipmap = nullptr;
|
||||
}
|
||||
for(auto& mipmapStatus : mipmapLevelsStatus)
|
||||
mipmapStatus = MipmapLevelStatus::UNALLOCATED;
|
||||
}
|
||||
|
||||
ImageResourceDisplay::~ImageResourceDisplay() {
|
||||
if(loadThread) {
|
||||
shutdownLoadThread = true;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class ImageResourceDisplay : public ResourceDisplay {
|
|||
virtual float get_dimension_scale() const override;
|
||||
virtual Type get_type() const override;
|
||||
virtual void camera_view_update(const CoordSpaceHelper& compCoords, const SCollision::AABB<WorldScalar>& compAABB, const DrawData& drawData, const SkRect& imRect) override;
|
||||
virtual void clear_cache() override;
|
||||
virtual ~ImageResourceDisplay() override;
|
||||
|
||||
static int IMAGE_LOAD_THREAD_COUNT_MAX;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,7 @@
|
|||
void ResourceDisplay::camera_view_update(const CoordSpaceHelper& compCoords, const SCollision::AABB<WorldScalar>& compAABB, const DrawData& drawData, const SkRect& imRect) {
|
||||
}
|
||||
|
||||
void ResourceDisplay::clear_cache() {
|
||||
}
|
||||
|
||||
ResourceDisplay::~ResourceDisplay() {}
|
||||
|
|
|
|||
|
|
@ -27,5 +27,6 @@ class ResourceDisplay {
|
|||
virtual float get_dimension_scale() const = 0;
|
||||
virtual Type get_type() const = 0;
|
||||
virtual void camera_view_update(const CoordSpaceHelper& compCoords, const SCollision::AABB<WorldScalar>& compAABB, const DrawData& drawData, const SkRect& imRect);
|
||||
virtual void clear_cache();
|
||||
virtual ~ResourceDisplay();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue