mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-07-25 17:21:54 -07:00
internal: clean up dead snapshot code
This commit is contained in:
@@ -221,7 +221,7 @@ void CLayerSurface::onUnmap() {
|
||||
m_realSize->warp();
|
||||
|
||||
// make a snapshot and start fade
|
||||
g_pHyprRenderer->makeLayerSnapshot(m_self.lock());
|
||||
g_pHyprRenderer->makeSnapshot(m_self.lock());
|
||||
|
||||
startAnimation(false);
|
||||
|
||||
|
@@ -755,7 +755,7 @@ void Events::listener_unmapWindow(void* owner, void* data) {
|
||||
|
||||
// Allow the renderer to catch the last frame.
|
||||
if (g_pHyprRenderer->shouldRenderWindow(PWINDOW))
|
||||
g_pHyprRenderer->makeWindowSnapshot(PWINDOW);
|
||||
g_pHyprRenderer->makeSnapshot(PWINDOW);
|
||||
|
||||
// swallowing
|
||||
if (valid(PWINDOW->m_swallowed)) {
|
||||
|
@@ -2381,51 +2381,7 @@ void CHyprRenderer::addWindowToRenderUnfocused(PHLWINDOW window) {
|
||||
m_renderUnfocusedTimer->updateTimeout(std::chrono::milliseconds(1000 / *PFPS));
|
||||
}
|
||||
|
||||
void CHyprRenderer::makeRawWindowSnapshot(PHLWINDOW pWindow, CFramebuffer* pFramebuffer) {
|
||||
// we trust the window is valid.
|
||||
const auto PMONITOR = pWindow->m_monitor.lock();
|
||||
|
||||
if (!PMONITOR || !PMONITOR->m_output || PMONITOR->m_pixelSize.x <= 0 || PMONITOR->m_pixelSize.y <= 0)
|
||||
return;
|
||||
|
||||
// we need to "damage" the entire monitor
|
||||
// so that we render the entire window
|
||||
// this is temporary, doesnt mess with the actual damage
|
||||
CRegion fakeDamage{0, 0, (int)PMONITOR->m_transformedSize.x, (int)PMONITOR->m_transformedSize.y};
|
||||
|
||||
makeEGLCurrent();
|
||||
|
||||
pFramebuffer->alloc(PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, DRM_FORMAT_ABGR8888);
|
||||
pFramebuffer->addStencil(g_pHyprOpenGL->m_renderData.pCurrentMonData->stencilTex);
|
||||
|
||||
beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, pFramebuffer);
|
||||
|
||||
g_pHyprOpenGL->clear(CHyprColor(0, 0, 0, 0)); // JIC
|
||||
|
||||
// this is a hack but it works :P
|
||||
// we need to disable blur or else we will get a black background, as the shader
|
||||
// will try to copy the bg to apply blur.
|
||||
// this isn't entirely correct, but like, oh well.
|
||||
// small todo: maybe make this correct? :P
|
||||
static auto* const PBLUR = (Hyprlang::INT* const*)(g_pConfigManager->getConfigValuePtr("decoration:blur:enabled"));
|
||||
const auto BLURVAL = **PBLUR;
|
||||
**PBLUR = 0;
|
||||
|
||||
// TODO: how can we make this the size of the window? setting it to window's size makes the entire screen render with the wrong res forever more. odd.
|
||||
glViewport(0, 0, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y);
|
||||
|
||||
g_pHyprOpenGL->m_renderData.currentFB = pFramebuffer;
|
||||
|
||||
g_pHyprOpenGL->clear(CHyprColor(0, 0, 0, 0)); // JIC
|
||||
|
||||
renderWindow(pWindow, PMONITOR, Time::steadyNow(), false, RENDER_PASS_ALL, true);
|
||||
|
||||
**PBLUR = BLURVAL;
|
||||
|
||||
endRender();
|
||||
}
|
||||
|
||||
void CHyprRenderer::makeWindowSnapshot(PHLWINDOW pWindow) {
|
||||
void CHyprRenderer::makeSnapshot(PHLWINDOW pWindow) {
|
||||
// we trust the window is valid.
|
||||
const auto PMONITOR = pWindow->m_monitor.lock();
|
||||
|
||||
@@ -2461,7 +2417,7 @@ void CHyprRenderer::makeWindowSnapshot(PHLWINDOW pWindow) {
|
||||
m_bRenderingSnapshot = false;
|
||||
}
|
||||
|
||||
void CHyprRenderer::makeLayerSnapshot(PHLLS pLayer) {
|
||||
void CHyprRenderer::makeSnapshot(PHLLS pLayer) {
|
||||
// we trust the window is valid.
|
||||
const auto PMONITOR = pLayer->m_monitor.lock();
|
||||
|
||||
|
@@ -83,9 +83,8 @@ class CHyprRenderer {
|
||||
void unsetEGL();
|
||||
SExplicitSyncSettings getExplicitSyncSettings(SP<Aquamarine::IOutput> output);
|
||||
void addWindowToRenderUnfocused(PHLWINDOW window);
|
||||
void makeWindowSnapshot(PHLWINDOW);
|
||||
void makeRawWindowSnapshot(PHLWINDOW, CFramebuffer*);
|
||||
void makeLayerSnapshot(PHLLS);
|
||||
void makeSnapshot(PHLWINDOW);
|
||||
void makeSnapshot(PHLLS);
|
||||
void renderSnapshot(PHLWINDOW);
|
||||
void renderSnapshot(PHLLS);
|
||||
|
||||
|
Reference in New Issue
Block a user