[Bf-blender-cvs] [3d13c7ebbc7] lanpr-under-gp: LineArt: Take account of hidden modifiers in render and viewport.

YimingWu noreply at git.blender.org
Wed Jul 15 07:27:38 CEST 2020


Commit: 3d13c7ebbc7138e7e2b4c633286c8f5b15e40f69
Author: YimingWu
Date:   Wed Jul 15 13:27:33 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rB3d13c7ebbc7138e7e2b4c633286c8f5b15e40f69

LineArt: Take account of hidden modifiers in render and viewport.

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

M	source/blender/editors/lineart/lineart_cpu.c

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

diff --git a/source/blender/editors/lineart/lineart_cpu.c b/source/blender/editors/lineart/lineart_cpu.c
index 5d5a041c4f1..530668fdb17 100644
--- a/source/blender/editors/lineart/lineart_cpu.c
+++ b/source/blender/editors/lineart/lineart_cpu.c
@@ -2464,6 +2464,7 @@ static int lineart_get_max_occlusion_level(Depsgraph *dg)
   LineartGpencilModifierData *lmd;
   int max_occ = 0;
   int max;
+  int mode = DEG_get_mode(dg);
 
   DEG_OBJECT_ITER_BEGIN (dg,
                          ob,
@@ -2472,6 +2473,16 @@ static int lineart_get_max_occlusion_level(Depsgraph *dg)
     if (ob->type == OB_GPENCIL) {
       LISTBASE_FOREACH (GpencilModifierData *, md, &ob->greasepencil_modifiers) {
         if (md->type == eGpencilModifierType_Lineart) {
+          if (mode == DAG_EVAL_RENDER) {
+            if (!(md->flag & eGpencilModifierMode_Render)) {
+              continue;
+            }
+          }
+          else {
+            if (!(md->flag & eGpencilModifierMode_Realtime)) {
+              continue;
+            }
+          }
           lmd = (LineartGpencilModifierData *)md;
           max = MAX2(lmd->level_start, lmd->level_end);
           max_occ = MAX2(max, max_occ);
@@ -3462,6 +3473,14 @@ int ED_lineart_compute_feature_lines_internal(Depsgraph *depsgraph, const int sh
    * Unlock parent thread, it'scene safe to run independently from now. */
   BLI_spin_unlock(&lineart_share.lock_loader);
 
+  if (!rb->vertex_buffer_pointers.first) {
+    /* Nothing loaded, early return. */
+    if (show_frame_progress) {
+      ED_lineart_update_render_progress(100, "LRT: Finished.");
+    }
+    return OPERATOR_FINISHED;
+  }
+
   lineart_compute_view_vector(rb);
   lineart_cull_triangles(rb);



More information about the Bf-blender-cvs mailing list