From 4e93b2def5f00f944abbd63a8258ee18bd99ff54 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Wed, 1 Jan 2025 14:11:21 +0100 Subject: renderer: use a render pass for render modif in client render fixes #8918 --- src/render/pass/RendererHintsPassElement.cpp | 19 +++++++++++++++++++ src/render/pass/RendererHintsPassElement.hpp | 25 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/render/pass/RendererHintsPassElement.cpp create mode 100644 src/render/pass/RendererHintsPassElement.hpp (limited to 'src/render/pass') diff --git a/src/render/pass/RendererHintsPassElement.cpp b/src/render/pass/RendererHintsPassElement.cpp new file mode 100644 index 00000000..8ea79a27 --- /dev/null +++ b/src/render/pass/RendererHintsPassElement.cpp @@ -0,0 +1,19 @@ +#include "RendererHintsPassElement.hpp" +#include "../OpenGL.hpp" + +CRendererHintsPassElement::CRendererHintsPassElement(const CRendererHintsPassElement::SData& data_) : data(data_) { + ; +} + +void CRendererHintsPassElement::draw(const CRegion& damage) { + if (data.renderModif.has_value()) + g_pHyprOpenGL->m_RenderData.renderModif = *data.renderModif; +} + +bool CRendererHintsPassElement::needsLiveBlur() { + return false; +} + +bool CRendererHintsPassElement::needsPrecomputeBlur() { + return false; +} diff --git a/src/render/pass/RendererHintsPassElement.hpp b/src/render/pass/RendererHintsPassElement.hpp new file mode 100644 index 00000000..99ed0759 --- /dev/null +++ b/src/render/pass/RendererHintsPassElement.hpp @@ -0,0 +1,25 @@ +#pragma once +#include "PassElement.hpp" +#include +#include "../OpenGL.hpp" + +class CRendererHintsPassElement : public IPassElement { + public: + struct SData { + std::optional renderModif; + }; + + CRendererHintsPassElement(const SData& data); + virtual ~CRendererHintsPassElement() = default; + + virtual void draw(const CRegion& damage); + virtual bool needsLiveBlur(); + virtual bool needsPrecomputeBlur(); + + virtual const char* passName() { + return "CRendererHintsPassElement"; + } + + private: + SData data; +}; \ No newline at end of file -- cgit v1.2.3