mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-02 07:45:58 +01:00
renderer: fixup damage repaint
This commit is contained in:
parent
046ad79d11
commit
3ade6c4a96
1 changed files with 4 additions and 16 deletions
|
@ -815,9 +815,12 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
|
||||||
|
|
||||||
// check the damage
|
// check the damage
|
||||||
pixman_region32_t damage;
|
pixman_region32_t damage;
|
||||||
bool hasChanged = pMonitor->output->needs_frame || !pixman_region32_not_empty(&pMonitor->damage.current);
|
bool hasChanged = pMonitor->output->needs_frame || pixman_region32_not_empty(&pMonitor->damage.current);
|
||||||
int bufferAge;
|
int bufferAge;
|
||||||
|
|
||||||
|
if (!hasChanged && *PDAMAGETRACKINGMODE != DAMAGE_TRACKING_NONE && pMonitor->forceFullFrames == 0 && damageBlinkCleanup == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (*PDAMAGETRACKINGMODE == -1) {
|
if (*PDAMAGETRACKINGMODE == -1) {
|
||||||
Debug::log(CRIT, "Damage tracking mode -1 ????");
|
Debug::log(CRIT, "Damage tracking mode -1 ????");
|
||||||
return;
|
return;
|
||||||
|
@ -844,21 +847,6 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
|
||||||
// we need to cleanup fading out when rendering the appropriate context
|
// we need to cleanup fading out when rendering the appropriate context
|
||||||
g_pCompositor->cleanupFadingOut(pMonitor->ID);
|
g_pCompositor->cleanupFadingOut(pMonitor->ID);
|
||||||
|
|
||||||
if (!hasChanged && *PDAMAGETRACKINGMODE != DAMAGE_TRACKING_NONE && pMonitor->forceFullFrames == 0 && damageBlinkCleanup == 0) {
|
|
||||||
pixman_region32_fini(&damage);
|
|
||||||
wlr_output_rollback(pMonitor->output);
|
|
||||||
|
|
||||||
if (*PDAMAGEBLINK || *PVFR == 0)
|
|
||||||
g_pCompositor->scheduleFrameForMonitor(pMonitor);
|
|
||||||
|
|
||||||
pMonitor->renderingActive = false;
|
|
||||||
|
|
||||||
if (UNLOCK_SC)
|
|
||||||
wlr_output_lock_software_cursors(pMonitor->output, false);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if we have no tracking or full tracking, invalidate the entire monitor
|
// if we have no tracking or full tracking, invalidate the entire monitor
|
||||||
if (*PDAMAGETRACKINGMODE == DAMAGE_TRACKING_NONE || *PDAMAGETRACKINGMODE == DAMAGE_TRACKING_MONITOR || pMonitor->forceFullFrames > 0 || damageBlinkCleanup > 0 ||
|
if (*PDAMAGETRACKINGMODE == DAMAGE_TRACKING_NONE || *PDAMAGETRACKINGMODE == DAMAGE_TRACKING_MONITOR || pMonitor->forceFullFrames > 0 || damageBlinkCleanup > 0 ||
|
||||||
pMonitor->isMirror() /* why??? */) {
|
pMonitor->isMirror() /* why??? */) {
|
||||||
|
|
Loading…
Reference in a new issue