[Bf-blender-cvs] [0de50a98e38] blender2.8: Fix T56239: creating material crashes with OpenGL render engine selected.

Brecht Van Lommel noreply at git.blender.org
Thu Aug 9 12:06:17 CEST 2018


Commit: 0de50a98e384012628ea38dfceebd99f64bcea47
Author: Brecht Van Lommel
Date:   Thu Aug 9 12:04:00 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB0de50a98e384012628ea38dfceebd99f64bcea47

Fix T56239: creating material crashes with OpenGL render engine selected.

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

M	source/blender/editors/render/render_preview.c

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

diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 069611be35d..8bb60b19dcf 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -237,7 +237,13 @@ void ED_preview_ensure_dbase(void)
 static bool check_engine_supports_textures(Scene *scene)
 {
 	RenderEngineType *type = RE_engines_find(scene->r.engine);
-	return type->flag & RE_USE_TEXTURE_PREVIEW;
+	return (type->flag & RE_USE_TEXTURE_PREVIEW) != 0;
+}
+
+static bool check_engine_supports_preview(Scene *scene)
+{
+	RenderEngineType *type = RE_engines_find(scene->r.engine);
+	return (type->flag & RE_USE_PREVIEW) != 0;
 }
 
 void ED_preview_free_dbase(void)
@@ -753,6 +759,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
 		sce->r.size = 100;
 	}
 
+
 	/* get the stuff from the builtin preview dbase */
 	sce = preview_prepare_scene(sp->bmain, sp->scene, id_eval, idtype, sp);
 	if (sce == NULL) return;
@@ -1092,6 +1099,10 @@ static void icon_preview_startjob_all_sizes(void *customdata, short *stop, short
 			continue;
 		}
 
+		if (!check_engine_supports_preview(ip->scene)) {
+			continue;
+		}
+
 		ShaderPreview *sp = MEM_callocN(sizeof(ShaderPreview), "Icon ShaderPreview");
 		const bool is_render = !(prv->tag & PRV_TAG_DEFFERED);
 
@@ -1268,6 +1279,10 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
 
 	/* Use workspace render only for buttons Window, since the other previews are related to the datablock. */
 
+	if (!check_engine_supports_preview(scene)) {
+		return;
+	}
+
 	/* Only texture node preview is supported with Cycles. */
 	if (method == PR_NODE_RENDER && id_type != ID_TE) {
 		return;



More information about the Bf-blender-cvs mailing list