diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-05-13 17:13:31 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-05-15 11:57:43 -0700 |
commit | 3a6ff7710fcf201f82ddc2090488ef585bd8ab17 (patch) | |
tree | de380cbb7f5553282b081dce9202cbe9e502ebe5 /src/mbgl/renderer/render_static_data.cpp | |
parent | bf0998697e0893d8a56421a139c7fc4855e89fa5 (diff) | |
download | qtlocation-mapboxgl-3a6ff7710fcf201f82ddc2090488ef585bd8ab17.tar.gz |
[core] add gfx::UploadPass, split startRender into prepare and upload
Diffstat (limited to 'src/mbgl/renderer/render_static_data.cpp')
-rw-r--r-- | src/mbgl/renderer/render_static_data.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/mbgl/renderer/render_static_data.cpp b/src/mbgl/renderer/render_static_data.cpp index 0814d6341b..9090ef6579 100644 --- a/src/mbgl/renderer/render_static_data.cpp +++ b/src/mbgl/renderer/render_static_data.cpp @@ -1,5 +1,6 @@ #include <mbgl/renderer/render_static_data.hpp> #include <mbgl/gfx/context.hpp> +#include <mbgl/gfx/upload_pass.hpp> #include <mbgl/programs/program_parameters.hpp> namespace mbgl { @@ -49,12 +50,7 @@ static gfx::VertexVector<HeatmapTextureLayoutVertex> heatmapTextureVertices() { } RenderStaticData::RenderStaticData(gfx::Context& context, float pixelRatio, const optional<std::string>& programCacheDir) - : tileVertexBuffer(context.createVertexBuffer(tileVertices())), - rasterVertexBuffer(context.createVertexBuffer(rasterVertices())), - heatmapTextureVertexBuffer(context.createVertexBuffer(heatmapTextureVertices())), - quadTriangleIndexBuffer(context.createIndexBuffer(quadTriangleIndices())), - tileBorderIndexBuffer(context.createIndexBuffer(tileLineStripIndices())), - programs(context, ProgramParameters { pixelRatio, false, programCacheDir }) + : programs(context, ProgramParameters { pixelRatio, false, programCacheDir }) #ifndef NDEBUG , overdrawPrograms(context, ProgramParameters { pixelRatio, true, programCacheDir }) #endif @@ -65,4 +61,15 @@ RenderStaticData::RenderStaticData(gfx::Context& context, float pixelRatio, cons heatmapTextureSegments.emplace_back(0, 0, 4, 6); } +void RenderStaticData::upload(gfx::UploadPass& uploadPass) { + if (!uploaded) { + tileVertexBuffer = uploadPass.createVertexBuffer(tileVertices()); + rasterVertexBuffer = uploadPass.createVertexBuffer(rasterVertices()); + heatmapTextureVertexBuffer = uploadPass.createVertexBuffer(heatmapTextureVertices()); + quadTriangleIndexBuffer = uploadPass.createIndexBuffer(quadTriangleIndices()); + tileBorderIndexBuffer = uploadPass.createIndexBuffer(tileLineStripIndices()); + uploaded = true; + } +} + } // namespace mbgl |