summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-23 01:02:32 +0000
committerVaxry <vaxry@vaxry.net>2024-02-23 01:02:32 +0000
commit8c3613632a6ccebf9fb797ec756ecfce99514eec (patch)
tree6c788a5b79f0dda977b81fddc473b53ff3271b99 /src/render/OpenGL.hpp
parentc1ef361e02e4c4a52fbc5dbd9e67b79e0afab4f3 (diff)
renderer: nuke lastFrameDamage and rework finalDamage
this fucking SUCKED
Diffstat (limited to 'src/render/OpenGL.hpp')
-rw-r--r--src/render/OpenGL.hpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp
index fc5eed41..1e43333b 100644
--- a/src/render/OpenGL.hpp
+++ b/src/render/OpenGL.hpp
@@ -101,6 +101,7 @@ struct SCurrentRenderData {
CFramebuffer* outFB = nullptr; // out to render to (if offloaded, etc)
CRegion damage;
+ CRegion finalDamage; // damage used for funal off -> main
SRenderModifData renderModif;
float mouseZoomFactor = 1.f;
@@ -123,7 +124,7 @@ class CHyprOpenGLImpl {
public:
CHyprOpenGLImpl();
- void begin(CMonitor*, CRegion*, CFramebuffer* fb = nullptr /* if provided, it's not a real frame */);
+ void begin(CMonitor*, const CRegion& damage, CFramebuffer* fb = nullptr, std::optional<CRegion> finalDamage = {});
void end();
void renderRect(CBox*, const CColor&, int round = 0);
@@ -174,6 +175,8 @@ class CHyprOpenGLImpl {
void renderOffToMain(CFramebuffer* off);
void bindBackOnMain();
+ void setDamage(const CRegion& damage, std::optional<CRegion> finalDamage = {});
+
uint32_t getPreferredReadFormat(CMonitor* pMonitor);
const SGLPixelFormat* getPixelFormatFromDRM(uint32_t drmFormat);