renderer: use a render pass for render modif in client render
fixes #8918
This commit is contained in:
parent
aff34089c4
commit
4e93b2def5
4 changed files with 64 additions and 19 deletions
19
src/render/pass/RendererHintsPassElement.cpp
Normal file
19
src/render/pass/RendererHintsPassElement.cpp
Normal file
|
|
@ -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;
|
||||
}
|
||||
25
src/render/pass/RendererHintsPassElement.hpp
Normal file
25
src/render/pass/RendererHintsPassElement.hpp
Normal file
|
|
@ -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;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue