summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLauren Budorick <lauren@mapbox.com>2014-08-08 13:07:20 -0700
committerLauren Budorick <lauren@mapbox.com>2014-08-11 12:13:23 -0700
commit4083b534d7e6df767614791dad275f2b20de87d5 (patch)
tree0dbd9e3f1c7806dc9ff607fd4e031b8fdd1e29e8 /src
parent2be006fb0027970398d387d1d759adaa9b10e426 (diff)
downloadqtlocation-mapboxgl-4083b534d7e6df767614791dad275f2b20de87d5.tar.gz
committing so as to be revertable when i accidentally destroy the painter fns
Diffstat (limited to 'src')
-rw-r--r--src/map/map.cpp62
-rw-r--r--src/renderer/painter_raster.cpp18
2 files changed, 77 insertions, 3 deletions
diff --git a/src/map/map.cpp b/src/map/map.cpp
index 54d77bd36d..3db6e11715 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -719,3 +719,65 @@ void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) {
style_source.source->render(painter, layer_desc);
}
}
+
+//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);
+//}
+
diff --git a/src/renderer/painter_raster.cpp b/src/renderer/painter_raster.cpp
index fd81a490fb..1462af76b6 100644
--- a/src/renderer/painter_raster.cpp
+++ b/src/renderer/painter_raster.cpp
@@ -1,9 +1,11 @@
#include <mbgl/renderer/painter.hpp>
+#include <mbgl/platform/gl.hpp>
#include <mbgl/renderer/raster_bucket.hpp>
#include <mbgl/style/style_layer.hpp>
#include <mbgl/style/style_layer_group.hpp>
#include <mbgl/util/std.hpp>
#include <mbgl/map/map.hpp>
+#include <mbgl/map/transform.hpp>
using namespace mbgl;
@@ -28,7 +30,7 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay
const int buffer = bucket.properties.buffer * 4096.0f;
- const mat4 oldMatrix = matrix;
+ const mat4 oldMatrix = vtxMatrix;
const mat4 preMatrix = [&]{
mat4 vtxMatrix;
@@ -37,7 +39,15 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay
return vtxMatrix;
}();
- matrix = preMatrix;
+// *id.matrix = vtxMatrix;
+
+
+ map.state.matrixFor(matrix, id);
+ matrix::ortho(vtxMatrix, -buffer, 4096 + buffer, -4096 - buffer, buffer, 0, 1);
+ matrix::translate(vtxMatrix, vtxMatrix, 0, -4096, 0);
+
+
+// glUniformMatrix4fv(matrix, 1, GL_FALSE, preMatrix.data());
// call updateTiles to get parsed data for sublayers
map.updateTiles();
@@ -49,6 +59,8 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay
setTranslucent();
map.renderLayer(*it, Map::RenderPass::Translucent);
}
+
+// TODO make a separate renderLayer overload that takes a prerendered + tileID
if (bucket.properties.blur > 0) {
bucket.texture.blur(*this, bucket.properties.blur);
@@ -57,7 +69,7 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay
bucket.texture.unbindFramebuffer();
finishPrerender(bucket);
- matrix = oldMatrix;
+// Tile(id).matrix = oldMatrix;
}