[Bf-blender-cvs] [8b79a150f8e] blender2.8: Workbench: Fix buggy shadow

Clément Foucault noreply at git.blender.org
Fri Aug 17 13:04:32 CEST 2018


Commit: 8b79a150f8e170b3c015693751d657bc4000998e
Author: Clément Foucault
Date:   Fri Aug 17 13:04:18 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB8b79a150f8e170b3c015693751d657bc4000998e

Workbench: Fix buggy shadow

Was caused by shadow bbox not being updated.

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

M	source/blender/draw/engines/workbench/solid_mode.c

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

diff --git a/source/blender/draw/engines/workbench/solid_mode.c b/source/blender/draw/engines/workbench/solid_mode.c
index 5c64cebd981..e4bf47810b0 100644
--- a/source/blender/draw/engines/workbench/solid_mode.c
+++ b/source/blender/draw/engines/workbench/solid_mode.c
@@ -85,6 +85,17 @@ static void workbench_solid_view_update(void *vedata)
 	workbench_taa_view_updated(data);
 }
 
+static void workbench_solid_id_update(void *UNUSED(vedata), struct ID *id)
+{
+	if (GS(id->name) == ID_OB) {
+		WORKBENCH_ObjectData *oed = (WORKBENCH_ObjectData *)DRW_drawdata_get(id, &draw_engine_workbench_solid);
+		if (oed != NULL && oed->dd.recalc != 0) {
+			oed->shadow_bbox_dirty = (oed->dd.recalc & ID_RECALC_ALL) != 0;
+			oed->dd.recalc = 0;
+		}
+	}
+}
+
 static void workbench_render_to_image(void *vedata, RenderEngine *engine, RenderLayer *render_layer, const rcti *rect)
 {
 	workbench_render(vedata, engine, render_layer, rect);
@@ -104,6 +115,6 @@ DrawEngineType draw_engine_workbench_solid = {
 	&workbench_solid_draw_background,
 	&workbench_solid_draw_scene,
 	&workbench_solid_view_update,
-	NULL,
+	&workbench_solid_id_update,
 	&workbench_render_to_image,
 };



More information about the Bf-blender-cvs mailing list