diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-08-09 13:04:00 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-08-09 13:04:00 +0300 |
commit | 0de50a98e384012628ea38dfceebd99f64bcea47 (patch) | |
tree | a0d26c52e23460a03d416a25cf97ac06e4c1e5b2 /source/blender/editors/render | |
parent | bf2d0782bc4dfd4952a5cb0de8ab4e4c7b21fc12 (diff) |
Fix T56239: creating material crashes with OpenGL render engine selected.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 17 |
1 files changed, 16 insertions, 1 deletions
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; |