summaryrefslogtreecommitdiff
path: root/src/render/pass
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2025-01-01 14:11:21 +0100
committervaxerski <vaxry@vaxry.net>2025-01-01 14:11:21 +0100
commit4e93b2def5f00f944abbd63a8258ee18bd99ff54 (patch)
tree827fc23fc614a597c6cc5818eb05dd6a32858c04 /src/render/pass
parentaff34089c4d66b951d25a0dc1867f7fb93d61a7d (diff)
renderer: use a render pass for render modif in client render
fixes #8918
Diffstat (limited to 'src/render/pass')
-rw-r--r--src/render/pass/RendererHintsPassElement.cpp19
-rw-r--r--src/render/pass/RendererHintsPassElement.hpp25
2 files changed, 44 insertions, 0 deletions
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 <optional>
+#include "../OpenGL.hpp"
+
+class CRendererHintsPassElement : public IPassElement {
+ public:
+ struct SData {
+ std::optional<SRenderModifData> 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