aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2023-01-08 14:46:45 +0100
committervaxerski <[email protected]>2023-01-08 14:46:45 +0100
commit50e106f2e60785126331eaf2a9c43595a2a768d4 (patch)
tree5124ceec0789a53e2a97eea4e37f54cef74800c7
parent3173fbdc4a2b0a306cf56e282524bcb33914ab96 (diff)
downloadHyprland-50e106f2e60785126331eaf2a9c43595a2a768d4.tar.gz
Hyprland-50e106f2e60785126331eaf2a9c43595a2a768d4.zip
expand region twice in blur damage
we need to update possible blurriness above
-rw-r--r--src/events/Monitors.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index 8c529c1b..a631b0a1 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -216,10 +216,12 @@ void Events::listener_monitorFrame(void* owner, void* data) {
static auto* const PBLURPASSES = &g_pConfigManager->getConfigValuePtr("decoration:blur_passes")->intValue;
const auto BLURRADIUS = *PBLURSIZE * pow(2, *PBLURPASSES); // is this 2^pass? I don't know but it works... I think.
- pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage);
-
// now, prep the damage, get the extended damage region
wlr_region_expand(&damage, &damage, BLURRADIUS); // expand for proper blurring
+
+ pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage);
+
+ wlr_region_expand(&damage, &damage, BLURRADIUS); // expand for proper blurring 2
} else {
pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage);
}
@@ -280,7 +282,7 @@ void Events::listener_monitorFrame(void* owner, void* data) {
pixman_region32_init(&frameDamage);
const auto TRANSFORM = wlr_output_transform_invert(PMONITOR->output->transform);
- wlr_region_transform(&frameDamage, &PMONITOR->damage->current, TRANSFORM, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y);
+ wlr_region_transform(&frameDamage, &g_pHyprOpenGL->m_rOriginalDamageRegion, TRANSFORM, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y);
if (*PDAMAGETRACKINGMODE == DAMAGE_TRACKING_NONE || *PDAMAGETRACKINGMODE == DAMAGE_TRACKING_MONITOR)
pixman_region32_union_rect(&frameDamage, &frameDamage, 0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y);