Merge pull request #439 from mapbox/clipping

Compute unique clip IDSs per tile
This commit is contained in:
Konstantin Käfer
2014-08-26 17:42:53 +02:00
12 changed files with 352 additions and 442 deletions

View File

@@ -511,18 +511,12 @@ void Map::updateTiles() {
}
void Map::updateRenderState() {
std::forward_list<Tile::ID> ids;
// Update all clipping IDs.
ClipIDGenerator generator;
for (const std::shared_ptr<StyleSource> &source : getActiveSources()) {
ids.splice_after(ids.before_begin(), source->source->getIDs());
generator.update(source->source->getLoadedTiles());
source->source->updateMatrices(painter.projMatrix, state);
}
const std::map<Tile::ID, ClipID> clipIDs = computeClipIDs(ids);
for (const std::shared_ptr<StyleSource> &source : getActiveSources()) {
source->source->updateClipIDs(clipIDs);
}
}
void Map::prepare() {