Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Default opacity state for "allow-overlap" symbols incorrect when they are placed off-screen #12683

Closed
ChrisLoer opened this issue Aug 20, 2018 · 1 comment
Labels
bug Core The cross-platform C++ core, aka mbgl text rendering

Comments

@ChrisLoer
Copy link
Contributor

Symbols with *-allow-overlap: true default to being visible before placement happens, so we can show them immediately when their tile loads. However, if they are included in a placement while they are far enough outside the viewport, CollisionIndex::placeFeature won't place them. This is a performance optimization: we don't want to clutter the CollisionIndex with lots of stuff that's far off screen. The problem is that when this happens, we override the default "visible" state for the symbols, and when the map is panned to bring them on-screen, they won't become visible until the next placement happens (and when it does, they'll have to fade-in).

I think the right fix is to keep the same behavior for the collision index, but just change the value in the JointPlacement we create to reflect that the symbol is conceptually "placed" even if it's not in the collision index.

cc @ansis @mkrussel77

@ChrisLoer
Copy link
Contributor Author

Fixed with #12698.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Core The cross-platform C++ core, aka mbgl text rendering
Projects
None yet
Development

No branches or pull requests

1 participant