[Bf-blender-cvs] [2329cc09e6a] blender2.8: Code cleanup: make viewport free simpler and consistent with GPU module.

Brecht Van Lommel noreply at git.blender.org
Wed Feb 28 03:12:01 CET 2018


Commit: 2329cc09e6aec1adf09db755b0912a79cb3ab63a
Author: Brecht Van Lommel
Date:   Wed Feb 28 02:29:55 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB2329cc09e6aec1adf09db755b0912a79cb3ab63a

Code cleanup: make viewport free simpler and consistent with GPU module.

===================================================================

M	source/blender/draw/intern/draw_manager.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/gpu/intern/gpu_viewport.c

===================================================================

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 8626d979681..bf8428d2919 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1213,7 +1213,6 @@ void DRW_draw_render_loop_offscreen(
 			/* don't free data owned by 'ofs' */
 			GPU_viewport_clear_from_offscreen(rv3d->viewport);
 			GPU_viewport_free(rv3d->viewport);
-			MEM_freeN(rv3d->viewport);
 		}
 
 		rv3d->viewport = backup_viewport;
@@ -1297,7 +1296,6 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
 	/* TODO grease pencil */
 
 	GPU_viewport_free(DST.viewport);
-	MEM_freeN(DST.viewport);
 
 	DRW_state_reset();
 	/* FIXME GL_DEPTH_TEST is enabled by default but it seems
@@ -1493,7 +1491,6 @@ void DRW_draw_select_loop(
 
 	/* Cleanup for selection state */
 	GPU_viewport_free(viewport);
-	MEM_freeN(viewport);
 
 	/* Restore Drawing area. */
 	gpuPopAttrib();
@@ -1638,7 +1635,6 @@ void DRW_draw_depth_loop(
 
 	/* Cleanup for selection state */
 	GPU_viewport_free(viewport);
-	MEM_freeN(viewport);
 
 	/* Restore Drawing area. */
 	gpuPopAttrib();
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 1774390a1e5..7d29d6ad9b2 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -577,7 +577,6 @@ static void view3d_main_region_exit(wmWindowManager *wm, ARegion *ar)
 		DRW_opengl_context_enable();
 		GPU_viewport_free(rv3d->viewport);
 		DRW_opengl_context_disable();
-		MEM_freeN(rv3d->viewport);
 		rv3d->viewport = NULL;
 	}
 }
@@ -764,7 +763,6 @@ static void view3d_main_region_free(ARegion *ar)
 			DRW_opengl_context_enable();
 			GPU_viewport_free(rv3d->viewport);
 			DRW_opengl_context_disable();
-			MEM_freeN(rv3d->viewport);
 		}
 
 		MEM_freeN(rv3d);
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 5e649c6d2ea..793b7289146 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2235,7 +2235,6 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(
 			/* don't free data owned by 'ofs' */
 			GPU_viewport_clear_from_offscreen(viewport);
 			GPU_viewport_free(viewport);
-			MEM_freeN(viewport);
 		}
 
 		if (ibuf->rect_float == NULL) {
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c
index 83b9a8f0b0e..ee9d175e217 100644
--- a/source/blender/gpu/intern/gpu_viewport.c
+++ b/source/blender/gpu/intern/gpu_viewport.c
@@ -410,7 +410,6 @@ void GPU_viewport_bind(GPUViewport *viewport, const rcti *rect)
 cleanup_multisample:
 			if (!ok) {
 				GPU_viewport_free(viewport);
-				MEM_freeN(viewport);
 				return;
 			}
 		}
@@ -466,7 +465,6 @@ cleanup_multisample:
 cleanup:
 		if (!ok) {
 			GPU_viewport_free(viewport);
-			MEM_freeN(viewport);
 			DRW_opengl_context_disable();
 			return;
 		}
@@ -622,6 +620,8 @@ void GPU_viewport_free(GPUViewport *viewport)
 	MEM_freeN(viewport->idatalist);
 
 	GPU_viewport_debug_depth_free(viewport);
+
+	MEM_freeN(viewport);
 }
 
 /****************** debug ********************/



More information about the Bf-blender-cvs mailing list