[Bf-blender-cvs] [55eac3a088a] temp-drawcontext: Fixes for proper initialization and destruction of draw context.

Brecht Van Lommel noreply at git.blender.org
Mon Feb 26 03:36:37 CET 2018


Commit: 55eac3a088a8d12f140fdd4ef2a14919c5ffa36c
Author: Brecht Van Lommel
Date:   Sun Feb 25 23:58:17 2018 +0100
Branches: temp-drawcontext
https://developer.blender.org/rB55eac3a088a8d12f140fdd4ef2a14919c5ffa36c

Fixes for proper initialization and destruction of draw context.

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

M	source/blender/draw/intern/draw_manager.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/windowmanager/intern/wm_init_exit.c

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index d773ef37820..e56d38f6b02 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -4317,6 +4317,8 @@ void DRW_opengl_context_create(void)
 	/* Be sure to create gawain.context too. */
 	g_gwn_context = GWN_context_create();
 	immActivate();
+	/* Set default Blender OpenGL state */
+	GPU_state_init();
 	/* So we activate the window's one afterwards. */
 	wm_window_reset_drawable();
 }
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 78322c90d7c..68996cdf906 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2137,6 +2137,7 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(
 		/* bind */
 		ofs = GPU_offscreen_create(sizex, sizey, use_full_sample ? 0 : samples, true, false, err_out);
 		if (ofs == NULL) {
+			DRW_opengl_context_disable();
 			return NULL;
 		}
 	}
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 20299dbb66d..3502e990cd8 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -212,7 +212,6 @@ void WM_init(bContext *C, int argc, const char **argv)
 		DRW_opengl_context_create();
 
 		GPU_init();
-		GPU_state_init();
 
 		GPU_set_mipmap(!(U.gameflags & USER_DISABLE_MIPMAP));
 		GPU_set_linear_mipmap(true);



More information about the Bf-blender-cvs mailing list