[Bf-blender-cvs] [c422033ff8f] temp-lanpr-cleanup2: LANPR: Fix max_occ wrong value on first ever calculation.
YimingWu
noreply at git.blender.org
Wed Oct 30 15:07:28 CET 2019
Commit: c422033ff8f2bbc1dd2ae053c2e8603d6c22b5ff
Author: YimingWu
Date: Wed Oct 30 22:05:50 2019 +0800
Branches: temp-lanpr-cleanup2
https://developer.blender.org/rBc422033ff8f2bbc1dd2ae053c2e8603d6c22b5ff
LANPR: Fix max_occ wrong value on first ever calculation.
Due to the copy on write, the max_occ value needs to be accessed from
the original scene.
===================================================================
M source/blender/draw/engines/lanpr/lanpr_engine.c
M source/blender/editors/lanpr/lanpr_cpu.c
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 4bd868cfcf6..5efd2d93ec8 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -161,7 +161,7 @@ static void lanpr_engine_init(void *ved)
void DRW_scene_freecache(Scene *sce)
{
LANPR_LineLayer *ll;
-
+
for (ll = sce->lanpr.line_layers.first; ll; ll = ll->next) {
if (ll->batch) {
GPU_batch_discard(ll->batch);
@@ -490,7 +490,8 @@ static void lanpr_cache_init(void *vedata)
}
}
- if (ED_lanpr_calculation_flag_check(LANPR_RENDER_FINISHED) || ED_lanpr_calculation_flag_check(LANPR_RENDER_IDLE)) {
+ if (ED_lanpr_calculation_flag_check(LANPR_RENDER_FINISHED) ||
+ ED_lanpr_calculation_flag_check(LANPR_RENDER_IDLE)) {
ED_lanpr_rebuild_all_command(&draw_ctx->scene->lanpr);
ED_lanpr_calculation_set_flag(LANPR_RENDER_IDLE);
}
diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c
index 2c9fc9939fd..ec79c4d5dac 100644
--- a/source/blender/editors/lanpr/lanpr_cpu.c
+++ b/source/blender/editors/lanpr/lanpr_cpu.c
@@ -2719,7 +2719,7 @@ static int lanpr_max_occlusion_in_targets(Depsgraph *depsgraph)
static int lanpr_get_max_occlusion_level(Depsgraph *dg)
{
Scene *s = DEG_get_evaluated_scene(dg);
- SceneLANPR *lanpr = &s->lanpr;
+ SceneLANPR *lanpr = s->id.orig_id ? &((Scene *)s->id.orig_id)->lanpr : &s->lanpr;
if (!strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR)) {
/* Use the line layers in scene LANPR settings */
return ED_lanpr_max_occlusion_in_line_layers(lanpr);
More information about the Bf-blender-cvs
mailing list