diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-07 13:08:30 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-03-12 11:03:54 +0100 |
commit | cb64c380fbbd209cb68af60e76b7a770805353a8 (patch) | |
tree | 77b790ae49e8f5877be599a0dad2f413a98da43f /src/mbgl/renderer/layers/render_fill_layer.cpp | |
parent | 54847ea98698c85da156874dc84088772599ee3b (diff) | |
download | qtlocation-mapboxgl-cb64c380fbbd209cb68af60e76b7a770805353a8.tar.gz |
[core] add texture bindings to draw call invocations
Diffstat (limited to 'src/mbgl/renderer/layers/render_fill_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_fill_layer.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 5498031c4c..798749711d 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -73,7 +73,8 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { const auto& drawMode, const auto& depthMode, const auto& indexBuffer, - const auto& segments) { + const auto& segments, + auto&& textureBindings) { auto& programInstance = program.get(evaluated); const auto& paintPropertyBinders = bucket.paintPropertyBinders.at(getID()); @@ -110,6 +111,7 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { segments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID() ); }; @@ -124,7 +126,8 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { ? gfx::DepthMaskType::ReadWrite : gfx::DepthMaskType::ReadOnly), *bucket.triangleIndexBuffer, - bucket.triangleSegments); + bucket.triangleSegments, + FillProgram::TextureBindings{}); } if (evaluated.get<FillAntialias>() && parameters.pass == RenderPass::Translucent) { @@ -134,7 +137,8 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { unevaluated.get<FillOutlineColor>().isUndefined() ? 2 : 0, gfx::DepthMaskType::ReadOnly), *bucket.lineIndexBuffer, - bucket.lineSegments); + bucket.lineSegments, + FillOutlineProgram::TextureBindings{}); } } } else { @@ -159,7 +163,8 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { const auto& drawMode, const auto& depthMode, const auto& indexBuffer, - const auto& segments) { + const auto& segments, + auto&& textureBindings) { auto& programInstance = program.get(evaluated); const auto& paintPropertyBinders = bucket.paintPropertyBinders.at(getID()); @@ -200,6 +205,7 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { segments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID() ); }; @@ -208,14 +214,16 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { gfx::Triangles(), parameters.depthModeForSublayer(1, gfx::DepthMaskType::ReadWrite), *bucket.triangleIndexBuffer, - bucket.triangleSegments); + bucket.triangleSegments, + FillProgram::TextureBindings{}); if (evaluated.get<FillAntialias>() && unevaluated.get<FillOutlineColor>().isUndefined()) { draw(parameters.programs.getFillLayerPrograms().fillOutlinePattern, gfx::Lines { 2.0f }, parameters.depthModeForSublayer(2, gfx::DepthMaskType::ReadOnly), *bucket.lineIndexBuffer, - bucket.lineSegments); + bucket.lineSegments, + FillOutlineProgram::TextureBindings{}); } } } |