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:
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c9
-rw-r--r--source/blender/editors/space_view3d/view3d_utils.c2
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index c024bab355d..2e46deea0e8 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2322,7 +2322,10 @@ void ED_view3d_depth_override(Depsgraph *depsgraph,
ViewDepths **r_depths)
{
if (v3d->runtime.flag & V3D_RUNTIME_DEPTHBUF_OVERRIDDEN) {
- return;
+ /* Force redraw if `r_depths` is required. */
+ if (!r_depths || *r_depths != NULL) {
+ return;
+ }
}
struct bThemeState theme_state;
Scene *scene = DEG_get_evaluated_scene(depsgraph);
@@ -2365,6 +2368,9 @@ void ED_view3d_depth_override(Depsgraph *depsgraph,
}
if (r_depths) {
+ if (*r_depths) {
+ ED_view3d_depths_free(*r_depths);
+ }
*r_depths = view3d_depths_create(region);
}
}
@@ -2384,6 +2390,7 @@ void ED_view3d_depths_free(ViewDepths *depths)
if (depths->depths) {
MEM_freeN(depths->depths);
}
+ MEM_freeN(depths);
}
/** \} */
diff --git a/source/blender/editors/space_view3d/view3d_utils.c b/source/blender/editors/space_view3d/view3d_utils.c
index c7da3378ae3..ea0b1f396c3 100644
--- a/source/blender/editors/space_view3d/view3d_utils.c
+++ b/source/blender/editors/space_view3d/view3d_utils.c
@@ -1019,7 +1019,7 @@ static float view_autodist_depth_margin(ARegion *region, const int mval[2], int
ViewDepths depth_temp = {0};
view3d_depths_rect_create(region, &rect, &depth_temp);
float depth_close = view3d_depth_near(&depth_temp);
- ED_view3d_depths_free(&depth_temp);
+ MEM_SAFE_FREE(depth_temp.depths);
return depth_close;
}