From c45a3b80e2356a952248eaafaeeec48b28bcb0fd Mon Sep 17 00:00:00 2001 From: Antonioya Date: Thu, 21 Jun 2018 16:10:52 +0200 Subject: Fix T55555: Crash when select material properties This error is only in Windows and Mac when select in properties the material tab. This commit revert dc856be8399242f4ee3a2ce0450b7ac5a20b35f6 Preview: Add own opengl context to render preview images. --- source/blender/render/extern/include/RE_pipeline.h | 2 -- source/blender/render/intern/include/render_types.h | 1 - source/blender/render/intern/source/pipeline.c | 19 +------------------ 3 files changed, 1 insertion(+), 21 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index bde3c1c8cb3..a51e7af9d9d 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -312,10 +312,8 @@ void RE_draw_lock_cb (struct Render *re, void *handle, void (*f)(void *handle, void RE_test_break_cb (struct Render *re, void *handle, int (*f)(void *handle)); void RE_current_scene_update_cb(struct Render *re, void *handle, void (*f)(void *handle, struct Scene *scene)); -/* TODO replace by a simple set and get draw manager. */ void RE_gl_context_create(Render *re); void RE_gl_context_destroy(Render *re); -void RE_gl_context_set(Render *re, void *gl_context); void *RE_gl_context_get(Render *re); void *RE_gwn_context_get(Render *re); diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 134fa56f01c..34535fba1e0 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -161,7 +161,6 @@ struct Render { /* TODO replace by a whole draw manager. */ void *gl_context; void *gwn_context; - bool gl_context_ownership; }; /* **************** defines ********************* */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 14ef7a3cb94..361324bf07c 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1030,13 +1030,10 @@ void RE_test_break_cb(Render *re, void *handle, int (*f)(void *handle)) /* ********* GL Context ******** */ -/* Create the gl context of the Render. - * It will be free by the render itself. */ void RE_gl_context_create(Render *re) { /* Needs to be created in the main ogl thread. */ re->gl_context = WM_opengl_context_create(); - re->gl_context_ownership = true; } void RE_gl_context_destroy(Render *re) @@ -1048,22 +1045,11 @@ void RE_gl_context_destroy(Render *re) re->gwn_context = NULL; } if (re->gl_context) { - if (re->gl_context_ownership) { - WM_opengl_context_dispose(re->gl_context); - } + WM_opengl_context_dispose(re->gl_context); re->gl_context = NULL; } } -/* Manually set the gl context of the Render. - * It won't be free by the render itself. */ -void RE_gl_context_set(Render *re, void *gl_context) -{ - BLI_assert(gl_context); /* Cannot set NULL */ - re->gl_context = gl_context; - re->gl_context_ownership = false; -} - void *RE_gl_context_get(Render *re) { return re->gl_context; @@ -2646,9 +2632,6 @@ void RE_PreviewRender(Render *re, Main *bmain, Scene *sce) RE_SetCamera(re, camera); do_render_3d(re); - - /* Destroy the opengl context in the correct thread. */ - RE_gl_context_destroy(re); } /* note; repeated win/disprect calc... solve that nicer, also in compo */ -- cgit v1.2.3