From bf54fa5a62a980f5c4339137f9e2c6147642962c Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Sat, 30 May 2020 09:05:33 +0100 Subject: [PATCH] Light2D shadow mask construction fix When using the default setting (layer 1 set only) nothing is stored in the tscn file for a Light2D, hence it relies on the value in the constructor. The problem is the constructed value is 1 in Light2D, and -1 in RasterizerCanvas::Light. -1 results in all bits being set so all occluders are shown, rather than just those in layer 1. This PR changes Rasterizer::Canvas constructor to set to 1. An alternative is to have -1 as the value for layer 1 throughout. --- servers/visual/rasterizer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h index 82d85ad7238..2476f51c1fb 100644 --- a/servers/visual/rasterizer.h +++ b/servers/visual/rasterizer.h @@ -665,7 +665,7 @@ public: item_mask = 1; scale = 1.0; energy = 1.0; - item_shadow_mask = -1; + item_shadow_mask = 1; mode = VS::CANVAS_LIGHT_MODE_ADD; texture_cache = NULL; next_ptr = NULL;