First, move style mutation code out of StyleParser and into AnnotationManager, coalescing it with the mutation code for shape layers. Second, allow AnnotationManager to keep track of stale tiles entirely internally. There's no reason to pass sets of TileIDs around. Third, correct the logic for invalidating the shape source. Since AnnotationManager does not track shape invalidations on a tile-by-tile basis, don't try to invalidate the shape source tile-by-tile. Fixes #1675 Fixes #2322 Fixes #2095
35 lines
862 B
C++
35 lines
862 B
C++
#ifndef MBGL_MAP_UPDATE
|
|
#define MBGL_MAP_UPDATE
|
|
|
|
#include <cstdint>
|
|
|
|
namespace mbgl {
|
|
|
|
enum class Update : uint32_t {
|
|
Nothing = 0,
|
|
Dimensions = 1 << 1,
|
|
DefaultTransition = 1 << 2,
|
|
Classes = 1 << 3,
|
|
Zoom = 1 << 4,
|
|
RenderStill = 1 << 5,
|
|
Repaint = 1 << 6,
|
|
Annotations = 1 << 7,
|
|
};
|
|
|
|
inline Update operator| (const Update& lhs, const Update& rhs) {
|
|
return Update(static_cast<uint32_t>(lhs) | static_cast<uint32_t>(rhs));
|
|
}
|
|
|
|
inline Update& operator|=(Update& lhs, const Update& rhs) {
|
|
lhs = lhs | rhs;
|
|
return lhs;
|
|
}
|
|
|
|
inline bool operator& (const Update& lhs, const Update& rhs) {
|
|
return static_cast<uint32_t>(lhs) & static_cast<uint32_t>(rhs);
|
|
}
|
|
|
|
} // namespace mbgl
|
|
|
|
#endif // MBGL_MAP_UPDATE
|