diff options
Diffstat (limited to 'src/mbgl/renderer/sources')
12 files changed, 51 insertions, 23 deletions
diff --git a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp index 8de79d8016..45d49ffa5b 100644 --- a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp +++ b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp @@ -47,8 +47,12 @@ void RenderCustomGeometrySource::update(Immutable<style::Source::Impl> baseImpl_ }); } -void RenderCustomGeometrySource::startRender(PaintParameters& parameters) { - tilePyramid.startRender(parameters); +void RenderCustomGeometrySource::upload(gfx::UploadPass& uploadPass) { + tilePyramid.upload(uploadPass); +} + +void RenderCustomGeometrySource::prepare(PaintParameters& parameters) { + tilePyramid.prepare(parameters); } void RenderCustomGeometrySource::finishRender(PaintParameters& parameters) { diff --git a/src/mbgl/renderer/sources/render_custom_geometry_source.hpp b/src/mbgl/renderer/sources/render_custom_geometry_source.hpp index be9e022eb9..485979bee9 100644 --- a/src/mbgl/renderer/sources/render_custom_geometry_source.hpp +++ b/src/mbgl/renderer/sources/render_custom_geometry_source.hpp @@ -18,7 +18,8 @@ public: bool needsRelayout, const TileParameters&) final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() final; diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp index 0234b97eca..7ff371620a 100644 --- a/src/mbgl/renderer/sources/render_geojson_source.cpp +++ b/src/mbgl/renderer/sources/render_geojson_source.cpp @@ -123,8 +123,12 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_, }); } -void RenderGeoJSONSource::startRender(PaintParameters& parameters) { - tilePyramid.startRender(parameters); +void RenderGeoJSONSource::upload(gfx::UploadPass& parameters) { + tilePyramid.upload(parameters); +} + +void RenderGeoJSONSource::prepare(PaintParameters& parameters) { + tilePyramid.prepare(parameters); } void RenderGeoJSONSource::finishRender(PaintParameters& parameters) { diff --git a/src/mbgl/renderer/sources/render_geojson_source.hpp b/src/mbgl/renderer/sources/render_geojson_source.hpp index c8e98f96ee..1a2ff55427 100644 --- a/src/mbgl/renderer/sources/render_geojson_source.hpp +++ b/src/mbgl/renderer/sources/render_geojson_source.hpp @@ -23,7 +23,8 @@ public: bool needsRelayout, const TileParameters&) final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() final; diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index b6a75acacc..e63c9ad15c 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -31,7 +31,13 @@ bool RenderImageSource::isLoaded() const { return !!bucket; } -void RenderImageSource::startRender(PaintParameters& parameters) { +void RenderImageSource::upload(gfx::UploadPass& uploadPass) { + if (bucket->needsUpload()) { + bucket->upload(uploadPass); + } +} + +void RenderImageSource::prepare(PaintParameters& parameters) { if (!isLoaded()) { return; } @@ -45,10 +51,6 @@ void RenderImageSource::startRender(PaintParameters& parameters) { matrix::multiply(matrix, parameters.alignedProjMatrix, matrix); matrices.push_back(matrix); } - - if (bucket->needsUpload()) { - bucket->upload(parameters.context); - } } void RenderImageSource::finishRender(PaintParameters& parameters) { @@ -70,7 +72,7 @@ void RenderImageSource::finishRender(PaintParameters& parameters) { gfx::StencilMode::disabled(), gfx::ColorMode::unblended(), gfx::CullFaceMode::disabled(), - parameters.staticData.tileBorderIndexBuffer, + *parameters.staticData.tileBorderIndexBuffer, parameters.staticData.tileBorderSegments, programInstance.computeAllUniformValues( DebugProgram::LayoutUniformValues { @@ -82,7 +84,7 @@ void RenderImageSource::finishRender(PaintParameters& parameters) { parameters.state.getZoom() ), programInstance.computeAllAttributeBindings( - parameters.staticData.tileVertexBuffer, + *parameters.staticData.tileVertexBuffer, paintAttributeData, properties ), diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp index e5cdcd4d81..c07fd467cb 100644 --- a/src/mbgl/renderer/sources/render_image_source.hpp +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -15,7 +15,8 @@ public: bool isLoaded() const final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; void update(Immutable<style::Source::Impl>, diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp index c942432e64..c9f17f38c4 100644 --- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp +++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp @@ -126,9 +126,13 @@ void RenderRasterDEMSource::onTileChanged(Tile& tile){ RenderSource::onTileChanged(tile); } -void RenderRasterDEMSource::startRender(PaintParameters& parameters) { +void RenderRasterDEMSource::upload(gfx::UploadPass& parameters) { + tilePyramid.upload(parameters); +} + +void RenderRasterDEMSource::prepare(PaintParameters& parameters) { algorithm::updateTileMasks(tilePyramid.getRenderTiles()); - tilePyramid.startRender(parameters); + tilePyramid.prepare(parameters); } void RenderRasterDEMSource::finishRender(PaintParameters& parameters) { diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.hpp b/src/mbgl/renderer/sources/render_raster_dem_source.hpp index af76e22da7..57180bb4e2 100644 --- a/src/mbgl/renderer/sources/render_raster_dem_source.hpp +++ b/src/mbgl/renderer/sources/render_raster_dem_source.hpp @@ -18,7 +18,8 @@ public: bool needsRelayout, const TileParameters&) final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() final; diff --git a/src/mbgl/renderer/sources/render_raster_source.cpp b/src/mbgl/renderer/sources/render_raster_source.cpp index 96e793f9b2..39cccd47e6 100644 --- a/src/mbgl/renderer/sources/render_raster_source.cpp +++ b/src/mbgl/renderer/sources/render_raster_source.cpp @@ -57,9 +57,13 @@ void RenderRasterSource::update(Immutable<style::Source::Impl> baseImpl_, }); } -void RenderRasterSource::startRender(PaintParameters& parameters) { +void RenderRasterSource::upload(gfx::UploadPass& parameters) { + tilePyramid.upload(parameters); +} + +void RenderRasterSource::prepare(PaintParameters& parameters) { algorithm::updateTileMasks(tilePyramid.getRenderTiles()); - tilePyramid.startRender(parameters); + tilePyramid.prepare(parameters); } void RenderRasterSource::finishRender(PaintParameters& parameters) { diff --git a/src/mbgl/renderer/sources/render_raster_source.hpp b/src/mbgl/renderer/sources/render_raster_source.hpp index 24242949bb..e399893cb9 100644 --- a/src/mbgl/renderer/sources/render_raster_source.hpp +++ b/src/mbgl/renderer/sources/render_raster_source.hpp @@ -18,7 +18,8 @@ public: bool needsRelayout, const TileParameters&) final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() final; diff --git a/src/mbgl/renderer/sources/render_vector_source.cpp b/src/mbgl/renderer/sources/render_vector_source.cpp index 518692fc77..21b728e266 100644 --- a/src/mbgl/renderer/sources/render_vector_source.cpp +++ b/src/mbgl/renderer/sources/render_vector_source.cpp @@ -57,8 +57,12 @@ void RenderVectorSource::update(Immutable<style::Source::Impl> baseImpl_, }); } -void RenderVectorSource::startRender(PaintParameters& parameters) { - tilePyramid.startRender(parameters); +void RenderVectorSource::upload(gfx::UploadPass& parameters) { + tilePyramid.upload(parameters); +} + +void RenderVectorSource::prepare(PaintParameters& parameters) { + tilePyramid.prepare(parameters); } void RenderVectorSource::finishRender(PaintParameters& parameters) { diff --git a/src/mbgl/renderer/sources/render_vector_source.hpp b/src/mbgl/renderer/sources/render_vector_source.hpp index fe7147fc25..bea9bad20e 100644 --- a/src/mbgl/renderer/sources/render_vector_source.hpp +++ b/src/mbgl/renderer/sources/render_vector_source.hpp @@ -18,7 +18,8 @@ public: bool needsRelayout, const TileParameters&) final; - void startRender(PaintParameters&) final; + void upload(gfx::UploadPass&) final; + void prepare(PaintParameters&) final; void finishRender(PaintParameters&) final; std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() final; |