render single tile in source.cpp

This commit is contained in:
Lauren Budorick
2014-08-08 15:26:42 -07:00
parent 1bd704ced7
commit 510aaef07f
5 changed files with 23 additions and 72 deletions

View File

@@ -633,7 +633,7 @@ void Map::renderLayers(std::shared_ptr<StyleLayerGroup> group) {
}
}
void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) {
void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass, const Tile::ID* id) {
if (layer_desc->layers && layer_desc->type != StyleLayerType::Raster) {
// This is a layer group. We render them during our translucent render pass.
if (pass == Translucent) {
@@ -716,68 +716,10 @@ void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) {
std::cout << std::string(indent * 4, ' ') << "- " << layer_desc->id << " ("
<< layer_desc->type << ")" << std::endl;
}
style_source.source->render(painter, layer_desc);
if (!id) {
style_source.source->render(painter, layer_desc);
} else {
style_source.source->render(painter, layer_desc, *id);
}
}
}
//void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass, Tile::ID &id) {
// if (!layer_desc->bucket) {
// fprintf(stderr, "[WARNING] layer '%s' is missing bucket\n", layer_desc->id.c_str());
// return;
// }
//
// if (!layer_desc->bucket->style_source) {
// fprintf(stderr, "[WARNING] can't find source for layer '%s'\n", layer_desc->id.c_str());
// return;
// }
//
// StyleSource &style_source = *layer_desc->bucket->style_source;
//
// // Skip this layer if there is no data.
// if (!style_source.source) {
// return;
// }
//
// // Skip this layer if it's outside the range of min/maxzoom.
// // This may occur when there /is/ a bucket created for this layer, but the min/max-zoom
// // is set to a fractional value, or value that is larger than the source maxzoom.
// const double zoom = state.getZoom();
// if (layer_desc->bucket->min_zoom > zoom ||
// layer_desc->bucket->max_zoom <= zoom) {
// return;
// }
//
// // Abort early if we can already deduce from the bucket type that
// // we're not going to render anything anyway during this pass.
// switch (layer_desc->type) {
// case StyleLayerType::Fill:
// if (!layer_desc->getProperties<FillProperties>().isVisible()) return;
// break;
// case StyleLayerType::Line:
// if (pass == Opaque) return;
// if (!layer_desc->getProperties<LineProperties>().isVisible()) return;
// break;
// case StyleLayerType::Icon:
// if (pass == Opaque) return;
// if (!layer_desc->getProperties<IconProperties>().isVisible()) return;
// break;
// case StyleLayerType::Text:
// if (pass == Opaque) return;
// if (!layer_desc->getProperties<TextProperties>().isVisible()) return;
// break;
// case StyleLayerType::Raster:
// if (pass == Opaque) return;
// if (!layer_desc->getProperties<RasterProperties>().isVisible()) return;
// break;
// default:
// break;
// }
//
// if (debug::renderTree) {
// std::cout << std::string(indent * 4, ' ') << "- " << layer_desc->id << " ("
// << layer_desc->type << ")" << std::endl;
// }
//// style_source.source->render(painter, layer_desc);
// painter.renderTileLayer(id, layer_desc);
//}