summaryrefslogtreecommitdiff
path: root/drivers/gles2
diff options
context:
space:
mode:
authorSonerSound <mario.shadic.esteves@hotmail.com>2019-07-13 23:01:17 +0100
committerSonerSound <mario.shadic.esteves@hotmail.com>2019-07-14 19:12:26 +0100
commit545bf86d39ea3c68ed38e14a5018231295bed922 (patch)
tree0db04f3b68472b3583e010aa60de0e1697d6993f /drivers/gles2
parent584ca0f156cec64c259382895e105cf27566a987 (diff)
Fix inconsistent lighting in GLES2
Issue was possibily being caused by duplicating a light even when that light was not in the render_light_instances array.
Diffstat (limited to 'drivers/gles2')
-rw-r--r--drivers/gles2/rasterizer_scene_gles2.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp
index ea29af7d9e..c8ceca8d97 100644
--- a/drivers/gles2/rasterizer_scene_gles2.cpp
+++ b/drivers/gles2/rasterizer_scene_gles2.cpp
@@ -1133,8 +1133,8 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
LightInstance *li = light_instance_owner.getornull(e->instance->light_instances[i]);
- if (li->light_index >= render_light_instance_count) {
- continue; // too many
+ if (li->light_index >= render_light_instance_count || render_light_instances[li->light_index] != li) {
+ continue; // too many or light_index did not correspond to the light instances to be rendered
}
if (copy) {