Fix T64514: wrong grease pencil icon preview renders
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Tue, 14 May 2019 15:57:10 +0000 (17:57 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Tue, 14 May 2019 16:00:06 +0000 (18:00 +0200)
This broken when the new Cycles/Eevee preview scene was added, make it work
the same as before for Grease Pencil now.

source/blender/editors/render/render_preview.c

index 64f20a4..e082e96 100644 (file)
@@ -270,7 +270,7 @@ static const char *preview_collection_name(const char pr_type)
     case MA_FLUID:
       return "Fluid";
     case MA_SPHERE_A:
     case MA_FLUID:
       return "Fluid";
     case MA_SPHERE_A:
-      return "World Shader Ball";
+      return "World Sphere";
     case MA_LAMP:
       return "Lamp";
     case MA_SKY:
     case MA_LAMP:
       return "Lamp";
     case MA_SKY:
@@ -437,7 +437,14 @@ static Scene *preview_prepare_scene(
           sce->world->horb = 0.05f;
         }
 
           sce->world->horb = 0.05f;
         }
 
-        set_preview_visibility(sce, view_layer, mat->pr_type, sp->pr_method);
+        if (sp->pr_method == PR_ICON_RENDER && sp->pr_main == G_pr_main_grease_pencil) {
+          /* For grease pencil, always use sphere for icon renders. */
+          set_preview_visibility(sce, view_layer, MA_SPHERE_A, sp->pr_method);
+        }
+        else {
+          /* Use specified preview shape for both preview panel and icon previews. */
+          set_preview_visibility(sce, view_layer, mat->pr_type, sp->pr_method);
+        }
 
         if (sp->pr_method != PR_ICON_RENDER) {
           if (mat->nodetree && sp->pr_method == PR_NODE_RENDER) {
 
         if (sp->pr_method != PR_ICON_RENDER) {
           if (mat->nodetree && sp->pr_method == PR_NODE_RENDER) {