diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-23 01:02:32 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-23 01:02:32 +0000 |
| commit | 8c3613632a6ccebf9fb797ec756ecfce99514eec (patch) | |
| tree | 6c788a5b79f0dda977b81fddc473b53ff3271b99 /src/render/OpenGL.hpp | |
| parent | c1ef361e02e4c4a52fbc5dbd9e67b79e0afab4f3 (diff) | |
renderer: nuke lastFrameDamage and rework finalDamage
this fucking SUCKED
Diffstat (limited to 'src/render/OpenGL.hpp')
| -rw-r--r-- | src/render/OpenGL.hpp | 5 |
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); |
