mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 21:45:58 +01:00
pluginapi: add separate window render events
This commit is contained in:
parent
a2bb95fc60
commit
9c9b74179c
2 changed files with 6 additions and 0 deletions
|
@ -20,4 +20,6 @@ enum eRenderStage
|
||||||
RENDER_LAST_MOMENT, /* Last moment to render with the gl context */
|
RENDER_LAST_MOMENT, /* Last moment to render with the gl context */
|
||||||
RENDER_POST, /* After rendering is finished, gl context not available anymore */
|
RENDER_POST, /* After rendering is finished, gl context not available anymore */
|
||||||
RENDER_POST_MIRROR, /* After rendering a mirror */
|
RENDER_POST_MIRROR, /* After rendering a mirror */
|
||||||
|
RENDER_PRE_WINDOW, /* Before rendering a window (any pass) Note some windows (e.g. tiled) may have 2 passes (main & popup) */
|
||||||
|
RENDER_POST_WINDOW, /* After rendering a window (any pass) */
|
||||||
};
|
};
|
|
@ -282,6 +282,8 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
|
||||||
|
|
||||||
g_pHyprOpenGL->m_pCurrentWindow = pWindow;
|
g_pHyprOpenGL->m_pCurrentWindow = pWindow;
|
||||||
|
|
||||||
|
EMIT_HOOK_EVENT("render", RENDER_PRE_WINDOW);
|
||||||
|
|
||||||
if (*PDIMAROUND && pWindow->m_sAdditionalConfigData.dimAround && !m_bRenderingSnapshot && mode != RENDER_PASS_POPUP) {
|
if (*PDIMAROUND && pWindow->m_sAdditionalConfigData.dimAround && !m_bRenderingSnapshot && mode != RENDER_PASS_POPUP) {
|
||||||
wlr_box monbox = {0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->vecTransformedSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->vecTransformedSize.y};
|
wlr_box monbox = {0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->vecTransformedSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->vecTransformedSize.y};
|
||||||
g_pHyprOpenGL->renderRect(&monbox, CColor(0, 0, 0, *PDIMAROUND * renderdata.alpha * renderdata.fadeAlpha));
|
g_pHyprOpenGL->renderRect(&monbox, CColor(0, 0, 0, *PDIMAROUND * renderdata.alpha * renderdata.fadeAlpha));
|
||||||
|
@ -369,6 +371,8 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMIT_HOOK_EVENT("render", RENDER_POST_WINDOW);
|
||||||
|
|
||||||
g_pHyprOpenGL->m_pCurrentWindow = nullptr;
|
g_pHyprOpenGL->m_pCurrentWindow = nullptr;
|
||||||
g_pHyprOpenGL->m_RenderData.clipBox = {0, 0, 0, 0};
|
g_pHyprOpenGL->m_RenderData.clipBox = {0, 0, 0, 0};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue