From 4a3cfcbc34908ecd2c512825cabbcfd358c1df56 Mon Sep 17 00:00:00 2001 From: imperishableSecret Date: Tue, 14 Apr 2026 18:41:43 +0530 Subject: [PATCH 1/4] fix(hyprexpo): update for latest hyprland - Migrate globals to Config and Render::GL namespaces - Update IPassElement interface (type, draw) - Replace CFramebuffer with SP - Remove obsolete renderer calls (clear, makeEGLCurrent) - Switch to CConstVarList for config parsing --- hyprexpo/OverviewPassElement.cpp | 3 ++- hyprexpo/OverviewPassElement.hpp | 4 ++- hyprexpo/main.cpp | 2 +- hyprexpo/overview.cpp | 46 ++++++++++++++++++-------------- hyprexpo/overview.hpp | 5 +++- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/hyprexpo/OverviewPassElement.cpp b/hyprexpo/OverviewPassElement.cpp index 1fc88e73a..ef40486e5 100644 --- a/hyprexpo/OverviewPassElement.cpp +++ b/hyprexpo/OverviewPassElement.cpp @@ -6,8 +6,9 @@ COverviewPassElement::COverviewPassElement() { ; } -void COverviewPassElement::draw(const CRegion& damage) { +std::vector> COverviewPassElement::draw() { g_pOverview->fullRender(); + return {}; } bool COverviewPassElement::needsLiveBlur() { diff --git a/hyprexpo/OverviewPassElement.hpp b/hyprexpo/OverviewPassElement.hpp index f9d5a373a..d3b4a0733 100644 --- a/hyprexpo/OverviewPassElement.hpp +++ b/hyprexpo/OverviewPassElement.hpp @@ -8,12 +8,14 @@ class COverviewPassElement : public IPassElement { COverviewPassElement(); virtual ~COverviewPassElement() = default; - virtual void draw(const CRegion& damage); + virtual std::vector> draw() override; virtual bool needsLiveBlur(); virtual bool needsPrecomputeBlur(); virtual std::optional boundingBox(); virtual CRegion opaqueRegion(); + virtual ePassElementType type() override { return EK_CUSTOM; } + virtual const char* passName() { return "COverviewPassElement"; } diff --git a/hyprexpo/main.cpp b/hyprexpo/main.cpp index 1f74f3801..3b3dff1f6 100644 --- a/hyprexpo/main.cpp +++ b/hyprexpo/main.cpp @@ -263,5 +263,5 @@ APICALL EXPORT void PLUGIN_EXIT() { g_unloading = true; - g_pConfigManager->reload(); // we need to reload now to clear all the gestures + Config::mgr()->reload(); // we need to reload now to clear all the gestures } diff --git a/hyprexpo/overview.cpp b/hyprexpo/overview.cpp index 00bb8c91f..ac488166b 100644 --- a/hyprexpo/overview.cpp +++ b/hyprexpo/overview.cpp @@ -1,6 +1,12 @@ #include "overview.hpp" #include +#include +#include +#include +#include +using namespace Hyprutils::String; #define private public +#define protected public #include #include #include @@ -20,10 +26,10 @@ static void damageMonitor(WP thispt } COverview::~COverview() { - g_pHyprRenderer->makeEGLCurrent(); + images.clear(); // otherwise we get a vram leak Cursor::overrideController->unsetOverride(Cursor::CURSOR_OVERRIDE_UNKNOWN); - g_pHyprOpenGL->markBlurDirtyForMonitor(pMonitor.lock()); + // (pMonitor.lock()); } COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn_), swipe(swipe_) { @@ -43,12 +49,12 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn // process the method bool methodCenter = true; int methodStartID = pMonitor->activeWorkspaceID(); - CVarList method{*PMETHOD, 0, 's', true}; + CConstVarList method{*PMETHOD, 0, 's', true}; if (method.size() < 2) Log::logger->log(Log::ERR, "[he] invalid workspace_method"); else { methodCenter = method[0] == "center"; - methodStartID = getWorkspaceIDNameFromString(method[1]).id; + methodStartID = getWorkspaceIDNameFromString(std::string(method[1])).id; if (methodStartID == WORKSPACE_INVALID) methodStartID = pMonitor->activeWorkspaceID(); } @@ -120,7 +126,7 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn pMonitor->m_activeWorkspace = startedOn; } - g_pHyprRenderer->makeEGLCurrent(); + Vector2D tileSize = pMonitor->m_size / SIDE_LENGTH; Vector2D tileRenderSize = (pMonitor->m_size - Vector2D{GAP_WIDTH * pMonitor->m_scale, GAP_WIDTH * pMonitor->m_scale} * (SIDE_LENGTH - 1)) / SIDE_LENGTH; @@ -141,12 +147,12 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn for (size_t i = 0; i < (size_t)(SIDE_LENGTH * SIDE_LENGTH); ++i) { COverview::SWorkspaceImage& image = images[i]; - image.fb.alloc(monbox.w, monbox.h, PMONITOR->m_output->state->state().drmFormat); + image.fb = makeShared(); image.fb->alloc(monbox.w, monbox.h, PMONITOR->m_output->state->state().drmFormat); CRegion fakeDamage{0, 0, INT16_MAX, INT16_MAX}; - g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &image.fb); + g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, Render::RENDER_MODE_FULL_FAKE, nullptr, image.fb); - g_pHyprOpenGL->clear(CHyprColor{0, 0, 0, 1.0}); + g_pHyprRenderer->draw(CClearPassElement::SClearData{CHyprColor{0, 0, 0, 1.0}}); const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(image.workspaceID); @@ -175,7 +181,7 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn image.box = {(i % SIDE_LENGTH) * tileRenderSize.x + (i % SIDE_LENGTH) * GAP_WIDTH, (i / SIDE_LENGTH) * tileRenderSize.y + (i / SIDE_LENGTH) * GAP_WIDTH, tileRenderSize.x, tileRenderSize.y}; - g_pHyprOpenGL->m_renderData.blockScreenShader = true; + g_pHyprRenderer->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender(); } @@ -189,10 +195,10 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn // zoom on the current workspace. // const auto& TILE = images[std::clamp(currentid, 0, SIDE_LENGTH * SIDE_LENGTH)]; - g_pAnimationManager->createAnimation(pMonitor->m_size * pMonitor->m_size / tileSize, size, g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE); + g_pAnimationManager->createAnimation(pMonitor->m_size * pMonitor->m_size / tileSize, size, Config::animationTree()->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE); g_pAnimationManager->createAnimation((-((pMonitor->m_size / (double)SIDE_LENGTH) * Vector2D{currentid % SIDE_LENGTH, currentid / SIDE_LENGTH}) * pMonitor->m_scale) * (pMonitor->m_size / tileSize), - pos, g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE); + pos, Config::animationTree()->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE); size->setUpdateCallback(damageMonitor); pos->setUpdateCallback(damageMonitor); @@ -257,7 +263,7 @@ void COverview::redrawID(int id, bool forcelowres) { blockOverviewRendering = true; - g_pHyprRenderer->makeEGLCurrent(); + id = std::clamp(id, 0, SIDE_LENGTH * SIDE_LENGTH); @@ -273,15 +279,15 @@ void COverview::redrawID(int id, bool forcelowres) { auto& image = images[id]; - if (image.fb.m_size != monbox.size()) { - image.fb.release(); - image.fb.alloc(monbox.w, monbox.h, pMonitor->m_output->state->state().drmFormat); + if (image.fb->m_size != monbox.size()) { + image.fb->release(); + image.fb = makeShared(); image.fb->alloc(monbox.w, monbox.h, pMonitor->m_output->state->state().drmFormat); } CRegion fakeDamage{0, 0, INT16_MAX, INT16_MAX}; - g_pHyprRenderer->beginRender(pMonitor.lock(), fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &image.fb); + g_pHyprRenderer->beginRender(pMonitor.lock(), fakeDamage, Render::RENDER_MODE_FULL_FAKE, nullptr, image.fb); - g_pHyprOpenGL->clear(CHyprColor{0, 0, 0, 1.0}); + g_pHyprRenderer->draw(CClearPassElement::SClearData{CHyprColor{0, 0, 0, 1.0}}); const auto PWORKSPACE = image.pWorkspace; @@ -309,7 +315,7 @@ void COverview::redrawID(int id, bool forcelowres) { } else g_pHyprRenderer->renderWorkspace(pMonitor.lock(), PWORKSPACE, Time::steadyNow(), monbox); - g_pHyprOpenGL->m_renderData.blockScreenShader = true; + g_pHyprRenderer->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender(); pMonitor->m_activeSpecialWorkspace = openSpecial; @@ -443,7 +449,7 @@ void COverview::fullRender() { Vector2D tileSize = (SIZE / SIDE_LENGTH); Vector2D tileRenderSize = (SIZE - Vector2D{GAPSIZE, GAPSIZE} * (SIDE_LENGTH - 1)) / SIDE_LENGTH; - g_pHyprOpenGL->clear(BG_COLOR.stripA()); + g_pHyprRenderer->draw(CClearPassElement::SClearData{BG_COLOR.stripA()}); for (size_t y = 0; y < (size_t)SIDE_LENGTH; ++y) { for (size_t x = 0; x < (size_t)SIDE_LENGTH; ++x) { @@ -451,7 +457,7 @@ void COverview::fullRender() { texbox.scale(pMonitor->m_scale).translate(pos->value()); texbox.round(); CRegion damage{0, 0, INT16_MAX, INT16_MAX}; - g_pHyprOpenGL->renderTextureInternal(images[x + y * SIDE_LENGTH].fb.getTexture(), texbox, {.damage = &damage, .a = 1.0}); + Render::GL::g_pHyprOpenGL->renderTextureInternal(images[x + y * SIDE_LENGTH].fb->getTexture(), texbox, {.damage = &damage, .a = 1.0}); } } } diff --git a/hyprexpo/overview.hpp b/hyprexpo/overview.hpp index 144add970..0e873fd72 100644 --- a/hyprexpo/overview.hpp +++ b/hyprexpo/overview.hpp @@ -5,6 +5,9 @@ #include "globals.hpp" #include #include +#include +#include +using namespace Hyprutils::Memory; #include #include #include @@ -54,7 +57,7 @@ class COverview { bool damageDirty = false; struct SWorkspaceImage { - CFramebuffer fb; + SP fb; int64_t workspaceID = -1; PHLWORKSPACE pWorkspace; CBox box; From d6c37add26be7d8cdc8cea16b3be41308e47e1f8 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 28 Apr 2026 23:37:28 -0400 Subject: [PATCH 2/4] chore: update flake.lock --- flake.lock | 94 +++++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/flake.lock b/flake.lock index c291026e4..1a801cac5 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1765900596, - "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", + "lastModified": 1776876344, + "narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", + "rev": "648a13d0ee1e03a843b3e145b8ece15393058701", "type": "github" }, "original": { @@ -36,15 +36,15 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "NixOS", "repo": "flake-compat", "type": "github" } @@ -87,11 +87,11 @@ ] }, "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", "type": "github" }, "original": { @@ -116,11 +116,11 @@ ] }, "locked": { - "lastModified": 1763733840, - "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", "type": "github" }, "original": { @@ -146,11 +146,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1767201430, - "narHash": "sha256-2FF66EaIbsc7CL1jKHbRFslSePDq40fzlTTbUlm5v3k=", + "lastModified": 1777413378, + "narHash": "sha256-3ZAOkmOly7h3i22XNKHD9LEhFRTop3JT88PrlDaqnzo=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "48a024e0322bbd7c4c88126498ec478444ec4cb2", + "rev": "e61976233e01446c4e7dd4fa3b4209fea1fca9ed", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1765643131, - "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "e50ae912813bdfa8372d62daf454f48d6df02297", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", "type": "github" }, "original": { @@ -217,11 +217,11 @@ ] }, "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", "type": "github" }, "original": { @@ -246,11 +246,11 @@ ] }, "locked": { - "lastModified": 1764612430, - "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", + "lastModified": 1776426736, + "narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "0d00dc118981531aa731150b6ea551ef037acddd", + "rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9", "type": "github" }, "original": { @@ -298,11 +298,11 @@ ] }, "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", + "lastModified": 1772462885, + "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", + "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", "type": "github" }, "original": { @@ -323,11 +323,11 @@ ] }, "locked": { - "lastModified": 1766160771, - "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", + "lastModified": 1777148223, + "narHash": "sha256-PTf7kRFFzCW6rIYxLH2fWfVJmj86FSYe3k6L8B+IM9o=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", + "rev": "fa3992be2dfebe4ab06d753c6ca59bea298e798f", "type": "github" }, "original": { @@ -348,11 +348,11 @@ ] }, "locked": { - "lastModified": 1763640274, - "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", + "lastModified": 1777148232, + "narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", + "rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92", "type": "github" }, "original": { @@ -377,11 +377,11 @@ ] }, "locked": { - "lastModified": 1766253200, - "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", + "lastModified": 1776728575, + "narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "1079777525b30a947c8d657fac158e00ae85de9d", + "rev": "f3a80888783702a39691b684d099e16b83ed4702", "type": "github" }, "original": { @@ -392,11 +392,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1766070988, - "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { @@ -416,11 +416,11 @@ ] }, "locked": { - "lastModified": 1765911976, - "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", + "lastModified": 1776796298, + "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", + "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "type": "github" }, "original": { @@ -485,11 +485,11 @@ ] }, "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", + "lastModified": 1777035886, + "narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e", "type": "github" }, "original": { From 1c2afb62f84ea32b33fb8990c16befac495b70cb Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 28 Apr 2026 23:40:58 -0400 Subject: [PATCH 3/4] fix(hyprexpo): use changeWorkspace method from monitor --- hyprexpo/overview.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hyprexpo/overview.cpp b/hyprexpo/overview.cpp index ac488166b..e3e8ca082 100644 --- a/hyprexpo/overview.cpp +++ b/hyprexpo/overview.cpp @@ -393,9 +393,9 @@ void COverview::close() { const auto OLDWS = pMonitor->m_activeWorkspace; if (!NEWIDWS) - g_pKeybindManager->changeworkspace(std::to_string(NEWID)); + pMonitor->changeWorkspace(NEWID); else - g_pKeybindManager->changeworkspace(NEWIDWS->getConfigName()); + pMonitor->changeWorkspace(NEWIDWS); g_pDesktopAnimationManager->startAnimation(pMonitor->m_activeWorkspace, CDesktopAnimationManager::ANIMATION_TYPE_IN, true, true); g_pDesktopAnimationManager->startAnimation(OLDWS, CDesktopAnimationManager::ANIMATION_TYPE_OUT, false, true); From 1868d13bf1f12eef695324e9c51473abb4ee34a2 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 28 Apr 2026 23:47:21 -0400 Subject: [PATCH 4/4] style: apply clang-format --- hyprexpo/OverviewPassElement.hpp | 16 +++++++++------- hyprexpo/overview.cpp | 19 ++++++++----------- hyprexpo/overview.hpp | 6 +++--- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/hyprexpo/OverviewPassElement.hpp b/hyprexpo/OverviewPassElement.hpp index d3b4a0733..b0d0da509 100644 --- a/hyprexpo/OverviewPassElement.hpp +++ b/hyprexpo/OverviewPassElement.hpp @@ -9,14 +9,16 @@ class COverviewPassElement : public IPassElement { virtual ~COverviewPassElement() = default; virtual std::vector> draw() override; - virtual bool needsLiveBlur(); - virtual bool needsPrecomputeBlur(); - virtual std::optional boundingBox(); - virtual CRegion opaqueRegion(); + virtual bool needsLiveBlur(); + virtual bool needsPrecomputeBlur(); + virtual std::optional boundingBox(); + virtual CRegion opaqueRegion(); - virtual ePassElementType type() override { return EK_CUSTOM; } + virtual ePassElementType type() override { + return EK_CUSTOM; + } - virtual const char* passName() { + virtual const char* passName() { return "COverviewPassElement"; } -}; \ No newline at end of file +}; diff --git a/hyprexpo/overview.cpp b/hyprexpo/overview.cpp index e3e8ca082..72cff43f4 100644 --- a/hyprexpo/overview.cpp +++ b/hyprexpo/overview.cpp @@ -5,7 +5,7 @@ #include #include using namespace Hyprutils::String; -#define private public +#define private public #define protected public #include #include @@ -26,10 +26,9 @@ static void damageMonitor(WP thispt } COverview::~COverview() { - images.clear(); // otherwise we get a vram leak Cursor::overrideController->unsetOverride(Cursor::CURSOR_OVERRIDE_UNKNOWN); - // (pMonitor.lock()); + // (pMonitor.lock()); } COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn_), swipe(swipe_) { @@ -47,8 +46,8 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn BG_COLOR = **PCOL; // process the method - bool methodCenter = true; - int methodStartID = pMonitor->activeWorkspaceID(); + bool methodCenter = true; + int methodStartID = pMonitor->activeWorkspaceID(); CConstVarList method{*PMETHOD, 0, 's', true}; if (method.size() < 2) Log::logger->log(Log::ERR, "[he] invalid workspace_method"); @@ -126,8 +125,6 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn pMonitor->m_activeWorkspace = startedOn; } - - Vector2D tileSize = pMonitor->m_size / SIDE_LENGTH; Vector2D tileRenderSize = (pMonitor->m_size - Vector2D{GAP_WIDTH * pMonitor->m_scale, GAP_WIDTH * pMonitor->m_scale} * (SIDE_LENGTH - 1)) / SIDE_LENGTH; CBox monbox{0, 0, tileSize.x * 2, tileSize.y * 2}; @@ -147,7 +144,8 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn for (size_t i = 0; i < (size_t)(SIDE_LENGTH * SIDE_LENGTH); ++i) { COverview::SWorkspaceImage& image = images[i]; - image.fb = makeShared(); image.fb->alloc(monbox.w, monbox.h, PMONITOR->m_output->state->state().drmFormat); + image.fb = makeShared(); + image.fb->alloc(monbox.w, monbox.h, PMONITOR->m_output->state->state().drmFormat); CRegion fakeDamage{0, 0, INT16_MAX, INT16_MAX}; g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, Render::RENDER_MODE_FULL_FAKE, nullptr, image.fb); @@ -263,8 +261,6 @@ void COverview::redrawID(int id, bool forcelowres) { blockOverviewRendering = true; - - id = std::clamp(id, 0, SIDE_LENGTH * SIDE_LENGTH); Vector2D tileSize = pMonitor->m_size / SIDE_LENGTH; @@ -281,7 +277,8 @@ void COverview::redrawID(int id, bool forcelowres) { if (image.fb->m_size != monbox.size()) { image.fb->release(); - image.fb = makeShared(); image.fb->alloc(monbox.w, monbox.h, pMonitor->m_output->state->state().drmFormat); + image.fb = makeShared(); + image.fb->alloc(monbox.w, monbox.h, pMonitor->m_output->state->state().drmFormat); } CRegion fakeDamage{0, 0, INT16_MAX, INT16_MAX}; diff --git a/hyprexpo/overview.hpp b/hyprexpo/overview.hpp index 0e873fd72..a22f5e9ff 100644 --- a/hyprexpo/overview.hpp +++ b/hyprexpo/overview.hpp @@ -58,9 +58,9 @@ class COverview { struct SWorkspaceImage { SP fb; - int64_t workspaceID = -1; - PHLWORKSPACE pWorkspace; - CBox box; + int64_t workspaceID = -1; + PHLWORKSPACE pWorkspace; + CBox box; }; Vector2D lastMousePosLocal = Vector2D{};