[Bf-blender-cvs] [95cf3a3234b] soc-2019-npr: LANPR: Automatically update cache before drawing. (by a switch)

YimingWu noreply at git.blender.org
Wed Jul 3 08:04:45 CEST 2019


Commit: 95cf3a3234bb96cd25b3b048089f49763f7da210
Author: YimingWu
Date:   Wed Jul 3 14:04:15 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB95cf3a3234bb96cd25b3b048089f49763f7da210

LANPR: Automatically update cache before drawing. (by a switch)

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

M	source/blender/draw/engines/lanpr/lanpr_engine.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index c349940053e..b2ea2247046 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -575,9 +575,29 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb, int is_rend
   }
 }
 
+void lanpr_rebuild_all_command(SceneLANPR *lanpr);
+
 static void lanpr_draw_scene(void *vedata)
 {
   DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
+  const DRWContextState *draw_ctx = DRW_context_state_get();
+  int updated = 0;
+  if (draw_ctx->scene->lanpr.auto_update &&
+      (!lanpr_share.render_buffer_shared ||
+       lanpr_share.render_buffer_shared->cached_for_frame != draw_ctx->scene->r.cfra)) {
+    if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) {
+      lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0);
+      updated = 1;
+    }
+    else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) {
+      lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1);
+    }
+  }
+
+  if (updated) {
+    lanpr_rebuild_all_command(&draw_ctx->scene->lanpr);
+  }
+
   lanpr_draw_scene_exec(vedata, dfbl->default_fb, 0);
 }



More information about the Bf-blender-cvs mailing list