From d6b6f9e5b3690eaedefbf450808f922ede3cb89e Mon Sep 17 00:00:00 2001 From: yousifd Date: Mon, 3 Feb 2025 00:30:52 +0300 Subject: [PATCH] Bind global uniform buffers at the end of the custom layer tweaker (#3186) --- include/mbgl/gfx/drawable_atlases_tweaker.hpp | 2 +- include/mbgl/gfx/drawable_custom_layer_host_tweaker.hpp | 2 +- include/mbgl/gfx/drawable_tweaker.hpp | 2 +- src/mbgl/gfx/drawable_atlases_tweaker.cpp | 2 +- src/mbgl/gfx/drawable_custom_layer_host_tweaker.cpp | 3 ++- src/mbgl/style/layers/custom_drawable_layer.cpp | 8 ++++---- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/mbgl/gfx/drawable_atlases_tweaker.hpp b/include/mbgl/gfx/drawable_atlases_tweaker.hpp index f988c697e..ac83b14f8 100644 --- a/include/mbgl/gfx/drawable_atlases_tweaker.hpp +++ b/include/mbgl/gfx/drawable_atlases_tweaker.hpp @@ -44,7 +44,7 @@ public: void init(Drawable&) override; - void execute(Drawable&, const PaintParameters&) override; + void execute(Drawable&, PaintParameters&) override; protected: void setupTextures(Drawable&, const bool); diff --git a/include/mbgl/gfx/drawable_custom_layer_host_tweaker.hpp b/include/mbgl/gfx/drawable_custom_layer_host_tweaker.hpp index 217f8658a..ea075358e 100644 --- a/include/mbgl/gfx/drawable_custom_layer_host_tweaker.hpp +++ b/include/mbgl/gfx/drawable_custom_layer_host_tweaker.hpp @@ -25,7 +25,7 @@ public: void init(Drawable&) override {}; - void execute(Drawable&, const PaintParameters&) override; + void execute(Drawable&, PaintParameters&) override; protected: std::shared_ptr host; diff --git a/include/mbgl/gfx/drawable_tweaker.hpp b/include/mbgl/gfx/drawable_tweaker.hpp index 97b8ff1ef..60206c7c4 100644 --- a/include/mbgl/gfx/drawable_tweaker.hpp +++ b/include/mbgl/gfx/drawable_tweaker.hpp @@ -24,7 +24,7 @@ public: virtual void init(Drawable&) = 0; /// Called just before rendering - virtual void execute(Drawable&, const PaintParameters&) = 0; + virtual void execute(Drawable&, PaintParameters&) = 0; }; using DrawableTweakerPtr = std::shared_ptr; diff --git a/src/mbgl/gfx/drawable_atlases_tweaker.cpp b/src/mbgl/gfx/drawable_atlases_tweaker.cpp index cba50660b..1c03101b3 100644 --- a/src/mbgl/gfx/drawable_atlases_tweaker.cpp +++ b/src/mbgl/gfx/drawable_atlases_tweaker.cpp @@ -34,7 +34,7 @@ void DrawableAtlasesTweaker::init(gfx::Drawable& drawable) { setupTextures(drawable, true); } -void DrawableAtlasesTweaker::execute(gfx::Drawable& drawable, const PaintParameters& parameters) { +void DrawableAtlasesTweaker::execute(gfx::Drawable& drawable, PaintParameters& parameters) { const bool transformed = rotationAlignment == style::AlignmentType::Map || parameters.state.getPitch() != 0; const bool linearFilterForIcons = isText ? (parameters.state.isChanging() || transformed || !textSizeIsZoomConstant) : (sdfIcons || parameters.state.isChanging() || iconScaled || transformed); diff --git a/src/mbgl/gfx/drawable_custom_layer_host_tweaker.cpp b/src/mbgl/gfx/drawable_custom_layer_host_tweaker.cpp index 6bf00fb45..23f758afa 100644 --- a/src/mbgl/gfx/drawable_custom_layer_host_tweaker.cpp +++ b/src/mbgl/gfx/drawable_custom_layer_host_tweaker.cpp @@ -16,7 +16,7 @@ namespace mbgl { namespace gfx { void DrawableCustomLayerHostTweaker::execute([[maybe_unused]] gfx::Drawable& drawable, - const mbgl::PaintParameters& paintParameters) { + mbgl::PaintParameters& paintParameters) { // custom drawing auto& context = paintParameters.context; context.resetState(paintParameters.depthModeForSublayer(0, gfx::DepthMaskType::ReadOnly), @@ -35,6 +35,7 @@ void DrawableCustomLayerHostTweaker::execute([[maybe_unused]] gfx::Drawable& dra paintParameters.backend.getDefaultRenderable().getResource().bind(); context.setDirtyState(); + context.bindGlobalUniformBuffers(*paintParameters.renderPass); } } // namespace gfx diff --git a/src/mbgl/style/layers/custom_drawable_layer.cpp b/src/mbgl/style/layers/custom_drawable_layer.cpp index 6ffd5a4bc..004b441f7 100644 --- a/src/mbgl/style/layers/custom_drawable_layer.cpp +++ b/src/mbgl/style/layers/custom_drawable_layer.cpp @@ -95,7 +95,7 @@ public: void init(gfx::Drawable&) override {} - void execute(gfx::Drawable& drawable, const PaintParameters& parameters) override { + void execute(gfx::Drawable& drawable, PaintParameters& parameters) override { if (!drawable.getTileID().has_value()) { return; } @@ -155,7 +155,7 @@ public: void init(gfx::Drawable&) override {} - void execute(gfx::Drawable& drawable, const PaintParameters& parameters) override { + void execute(gfx::Drawable& drawable, PaintParameters& parameters) override { if (!drawable.getTileID().has_value()) { return; } @@ -222,7 +222,7 @@ public: void init(gfx::Drawable&) override {} - void execute(gfx::Drawable& drawable, const PaintParameters& parameters) override { + void execute(gfx::Drawable& drawable, PaintParameters& parameters) override { if (!drawable.getTileID().has_value()) { return; } @@ -272,7 +272,7 @@ public: void init(gfx::Drawable&) override {} - void execute(gfx::Drawable& drawable, const PaintParameters& parameters) override { + void execute(gfx::Drawable& drawable, PaintParameters& parameters) override { if (!drawable.getTileID().has_value()) { return; }