From 5e9c1feb8aff0ca40eff6689f9bf6a9678711a9e Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 1 Mar 2022 08:40:08 +0100 Subject: Image Engine: Performance 8 byte images. Previously we used to cache a float image representation of the image in rect_float. This adds some incorrect behavior as many areas only expect one of these buffers to be used. This patch stores float buffers inside the image engine. This is done per instance. In the future we should consider making a global cache. --- source/blender/draw/engines/image/image_usage.hh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/draw/engines/image/image_usage.hh') diff --git a/source/blender/draw/engines/image/image_usage.hh b/source/blender/draw/engines/image/image_usage.hh index 1eadee4481d..bbd56e3db7a 100644 --- a/source/blender/draw/engines/image/image_usage.hh +++ b/source/blender/draw/engines/image/image_usage.hh @@ -38,6 +38,8 @@ struct ImageUsage { /** IMA_ALPHA_* */ char alpha_mode; + const void *last_image = nullptr; + ImageUsage() = default; ImageUsage(const struct Image *image, const struct ImageUser *image_user) { @@ -46,6 +48,7 @@ struct ImageUsage { view = image_user ? image_user->multi_index : 0; colorspace_settings = image->colorspace_settings; alpha_mode = image->alpha_mode; + last_image = static_cast(image); } bool operator==(const ImageUsage &other) const -- cgit v1.2.3