summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMolly Lloyd <molly@mapbox.com>2018-01-17 09:27:17 -0800
committerMolly Lloyd <molly@mapbox.com>2018-01-18 18:10:10 -0800
commit0910ccf0c1e5123f06b4256b3ea6b7e70afa440e (patch)
treeac72dc256975680fb43f3924067c72981285fffa
parent155d235b8429d703a3f3877a0fb0630661d0b78c (diff)
downloadqtlocation-mapboxgl-0910ccf0c1e5123f06b4256b3ea6b7e70afa440e.tar.gz
remove hardcoded tilesizes and allow for @2x tile requests
-rw-r--r--src/mbgl/programs/hillshade_prepare_program.hpp2
-rw-r--r--src/mbgl/renderer/layers/render_hillshade_layer.cpp5
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.cpp2
-rw-r--r--src/mbgl/util/mapbox.cpp2
4 files changed, 6 insertions, 5 deletions
diff --git a/src/mbgl/programs/hillshade_prepare_program.hpp b/src/mbgl/programs/hillshade_prepare_program.hpp
index 5fc0c86a0e..0f31a22df5 100644
--- a/src/mbgl/programs/hillshade_prepare_program.hpp
+++ b/src/mbgl/programs/hillshade_prepare_program.hpp
@@ -9,7 +9,7 @@
namespace mbgl {
namespace uniforms {
-MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_dimension);
+MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 2, u_dimension);
} // namespace uniforms
class HillshadePrepareProgram : public Program<
diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp
index 11567a8ba5..1ab152e6a6 100644
--- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp
+++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp
@@ -97,7 +97,8 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource*) {
if (!bucket.hasData())
continue;
if (!bucket.isPrepared() && parameters.pass == RenderPass::Pass3D) {
- OffscreenTexture view(parameters.context, { 256, 256 });
+ const uint16_t tilesize = bucket.getDEMData().level.dim;
+ OffscreenTexture view(parameters.context, { tilesize, tilesize });
view.bind();
parameters.context.bindTexture(*bucket.dem, 0, gl::TextureFilter::Nearest, gl::TextureMipMap::No, gl::TextureWrap::Clamp, gl::TextureWrap::Clamp);
@@ -115,7 +116,7 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource*) {
parameters.colorModeForRenderPass(),
HillshadePrepareProgram::UniformValues {
uniforms::u_matrix::Value { mat },
- uniforms::u_dimension::Value { {{512, 512 }} },
+ uniforms::u_dimension::Value { {{uint16_t(tilesize * 2), uint16_t(tilesize * 2) }} },
uniforms::u_zoom::Value{ float(tile.id.canonical.z) },
uniforms::u_image::Value{ 0 }
},
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
index 3a004ec595..ff394bac8e 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
@@ -77,7 +77,7 @@ void RenderRasterDEMSource::onTileChanged(Tile& tile){
if (tile.isRenderable() && demtile.neighboringTiles != DEMTileNeighbors::Complete) {
const CanonicalTileID canonical = tile.id.canonical;
- const uint dim = std::pow(2, canonical.z);
+ const uint16_t dim = std::pow(2, canonical.z);
const uint32_t px = (canonical.x - 1 + dim) % dim;
const int pxw = canonical.x == 0 ? tile.id.wrap - 1 : tile.id.wrap;
const uint32_t nx = (canonical.x + 1 + dim) % dim;
diff --git a/src/mbgl/util/mapbox.cpp b/src/mbgl/util/mapbox.cpp
index 802b527a26..cdd51a293d 100644
--- a/src/mbgl/util/mapbox.cpp
+++ b/src/mbgl/util/mapbox.cpp
@@ -133,7 +133,7 @@ canonicalizeTileURL(const std::string& str, const style::SourceType type, const
std::string result = "mapbox://tiles/";
result.append(str, path.directory.first + versionLen, path.directory.second - versionLen);
result.append(str, path.filename.first, path.filename.second);
- if (type == style::SourceType::Raster) {
+ if (type == style::SourceType::Raster || type == style::SourceType::RasterDEM) {
result += tileSize == util::tileSize ? "@2x" : "{ratio}";
}