diff options
author | Molly Lloyd <molly@mapbox.com> | 2018-01-17 18:02:37 -0800 |
---|---|---|
committer | Molly Lloyd <molly@mapbox.com> | 2018-01-18 18:10:10 -0800 |
commit | fe8b130900d4281b03ef68e3a92e60dffac0b65e (patch) | |
tree | 1d2566c198759d12e13eee29939b91839d73fa9a | |
parent | 0910ccf0c1e5123f06b4256b3ea6b7e70afa440e (diff) | |
download | qtlocation-mapboxgl-fe8b130900d4281b03ef68e3a92e60dffac0b65e.tar.gz |
address review comments
-rw-r--r-- | src/mbgl/geometry/dem_data.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/geometry/dem_data.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_hillshade_layer.cpp | 11 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/raster_dem_tile.hpp | 2 |
6 files changed, 14 insertions, 12 deletions
diff --git a/src/mbgl/geometry/dem_data.cpp b/src/mbgl/geometry/dem_data.cpp index d0629cacdb..da326e8999 100644 --- a/src/mbgl/geometry/dem_data.cpp +++ b/src/mbgl/geometry/dem_data.cpp @@ -3,9 +3,11 @@ namespace mbgl { -DEMData::DEMData(PremultipliedImage& image): +DEMData::DEMData(const PremultipliedImage& image): level(image.size.height, std::max<int32_t>(std::ceil(image.size.height / 2), 1)){ - assert(image.size.height == image.size.width); + if (image.size.height != image.size.width){ + throw std::runtime_error("raster-dem tiles must be square."); + } for (int32_t y = 0; y < level.dim; y++) { for (int32_t x = 0; x < level.dim; x++) { diff --git a/src/mbgl/geometry/dem_data.hpp b/src/mbgl/geometry/dem_data.hpp index 33781a2f21..e59fbfedf2 100644 --- a/src/mbgl/geometry/dem_data.hpp +++ b/src/mbgl/geometry/dem_data.hpp @@ -45,11 +45,11 @@ public: PremultipliedImage image; }; - DEMData(PremultipliedImage& image); + DEMData(const PremultipliedImage& image); void backfillBorder(const DEMData& borderTileData, int8_t dx, int8_t dy); bool isLoaded() const { return loaded; - }; + } Level level; private: bool loaded = false; diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index 1ab152e6a6..29b48b8c4b 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -89,13 +89,18 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource*) { ); }; + mat4 mat; + matrix::ortho(mat, 0, util::EXTENT, -util::EXTENT, 0, 0, 1); + matrix::translate(mat, mat, 0, -util::EXTENT, 0); for (const RenderTile& tile : renderTiles) { assert(dynamic_cast<HillshadeBucket*>(tile.tile.getBucket(*baseImpl))); HillshadeBucket& bucket = *reinterpret_cast<HillshadeBucket*>(tile.tile.getBucket(*baseImpl)); - if (!bucket.hasData()) + if (!bucket.hasData()){ continue; + } + if (!bucket.isPrepared() && parameters.pass == RenderPass::Pass3D) { const uint16_t tilesize = bucket.getDEMData().level.dim; OffscreenTexture view(parameters.context, { tilesize, tilesize }); @@ -103,10 +108,6 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource*) { parameters.context.bindTexture(*bucket.dem, 0, gl::TextureFilter::Nearest, gl::TextureMipMap::No, gl::TextureWrap::Clamp, gl::TextureWrap::Clamp); const Properties<>::PossiblyEvaluated properties; - - mat4 mat; - matrix::ortho(mat, 0, util::EXTENT, -util::EXTENT, 0, 0, 1); - matrix::translate(mat, mat, 0, -util::EXTENT, 0); parameters.programs.hillshadePrepare.draw( parameters.context, diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index e2a9c9f25f..06616d90e5 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -153,4 +153,3 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source } } // namespace mbgl - diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 580815744b..5a42151834 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -290,7 +290,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { RenderLayer* layer = getRenderLayer(layerImpl->id); assert(layer); - if ((!parameters.staticData.has3D && layer->is<RenderFillExtrusionLayer>()) || (!parameters.staticData.has3D && layer->is<RenderHillshadeLayer>())) { + if (!parameters.staticData.has3D && (layer->is<RenderFillExtrusionLayer>() || layer->is<RenderHillshadeLayer>())) { parameters.staticData.has3D = true; } diff --git a/src/mbgl/tile/raster_dem_tile.hpp b/src/mbgl/tile/raster_dem_tile.hpp index ec256b0a17..68f8a91e00 100644 --- a/src/mbgl/tile/raster_dem_tile.hpp +++ b/src/mbgl/tile/raster_dem_tile.hpp @@ -11,7 +11,7 @@ class Tileset; class TileParameters; class HillshadeBucket; -enum class DEMTileNeighbors : unsigned char { +enum class DEMTileNeighbors : uint8_t { // 0b00000000 Empty = 0 << 1, |