diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-07-24 20:58:54 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-08-08 14:14:34 +0300 |
commit | 83bd4c213583058340d0606f2d24c85489091ccf (patch) | |
tree | 90086452ff7bd0d3bc58f8670b76e96df52d7d6a /src | |
parent | 15a26231474d08e3884e424601b609c53d7ef086 (diff) | |
download | qtlocation-mapboxgl-83bd4c213583058340d0606f2d24c85489091ccf.tar.gz |
[core] Replace remaining dynamic_cast with static_cast
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/layers/render_hillshade_layer.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/circle_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/fill_extrusion_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/fill_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/heatmap_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/line_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/layers/symbol_layer_impl.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/text/placement.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/raster_dem_tile.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/tile.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/tile/tile.hpp | 9 |
14 files changed, 30 insertions, 15 deletions
diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index 25eef98fcf..8bcd3f1837 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -59,8 +59,8 @@ bool RenderHillshadeLayer::hasTransition() const { void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource* src) { if (parameters.pass != RenderPass::Translucent && parameters.pass != RenderPass::Pass3D) return; - - RenderRasterDEMSource* demsrc = dynamic_cast<RenderRasterDEMSource*>(src); + + RenderRasterDEMSource* demsrc = static_cast<RenderRasterDEMSource*>(src); const uint8_t TERRAIN_RGB_MAXZOOM = 15; const uint8_t maxzoom = demsrc != nullptr ? demsrc->getMaxZoom() : TERRAIN_RGB_MAXZOOM; diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 63fcb6cfd5..f9e4e7c043 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -126,7 +126,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { ); }; - assert(dynamic_cast<GeometryTile*>(&tile.tile)); + assert(tile.tile.kind == Tile::Kind::Geometry); GeometryTile& geometryTile = static_cast<GeometryTile&>(tile.tile); if (bucket.hasIconData()) { diff --git a/src/mbgl/style/layers/circle_layer_impl.cpp b/src/mbgl/style/layers/circle_layer_impl.cpp index 69f574cd6b..358598e09c 100644 --- a/src/mbgl/style/layers/circle_layer_impl.cpp +++ b/src/mbgl/style/layers/circle_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool CircleLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const CircleLayer::Impl*>(&other)); + assert(other.type == LayerType::Circle); const auto& impl = static_cast<const style::CircleLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp b/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp index d37c2ad29b..357ea3e973 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool FillExtrusionLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const FillExtrusionLayer::Impl*>(&other)); + assert(other.type == LayerType::FillExtrusion); const auto& impl = static_cast<const style::FillExtrusionLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/style/layers/fill_layer_impl.cpp b/src/mbgl/style/layers/fill_layer_impl.cpp index 0dc7ed14d5..a8ba1b693b 100644 --- a/src/mbgl/style/layers/fill_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool FillLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const FillLayer::Impl*>(&other)); + assert(other.type == LayerType::Fill); const auto& impl = static_cast<const style::FillLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/style/layers/heatmap_layer_impl.cpp b/src/mbgl/style/layers/heatmap_layer_impl.cpp index af20888d9d..8fd0cf72b2 100644 --- a/src/mbgl/style/layers/heatmap_layer_impl.cpp +++ b/src/mbgl/style/layers/heatmap_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool HeatmapLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const HeatmapLayer::Impl*>(&other)); + assert(other.type == LayerType::Heatmap); const auto& impl = static_cast<const style::HeatmapLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/style/layers/line_layer_impl.cpp b/src/mbgl/style/layers/line_layer_impl.cpp index bee88d6a47..68cd3a8f49 100644 --- a/src/mbgl/style/layers/line_layer_impl.cpp +++ b/src/mbgl/style/layers/line_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool LineLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const LineLayer::Impl*>(&other)); + assert(other.type == LayerType::Line); const auto& impl = static_cast<const style::LineLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/style/layers/symbol_layer_impl.cpp b/src/mbgl/style/layers/symbol_layer_impl.cpp index b59768725d..753b2fa184 100644 --- a/src/mbgl/style/layers/symbol_layer_impl.cpp +++ b/src/mbgl/style/layers/symbol_layer_impl.cpp @@ -4,7 +4,7 @@ namespace mbgl { namespace style { bool SymbolLayer::Impl::hasLayoutDifference(const Layer::Impl& other) const { - assert(dynamic_cast<const SymbolLayer::Impl*>(&other)); + assert(other.type == LayerType::Symbol); const auto& impl = static_cast<const style::SymbolLayer::Impl&>(other); return filter != impl.filter || visibility != impl.visibility || diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index 16dd94b374..8bd92087b1 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -48,7 +48,7 @@ void Placement::placeLayer(RenderSymbolLayer& symbolLayer, const mat4& projMatri if (!renderTile.tile.isRenderable()) { continue; } - assert(dynamic_cast<GeometryTile*>(&renderTile.tile)); + assert(renderTile.tile.kind == Tile::Kind::Geometry); GeometryTile& geometryTile = static_cast<GeometryTile&>(renderTile.tile); auto bucket = renderTile.tile.getBucket<SymbolBucket>(*symbolLayer.baseImpl); diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index d686d8440b..90d4d07895 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -44,7 +44,7 @@ using namespace style; GeometryTile::GeometryTile(const OverscaledTileID& id_, std::string sourceID_, const TileParameters& parameters) - : Tile(id_), + : Tile(Kind::Geometry, id_), sourceID(std::move(sourceID_)), mailbox(std::make_shared<Mailbox>(*Scheduler::GetCurrent())), worker(parameters.workerScheduler, diff --git a/src/mbgl/tile/raster_dem_tile.cpp b/src/mbgl/tile/raster_dem_tile.cpp index f29861ee71..751f69bad9 100644 --- a/src/mbgl/tile/raster_dem_tile.cpp +++ b/src/mbgl/tile/raster_dem_tile.cpp @@ -15,7 +15,7 @@ namespace mbgl { RasterDEMTile::RasterDEMTile(const OverscaledTileID& id_, const TileParameters& parameters, const Tileset& tileset) - : Tile(id_), + : Tile(Kind::RasterDEM, id_), loader(*this, id_, parameters, tileset), mailbox(std::make_shared<Mailbox>(*Scheduler::GetCurrent())), worker(parameters.workerScheduler, diff --git a/src/mbgl/tile/raster_tile.cpp b/src/mbgl/tile/raster_tile.cpp index cc71c04ba1..1346f87ae5 100644 --- a/src/mbgl/tile/raster_tile.cpp +++ b/src/mbgl/tile/raster_tile.cpp @@ -15,7 +15,7 @@ namespace mbgl { RasterTile::RasterTile(const OverscaledTileID& id_, const TileParameters& parameters, const Tileset& tileset) - : Tile(id_), + : Tile(Kind::Raster, id_), loader(*this, id_, parameters, tileset), mailbox(std::make_shared<Mailbox>(*Scheduler::GetCurrent())), worker(parameters.workerScheduler, diff --git a/src/mbgl/tile/tile.cpp b/src/mbgl/tile/tile.cpp index b95944f10e..5a69df5b43 100644 --- a/src/mbgl/tile/tile.cpp +++ b/src/mbgl/tile/tile.cpp @@ -9,7 +9,7 @@ namespace mbgl { static TileObserver nullObserver; -Tile::Tile(OverscaledTileID id_) : id(std::move(id_)), observer(&nullObserver) { +Tile::Tile(Kind kind_, OverscaledTileID id_) : kind(kind_), id(std::move(id_)), observer(&nullObserver) { } Tile::~Tile() = default; @@ -27,6 +27,14 @@ void Tile::setTriedCache() { } void Tile::dumpDebugLogs() const { + std::string kindString; + switch (kind) { + case Kind::Geometry: kindString = "Geometry"; break; + case Kind::Raster: kindString = "Raster"; break; + case Kind::RasterDEM: kindString = "RasterDEM"; break; + default: kindString = "Unknown"; break; + } + Log::Info(Event::General, "Tile::Kind: %s", kindString.c_str()); Log::Info(Event::General, "Tile::id: %s", util::toString(id).c_str()); Log::Info(Event::General, "Tile::renderable: %s", isRenderable() ? "yes" : "no"); Log::Info(Event::General, "Tile::complete: %s", isComplete() ? "yes" : "no"); diff --git a/src/mbgl/tile/tile.hpp b/src/mbgl/tile/tile.hpp index 5cf74abff5..70b2aa0371 100644 --- a/src/mbgl/tile/tile.hpp +++ b/src/mbgl/tile/tile.hpp @@ -35,7 +35,13 @@ class Context; class Tile : private util::noncopyable { public: - Tile(OverscaledTileID); + enum class Kind : uint8_t { + Geometry, + Raster, + RasterDEM + }; + + Tile(Kind, OverscaledTileID); virtual ~Tile(); void setObserver(TileObserver* observer); @@ -119,6 +125,7 @@ public: void dumpDebugLogs() const; + const Kind kind; OverscaledTileID id; optional<Timestamp> modified; optional<Timestamp> expires; |