diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-25 16:09:09 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-26 11:23:13 +0300 |
commit | 8a6a332264c86f163afef4784012ab8b67e70e55 (patch) | |
tree | 83834ccb8c256fd9440a3b25ce42ed688afae36f /src | |
parent | 273ad436fb4d2a18c6749bd4e40fa56546e9285c (diff) | |
download | qtlocation-mapboxgl-8a6a332264c86f163afef4784012ab8b67e70e55.tar.gz |
[core] Fix assertion at RenderRasterLayer::prepare()
It shall consider that image data might not be available until
the source loads it.
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/render_layer.cpp | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index ecaee2985c..82d135b9ef 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -77,12 +77,14 @@ static std::array<float, 3> spinWeights(float spin) { void RenderRasterLayer::prepare(const LayerPrepareParameters& params) { renderTiles = params.source->getRenderTiles(); imageData = params.source->getImageRenderData(); - assert(renderTiles || imageData); + // It is possible image data is not available until the source loads it. + assert(renderTiles || imageData || !params.source->isEnabled()); } void RenderRasterLayer::render(PaintParameters& parameters) { - if (parameters.pass != RenderPass::Translucent) + if (parameters.pass != RenderPass::Translucent || (!renderTiles && !imageData)) { return; + } const auto& evaluated = static_cast<const RasterLayerProperties&>(*evaluatedProperties).evaluated; RasterProgram::Binders paintAttributeData{ evaluated, 0 }; diff --git a/src/mbgl/renderer/render_layer.cpp b/src/mbgl/renderer/render_layer.cpp index f15dc7e6f4..c1ca1fd017 100644 --- a/src/mbgl/renderer/render_layer.cpp +++ b/src/mbgl/renderer/render_layer.cpp @@ -47,6 +47,7 @@ bool RenderLayer::supportsZoom(float zoom) const { void RenderLayer::prepare(const LayerPrepareParameters& params) { assert(params.source); + assert(params.source->isEnabled()); renderTiles = params.source->getRenderTiles(); addRenderPassesFromTiles(); } |