[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