[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