draw by layer, not by tile

This is needed for correctly compositing raster imagery into the map

fixes #122
fixes #157
This commit is contained in:
Konstantin Käfer
2014-05-12 17:13:26 +02:00
parent 16e8d8137b
commit 6136ab6d21
8 changed files with 148 additions and 85 deletions

View File

@@ -57,16 +57,25 @@ size_t Source::prepareRender(const TransformState &transform) {
return masks;
}
void Source::render() {
void Source::render(const LayerDescription& layer_desc, const BucketDescription &bucket_desc) {
if (!enabled) return;
for (const Tile& tile : tiles) {
if (tile.data && tile.data->state == TileData::State::parsed) {
painter.render(tile);
painter.renderTileLayer(tile, layer_desc);
}
}
}
void Source::finishRender() {
if (!enabled) return;
for (const Tile& tile : tiles) {
painter.renderTileDebug(tile);
}
}
std::forward_list<Tile::ID> Source::getIDs() const {
std::forward_list<Tile::ID> ptrs;
std::transform(tiles.begin(), tiles.end(), std::front_inserter(ptrs), [](const Tile &tile) {