diff options
Diffstat (limited to 'src/mbgl')
-rw-r--r-- | src/mbgl/gfx/texture.hpp | 35 | ||||
-rw-r--r-- | src/mbgl/gl/program.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/programs/collision_box_program.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/programs/program.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/programs/symbol_program.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_background_layer.cpp | 9 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_circle_layer.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_fill_layer.cpp | 20 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_heatmap_layer.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_hillshade_layer.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_line_layer.cpp | 23 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.cpp | 21 | ||||
-rw-r--r-- | src/mbgl/renderer/render_tile.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.cpp | 1 |
17 files changed, 127 insertions, 26 deletions
diff --git a/src/mbgl/gfx/texture.hpp b/src/mbgl/gfx/texture.hpp index ca5ab5d5d5..bbda44a8fb 100644 --- a/src/mbgl/gfx/texture.hpp +++ b/src/mbgl/gfx/texture.hpp @@ -2,6 +2,8 @@ #include <mbgl/gfx/types.hpp> #include <mbgl/util/size.hpp> +#include <mbgl/util/type_list.hpp> +#include <mbgl/util/indexed_tuple.hpp> #include <memory> @@ -29,5 +31,38 @@ public: std::unique_ptr<const TextureResource> resource; }; +class TextureBinding { +public: + TextureBinding(const TextureResource& resource_, + TextureFilterType filter_ = TextureFilterType::Nearest, + TextureMipMapType mipmap_ = TextureMipMapType::No, + TextureWrapType wrapX_ = TextureWrapType::Clamp, + TextureWrapType wrapY_ = TextureWrapType::Clamp) + : resource(&resource_), filter(filter_), mipmap(mipmap_), wrapX(wrapX_), wrapY(wrapY_) { + } + + const TextureResource* resource; + TextureFilterType filter; + TextureMipMapType mipmap; + TextureWrapType wrapX; + TextureWrapType wrapY; +}; + +namespace detail { + +template <class> +class TextureBindings; + +template <class... Ts> +class TextureBindings<TypeList<Ts...>> { +public: + using Type = IndexedTuple<TypeList<Ts...>, TypeList<ExpandToType<Ts, TextureBinding>...>>; +}; + +} // namespace detail + +template <class TextureTypeList> +using TextureBindings = typename detail::TextureBindings<TextureTypeList>::Type; + } // namespace gfx } // namespace mbgl diff --git a/src/mbgl/gl/program.hpp b/src/mbgl/gl/program.hpp index df48dfea38..050ec6c268 100644 --- a/src/mbgl/gl/program.hpp +++ b/src/mbgl/gl/program.hpp @@ -20,7 +20,7 @@ namespace mbgl { namespace gl { -template <class P, class As, class Us> +template <class P, class As, class Us, class TBs> class Program { public: using Primitive = P; @@ -29,6 +29,7 @@ public: using UniformValues = typename Uniforms::Values; using AttributeBindings = typename Attributes::Bindings; + using TextureBindings = TBs; Program(Context& context, const std::string& vertexSource, const std::string& fragmentSource) : program( @@ -122,11 +123,14 @@ public: const UniformValues& uniformValues, gl::VertexArray& vertexArray, const AttributeBindings& attributeBindings, + const TextureBindings& textureBindings, const gfx::IndexBuffer& indexBuffer, std::size_t indexOffset, std::size_t indexLength) { static_assert(std::is_same<Primitive, typename DrawMode::Primitive>::value, "incompatible draw mode"); + (void)textureBindings; + context.setDrawMode(drawMode); context.setDepthMode(depthMode); context.setStencilMode(stencilMode); diff --git a/src/mbgl/programs/collision_box_program.hpp b/src/mbgl/programs/collision_box_program.hpp index e9b69c639b..cd7f0bfd68 100644 --- a/src/mbgl/programs/collision_box_program.hpp +++ b/src/mbgl/programs/collision_box_program.hpp @@ -75,6 +75,7 @@ public: const SegmentVector<Attributes>& segments, const Binders& paintPropertyBinders, const typename PaintProperties::PossiblyEvaluated& currentProperties, + const TextureBindings& textureBindings, float currentZoom, const std::string& layerID) { typename AllUniforms::Values allUniformValues = uniformValues @@ -103,6 +104,7 @@ public: allUniformValues, vertexArrayIt->second, Attributes::offsetBindings(allAttributeBindings, segment.vertexOffset), + textureBindings, indexBuffer, segment.indexOffset, segment.indexLength); @@ -161,6 +163,7 @@ public: const SegmentVector<Attributes>& segments, const Binders& paintPropertyBinders, const typename PaintProperties::PossiblyEvaluated& currentProperties, + const TextureBindings& textureBindings, float currentZoom, const std::string& layerID) { typename AllUniforms::Values allUniformValues = uniformValues @@ -187,6 +190,7 @@ public: allUniformValues, vertexArrayIt->second, Attributes::offsetBindings(allAttributeBindings, segment.vertexOffset), + textureBindings, indexBuffer, segment.indexOffset, segment.indexLength); diff --git a/src/mbgl/programs/program.hpp b/src/mbgl/programs/program.hpp index 5ae918926e..e09fdb32d2 100644 --- a/src/mbgl/programs/program.hpp +++ b/src/mbgl/programs/program.hpp @@ -35,7 +35,9 @@ public: using PaintUniformList = typename Binders::UniformList; using AllUniforms = gl::Uniforms<TypeListConcat<UniformList, PaintUniformList>>; - using ProgramType = gl::Program<Primitive, Attributes, AllUniforms>; + using TextureBindings = gfx::TextureBindings<TextureList>; + + using ProgramType = gl::Program<Primitive, Attributes, AllUniforms, TextureBindings>; ProgramType program; @@ -80,6 +82,7 @@ public: const SegmentVector<Attributes>& segments, const typename AllUniforms::Values& allUniformValues, const typename Attributes::Bindings& allAttributeBindings, + const TextureBindings& textureBindings, const std::string& layerID) { for (auto& segment : segments) { auto vertexArrayIt = segment.vertexArrays.find(layerID); @@ -98,6 +101,7 @@ public: allUniformValues, vertexArrayIt->second, Attributes::offsetBindings(allAttributeBindings, segment.vertexOffset), + textureBindings, indexBuffer, segment.indexOffset, segment.indexLength); diff --git a/src/mbgl/programs/symbol_program.hpp b/src/mbgl/programs/symbol_program.hpp index 4dce66ad4a..9c5bd01ef8 100644 --- a/src/mbgl/programs/symbol_program.hpp +++ b/src/mbgl/programs/symbol_program.hpp @@ -263,7 +263,9 @@ public: using PaintUniformList = typename Binders::UniformList; using AllUniforms = gl::Uniforms<TypeListConcat<UniformList, SizeUniformList, PaintUniformList>>; - using ProgramType = gl::Program<Primitive, Attributes, AllUniforms>; + using TextureBindings = gfx::TextureBindings<TextureList>; + + using ProgramType = gl::Program<Primitive, Attributes, AllUniforms, TextureBindings>; ProgramType program; @@ -315,6 +317,7 @@ public: const SegmentVector<Attributes>& segments, const typename AllUniforms::Values& allUniformValues, const typename Attributes::Bindings& allAttributeBindings, + const TextureBindings& textureBindings, const std::string& layerID) { for (auto& segment : segments) { auto vertexArrayIt = segment.vertexArrays.find(layerID); @@ -333,6 +336,7 @@ public: allUniformValues, vertexArrayIt->second, Attributes::offsetBindings(allAttributeBindings, segment.vertexOffset), + textureBindings, indexBuffer, segment.indexOffset, segment.indexLength); diff --git a/src/mbgl/renderer/layers/render_background_layer.cpp b/src/mbgl/renderer/layers/render_background_layer.cpp index 7494e01446..61c8fa208e 100644 --- a/src/mbgl/renderer/layers/render_background_layer.cpp +++ b/src/mbgl/renderer/layers/render_background_layer.cpp @@ -50,7 +50,7 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { const Properties<>::PossiblyEvaluated properties; const BackgroundProgram::Binders paintAttributeData(properties, 0); - auto draw = [&](auto& program, auto&& uniformValues) { + auto draw = [&](auto& program, auto&& uniformValues, auto&& textureBindings) { const auto allUniformValues = program.computeAllUniformValues( std::move(uniformValues), paintAttributeData, @@ -76,6 +76,7 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { parameters.staticData.tileTriangleSegments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID() ); }; @@ -101,7 +102,8 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { crossfade, tileID, parameters.state - ) + ), + BackgroundPatternProgram::TextureBindings{} ); } } else { @@ -112,7 +114,8 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { uniforms::u_matrix::Value( parameters.matrixForTile(tileID) ), uniforms::u_color::Value( evaluated.get<BackgroundColor>() ), uniforms::u_opacity::Value( evaluated.get<BackgroundOpacity>() ), - } + }, + BackgroundProgram::TextureBindings{} ); } } diff --git a/src/mbgl/renderer/layers/render_circle_layer.cpp b/src/mbgl/renderer/layers/render_circle_layer.cpp index aec6813823..32ee24551c 100644 --- a/src/mbgl/renderer/layers/render_circle_layer.cpp +++ b/src/mbgl/renderer/layers/render_circle_layer.cpp @@ -107,6 +107,7 @@ void RenderCircleLayer::render(PaintParameters& parameters, RenderSource*) { bucket.segments, allUniformValues, allAttributeBindings, + CircleProgram::TextureBindings{}, getID() ); } diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index d6ce18e85a..5699bc5d4a 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -72,7 +72,8 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* parameters.context.clear(Color{ 0.0f, 0.0f, 0.0f, 0.0f }, depthClearValue, {}); auto draw = [&](auto& programInstance, const auto& tileBucket, auto&& uniformValues, - const optional<ImagePosition>& patternPositionA, const optional<ImagePosition>& patternPositionB) { + const optional<ImagePosition>& patternPositionA, + const optional<ImagePosition>& patternPositionB, auto&& textureBindings) { const auto& paintPropertyBinders = tileBucket.paintPropertyBinders.at(getID()); paintPropertyBinders.setPatternParameters(patternPositionA, patternPositionB, crossfade); @@ -101,6 +102,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* tileBucket.triangleSegments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID()); }; @@ -122,7 +124,9 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* parameters.state, parameters.evaluatedLight ), - {}, {} + {}, + {}, + FillExtrusionProgram::TextureBindings{} ); } } else { @@ -155,7 +159,8 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* parameters.evaluatedLight ), patternPosA, - patternPosB + patternPosB, + FillExtrusionPatternProgram::TextureBindings{} ); } } @@ -202,6 +207,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* parameters.staticData.extrusionTextureSegments, allUniformValues, allAttributeBindings, + ExtrusionTextureProgram::TextureBindings{}, getID()); } } 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{}); } } } diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.cpp b/src/mbgl/renderer/layers/render_heatmap_layer.cpp index 66421874af..9dd1ee6493 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.cpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.cpp @@ -128,6 +128,7 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) { bucket.segments, allUniformValues, allAttributeBindings, + HeatmapProgram::TextureBindings{}, getID() ); } @@ -176,6 +177,7 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) { parameters.staticData.extrusionTextureSegments, allUniformValues, allAttributeBindings, + HeatmapProgram::TextureBindings{}, getID() ); } diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index 438d6a345f..70ff2379d4 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -105,6 +105,7 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource* src segments, allUniformValues, allAttributeBindings, + HillshadeProgram::TextureBindings{}, getID() ); }; @@ -167,6 +168,7 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource* src parameters.staticData.rasterSegments, allUniformValues, allAttributeBindings, + HillshadePrepareProgram::TextureBindings{}, getID() ); bucket.texture = std::move(view.getTexture()); diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index b38bc490a6..9eb659f79f 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -64,7 +64,9 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { } LineBucket& bucket = *bucket_; - auto draw = [&] (auto& program, auto&& uniformValues, const optional<ImagePosition>& patternPositionA, const optional<ImagePosition>& patternPositionB) { + auto draw = [&](auto& program, auto&& uniformValues, + const optional<ImagePosition>& patternPositionA, + const optional<ImagePosition>& patternPositionB, auto&& textureBindings) { auto& programInstance = program.get(evaluated); const auto& paintPropertyBinders = bucket.paintPropertyBinders.at(getID()); @@ -96,6 +98,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { bucket.segments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID() ); }; @@ -118,7 +121,10 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { posA, posB, crossfade, - parameters.lineAtlas.getSize().width), {}, {}); + parameters.lineAtlas.getSize().width), + {}, + {}, + LineSDFProgram::TextureBindings{}); } else if (!unevaluated.get<LinePattern>().isUndefined()) { const auto linePatternValue = evaluated.get<LinePattern>().constantOr(Faded<std::basic_string<char>>{ "", ""}); @@ -140,7 +146,8 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { crossfade, parameters.pixelRatio), *posA, - *posB); + *posB, + LinePatternProgram::TextureBindings{}); } else if (!unevaluated.get<LineGradient>().getValue().isUndefined()) { if (!colorRampTexture) { colorRampTexture = parameters.context.createTexture(colorRamp); @@ -152,14 +159,20 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { evaluated, tile, parameters.state, - parameters.pixelsToGLUnits), {}, {}); + parameters.pixelsToGLUnits), + {}, + {}, + LineGradientProgram::TextureBindings{}); } else { draw(parameters.programs.getLineLayerPrograms().line, LineProgram::uniformValues( evaluated, tile, parameters.state, - parameters.pixelsToGLUnits), {}, {}); + parameters.pixelsToGLUnits), + {}, + {}, + LineProgram::TextureBindings{}); } } } diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index 30b180173c..a9fdcc0320 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -119,6 +119,7 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source segments, allUniformValues, allAttributeBindings, + RasterProgram::TextureBindings{}, getID() ); }; diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 11eeb376ce..a5ac6ceeea 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -93,7 +93,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { const auto& symbolSizeBinder, const SymbolPropertyValues& values_, const auto& binders, - const auto& paintProperties) + const auto& paintProperties, + auto&& textureBindings) { auto& programInstance = program.get(paintProperties); @@ -127,6 +128,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { buffers.segments, allUniformValues, allAttributeBindings, + std::move(textureBindings), getID() ); }; @@ -170,7 +172,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.iconSizeBinder, values, bucketPaintProperties.iconBinders, - paintPropertyValues); + paintPropertyValues, + SymbolSDFIconProgram::TextureBindings{}); } if (values.hasFill) { @@ -180,7 +183,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.iconSizeBinder, values, bucketPaintProperties.iconBinders, - paintPropertyValues); + paintPropertyValues, + SymbolSDFIconProgram::TextureBindings{}); } } else { draw(parameters.programs.getSymbolLayerPrograms().symbolIcon, @@ -189,7 +193,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.iconSizeBinder, values, bucketPaintProperties.iconBinders, - paintPropertyValues); + paintPropertyValues, + SymbolIconProgram::TextureBindings{}); } } @@ -223,7 +228,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.textSizeBinder, values, bucketPaintProperties.textBinders, - paintPropertyValues); + paintPropertyValues, + SymbolSDFTextProgram::TextureBindings{}); } if (values.hasFill) { @@ -233,7 +239,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.textSizeBinder, values, bucketPaintProperties.textBinders, - paintPropertyValues); + paintPropertyValues, + SymbolSDFTextProgram::TextureBindings{}); } } @@ -267,6 +274,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.collisionBox.segments, paintAttributeData, properties, + CollisionBoxProgram::TextureBindings{}, parameters.state.getZoom(), getID() ); @@ -303,6 +311,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.collisionCircle.segments, paintAttributeData, properties, + CollisionCircleProgram::TextureBindings{}, parameters.state.getZoom(), getID() ); diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp index beb0a06af9..d240189d74 100644 --- a/src/mbgl/renderer/render_tile.cpp +++ b/src/mbgl/renderer/render_tile.cpp @@ -112,6 +112,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { parameters.state.getZoom() ), allAttributeBindings, + DebugProgram::TextureBindings{}, "debug" ); @@ -134,6 +135,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { parameters.state.getZoom() ), allAttributeBindings, + DebugProgram::TextureBindings{}, "debug" ); } @@ -162,6 +164,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { paintAttributeData, properties ), + DebugProgram::TextureBindings{}, "debug" ); } diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 8aa3690524..d66ba1767e 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -469,6 +469,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { paintAttributeData, properties ), + ClippingMaskProgram::TextureBindings{}, "clipping" ); } diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index 410491d255..cc8525aa9f 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -84,6 +84,7 @@ void RenderImageSource::finishRender(PaintParameters& parameters) { paintAttributeData, properties ), + DebugProgram::TextureBindings{}, "image" ); } |