renderer: Fix mirrored displays when transformed and preserve aspect ratio (#5697)

* renderer: transform mirror buffer and preserve mirror aspect ratio

* renderer: render mirrors directly from offloadFB

* renderer: fix formatting

* renderer: use monitorMirrorFB again, but properly damage mirrors

* renderer: clean mirrors after reload and support cursor zoom mirroring
This commit is contained in:
Virt
2024-04-24 17:29:41 +02:00
committed by GitHub
parent 8aecd4f253
commit 9fe409800b
4 changed files with 64 additions and 21 deletions

View File

@@ -67,7 +67,7 @@ struct SMonitorRenderData {
CFramebuffer mirrorSwapFB; // etc
CFramebuffer offMainFB;
CFramebuffer monitorMirrorFB; // used for mirroring outputs
CFramebuffer monitorMirrorFB; // used for mirroring outputs, does not contain artifacts like offloadFB
CTexture stencilTex;
@@ -172,7 +172,7 @@ class CHyprOpenGLImpl {
bool preBlurQueued();
void preRender(CMonitor*);
void saveBufferForMirror();
void saveBufferForMirror(CBox*);
void renderMirrored();
void applyScreenShader(const std::string& path);