Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-02-04 17:40:29 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-02-04 17:40:29 +0300
commit7b686970efaba31abf7d93ff43f74a682c1e1eab (patch)
tree95c5a0e9ecad0f2cd26be7887c0876c2de4d02ad
parent0b0f4829e154c8f95e1d9917bf1d630aac962cee (diff)
parent2e766ff7624349b65a5d908dc3895ad10b240050 (diff)
Merge branch 'blender-v3.1-release'
# Conflicts: # source/blender/draw/engines/workbench/workbench_effect_cavity.c
-rw-r--r--source/blender/draw/engines/image/image_drawing_mode.hh12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/blender/draw/engines/image/image_drawing_mode.hh b/source/blender/draw/engines/image/image_drawing_mode.hh
index a80b6b1ea95..cc85f1e098f 100644
--- a/source/blender/draw/engines/image/image_drawing_mode.hh
+++ b/source/blender/draw/engines/image/image_drawing_mode.hh
@@ -231,7 +231,7 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
if (iterator.tile_data.tile_buffer == nullptr) {
continue;
}
- const bool float_buffer_created = ensure_float_buffer(*iterator.tile_data.tile_buffer);
+ ensure_float_buffer(*iterator.tile_data.tile_buffer);
const float tile_width = static_cast<float>(iterator.tile_data.tile_buffer->x);
const float tile_height = static_cast<float>(iterator.tile_data.tile_buffer->y);
@@ -337,10 +337,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
0);
imb_freerectImbuf_all(&extracted_buffer);
}
- /* TODO(jbakker): Find leak when rendering VSE and remove this call. */
- if (float_buffer_created) {
- imb_freerectfloatImBuf(iterator.tile_data.tile_buffer);
- }
}
}
@@ -418,6 +414,9 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
const int texture_width = texture_buffer.x;
const int texture_height = texture_buffer.y;
const bool float_buffer_created = ensure_float_buffer(tile_buffer);
+ /* TODO(jbakker): Find leak when rendering VSE and don't free here. */
+ const bool do_free_float_buffer = float_buffer_created &&
+ instance_data.image->type == IMA_TYPE_R_RESULT;
/* IMB_transform works in a non-consistent space. This should be documented or fixed!.
* Construct a variant of the info_uv_to_texture that adds the texel space
@@ -455,8 +454,7 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
uv_to_texel,
crop_rect_ptr);
- /* TODO(jbakker): Find leak when rendering VSE and remove this call. */
- if (float_buffer_created) {
+ if (do_free_float_buffer) {
imb_freerectfloatImBuf(&tile_buffer);
}
}