[Bf-blender-cvs] [acc075f33ca] soc-2019-npr: LANPR: GP stroke now automatically updates LANPR cache.

YimingWu noreply at git.blender.org
Mon Jun 3 13:25:13 CEST 2019


Commit: acc075f33ca8c38a46d4954e59258e74999c4c06
Author: YimingWu
Date:   Mon Jun 3 17:49:24 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBacc075f33ca8c38a46d4954e59258e74999c4c06

LANPR: GP stroke now automatically updates LANPR cache.

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

M	source/blender/draw/engines/lanpr/lanpr_access.c
M	source/blender/draw/engines/lanpr/lanpr_access.h
M	source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c
index 85c9327d99f..8f1b4670c94 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -243,6 +243,7 @@ void lanpr_generate_gpencil_from_chain(
     printf("NULL LANPR rb!\n");
     return;
   }
+  if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) return;
 
   int color_idx = 0;
   int tot_points = 0;
@@ -279,3 +280,12 @@ void lanpr_generate_gpencil_from_chain(
     BKE_gpencil_stroke_add_points(gps, stroke_data, count, mat);
   }
 }
+
+void lanpr_update_data_for_external(Depsgraph *depsgraph){
+  Scene *scene = DEG_get_evaluated_scene(depsgraph);
+  SceneLANPR *lanpr = &scene->lanpr;
+  if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) return;
+  if (lanpr->render_buffer && lanpr->render_buffer->cached_for_frame !=  scene->r.cfra){
+    lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene);
+  }
+}
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h
index be5b8b4a743..baa9dbb07ea 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -16,8 +16,14 @@ void lanpr_generate_gpencil_geometry(
 void lanpr_generate_gpencil_from_chain(
     GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf);
 
+void lanpr_update_data_for_external(Depsgraph *depsgraph);
+
+
 int lanpr_count_chain(LANPR_RenderLineChain *rlc);
 
+int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene);
+
 void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
 
+
 #endif
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index 01dd03ee319..18cbf1f173f 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@ -104,6 +104,7 @@ static void generateStrokes(
     GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
 {
   // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
+  lanpr_update_data_for_external(depsgraph);
   lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
 }



More information about the Bf-blender-cvs mailing list