Merge pull request #54435 from robfram/hidden-tile-map-light-occlusion

This commit is contained in:
Rémi Verschelde 2021-11-15 23:29:04 +01:00 committed by GitHub
commit 6c0afa470e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 0 deletions

View File

@ -111,6 +111,15 @@ void TileMap::_notification(int p_what) {
}
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) {
for (Map<PosKey, Quadrant::Occluder>::Element *F = E->get().occluder_instances.front(); F; F = F->next()) {
VS::get_singleton()->canvas_light_occluder_set_enabled(F->get().id, is_visible());
}
}
} break;
}
}
@ -675,6 +684,7 @@ void TileMap::update_dirty_quadrants() {
VS::get_singleton()->canvas_light_occluder_set_polygon(orid, occluder->get_rid());
VS::get_singleton()->canvas_light_occluder_attach_to_canvas(orid, get_canvas());
VS::get_singleton()->canvas_light_occluder_set_light_mask(orid, occluder_light_mask);
VS::get_singleton()->canvas_light_occluder_set_enabled(orid, is_visible());
Quadrant::Occluder oc;
oc.xform = xform;
oc.id = orid;