From 997fefbc1113323ed2bf5d782bdafc0d17532647 Mon Sep 17 00:00:00 2001 From: davc0n Date: Mon, 5 May 2025 23:44:49 +0200 Subject: [PATCH] render: refactor class member vars (#10292) * render: refactor class member vars * render: fix clang format --- src/Compositor.cpp | 28 +- src/Compositor.hpp | 8 +- src/config/ConfigManager.cpp | 6 +- src/debug/HyprCtl.cpp | 8 +- src/debug/HyprDebugOverlay.cpp | 6 +- src/debug/HyprNotificationOverlay.cpp | 4 +- src/desktop/LayerSurface.cpp | 2 +- src/desktop/WLSurface.cpp | 4 +- src/desktop/Window.cpp | 6 +- src/helpers/Monitor.cpp | 8 +- src/hyprerror/HyprError.cpp | 6 +- src/layout/IHyprLayout.cpp | 2 +- src/main.cpp | 4 +- src/managers/AnimationManager.cpp | 2 +- src/managers/PointerManager.cpp | 20 +- src/protocols/Screencopy.cpp | 22 +- src/protocols/SinglePixel.cpp | 2 +- src/protocols/ToplevelExport.cpp | 16 +- src/protocols/core/Compositor.cpp | 2 +- src/protocols/core/DataDevice.cpp | 2 +- src/protocols/types/DMABuffer.cpp | 2 +- src/protocols/types/SurfaceState.cpp | 2 +- src/render/Framebuffer.cpp | 72 +- src/render/Framebuffer.hpp | 10 +- src/render/OpenGL.cpp | 998 +++++++++--------- src/render/OpenGL.hpp | 65 +- src/render/Renderbuffer.cpp | 44 +- src/render/Renderbuffer.hpp | 14 +- src/render/Renderer.cpp | 321 +++--- src/render/Renderer.hpp | 40 +- src/render/Shader.hpp | 3 - src/render/Texture.cpp | 66 +- src/render/Texture.hpp | 20 +- .../decorations/CHyprBorderDecoration.cpp | 74 +- .../decorations/CHyprBorderDecoration.hpp | 13 +- .../decorations/CHyprDropShadowDecoration.cpp | 66 +- .../decorations/CHyprDropShadowDecoration.hpp | 14 +- .../decorations/CHyprGroupBarDecoration.cpp | 136 +-- .../decorations/CHyprGroupBarDecoration.hpp | 20 +- .../decorations/DecorationPositioner.cpp | 42 +- .../decorations/DecorationPositioner.hpp | 4 +- .../decorations/IHyprWindowDecoration.cpp | 2 +- .../decorations/IHyprWindowDecoration.hpp | 2 +- src/render/pass/BorderPassElement.cpp | 8 +- src/render/pass/BorderPassElement.hpp | 2 +- src/render/pass/ClearPassElement.cpp | 4 +- src/render/pass/ClearPassElement.hpp | 2 +- src/render/pass/FramebufferElement.cpp | 26 +- src/render/pass/FramebufferElement.hpp | 2 +- src/render/pass/Pass.cpp | 126 +-- src/render/pass/Pass.hpp | 12 +- src/render/pass/RectPassElement.cpp | 30 +- src/render/pass/RectPassElement.hpp | 2 +- src/render/pass/RendererHintsPassElement.cpp | 6 +- src/render/pass/RendererHintsPassElement.hpp | 2 +- src/render/pass/ShadowPassElement.cpp | 4 +- src/render/pass/ShadowPassElement.hpp | 2 +- src/render/pass/SurfacePassElement.cpp | 174 +-- src/render/pass/SurfacePassElement.hpp | 2 +- src/render/pass/TexPassElement.cpp | 24 +- src/render/pass/TexPassElement.hpp | 2 +- src/render/pass/TextureMatteElement.cpp | 8 +- src/render/pass/TextureMatteElement.hpp | 2 +- 63 files changed, 1307 insertions(+), 1321 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index c5b1e2b3..dd098df2 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -136,21 +136,21 @@ static void aqLog(Aquamarine::eBackendLogLevel level, std::string msg) { } void CCompositor::bumpNofile() { - if (!getrlimit(RLIMIT_NOFILE, &m_sOriginalNofile)) - Debug::log(LOG, "Old rlimit: soft -> {}, hard -> {}", m_sOriginalNofile.rlim_cur, m_sOriginalNofile.rlim_max); + if (!getrlimit(RLIMIT_NOFILE, &m_originalNofile)) + Debug::log(LOG, "Old rlimit: soft -> {}, hard -> {}", m_originalNofile.rlim_cur, m_originalNofile.rlim_max); else { Debug::log(ERR, "Failed to get NOFILE rlimits"); - m_sOriginalNofile.rlim_max = 0; + m_originalNofile.rlim_max = 0; return; } - rlimit newLimit = m_sOriginalNofile; + rlimit newLimit = m_originalNofile; newLimit.rlim_cur = newLimit.rlim_max; if (setrlimit(RLIMIT_NOFILE, &newLimit) < 0) { Debug::log(ERR, "Failed bumping NOFILE limits higher"); - m_sOriginalNofile.rlim_max = 0; + m_originalNofile.rlim_max = 0; return; } @@ -159,10 +159,10 @@ void CCompositor::bumpNofile() { } void CCompositor::restoreNofile() { - if (m_sOriginalNofile.rlim_max <= 0) + if (m_originalNofile.rlim_max <= 0) return; - if (setrlimit(RLIMIT_NOFILE, &m_sOriginalNofile) < 0) + if (setrlimit(RLIMIT_NOFILE, &m_originalNofile) < 0) Debug::log(ERR, "Failed restoring NOFILE limits"); } @@ -176,7 +176,7 @@ void CCompositor::setMallocThreshold() { #endif } -CCompositor::CCompositor(bool onlyConfig) : m_onlyConfigVerification(onlyConfig), m_iHyprlandPID(getpid()) { +CCompositor::CCompositor(bool onlyConfig) : m_onlyConfigVerification(onlyConfig), m_hyprlandPID(getpid()) { if (onlyConfig) return; @@ -225,7 +225,7 @@ CCompositor::CCompositor(bool onlyConfig) : m_onlyConfigVerification(onlyConfig) Debug::log(LOG, "Runtime directory: {}", m_instancePath); - Debug::log(LOG, "Hyprland PID: {}", m_iHyprlandPID); + Debug::log(LOG, "Hyprland PID: {}", m_hyprlandPID); Debug::log(LOG, "===== SYSTEM INFO: ====="); @@ -710,7 +710,7 @@ void CCompositor::createLockFile() { std::ofstream ofs(PATH, std::ios::trunc); - ofs << m_iHyprlandPID << "\n" << m_wlDisplaySocket << "\n"; + ofs << m_hyprlandPID << "\n" << m_wlDisplaySocket << "\n"; ofs.close(); } @@ -2706,9 +2706,9 @@ void CCompositor::performUserChecks() { } } - if (g_pHyprOpenGL->failedAssetsNo > 0) { + if (g_pHyprOpenGL->m_failedAssetsNo > 0) { g_pHyprNotificationOverlay->addNotification(std::format("Hyprland failed to load {} essential asset{}, blame your distro's packager for doing a bad job at packaging!", - g_pHyprOpenGL->failedAssetsNo, g_pHyprOpenGL->failedAssetsNo > 1 ? "s" : ""), + g_pHyprOpenGL->m_failedAssetsNo, g_pHyprOpenGL->m_failedAssetsNo > 1 ? "s" : ""), CHyprColor{1.0, 0.1, 0.1, 1.0}, 15000, ICON_ERROR); } } @@ -3033,8 +3033,8 @@ void CCompositor::onNewMonitor(SP output) { // ready to process if we have a real monitor - if ((!g_pHyprRenderer->m_pMostHzMonitor || PNEWMONITOR->m_refreshRate > g_pHyprRenderer->m_pMostHzMonitor->m_refreshRate) && PNEWMONITOR->m_enabled) - g_pHyprRenderer->m_pMostHzMonitor = PNEWMONITOR; + if ((!g_pHyprRenderer->m_mostHzMonitor || PNEWMONITOR->m_refreshRate > g_pHyprRenderer->m_mostHzMonitor->m_refreshRate) && PNEWMONITOR->m_enabled) + g_pHyprRenderer->m_mostHzMonitor = PNEWMONITOR; g_pCompositor->m_readyToProcess = true; diff --git a/src/Compositor.hpp b/src/Compositor.hpp index 7c81c777..b4a0c51c 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -152,7 +152,7 @@ class CCompositor { NColorManagement::SImageDescription getPreferredImageDescription(); bool shouldChangePreferredImageDescription(); - std::string explicitConfigPath; + std::string m_explicitConfigPath; private: void initAllSignals(); @@ -165,9 +165,9 @@ class CCompositor { void removeLockFile(); void setMallocThreshold(); - uint64_t m_iHyprlandPID = 0; - wl_event_source* m_critSigSource = nullptr; - rlimit m_sOriginalNofile = {}; + uint64_t m_hyprlandPID = 0; + wl_event_source* m_critSigSource = nullptr; + rlimit m_originalNofile = {}; }; inline UP g_pCompositor; diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 08024e80..90e4fe12 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -857,8 +857,8 @@ std::optional CConfigManager::generateConfig(std::string configPath std::string CConfigManager::getMainConfigPath() { static std::string CONFIG_PATH = [this]() -> std::string { - if (!g_pCompositor->explicitConfigPath.empty()) - return g_pCompositor->explicitConfigPath; + if (!g_pCompositor->m_explicitConfigPath.empty()) + return g_pCompositor->m_explicitConfigPath; if (const auto CFG_ENV = getenv("HYPRLAND_CONFIG"); CFG_ENV) return CFG_ENV; @@ -1025,7 +1025,7 @@ void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) { g_pInputManager->setTouchDeviceConfigs(); g_pInputManager->setTabletConfigs(); - g_pHyprOpenGL->m_bReloadScreenShader = true; + g_pHyprOpenGL->m_reloadScreenShader = true; g_pHyprOpenGL->ensureBackgroundTexturePresence(); } diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp index 87546279..d3f9efa1 100644 --- a/src/debug/HyprCtl.cpp +++ b/src/debug/HyprCtl.cpp @@ -1128,10 +1128,10 @@ static std::string dispatchKeyword(eHyprCtlOutputFormat format, std::string in) g_pLayoutManager->switchToLayout(*PLAYOUT); // update layout if (COMMAND.contains("decoration:screen_shader") || COMMAND == "source") - g_pHyprOpenGL->m_bReloadScreenShader = true; + g_pHyprOpenGL->m_reloadScreenShader = true; if (COMMAND.contains("blur") || COMMAND == "source") { - for (auto& [m, rd] : g_pHyprOpenGL->m_mMonitorRenderResources) { + for (auto& [m, rd] : g_pHyprOpenGL->m_monitorRenderResources) { rd.blurFBDirty = true; } } @@ -1821,9 +1821,9 @@ std::string CHyprCtl::getReply(std::string request) { g_pLayoutManager->switchToLayout(*PLAYOUT); // update layout - g_pHyprOpenGL->m_bReloadScreenShader = true; + g_pHyprOpenGL->m_reloadScreenShader = true; - for (auto& [m, rd] : g_pHyprOpenGL->m_mMonitorRenderResources) { + for (auto& [m, rd] : g_pHyprOpenGL->m_monitorRenderResources) { rd.blurFBDirty = true; } diff --git a/src/debug/HyprDebugOverlay.cpp b/src/debug/HyprDebugOverlay.cpp index e5714f4f..522b3a83 100644 --- a/src/debug/HyprDebugOverlay.cpp +++ b/src/debug/HyprDebugOverlay.cpp @@ -57,7 +57,7 @@ void CHyprMonitorDebugOverlay::frameData(PHLMONITOR pMonitor) { m_monitor = pMonitor; // anim data too - const auto PMONITORFORTICKS = g_pHyprRenderer->m_pMostHzMonitor ? g_pHyprRenderer->m_pMostHzMonitor.lock() : g_pCompositor->m_lastMonitor.lock(); + const auto PMONITORFORTICKS = g_pHyprRenderer->m_mostHzMonitor ? g_pHyprRenderer->m_mostHzMonitor.lock() : g_pCompositor->m_lastMonitor.lock(); if (PMONITORFORTICKS) { if (m_lastAnimationTicks.size() > (long unsigned int)PMONITORFORTICKS->m_refreshRate) m_lastAnimationTicks.pop_front(); @@ -260,7 +260,7 @@ void CHyprDebugOverlay::draw() { // copy the data to an OpenGL texture we have const auto DATA = cairo_image_surface_get_data(m_cairoSurface); m_texture->allocate(); - glBindTexture(GL_TEXTURE_2D, m_texture->m_iTexID); + glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); @@ -274,5 +274,5 @@ void CHyprDebugOverlay::draw() { CTexPassElement::SRenderData data; data.tex = m_texture; data.box = {0, 0, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y}; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } diff --git a/src/debug/HyprNotificationOverlay.cpp b/src/debug/HyprNotificationOverlay.cpp index 1dc6e167..f8dd69ab 100644 --- a/src/debug/HyprNotificationOverlay.cpp +++ b/src/debug/HyprNotificationOverlay.cpp @@ -235,7 +235,7 @@ void CHyprNotificationOverlay::draw(PHLMONITOR pMonitor) { // copy the data to an OpenGL texture we have const auto DATA = cairo_image_surface_get_data(m_cairoSurface); m_texture->allocate(); - glBindTexture(GL_TEXTURE_2D, m_texture->m_iTexID); + glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); @@ -251,7 +251,7 @@ void CHyprNotificationOverlay::draw(PHLMONITOR pMonitor) { data.box = {0, 0, MONSIZE.x, MONSIZE.y}; data.a = 1.F; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } bool CHyprNotificationOverlay::hasAny() { diff --git a/src/desktop/LayerSurface.cpp b/src/desktop/LayerSurface.cpp index 61cca488..a5d9067a 100644 --- a/src/desktop/LayerSurface.cpp +++ b/src/desktop/LayerSurface.cpp @@ -74,7 +74,7 @@ CLayerSurface::~CLayerSurface() { if (m_surface) m_surface->unassign(); g_pHyprRenderer->makeEGLCurrent(); - std::erase_if(g_pHyprOpenGL->m_mLayerFramebuffers, [&](const auto& other) { return other.first.expired() || other.first.lock() == m_self.lock(); }); + std::erase_if(g_pHyprOpenGL->m_layerFramebuffers, [&](const auto& other) { return other.first.expired() || other.first.lock() == m_self.lock(); }); for (auto const& mon : g_pCompositor->m_realMonitors) { for (auto& lsl : mon->m_layerSurfaceLayers) { diff --git a/src/desktop/WLSurface.cpp b/src/desktop/WLSurface.cpp index 853f14c0..a7b9e620 100644 --- a/src/desktop/WLSurface.cpp +++ b/src/desktop/WLSurface.cpp @@ -143,8 +143,8 @@ void CWLSurface::destroy() { m_subsurfaceOwner = nullptr; m_inert = true; - if (g_pHyprRenderer && g_pHyprRenderer->m_sLastCursorData.surf && g_pHyprRenderer->m_sLastCursorData.surf->get() == this) - g_pHyprRenderer->m_sLastCursorData.surf.reset(); + if (g_pHyprRenderer && g_pHyprRenderer->m_lastCursorData.surf && g_pHyprRenderer->m_lastCursorData.surf->get() == this) + g_pHyprRenderer->m_lastCursorData.surf.reset(); m_resource.reset(); diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index a8fcf3a1..6e6e51a1 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -126,7 +126,7 @@ CWindow::~CWindow() { return; g_pHyprRenderer->makeEGLCurrent(); - std::erase_if(g_pHyprOpenGL->m_mWindowFramebuffers, [&](const auto& other) { return other.first.expired() || other.first.get() == this; }); + std::erase_if(g_pHyprOpenGL->m_windowFramebuffers, [&](const auto& other) { return other.first.expired() || other.first.get() == this; }); } SBoxExtents CWindow::getFullWindowExtents() { @@ -1160,7 +1160,7 @@ bool CWindow::opaque() { return false; if (m_isX11 && m_xwaylandSurface && m_xwaylandSurface->surface && m_xwaylandSurface->surface->m_current.texture) - return m_xwaylandSurface->surface->m_current.texture->m_bOpaque; + return m_xwaylandSurface->surface->m_current.texture->m_opaque; if (!m_wlSurface->resource() || !m_wlSurface->resource()->m_current.texture) return false; @@ -1170,7 +1170,7 @@ bool CWindow::opaque() { if (EXTENTS.w >= m_xdgSurface->m_surface->m_current.bufferSize.x && EXTENTS.h >= m_xdgSurface->m_surface->m_current.bufferSize.y) return true; - return m_wlSurface->resource()->m_current.texture->m_bOpaque; + return m_wlSurface->resource()->m_current.texture->m_opaque; } float CWindow::rounding() { diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 3228a690..dab29544 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -388,7 +388,7 @@ void CMonitor::onDisconnect(bool destroy) { if (g_pCompositor->m_lastMonitor == m_self) g_pCompositor->setActiveMonitor(BACKUPMON ? BACKUPMON : g_pCompositor->m_unsafeOutput.lock()); - if (g_pHyprRenderer->m_pMostHzMonitor == m_self) { + if (g_pHyprRenderer->m_mostHzMonitor == m_self) { int mostHz = 0; PHLMONITOR pMonitorMostHz = nullptr; @@ -399,7 +399,7 @@ void CMonitor::onDisconnect(bool destroy) { } } - g_pHyprRenderer->m_pMostHzMonitor = pMonitorMostHz; + g_pHyprRenderer->m_mostHzMonitor = pMonitorMostHz; } std::erase_if(g_pCompositor->m_monitors, [&](PHLMONITOR& el) { return el.get() == this; }); } @@ -1362,7 +1362,7 @@ void CMonitor::setCTM(const Mat3x3& ctm_) { } bool CMonitor::attemptDirectScanout() { - if (!m_mirrors.empty() || isMirror() || g_pHyprRenderer->m_bDirectScanoutBlocked) + if (!m_mirrors.empty() || isMirror() || g_pHyprRenderer->m_directScanoutBlocked) return false; // do not DS if this monitor is being mirrored. Will break the functionality. if (g_pPointerManager->softwareLockedFor(m_self.lock())) @@ -1383,7 +1383,7 @@ bool CMonitor::attemptDirectScanout() { // we can't scanout shm buffers. const auto params = PSURFACE->m_current.buffer->dmabuf(); - if (!params.success || !PSURFACE->m_current.texture->m_pEglImage /* dmabuf */) + if (!params.success || !PSURFACE->m_current.texture->m_eglImage /* dmabuf */) return false; Debug::log(TRACE, "attemptDirectScanout: surface {:x} passed, will attempt, buffer {}", (uintptr_t)PSURFACE.get(), (uintptr_t)PSURFACE->m_current.buffer.m_buffer.get()); diff --git a/src/hyprerror/HyprError.cpp b/src/hyprerror/HyprError.cpp index 9dd26e2c..d9f50db3 100644 --- a/src/hyprerror/HyprError.cpp +++ b/src/hyprerror/HyprError.cpp @@ -143,7 +143,7 @@ void CHyprError::createQueued() { // copy the data to an OpenGL texture we have const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); m_texture->allocate(); - glBindTexture(GL_TEXTURE_2D, m_texture->m_iTexID); + glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); @@ -194,7 +194,7 @@ void CHyprError::draw() { } } - const auto PMONITOR = g_pHyprOpenGL->m_RenderData.pMonitor; + const auto PMONITOR = g_pHyprOpenGL->m_renderData.pMonitor; CBox monbox = {0, 0, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y}; @@ -211,7 +211,7 @@ void CHyprError::draw() { data.box = monbox; data.a = m_fadeOpacity->value(); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } void CHyprError::destroy() { diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp index b546c1f8..e1077a93 100644 --- a/src/layout/IHyprLayout.cpp +++ b/src/layout/IHyprLayout.cpp @@ -553,7 +553,7 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) { const auto TIMERDELTA = std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - TIMER).count(); const auto MSDELTA = std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - MSTIMER).count(); - const auto MSMONITOR = 1000.0 / g_pHyprRenderer->m_pMostHzMonitor->m_refreshRate; + const auto MSMONITOR = 1000.0 / g_pHyprRenderer->m_mostHzMonitor->m_refreshRate; static int totalMs = 0; bool canSkipUpdate = true; diff --git a/src/main.cpp b/src/main.cpp index 0cb5585e..d7624c4e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -160,8 +160,8 @@ int main(int argc, char** argv) { // let's init the compositor. // it initializes basic Wayland stuff in the constructor. try { - g_pCompositor = makeUnique(verifyConfig); - g_pCompositor->explicitConfigPath = configPath; + g_pCompositor = makeUnique(verifyConfig); + g_pCompositor->m_explicitConfigPath = configPath; } catch (const std::exception& e) { std::println(stderr, "Hyprland threw in ctor: {}\nCannot continue.", e.what()); return 1; diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp index d49b4790..d12b91a5 100644 --- a/src/managers/AnimationManager.cpp +++ b/src/managers/AnimationManager.cpp @@ -255,7 +255,7 @@ void CHyprAnimationManager::scheduleTick() { m_tickScheduled = true; - const auto PMOSTHZ = g_pHyprRenderer->m_pMostHzMonitor; + const auto PMOSTHZ = g_pHyprRenderer->m_mostHzMonitor; if (!PMOSTHZ) { m_animationTimer->updateTimeout(std::chrono::milliseconds(16)); diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index d9dd602e..5415e7be 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -471,11 +471,11 @@ SP CPointerManager::renderHWCursorBuffer(SPm_current.texture) { - Debug::log(TRACE, "Cursor CPU surface: format {}, expecting AR24", NFormatUtils::drmFormatName(SURFACE->m_current.texture->m_iDrmFormat)); - if (SURFACE->m_current.texture->m_iDrmFormat == DRM_FORMAT_ABGR8888) { + Debug::log(TRACE, "Cursor CPU surface: format {}, expecting AR24", NFormatUtils::drmFormatName(SURFACE->m_current.texture->m_drmFormat)); + if (SURFACE->m_current.texture->m_drmFormat == DRM_FORMAT_ABGR8888) { Debug::log(TRACE, "Cursor CPU surface format AB24, will flip. WARNING: this will break on big endian!"); flipRB = true; - } else if (SURFACE->m_current.texture->m_iDrmFormat != DRM_FORMAT_ARGB8888) { + } else if (SURFACE->m_current.texture->m_drmFormat != DRM_FORMAT_ARGB8888) { Debug::log(TRACE, "Cursor CPU surface format rejected, falling back to sw"); return nullptr; } @@ -484,7 +484,7 @@ SP CPointerManager::renderHWCursorBuffer(SPm_vSize.x * 4 * texture->m_vSize.y); + texData.resize(texture->m_size.x * 4 * texture->m_size.y); memset(texData.data(), 0x00, texData.size()); } @@ -506,13 +506,13 @@ SP CPointerManager::renderHWCursorBuffer(SPm_vSize.x, texture->m_vSize.y, texture->m_vSize.x * 4); + cairo_image_surface_create_for_data((unsigned char*)texData.data(), CAIRO_FORMAT_ARGB32, texture->m_size.x, texture->m_size.y, texture->m_size.x * 4); auto CAIRO = cairo_create(CAIROSURFACE); cairo_set_operator(CAIRO, CAIRO_OPERATOR_SOURCE); cairo_set_source_rgba(CAIRO, 0, 0, 0, 0); - cairo_rectangle(CAIRO, 0, 0, texture->m_vSize.x, texture->m_vSize.y); + cairo_rectangle(CAIRO, 0, 0, texture->m_size.x, texture->m_size.y); cairo_fill(CAIRO); const auto PATTERNPRE = cairo_pattern_create_for_surface(CAIRODATASURFACE); @@ -523,7 +523,7 @@ SP CPointerManager::renderHWCursorBuffer(SPmonitor->m_transform; // we need to scale the cursor to the right size, because it might not be (esp with XCursor) - const auto SCALE = texture->m_vSize / (m_currentCursorImage.size / m_currentCursorImage.scale * state->monitor->m_scale); + const auto SCALE = texture->m_size / (m_currentCursorImage.size / m_currentCursorImage.scale * state->monitor->m_scale); cairo_matrix_scale(&matrixPre, SCALE.x, SCALE.y); if (TR) { @@ -564,7 +564,7 @@ SP CPointerManager::renderHWCursorBuffer(SPmakeEGLCurrent(); - g_pHyprOpenGL->m_RenderData.pMonitor = state->monitor; + g_pHyprOpenGL->m_renderData.pMonitor = state->monitor; auto RBO = g_pHyprRenderer->getOrCreateRenderbuffer(buf, state->monitor->m_cursorSwapchain->currentOptions().format); if (!RBO) { @@ -585,7 +585,7 @@ SP CPointerManager::renderHWCursorBuffer(SPend(); glFlush(); - g_pHyprOpenGL->m_RenderData.pMonitor.reset(); + g_pHyprOpenGL->m_renderData.pMonitor.reset(); g_pHyprRenderer->onRenderbufferDestroy(RBO.get()); @@ -625,7 +625,7 @@ void CPointerManager::renderSoftwareCursorsFor(PHLMONITOR pMonitor, const Time:: data.tex = texture; data.box = box.round(); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); if (m_currentCursorImage.surface) m_currentCursorImage.surface->resource()->frame(now); diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp index 2c84fe93..e0ef6783 100644 --- a/src/protocols/Screencopy.cpp +++ b/src/protocols/Screencopy.cpp @@ -146,7 +146,7 @@ void CScreencopyFrame::copy(CZwlrScreencopyFrameV1* pFrame, wl_resource* buffer_ PROTO::screencopy->m_framesAwaitingWrite.emplace_back(m_self); - g_pHyprRenderer->m_bDirectScanoutBlocked = true; + g_pHyprRenderer->m_directScanoutBlocked = true; if (!m_withDamage) g_pHyprRenderer->damageMonitor(m_monitor.lock()); @@ -215,12 +215,11 @@ void CScreencopyFrame::copyDmabuf(std::function callback) { g_pHyprOpenGL->clear(Colors::BLACK); else { g_pHyprOpenGL->clear(Colors::BLACK); - CBox texbox = - CBox{m_monitor->m_transformedSize / 2.F, g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize}.translate(-g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize / 2.F); - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pScreencopyDeniedTexture, texbox, 1); + CBox texbox = CBox{m_monitor->m_transformedSize / 2.F, g_pHyprOpenGL->m_screencopyDeniedTexture->m_size}.translate(-g_pHyprOpenGL->m_screencopyDeniedTexture->m_size / 2.F); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_screencopyDeniedTexture, texbox, 1); } - g_pHyprOpenGL->m_RenderData.blockScreenShader = true; + g_pHyprOpenGL->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender([callback]() { LOGM(TRACE, "Copied frame via dma"); @@ -261,9 +260,8 @@ bool CScreencopyFrame::copyShm() { g_pHyprOpenGL->clear(Colors::BLACK); else { g_pHyprOpenGL->clear(Colors::BLACK); - CBox texbox = - CBox{m_monitor->m_transformedSize / 2.F, g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize}.translate(-g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize / 2.F); - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pScreencopyDeniedTexture, texbox, 1); + CBox texbox = CBox{m_monitor->m_transformedSize / 2.F, g_pHyprOpenGL->m_screencopyDeniedTexture->m_size}.translate(-g_pHyprOpenGL->m_screencopyDeniedTexture->m_size / 2.F); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_screencopyDeniedTexture, texbox, 1); } #ifndef GLES2 @@ -281,11 +279,11 @@ bool CScreencopyFrame::copyShm() { auto glFormat = PFORMAT->flipRB ? GL_BGRA_EXT : GL_RGBA; - g_pHyprOpenGL->m_RenderData.blockScreenShader = true; + g_pHyprOpenGL->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender(); g_pHyprRenderer->makeEGLCurrent(); - g_pHyprOpenGL->m_RenderData.pMonitor = m_monitor; + g_pHyprOpenGL->m_renderData.pMonitor = m_monitor; fb.bind(); glPixelStorei(GL_PACK_ALIGNMENT, 1); @@ -304,7 +302,7 @@ bool CScreencopyFrame::copyShm() { } } - g_pHyprOpenGL->m_RenderData.pMonitor.reset(); + g_pHyprOpenGL->m_renderData.pMonitor.reset(); #ifndef GLES2 glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); @@ -414,7 +412,7 @@ void CScreencopyProtocol::destroyResource(CScreencopyFrame* frame) { void CScreencopyProtocol::onOutputCommit(PHLMONITOR pMonitor) { if (m_framesAwaitingWrite.empty()) { - g_pHyprRenderer->m_bDirectScanoutBlocked = false; + g_pHyprRenderer->m_directScanoutBlocked = false; return; // nothing to share } diff --git a/src/protocols/SinglePixel.cpp b/src/protocols/SinglePixel.cpp index 7baddfd9..d069da0d 100644 --- a/src/protocols/SinglePixel.cpp +++ b/src/protocols/SinglePixel.cpp @@ -16,7 +16,7 @@ CSinglePixelBuffer::CSinglePixelBuffer(uint32_t id, wl_client* client, CHyprColo m_resource = CWLBufferResource::create(makeShared(client, 1, id)); - m_success = m_texture->m_iTexID; + m_success = m_texture->m_texID; size = {1, 1}; diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp index 04781a9b..498bcba9 100644 --- a/src/protocols/ToplevelExport.cpp +++ b/src/protocols/ToplevelExport.cpp @@ -264,9 +264,8 @@ bool CToplevelExportFrame::copyShm(const Time::steady_tp& now) { if (overlayCursor) g_pPointerManager->renderSoftwareCursorsFor(PMONITOR->m_self.lock(), now, fakeDamage, g_pInputManager->getMouseCoordsInternal() - m_window->m_realPosition->value()); } else if (PERM == PERMISSION_RULE_ALLOW_MODE_DENY) { - CBox texbox = - CBox{PMONITOR->m_transformedSize / 2.F, g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize}.translate(-g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize / 2.F); - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pScreencopyDeniedTexture, texbox, 1); + CBox texbox = CBox{PMONITOR->m_transformedSize / 2.F, g_pHyprOpenGL->m_screencopyDeniedTexture->m_size}.translate(-g_pHyprOpenGL->m_screencopyDeniedTexture->m_size / 2.F); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_screencopyDeniedTexture, texbox, 1); } const auto PFORMAT = NFormatUtils::getPixelFormatFromDRM(shm.format); @@ -275,11 +274,11 @@ bool CToplevelExportFrame::copyShm(const Time::steady_tp& now) { return false; } - g_pHyprOpenGL->m_RenderData.blockScreenShader = true; + g_pHyprOpenGL->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender(); g_pHyprRenderer->makeEGLCurrent(); - g_pHyprOpenGL->m_RenderData.pMonitor = PMONITOR; + g_pHyprOpenGL->m_renderData.pMonitor = PMONITOR; outFB.bind(); #ifndef GLES2 @@ -352,12 +351,11 @@ bool CToplevelExportFrame::copyDmabuf(const Time::steady_tp& now) { if (overlayCursor) g_pPointerManager->renderSoftwareCursorsFor(PMONITOR->m_self.lock(), now, fakeDamage, g_pInputManager->getMouseCoordsInternal() - m_window->m_realPosition->value()); } else if (PERM == PERMISSION_RULE_ALLOW_MODE_DENY) { - CBox texbox = - CBox{PMONITOR->m_transformedSize / 2.F, g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize}.translate(-g_pHyprOpenGL->m_pScreencopyDeniedTexture->m_vSize / 2.F); - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pScreencopyDeniedTexture, texbox, 1); + CBox texbox = CBox{PMONITOR->m_transformedSize / 2.F, g_pHyprOpenGL->m_screencopyDeniedTexture->m_size}.translate(-g_pHyprOpenGL->m_screencopyDeniedTexture->m_size / 2.F); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_screencopyDeniedTexture, texbox, 1); } - g_pHyprOpenGL->m_RenderData.blockScreenShader = true; + g_pHyprOpenGL->m_renderData.blockScreenShader = true; g_pHyprRenderer->endRender(); if (overlayCursor) { diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index e6390dbf..07bad77b 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -495,7 +495,7 @@ void CWLSurfaceResource::commitState(SSurfaceState& state) { } if (m_current.texture) - m_current.texture->m_eTransform = wlTransformToHyprutils(m_current.transform); + m_current.texture->m_transform = wlTransformToHyprutils(m_current.transform); if (m_role->role() == SURFACE_ROLE_SUBSURFACE) { auto subsurface = ((CSubsurfaceRole*)m_role.get())->m_subsurface.lock(); diff --git a/src/protocols/core/DataDevice.cpp b/src/protocols/core/DataDevice.cpp index 63523cd9..67c16e43 100644 --- a/src/protocols/core/DataDevice.cpp +++ b/src/protocols/core/DataDevice.cpp @@ -814,7 +814,7 @@ void CWLDataDeviceProtocol::renderDND(PHLMONITOR pMonitor, const Time::steady_tp CTexPassElement::SRenderData data; data.tex = m_dnd.dndSurface->m_current.texture; data.box = box; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); CBox damageBox = CBox{surfacePos, m_dnd.dndSurface->m_current.size}.expand(5); g_pHyprRenderer->damageBox(damageBox); diff --git a/src/protocols/types/DMABuffer.cpp b/src/protocols/types/DMABuffer.cpp index d8e41959..326c0736 100644 --- a/src/protocols/types/DMABuffer.cpp +++ b/src/protocols/types/DMABuffer.cpp @@ -37,7 +37,7 @@ CDMABuffer::CDMABuffer(uint32_t id, wl_client* client, Aquamarine::SDMABUFAttrs m_texture = makeShared(m_attrs, eglImage); // texture takes ownership of the eglImage m_opaque = NFormatUtils::isFormatOpaque(m_attrs.format); - m_success = m_texture->m_iTexID; + m_success = m_texture->m_texID; if UNLIKELY (!m_success) Debug::log(ERR, "Failed to create a dmabuf: texture is null"); diff --git a/src/protocols/types/SurfaceState.cpp b/src/protocols/types/SurfaceState.cpp index 7d1f5702..be1160fb 100644 --- a/src/protocols/types/SurfaceState.cpp +++ b/src/protocols/types/SurfaceState.cpp @@ -39,7 +39,7 @@ void SSurfaceState::updateSynchronousTexture(SP lastTexture) { if (dataPtr) { auto drmFmt = NFormatUtils::shmToDRM(fmt); auto stride = bufferSize.y ? size / bufferSize.y : 0; - if (lastTexture && lastTexture->m_isSynchronous && lastTexture->m_vSize == bufferSize) { + if (lastTexture && lastTexture->m_isSynchronous && lastTexture->m_size == bufferSize) { texture = lastTexture; texture->update(drmFmt, dataPtr, stride, accumulateBufferDamage()); } else diff --git a/src/render/Framebuffer.cpp b/src/render/Framebuffer.cpp index c35b9600..ae2ce2a6 100644 --- a/src/render/Framebuffer.cpp +++ b/src/render/Framebuffer.cpp @@ -12,10 +12,10 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { uint32_t glFormat = NFormatUtils::drmFormatToGL(drmFormat); uint32_t glType = NFormatUtils::glFormatToType(glFormat); - if (!m_cTex) { - m_cTex = makeShared(); - m_cTex->allocate(); - glBindTexture(GL_TEXTURE_2D, m_cTex->m_iTexID); + if (!m_tex) { + m_tex = makeShared(); + m_tex->allocate(); + glBindTexture(GL_TEXTURE_2D, m_tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -23,24 +23,24 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { firstAlloc = true; } - if (!m_iFbAllocated) { - glGenFramebuffers(1, &m_iFb); - m_iFbAllocated = true; - firstAlloc = true; + if (!m_fbAllocated) { + glGenFramebuffers(1, &m_fb); + m_fbAllocated = true; + firstAlloc = true; } - if (firstAlloc || m_vSize != Vector2D(w, h)) { - glBindTexture(GL_TEXTURE_2D, m_cTex->m_iTexID); + if (firstAlloc || m_size != Vector2D(w, h)) { + glBindTexture(GL_TEXTURE_2D, m_tex->m_texID); glTexImage2D(GL_TEXTURE_2D, 0, glFormat, w, h, 0, GL_RGBA, glType, nullptr); - glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_cTex->m_iTexID, 0); + glBindFramebuffer(GL_FRAMEBUFFER, m_fb); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_tex->m_texID, 0); // TODO: Allow this with gles2 #ifndef GLES2 - if (m_pStencilTex) { - glBindTexture(GL_TEXTURE_2D, m_pStencilTex->m_iTexID); + if (m_stencilTex) { + glBindTexture(GL_TEXTURE_2D, m_stencilTex->m_texID); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, w, h, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_pStencilTex->m_iTexID, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_stencilTex->m_texID, 0); } #endif @@ -53,7 +53,7 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { glBindTexture(GL_TEXTURE_2D, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); - m_vSize = Vector2D(w, h); + m_size = Vector2D(w, h); return true; } @@ -61,13 +61,13 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { void CFramebuffer::addStencil(SP tex) { // TODO: Allow this with gles2 #ifndef GLES2 - m_pStencilTex = tex; - glBindTexture(GL_TEXTURE_2D, m_pStencilTex->m_iTexID); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_vSize.x, m_vSize.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); + m_stencilTex = tex; + glBindTexture(GL_TEXTURE_2D, m_stencilTex->m_texID); + glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_size.x, m_size.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); - glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); + glBindFramebuffer(GL_FRAMEBUFFER, m_fb); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_pStencilTex->m_iTexID, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_stencilTex->m_texID, 0); auto status = glCheckFramebufferStatus(GL_FRAMEBUFFER); RASSERT((status == GL_FRAMEBUFFER_COMPLETE), "Failed adding a stencil to fbo!", status); @@ -79,15 +79,15 @@ void CFramebuffer::addStencil(SP tex) { void CFramebuffer::bind() { #ifndef GLES2 - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_iFb); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fb); #else glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); #endif if (g_pHyprOpenGL) - glViewport(0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->m_pixelSize.y); + glViewport(0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.y); else - glViewport(0, 0, m_vSize.x, m_vSize.y); + glViewport(0, 0, m_size.x, m_size.y); } void CFramebuffer::unbind() { @@ -99,20 +99,20 @@ void CFramebuffer::unbind() { } void CFramebuffer::release() { - if (m_iFbAllocated) { - glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); + if (m_fbAllocated) { + glBindFramebuffer(GL_FRAMEBUFFER, m_fb); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); - glDeleteFramebuffers(1, &m_iFb); - m_iFbAllocated = false; - m_iFb = 0; + glDeleteFramebuffers(1, &m_fb); + m_fbAllocated = false; + m_fb = 0; } - if (m_cTex) - m_cTex.reset(); + if (m_tex) + m_tex.reset(); - m_vSize = Vector2D(); + m_size = Vector2D(); } CFramebuffer::~CFramebuffer() { @@ -120,17 +120,17 @@ CFramebuffer::~CFramebuffer() { } bool CFramebuffer::isAllocated() { - return m_iFbAllocated && m_cTex; + return m_fbAllocated && m_tex; } SP CFramebuffer::getTexture() { - return m_cTex; + return m_tex; } GLuint CFramebuffer::getFBID() { - return m_iFbAllocated ? m_iFb : 0; + return m_fbAllocated ? m_fb : 0; } SP CFramebuffer::getStencilTex() { - return m_pStencilTex; + return m_stencilTex; } diff --git a/src/render/Framebuffer.hpp b/src/render/Framebuffer.hpp index 092e548e..4e041573 100644 --- a/src/render/Framebuffer.hpp +++ b/src/render/Framebuffer.hpp @@ -19,14 +19,14 @@ class CFramebuffer { SP getStencilTex(); GLuint getFBID(); - Vector2D m_vSize; + Vector2D m_size; private: - SP m_cTex; - GLuint m_iFb = -1; - bool m_iFbAllocated = false; + SP m_tex; + GLuint m_fb = -1; + bool m_fbAllocated = false; - SP m_pStencilTex; + SP m_stencilTex; friend class CRenderbuffer; }; diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index c213f860..6a568ed8 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -124,37 +124,37 @@ static int openRenderNode(int drmFd) { void CHyprOpenGLImpl::initEGL(bool gbm) { std::vector attrs; - if (m_sExts.KHR_display_reference) { + if (m_exts.KHR_display_reference) { attrs.push_back(EGL_TRACK_REFERENCES_KHR); attrs.push_back(EGL_TRUE); } attrs.push_back(EGL_NONE); - m_pEglDisplay = m_sProc.eglGetPlatformDisplayEXT(gbm ? EGL_PLATFORM_GBM_KHR : EGL_PLATFORM_DEVICE_EXT, gbm ? m_pGbmDevice : m_pEglDevice, attrs.data()); - if (m_pEglDisplay == EGL_NO_DISPLAY) + m_eglDisplay = m_proc.eglGetPlatformDisplayEXT(gbm ? EGL_PLATFORM_GBM_KHR : EGL_PLATFORM_DEVICE_EXT, gbm ? m_gbmDevice : m_eglDevice, attrs.data()); + if (m_eglDisplay == EGL_NO_DISPLAY) RASSERT(false, "EGL: failed to create a platform display"); attrs.clear(); EGLint major, minor; - if (eglInitialize(m_pEglDisplay, &major, &minor) == EGL_FALSE) + if (eglInitialize(m_eglDisplay, &major, &minor) == EGL_FALSE) RASSERT(false, "EGL: failed to initialize a platform display"); - const std::string EGLEXTENSIONS = (const char*)eglQueryString(m_pEglDisplay, EGL_EXTENSIONS); + const std::string EGLEXTENSIONS = (const char*)eglQueryString(m_eglDisplay, EGL_EXTENSIONS); - m_sExts.IMG_context_priority = EGLEXTENSIONS.contains("IMG_context_priority"); - m_sExts.EXT_create_context_robustness = EGLEXTENSIONS.contains("EXT_create_context_robustness"); - m_sExts.EXT_image_dma_buf_import = EGLEXTENSIONS.contains("EXT_image_dma_buf_import"); - m_sExts.EXT_image_dma_buf_import_modifiers = EGLEXTENSIONS.contains("EXT_image_dma_buf_import_modifiers"); + m_exts.IMG_context_priority = EGLEXTENSIONS.contains("IMG_context_priority"); + m_exts.EXT_create_context_robustness = EGLEXTENSIONS.contains("EXT_create_context_robustness"); + m_exts.EXT_image_dma_buf_import = EGLEXTENSIONS.contains("EXT_image_dma_buf_import"); + m_exts.EXT_image_dma_buf_import_modifiers = EGLEXTENSIONS.contains("EXT_image_dma_buf_import_modifiers"); - if (m_sExts.IMG_context_priority) { + if (m_exts.IMG_context_priority) { Debug::log(LOG, "EGL: IMG_context_priority supported, requesting high"); attrs.push_back(EGL_CONTEXT_PRIORITY_LEVEL_IMG); attrs.push_back(EGL_CONTEXT_PRIORITY_HIGH_IMG); } - if (m_sExts.EXT_create_context_robustness) { + if (m_exts.EXT_create_context_robustness) { Debug::log(LOG, "EGL: EXT_create_context_robustness supported, requesting lose on reset"); attrs.push_back(EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT); attrs.push_back(EGL_LOSE_CONTEXT_ON_RESET_EXT); @@ -175,8 +175,8 @@ void CHyprOpenGLImpl::initEGL(bool gbm) { attrs.push_back(EGL_NONE); - m_pEglContext = eglCreateContext(m_pEglDisplay, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attrs.data()); - if (m_pEglContext == EGL_NO_CONTEXT) { + m_eglContext = eglCreateContext(m_eglDisplay, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attrs.data()); + if (m_eglContext == EGL_NO_CONTEXT) { #ifdef GLES2 RASSERT(false, "EGL: failed to create a context with GLES2.0"); #endif @@ -189,23 +189,23 @@ void CHyprOpenGLImpl::initEGL(bool gbm) { attrs.push_back(0); attrs.push_back(EGL_NONE); - m_pEglContext = eglCreateContext(m_pEglDisplay, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attrs.data()); + m_eglContext = eglCreateContext(m_eglDisplay, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attrs.data()); m_eglContextVersion = EGL_CONTEXT_GLES_3_0; - if (m_pEglContext == EGL_NO_CONTEXT) + if (m_eglContext == EGL_NO_CONTEXT) RASSERT(false, "EGL: failed to create a context with either GLES3.2 or 3.0"); } - if (m_sExts.IMG_context_priority) { + if (m_exts.IMG_context_priority) { EGLint priority = EGL_CONTEXT_PRIORITY_MEDIUM_IMG; - eglQueryContext(m_pEglDisplay, m_pEglContext, EGL_CONTEXT_PRIORITY_LEVEL_IMG, &priority); + eglQueryContext(m_eglDisplay, m_eglContext, EGL_CONTEXT_PRIORITY_LEVEL_IMG, &priority); if (priority != EGL_CONTEXT_PRIORITY_HIGH_IMG) Debug::log(ERR, "EGL: Failed to obtain a high priority context"); else Debug::log(LOG, "EGL: Got a high priority context"); } - eglMakeCurrent(m_pEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, m_pEglContext); + eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, m_eglContext); } static bool drmDeviceHasName(const drmDevice* device, const std::string& name) { @@ -221,7 +221,7 @@ static bool drmDeviceHasName(const drmDevice* device, const std::string& name) { EGLDeviceEXT CHyprOpenGLImpl::eglDeviceFromDRMFD(int drmFD) { EGLint nDevices = 0; - if (!m_sProc.eglQueryDevicesEXT(0, nullptr, &nDevices)) { + if (!m_proc.eglQueryDevicesEXT(0, nullptr, &nDevices)) { Debug::log(ERR, "eglDeviceFromDRMFD: eglQueryDevicesEXT failed"); return EGL_NO_DEVICE_EXT; } @@ -234,7 +234,7 @@ EGLDeviceEXT CHyprOpenGLImpl::eglDeviceFromDRMFD(int drmFD) { std::vector devices; devices.resize(nDevices); - if (!m_sProc.eglQueryDevicesEXT(nDevices, devices.data(), &nDevices)) { + if (!m_proc.eglQueryDevicesEXT(nDevices, devices.data(), &nDevices)) { Debug::log(ERR, "eglDeviceFromDRMFD: eglQueryDevicesEXT failed (2)"); return EGL_NO_DEVICE_EXT; } @@ -246,7 +246,7 @@ EGLDeviceEXT CHyprOpenGLImpl::eglDeviceFromDRMFD(int drmFD) { } for (auto const& d : devices) { - auto devName = m_sProc.eglQueryDeviceStringEXT(d, EGL_DRM_DEVICE_FILE_EXT); + auto devName = m_proc.eglQueryDeviceStringEXT(d, EGL_DRM_DEVICE_FILE_EXT); if (!devName) continue; @@ -262,53 +262,53 @@ EGLDeviceEXT CHyprOpenGLImpl::eglDeviceFromDRMFD(int drmFD) { return EGL_NO_DEVICE_EXT; } -CHyprOpenGLImpl::CHyprOpenGLImpl() : m_iDRMFD(g_pCompositor->m_drmFD) { +CHyprOpenGLImpl::CHyprOpenGLImpl() : m_drmFD(g_pCompositor->m_drmFD) { const std::string EGLEXTENSIONS = (const char*)eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); Debug::log(LOG, "Supported EGL extensions: ({}) {}", std::count(EGLEXTENSIONS.begin(), EGLEXTENSIONS.end(), ' '), EGLEXTENSIONS); - m_sExts.KHR_display_reference = EGLEXTENSIONS.contains("KHR_display_reference"); + m_exts.KHR_display_reference = EGLEXTENSIONS.contains("KHR_display_reference"); - loadGLProc(&m_sProc.glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES"); - loadGLProc(&m_sProc.eglCreateImageKHR, "eglCreateImageKHR"); - loadGLProc(&m_sProc.eglDestroyImageKHR, "eglDestroyImageKHR"); - loadGLProc(&m_sProc.eglQueryDmaBufFormatsEXT, "eglQueryDmaBufFormatsEXT"); - loadGLProc(&m_sProc.eglQueryDmaBufModifiersEXT, "eglQueryDmaBufModifiersEXT"); - loadGLProc(&m_sProc.glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES"); - loadGLProc(&m_sProc.eglDebugMessageControlKHR, "eglDebugMessageControlKHR"); - loadGLProc(&m_sProc.eglGetPlatformDisplayEXT, "eglGetPlatformDisplayEXT"); - loadGLProc(&m_sProc.eglCreateSyncKHR, "eglCreateSyncKHR"); - loadGLProc(&m_sProc.eglDestroySyncKHR, "eglDestroySyncKHR"); - loadGLProc(&m_sProc.eglDupNativeFenceFDANDROID, "eglDupNativeFenceFDANDROID"); - loadGLProc(&m_sProc.eglWaitSyncKHR, "eglWaitSyncKHR"); + loadGLProc(&m_proc.glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES"); + loadGLProc(&m_proc.eglCreateImageKHR, "eglCreateImageKHR"); + loadGLProc(&m_proc.eglDestroyImageKHR, "eglDestroyImageKHR"); + loadGLProc(&m_proc.eglQueryDmaBufFormatsEXT, "eglQueryDmaBufFormatsEXT"); + loadGLProc(&m_proc.eglQueryDmaBufModifiersEXT, "eglQueryDmaBufModifiersEXT"); + loadGLProc(&m_proc.glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES"); + loadGLProc(&m_proc.eglDebugMessageControlKHR, "eglDebugMessageControlKHR"); + loadGLProc(&m_proc.eglGetPlatformDisplayEXT, "eglGetPlatformDisplayEXT"); + loadGLProc(&m_proc.eglCreateSyncKHR, "eglCreateSyncKHR"); + loadGLProc(&m_proc.eglDestroySyncKHR, "eglDestroySyncKHR"); + loadGLProc(&m_proc.eglDupNativeFenceFDANDROID, "eglDupNativeFenceFDANDROID"); + loadGLProc(&m_proc.eglWaitSyncKHR, "eglWaitSyncKHR"); - RASSERT(m_sProc.eglCreateSyncKHR, "Display driver doesn't support eglCreateSyncKHR"); - RASSERT(m_sProc.eglDupNativeFenceFDANDROID, "Display driver doesn't support eglDupNativeFenceFDANDROID"); - RASSERT(m_sProc.eglWaitSyncKHR, "Display driver doesn't support eglWaitSyncKHR"); + RASSERT(m_proc.eglCreateSyncKHR, "Display driver doesn't support eglCreateSyncKHR"); + RASSERT(m_proc.eglDupNativeFenceFDANDROID, "Display driver doesn't support eglDupNativeFenceFDANDROID"); + RASSERT(m_proc.eglWaitSyncKHR, "Display driver doesn't support eglWaitSyncKHR"); if (EGLEXTENSIONS.contains("EGL_EXT_device_base") || EGLEXTENSIONS.contains("EGL_EXT_device_enumeration")) - loadGLProc(&m_sProc.eglQueryDevicesEXT, "eglQueryDevicesEXT"); + loadGLProc(&m_proc.eglQueryDevicesEXT, "eglQueryDevicesEXT"); if (EGLEXTENSIONS.contains("EGL_EXT_device_base") || EGLEXTENSIONS.contains("EGL_EXT_device_query")) { - loadGLProc(&m_sProc.eglQueryDeviceStringEXT, "eglQueryDeviceStringEXT"); - loadGLProc(&m_sProc.eglQueryDisplayAttribEXT, "eglQueryDisplayAttribEXT"); + loadGLProc(&m_proc.eglQueryDeviceStringEXT, "eglQueryDeviceStringEXT"); + loadGLProc(&m_proc.eglQueryDisplayAttribEXT, "eglQueryDisplayAttribEXT"); } if (EGLEXTENSIONS.contains("EGL_KHR_debug")) { - loadGLProc(&m_sProc.eglDebugMessageControlKHR, "eglDebugMessageControlKHR"); + loadGLProc(&m_proc.eglDebugMessageControlKHR, "eglDebugMessageControlKHR"); static const EGLAttrib debugAttrs[] = { EGL_DEBUG_MSG_CRITICAL_KHR, EGL_TRUE, EGL_DEBUG_MSG_ERROR_KHR, EGL_TRUE, EGL_DEBUG_MSG_WARN_KHR, EGL_TRUE, EGL_DEBUG_MSG_INFO_KHR, EGL_TRUE, EGL_NONE, }; - m_sProc.eglDebugMessageControlKHR(::eglLog, debugAttrs); + m_proc.eglDebugMessageControlKHR(::eglLog, debugAttrs); } RASSERT(eglBindAPI(EGL_OPENGL_ES_API) != EGL_FALSE, "Couldn't bind to EGL's opengl ES API. This means your gpu driver f'd up. This is not a hyprland issue."); bool success = false; - if (EGLEXTENSIONS.contains("EXT_platform_device") || !m_sProc.eglQueryDevicesEXT || !m_sProc.eglQueryDeviceStringEXT) { - m_pEglDevice = eglDeviceFromDRMFD(m_iDRMFD); + if (EGLEXTENSIONS.contains("EXT_platform_device") || !m_proc.eglQueryDevicesEXT || !m_proc.eglQueryDeviceStringEXT) { + m_eglDevice = eglDeviceFromDRMFD(m_drmFD); - if (m_pEglDevice != EGL_NO_DEVICE_EXT) { + if (m_eglDevice != EGL_NO_DEVICE_EXT) { success = true; initEGL(false); } @@ -317,13 +317,13 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() : m_iDRMFD(g_pCompositor->m_drmFD) { if (!success) { Debug::log(WARN, "EGL: EXT_platform_device or EGL_EXT_device_query not supported, using gbm"); if (EGLEXTENSIONS.contains("KHR_platform_gbm")) { - success = true; - m_iGBMFD = CFileDescriptor{openRenderNode(m_iDRMFD)}; - if (!m_iGBMFD.isValid()) + success = true; + m_gbmFD = CFileDescriptor{openRenderNode(m_drmFD)}; + if (!m_gbmFD.isValid()) RASSERT(false, "Couldn't open a gbm fd"); - m_pGbmDevice = gbm_create_device(m_iGBMFD.get()); - if (!m_pGbmDevice) + m_gbmDevice = gbm_create_device(m_gbmFD.get()); + if (!m_gbmDevice) RASSERT(false, "Couldn't open a gbm device"); initEGL(true); @@ -335,21 +335,21 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() : m_iDRMFD(g_pCompositor->m_drmFD) { auto* const EXTENSIONS = (const char*)glGetString(GL_EXTENSIONS); RASSERT(EXTENSIONS, "Couldn't retrieve openGL extensions!"); - m_szExtensions = EXTENSIONS; + m_extensions = EXTENSIONS; Debug::log(LOG, "Creating the Hypr OpenGL Renderer!"); Debug::log(LOG, "Using: {}", (char*)glGetString(GL_VERSION)); Debug::log(LOG, "Vendor: {}", (char*)glGetString(GL_VENDOR)); Debug::log(LOG, "Renderer: {}", (char*)glGetString(GL_RENDERER)); - Debug::log(LOG, "Supported extensions: ({}) {}", std::count(m_szExtensions.begin(), m_szExtensions.end(), ' '), m_szExtensions); + Debug::log(LOG, "Supported extensions: ({}) {}", std::count(m_extensions.begin(), m_extensions.end(), ' '), m_extensions); - m_sExts.EXT_read_format_bgra = m_szExtensions.contains("GL_EXT_read_format_bgra"); + m_exts.EXT_read_format_bgra = m_extensions.contains("GL_EXT_read_format_bgra"); - RASSERT(m_szExtensions.contains("GL_EXT_texture_format_BGRA8888"), "GL_EXT_texture_format_BGRA8888 support by the GPU driver is required"); + RASSERT(m_extensions.contains("GL_EXT_texture_format_BGRA8888"), "GL_EXT_texture_format_BGRA8888 support by the GPU driver is required"); - if (!m_sExts.EXT_read_format_bgra) + if (!m_exts.EXT_read_format_bgra) Debug::log(WARN, "Your GPU does not support GL_EXT_read_format_bgra, this may cause issues with texture importing"); - if (!m_sExts.EXT_image_dma_buf_import || !m_sExts.EXT_image_dma_buf_import_modifiers) + if (!m_exts.EXT_image_dma_buf_import || !m_exts.EXT_image_dma_buf_import_modifiers) Debug::log(WARN, "Your GPU does not support DMABUFs, this will possibly cause issues and will take a hit on the performance."); #ifdef USE_TRACY_GPU @@ -372,32 +372,32 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() : m_iDRMFD(g_pCompositor->m_drmFD) { static auto P = g_pHookSystem->hookDynamic("preRender", [&](void* self, SCallbackInfo& info, std::any data) { preRender(std::any_cast(data)); }); - RASSERT(eglMakeCurrent(m_pEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT), "Couldn't unset current EGL!"); + RASSERT(eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT), "Couldn't unset current EGL!"); - m_tGlobalTimer.reset(); + m_globalTimer.reset(); } CHyprOpenGLImpl::~CHyprOpenGLImpl() { - if (m_pEglDisplay && m_pEglContext != EGL_NO_CONTEXT) - eglDestroyContext(m_pEglDisplay, m_pEglContext); + if (m_eglDisplay && m_eglContext != EGL_NO_CONTEXT) + eglDestroyContext(m_eglDisplay, m_eglContext); - if (m_pEglDisplay) - eglTerminate(m_pEglDisplay); + if (m_eglDisplay) + eglTerminate(m_eglDisplay); eglReleaseThread(); - if (m_pGbmDevice) - gbm_device_destroy(m_pGbmDevice); + if (m_gbmDevice) + gbm_device_destroy(m_gbmDevice); } std::optional> CHyprOpenGLImpl::getModsForFormat(EGLint format) { // TODO: return std::expected when clang supports it - if (!m_sExts.EXT_image_dma_buf_import_modifiers) + if (!m_exts.EXT_image_dma_buf_import_modifiers) return std::nullopt; EGLint len = 0; - if (!m_sProc.eglQueryDmaBufModifiersEXT(m_pEglDisplay, format, 0, nullptr, nullptr, &len)) { + if (!m_proc.eglQueryDmaBufModifiersEXT(m_eglDisplay, format, 0, nullptr, nullptr, &len)) { Debug::log(ERR, "EGL: Failed to query mods"); return std::nullopt; } @@ -411,7 +411,7 @@ std::optional> CHyprOpenGLImpl::getModsForFormat(EGLint fo mods.resize(len); external.resize(len); - m_sProc.eglQueryDmaBufModifiersEXT(m_pEglDisplay, format, len, mods.data(), external.data(), &len); + m_proc.eglQueryDmaBufModifiersEXT(m_eglDisplay, format, len, mods.data(), external.data(), &len); std::vector result; // reserve number of elements to avoid reallocations @@ -440,22 +440,22 @@ void CHyprOpenGLImpl::initDRMFormats() { if (DISABLE_MODS) Debug::log(WARN, "HYPRLAND_EGL_NO_MODIFIERS set, disabling modifiers"); - if (!m_sExts.EXT_image_dma_buf_import) { + if (!m_exts.EXT_image_dma_buf_import) { Debug::log(ERR, "EGL: No dmabuf import, DMABufs will not work."); return; } std::vector formats; - if (!m_sExts.EXT_image_dma_buf_import_modifiers || !m_sProc.eglQueryDmaBufFormatsEXT) { + if (!m_exts.EXT_image_dma_buf_import_modifiers || !m_proc.eglQueryDmaBufFormatsEXT) { formats.push_back(DRM_FORMAT_ARGB8888); formats.push_back(DRM_FORMAT_XRGB8888); Debug::log(WARN, "EGL: No mod support"); } else { EGLint len = 0; - m_sProc.eglQueryDmaBufFormatsEXT(m_pEglDisplay, 0, nullptr, &len); + m_proc.eglQueryDmaBufFormatsEXT(m_eglDisplay, 0, nullptr, &len); formats.resize(len); - m_sProc.eglQueryDmaBufFormatsEXT(m_pEglDisplay, len, formats.data(), &len); + m_proc.eglQueryDmaBufFormatsEXT(m_eglDisplay, len, formats.data(), &len); } if (formats.size() == 0) { @@ -480,7 +480,7 @@ void CHyprOpenGLImpl::initDRMFormats() { } else mods = {DRM_FORMAT_MOD_LINEAR}; - m_bHasModifiers = m_bHasModifiers || mods.size() > 0; + m_hasModifiers = m_hasModifiers || mods.size() > 0; // EGL can always do implicit modifiers. mods.push_back(DRM_FORMAT_MOD_INVALID); @@ -524,7 +524,7 @@ void CHyprOpenGLImpl::initDRMFormats() { Debug::log(WARN, "EGL: WARNING: No dmabuf formats were found, dmabuf will be disabled. This will degrade performance, but is most likely a driver issue or a very old GPU."); - drmFormats = dmaFormats; + m_drmFormats = dmaFormats; } EGLImageKHR CHyprOpenGLImpl::createEGLImage(const Aquamarine::SDMABUFAttrs& attrs) { @@ -556,7 +556,7 @@ EGLImageKHR CHyprOpenGLImpl::createEGLImage(const Aquamarine::SDMABUFAttrs& attr attribs.push_back(attrs.offsets[i]); attribs.push_back(attrNames[i].pitch); attribs.push_back(attrs.strides[i]); - if (m_bHasModifiers && attrs.modifier != DRM_FORMAT_MOD_INVALID) { + if (m_hasModifiers && attrs.modifier != DRM_FORMAT_MOD_INVALID) { attribs.push_back(attrNames[i].modlo); attribs.push_back(attrs.modifier & 0xFFFFFFFF); attribs.push_back(attrNames[i].modhi); @@ -569,7 +569,7 @@ EGLImageKHR CHyprOpenGLImpl::createEGLImage(const Aquamarine::SDMABUFAttrs& attr attribs.push_back(EGL_NONE); - EGLImageKHR image = m_sProc.eglCreateImageKHR(m_pEglDisplay, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, (int*)attribs.data()); + EGLImageKHR image = m_proc.eglCreateImageKHR(m_eglDisplay, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, (int*)attribs.data()); if (image == EGL_NO_IMAGE_KHR) { Debug::log(ERR, "EGL: EGLCreateImageKHR failed: {}", eglGetError()); return EGL_NO_IMAGE_KHR; @@ -667,7 +667,7 @@ GLuint CHyprOpenGLImpl::compileShader(const GLuint& type, std::string src, bool } void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP rb, CFramebuffer* fb) { - m_RenderData.pMonitor = pMonitor; + m_renderData.pMonitor = pMonitor; #ifndef GLES2 const GLenum RESETSTATUS = glGetGraphicsResetStatus(); @@ -690,36 +690,36 @@ void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP glViewport(0, 0, pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y); - m_RenderData.projection = Mat3x3::outputProjection(pMonitor->m_pixelSize, HYPRUTILS_TRANSFORM_NORMAL); + m_renderData.projection = Mat3x3::outputProjection(pMonitor->m_pixelSize, HYPRUTILS_TRANSFORM_NORMAL); - m_RenderData.monitorProjection = Mat3x3::identity(); + m_renderData.monitorProjection = Mat3x3::identity(); if (pMonitor->m_transform != WL_OUTPUT_TRANSFORM_NORMAL) { - const Vector2D tfmd = pMonitor->m_transform % 2 == 1 ? Vector2D{FBO->m_vSize.y, FBO->m_vSize.x} : FBO->m_vSize; - m_RenderData.monitorProjection.translate(FBO->m_vSize / 2.0).transform(wlTransformToHyprutils(pMonitor->m_transform)).translate(-tfmd / 2.0); + const Vector2D tfmd = pMonitor->m_transform % 2 == 1 ? Vector2D{FBO->m_size.y, FBO->m_size.x} : FBO->m_size; + m_renderData.monitorProjection.translate(FBO->m_size / 2.0).transform(wlTransformToHyprutils(pMonitor->m_transform)).translate(-tfmd / 2.0); } - m_RenderData.pCurrentMonData = &m_mMonitorRenderResources[pMonitor]; + m_renderData.pCurrentMonData = &m_monitorRenderResources[pMonitor]; - if (!m_bShadersInitialized) + if (!m_shadersInitialized) initShaders(); - m_RenderData.damage.set(damage); - m_RenderData.finalDamage.set(damage); + m_renderData.damage.set(damage); + m_renderData.finalDamage.set(damage); - m_bFakeFrame = true; + m_fakeFrame = true; - m_RenderData.currentFB = FBO; + m_renderData.currentFB = FBO; FBO->bind(); - m_bOffloadedFramebuffer = false; + m_offloadedFramebuffer = false; - m_RenderData.mainFB = m_RenderData.currentFB; - m_RenderData.outFB = FBO; + m_renderData.mainFB = m_renderData.currentFB; + m_renderData.outFB = FBO; - m_RenderData.simplePass = true; + m_renderData.simplePass = true; } void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFramebuffer* fb, std::optional finalDamage) { - m_RenderData.pMonitor = pMonitor; + m_renderData.pMonitor = pMonitor; #ifndef GLES2 const GLenum RESETSTATUS = glGetGraphicsResetStatus(); @@ -740,51 +740,51 @@ void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFrameb glViewport(0, 0, pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y); - m_RenderData.projection = Mat3x3::outputProjection(pMonitor->m_pixelSize, HYPRUTILS_TRANSFORM_NORMAL); + m_renderData.projection = Mat3x3::outputProjection(pMonitor->m_pixelSize, HYPRUTILS_TRANSFORM_NORMAL); - m_RenderData.monitorProjection = pMonitor->m_projMatrix; + m_renderData.monitorProjection = pMonitor->m_projMatrix; - if (m_mMonitorRenderResources.contains(pMonitor) && m_mMonitorRenderResources.at(pMonitor).offloadFB.m_vSize != pMonitor->m_pixelSize) + if (m_monitorRenderResources.contains(pMonitor) && m_monitorRenderResources.at(pMonitor).offloadFB.m_size != pMonitor->m_pixelSize) destroyMonitorResources(pMonitor); - m_RenderData.pCurrentMonData = &m_mMonitorRenderResources[pMonitor]; + m_renderData.pCurrentMonData = &m_monitorRenderResources[pMonitor]; - if (!m_bShadersInitialized) + if (!m_shadersInitialized) initShaders(); // ensure a framebuffer for the monitor exists - if (m_RenderData.pCurrentMonData->offloadFB.m_vSize != pMonitor->m_pixelSize) { - m_RenderData.pCurrentMonData->stencilTex->allocate(); + if (m_renderData.pCurrentMonData->offloadFB.m_size != pMonitor->m_pixelSize) { + m_renderData.pCurrentMonData->stencilTex->allocate(); - m_RenderData.pCurrentMonData->offloadFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->mirrorFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->mirrorSwapFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); + m_renderData.pCurrentMonData->offloadFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); + m_renderData.pCurrentMonData->mirrorFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); + m_renderData.pCurrentMonData->mirrorSwapFB.alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->offloadFB.addStencil(m_RenderData.pCurrentMonData->stencilTex); - m_RenderData.pCurrentMonData->mirrorFB.addStencil(m_RenderData.pCurrentMonData->stencilTex); - m_RenderData.pCurrentMonData->mirrorSwapFB.addStencil(m_RenderData.pCurrentMonData->stencilTex); + m_renderData.pCurrentMonData->offloadFB.addStencil(m_renderData.pCurrentMonData->stencilTex); + m_renderData.pCurrentMonData->mirrorFB.addStencil(m_renderData.pCurrentMonData->stencilTex); + m_renderData.pCurrentMonData->mirrorSwapFB.addStencil(m_renderData.pCurrentMonData->stencilTex); } - if (m_RenderData.pCurrentMonData->monitorMirrorFB.isAllocated() && m_RenderData.pMonitor->m_mirrors.empty()) - m_RenderData.pCurrentMonData->monitorMirrorFB.release(); + if (m_renderData.pCurrentMonData->monitorMirrorFB.isAllocated() && m_renderData.pMonitor->m_mirrors.empty()) + m_renderData.pCurrentMonData->monitorMirrorFB.release(); - m_RenderData.damage.set(damage_); - m_RenderData.finalDamage.set(finalDamage.value_or(damage_)); + m_renderData.damage.set(damage_); + m_renderData.finalDamage.set(finalDamage.value_or(damage_)); - m_bFakeFrame = fb; + m_fakeFrame = fb; - if (m_bReloadScreenShader) { - m_bReloadScreenShader = false; - static auto PSHADER = CConfigValue("decoration:screen_shader"); + if (m_reloadScreenShader) { + m_reloadScreenShader = false; + static auto PSHADER = CConfigValue("decoration:screen_shader"); applyScreenShader(*PSHADER); } - m_RenderData.pCurrentMonData->offloadFB.bind(); - m_RenderData.currentFB = &m_RenderData.pCurrentMonData->offloadFB; - m_bOffloadedFramebuffer = true; + m_renderData.pCurrentMonData->offloadFB.bind(); + m_renderData.currentFB = &m_renderData.pCurrentMonData->offloadFB; + m_offloadedFramebuffer = true; - m_RenderData.mainFB = m_RenderData.currentFB; - m_RenderData.outFB = fb ? fb : g_pHyprRenderer->getCurrentRBO()->getFB(); + m_renderData.mainFB = m_renderData.currentFB; + m_renderData.outFB = fb ? fb : g_pHyprRenderer->getCurrentRBO()->getFB(); } void CHyprOpenGLImpl::end() { @@ -793,67 +793,67 @@ void CHyprOpenGLImpl::end() { TRACY_GPU_ZONE("RenderEnd"); // end the render, copy the data to the main framebuffer - if (m_bOffloadedFramebuffer) { - m_RenderData.damage = m_RenderData.finalDamage; - m_bEndFrame = true; + if (m_offloadedFramebuffer) { + m_renderData.damage = m_renderData.finalDamage; + m_endFrame = true; - CBox monbox = {0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; + CBox monbox = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; - if (m_RenderData.mouseZoomFactor != 1.f) { - const auto ZOOMCENTER = m_RenderData.mouseZoomUseMouse ? - (g_pInputManager->getMouseCoordsInternal() - m_RenderData.pMonitor->m_position) * m_RenderData.pMonitor->m_scale : - m_RenderData.pMonitor->m_transformedSize / 2.f; + if (m_renderData.mouseZoomFactor != 1.f) { + const auto ZOOMCENTER = m_renderData.mouseZoomUseMouse ? + (g_pInputManager->getMouseCoordsInternal() - m_renderData.pMonitor->m_position) * m_renderData.pMonitor->m_scale : + m_renderData.pMonitor->m_transformedSize / 2.f; - monbox.translate(-ZOOMCENTER).scale(m_RenderData.mouseZoomFactor).translate(*PZOOMRIGID ? m_RenderData.pMonitor->m_transformedSize / 2.0 : ZOOMCENTER); + monbox.translate(-ZOOMCENTER).scale(m_renderData.mouseZoomFactor).translate(*PZOOMRIGID ? m_renderData.pMonitor->m_transformedSize / 2.0 : ZOOMCENTER); if (monbox.x > 0) monbox.x = 0; if (monbox.y > 0) monbox.y = 0; - if (monbox.x + monbox.width < m_RenderData.pMonitor->m_transformedSize.x) - monbox.x = m_RenderData.pMonitor->m_transformedSize.x - monbox.width; - if (monbox.y + monbox.height < m_RenderData.pMonitor->m_transformedSize.y) - monbox.y = m_RenderData.pMonitor->m_transformedSize.y - monbox.height; + if (monbox.x + monbox.width < m_renderData.pMonitor->m_transformedSize.x) + monbox.x = m_renderData.pMonitor->m_transformedSize.x - monbox.width; + if (monbox.y + monbox.height < m_renderData.pMonitor->m_transformedSize.y) + monbox.y = m_renderData.pMonitor->m_transformedSize.y - monbox.height; } - m_bApplyFinalShader = !m_RenderData.blockScreenShader; - if (m_RenderData.mouseZoomUseMouse) - m_RenderData.useNearestNeighbor = true; + m_applyFinalShader = !m_renderData.blockScreenShader; + if (m_renderData.mouseZoomUseMouse) + m_renderData.useNearestNeighbor = true; // copy the damaged areas into the mirror buffer // we can't use the offloadFB for mirroring, as it contains artifacts from blurring - if (!m_RenderData.pMonitor->m_mirrors.empty() && !m_bFakeFrame) + if (!m_renderData.pMonitor->m_mirrors.empty() && !m_fakeFrame) saveBufferForMirror(monbox); - m_RenderData.outFB->bind(); + m_renderData.outFB->bind(); blend(false); - if (m_sFinalScreenShader.program < 1 && !g_pHyprRenderer->m_bCrashingInProgress) - renderTexturePrimitive(m_RenderData.pCurrentMonData->offloadFB.getTexture(), monbox); + if (m_finalScreenShader.program < 1 && !g_pHyprRenderer->m_crashingInProgress) + renderTexturePrimitive(m_renderData.pCurrentMonData->offloadFB.getTexture(), monbox); else - renderTexture(m_RenderData.pCurrentMonData->offloadFB.getTexture(), monbox, 1.f); + renderTexture(m_renderData.pCurrentMonData->offloadFB.getTexture(), monbox, 1.f); blend(true); - m_RenderData.useNearestNeighbor = false; - m_bApplyFinalShader = false; - m_bEndFrame = false; + m_renderData.useNearestNeighbor = false; + m_applyFinalShader = false; + m_endFrame = false; } // reset our data - m_RenderData.pMonitor.reset(); - m_RenderData.mouseZoomFactor = 1.f; - m_RenderData.mouseZoomUseMouse = true; - m_RenderData.blockScreenShader = false; - m_RenderData.currentFB = nullptr; - m_RenderData.mainFB = nullptr; - m_RenderData.outFB = nullptr; + m_renderData.pMonitor.reset(); + m_renderData.mouseZoomFactor = 1.f; + m_renderData.mouseZoomUseMouse = true; + m_renderData.blockScreenShader = false; + m_renderData.currentFB = nullptr; + m_renderData.mainFB = nullptr; + m_renderData.outFB = nullptr; // if we dropped to offMain, release it now. // if there is a plugin constantly using it, this might be a bit slow, // but I havent seen a single plugin yet use these, so it's better to drop a bit of vram. - if (m_RenderData.pCurrentMonData->offMainFB.isAllocated()) - m_RenderData.pCurrentMonData->offMainFB.release(); + if (m_renderData.pCurrentMonData->offMainFB.isAllocated()) + m_renderData.pCurrentMonData->offMainFB.release(); // check for gl errors const GLenum ERR = glGetError(); @@ -867,8 +867,8 @@ void CHyprOpenGLImpl::end() { } void CHyprOpenGLImpl::setDamage(const CRegion& damage_, std::optional finalDamage) { - m_RenderData.damage.set(damage_); - m_RenderData.finalDamage.set(finalDamage.value_or(damage_)); + m_renderData.damage.set(damage_); + m_renderData.finalDamage.set(finalDamage.value_or(damage_)); } // TODO notify user if bundled shader is newer than ~/.config override @@ -931,7 +931,7 @@ static void getRoundingShaderUniforms(CShader& shader) { bool CHyprOpenGLImpl::initShaders() { auto shaders = makeShared(); - const bool isDynamic = m_bShadersInitialized; + const bool isDynamic = m_shadersInitialized; static const auto PCM = CConfigValue("render:cm_enabled"); try { @@ -948,16 +948,16 @@ bool CHyprOpenGLImpl::initShaders() { m_bCMSupported = false; #else if (!*PCM) - m_bCMSupported = false; + m_cmSupported = false; else { const auto TEXFRAGSRCCM = processShader("CM.frag", includes); prog = createProgram(shaders->TEXVERTSRC300, TEXFRAGSRCCM, true, true); - if (m_bShadersInitialized && m_bCMSupported && prog == 0) + if (m_shadersInitialized && m_cmSupported && prog == 0) g_pHyprNotificationOverlay->addNotification("CM shader reload failed, falling back to rgba/rgbx", CHyprColor{}, 15000, ICON_WARNING); - m_bCMSupported = prog > 0; - if (m_bCMSupported) { + m_cmSupported = prog > 0; + if (m_cmSupported) { shaders->m_shCM.program = prog; getCMShaderUniforms(shaders->m_shCM); getRoundingShaderUniforms(shaders->m_shCM); @@ -982,10 +982,10 @@ bool CHyprOpenGLImpl::initShaders() { } #endif - const auto FRAGSHADOW = processShader(m_bCMSupported ? "shadow.frag" : "shadow_legacy.frag", includes); - const auto FRAGBORDER1 = processShader(m_bCMSupported ? "border.frag" : "border_legacy.frag", includes); - const auto FRAGBLURPREPARE = processShader(m_bCMSupported ? "blurprepare.frag" : "blurprepare_legacy.frag", includes); - const auto FRAGBLURFINISH = processShader(m_bCMSupported ? "blurfinish.frag" : "blurfinish_legacy.frag", includes); + const auto FRAGSHADOW = processShader(m_cmSupported ? "shadow.frag" : "shadow_legacy.frag", includes); + const auto FRAGBORDER1 = processShader(m_cmSupported ? "border.frag" : "border_legacy.frag", includes); + const auto FRAGBLURPREPARE = processShader(m_cmSupported ? "blurprepare.frag" : "blurprepare_legacy.frag", includes); + const auto FRAGBLURFINISH = processShader(m_cmSupported ? "blurfinish.frag" : "blurfinish_legacy.frag", includes); const auto QUADFRAGSRC = processShader("quad.frag", includes); const auto TEXFRAGSRCRGBA = processShader("rgba.frag", includes); const auto TEXFRAGSRCRGBAPASSTHRU = processShader("passthru.frag", includes); @@ -1114,11 +1114,11 @@ bool CHyprOpenGLImpl::initShaders() { shaders->m_shBLUR2.radius = glGetUniformLocation(prog, "radius"); shaders->m_shBLUR2.halfpixel = glGetUniformLocation(prog, "halfpixel"); - prog = createProgram(m_bCMSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBLURPREPARE, isDynamic); + prog = createProgram(m_cmSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBLURPREPARE, isDynamic); if (!prog) return false; shaders->m_shBLURPREPARE.program = prog; - if (m_bCMSupported) + if (m_cmSupported) getCMShaderUniforms(shaders->m_shBLURPREPARE); shaders->m_shBLURPREPARE.tex = glGetUniformLocation(prog, "tex"); @@ -1128,7 +1128,7 @@ bool CHyprOpenGLImpl::initShaders() { shaders->m_shBLURPREPARE.contrast = glGetUniformLocation(prog, "contrast"); shaders->m_shBLURPREPARE.brightness = glGetUniformLocation(prog, "brightness"); - prog = createProgram(m_bCMSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBLURFINISH, isDynamic); + prog = createProgram(m_cmSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBLURFINISH, isDynamic); if (!prog) return false; shaders->m_shBLURFINISH.program = prog; @@ -1141,10 +1141,10 @@ bool CHyprOpenGLImpl::initShaders() { shaders->m_shBLURFINISH.brightness = glGetUniformLocation(prog, "brightness"); shaders->m_shBLURFINISH.noise = glGetUniformLocation(prog, "noise"); - prog = createProgram(m_bCMSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGSHADOW, isDynamic); + prog = createProgram(m_cmSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGSHADOW, isDynamic); if (!prog) return false; - if (m_bCMSupported) + if (m_cmSupported) shaders->m_shSHADOW.program = prog; getCMShaderUniforms(shaders->m_shSHADOW); getRoundingShaderUniforms(shaders->m_shSHADOW); @@ -1156,11 +1156,11 @@ bool CHyprOpenGLImpl::initShaders() { shaders->m_shSHADOW.shadowPower = glGetUniformLocation(prog, "shadowPower"); shaders->m_shSHADOW.color = glGetUniformLocation(prog, "color"); - prog = createProgram(m_bCMSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBORDER1, isDynamic); + prog = createProgram(m_cmSupported ? shaders->TEXVERTSRC300 : shaders->TEXVERTSRC, FRAGBORDER1, isDynamic); if (!prog) return false; shaders->m_shBORDER1.program = prog; - if (m_bCMSupported) + if (m_cmSupported) getCMShaderUniforms(shaders->m_shBORDER1); getRoundingShaderUniforms(shaders->m_shBORDER1); @@ -1180,15 +1180,15 @@ bool CHyprOpenGLImpl::initShaders() { shaders->m_shBORDER1.gradientLerp = glGetUniformLocation(prog, "gradientLerp"); shaders->m_shBORDER1.alpha = glGetUniformLocation(prog, "alpha"); } catch (const std::exception& e) { - if (!m_bShadersInitialized) + if (!m_shadersInitialized) throw e; Debug::log(ERR, "Shaders update failed: {}", e.what()); return false; } - m_shaders = shaders; - m_bShadersInitialized = true; + m_shaders = shaders; + m_shadersInitialized = true; Debug::log(LOG, "Shaders initialized successfully."); g_pHyprError->destroy(); @@ -1199,7 +1199,7 @@ void CHyprOpenGLImpl::applyScreenShader(const std::string& path) { static auto PDT = CConfigValue("debug:damage_tracking"); - m_sFinalScreenShader.destroy(); + m_finalScreenShader.destroy(); if (path == "" || path == STRVAL_EMPTY) return; @@ -1213,7 +1213,7 @@ void CHyprOpenGLImpl::applyScreenShader(const std::string& path) { std::string fragmentShader((std::istreambuf_iterator(infile)), (std::istreambuf_iterator())); - m_sFinalScreenShader.program = createProgram( // + m_finalScreenShader.program = createProgram( // fragmentShader.starts_with("#version 320 es") // do not break existing custom shaders ? m_shaders->TEXVERTSRC320 : @@ -1223,39 +1223,39 @@ void CHyprOpenGLImpl::applyScreenShader(const std::string& path) { m_shaders->TEXVERTSRC), fragmentShader, true); - if (!m_sFinalScreenShader.program) { + if (!m_finalScreenShader.program) { // Error will have been sent by now by the underlying cause return; } - m_sFinalScreenShader.proj = glGetUniformLocation(m_sFinalScreenShader.program, "proj"); - m_sFinalScreenShader.tex = glGetUniformLocation(m_sFinalScreenShader.program, "tex"); - m_sFinalScreenShader.time = glGetUniformLocation(m_sFinalScreenShader.program, "time"); - if (m_sFinalScreenShader.time != -1) - m_sFinalScreenShader.initialTime = m_tGlobalTimer.getSeconds(); - m_sFinalScreenShader.wl_output = glGetUniformLocation(m_sFinalScreenShader.program, "wl_output"); - m_sFinalScreenShader.fullSize = glGetUniformLocation(m_sFinalScreenShader.program, "screen_size"); - if (m_sFinalScreenShader.fullSize == -1) - m_sFinalScreenShader.fullSize = glGetUniformLocation(m_sFinalScreenShader.program, "screenSize"); - if (m_sFinalScreenShader.time != -1 && *PDT != 0 && !g_pHyprRenderer->m_bCrashingInProgress) { + m_finalScreenShader.proj = glGetUniformLocation(m_finalScreenShader.program, "proj"); + m_finalScreenShader.tex = glGetUniformLocation(m_finalScreenShader.program, "tex"); + m_finalScreenShader.time = glGetUniformLocation(m_finalScreenShader.program, "time"); + if (m_finalScreenShader.time != -1) + m_finalScreenShader.initialTime = m_globalTimer.getSeconds(); + m_finalScreenShader.wl_output = glGetUniformLocation(m_finalScreenShader.program, "wl_output"); + m_finalScreenShader.fullSize = glGetUniformLocation(m_finalScreenShader.program, "screen_size"); + if (m_finalScreenShader.fullSize == -1) + m_finalScreenShader.fullSize = glGetUniformLocation(m_finalScreenShader.program, "screenSize"); + if (m_finalScreenShader.time != -1 && *PDT != 0 && !g_pHyprRenderer->m_crashingInProgress) { // The screen shader uses the "time" uniform // Since the screen shader could change every frame, damage tracking *needs* to be disabled g_pConfigManager->addParseError("Screen shader: Screen shader uses uniform 'time', which requires debug:damage_tracking to be switched off.\n" "WARNING: Disabling damage tracking will *massively* increase GPU utilization!"); } - m_sFinalScreenShader.texAttrib = glGetAttribLocation(m_sFinalScreenShader.program, "texcoord"); - m_sFinalScreenShader.posAttrib = glGetAttribLocation(m_sFinalScreenShader.program, "pos"); + m_finalScreenShader.texAttrib = glGetAttribLocation(m_finalScreenShader.program, "texcoord"); + m_finalScreenShader.posAttrib = glGetAttribLocation(m_finalScreenShader.program, "pos"); } void CHyprOpenGLImpl::clear(const CHyprColor& color) { - RASSERT(m_RenderData.pMonitor, "Tried to render without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render without begin()!"); TRACY_GPU_ZONE("RenderClear"); glClearColor(color.r, color.g, color.b, color.a); - if (!m_RenderData.damage.empty()) { - for (auto const& RECT : m_RenderData.damage.getRects()) { + if (!m_renderData.damage.empty()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glClear(GL_COLOR_BUFFER_BIT); } @@ -1271,16 +1271,16 @@ void CHyprOpenGLImpl::blend(bool enabled) { } else glDisable(GL_BLEND); - m_bBlend = enabled; + m_blend = enabled; } void CHyprOpenGLImpl::scissor(const CBox& originalBox, bool transform) { - RASSERT(m_RenderData.pMonitor, "Tried to scissor without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to scissor without begin()!"); if (transform) { CBox box = originalBox; - const auto TR = wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)); - box.transform(TR, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y); + const auto TR = wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)); + box.transform(TR, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y); glScissor(box.x, box.y, box.width, box.height); glEnable(GL_SCISSOR_TEST); return; @@ -1291,7 +1291,7 @@ void CHyprOpenGLImpl::scissor(const CBox& originalBox, bool transform) { } void CHyprOpenGLImpl::scissor(const pixman_box32* pBox, bool transform) { - RASSERT(m_RenderData.pMonitor, "Tried to scissor without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to scissor without begin()!"); if (!pBox) { glDisable(GL_SCISSOR_TEST); @@ -1309,20 +1309,20 @@ void CHyprOpenGLImpl::scissor(const int x, const int y, const int w, const int h } void CHyprOpenGLImpl::renderRect(const CBox& box, const CHyprColor& col, int round, float roundingPower) { - if (!m_RenderData.damage.empty()) - renderRectWithDamage(box, col, m_RenderData.damage, round, roundingPower); + if (!m_renderData.damage.empty()) + renderRectWithDamage(box, col, m_renderData.damage, round, roundingPower); } void CHyprOpenGLImpl::renderRectWithBlur(const CBox& box, const CHyprColor& col, int round, float roundingPower, float blurA, bool xray) { - if (m_RenderData.damage.empty()) + if (m_renderData.damage.empty()) return; - CRegion damage{m_RenderData.damage}; + CRegion damage{m_renderData.damage}; damage.intersect(box); - CFramebuffer* POUTFB = xray ? &m_RenderData.pCurrentMonData->blurFB : blurMainFramebufferWithDamage(blurA, &damage); + CFramebuffer* POUTFB = xray ? &m_renderData.pCurrentMonData->blurFB : blurMainFramebufferWithDamage(blurA, &damage); - m_RenderData.currentFB->bind(); + m_renderData.currentFB->bind(); // make a stencil for rounded corners to work with blur scissor(nullptr); // allow the entire window and stencil to render @@ -1342,13 +1342,13 @@ void CHyprOpenGLImpl::renderRectWithBlur(const CBox& box, const CHyprColor& col, glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); scissor(box); - CBox MONITORBOX = {0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; - m_bEndFrame = true; // fix transformed - const auto SAVEDRENDERMODIF = m_RenderData.renderModif; - m_RenderData.renderModif = {}; // fix shit + CBox MONITORBOX = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; + m_endFrame = true; // fix transformed + const auto SAVEDRENDERMODIF = m_renderData.renderModif; + m_renderData.renderModif = {}; // fix shit renderTextureInternalWithDamage(POUTFB->getTexture(), MONITORBOX, blurA, damage, 0, 2.0f, false, false, false); - m_bEndFrame = false; - m_RenderData.renderModif = SAVEDRENDERMODIF; + m_endFrame = false; + m_renderData.renderModif = SAVEDRENDERMODIF; glClearStencil(0); glClear(GL_STENCIL_BUFFER_BIT); @@ -1357,21 +1357,21 @@ void CHyprOpenGLImpl::renderRectWithBlur(const CBox& box, const CHyprColor& col, glStencilFunc(GL_ALWAYS, 1, 0xFF); scissor(nullptr); - renderRectWithDamage(box, col, m_RenderData.damage, round, roundingPower); + renderRectWithDamage(box, col, m_renderData.damage, round, roundingPower); } void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& col, const CRegion& damage, int round, float roundingPower) { RASSERT((box.width > 0 && box.height > 0), "Tried to render rect with width/height < 0!"); - RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render rect without begin()!"); TRACY_GPU_ZONE("RenderRectWithDamage"); CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox( - newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)), newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox( + newBox, wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)), newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); glUseProgram(m_shaders->m_shQUAD.program); @@ -1386,8 +1386,8 @@ void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& co glUniform4f(m_shaders->m_shQUAD.color, col.r * col.a, col.g * col.a, col.b * col.a, col.a); CBox transformedBox = box; - transformedBox.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + transformedBox.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); const auto TOPLEFT = Vector2D(transformedBox.x, transformedBox.y); const auto FULLSIZE = Vector2D(transformedBox.width, transformedBox.height); @@ -1402,8 +1402,8 @@ void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& co glEnableVertexAttribArray(m_shaders->m_shQUAD.posAttrib); - if (m_RenderData.clipBox.width != 0 && m_RenderData.clipBox.height != 0) { - CRegion damageClip{m_RenderData.clipBox.x, m_RenderData.clipBox.y, m_RenderData.clipBox.width, m_RenderData.clipBox.height}; + if (m_renderData.clipBox.width != 0 && m_renderData.clipBox.height != 0) { + CRegion damageClip{m_renderData.clipBox.x, m_renderData.clipBox.y, m_renderData.clipBox.width, m_renderData.clipBox.height}; damageClip.intersect(damage); if (!damageClip.empty()) { @@ -1425,16 +1425,16 @@ void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& co } void CHyprOpenGLImpl::renderTexture(SP tex, const CBox& box, float alpha, int round, float roundingPower, bool discardActive, bool allowCustomUV) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture without begin()!"); - renderTextureInternalWithDamage(tex, box, alpha, m_RenderData.damage, round, roundingPower, discardActive, false, allowCustomUV, true); + renderTextureInternalWithDamage(tex, box, alpha, m_renderData.damage, round, roundingPower, discardActive, false, allowCustomUV, true); scissor(nullptr); } void CHyprOpenGLImpl::renderTextureWithDamage(SP tex, const CBox& box, const CRegion& damage, float alpha, int round, float roundingPower, bool discardActive, bool allowCustomUV) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture without begin()!"); renderTextureInternalWithDamage(tex, box, alpha, damage, round, roundingPower, discardActive, false, allowCustomUV, true); @@ -1466,12 +1466,12 @@ void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const NColorManageme glUniform1f(shader.dstMaxLuminance, targetImageDescription.luminances.max > 0 ? targetImageDescription.luminances.max : 10000); glUniform1f(shader.dstRefLuminance, targetImageDescription.luminances.reference); glUniform1f(shader.sdrSaturation, - modifySDR && m_RenderData.pMonitor->m_sdrSaturation > 0 && targetImageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? - m_RenderData.pMonitor->m_sdrSaturation : + modifySDR && m_renderData.pMonitor->m_sdrSaturation > 0 && targetImageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? + m_renderData.pMonitor->m_sdrSaturation : 1.0f); glUniform1f(shader.sdrBrightness, - modifySDR && m_RenderData.pMonitor->m_sdrBrightness > 0 && targetImageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? - m_RenderData.pMonitor->m_sdrBrightness : + modifySDR && m_renderData.pMonitor->m_sdrBrightness > 0 && targetImageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? + m_renderData.pMonitor->m_sdrBrightness : 1.0f); const auto cacheKey = std::make_pair(imageDescription.getId(), targetImageDescription.getId()); @@ -1488,13 +1488,13 @@ void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const NColorManageme } void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const SImageDescription& imageDescription) { - passCMUniforms(shader, imageDescription, m_RenderData.pMonitor->m_imageDescription, true); + passCMUniforms(shader, imageDescription, m_renderData.pMonitor->m_imageDescription, true); } void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CBox& box, float alpha, const CRegion& damage, int round, float roundingPower, bool discardActive, bool noAA, bool allowCustomUV, bool allowDim) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture without begin()!"); - RASSERT((tex->m_iTexID > 0), "Attempted to draw nullptr texture!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture without begin()!"); + RASSERT((tex->m_texID > 0), "Attempted to draw nullptr texture!"); TRACY_GPU_ZONE("RenderTextureInternalWithDamage"); @@ -1504,41 +1504,41 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB return; CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); static const auto PDT = CConfigValue("debug:damage_tracking"); static const auto PPASS = CConfigValue("render:cm_fs_passthrough"); static const auto PENABLECM = CConfigValue("render:cm_enabled"); // get the needed transform for this texture - const bool TRANSFORMS_MATCH = wlTransformToHyprutils(m_RenderData.pMonitor->m_transform) == tex->m_eTransform; // FIXME: combine them properly!!! + const bool TRANSFORMS_MATCH = wlTransformToHyprutils(m_renderData.pMonitor->m_transform) == tex->m_transform; // FIXME: combine them properly!!! eTransform TRANSFORM = HYPRUTILS_TRANSFORM_NORMAL; - if (m_bEndFrame || TRANSFORMS_MATCH) - TRANSFORM = wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)); + if (m_endFrame || TRANSFORMS_MATCH) + TRANSFORM = wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)); - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); CShader* shader = nullptr; bool usingFinalShader = false; - const bool CRASHING = m_bApplyFinalShader && g_pHyprRenderer->m_bCrashingInProgress; + const bool CRASHING = m_applyFinalShader && g_pHyprRenderer->m_crashingInProgress; - auto texType = tex->m_iType; + auto texType = tex->m_type; if (CRASHING) { shader = &m_shaders->m_shGLITCH; usingFinalShader = true; - } else if (m_bApplyFinalShader && m_sFinalScreenShader.program) { - shader = &m_sFinalScreenShader; + } else if (m_applyFinalShader && m_finalScreenShader.program) { + shader = &m_finalScreenShader; usingFinalShader = true; } else { - if (m_bApplyFinalShader) { + if (m_applyFinalShader) { shader = &m_shaders->m_shPASSTHRURGBA; usingFinalShader = true; } else { - switch (tex->m_iType) { + switch (tex->m_type) { case TEXTURE_RGBA: shader = &m_shaders->m_shRGBA; break; case TEXTURE_RGBX: shader = &m_shaders->m_shRGBX; break; @@ -1548,33 +1548,33 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB } } - if (m_RenderData.currentWindow && m_RenderData.currentWindow->m_windowData.RGBX.valueOrDefault()) { + if (m_renderData.currentWindow && m_renderData.currentWindow->m_windowData.RGBX.valueOrDefault()) { shader = &m_shaders->m_shRGBX; texType = TEXTURE_RGBX; } glActiveTexture(GL_TEXTURE0); - glBindTexture(tex->m_iTarget, tex->m_iTexID); + glBindTexture(tex->m_target, tex->m_texID); - glTexParameteri(tex->m_iTarget, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(tex->m_iTarget, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(tex->m_target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(tex->m_target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - if (m_RenderData.useNearestNeighbor) { - glTexParameteri(tex->m_iTarget, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(tex->m_iTarget, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + if (m_renderData.useNearestNeighbor) { + glTexParameteri(tex->m_target, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(tex->m_target, GL_TEXTURE_MIN_FILTER, GL_NEAREST); } else { - glTexParameteri(tex->m_iTarget, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(tex->m_iTarget, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(tex->m_target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(tex->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); } const auto imageDescription = - m_RenderData.surface.valid() && m_RenderData.surface->m_colorManagement.valid() ? m_RenderData.surface->m_colorManagement->imageDescription() : SImageDescription{}; + m_renderData.surface.valid() && m_renderData.surface->m_colorManagement.valid() ? m_renderData.surface->m_colorManagement->imageDescription() : SImageDescription{}; - const bool skipCM = !*PENABLECM || !m_bCMSupported /* CM unsupported or disabled */ - || (imageDescription == m_RenderData.pMonitor->m_imageDescription) /* Source and target have the same image description */ - || ((*PPASS == 1 || (*PPASS == 2 && imageDescription.transferFunction == CM_TRANSFER_FUNCTION_ST2084_PQ)) && m_RenderData.pMonitor->m_activeWorkspace && - m_RenderData.pMonitor->m_activeWorkspace->m_hasFullscreenWindow && - m_RenderData.pMonitor->m_activeWorkspace->m_fullscreenMode == FSMODE_FULLSCREEN) /* Fullscreen window with pass cm enabled */; + const bool skipCM = !*PENABLECM || !m_cmSupported /* CM unsupported or disabled */ + || (imageDescription == m_renderData.pMonitor->m_imageDescription) /* Source and target have the same image description */ + || ((*PPASS == 1 || (*PPASS == 2 && imageDescription.transferFunction == CM_TRANSFER_FUNCTION_ST2084_PQ)) && m_renderData.pMonitor->m_activeWorkspace && + m_renderData.pMonitor->m_activeWorkspace->m_hasFullscreenWindow && + m_renderData.pMonitor->m_activeWorkspace->m_fullscreenMode == FSMODE_FULLSCREEN) /* Fullscreen window with pass cm enabled */; if (!skipCM && !usingFinalShader && (texType == TEXTURE_RGBA || texType == TEXTURE_RGBX)) shader = &m_shaders->m_shCM; @@ -1595,29 +1595,29 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB glUniform1i(shader->tex, 0); if ((usingFinalShader && *PDT == 0) || CRASHING) { - glUniform1f(shader->time, m_tGlobalTimer.getSeconds() - shader->initialTime); + glUniform1f(shader->time, m_globalTimer.getSeconds() - shader->initialTime); } else if (usingFinalShader && shader->time != -1) { // Don't let time be unitialised glUniform1f(shader->time, 0.f); } if (usingFinalShader && shader->wl_output != -1) - glUniform1i(shader->wl_output, m_RenderData.pMonitor->m_id); + glUniform1i(shader->wl_output, m_renderData.pMonitor->m_id); if (usingFinalShader && shader->fullSize != -1) - glUniform2f(shader->fullSize, m_RenderData.pMonitor->m_pixelSize.x, m_RenderData.pMonitor->m_pixelSize.y); + glUniform2f(shader->fullSize, m_renderData.pMonitor->m_pixelSize.x, m_renderData.pMonitor->m_pixelSize.y); if (CRASHING) { - glUniform1f(shader->distort, g_pHyprRenderer->m_fCrashingDistort); - glUniform2f(shader->fullSize, m_RenderData.pMonitor->m_pixelSize.x, m_RenderData.pMonitor->m_pixelSize.y); + glUniform1f(shader->distort, g_pHyprRenderer->m_crashingDistort); + glUniform2f(shader->fullSize, m_renderData.pMonitor->m_pixelSize.x, m_renderData.pMonitor->m_pixelSize.y); } if (!usingFinalShader) { glUniform1f(shader->alpha, alpha); if (discardActive) { - glUniform1i(shader->discardOpaque, !!(m_RenderData.discardMode & DISCARD_OPAQUE)); - glUniform1i(shader->discardAlpha, !!(m_RenderData.discardMode & DISCARD_ALPHA)); - glUniform1f(shader->discardAlphaValue, m_RenderData.discardOpacity); + glUniform1i(shader->discardOpaque, !!(m_renderData.discardMode & DISCARD_OPAQUE)); + glUniform1i(shader->discardAlpha, !!(m_renderData.discardMode & DISCARD_ALPHA)); + glUniform1f(shader->discardAlphaValue, m_renderData.discardOpacity); } else { glUniform1i(shader->discardOpaque, 0); glUniform1i(shader->discardAlpha, 0); @@ -1625,8 +1625,8 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB } CBox transformedBox = newBox; - transformedBox.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + transformedBox.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); const auto TOPLEFT = Vector2D(transformedBox.x, transformedBox.y); const auto FULLSIZE = Vector2D(transformedBox.width, transformedBox.height); @@ -1638,14 +1638,14 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB glUniform1f(shader->radius, round); glUniform1f(shader->roundingPower, roundingPower); - if (allowDim && m_RenderData.currentWindow) { - if (m_RenderData.currentWindow->m_notRespondingTint->value() > 0) { - const auto DIM = m_RenderData.currentWindow->m_notRespondingTint->value(); + if (allowDim && m_renderData.currentWindow) { + if (m_renderData.currentWindow->m_notRespondingTint->value() > 0) { + const auto DIM = m_renderData.currentWindow->m_notRespondingTint->value(); glUniform1i(shader->applyTint, 1); glUniform3f(shader->tint, 1.f - DIM, 1.f - DIM, 1.f - DIM); - } else if (m_RenderData.currentWindow->m_dimPercent->value() > 0) { + } else if (m_renderData.currentWindow->m_dimPercent->value() > 0) { glUniform1i(shader->applyTint, 1); - const auto DIM = m_RenderData.currentWindow->m_dimPercent->value(); + const auto DIM = m_renderData.currentWindow->m_dimPercent->value(); glUniform3f(shader->tint, 1.f - DIM, 1.f - DIM, 1.f - DIM); } else glUniform1i(shader->applyTint, 0); @@ -1654,15 +1654,15 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB } const float verts[] = { - m_RenderData.primarySurfaceUVBottomRight.x, m_RenderData.primarySurfaceUVTopLeft.y, // top right - m_RenderData.primarySurfaceUVTopLeft.x, m_RenderData.primarySurfaceUVTopLeft.y, // top left - m_RenderData.primarySurfaceUVBottomRight.x, m_RenderData.primarySurfaceUVBottomRight.y, // bottom right - m_RenderData.primarySurfaceUVTopLeft.x, m_RenderData.primarySurfaceUVBottomRight.y, // bottom left + m_renderData.primarySurfaceUVBottomRight.x, m_renderData.primarySurfaceUVTopLeft.y, // top right + m_renderData.primarySurfaceUVTopLeft.x, m_renderData.primarySurfaceUVTopLeft.y, // top left + m_renderData.primarySurfaceUVBottomRight.x, m_renderData.primarySurfaceUVBottomRight.y, // bottom right + m_renderData.primarySurfaceUVTopLeft.x, m_renderData.primarySurfaceUVBottomRight.y, // bottom left }; glVertexAttribPointer(shader->posAttrib, 2, GL_FLOAT, GL_FALSE, 0, fullVerts); - if (allowCustomUV && m_RenderData.primarySurfaceUVTopLeft != Vector2D(-1, -1)) + if (allowCustomUV && m_renderData.primarySurfaceUVTopLeft != Vector2D(-1, -1)) glVertexAttribPointer(shader->texAttrib, 2, GL_FLOAT, GL_FALSE, 0, verts); else glVertexAttribPointer(shader->texAttrib, 2, GL_FLOAT, GL_FALSE, 0, fullVerts); @@ -1670,14 +1670,14 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB glEnableVertexAttribArray(shader->posAttrib); glEnableVertexAttribArray(shader->texAttrib); - if (!m_RenderData.clipBox.empty() || !m_RenderData.clipRegion.empty()) { - CRegion damageClip = m_RenderData.clipBox; + if (!m_renderData.clipBox.empty() || !m_renderData.clipRegion.empty()) { + CRegion damageClip = m_renderData.clipBox; - if (!m_RenderData.clipRegion.empty()) { - if (m_RenderData.clipBox.empty()) - damageClip = m_RenderData.clipRegion; + if (!m_renderData.clipRegion.empty()) { + if (m_renderData.clipBox.empty()) + damageClip = m_renderData.clipRegion; else - damageClip.intersect(m_RenderData.clipRegion); + damageClip.intersect(m_renderData.clipRegion); } if (!damageClip.empty()) { @@ -1696,30 +1696,30 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB glDisableVertexAttribArray(shader->posAttrib); glDisableVertexAttribArray(shader->texAttrib); - glBindTexture(tex->m_iTarget, 0); + glBindTexture(tex->m_target, 0); } void CHyprOpenGLImpl::renderTexturePrimitive(SP tex, const CBox& box) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture without begin()!"); - RASSERT((tex->m_iTexID > 0), "Attempted to draw nullptr texture!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture without begin()!"); + RASSERT((tex->m_texID > 0), "Attempted to draw nullptr texture!"); TRACY_GPU_ZONE("RenderTexturePrimitive"); - if (m_RenderData.damage.empty()) + if (m_renderData.damage.empty()) return; CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); // get transform - const auto TRANSFORM = wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)); - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + const auto TRANSFORM = wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); CShader* shader = &m_shaders->m_shPASSTHRURGBA; glActiveTexture(GL_TEXTURE0); - glBindTexture(tex->m_iTarget, tex->m_iTexID); + glBindTexture(tex->m_target, tex->m_texID); glUseProgram(shader->program); @@ -1737,7 +1737,7 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP tex, const CBox& box) glEnableVertexAttribArray(shader->posAttrib); glEnableVertexAttribArray(shader->texAttrib); - for (auto const& RECT : m_RenderData.damage.getRects()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -1747,25 +1747,25 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP tex, const CBox& box) glDisableVertexAttribArray(shader->posAttrib); glDisableVertexAttribArray(shader->texAttrib); - glBindTexture(tex->m_iTarget, 0); + glBindTexture(tex->m_target, 0); } void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFramebuffer& matte) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture without begin()!"); - RASSERT((tex->m_iTexID > 0), "Attempted to draw nullptr texture!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture without begin()!"); + RASSERT((tex->m_texID > 0), "Attempted to draw nullptr texture!"); TRACY_GPU_ZONE("RenderTextureMatte"); - if (m_RenderData.damage.empty()) + if (m_renderData.damage.empty()) return; CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); // get transform - const auto TRANSFORM = wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)); - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + const auto TRANSFORM = wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); CShader* shader = &m_shaders->m_shMATTE; @@ -1781,11 +1781,11 @@ void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFra glUniform1i(shader->alphaMatte, 1); glActiveTexture(GL_TEXTURE0); - glBindTexture(tex->m_iTarget, tex->m_iTexID); + glBindTexture(tex->m_target, tex->m_texID); glActiveTexture(GL_TEXTURE0 + 1); auto matteTex = matte.getTexture(); - glBindTexture(matteTex->m_iTarget, matteTex->m_iTexID); + glBindTexture(matteTex->m_target, matteTex->m_texID); glVertexAttribPointer(shader->posAttrib, 2, GL_FLOAT, GL_FALSE, 0, fullVerts); glVertexAttribPointer(shader->texAttrib, 2, GL_FLOAT, GL_FALSE, 0, fullVerts); @@ -1793,7 +1793,7 @@ void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFra glEnableVertexAttribArray(shader->posAttrib); glEnableVertexAttribArray(shader->texAttrib); - for (auto const& RECT : m_RenderData.damage.getRects()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -1803,7 +1803,7 @@ void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFra glDisableVertexAttribArray(shader->posAttrib); glDisableVertexAttribArray(shader->texAttrib); - glBindTexture(tex->m_iTarget, 0); + glBindTexture(tex->m_target, 0); } // This probably isn't the fastest @@ -1812,22 +1812,22 @@ void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFra // Dual (or more) kawase blur CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* originalDamage) { - if (!m_RenderData.currentFB->getTexture()) { + if (!m_renderData.currentFB->getTexture()) { Debug::log(ERR, "BUG THIS: null fb texture while attempting to blur main fb?! (introspection off?!)"); - return &m_RenderData.pCurrentMonData->mirrorFB; // return something to sample from at least + return &m_renderData.pCurrentMonData->mirrorFB; // return something to sample from at least } TRACY_GPU_ZONE("RenderBlurMainFramebufferWithDamage"); - const auto BLENDBEFORE = m_bBlend; + const auto BLENDBEFORE = m_blend; blend(false); glDisable(GL_STENCIL_TEST); // get transforms for the full monitor - const auto TRANSFORM = wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)); - CBox MONITORBOX = {0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox(MONITORBOX, TRANSFORM); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + const auto TRANSFORM = wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)); + CBox MONITORBOX = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; + Mat3x3 matrix = m_renderData.monitorProjection.projectBox(MONITORBOX, TRANSFORM); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); // get the config settings static auto PBLURSIZE = CConfigValue("decoration:blur:size"); @@ -1837,13 +1837,13 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o // prep damage CRegion damage{*originalDamage}; - damage.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + damage.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); damage.expand(*PBLURPASSES > 10 ? pow(2, 15) : std::clamp(*PBLURSIZE, (int64_t)1, (int64_t)40) * pow(2, *PBLURPASSES)); // helper - const auto PMIRRORFB = &m_RenderData.pCurrentMonData->mirrorFB; - const auto PMIRRORSWAPFB = &m_RenderData.pCurrentMonData->mirrorSwapFB; + const auto PMIRRORFB = &m_renderData.pCurrentMonData->mirrorFB; + const auto PMIRRORSWAPFB = &m_renderData.pCurrentMonData->mirrorSwapFB; CFramebuffer* currentRenderToFB = PMIRRORFB; @@ -1857,28 +1857,28 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o glActiveTexture(GL_TEXTURE0); - auto currentTex = m_RenderData.currentFB->getTexture(); + auto currentTex = m_renderData.currentFB->getTexture(); - glBindTexture(currentTex->m_iTarget, currentTex->m_iTexID); + glBindTexture(currentTex->m_target, currentTex->m_texID); - glTexParameteri(currentTex->m_iTarget, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(currentTex->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glUseProgram(m_shaders->m_shBLURPREPARE.program); // From FB to sRGB - const bool skipCM = !m_bCMSupported || m_RenderData.pMonitor->m_imageDescription == SImageDescription{}; + const bool skipCM = !m_cmSupported || m_renderData.pMonitor->m_imageDescription == SImageDescription{}; glUniform1i(m_shaders->m_shBLURPREPARE.skipCM, skipCM); if (!skipCM) { - passCMUniforms(m_shaders->m_shBLURPREPARE, m_RenderData.pMonitor->m_imageDescription, SImageDescription{}); + passCMUniforms(m_shaders->m_shBLURPREPARE, m_renderData.pMonitor->m_imageDescription, SImageDescription{}); glUniform1f(m_shaders->m_shBLURPREPARE.sdrSaturation, - m_RenderData.pMonitor->m_sdrSaturation > 0 && - m_RenderData.pMonitor->m_imageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? - m_RenderData.pMonitor->m_sdrSaturation : + m_renderData.pMonitor->m_sdrSaturation > 0 && + m_renderData.pMonitor->m_imageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? + m_renderData.pMonitor->m_sdrSaturation : 1.0f); glUniform1f(m_shaders->m_shBLURPREPARE.sdrBrightness, - m_RenderData.pMonitor->m_sdrBrightness > 0 && - m_RenderData.pMonitor->m_imageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? - m_RenderData.pMonitor->m_sdrBrightness : + m_renderData.pMonitor->m_sdrBrightness > 0 && + m_renderData.pMonitor->m_imageDescription.transferFunction == NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ ? + m_renderData.pMonitor->m_sdrBrightness : 1.0f); } @@ -1922,9 +1922,9 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o auto currentTex = currentRenderToFB->getTexture(); - glBindTexture(currentTex->m_iTarget, currentTex->m_iTexID); + glBindTexture(currentTex->m_target, currentTex->m_texID); - glTexParameteri(currentTex->m_iTarget, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(currentTex->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glUseProgram(pShader->program); @@ -1937,12 +1937,12 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o #endif glUniform1f(pShader->radius, *PBLURSIZE * a); // this makes the blursize change with a if (pShader == &m_shaders->m_shBLUR1) { - glUniform2f(m_shaders->m_shBLUR1.halfpixel, 0.5f / (m_RenderData.pMonitor->m_pixelSize.x / 2.f), 0.5f / (m_RenderData.pMonitor->m_pixelSize.y / 2.f)); + glUniform2f(m_shaders->m_shBLUR1.halfpixel, 0.5f / (m_renderData.pMonitor->m_pixelSize.x / 2.f), 0.5f / (m_renderData.pMonitor->m_pixelSize.y / 2.f)); glUniform1i(m_shaders->m_shBLUR1.passes, *PBLURPASSES); glUniform1f(m_shaders->m_shBLUR1.vibrancy, *PBLURVIBRANCY); glUniform1f(m_shaders->m_shBLUR1.vibrancy_darkness, *PBLURVIBRANCYDARKNESS); } else - glUniform2f(m_shaders->m_shBLUR2.halfpixel, 0.5f / (m_RenderData.pMonitor->m_pixelSize.x * 2.f), 0.5f / (m_RenderData.pMonitor->m_pixelSize.y * 2.f)); + glUniform2f(m_shaders->m_shBLUR2.halfpixel, 0.5f / (m_renderData.pMonitor->m_pixelSize.x * 2.f), 0.5f / (m_renderData.pMonitor->m_pixelSize.y * 2.f)); glUniform1i(pShader->tex, 0); glVertexAttribPointer(pShader->posAttrib, 2, GL_FLOAT, GL_FALSE, 0, fullVerts); @@ -1970,7 +1970,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o // draw the things. // first draw is swap -> mirr PMIRRORFB->bind(); - glBindTexture(PMIRRORSWAPFB->getTexture()->m_iTarget, PMIRRORSWAPFB->getTexture()->m_iTexID); + glBindTexture(PMIRRORSWAPFB->getTexture()->m_target, PMIRRORSWAPFB->getTexture()->m_texID); // damage region will be scaled, make a temp CRegion tempDamage{damage}; @@ -2000,9 +2000,9 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o auto currentTex = currentRenderToFB->getTexture(); - glBindTexture(currentTex->m_iTarget, currentTex->m_iTexID); + glBindTexture(currentTex->m_target, currentTex->m_texID); - glTexParameteri(currentTex->m_iTarget, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(currentTex->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glUseProgram(m_shaders->m_shBLURFINISH.program); @@ -2040,7 +2040,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o } // finish - glBindTexture(PMIRRORFB->getTexture()->m_iTarget, 0); + glBindTexture(PMIRRORFB->getTexture()->m_target, 0); blend(BLENDBEFORE); @@ -2048,7 +2048,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o } void CHyprOpenGLImpl::markBlurDirtyForMonitor(PHLMONITOR pMonitor) { - m_mMonitorRenderResources[pMonitor].blurFBDirty = true; + m_monitorRenderResources[pMonitor].blurFBDirty = true; } void CHyprOpenGLImpl::preRender(PHLMONITOR pMonitor) { @@ -2056,7 +2056,7 @@ void CHyprOpenGLImpl::preRender(PHLMONITOR pMonitor) { static auto PBLURXRAY = CConfigValue("decoration:blur:xray"); static auto PBLUR = CConfigValue("decoration:blur:enabled"); - if (!*PBLURNEWOPTIMIZE || !m_mMonitorRenderResources[pMonitor].blurFBDirty || !*PBLUR) + if (!*PBLURNEWOPTIMIZE || !m_monitorRenderResources[pMonitor].blurFBDirty || !*PBLUR) return; // ignore if solitary present, nothing to blur @@ -2131,60 +2131,60 @@ void CHyprOpenGLImpl::preRender(PHLMONITOR pMonitor) { return; g_pHyprRenderer->damageMonitor(pMonitor); - m_mMonitorRenderResources[pMonitor].blurFBShouldRender = true; + m_monitorRenderResources[pMonitor].blurFBShouldRender = true; } void CHyprOpenGLImpl::preBlurForCurrentMonitor() { TRACY_GPU_ZONE("RenderPreBlurForCurrentMonitor"); - const auto SAVEDRENDERMODIF = m_RenderData.renderModif; - m_RenderData.renderModif = {}; // fix shit + const auto SAVEDRENDERMODIF = m_renderData.renderModif; + m_renderData.renderModif = {}; // fix shit // make the fake dmg - CRegion fakeDamage{0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; + CRegion fakeDamage{0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; const auto POUTFB = blurMainFramebufferWithDamage(1, &fakeDamage); // render onto blurFB - m_RenderData.pCurrentMonData->blurFB.alloc(m_RenderData.pMonitor->m_pixelSize.x, m_RenderData.pMonitor->m_pixelSize.y, - m_RenderData.pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->blurFB.bind(); + m_renderData.pCurrentMonData->blurFB.alloc(m_renderData.pMonitor->m_pixelSize.x, m_renderData.pMonitor->m_pixelSize.y, + m_renderData.pMonitor->m_output->state->state().drmFormat); + m_renderData.pCurrentMonData->blurFB.bind(); clear(CHyprColor(0, 0, 0, 0)); - m_bEndFrame = true; // fix transformed - renderTextureInternalWithDamage(POUTFB->getTexture(), CBox{0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}, 1, fakeDamage, 0, + m_endFrame = true; // fix transformed + renderTextureInternalWithDamage(POUTFB->getTexture(), CBox{0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}, 1, fakeDamage, 0, 2.0f, false, true, false); - m_bEndFrame = false; + m_endFrame = false; - m_RenderData.currentFB->bind(); + m_renderData.currentFB->bind(); - m_RenderData.pCurrentMonData->blurFBDirty = false; + m_renderData.pCurrentMonData->blurFBDirty = false; - m_RenderData.renderModif = SAVEDRENDERMODIF; + m_renderData.renderModif = SAVEDRENDERMODIF; - m_mMonitorRenderResources[m_RenderData.pMonitor].blurFBShouldRender = false; + m_monitorRenderResources[m_renderData.pMonitor].blurFBShouldRender = false; } void CHyprOpenGLImpl::preWindowPass() { if (!preBlurQueued()) return; - g_pHyprRenderer->m_sRenderPass.add(makeShared()); + g_pHyprRenderer->m_renderPass.add(makeShared()); } bool CHyprOpenGLImpl::preBlurQueued() { static auto PBLURNEWOPTIMIZE = CConfigValue("decoration:blur:new_optimizations"); static auto PBLUR = CConfigValue("decoration:blur:enabled"); - return m_RenderData.pCurrentMonData->blurFBDirty && *PBLURNEWOPTIMIZE && *PBLUR && m_RenderData.pCurrentMonData->blurFBShouldRender; + return m_renderData.pCurrentMonData->blurFBDirty && *PBLURNEWOPTIMIZE && *PBLUR && m_renderData.pCurrentMonData->blurFBShouldRender; } bool CHyprOpenGLImpl::shouldUseNewBlurOptimizations(PHLLS pLayer, PHLWINDOW pWindow) { static auto PBLURNEWOPTIMIZE = CConfigValue("decoration:blur:new_optimizations"); static auto PBLURXRAY = CConfigValue("decoration:blur:xray"); - if (!m_RenderData.pCurrentMonData->blurFB.getTexture()) + if (!m_renderData.pCurrentMonData->blurFB.getTexture()) return false; if (pWindow && pWindow->m_windowData.xray.hasValue() && !pWindow->m_windowData.xray.valueOrDefault()) @@ -2204,28 +2204,28 @@ bool CHyprOpenGLImpl::shouldUseNewBlurOptimizations(PHLLS pLayer, PHLWINDOW pWin void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, float a, SP pSurface, int round, float roundingPower, bool blockBlurOptimization, float blurA, float overallA) { - RASSERT(m_RenderData.pMonitor, "Tried to render texture with blur without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render texture with blur without begin()!"); TRACY_GPU_ZONE("RenderTextureWithBlur"); // make a damage region for this window - CRegion texDamage{m_RenderData.damage}; + CRegion texDamage{m_renderData.damage}; texDamage.intersect(box.x, box.y, box.width, box.height); // While renderTextureInternalWithDamage will clip the blur as well, // clipping texDamage here allows blur generation to be optimized. - if (!m_RenderData.clipRegion.empty()) - texDamage.intersect(m_RenderData.clipRegion); + if (!m_renderData.clipRegion.empty()) + texDamage.intersect(m_renderData.clipRegion); if (texDamage.empty()) return; - m_RenderData.renderModif.applyToRegion(texDamage); + m_renderData.renderModif.applyToRegion(texDamage); // amazing hack: the surface has an opaque region! CRegion inverseOpaque; - if (a >= 1.f && std::round(pSurface->m_current.size.x * m_RenderData.pMonitor->m_scale) == box.w && - std::round(pSurface->m_current.size.y * m_RenderData.pMonitor->m_scale) == box.h) { + if (a >= 1.f && std::round(pSurface->m_current.size.x * m_renderData.pMonitor->m_scale) == box.w && + std::round(pSurface->m_current.size.y * m_renderData.pMonitor->m_scale) == box.h) { pixman_box32_t surfbox = {0, 0, pSurface->m_current.size.x * pSurface->m_current.scale, pSurface->m_current.size.y * pSurface->m_current.scale}; inverseOpaque = pSurface->m_current.opaque; inverseOpaque.invert(&surfbox).intersect(0, 0, pSurface->m_current.size.x * pSurface->m_current.scale, pSurface->m_current.size.y * pSurface->m_current.scale); @@ -2237,22 +2237,22 @@ void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, f } else inverseOpaque = {0, 0, box.width, box.height}; - inverseOpaque.scale(m_RenderData.pMonitor->m_scale); + inverseOpaque.scale(m_renderData.pMonitor->m_scale); // vvv TODO: layered blur fbs? - const bool USENEWOPTIMIZE = shouldUseNewBlurOptimizations(m_RenderData.currentLS.lock(), m_RenderData.currentWindow.lock()) && !blockBlurOptimization; + const bool USENEWOPTIMIZE = shouldUseNewBlurOptimizations(m_renderData.currentLS.lock(), m_renderData.currentWindow.lock()) && !blockBlurOptimization; CFramebuffer* POUTFB = nullptr; if (!USENEWOPTIMIZE) { inverseOpaque.translate(box.pos()); - m_RenderData.renderModif.applyToRegion(inverseOpaque); + m_renderData.renderModif.applyToRegion(inverseOpaque); inverseOpaque.intersect(texDamage); POUTFB = blurMainFramebufferWithDamage(a, &inverseOpaque); } else - POUTFB = &m_RenderData.pCurrentMonData->blurFB; + POUTFB = &m_renderData.pCurrentMonData->blurFB; - m_RenderData.currentFB->bind(); + m_renderData.currentFB->bind(); // make a stencil for rounded corners to work with blur scissor(nullptr); // allow the entire window and stencil to render @@ -2265,7 +2265,7 @@ void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, f glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); - if (USENEWOPTIMIZE && !(m_RenderData.discardMode & DISCARD_ALPHA)) + if (USENEWOPTIMIZE && !(m_renderData.discardMode & DISCARD_ALPHA)) renderRect(box, CHyprColor(0, 0, 0, 0), round, roundingPower); else renderTexture(tex, box, a, round, roundingPower, true, true); // discard opaque @@ -2275,20 +2275,20 @@ void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, f glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); // stencil done. Render everything. - const auto LASTTL = m_RenderData.primarySurfaceUVTopLeft; - const auto LASTBR = m_RenderData.primarySurfaceUVBottomRight; + const auto LASTTL = m_renderData.primarySurfaceUVTopLeft; + const auto LASTBR = m_renderData.primarySurfaceUVBottomRight; CBox transformedBox = box; - transformedBox.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + transformedBox.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); - CBox monitorSpaceBox = {transformedBox.pos().x / m_RenderData.pMonitor->m_pixelSize.x * m_RenderData.pMonitor->m_transformedSize.x, - transformedBox.pos().y / m_RenderData.pMonitor->m_pixelSize.y * m_RenderData.pMonitor->m_transformedSize.y, - transformedBox.width / m_RenderData.pMonitor->m_pixelSize.x * m_RenderData.pMonitor->m_transformedSize.x, - transformedBox.height / m_RenderData.pMonitor->m_pixelSize.y * m_RenderData.pMonitor->m_transformedSize.y}; + CBox monitorSpaceBox = {transformedBox.pos().x / m_renderData.pMonitor->m_pixelSize.x * m_renderData.pMonitor->m_transformedSize.x, + transformedBox.pos().y / m_renderData.pMonitor->m_pixelSize.y * m_renderData.pMonitor->m_transformedSize.y, + transformedBox.width / m_renderData.pMonitor->m_pixelSize.x * m_renderData.pMonitor->m_transformedSize.x, + transformedBox.height / m_renderData.pMonitor->m_pixelSize.y * m_renderData.pMonitor->m_transformedSize.y}; - m_RenderData.primarySurfaceUVTopLeft = monitorSpaceBox.pos() / m_RenderData.pMonitor->m_transformedSize; - m_RenderData.primarySurfaceUVBottomRight = (monitorSpaceBox.pos() + monitorSpaceBox.size()) / m_RenderData.pMonitor->m_transformedSize; + m_renderData.primarySurfaceUVTopLeft = monitorSpaceBox.pos() / m_renderData.pMonitor->m_transformedSize; + m_renderData.primarySurfaceUVBottomRight = (monitorSpaceBox.pos() + monitorSpaceBox.size()) / m_renderData.pMonitor->m_transformedSize; static auto PBLURIGNOREOPACITY = CConfigValue("decoration:blur:ignore_opacity"); setMonitorTransformEnabled(true); @@ -2299,8 +2299,8 @@ void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, f setRenderModifEnabled(true); setMonitorTransformEnabled(false); - m_RenderData.primarySurfaceUVTopLeft = LASTTL; - m_RenderData.primarySurfaceUVBottomRight = LASTBR; + m_renderData.primarySurfaceUVTopLeft = LASTTL; + m_renderData.primarySurfaceUVBottomRight = LASTBR; // render the window, but clear stencil glClearStencil(0); @@ -2317,21 +2317,21 @@ void CHyprOpenGLImpl::renderTextureWithBlur(SP tex, const CBox& box, f void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& grad, int round, float roundingPower, int borderSize, float a, int outerRound) { RASSERT((box.width > 0 && box.height > 0), "Tried to render rect with width/height < 0!"); - RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render rect without begin()!"); TRACY_GPU_ZONE("RenderBorder"); - if (m_RenderData.damage.empty() || (m_RenderData.currentWindow && m_RenderData.currentWindow->m_windowData.noBorder.valueOrDefault())) + if (m_renderData.damage.empty() || (m_renderData.currentWindow && m_renderData.currentWindow->m_windowData.noBorder.valueOrDefault())) return; CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); if (borderSize < 1) return; - int scaledBorderSize = std::round(borderSize * m_RenderData.pMonitor->m_scale); - scaledBorderSize = std::round(scaledBorderSize * m_RenderData.renderModif.combinedScale()); + int scaledBorderSize = std::round(borderSize * m_renderData.pMonitor->m_scale); + scaledBorderSize = std::round(scaledBorderSize * m_renderData.renderModif.combinedScale()); // adjust box newBox.x -= scaledBorderSize; @@ -2341,16 +2341,16 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr round += round == 0 ? 0 : scaledBorderSize; - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox( - newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)), newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox( + newBox, wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)), newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); - const auto BLEND = m_bBlend; + const auto BLEND = m_blend; blend(true); glUseProgram(m_shaders->m_shBORDER1.program); - const bool skipCM = !m_bCMSupported || m_RenderData.pMonitor->m_imageDescription == SImageDescription{}; + const bool skipCM = !m_cmSupported || m_renderData.pMonitor->m_imageDescription == SImageDescription{}; glUniform1i(m_shaders->m_shBORDER1.skipCM, skipCM); if (!skipCM) passCMUniforms(m_shaders->m_shBORDER1, SImageDescription{}); @@ -2369,8 +2369,8 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr glUniform1i(m_shaders->m_shBORDER1.gradient2Length, 0); CBox transformedBox = newBox; - transformedBox.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + transformedBox.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); const auto TOPLEFT = Vector2D(transformedBox.x, transformedBox.y); const auto FULLSIZE = Vector2D(transformedBox.width, transformedBox.height); @@ -2389,9 +2389,9 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr glEnableVertexAttribArray(m_shaders->m_shBORDER1.posAttrib); glEnableVertexAttribArray(m_shaders->m_shBORDER1.texAttrib); - if (m_RenderData.clipBox.width != 0 && m_RenderData.clipBox.height != 0) { - CRegion damageClip{m_RenderData.clipBox.x, m_RenderData.clipBox.y, m_RenderData.clipBox.width, m_RenderData.clipBox.height}; - damageClip.intersect(m_RenderData.damage); + if (m_renderData.clipBox.width != 0 && m_renderData.clipBox.height != 0) { + CRegion damageClip{m_renderData.clipBox.x, m_renderData.clipBox.y, m_renderData.clipBox.width, m_renderData.clipBox.height}; + damageClip.intersect(m_renderData.damage); if (!damageClip.empty()) { for (auto const& RECT : damageClip.getRects()) { @@ -2400,7 +2400,7 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr } } } else { - for (auto const& RECT : m_RenderData.damage.getRects()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -2415,21 +2415,21 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& grad1, const CGradientValueData& grad2, float lerp, int round, float roundingPower, int borderSize, float a, int outerRound) { RASSERT((box.width > 0 && box.height > 0), "Tried to render rect with width/height < 0!"); - RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render rect without begin()!"); TRACY_GPU_ZONE("RenderBorder2"); - if (m_RenderData.damage.empty() || (m_RenderData.currentWindow && m_RenderData.currentWindow->m_windowData.noBorder.valueOrDefault())) + if (m_renderData.damage.empty() || (m_renderData.currentWindow && m_renderData.currentWindow->m_windowData.noBorder.valueOrDefault())) return; CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); if (borderSize < 1) return; - int scaledBorderSize = std::round(borderSize * m_RenderData.pMonitor->m_scale); - scaledBorderSize = std::round(scaledBorderSize * m_RenderData.renderModif.combinedScale()); + int scaledBorderSize = std::round(borderSize * m_renderData.pMonitor->m_scale); + scaledBorderSize = std::round(scaledBorderSize * m_renderData.renderModif.combinedScale()); // adjust box newBox.x -= scaledBorderSize; @@ -2439,11 +2439,11 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr round += round == 0 ? 0 : scaledBorderSize; - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox( - newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)), newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox( + newBox, wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)), newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); - const auto BLEND = m_bBlend; + const auto BLEND = m_blend; blend(true); glUseProgram(m_shaders->m_shBORDER1.program); @@ -2466,8 +2466,8 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr glUniform1f(m_shaders->m_shBORDER1.gradientLerp, lerp); CBox transformedBox = newBox; - transformedBox.transform(wlTransformToHyprutils(invertTransform(m_RenderData.pMonitor->m_transform)), m_RenderData.pMonitor->m_transformedSize.x, - m_RenderData.pMonitor->m_transformedSize.y); + transformedBox.transform(wlTransformToHyprutils(invertTransform(m_renderData.pMonitor->m_transform)), m_renderData.pMonitor->m_transformedSize.x, + m_renderData.pMonitor->m_transformedSize.y); const auto TOPLEFT = Vector2D(transformedBox.x, transformedBox.y); const auto FULLSIZE = Vector2D(transformedBox.width, transformedBox.height); @@ -2486,9 +2486,9 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr glEnableVertexAttribArray(m_shaders->m_shBORDER1.posAttrib); glEnableVertexAttribArray(m_shaders->m_shBORDER1.texAttrib); - if (m_RenderData.clipBox.width != 0 && m_RenderData.clipBox.height != 0) { - CRegion damageClip{m_RenderData.clipBox.x, m_RenderData.clipBox.y, m_RenderData.clipBox.width, m_RenderData.clipBox.height}; - damageClip.intersect(m_RenderData.damage); + if (m_renderData.clipBox.width != 0 && m_renderData.clipBox.height != 0) { + CRegion damageClip{m_renderData.clipBox.x, m_renderData.clipBox.y, m_renderData.clipBox.width, m_renderData.clipBox.height}; + damageClip.intersect(m_renderData.damage); if (!damageClip.empty()) { for (auto const& RECT : damageClip.getRects()) { @@ -2497,7 +2497,7 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr } } } else { - for (auto const& RECT : m_RenderData.damage.getRects()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -2510,17 +2510,17 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr } void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roundingPower, int range, const CHyprColor& color, float a) { - RASSERT(m_RenderData.pMonitor, "Tried to render shadow without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render shadow without begin()!"); RASSERT((box.width > 0 && box.height > 0), "Tried to render shadow with width/height < 0!"); - RASSERT(m_RenderData.currentWindow, "Tried to render shadow without a window!"); + RASSERT(m_renderData.currentWindow, "Tried to render shadow without a window!"); - if (m_RenderData.damage.empty()) + if (m_renderData.damage.empty()) return; TRACY_GPU_ZONE("RenderShadow"); CBox newBox = box; - m_RenderData.renderModif.applyToBox(newBox); + m_renderData.renderModif.applyToBox(newBox); static auto PSHADOWPOWER = CConfigValue("decoration:shadow:render_power"); @@ -2528,14 +2528,14 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun const auto col = color; - Mat3x3 matrix = m_RenderData.monitorProjection.projectBox( - newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->m_transform)), newBox.rot); - Mat3x3 glMatrix = m_RenderData.projection.copy().multiply(matrix); + Mat3x3 matrix = m_renderData.monitorProjection.projectBox( + newBox, wlTransformToHyprutils(invertTransform(!m_endFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_renderData.pMonitor->m_transform)), newBox.rot); + Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); blend(true); glUseProgram(m_shaders->m_shSHADOW.program); - const bool skipCM = !m_bCMSupported || m_RenderData.pMonitor->m_imageDescription == SImageDescription{}; + const bool skipCM = !m_cmSupported || m_renderData.pMonitor->m_imageDescription == SImageDescription{}; glUniform1i(m_shaders->m_shSHADOW.skipCM, skipCM); if (!skipCM) passCMUniforms(m_shaders->m_shSHADOW, SImageDescription{}); @@ -2567,9 +2567,9 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun glEnableVertexAttribArray(m_shaders->m_shSHADOW.posAttrib); glEnableVertexAttribArray(m_shaders->m_shSHADOW.texAttrib); - if (m_RenderData.clipBox.width != 0 && m_RenderData.clipBox.height != 0) { - CRegion damageClip{m_RenderData.clipBox.x, m_RenderData.clipBox.y, m_RenderData.clipBox.width, m_RenderData.clipBox.height}; - damageClip.intersect(m_RenderData.damage); + if (m_renderData.clipBox.width != 0 && m_renderData.clipBox.height != 0) { + CRegion damageClip{m_renderData.clipBox.x, m_renderData.clipBox.y, m_renderData.clipBox.width, m_renderData.clipBox.height}; + damageClip.intersect(m_renderData.damage); if (!damageClip.empty()) { for (auto const& RECT : damageClip.getRects()) { @@ -2578,7 +2578,7 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun } } } else { - for (auto const& RECT : m_RenderData.damage.getRects()) { + for (auto const& RECT : m_renderData.damage.getRects()) { scissor(&RECT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -2590,24 +2590,24 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun void CHyprOpenGLImpl::saveBufferForMirror(const CBox& box) { - if (!m_RenderData.pCurrentMonData->monitorMirrorFB.isAllocated()) - m_RenderData.pCurrentMonData->monitorMirrorFB.alloc(m_RenderData.pMonitor->m_pixelSize.x, m_RenderData.pMonitor->m_pixelSize.y, - m_RenderData.pMonitor->m_output->state->state().drmFormat); + if (!m_renderData.pCurrentMonData->monitorMirrorFB.isAllocated()) + m_renderData.pCurrentMonData->monitorMirrorFB.alloc(m_renderData.pMonitor->m_pixelSize.x, m_renderData.pMonitor->m_pixelSize.y, + m_renderData.pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->monitorMirrorFB.bind(); + m_renderData.pCurrentMonData->monitorMirrorFB.bind(); blend(false); - renderTexture(m_RenderData.currentFB->getTexture(), box, 1.f, 0, 2.0f, false, false); + renderTexture(m_renderData.currentFB->getTexture(), box, 1.f, 0, 2.0f, false, false); blend(true); - m_RenderData.currentFB->bind(); + m_renderData.currentFB->bind(); } void CHyprOpenGLImpl::renderMirrored() { - auto monitor = m_RenderData.pMonitor; + auto monitor = m_renderData.pMonitor; auto mirrored = monitor->m_mirrorOf; const double scale = std::min(monitor->m_transformedSize.x / mirrored->m_transformedSize.x, monitor->m_transformedSize.y / mirrored->m_transformedSize.y); @@ -2619,11 +2619,11 @@ void CHyprOpenGLImpl::renderMirrored() { monbox.x = (monitor->m_transformedSize.x - monbox.w) / 2; monbox.y = (monitor->m_transformedSize.y - monbox.h) / 2; - const auto PFB = &m_mMonitorRenderResources[mirrored].monitorMirrorFB; + const auto PFB = &m_monitorRenderResources[mirrored].monitorMirrorFB; if (!PFB->isAllocated() || !PFB->getTexture()) return; - g_pHyprRenderer->m_sRenderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(0, 0, 0, 0)})); + g_pHyprRenderer->m_renderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(0, 0, 0, 0)})); CTexPassElement::SRenderData data; data.tex = PFB->getTexture(); @@ -2634,7 +2634,7 @@ void CHyprOpenGLImpl::renderMirrored() { .transform(wlTransformToHyprutils(invertTransform(mirrored->m_transform))) .translate(-monitor->m_transformedSize / 2.0); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } void CHyprOpenGLImpl::renderSplash(cairo_t* const CAIRO, cairo_surface_t* const CAIROSURFACE, double offsetY, const Vector2D& size) { @@ -2686,24 +2686,24 @@ SP CHyprOpenGLImpl::loadAsset(const std::string& filename) { } if (fullPath.empty()) { - failedAssetsNo++; + m_failedAssetsNo++; Debug::log(ERR, "loadAsset: looking for {} failed (no provider found)", filename); - return m_pMissingAssetTexture; + return m_missingAssetTexture; } const auto CAIROSURFACE = cairo_image_surface_create_from_png(fullPath.c_str()); if (!CAIROSURFACE) { - failedAssetsNo++; + m_failedAssetsNo++; Debug::log(ERR, "loadAsset: failed to load {} (corrupt / inaccessible / not png)", fullPath); - return m_pMissingAssetTexture; + return m_missingAssetTexture; } const auto CAIROFORMAT = cairo_image_surface_get_format(CAIROSURFACE); auto tex = makeShared(); tex->allocate(); - tex->m_vSize = {cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE)}; + tex->m_size = {cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE)}; const GLint glIFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? #ifdef GLES2 @@ -2716,7 +2716,7 @@ SP CHyprOpenGLImpl::loadAsset(const std::string& filename) { const GLint glType = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_FLOAT : GL_UNSIGNED_BYTE; const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); - glBindTexture(GL_TEXTURE_2D, tex->m_iTexID); + glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); #ifndef GLES2 @@ -2725,7 +2725,7 @@ SP CHyprOpenGLImpl::loadAsset(const std::string& filename) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); } #endif - glTexImage2D(GL_TEXTURE_2D, 0, glIFormat, tex->m_vSize.x, tex->m_vSize.y, 0, glFormat, glType, DATA); + glTexImage2D(GL_TEXTURE_2D, 0, glIFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); @@ -2796,17 +2796,17 @@ SP CHyprOpenGLImpl::renderText(const std::string& text, CHyprColor col cairo_surface_flush(CAIROSURFACE); tex->allocate(); - tex->m_vSize = {cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE)}; + tex->m_size = {cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE)}; const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); - glBindTexture(GL_TEXTURE_2D, tex->m_iTexID); + glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); #ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); #endif - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex->m_vSize.x, tex->m_vSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex->m_size.x, tex->m_size.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); cairo_destroy(CAIRO); cairo_surface_destroy(CAIROSURFACE); @@ -2835,40 +2835,40 @@ void CHyprOpenGLImpl::initMissingAssetTexture() { cairo_surface_flush(CAIROSURFACE); - tex->m_vSize = {512, 512}; + tex->m_size = {512, 512}; // copy the data to an OpenGL texture we have const GLint glFormat = GL_RGBA; const GLint glType = GL_UNSIGNED_BYTE; const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); - glBindTexture(GL_TEXTURE_2D, tex->m_iTexID); + glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); #ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); #endif - glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_vSize.x, tex->m_vSize.y, 0, glFormat, glType, DATA); + glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); cairo_destroy(CAIRO); - m_pMissingAssetTexture = tex; + m_missingAssetTexture = tex; } void CHyprOpenGLImpl::initAssets() { initMissingAssetTexture(); - m_pLockDeadTexture = loadAsset("lockdead.png"); - m_pLockDead2Texture = loadAsset("lockdead2.png"); + m_lockDeadTexture = loadAsset("lockdead.png"); + m_lockDead2Texture = loadAsset("lockdead2.png"); - m_pLockTtyTextTexture = renderText( + m_lockTtyTextTexture = renderText( std::format("Running on tty {}", g_pCompositor->m_aqBackend->hasSession() && g_pCompositor->m_aqBackend->session->vt > 0 ? std::to_string(g_pCompositor->m_aqBackend->session->vt) : "unknown"), CHyprColor{0.9F, 0.9F, 0.9F, 0.7F}, 20, true); - m_pScreencopyDeniedTexture = renderText("Permission denied to share screen", Colors::WHITE, 20); + m_screencopyDeniedTexture = renderText("Permission denied to share screen", Colors::WHITE, 20); ensureBackgroundTexturePresence(); } @@ -2880,8 +2880,8 @@ void CHyprOpenGLImpl::ensureBackgroundTexturePresence() { const auto FORCEWALLPAPER = std::clamp(*PFORCEWALLPAPER, static_cast(-1L), static_cast(2L)); if (*PNOWALLPAPER) - m_pBackgroundTexture.reset(); - else if (!m_pBackgroundTexture) { + m_backgroundTexture.reset(); + else if (!m_backgroundTexture) { // create the default background texture std::string texPath = "wall"; @@ -2896,12 +2896,12 @@ void CHyprOpenGLImpl::ensureBackgroundTexturePresence() { texPath += ".png"; - m_pBackgroundTexture = loadAsset(texPath); + m_backgroundTexture = loadAsset(texPath); } } void CHyprOpenGLImpl::createBGTextureForMonitor(PHLMONITOR pMonitor) { - RASSERT(m_RenderData.pMonitor, "Tried to createBGTex without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to createBGTex without begin()!"); Debug::log(LOG, "Creating a texture for BGTex"); @@ -2912,12 +2912,12 @@ void CHyprOpenGLImpl::createBGTextureForMonitor(PHLMONITOR pMonitor) { return; // release the last tex if exists - const auto PFB = &m_mMonitorBGFBs[pMonitor]; + const auto PFB = &m_monitorBGFBs[pMonitor]; PFB->release(); PFB->alloc(pMonitor->m_pixelSize.x, pMonitor->m_pixelSize.y, pMonitor->m_output->state->state().drmFormat); - if (!m_pBackgroundTexture) // ?!?!?! + if (!m_backgroundTexture) // ?!?!?! return; // create a new one with cairo @@ -2940,21 +2940,21 @@ void CHyprOpenGLImpl::createBGTextureForMonitor(PHLMONITOR pMonitor) { cairo_surface_flush(CAIROSURFACE); - tex->m_vSize = pMonitor->m_pixelSize; + tex->m_size = pMonitor->m_pixelSize; // copy the data to an OpenGL texture we have const GLint glFormat = GL_RGBA; const GLint glType = GL_UNSIGNED_BYTE; const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); - glBindTexture(GL_TEXTURE_2D, tex->m_iTexID); + glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); #ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); #endif - glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_vSize.x, tex->m_vSize.y, 0, glFormat, glType, DATA); + glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); cairo_destroy(CAIRO); @@ -2967,50 +2967,50 @@ void CHyprOpenGLImpl::createBGTextureForMonitor(PHLMONITOR pMonitor) { clear(CHyprColor{0, 0, 0, 1}); // first render the background - if (m_pBackgroundTexture) { - const double MONRATIO = m_RenderData.pMonitor->m_transformedSize.x / m_RenderData.pMonitor->m_transformedSize.y; - const double WPRATIO = m_pBackgroundTexture->m_vSize.x / m_pBackgroundTexture->m_vSize.y; + if (m_backgroundTexture) { + const double MONRATIO = m_renderData.pMonitor->m_transformedSize.x / m_renderData.pMonitor->m_transformedSize.y; + const double WPRATIO = m_backgroundTexture->m_size.x / m_backgroundTexture->m_size.y; Vector2D origin; double scale = 1.0; if (MONRATIO > WPRATIO) { - scale = m_RenderData.pMonitor->m_transformedSize.x / m_pBackgroundTexture->m_vSize.x; - origin.y = (m_RenderData.pMonitor->m_transformedSize.y - m_pBackgroundTexture->m_vSize.y * scale) / 2.0; + scale = m_renderData.pMonitor->m_transformedSize.x / m_backgroundTexture->m_size.x; + origin.y = (m_renderData.pMonitor->m_transformedSize.y - m_backgroundTexture->m_size.y * scale) / 2.0; } else { - scale = m_RenderData.pMonitor->m_transformedSize.y / m_pBackgroundTexture->m_vSize.y; - origin.x = (m_RenderData.pMonitor->m_transformedSize.x - m_pBackgroundTexture->m_vSize.x * scale) / 2.0; + scale = m_renderData.pMonitor->m_transformedSize.y / m_backgroundTexture->m_size.y; + origin.x = (m_renderData.pMonitor->m_transformedSize.x - m_backgroundTexture->m_size.x * scale) / 2.0; } - CBox texbox = CBox{origin, m_pBackgroundTexture->m_vSize * scale}; - renderTextureInternalWithDamage(m_pBackgroundTexture, texbox, 1.0, fakeDamage); + CBox texbox = CBox{origin, m_backgroundTexture->m_size * scale}; + renderTextureInternalWithDamage(m_backgroundTexture, texbox, 1.0, fakeDamage); } CBox monbox = {{}, pMonitor->m_pixelSize}; renderTextureInternalWithDamage(tex, monbox, 1.0, fakeDamage); // bind back - if (m_RenderData.currentFB) - m_RenderData.currentFB->bind(); + if (m_renderData.currentFB) + m_renderData.currentFB->bind(); Debug::log(LOG, "Background created for monitor {}", pMonitor->m_name); } void CHyprOpenGLImpl::clearWithTex() { - RASSERT(m_RenderData.pMonitor, "Tried to render BGtex without begin()!"); + RASSERT(m_renderData.pMonitor, "Tried to render BGtex without begin()!"); - auto TEXIT = m_mMonitorBGFBs.find(m_RenderData.pMonitor); + auto TEXIT = m_monitorBGFBs.find(m_renderData.pMonitor); - if (TEXIT == m_mMonitorBGFBs.end()) { - createBGTextureForMonitor(m_RenderData.pMonitor.lock()); - TEXIT = m_mMonitorBGFBs.find(m_RenderData.pMonitor); + if (TEXIT == m_monitorBGFBs.end()) { + createBGTextureForMonitor(m_renderData.pMonitor.lock()); + TEXIT = m_monitorBGFBs.find(m_renderData.pMonitor); } - if (TEXIT != m_mMonitorBGFBs.end()) { + if (TEXIT != m_monitorBGFBs.end()) { CTexPassElement::SRenderData data; - data.box = {0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; + data.box = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; data.flipEndFrame = true; data.tex = TEXIT->second.getTexture(); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } } @@ -3020,8 +3020,8 @@ void CHyprOpenGLImpl::destroyMonitorResources(PHLMONITORREF pMonitor) { if (!g_pHyprOpenGL) return; - auto RESIT = g_pHyprOpenGL->m_mMonitorRenderResources.find(pMonitor); - if (RESIT != g_pHyprOpenGL->m_mMonitorRenderResources.end()) { + auto RESIT = g_pHyprOpenGL->m_monitorRenderResources.find(pMonitor); + if (RESIT != g_pHyprOpenGL->m_monitorRenderResources.end()) { RESIT->second.mirrorFB.release(); RESIT->second.offloadFB.release(); RESIT->second.mirrorSwapFB.release(); @@ -3029,13 +3029,13 @@ void CHyprOpenGLImpl::destroyMonitorResources(PHLMONITORREF pMonitor) { RESIT->second.blurFB.release(); RESIT->second.offMainFB.release(); RESIT->second.stencilTex->destroyTexture(); - g_pHyprOpenGL->m_mMonitorRenderResources.erase(RESIT); + g_pHyprOpenGL->m_monitorRenderResources.erase(RESIT); } - auto TEXIT = g_pHyprOpenGL->m_mMonitorBGFBs.find(pMonitor); - if (TEXIT != g_pHyprOpenGL->m_mMonitorBGFBs.end()) { + auto TEXIT = g_pHyprOpenGL->m_monitorBGFBs.find(pMonitor); + if (TEXIT != g_pHyprOpenGL->m_monitorBGFBs.end()) { TEXIT->second.release(); - g_pHyprOpenGL->m_mMonitorBGFBs.erase(TEXIT); + g_pHyprOpenGL->m_monitorBGFBs.erase(TEXIT); } if (pMonitor) @@ -3043,46 +3043,46 @@ void CHyprOpenGLImpl::destroyMonitorResources(PHLMONITORREF pMonitor) { } void CHyprOpenGLImpl::saveMatrix() { - m_RenderData.savedProjection = m_RenderData.projection; + m_renderData.savedProjection = m_renderData.projection; } void CHyprOpenGLImpl::setMatrixScaleTranslate(const Vector2D& translate, const float& scale) { - m_RenderData.projection.scale(scale).translate(translate); + m_renderData.projection.scale(scale).translate(translate); } void CHyprOpenGLImpl::restoreMatrix() { - m_RenderData.projection = m_RenderData.savedProjection; + m_renderData.projection = m_renderData.savedProjection; } void CHyprOpenGLImpl::bindOffMain() { - if (!m_RenderData.pCurrentMonData->offMainFB.isAllocated()) { - m_RenderData.pCurrentMonData->offMainFB.alloc(m_RenderData.pMonitor->m_pixelSize.x, m_RenderData.pMonitor->m_pixelSize.y, - m_RenderData.pMonitor->m_output->state->state().drmFormat); + if (!m_renderData.pCurrentMonData->offMainFB.isAllocated()) { + m_renderData.pCurrentMonData->offMainFB.alloc(m_renderData.pMonitor->m_pixelSize.x, m_renderData.pMonitor->m_pixelSize.y, + m_renderData.pMonitor->m_output->state->state().drmFormat); - m_RenderData.pCurrentMonData->offMainFB.addStencil(m_RenderData.pCurrentMonData->stencilTex); + m_renderData.pCurrentMonData->offMainFB.addStencil(m_renderData.pCurrentMonData->stencilTex); } - m_RenderData.pCurrentMonData->offMainFB.bind(); + m_renderData.pCurrentMonData->offMainFB.bind(); clear(CHyprColor(0, 0, 0, 0)); - m_RenderData.currentFB = &m_RenderData.pCurrentMonData->offMainFB; + m_renderData.currentFB = &m_renderData.pCurrentMonData->offMainFB; } void CHyprOpenGLImpl::renderOffToMain(CFramebuffer* off) { - CBox monbox = {0, 0, m_RenderData.pMonitor->m_transformedSize.x, m_RenderData.pMonitor->m_transformedSize.y}; + CBox monbox = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y}; renderTexturePrimitive(off->getTexture(), monbox); } void CHyprOpenGLImpl::bindBackOnMain() { - m_RenderData.mainFB->bind(); - m_RenderData.currentFB = m_RenderData.mainFB; + m_renderData.mainFB->bind(); + m_renderData.currentFB = m_renderData.mainFB; } void CHyprOpenGLImpl::setMonitorTransformEnabled(bool enabled) { - m_bEndFrame = enabled; + m_endFrame = enabled; } void CHyprOpenGLImpl::setRenderModifEnabled(bool enabled) { - m_RenderData.renderModif.enabled = enabled; + m_renderData.renderModif.enabled = enabled; } uint32_t CHyprOpenGLImpl::getPreferredReadFormat(PHLMONITOR pMonitor) { @@ -3090,7 +3090,7 @@ uint32_t CHyprOpenGLImpl::getPreferredReadFormat(PHLMONITOR pMonitor) { } std::vector CHyprOpenGLImpl::getDRMFormats() { - return drmFormats; + return m_drmFormats; } void SRenderModifData::applyToBox(CBox& box) { @@ -3155,7 +3155,7 @@ float SRenderModifData::combinedScale() { } UP CEGLSync::create() { - EGLSyncKHR sync = g_pHyprOpenGL->m_sProc.eglCreateSyncKHR(g_pHyprOpenGL->m_pEglDisplay, EGL_SYNC_NATIVE_FENCE_ANDROID, nullptr); + EGLSyncKHR sync = g_pHyprOpenGL->m_proc.eglCreateSyncKHR(g_pHyprOpenGL->m_eglDisplay, EGL_SYNC_NATIVE_FENCE_ANDROID, nullptr); if (sync == EGL_NO_SYNC_KHR) { Debug::log(ERR, "eglCreateSyncKHR failed"); @@ -3165,7 +3165,7 @@ UP CEGLSync::create() { // we need to flush otherwise we might not get a valid fd glFlush(); - int fd = g_pHyprOpenGL->m_sProc.eglDupNativeFenceFDANDROID(g_pHyprOpenGL->m_pEglDisplay, sync); + int fd = g_pHyprOpenGL->m_proc.eglDupNativeFenceFDANDROID(g_pHyprOpenGL->m_eglDisplay, sync); if (fd == EGL_NO_NATIVE_FENCE_FD_ANDROID) { Debug::log(ERR, "eglDupNativeFenceFDANDROID failed"); return nullptr; @@ -3183,7 +3183,7 @@ CEGLSync::~CEGLSync() { if (m_sync == EGL_NO_SYNC_KHR) return; - if (g_pHyprOpenGL && g_pHyprOpenGL->m_sProc.eglDestroySyncKHR(g_pHyprOpenGL->m_pEglDisplay, m_sync) != EGL_TRUE) + if (g_pHyprOpenGL && g_pHyprOpenGL->m_proc.eglDestroySyncKHR(g_pHyprOpenGL->m_eglDisplay, m_sync) != EGL_TRUE) Debug::log(ERR, "eglDestroySyncKHR failed"); } diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index 21602d07..f4e9bdc4 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -239,24 +239,24 @@ class CHyprOpenGLImpl { EGLImageKHR createEGLImage(const Aquamarine::SDMABUFAttrs& attrs); bool initShaders(); - bool m_bShadersInitialized = false; + bool m_shadersInitialized = false; SP m_shaders; - SCurrentRenderData m_RenderData; + SCurrentRenderData m_renderData; - Hyprutils::OS::CFileDescriptor m_iGBMFD; - gbm_device* m_pGbmDevice = nullptr; - EGLContext m_pEglContext = nullptr; - EGLDisplay m_pEglDisplay = nullptr; - EGLDeviceEXT m_pEglDevice = nullptr; - uint failedAssetsNo = 0; + Hyprutils::OS::CFileDescriptor m_gbmFD; + gbm_device* m_gbmDevice = nullptr; + EGLContext m_eglContext = nullptr; + EGLDisplay m_eglDisplay = nullptr; + EGLDeviceEXT m_eglDevice = nullptr; + uint m_failedAssetsNo = 0; - bool m_bReloadScreenShader = true; // at launch it can be set + bool m_reloadScreenShader = true; // at launch it can be set - std::map m_mWindowFramebuffers; - std::map m_mLayerFramebuffers; - std::map m_mMonitorRenderResources; - std::map m_mMonitorBGFBs; + std::map m_windowFramebuffers; + std::map m_layerFramebuffers; + std::map m_monitorRenderResources; + std::map m_monitorBGFBs; struct { PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC glEGLImageTargetRenderbufferStorageOES = nullptr; @@ -274,7 +274,7 @@ class CHyprOpenGLImpl { PFNEGLDESTROYSYNCKHRPROC eglDestroySyncKHR = nullptr; PFNEGLDUPNATIVEFENCEFDANDROIDPROC eglDupNativeFenceFDANDROID = nullptr; PFNEGLWAITSYNCKHRPROC eglWaitSyncKHR = nullptr; - } m_sProc; + } m_proc; struct { bool EXT_read_format_bgra = false; @@ -283,9 +283,9 @@ class CHyprOpenGLImpl { bool KHR_display_reference = false; bool IMG_context_priority = false; bool EXT_create_context_robustness = false; - } m_sExts; + } m_exts; - SP m_pScreencopyDeniedTexture; + SP m_screencopyDeniedTexture; private: enum eEGLContextVersion : uint8_t { @@ -296,26 +296,27 @@ class CHyprOpenGLImpl { eEGLContextVersion m_eglContextVersion = EGL_CONTEXT_GLES_3_2; - std::list m_lBuffers; - std::list m_lTextures; + std::vector m_drmFormats; + bool m_hasModifiers = false; - std::vector drmFormats; - bool m_bHasModifiers = false; + int m_drmFD = -1; + std::string m_extensions; - int m_iDRMFD = -1; - std::string m_szExtensions; + bool m_fakeFrame = false; + bool m_endFrame = false; + bool m_applyFinalShader = false; + bool m_blend = false; + bool m_offloadedFramebuffer = false; + bool m_cmSupported = true; - bool m_bFakeFrame = false; - bool m_bEndFrame = false; - bool m_bApplyFinalShader = false; - bool m_bBlend = false; - bool m_bOffloadedFramebuffer = false; - bool m_bCMSupported = true; + CShader m_finalScreenShader; + CTimer m_globalTimer; - CShader m_sFinalScreenShader; - CTimer m_tGlobalTimer; - - SP m_pMissingAssetTexture, m_pBackgroundTexture, m_pLockDeadTexture, m_pLockDead2Texture, m_pLockTtyTextTexture; // TODO: don't always load lock + SP m_missingAssetTexture; + SP m_backgroundTexture; + SP m_lockDeadTexture; + SP m_lockDead2Texture; + SP m_lockTtyTextTexture; // TODO: don't always load lock void logShaderError(const GLuint&, bool program = false, bool silent = false); GLuint createProgram(const std::string&, const std::string&, bool dynamic = false, bool silent = false); diff --git a/src/render/Renderbuffer.cpp b/src/render/Renderbuffer.cpp index c5e3b3a4..addc99a8 100644 --- a/src/render/Renderbuffer.cpp +++ b/src/render/Renderbuffer.cpp @@ -15,62 +15,62 @@ CRenderbuffer::~CRenderbuffer() { g_pHyprRenderer->makeEGLCurrent(); unbind(); - m_sFramebuffer.release(); - glDeleteRenderbuffers(1, &m_iRBO); + m_framebuffer.release(); + glDeleteRenderbuffers(1, &m_rbo); - g_pHyprOpenGL->m_sProc.eglDestroyImageKHR(g_pHyprOpenGL->m_pEglDisplay, m_iImage); + g_pHyprOpenGL->m_proc.eglDestroyImageKHR(g_pHyprOpenGL->m_eglDisplay, m_image); } -CRenderbuffer::CRenderbuffer(SP buffer, uint32_t format) : m_pHLBuffer(buffer), m_uDrmFormat(format) { +CRenderbuffer::CRenderbuffer(SP buffer, uint32_t format) : m_hlBuffer(buffer), m_drmFormat(format) { auto dma = buffer->dmabuf(); - m_iImage = g_pHyprOpenGL->createEGLImage(dma); - if (m_iImage == EGL_NO_IMAGE_KHR) { + m_image = g_pHyprOpenGL->createEGLImage(dma); + if (m_image == EGL_NO_IMAGE_KHR) { Debug::log(ERR, "rb: createEGLImage failed"); return; } - glGenRenderbuffers(1, &m_iRBO); - glBindRenderbuffer(GL_RENDERBUFFER, m_iRBO); - g_pHyprOpenGL->m_sProc.glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, (GLeglImageOES)m_iImage); + glGenRenderbuffers(1, &m_rbo); + glBindRenderbuffer(GL_RENDERBUFFER, m_rbo); + g_pHyprOpenGL->m_proc.glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, (GLeglImageOES)m_image); glBindRenderbuffer(GL_RENDERBUFFER, 0); - glGenFramebuffers(1, &m_sFramebuffer.m_iFb); - m_sFramebuffer.m_iFbAllocated = true; - m_sFramebuffer.m_vSize = buffer->size; - m_sFramebuffer.bind(); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_iRBO); + glGenFramebuffers(1, &m_framebuffer.m_fb); + m_framebuffer.m_fbAllocated = true; + m_framebuffer.m_size = buffer->size; + m_framebuffer.bind(); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_rbo); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { Debug::log(ERR, "rbo: glCheckFramebufferStatus failed"); return; } - m_sFramebuffer.unbind(); + m_framebuffer.unbind(); - listeners.destroyBuffer = buffer->events.destroy.registerListener([this](std::any d) { g_pHyprRenderer->onRenderbufferDestroy(this); }); + m_listeners.destroyBuffer = buffer->events.destroy.registerListener([this](std::any d) { g_pHyprRenderer->onRenderbufferDestroy(this); }); - m_bGood = true; + m_good = true; } bool CRenderbuffer::good() { - return m_bGood; + return m_good; } void CRenderbuffer::bind() { - glBindRenderbuffer(GL_RENDERBUFFER, m_iRBO); + glBindRenderbuffer(GL_RENDERBUFFER, m_rbo); bindFB(); } void CRenderbuffer::bindFB() { - m_sFramebuffer.bind(); + m_framebuffer.bind(); } void CRenderbuffer::unbind() { glBindRenderbuffer(GL_RENDERBUFFER, 0); - m_sFramebuffer.unbind(); + m_framebuffer.unbind(); } CFramebuffer* CRenderbuffer::getFB() { - return &m_sFramebuffer; + return &m_framebuffer; } diff --git a/src/render/Renderbuffer.hpp b/src/render/Renderbuffer.hpp index ff06bd5a..c0924141 100644 --- a/src/render/Renderbuffer.hpp +++ b/src/render/Renderbuffer.hpp @@ -19,16 +19,16 @@ class CRenderbuffer { CFramebuffer* getFB(); uint32_t getFormat(); - WP m_pHLBuffer; + WP m_hlBuffer; private: - void* m_iImage = nullptr; - GLuint m_iRBO = 0; - CFramebuffer m_sFramebuffer; - uint32_t m_uDrmFormat = 0; - bool m_bGood = false; + void* m_image = nullptr; + GLuint m_rbo = 0; + CFramebuffer m_framebuffer; + uint32_t m_drmFormat = 0; + bool m_good = false; struct { CHyprSignalListener destroyBuffer; - } listeners; + } m_listeners; }; \ No newline at end of file diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 205e206a..ed767cbd 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -48,7 +48,7 @@ extern "C" { static int cursorTicker(void* data) { g_pHyprRenderer->ensureCursorRenderingMode(); - wl_event_source_timer_update(g_pHyprRenderer->m_pCursorTicker, 500); + wl_event_source_timer_update(g_pHyprRenderer->m_cursorTicker, 500); return 0; } @@ -62,7 +62,7 @@ CHyprRenderer::CHyprRenderer() { std::transform(name.begin(), name.end(), name.begin(), tolower); if (name.contains("nvidia")) - m_bNvidia = true; + m_nvidia = true; Debug::log(LOG, "DRM driver information: {} v{}.{}.{} from {} description {}", name, DRMV->version_major, DRMV->version_minor, DRMV->version_patchlevel, std::string{DRMV->date, DRMV->date_len}, std::string{DRMV->desc, DRMV->desc_len}); @@ -79,7 +79,7 @@ CHyprRenderer::CHyprRenderer() { std::transform(name.begin(), name.end(), name.begin(), tolower); if (name.contains("nvidia")) - m_bNvidia = true; + m_nvidia = true; Debug::log(LOG, "Primary DRM driver information: {} v{}.{}.{} from {} description {}", name, DRMV->version_major, DRMV->version_minor, DRMV->version_patchlevel, std::string{DRMV->date, DRMV->date_len}, std::string{DRMV->desc, DRMV->desc_len}); @@ -90,27 +90,26 @@ CHyprRenderer::CHyprRenderer() { drmFreeVersion(DRMV); } - if (m_bNvidia) + if (m_nvidia) Debug::log(WARN, "NVIDIA detected, please remember to follow nvidia instructions on the wiki"); // cursor hiding stuff static auto P = g_pHookSystem->hookDynamic("keyPress", [&](void* self, SCallbackInfo& info, std::any param) { - if (m_sCursorHiddenConditions.hiddenOnKeyboard) + if (m_cursorHiddenConditions.hiddenOnKeyboard) return; - m_sCursorHiddenConditions.hiddenOnKeyboard = true; + m_cursorHiddenConditions.hiddenOnKeyboard = true; ensureCursorRenderingMode(); }); static auto P2 = g_pHookSystem->hookDynamic("mouseMove", [&](void* self, SCallbackInfo& info, std::any param) { - if (!m_sCursorHiddenConditions.hiddenOnKeyboard && m_sCursorHiddenConditions.hiddenOnTouch == g_pInputManager->m_lastInputTouch && - !m_sCursorHiddenConditions.hiddenOnTimeout) + if (!m_cursorHiddenConditions.hiddenOnKeyboard && m_cursorHiddenConditions.hiddenOnTouch == g_pInputManager->m_lastInputTouch && !m_cursorHiddenConditions.hiddenOnTimeout) return; - m_sCursorHiddenConditions.hiddenOnKeyboard = false; - m_sCursorHiddenConditions.hiddenOnTimeout = false; - m_sCursorHiddenConditions.hiddenOnTouch = g_pInputManager->m_lastInputTouch; + m_cursorHiddenConditions.hiddenOnKeyboard = false; + m_cursorHiddenConditions.hiddenOnTimeout = false; + m_cursorHiddenConditions.hiddenOnTouch = g_pInputManager->m_lastInputTouch; ensureCursorRenderingMode(); }); @@ -124,19 +123,19 @@ CHyprRenderer::CHyprRenderer() { }); }); - m_pCursorTicker = wl_event_loop_add_timer(g_pCompositor->m_wlEventLoop, cursorTicker, nullptr); - wl_event_source_timer_update(m_pCursorTicker, 500); + m_cursorTicker = wl_event_loop_add_timer(g_pCompositor->m_wlEventLoop, cursorTicker, nullptr); + wl_event_source_timer_update(m_cursorTicker, 500); - m_tRenderUnfocusedTimer = makeShared( + m_renderUnfocusedTimer = makeShared( std::nullopt, [this](SP self, void* data) { static auto PFPS = CConfigValue("misc:render_unfocused_fps"); - if (m_vRenderUnfocused.empty()) + if (m_renderUnfocused.empty()) return; bool dirty = false; - for (auto& w : m_vRenderUnfocused) { + for (auto& w : m_renderUnfocused) { if (!w) { dirty = true; continue; @@ -153,19 +152,19 @@ CHyprRenderer::CHyprRenderer() { } if (dirty) - std::erase_if(m_vRenderUnfocused, [](const auto& e) { return !e || !e->m_windowData.renderUnfocused.valueOr(false); }); + std::erase_if(m_renderUnfocused, [](const auto& e) { return !e || !e->m_windowData.renderUnfocused.valueOr(false); }); - if (!m_vRenderUnfocused.empty()) - m_tRenderUnfocusedTimer->updateTimeout(std::chrono::milliseconds(1000 / *PFPS)); + if (!m_renderUnfocused.empty()) + m_renderUnfocusedTimer->updateTimeout(std::chrono::milliseconds(1000 / *PFPS)); }, nullptr); - g_pEventLoopManager->addTimer(m_tRenderUnfocusedTimer); + g_pEventLoopManager->addTimer(m_renderUnfocusedTimer); } CHyprRenderer::~CHyprRenderer() { - if (m_pCursorTicker) - wl_event_source_remove(m_pCursorTicker); + if (m_cursorTicker) + wl_event_source_remove(m_cursorTicker); } bool CHyprRenderer::shouldRenderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor) { @@ -521,11 +520,11 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T EMIT_HOOK_EVENT("render", RENDER_PRE_WINDOW); if (*PDIMAROUND && pWindow->m_windowData.dimAround.valueOrDefault() && !m_bRenderingSnapshot && mode != RENDER_PASS_POPUP) { - CBox monbox = {0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize.y}; + CBox monbox = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y}; CRectPassElement::SRectData data; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * renderdata.alpha * renderdata.fadeAlpha); data.box = monbox; - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); } renderdata.pos.x += pWindow->m_floatingOffset.x; @@ -581,7 +580,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T data.blur = true; data.blurA = renderdata.fadeAlpha; data.xray = g_pHyprOpenGL->shouldUseNewBlurOptimizations(nullptr, pWindow); - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); renderdata.blur = false; } @@ -592,7 +591,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pWindow->m_wlSurface->resource(); - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, nullptr); @@ -609,7 +608,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T } if (TRANSFORMERSPRESENT) { - CFramebuffer* last = g_pHyprOpenGL->m_RenderData.currentFB; + CFramebuffer* last = g_pHyprOpenGL->m_renderData.currentFB; for (auto const& t : pWindow->m_transformers) { last = t->transform(last); } @@ -619,7 +618,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T } } - g_pHyprOpenGL->m_RenderData.clipBox = CBox(); + g_pHyprOpenGL->m_renderData.clipBox = CBox(); if (mode == RENDER_PASS_ALL || mode == RENDER_PASS_POPUP) { if (!pWindow->m_isX11) { @@ -660,7 +659,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = false; - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, data); @@ -681,11 +680,11 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T } // for plugins - g_pHyprOpenGL->m_RenderData.currentWindow = pWindow; + g_pHyprOpenGL->m_renderData.currentWindow = pWindow; EMIT_HOOK_EVENT("render", RENDER_POST_WINDOW); - g_pHyprOpenGL->m_RenderData.currentWindow.reset(); + g_pHyprOpenGL->m_renderData.currentWindow.reset(); } void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::steady_tp& time, bool popups, bool lockscreen) { @@ -700,9 +699,9 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s if (*PDIMAROUND && pLayer->m_dimAround && !m_bRenderingSnapshot && !popups) { CRectPassElement::SRectData data; - data.box = {0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize.y}; + data.box = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y}; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * pLayer->m_alpha->value()); - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); } if (pLayer->m_fadingOut) { @@ -742,7 +741,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pLayer->m_surface->resource(); - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -763,7 +762,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s renderdata.texture = popup->m_wlSurface->resource()->m_current.texture; renderdata.surface = popup->m_wlSurface->resource(); renderdata.mainSurface = false; - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -798,7 +797,7 @@ void CHyprRenderer::renderIMEPopup(CInputPopup* pPopup, PHLMONITOR pMonitor, con renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == SURF; - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -819,7 +818,7 @@ void CHyprRenderer::renderSessionLockSurface(WP pSurface, P renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pSurface->surface->surface(); - m_sRenderPass.add(makeShared(renderdata)); + m_renderPass.add(makeShared(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -853,12 +852,12 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA RENDERMODIFDATA.modifs.emplace_back(std::make_pair<>(SRenderModifData::eRenderModifType::RMOD_TYPE_SCALE, scale)); if (!RENDERMODIFDATA.modifs.empty()) { - g_pHyprRenderer->m_sRenderPass.add(makeShared(CRendererHintsPassElement::SData{RENDERMODIFDATA})); + g_pHyprRenderer->m_renderPass.add(makeShared(CRendererHintsPassElement::SData{RENDERMODIFDATA})); } CScopeGuard x([&RENDERMODIFDATA] { if (!RENDERMODIFDATA.modifs.empty()) { - g_pHyprRenderer->m_sRenderPass.add(makeShared(CRendererHintsPassElement::SData{SRenderModifData{}})); + g_pHyprRenderer->m_renderPass.add(makeShared(CRendererHintsPassElement::SData{SRenderModifData{}})); } }); @@ -866,7 +865,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA // allow rendering without a workspace. In this case, just render layers. if (*PRENDERTEX /* inverted cfg flag */) - m_sRenderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); + m_renderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); else g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" @@ -888,7 +887,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA if (!*PXPMODE) { if (*PRENDERTEX /* inverted cfg flag */) - m_sRenderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); + m_renderPass.add(makeShared(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); else g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" @@ -919,7 +918,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA data.box = {translate.x, translate.y, pMonitor->m_transformedSize.x * scale, pMonitor->m_transformedSize.y * scale}; data.color = CHyprColor(0, 0, 0, *PDIMSPECIAL * (ANIMOUT ? (1.0 - SPECIALANIMPROGRS) : SPECIALANIMPROGRS)); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } if (*PBLURSPECIAL && *PBLUR) { @@ -929,7 +928,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA data.blur = true; data.blurA = (ANIMOUT ? (1.0 - SPECIALANIMPROGRS) : SPECIALANIMPROGRS); - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } break; @@ -1027,15 +1026,15 @@ void CHyprRenderer::renderSessionLockMissing(PHLMONITOR pMonitor) { if (ANY_PRESENT) { // render image2, without instructions. Lock still "alive", unless texture dead - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pLockDead2Texture, monbox, ALPHA); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_lockDead2Texture, monbox, ALPHA); } else { // render image, with instructions. Lock is gone. - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pLockDeadTexture, monbox, ALPHA); + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_lockDeadTexture, monbox, ALPHA); // also render text for the tty number - if (g_pHyprOpenGL->m_pLockTtyTextTexture) { - CBox texbox = {{}, g_pHyprOpenGL->m_pLockTtyTextTexture->m_vSize}; - g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_pLockTtyTextTexture, texbox, 1.F); + if (g_pHyprOpenGL->m_lockTtyTextTexture) { + CBox texbox = {{}, g_pHyprOpenGL->m_lockTtyTextTexture->m_size}; + g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_lockTtyTextTexture, texbox, 1.F); } } @@ -1096,13 +1095,13 @@ void CHyprRenderer::calculateUVForSurface(PHLWINDOW pWindow, SPm_RenderData.primarySurfaceUVTopLeft = uvTL; - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = uvBR; + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = uvTL; + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = uvBR; - if (g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft == Vector2D() && g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight == Vector2D(1, 1)) { + if (g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft == Vector2D() && g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight == Vector2D(1, 1)) { // No special UV mods needed - g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); } if (!main || !pWindow) @@ -1132,17 +1131,17 @@ void CHyprRenderer::calculateUVForSurface(PHLWINDOW pWindow, SPm_RenderData.primarySurfaceUVTopLeft = uvTL; - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = uvBR; + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = uvTL; + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = uvBR; - if (g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft == Vector2D() && g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight == Vector2D(1, 1)) { + if (g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft == Vector2D() && g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight == Vector2D(1, 1)) { // No special UV mods needed - g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); } } else { - g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); } } @@ -1173,15 +1172,15 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { if (firstLaunch) { firstLaunch = false; - m_tRenderTimer.reset(); + m_renderTimer.reset(); } - if (m_tRenderTimer.getSeconds() < 1.5f && firstLaunchAnimActive) { // TODO: make the animation system more damage-flexible so that this can be migrated to there + if (m_renderTimer.getSeconds() < 1.5f && firstLaunchAnimActive) { // TODO: make the animation system more damage-flexible so that this can be migrated to there if (!*PANIMENABLED) { zoomInFactorFirstLaunch = 1.f; firstLaunchAnimActive = false; } else { - zoomInFactorFirstLaunch = 2.f - g_pAnimationManager->getBezier("default")->getYForPoint(m_tRenderTimer.getSeconds() / 1.5); + zoomInFactorFirstLaunch = 2.f - g_pAnimationManager->getBezier("default")->getYForPoint(m_renderTimer.getSeconds() / 1.5); damageMonitor(pMonitor); } } else { @@ -1196,7 +1195,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { if (!g_pCompositor->m_sessionActive) return; - if (pMonitor->m_id == m_pMostHzMonitor->m_id || + if (pMonitor->m_id == m_mostHzMonitor->m_id || *PVFR == 1) { // unfortunately with VFR we don't have the guarantee mostHz is going to be updated all the time, so we have to ignore that g_pCompositor->sanityCheckWorkspaces(); @@ -1224,7 +1223,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { return; } - if (g_pHyprOpenGL->m_RenderData.mouseZoomFactor != 1.0) { + if (g_pHyprOpenGL->m_renderData.mouseZoomFactor != 1.0) { Debug::log(WARN, "Tearing commit requested but scale factor is not 1, ignoring"); return; } @@ -1295,14 +1294,14 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { } if (pMonitor == g_pCompositor->getMonitorFromCursor()) - g_pHyprOpenGL->m_RenderData.mouseZoomFactor = std::clamp(*PZOOMFACTOR, 1.f, INFINITY); + g_pHyprOpenGL->m_renderData.mouseZoomFactor = std::clamp(*PZOOMFACTOR, 1.f, INFINITY); else - g_pHyprOpenGL->m_RenderData.mouseZoomFactor = 1.f; + g_pHyprOpenGL->m_renderData.mouseZoomFactor = 1.f; if (zoomInFactorFirstLaunch > 1.f) { - g_pHyprOpenGL->m_RenderData.mouseZoomFactor = zoomInFactorFirstLaunch; - g_pHyprOpenGL->m_RenderData.mouseZoomUseMouse = false; - g_pHyprOpenGL->m_RenderData.useNearestNeighbor = false; + g_pHyprOpenGL->m_renderData.mouseZoomFactor = zoomInFactorFirstLaunch; + g_pHyprOpenGL->m_renderData.mouseZoomUseMouse = false; + g_pHyprOpenGL->m_renderData.useNearestNeighbor = false; pMonitor->m_forceFullFrames = 10; } @@ -1361,7 +1360,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { CRectPassElement::SRectData data; data.box = {0, 0, pMonitor->m_transformedSize.x, pMonitor->m_transformedSize.y}; data.color = CHyprColor(1.0, 0.0, 1.0, 100.0 / 255.0); - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); damageBlinkCleanup = 1; } else if (*PDAMAGEBLINK) { damageBlinkCleanup++; @@ -1381,7 +1380,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { if (renderCursor) { TRACY_GPU_ZONE("RenderCursor"); - g_pPointerManager->renderSoftwareCursorsFor(pMonitor->m_self.lock(), NOW, g_pHyprOpenGL->m_RenderData.damage); + g_pPointerManager->renderSoftwareCursorsFor(pMonitor->m_self.lock(), NOW, g_pHyprOpenGL->m_renderData.damage); } EMIT_HOOK_EVENT("render", RENDER_LAST_MOMENT); @@ -1390,7 +1389,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { TRACY_GPU_COLLECT; - CRegion frameDamage{g_pHyprOpenGL->m_RenderData.damage}; + CRegion frameDamage{g_pHyprOpenGL->m_renderData.damage}; const auto TRANSFORM = invertTransform(pMonitor->m_transform); frameDamage.transform(wlTransformToHyprutils(TRANSFORM), pMonitor->m_transformedSize.x, pMonitor->m_transformedSize.y); @@ -1964,29 +1963,29 @@ void CHyprRenderer::renderDragIcon(PHLMONITOR pMonitor, const Time::steady_tp& t } void CHyprRenderer::setCursorSurface(SP surf, int hotspotX, int hotspotY, bool force) { - m_bCursorHasSurface = surf; + m_cursorHasSurface = surf; - m_sLastCursorData.name = ""; - m_sLastCursorData.surf = surf; - m_sLastCursorData.hotspotX = hotspotX; - m_sLastCursorData.hotspotY = hotspotY; + m_lastCursorData.name = ""; + m_lastCursorData.surf = surf; + m_lastCursorData.hotspotX = hotspotX; + m_lastCursorData.hotspotY = hotspotY; - if (m_bCursorHidden && !force) + if (m_cursorHidden && !force) return; g_pCursorManager->setCursorSurface(surf, {hotspotX, hotspotY}); } void CHyprRenderer::setCursorFromName(const std::string& name, bool force) { - m_bCursorHasSurface = true; + m_cursorHasSurface = true; - if (name == m_sLastCursorData.name && !force) + if (name == m_lastCursorData.name && !force) return; - m_sLastCursorData.name = name; - m_sLastCursorData.surf.reset(); + m_lastCursorData.name = name; + m_lastCursorData.surf.reset(); - if (m_bCursorHidden && !force) + if (m_cursorHidden && !force) return; g_pCursorManager->setCursorFromName(name); @@ -1998,18 +1997,18 @@ void CHyprRenderer::ensureCursorRenderingMode() { static auto PHIDEONKEY = CConfigValue("cursor:hide_on_key_press"); if (*PCURSORTIMEOUT <= 0) - m_sCursorHiddenConditions.hiddenOnTimeout = false; + m_cursorHiddenConditions.hiddenOnTimeout = false; if (*PHIDEONTOUCH == 0) - m_sCursorHiddenConditions.hiddenOnTouch = false; + m_cursorHiddenConditions.hiddenOnTouch = false; if (*PHIDEONKEY == 0) - m_sCursorHiddenConditions.hiddenOnKeyboard = false; + m_cursorHiddenConditions.hiddenOnKeyboard = false; if (*PCURSORTIMEOUT > 0) - m_sCursorHiddenConditions.hiddenOnTimeout = *PCURSORTIMEOUT < g_pInputManager->m_lastCursorMovement.getSeconds(); + m_cursorHiddenConditions.hiddenOnTimeout = *PCURSORTIMEOUT < g_pInputManager->m_lastCursorMovement.getSeconds(); - const bool HIDE = m_sCursorHiddenConditions.hiddenOnTimeout || m_sCursorHiddenConditions.hiddenOnTouch || m_sCursorHiddenConditions.hiddenOnKeyboard; + const bool HIDE = m_cursorHiddenConditions.hiddenOnTimeout || m_cursorHiddenConditions.hiddenOnTouch || m_cursorHiddenConditions.hiddenOnKeyboard; - if (HIDE == m_bCursorHidden) + if (HIDE == m_cursorHidden) return; if (HIDE) { @@ -2040,26 +2039,26 @@ void CHyprRenderer::ensureCursorRenderingMode() { void CHyprRenderer::setCursorHidden(bool hide) { - if (hide == m_bCursorHidden) + if (hide == m_cursorHidden) return; - m_bCursorHidden = hide; + m_cursorHidden = hide; if (hide) { g_pPointerManager->resetCursorImage(); return; } - if (m_sLastCursorData.surf.has_value()) - setCursorSurface(m_sLastCursorData.surf.value(), m_sLastCursorData.hotspotX, m_sLastCursorData.hotspotY, true); - else if (!m_sLastCursorData.name.empty()) - setCursorFromName(m_sLastCursorData.name, true); + if (m_lastCursorData.surf.has_value()) + setCursorSurface(m_lastCursorData.surf.value(), m_lastCursorData.hotspotX, m_lastCursorData.hotspotY, true); + else if (!m_lastCursorData.name.empty()) + setCursorFromName(m_lastCursorData.name, true); else setCursorFromName("left_ptr", true); } bool CHyprRenderer::shouldRenderCursor() { - return !m_bCursorHidden && m_bCursorHasSurface; + return !m_cursorHidden && m_cursorHasSurface; } std::tuple CHyprRenderer::getRenderTimes(PHLMONITOR pMonitor) { @@ -2082,15 +2081,15 @@ std::tuple CHyprRenderer::getRenderTimes(PHLMONITOR pMonito static int handleCrashLoop(void* data) { - g_pHyprNotificationOverlay->addNotification("Hyprland will crash in " + std::to_string(10 - (int)(g_pHyprRenderer->m_fCrashingDistort * 2.f)) + "s.", CHyprColor(0), 5000, + g_pHyprNotificationOverlay->addNotification("Hyprland will crash in " + std::to_string(10 - (int)(g_pHyprRenderer->m_crashingDistort * 2.f)) + "s.", CHyprColor(0), 5000, ICON_INFO); - g_pHyprRenderer->m_fCrashingDistort += 0.5f; + g_pHyprRenderer->m_crashingDistort += 0.5f; - if (g_pHyprRenderer->m_fCrashingDistort >= 5.5f) + if (g_pHyprRenderer->m_crashingDistort >= 5.5f) raise(SIGABRT); - wl_event_source_timer_update(g_pHyprRenderer->m_pCrashingLoop, 1000); + wl_event_source_timer_update(g_pHyprRenderer->m_crashingLoop, 1000); return 1; } @@ -2098,13 +2097,13 @@ static int handleCrashLoop(void* data) { void CHyprRenderer::initiateManualCrash() { g_pHyprNotificationOverlay->addNotification("Manual crash initiated. Farewell...", CHyprColor(0), 5000, ICON_INFO); - m_pCrashingLoop = wl_event_loop_add_timer(g_pCompositor->m_wlEventLoop, handleCrashLoop, nullptr); - wl_event_source_timer_update(m_pCrashingLoop, 1000); + m_crashingLoop = wl_event_loop_add_timer(g_pCompositor->m_wlEventLoop, handleCrashLoop, nullptr); + wl_event_source_timer_update(m_crashingLoop, 1000); - m_bCrashingInProgress = true; - m_fCrashingDistort = 0.5; + m_crashingInProgress = true; + m_crashingDistort = 0.5; - g_pHyprOpenGL->m_tGlobalTimer.reset(); + g_pHyprOpenGL->m_globalTimer.reset(); static auto PDT = (Hyprlang::INT* const*)(g_pConfigManager->getConfigValuePtr("debug:damage_tracking")); @@ -2169,9 +2168,9 @@ void CHyprRenderer::recheckSolitaryForMonitor(PHLMONITOR pMonitor) { } SP CHyprRenderer::getOrCreateRenderbuffer(SP buffer, uint32_t fmt) { - auto it = std::find_if(m_vRenderbuffers.begin(), m_vRenderbuffers.end(), [&](const auto& other) { return other->m_pHLBuffer == buffer; }); + auto it = std::find_if(m_renderbuffers.begin(), m_renderbuffers.end(), [&](const auto& other) { return other->m_hlBuffer == buffer; }); - if (it != m_vRenderbuffers.end()) + if (it != m_renderbuffers.end()) return *it; auto buf = makeShared(buffer, fmt); @@ -2179,7 +2178,7 @@ SP CHyprRenderer::getOrCreateRenderbuffer(SP if (!buf->good()) return nullptr; - m_vRenderbuffers.emplace_back(buf); + m_renderbuffers.emplace_back(buf); return buf; } @@ -2187,26 +2186,26 @@ void CHyprRenderer::makeEGLCurrent() { if (!g_pCompositor || !g_pHyprOpenGL) return; - if (eglGetCurrentContext() != g_pHyprOpenGL->m_pEglContext) - eglMakeCurrent(g_pHyprOpenGL->m_pEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, g_pHyprOpenGL->m_pEglContext); + if (eglGetCurrentContext() != g_pHyprOpenGL->m_eglContext) + eglMakeCurrent(g_pHyprOpenGL->m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, g_pHyprOpenGL->m_eglContext); } void CHyprRenderer::unsetEGL() { if (!g_pHyprOpenGL) return; - eglMakeCurrent(g_pHyprOpenGL->m_pEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglMakeCurrent(g_pHyprOpenGL->m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); } bool CHyprRenderer::beginRender(PHLMONITOR pMonitor, CRegion& damage, eRenderMode mode, SP buffer, CFramebuffer* fb, bool simple) { makeEGLCurrent(); - m_sRenderPass.clear(); + m_renderPass.clear(); - m_eRenderMode = mode; + m_renderMode = mode; - g_pHyprOpenGL->m_RenderData.pMonitor = pMonitor; // has to be set cuz allocs + g_pHyprOpenGL->m_renderData.pMonitor = pMonitor; // has to be set cuz allocs if (mode == RENDER_MODE_FULL_FAKE) { RASSERT(fb, "Cannot render FULL_FAKE without a provided fb!"); @@ -2223,22 +2222,22 @@ bool CHyprRenderer::beginRender(PHLMONITOR pMonitor, CRegion& damage, eRenderMod static constexpr const int HL_BUFFER_AGE = 2; if (!buffer) { - m_pCurrentBuffer = pMonitor->m_output->swapchain->next(nullptr); - if (!m_pCurrentBuffer) { + m_currentBuffer = pMonitor->m_output->swapchain->next(nullptr); + if (!m_currentBuffer) { Debug::log(ERR, "Failed to acquire swapchain buffer for {}", pMonitor->m_name); return false; } } else - m_pCurrentBuffer = buffer; + m_currentBuffer = buffer; try { - m_pCurrentRenderbuffer = getOrCreateRenderbuffer(m_pCurrentBuffer, pMonitor->m_output->state->state().drmFormat); + m_currentRenderbuffer = getOrCreateRenderbuffer(m_currentBuffer, pMonitor->m_output->state->state().drmFormat); } catch (std::exception& e) { Debug::log(ERR, "getOrCreateRenderbuffer failed for {}", pMonitor->m_name); return false; } - if (!m_pCurrentRenderbuffer) { + if (!m_currentRenderbuffer) { Debug::log(ERR, "failed to start a render pass for output {}, no RBO could be obtained", pMonitor->m_name); return false; } @@ -2248,9 +2247,9 @@ bool CHyprRenderer::beginRender(PHLMONITOR pMonitor, CRegion& damage, eRenderMod pMonitor->m_damage.rotate(); } - m_pCurrentRenderbuffer->bind(); + m_currentRenderbuffer->bind(); if (simple) - g_pHyprOpenGL->beginSimple(pMonitor, damage, m_pCurrentRenderbuffer); + g_pHyprOpenGL->beginSimple(pMonitor, damage, m_currentRenderbuffer); else g_pHyprOpenGL->begin(pMonitor, damage); @@ -2258,55 +2257,55 @@ bool CHyprRenderer::beginRender(PHLMONITOR pMonitor, CRegion& damage, eRenderMod } void CHyprRenderer::endRender(const std::function& renderingDoneCallback) { - const auto PMONITOR = g_pHyprOpenGL->m_RenderData.pMonitor; + const auto PMONITOR = g_pHyprOpenGL->m_renderData.pMonitor; static auto PNVIDIAANTIFLICKER = CConfigValue("opengl:nvidia_anti_flicker"); - g_pHyprOpenGL->m_RenderData.damage = m_sRenderPass.render(g_pHyprOpenGL->m_RenderData.damage); + g_pHyprOpenGL->m_renderData.damage = m_renderPass.render(g_pHyprOpenGL->m_renderData.damage); auto cleanup = CScopeGuard([this]() { - if (m_pCurrentRenderbuffer) - m_pCurrentRenderbuffer->unbind(); - m_pCurrentRenderbuffer = nullptr; - m_pCurrentBuffer = nullptr; + if (m_currentRenderbuffer) + m_currentRenderbuffer->unbind(); + m_currentRenderbuffer = nullptr; + m_currentBuffer = nullptr; }); - if (m_eRenderMode != RENDER_MODE_TO_BUFFER_READ_ONLY) + if (m_renderMode != RENDER_MODE_TO_BUFFER_READ_ONLY) g_pHyprOpenGL->end(); else { - g_pHyprOpenGL->m_RenderData.pMonitor.reset(); - g_pHyprOpenGL->m_RenderData.mouseZoomFactor = 1.f; - g_pHyprOpenGL->m_RenderData.mouseZoomUseMouse = true; + g_pHyprOpenGL->m_renderData.pMonitor.reset(); + g_pHyprOpenGL->m_renderData.mouseZoomFactor = 1.f; + g_pHyprOpenGL->m_renderData.mouseZoomUseMouse = true; } // send all queued opengl commands so rendering starts happening immediately glFlush(); - if (m_eRenderMode == RENDER_MODE_FULL_FAKE) + if (m_renderMode == RENDER_MODE_FULL_FAKE) return; - if (m_eRenderMode == RENDER_MODE_NORMAL) - PMONITOR->m_output->state->setBuffer(m_pCurrentBuffer); + if (m_renderMode == RENDER_MODE_NORMAL) + PMONITOR->m_output->state->setBuffer(m_currentBuffer); UP eglSync = CEGLSync::create(); if (eglSync && eglSync->isValid()) { - for (auto const& buf : usedAsyncBuffers) { + for (auto const& buf : m_usedAsyncBuffers) { for (const auto& releaser : buf->m_syncReleasers) { releaser->addSyncFileFd(eglSync->fd()); } } // release buffer refs with release points now, since syncReleaser handles actual buffer release based on EGLSync - std::erase_if(usedAsyncBuffers, [](const auto& buf) { return !buf->m_syncReleasers.empty(); }); + std::erase_if(m_usedAsyncBuffers, [](const auto& buf) { return !buf->m_syncReleasers.empty(); }); // release buffer refs without release points when EGLSync sync_file/fence is signalled - g_pEventLoopManager->doOnReadable(eglSync->fd().duplicate(), [renderingDoneCallback, prevbfs = std::move(usedAsyncBuffers)]() mutable { + g_pEventLoopManager->doOnReadable(eglSync->fd().duplicate(), [renderingDoneCallback, prevbfs = std::move(m_usedAsyncBuffers)]() mutable { prevbfs.clear(); if (renderingDoneCallback) renderingDoneCallback(); }); - usedAsyncBuffers.clear(); + m_usedAsyncBuffers.clear(); - if (m_eRenderMode == RENDER_MODE_NORMAL) { + if (m_renderMode == RENDER_MODE_NORMAL) { PMONITOR->m_inFence = eglSync->takeFd(); PMONITOR->m_output->state->setExplicitInFence(PMONITOR->m_inFence.get()); } @@ -2317,22 +2316,22 @@ void CHyprRenderer::endRender(const std::function& renderingDoneCallback if (isNvidia() && *PNVIDIAANTIFLICKER) glFinish(); - usedAsyncBuffers.clear(); // release all buffer refs and hope implicit sync works + m_usedAsyncBuffers.clear(); // release all buffer refs and hope implicit sync works if (renderingDoneCallback) renderingDoneCallback(); } } void CHyprRenderer::onRenderbufferDestroy(CRenderbuffer* rb) { - std::erase_if(m_vRenderbuffers, [&](const auto& rbo) { return rbo.get() == rb; }); + std::erase_if(m_renderbuffers, [&](const auto& rbo) { return rbo.get() == rb; }); } SP CHyprRenderer::getCurrentRBO() { - return m_pCurrentRenderbuffer; + return m_currentRenderbuffer; } bool CHyprRenderer::isNvidia() { - return m_bNvidia; + return m_nvidia; } SExplicitSyncSettings CHyprRenderer::getExplicitSyncSettings(SP output) { @@ -2353,7 +2352,7 @@ SExplicitSyncSettings CHyprRenderer::getExplicitSyncSettings(SP("misc:render_unfocused_fps"); - if (std::find(m_vRenderUnfocused.begin(), m_vRenderUnfocused.end(), window) != m_vRenderUnfocused.end()) + if (std::find(m_renderUnfocused.begin(), m_renderUnfocused.end(), window) != m_renderUnfocused.end()) return; - m_vRenderUnfocused.emplace_back(window); + m_renderUnfocused.emplace_back(window); - if (!m_tRenderUnfocusedTimer->armed()) - m_tRenderUnfocusedTimer->updateTimeout(std::chrono::milliseconds(1000 / *PFPS)); + if (!m_renderUnfocusedTimer->armed()) + m_renderUnfocusedTimer->updateTimeout(std::chrono::milliseconds(1000 / *PFPS)); } void CHyprRenderer::makeRawWindowSnapshot(PHLWINDOW pWindow, CFramebuffer* pFramebuffer) { @@ -2389,7 +2388,7 @@ void CHyprRenderer::makeRawWindowSnapshot(PHLWINDOW pWindow, CFramebuffer* pFram makeEGLCurrent(); pFramebuffer->alloc(PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, PMONITOR->m_output->state->state().drmFormat); - pFramebuffer->addStencil(g_pHyprOpenGL->m_RenderData.pCurrentMonData->stencilTex); + pFramebuffer->addStencil(g_pHyprOpenGL->m_renderData.pCurrentMonData->stencilTex); beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, pFramebuffer); @@ -2407,7 +2406,7 @@ void CHyprRenderer::makeRawWindowSnapshot(PHLWINDOW pWindow, CFramebuffer* pFram // 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->m_renderData.currentFB = pFramebuffer; g_pHyprOpenGL->clear(CHyprColor(0, 0, 0, 0)); // JIC @@ -2437,7 +2436,7 @@ void CHyprRenderer::makeWindowSnapshot(PHLWINDOW pWindow) { makeEGLCurrent(); - const auto PFRAMEBUFFER = &g_pHyprOpenGL->m_mWindowFramebuffers[ref]; + const auto PFRAMEBUFFER = &g_pHyprOpenGL->m_windowFramebuffers[ref]; PFRAMEBUFFER->alloc(PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, PMONITOR->m_output->state->state().drmFormat); @@ -2481,7 +2480,7 @@ void CHyprRenderer::makeLayerSnapshot(PHLLS pLayer) { makeEGLCurrent(); - const auto PFRAMEBUFFER = &g_pHyprOpenGL->m_mLayerFramebuffers[pLayer]; + const auto PFRAMEBUFFER = &g_pHyprOpenGL->m_layerFramebuffers[pLayer]; PFRAMEBUFFER->alloc(PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, PMONITOR->m_output->state->state().drmFormat); @@ -2509,10 +2508,10 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { PHLWINDOWREF ref{pWindow}; - if (!g_pHyprOpenGL->m_mWindowFramebuffers.contains(ref)) + if (!g_pHyprOpenGL->m_windowFramebuffers.contains(ref)) return; - const auto FBDATA = &g_pHyprOpenGL->m_mWindowFramebuffers.at(ref); + const auto FBDATA = &g_pHyprOpenGL->m_windowFramebuffers.at(ref); if (!FBDATA->getTexture()) return; @@ -2536,10 +2535,10 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { CRectPassElement::SRectData data; - data.box = {0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->m_pixelSize.y}; + data.box = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.y}; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * pWindow->m_alpha->value()); - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); damageMonitor(PMONITOR); } @@ -2550,14 +2549,14 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { data.a = pWindow->m_alpha->value(); data.damage = fakeDamage; - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); } void CHyprRenderer::renderSnapshot(PHLLS pLayer) { - if (!g_pHyprOpenGL->m_mLayerFramebuffers.contains(pLayer)) + if (!g_pHyprOpenGL->m_layerFramebuffers.contains(pLayer)) return; - const auto FBDATA = &g_pHyprOpenGL->m_mLayerFramebuffers.at(pLayer); + const auto FBDATA = &g_pHyprOpenGL->m_layerFramebuffers.at(pLayer); if (!FBDATA->getTexture()) return; @@ -2586,5 +2585,5 @@ void CHyprRenderer::renderSnapshot(PHLLS pLayer) { data.a = pLayer->m_alpha->value(); data.damage = fakeDamage; - m_sRenderPass.add(makeShared(data)); + m_renderPass.add(makeShared(data)); } diff --git a/src/render/Renderer.hpp b/src/render/Renderer.hpp index 37e1e91f..29d7464b 100644 --- a/src/render/Renderer.hpp +++ b/src/render/Renderer.hpp @@ -91,29 +91,29 @@ class CHyprRenderer { bool m_bBlockSurfaceFeedback = false; bool m_bRenderingSnapshot = false; - PHLMONITORREF m_pMostHzMonitor; - bool m_bDirectScanoutBlocked = false; + PHLMONITORREF m_mostHzMonitor; + bool m_directScanoutBlocked = false; void setSurfaceScanoutMode(SP surface, PHLMONITOR monitor); // nullptr monitor resets void initiateManualCrash(); - bool m_bCrashingInProgress = false; - float m_fCrashingDistort = 0.5f; - wl_event_source* m_pCrashingLoop = nullptr; - wl_event_source* m_pCursorTicker = nullptr; + bool m_crashingInProgress = false; + float m_crashingDistort = 0.5f; + wl_event_source* m_crashingLoop = nullptr; + wl_event_source* m_cursorTicker = nullptr; - CTimer m_tRenderTimer; + CTimer m_renderTimer; - std::vector usedAsyncBuffers; + std::vector m_usedAsyncBuffers; struct { int hotspotX = 0; int hotspotY = 0; std::optional> surf; std::string name; - } m_sLastCursorData; + } m_lastCursorData; - CRenderPass m_sRenderPass = {}; + CRenderPass m_renderPass = {}; private: void arrangeLayerArray(PHLMONITOR, const std::vector&, bool, CBox*); @@ -131,23 +131,23 @@ class CHyprRenderer { bool commitPendingAndDoExplicitSync(PHLMONITOR pMonitor); - bool m_bCursorHidden = false; - bool m_bCursorHasSurface = false; - SP m_pCurrentRenderbuffer = nullptr; - SP m_pCurrentBuffer = nullptr; - eRenderMode m_eRenderMode = RENDER_MODE_NORMAL; - bool m_bNvidia = false; + bool m_cursorHidden = false; + bool m_cursorHasSurface = false; + SP m_currentRenderbuffer = nullptr; + SP m_currentBuffer = nullptr; + eRenderMode m_renderMode = RENDER_MODE_NORMAL; + bool m_nvidia = false; struct { bool hiddenOnTouch = false; bool hiddenOnTimeout = false; bool hiddenOnKeyboard = false; - } m_sCursorHiddenConditions; + } m_cursorHiddenConditions; SP getOrCreateRenderbuffer(SP buffer, uint32_t fmt); - std::vector> m_vRenderbuffers; - std::vector m_vRenderUnfocused; - SP m_tRenderUnfocusedTimer; + std::vector> m_renderbuffers; + std::vector m_renderUnfocused; + SP m_renderUnfocusedTimer; friend class CHyprOpenGLImpl; friend class CToplevelExportFrame; diff --git a/src/render/Shader.hpp b/src/render/Shader.hpp index cd9b6f22..0ccc8c45 100644 --- a/src/render/Shader.hpp +++ b/src/render/Shader.hpp @@ -78,7 +78,4 @@ class CShader { GLint noise = -1; void destroy(); - - private: - std::unordered_map m_muUniforms; }; diff --git a/src/render/Texture.cpp b/src/render/Texture.cpp index 8c25bf30..74770cb9 100644 --- a/src/render/Texture.cpp +++ b/src/render/Texture.cpp @@ -15,7 +15,7 @@ CTexture::~CTexture() { destroyTexture(); } -CTexture::CTexture(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size_, bool keepDataCopy) : m_iDrmFormat(drmFormat), m_bKeepDataCopy(keepDataCopy) { +CTexture::CTexture(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size_, bool keepDataCopy) : m_drmFormat(drmFormat), m_keepDataCopy(keepDataCopy) { createFromShm(drmFormat, pixels, stride, size_); } @@ -23,11 +23,11 @@ CTexture::CTexture(const Aquamarine::SDMABUFAttrs& attrs, void* image) { createFromDma(attrs, image); } -CTexture::CTexture(const SP buffer, bool keepDataCopy) : m_bKeepDataCopy(keepDataCopy) { +CTexture::CTexture(const SP buffer, bool keepDataCopy) : m_keepDataCopy(keepDataCopy) { if (!buffer) return; - m_bOpaque = buffer->opaque; + m_opaque = buffer->opaque; auto attrs = buffer->dmabuf(); @@ -42,7 +42,7 @@ CTexture::CTexture(const SP buffer, bool keepDataCopy) : m_ auto [pixelData, fmt, bufLen] = buffer->beginDataPtr(0); - m_iDrmFormat = fmt; + m_drmFormat = fmt; createFromShm(fmt, pixelData, bufLen, shm.size); return; @@ -64,12 +64,12 @@ void CTexture::createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t strid const auto format = NFormatUtils::getPixelFormatFromDRM(drmFormat); ASSERT(format); - m_iType = format->withAlpha ? TEXTURE_RGBA : TEXTURE_RGBX; - m_vSize = size_; + m_type = format->withAlpha ? TEXTURE_RGBA : TEXTURE_RGBX; + m_size = size_; m_isSynchronous = true; allocate(); - GLCALL(glBindTexture(GL_TEXTURE_2D, m_iTexID)); + GLCALL(glBindTexture(GL_TEXTURE_2D, m_texID)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); #ifndef GLES2 @@ -83,30 +83,30 @@ void CTexture::createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t strid GLCALL(glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0)); GLCALL(glBindTexture(GL_TEXTURE_2D, 0)); - if (m_bKeepDataCopy) { - m_vDataCopy.resize(stride * size_.y); - memcpy(m_vDataCopy.data(), pixels, stride * size_.y); + if (m_keepDataCopy) { + m_dataCopy.resize(stride * size_.y); + memcpy(m_dataCopy.data(), pixels, stride * size_.y); } } void CTexture::createFromDma(const Aquamarine::SDMABUFAttrs& attrs, void* image) { - if (!g_pHyprOpenGL->m_sProc.glEGLImageTargetTexture2DOES) { + if (!g_pHyprOpenGL->m_proc.glEGLImageTargetTexture2DOES) { Debug::log(ERR, "Cannot create a dmabuf texture: no glEGLImageTargetTexture2DOES"); return; } - m_bOpaque = NFormatUtils::isFormatOpaque(attrs.format); - m_iTarget = GL_TEXTURE_2D; - m_iType = TEXTURE_RGBA; - m_vSize = attrs.size; - m_iType = NFormatUtils::isFormatOpaque(attrs.format) ? TEXTURE_RGBX : TEXTURE_RGBA; + m_opaque = NFormatUtils::isFormatOpaque(attrs.format); + m_target = GL_TEXTURE_2D; + m_type = TEXTURE_RGBA; + m_size = attrs.size; + m_type = NFormatUtils::isFormatOpaque(attrs.format) ? TEXTURE_RGBX : TEXTURE_RGBA; allocate(); - m_pEglImage = image; + m_eglImage = image; - GLCALL(glBindTexture(GL_TEXTURE_2D, m_iTexID)); + GLCALL(glBindTexture(GL_TEXTURE_2D, m_texID)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - GLCALL(g_pHyprOpenGL->m_sProc.glEGLImageTargetTexture2DOES(m_iTarget, image)); + GLCALL(g_pHyprOpenGL->m_proc.glEGLImageTargetTexture2DOES(m_target, image)); GLCALL(glBindTexture(GL_TEXTURE_2D, 0)); } @@ -116,9 +116,9 @@ void CTexture::update(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, cons const auto format = NFormatUtils::getPixelFormatFromDRM(drmFormat); ASSERT(format); - glBindTexture(GL_TEXTURE_2D, m_iTexID); + glBindTexture(GL_TEXTURE_2D, m_texID); - auto rects = damage.copy().intersect(CBox{{}, m_vSize}).getRects(); + auto rects = damage.copy().intersect(CBox{{}, m_size}).getRects(); #ifndef GLES2 if (format->flipRB) { @@ -143,28 +143,28 @@ void CTexture::update(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, cons glBindTexture(GL_TEXTURE_2D, 0); - if (m_bKeepDataCopy) { - m_vDataCopy.resize(stride * m_vSize.y); - memcpy(m_vDataCopy.data(), pixels, stride * m_vSize.y); + if (m_keepDataCopy) { + m_dataCopy.resize(stride * m_size.y); + memcpy(m_dataCopy.data(), pixels, stride * m_size.y); } } void CTexture::destroyTexture() { - if (m_iTexID) { - GLCALL(glDeleteTextures(1, &m_iTexID)); - m_iTexID = 0; + if (m_texID) { + GLCALL(glDeleteTextures(1, &m_texID)); + m_texID = 0; } - if (m_pEglImage) - g_pHyprOpenGL->m_sProc.eglDestroyImageKHR(g_pHyprOpenGL->m_pEglDisplay, m_pEglImage); - m_pEglImage = nullptr; + if (m_eglImage) + g_pHyprOpenGL->m_proc.eglDestroyImageKHR(g_pHyprOpenGL->m_eglDisplay, m_eglImage); + m_eglImage = nullptr; } void CTexture::allocate() { - if (!m_iTexID) - GLCALL(glGenTextures(1, &m_iTexID)); + if (!m_texID) + GLCALL(glGenTextures(1, &m_texID)); } const std::vector& CTexture::dataCopy() { - return m_vDataCopy; + return m_dataCopy; } diff --git a/src/render/Texture.hpp b/src/render/Texture.hpp index 039b5247..0446f9be 100644 --- a/src/render/Texture.hpp +++ b/src/render/Texture.hpp @@ -35,21 +35,21 @@ class CTexture { void update(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const CRegion& damage); const std::vector& dataCopy(); - eTextureType m_iType = TEXTURE_RGBA; - GLenum m_iTarget = GL_TEXTURE_2D; - GLuint m_iTexID = 0; - Vector2D m_vSize = {}; - void* m_pEglImage = nullptr; - eTransform m_eTransform = HYPRUTILS_TRANSFORM_NORMAL; - bool m_bOpaque = false; - uint32_t m_iDrmFormat = 0; // for shm + eTextureType m_type = TEXTURE_RGBA; + GLenum m_target = GL_TEXTURE_2D; + GLuint m_texID = 0; + Vector2D m_size = {}; + void* m_eglImage = nullptr; + eTransform m_transform = HYPRUTILS_TRANSFORM_NORMAL; + bool m_opaque = false; + uint32_t m_drmFormat = 0; // for shm bool m_isSynchronous = false; private: void createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size); void createFromDma(const Aquamarine::SDMABUFAttrs&, void* image); - bool m_bKeepDataCopy = false; + bool m_keepDataCopy = false; - std::vector m_vDataCopy; + std::vector m_dataCopy; }; \ No newline at end of file diff --git a/src/render/decorations/CHyprBorderDecoration.cpp b/src/render/decorations/CHyprBorderDecoration.cpp index 75990896..b34c9243 100644 --- a/src/render/decorations/CHyprBorderDecoration.cpp +++ b/src/render/decorations/CHyprBorderDecoration.cpp @@ -6,42 +6,42 @@ #include "../Renderer.hpp" #include "../../managers/HookSystemManager.hpp" -CHyprBorderDecoration::CHyprBorderDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) { +CHyprBorderDecoration::CHyprBorderDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_window(pWindow) { ; } SDecorationPositioningInfo CHyprBorderDecoration::getPositioningInfo() { - const auto BORDERSIZE = m_pWindow->getRealBorderSize(); - m_seExtents = {{BORDERSIZE, BORDERSIZE}, {BORDERSIZE, BORDERSIZE}}; + const auto BORDERSIZE = m_window->getRealBorderSize(); + m_extents = {{BORDERSIZE, BORDERSIZE}, {BORDERSIZE, BORDERSIZE}}; if (doesntWantBorders()) - m_seExtents = {{}, {}}; + m_extents = {{}, {}}; SDecorationPositioningInfo info; info.priority = 10000; info.policy = DECORATION_POSITION_STICKY; - info.desiredExtents = m_seExtents; + info.desiredExtents = m_extents; info.reserved = true; info.edges = DECORATION_EDGE_BOTTOM | DECORATION_EDGE_LEFT | DECORATION_EDGE_RIGHT | DECORATION_EDGE_TOP; - m_seReportedExtents = m_seExtents; + m_reportedExtents = m_extents; return info; } void CHyprBorderDecoration::onPositioningReply(const SDecorationPositioningReply& reply) { - m_bAssignedGeometry = reply.assignedGeometry; + m_assignedGeometry = reply.assignedGeometry; } CBox CHyprBorderDecoration::assignedBoxGlobal() { - CBox box = m_bAssignedGeometry; - box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_BOTTOM | DECORATION_EDGE_LEFT | DECORATION_EDGE_RIGHT | DECORATION_EDGE_TOP, m_pWindow.lock())); + CBox box = m_assignedGeometry; + box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_BOTTOM | DECORATION_EDGE_LEFT | DECORATION_EDGE_RIGHT | DECORATION_EDGE_TOP, m_window.lock())); - const auto PWORKSPACE = m_pWindow->m_workspace; + const auto PWORKSPACE = m_window->m_workspace; if (!PWORKSPACE) return box; - const auto WORKSPACEOFFSET = PWORKSPACE && !m_pWindow->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D(); + const auto WORKSPACEOFFSET = PWORKSPACE && !m_window->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D(); return box.translate(WORKSPACEOFFSET); } @@ -49,30 +49,30 @@ void CHyprBorderDecoration::draw(PHLMONITOR pMonitor, float const& a) { if (doesntWantBorders()) return; - if (m_bAssignedGeometry.width < m_seExtents.topLeft.x + 1 || m_bAssignedGeometry.height < m_seExtents.topLeft.y + 1) + if (m_assignedGeometry.width < m_extents.topLeft.x + 1 || m_assignedGeometry.height < m_extents.topLeft.y + 1) return; - CBox windowBox = assignedBoxGlobal().translate(-pMonitor->m_position + m_pWindow->m_floatingOffset).expand(-m_pWindow->getRealBorderSize()).scale(pMonitor->m_scale).round(); + CBox windowBox = assignedBoxGlobal().translate(-pMonitor->m_position + m_window->m_floatingOffset).expand(-m_window->getRealBorderSize()).scale(pMonitor->m_scale).round(); if (windowBox.width < 1 || windowBox.height < 1) return; - auto grad = m_pWindow->m_realBorderColor; - const bool ANIMATED = m_pWindow->m_borderFadeAnimationProgress->isBeingAnimated(); + auto grad = m_window->m_realBorderColor; + const bool ANIMATED = m_window->m_borderFadeAnimationProgress->isBeingAnimated(); - if (m_pWindow->m_borderAngleAnimationProgress->enabled()) { - grad.m_angle += m_pWindow->m_borderAngleAnimationProgress->value() * M_PI * 2; + if (m_window->m_borderAngleAnimationProgress->enabled()) { + grad.m_angle += m_window->m_borderAngleAnimationProgress->value() * M_PI * 2; grad.m_angle = normalizeAngleRad(grad.m_angle); // When borderangle is animated, it is counterintuitive to fade between inactive/active gradient angles. // Instead we sync the angles to avoid fading between them and additionally rotating the border angle. if (ANIMATED) - m_pWindow->m_realBorderColorPrevious.m_angle = grad.m_angle; + m_window->m_realBorderColorPrevious.m_angle = grad.m_angle; } - int borderSize = m_pWindow->getRealBorderSize(); - const auto ROUNDING = m_pWindow->rounding() * pMonitor->m_scale; - const auto ROUNDINGPOWER = m_pWindow->roundingPower(); + int borderSize = m_window->getRealBorderSize(); + const auto ROUNDING = m_window->rounding() * pMonitor->m_scale; + const auto ROUNDINGPOWER = m_window->roundingPower(); CBorderPassElement::SBorderData data; data.box = windowBox; @@ -84,12 +84,12 @@ void CHyprBorderDecoration::draw(PHLMONITOR pMonitor, float const& a) { if (ANIMATED) { data.hasGrad2 = true; - data.grad1 = m_pWindow->m_realBorderColorPrevious; + data.grad1 = m_window->m_realBorderColorPrevious; data.grad2 = grad; - data.lerp = m_pWindow->m_borderFadeAnimationProgress->value(); + data.lerp = m_window->m_borderFadeAnimationProgress->value(); } - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } eDecorationType CHyprBorderDecoration::getDecorationType() { @@ -97,32 +97,32 @@ eDecorationType CHyprBorderDecoration::getDecorationType() { } void CHyprBorderDecoration::updateWindow(PHLWINDOW) { - auto borderSize = m_pWindow->getRealBorderSize(); + auto borderSize = m_window->getRealBorderSize(); - if (borderSize == m_iLastBorderSize) + if (borderSize == m_lastBorderSize) return; - if (borderSize <= 0 && m_iLastBorderSize <= 0) + if (borderSize <= 0 && m_lastBorderSize <= 0) return; - m_iLastBorderSize = borderSize; + m_lastBorderSize = borderSize; g_pDecorationPositioner->repositionDeco(this); } void CHyprBorderDecoration::damageEntire() { - if (!validMapped(m_pWindow)) + if (!validMapped(m_window)) return; - auto surfaceBox = m_pWindow->getWindowMainSurfaceBox(); - const auto ROUNDING = m_pWindow->rounding(); + auto surfaceBox = m_window->getWindowMainSurfaceBox(); + const auto ROUNDING = m_window->rounding(); const auto ROUNDINGSIZE = ROUNDING - M_SQRT1_2 * ROUNDING + 2; - const auto BORDERSIZE = m_pWindow->getRealBorderSize() + 1; + const auto BORDERSIZE = m_window->getRealBorderSize() + 1; - const auto PWINDOWWORKSPACE = m_pWindow->m_workspace; - if (PWINDOWWORKSPACE && PWINDOWWORKSPACE->m_renderOffset->isBeingAnimated() && !m_pWindow->m_pinned) + const auto PWINDOWWORKSPACE = m_window->m_workspace; + if (PWINDOWWORKSPACE && PWINDOWWORKSPACE->m_renderOffset->isBeingAnimated() && !m_window->m_pinned) surfaceBox.translate(PWINDOWWORKSPACE->m_renderOffset->value()); - surfaceBox.translate(m_pWindow->m_floatingOffset); + surfaceBox.translate(m_window->m_floatingOffset); CBox surfaceBoxExpandedBorder = surfaceBox; surfaceBoxExpandedBorder.expand(BORDERSIZE); @@ -133,7 +133,7 @@ void CHyprBorderDecoration::damageEntire() { borderRegion.subtract(surfaceBoxShrunkRounding); for (auto const& m : g_pCompositor->m_monitors) { - if (!g_pHyprRenderer->shouldRenderWindow(m_pWindow.lock(), m)) { + if (!g_pHyprRenderer->shouldRenderWindow(m_window.lock(), m)) { const CRegion monitorRegion({m->m_position, m->m_size}); borderRegion.subtract(monitorRegion); } @@ -157,5 +157,5 @@ std::string CHyprBorderDecoration::getDisplayName() { } bool CHyprBorderDecoration::doesntWantBorders() { - return m_pWindow->m_windowData.noBorder.valueOrDefault() || m_pWindow->m_X11DoesntWantBorders || m_pWindow->getRealBorderSize() == 0; + return m_window->m_windowData.noBorder.valueOrDefault() || m_window->m_X11DoesntWantBorders || m_window->getRealBorderSize() == 0; } diff --git a/src/render/decorations/CHyprBorderDecoration.hpp b/src/render/decorations/CHyprBorderDecoration.hpp index 332c08b7..607c12cc 100644 --- a/src/render/decorations/CHyprBorderDecoration.hpp +++ b/src/render/decorations/CHyprBorderDecoration.hpp @@ -26,17 +26,14 @@ class CHyprBorderDecoration : public IHyprWindowDecoration { virtual std::string getDisplayName(); private: - SBoxExtents m_seExtents; - SBoxExtents m_seReportedExtents; + SBoxExtents m_extents; + SBoxExtents m_reportedExtents; - PHLWINDOWREF m_pWindow; + PHLWINDOWREF m_window; - Vector2D m_vLastWindowPos; - Vector2D m_vLastWindowSize; + CBox m_assignedGeometry = {0}; - CBox m_bAssignedGeometry = {0}; - - int m_iLastBorderSize = -1; + int m_lastBorderSize = -1; CBox assignedBoxGlobal(); bool doesntWantBorders(); diff --git a/src/render/decorations/CHyprDropShadowDecoration.cpp b/src/render/decorations/CHyprDropShadowDecoration.cpp index 198a9c96..7721f84b 100644 --- a/src/render/decorations/CHyprDropShadowDecoration.cpp +++ b/src/render/decorations/CHyprDropShadowDecoration.cpp @@ -5,7 +5,7 @@ #include "../pass/ShadowPassElement.hpp" #include "../Renderer.hpp" -CHyprDropShadowDecoration::CHyprDropShadowDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) { +CHyprDropShadowDecoration::CHyprDropShadowDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_window(pWindow) { ; } @@ -16,15 +16,15 @@ eDecorationType CHyprDropShadowDecoration::getDecorationType() { SDecorationPositioningInfo CHyprDropShadowDecoration::getPositioningInfo() { SDecorationPositioningInfo info; info.policy = DECORATION_POSITION_ABSOLUTE; - info.desiredExtents = m_seExtents; + info.desiredExtents = m_extents; info.edges = DECORATION_EDGE_BOTTOM | DECORATION_EDGE_LEFT | DECORATION_EDGE_RIGHT | DECORATION_EDGE_TOP; - m_seReportedExtents = m_seExtents; + m_reportedExtents = m_extents; return info; } void CHyprDropShadowDecoration::onPositioningReply(const SDecorationPositioningReply& reply) { - updateWindow(m_pWindow.lock()); + updateWindow(m_window.lock()); } uint64_t CHyprDropShadowDecoration::getDecorationFlags() { @@ -41,11 +41,11 @@ void CHyprDropShadowDecoration::damageEntire() { if (*PSHADOWS != 1) return; // disabled - const auto PWINDOW = m_pWindow.lock(); + const auto PWINDOW = m_window.lock(); - CBox shadowBox = {PWINDOW->m_realPosition->value().x - m_seExtents.topLeft.x, PWINDOW->m_realPosition->value().y - m_seExtents.topLeft.y, - PWINDOW->m_realSize->value().x + m_seExtents.topLeft.x + m_seExtents.bottomRight.x, - PWINDOW->m_realSize->value().y + m_seExtents.topLeft.y + m_seExtents.bottomRight.y}; + CBox shadowBox = {PWINDOW->m_realPosition->value().x - m_extents.topLeft.x, PWINDOW->m_realPosition->value().y - m_extents.topLeft.y, + PWINDOW->m_realSize->value().x + m_extents.topLeft.x + m_extents.bottomRight.x, + PWINDOW->m_realSize->value().y + m_extents.topLeft.y + m_extents.bottomRight.y}; const auto PWORKSPACE = PWINDOW->m_workspace; if (PWORKSPACE && PWORKSPACE->m_renderOffset->isBeingAnimated() && !PWINDOW->m_pinned) @@ -77,24 +77,24 @@ void CHyprDropShadowDecoration::damageEntire() { } void CHyprDropShadowDecoration::updateWindow(PHLWINDOW pWindow) { - const auto PWINDOW = m_pWindow.lock(); + const auto PWINDOW = m_window.lock(); - m_vLastWindowPos = PWINDOW->m_realPosition->value(); - m_vLastWindowSize = PWINDOW->m_realSize->value(); + m_lastWindowPos = PWINDOW->m_realPosition->value(); + m_lastWindowSize = PWINDOW->m_realSize->value(); - m_bLastWindowBox = {m_vLastWindowPos.x, m_vLastWindowPos.y, m_vLastWindowSize.x, m_vLastWindowSize.y}; - m_bLastWindowBoxWithDecos = g_pDecorationPositioner->getBoxWithIncludedDecos(pWindow); + m_lastWindowBox = {m_lastWindowPos.x, m_lastWindowPos.y, m_lastWindowSize.x, m_lastWindowSize.y}; + m_lastWindowBoxWithDecos = g_pDecorationPositioner->getBoxWithIncludedDecos(pWindow); } void CHyprDropShadowDecoration::draw(PHLMONITOR pMonitor, float const& a) { CShadowPassElement::SShadowData data; data.deco = this; data.a = a; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { - const auto PWINDOW = m_pWindow.lock(); + const auto PWINDOW = m_window.lock(); if (!validMapped(PWINDOW)) return; @@ -124,7 +124,7 @@ void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D(); // draw the shadow - CBox fullBox = m_bLastWindowBoxWithDecos; + CBox fullBox = m_lastWindowBoxWithDecos; fullBox.translate(-pMonitor->m_position + WORKSPACEOFFSET); fullBox.x -= *PSHADOWSIZE; fullBox.y -= *PSHADOWSIZE; @@ -137,10 +137,10 @@ void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { fullBox.scaleFromCenter(SHADOWSCALE).translate({(*PSHADOWOFFSET).x, (*PSHADOWOFFSET).y}); updateWindow(PWINDOW); - m_vLastWindowPos += WORKSPACEOFFSET; - m_seExtents = {{m_vLastWindowPos.x - fullBox.x - pMonitor->m_position.x + 2, m_vLastWindowPos.y - fullBox.y - pMonitor->m_position.y + 2}, - {fullBox.x + fullBox.width + pMonitor->m_position.x - m_vLastWindowPos.x - m_vLastWindowSize.x + 2, - fullBox.y + fullBox.height + pMonitor->m_position.y - m_vLastWindowPos.y - m_vLastWindowSize.y + 2}}; + m_lastWindowPos += WORKSPACEOFFSET; + m_extents = {{m_lastWindowPos.x - fullBox.x - pMonitor->m_position.x + 2, m_lastWindowPos.y - fullBox.y - pMonitor->m_position.y + 2}, + {fullBox.x + fullBox.width + pMonitor->m_position.x - m_lastWindowPos.x - m_lastWindowSize.x + 2, + fullBox.y + fullBox.height + pMonitor->m_position.y - m_lastWindowPos.y - m_lastWindowSize.y + 2}}; fullBox.translate(PWINDOW->m_floatingOffset); @@ -148,18 +148,18 @@ void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { return; // don't draw invisible shadows g_pHyprOpenGL->scissor(nullptr); - g_pHyprOpenGL->m_RenderData.currentWindow = m_pWindow; + g_pHyprOpenGL->m_renderData.currentWindow = m_window; // we'll take the liberty of using this as it should not be used rn - CFramebuffer& alphaFB = g_pHyprOpenGL->m_RenderData.pCurrentMonData->mirrorFB; - CFramebuffer& alphaSwapFB = g_pHyprOpenGL->m_RenderData.pCurrentMonData->mirrorSwapFB; - auto* LASTFB = g_pHyprOpenGL->m_RenderData.currentFB; + CFramebuffer& alphaFB = g_pHyprOpenGL->m_renderData.pCurrentMonData->mirrorFB; + CFramebuffer& alphaSwapFB = g_pHyprOpenGL->m_renderData.pCurrentMonData->mirrorSwapFB; + auto* LASTFB = g_pHyprOpenGL->m_renderData.currentFB; fullBox.scale(pMonitor->m_scale).round(); if (*PSHADOWIGNOREWINDOW) { - CBox windowBox = m_bLastWindowBox; - CBox withDecos = m_bLastWindowBoxWithDecos; + CBox windowBox = m_lastWindowBox; + CBox withDecos = m_lastWindowBoxWithDecos; // get window box windowBox.translate(-pMonitor->m_position + WORKSPACEOFFSET); @@ -178,11 +178,11 @@ void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { if (windowBox.width < 1 || windowBox.height < 1) return; // prevent assert failed - CRegion saveDamage = g_pHyprOpenGL->m_RenderData.damage; + CRegion saveDamage = g_pHyprOpenGL->m_renderData.damage; - g_pHyprOpenGL->m_RenderData.damage = fullBox; - g_pHyprOpenGL->m_RenderData.damage.subtract(windowBox.copy().expand(-ROUNDING * pMonitor->m_scale)).intersect(saveDamage); - g_pHyprOpenGL->m_RenderData.renderModif.applyToRegion(g_pHyprOpenGL->m_RenderData.damage); + g_pHyprOpenGL->m_renderData.damage = fullBox; + g_pHyprOpenGL->m_renderData.damage.subtract(windowBox.copy().expand(-ROUNDING * pMonitor->m_scale)).intersect(saveDamage); + g_pHyprOpenGL->m_renderData.renderModif.applyToRegion(g_pHyprOpenGL->m_renderData.damage); alphaFB.bind(); @@ -212,14 +212,14 @@ void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { g_pHyprOpenGL->setRenderModifEnabled(true); g_pHyprOpenGL->setMonitorTransformEnabled(false); - g_pHyprOpenGL->m_RenderData.damage = saveDamage; + g_pHyprOpenGL->m_renderData.damage = saveDamage; } else drawShadowInternal(fullBox, ROUNDING * pMonitor->m_scale, ROUNDINGPOWER, *PSHADOWSIZE * pMonitor->m_scale, PWINDOW->m_realShadowColor->value(), a); - if (m_seExtents != m_seReportedExtents) + if (m_extents != m_reportedExtents) g_pDecorationPositioner->repositionDeco(this); - g_pHyprOpenGL->m_RenderData.currentWindow.reset(); + g_pHyprOpenGL->m_renderData.currentWindow.reset(); } eDecorationLayer CHyprDropShadowDecoration::getDecorationLayer() { diff --git a/src/render/decorations/CHyprDropShadowDecoration.hpp b/src/render/decorations/CHyprDropShadowDecoration.hpp index b5ee7276..22887a52 100644 --- a/src/render/decorations/CHyprDropShadowDecoration.hpp +++ b/src/render/decorations/CHyprDropShadowDecoration.hpp @@ -28,16 +28,16 @@ class CHyprDropShadowDecoration : public IHyprWindowDecoration { void render(PHLMONITOR, float const& a); private: - SBoxExtents m_seExtents; - SBoxExtents m_seReportedExtents; + SBoxExtents m_extents; + SBoxExtents m_reportedExtents; - PHLWINDOWREF m_pWindow; + PHLWINDOWREF m_window; - Vector2D m_vLastWindowPos; - Vector2D m_vLastWindowSize; + Vector2D m_lastWindowPos; + Vector2D m_lastWindowSize; void drawShadowInternal(const CBox& box, int round, float roundingPower, int range, CHyprColor color, float a); - CBox m_bLastWindowBox = {0}; - CBox m_bLastWindowBoxWithDecos = {0}; + CBox m_lastWindowBox = {0}; + CBox m_lastWindowBoxWithDecos = {0}; }; diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp index aec84575..ade4d372 100644 --- a/src/render/decorations/CHyprGroupBarDecoration.cpp +++ b/src/render/decorations/CHyprGroupBarDecoration.cpp @@ -17,11 +17,11 @@ static SP m_tGradientLockedInactive = makeShared(); constexpr int BAR_TEXT_PAD = 2; -CHyprGroupBarDecoration::CHyprGroupBarDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) { +CHyprGroupBarDecoration::CHyprGroupBarDecoration(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_window(pWindow) { static auto PGRADIENTS = CConfigValue("group:groupbar:enabled"); static auto PENABLED = CConfigValue("group:groupbar:gradients"); - if (m_tGradientActive->m_iTexID == 0 && *PENABLED && *PGRADIENTS) + if (m_tGradientActive->m_texID == 0 && *PENABLED && *PGRADIENTS) refreshGroupBarGradients(); } @@ -43,7 +43,7 @@ SDecorationPositioningInfo CHyprGroupBarDecoration::getPositioningInfo() { info.priority = *PPRIORITY; info.reserved = true; - if (*PENABLED && m_pWindow->m_windowData.decorate.valueOrDefault()) { + if (*PENABLED && m_window->m_windowData.decorate.valueOrDefault()) { if (*PSTACKED) { const auto ONEBARHEIGHT = *POUTERGAP + *PINDICATORHEIGHT + *PINDICATORGAP + (*PGRADIENTS || *PRENDERTITLES ? *PHEIGHT : 0); info.desiredExtents = {{0, (ONEBARHEIGHT * m_dwGroupMembers.size()) + (*PKEEPUPPERGAP * *POUTERGAP)}, {0, 0}}; @@ -55,7 +55,7 @@ SDecorationPositioningInfo CHyprGroupBarDecoration::getPositioningInfo() { } void CHyprGroupBarDecoration::onPositioningReply(const SDecorationPositioningReply& reply) { - m_bAssignedBox = reply.assignedGeometry; + m_assignedBox = reply.assignedGeometry; } eDecorationType CHyprGroupBarDecoration::getDecorationType() { @@ -65,8 +65,8 @@ eDecorationType CHyprGroupBarDecoration::getDecorationType() { // void CHyprGroupBarDecoration::updateWindow(PHLWINDOW pWindow) { - if (m_pWindow->m_groupData.pNextWindow.expired()) { - m_pWindow->removeWindowDeco(this); + if (m_window->m_groupData.pNextWindow.expired()) { + m_window->removeWindowDeco(this); return; } @@ -83,14 +83,14 @@ void CHyprGroupBarDecoration::updateWindow(PHLWINDOW pWindow) { damageEntire(); if (m_dwGroupMembers.size() == 0) { - m_pWindow->removeWindowDeco(this); + m_window->removeWindowDeco(this); return; } } void CHyprGroupBarDecoration::damageEntire() { auto box = assignedBoxGlobal(); - box.translate(m_pWindow->m_floatingOffset); + box.translate(m_window->m_floatingOffset); g_pHyprRenderer->damageBox(box); } @@ -100,7 +100,7 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { static auto PENABLED = CConfigValue("group:groupbar:enabled"); - if (!*PENABLED || !m_pWindow->m_windowData.decorate.valueOrDefault()) + if (!*PENABLED || !m_window->m_windowData.decorate.valueOrDefault()) return; static auto PRENDERTITLES = CConfigValue("group:groupbar:render_titles"); @@ -130,8 +130,8 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { const auto ASSIGNEDBOX = assignedBoxGlobal(); const auto ONEBARHEIGHT = *POUTERGAP + *PINDICATORHEIGHT + *PINDICATORGAP + (*PGRADIENTS || *PRENDERTITLES ? *PHEIGHT : 0); - m_fBarWidth = *PSTACKED ? ASSIGNEDBOX.w : (ASSIGNEDBOX.w - *PINNERGAP * (barsToDraw - 1)) / barsToDraw; - m_fBarHeight = *PSTACKED ? ((ASSIGNEDBOX.h - *POUTERGAP * *PKEEPUPPERGAP) - *POUTERGAP * (barsToDraw)) / barsToDraw : ASSIGNEDBOX.h - *POUTERGAP * *PKEEPUPPERGAP; + m_barWidth = *PSTACKED ? ASSIGNEDBOX.w : (ASSIGNEDBOX.w - *PINNERGAP * (barsToDraw - 1)) / barsToDraw; + m_barHeight = *PSTACKED ? ((ASSIGNEDBOX.h - *POUTERGAP * *PKEEPUPPERGAP) - *POUTERGAP * (barsToDraw)) / barsToDraw : ASSIGNEDBOX.h - *POUTERGAP * *PKEEPUPPERGAP; const auto DESIREDHEIGHT = *PSTACKED ? (ONEBARHEIGHT * m_dwGroupMembers.size()) + *POUTERGAP * *PKEEPUPPERGAP : *POUTERGAP * (1 + *PKEEPUPPERGAP) + ONEBARHEIGHT; if (DESIREDHEIGHT != ASSIGNEDBOX.h) @@ -143,13 +143,13 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { for (int i = 0; i < barsToDraw; ++i) { const auto WINDOWINDEX = *PSTACKED ? m_dwGroupMembers.size() - i - 1 : i; - CBox rect = {ASSIGNEDBOX.x + xoff - pMonitor->m_position.x + m_pWindow->m_floatingOffset.x, - ASSIGNEDBOX.y + ASSIGNEDBOX.h - floor(yoff) - *PINDICATORHEIGHT - *POUTERGAP - pMonitor->m_position.y + m_pWindow->m_floatingOffset.y, m_fBarWidth, + CBox rect = {ASSIGNEDBOX.x + xoff - pMonitor->m_position.x + m_window->m_floatingOffset.x, + ASSIGNEDBOX.y + ASSIGNEDBOX.h - floor(yoff) - *PINDICATORHEIGHT - *POUTERGAP - pMonitor->m_position.y + m_window->m_floatingOffset.y, m_barWidth, *PINDICATORHEIGHT}; rect.scale(pMonitor->m_scale).round(); - const bool GROUPLOCKED = m_pWindow->getGroupHead()->m_groupData.locked || g_pKeybindManager->m_groupsLocked; + const bool GROUPLOCKED = m_window->getGroupHead()->m_groupData.locked || g_pKeybindManager->m_groupsLocked; const auto* const PCOLACTIVE = GROUPLOCKED ? GROUPCOLACTIVELOCKED : GROUPCOLACTIVE; const auto* const PCOLINACTIVE = GROUPLOCKED ? GROUPCOLINACTIVELOCKED : GROUPCOLINACTIVE; @@ -170,25 +170,25 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { double first = rect.w - (*PROUNDING * 2); rectdata.round = *PROUNDING; rectdata.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_sRenderPass.add(makeShared(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeShared(rectdata)); rectdata.round = 0; rectdata.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } else if (i == barsToDraw - 1) { double first = *PROUNDING * 2; rectdata.round = 0; rectdata.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_sRenderPass.add(makeShared(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeShared(rectdata)); rectdata.round = *PROUNDING; rectdata.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } } else rectdata.round = *PROUNDING; } - g_pHyprRenderer->m_sRenderPass.add(makeShared(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeShared(rectdata)); } - rect = {ASSIGNEDBOX.x + xoff - pMonitor->m_position.x + m_pWindow->m_floatingOffset.x, - ASSIGNEDBOX.y + ASSIGNEDBOX.h - floor(yoff) - ONEBARHEIGHT - pMonitor->m_position.y + m_pWindow->m_floatingOffset.y, m_fBarWidth, + rect = {ASSIGNEDBOX.x + xoff - pMonitor->m_position.x + m_window->m_floatingOffset.x, + ASSIGNEDBOX.y + ASSIGNEDBOX.h - floor(yoff) - ONEBARHEIGHT - pMonitor->m_position.y + m_window->m_floatingOffset.y, m_barWidth, (*PGRADIENTS || *PRENDERTITLES ? *PHEIGHT : 0)}; rect.scale(pMonitor->m_scale); @@ -196,7 +196,7 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { if (*PGRADIENTS) { const auto GRADIENTTEX = (m_dwGroupMembers[WINDOWINDEX] == g_pCompositor->m_lastWindow ? (GROUPLOCKED ? m_tGradientLockedActive : m_tGradientActive) : (GROUPLOCKED ? m_tGradientLockedInactive : m_tGradientInactive)); - if (GRADIENTTEX->m_iTexID) { + if (GRADIENTTEX->m_texID) { CTexPassElement::SRenderData data; data.tex = GRADIENTTEX; data.box = rect; @@ -210,21 +210,21 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { double first = rect.w - (*PGRADIENTROUNDING * 2); data.round = *PGRADIENTROUNDING; data.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); data.round = 0; data.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } else if (i == barsToDraw - 1) { double first = *PGRADIENTROUNDING * 2; data.round = 0; data.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); data.round = *PGRADIENTROUNDING; data.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } } else data.round = *PGRADIENTROUNDING; } - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } } @@ -232,31 +232,31 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { CTitleTex* pTitleTex = textureFromTitle(m_dwGroupMembers[WINDOWINDEX]->m_title); if (!pTitleTex) - pTitleTex = m_sTitleTexs.titleTexs + pTitleTex = m_titleTexs.titleTexs .emplace_back(makeUnique(m_dwGroupMembers[WINDOWINDEX].lock(), - Vector2D{m_fBarWidth * pMonitor->m_scale, (*PTITLEFONTSIZE + 2L * BAR_TEXT_PAD) * pMonitor->m_scale}, + Vector2D{m_barWidth * pMonitor->m_scale, (*PTITLEFONTSIZE + 2L * BAR_TEXT_PAD) * pMonitor->m_scale}, pMonitor->m_scale)) .get(); - const auto titleTex = m_dwGroupMembers[WINDOWINDEX] == g_pCompositor->m_lastWindow ? pTitleTex->texActive : pTitleTex->texInactive; - rect.y += std::ceil(((rect.height - titleTex->m_vSize.y) / 2.0) - (*PTEXTOFFSET * pMonitor->m_scale)); - rect.height = titleTex->m_vSize.y; - rect.width = titleTex->m_vSize.x; - rect.x += std::round(((m_fBarWidth * pMonitor->m_scale) / 2.0) - (titleTex->m_vSize.x / 2.0)); + const auto titleTex = m_dwGroupMembers[WINDOWINDEX] == g_pCompositor->m_lastWindow ? pTitleTex->m_texActive : pTitleTex->m_texInactive; + rect.y += std::ceil(((rect.height - titleTex->m_size.y) / 2.0) - (*PTEXTOFFSET * pMonitor->m_scale)); + rect.height = titleTex->m_size.y; + rect.width = titleTex->m_size.x; + rect.x += std::round(((m_barWidth * pMonitor->m_scale) / 2.0) - (titleTex->m_size.x / 2.0)); rect.round(); CTexPassElement::SRenderData data; data.tex = titleTex; data.box = rect; data.a = a; - g_pHyprRenderer->m_sRenderPass.add(makeShared(data)); + g_pHyprRenderer->m_renderPass.add(makeShared(data)); } } if (*PSTACKED) yoff += ONEBARHEIGHT; else - xoff += *PINNERGAP + m_fBarWidth; + xoff += *PINNERGAP + m_barWidth; } if (*PRENDERTITLES) @@ -264,8 +264,8 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { } CTitleTex* CHyprGroupBarDecoration::textureFromTitle(const std::string& title) { - for (auto const& tex : m_sTitleTexs.titleTexs) { - if (tex->szContent == title) + for (auto const& tex : m_titleTexs.titleTexs) { + if (tex->m_content == title) return tex.get(); } @@ -273,10 +273,10 @@ CTitleTex* CHyprGroupBarDecoration::textureFromTitle(const std::string& title) { } void CHyprGroupBarDecoration::invalidateTextures() { - m_sTitleTexs.titleTexs.clear(); + m_titleTexs.titleTexs.clear(); } -CTitleTex::CTitleTex(PHLWINDOW pWindow, const Vector2D& bufferSize, const float monitorScale) : szContent(pWindow->m_title), pWindowOwner(pWindow) { +CTitleTex::CTitleTex(PHLWINDOW pWindow, const Vector2D& bufferSize, const float monitorScale) : m_content(pWindow->m_title), m_windowOwner(pWindow) { static auto FALLBACKFONT = CConfigValue("misc:font_family"); static auto PTITLEFONTFAMILY = CConfigValue("group:groupbar:font_family"); static auto PTITLEFONTSIZE = CConfigValue("group:groupbar:font_size"); @@ -291,8 +291,8 @@ CTitleTex::CTitleTex(PHLWINDOW pWindow, const Vector2D& bufferSize, const float const CHyprColor COLOR = CHyprColor(*PTEXTCOLOR); const auto FONTFAMILY = *PTITLEFONTFAMILY != STRVAL_EMPTY ? *PTITLEFONTFAMILY : *FALLBACKFONT; - texActive = g_pHyprOpenGL->renderText(pWindow->m_title, COLOR, *PTITLEFONTSIZE * monitorScale, false, FONTFAMILY, bufferSize.x - 2, FONTWEIGHTACTIVE->m_value); - texInactive = g_pHyprOpenGL->renderText(pWindow->m_title, COLOR, *PTITLEFONTSIZE * monitorScale, false, FONTFAMILY, bufferSize.x - 2, FONTWEIGHTINACTIVE->m_value); + m_texActive = g_pHyprOpenGL->renderText(pWindow->m_title, COLOR, *PTITLEFONTSIZE * monitorScale, false, FONTFAMILY, bufferSize.x - 2, FONTWEIGHTACTIVE->m_value); + m_texInactive = g_pHyprOpenGL->renderText(pWindow->m_title, COLOR, *PTITLEFONTSIZE * monitorScale, false, FONTFAMILY, bufferSize.x - 2, FONTWEIGHTINACTIVE->m_value); } static void renderGradientTo(SP tex, CGradientValueData* grad) { @@ -329,7 +329,7 @@ static void renderGradientTo(SP tex, CGradientValueData* grad) { // copy the data to an OpenGL texture we have const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); tex->allocate(); - glBindTexture(GL_TEXTURE_2D, tex->m_iTexID); + glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); @@ -360,7 +360,7 @@ void refreshGroupBarGradients() { g_pHyprRenderer->makeEGLCurrent(); - if (m_tGradientActive->m_iTexID != 0) { + if (m_tGradientActive->m_texID != 0) { m_tGradientActive->destroyTexture(); m_tGradientInactive->destroyTexture(); m_tGradientLockedActive->destroyTexture(); @@ -380,20 +380,20 @@ bool CHyprGroupBarDecoration::onBeginWindowDragOnDeco(const Vector2D& pos) { static auto PSTACKED = CConfigValue("group:groupbar:stacked"); static auto POUTERGAP = CConfigValue("group:groupbar:gaps_out"); static auto PINNERGAP = CConfigValue("group:groupbar:gaps_in"); - if (m_pWindow.lock() == m_pWindow->m_groupData.pNextWindow.lock()) + if (m_window.lock() == m_window->m_groupData.pNextWindow.lock()) return false; const float BARRELATIVEX = pos.x - assignedBoxGlobal().x; const float BARRELATIVEY = pos.y - assignedBoxGlobal().y; - const int WINDOWINDEX = *PSTACKED ? (BARRELATIVEY / (m_fBarHeight + *POUTERGAP)) : (BARRELATIVEX) / (m_fBarWidth + *PINNERGAP); + const int WINDOWINDEX = *PSTACKED ? (BARRELATIVEY / (m_barHeight + *POUTERGAP)) : (BARRELATIVEX) / (m_barWidth + *PINNERGAP); - if (!*PSTACKED && (BARRELATIVEX - (m_fBarWidth + *PINNERGAP) * WINDOWINDEX > m_fBarWidth)) + if (!*PSTACKED && (BARRELATIVEX - (m_barWidth + *PINNERGAP) * WINDOWINDEX > m_barWidth)) return false; - if (*PSTACKED && (BARRELATIVEY - (m_fBarHeight + *POUTERGAP) * WINDOWINDEX < *POUTERGAP)) + if (*PSTACKED && (BARRELATIVEY - (m_barHeight + *POUTERGAP) * WINDOWINDEX < *POUTERGAP)) return false; - PHLWINDOW pWindow = m_pWindow->getGroupWindowByIndex(WINDOWINDEX); + PHLWINDOW pWindow = m_window->getGroupWindowByIndex(WINDOWINDEX); // hack g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow); @@ -419,21 +419,21 @@ bool CHyprGroupBarDecoration::onEndWindowDragOnDeco(const Vector2D& pos, PHLWIND static auto PMERGEGROUPSONGROUPBAR = CConfigValue("group:merge_groups_on_groupbar"); static auto POUTERGAP = CConfigValue("group:groupbar:gaps_out"); static auto PINNERGAP = CConfigValue("group:groupbar:gaps_in"); - const bool FLOATEDINTOTILED = !m_pWindow->m_isFloating && !pDraggedWindow->m_draggingTiled; + const bool FLOATEDINTOTILED = !m_window->m_isFloating && !pDraggedWindow->m_draggingTiled; g_pInputManager->m_wasDraggingWindow = false; - if (!pDraggedWindow->canBeGroupedInto(m_pWindow.lock()) || (*PDRAGINTOGROUP != 1 && *PDRAGINTOGROUP != 2) || (FLOATEDINTOTILED && !*PMERGEFLOATEDINTOTILEDONGROUPBAR) || - (!*PMERGEGROUPSONGROUPBAR && pDraggedWindow->m_groupData.pNextWindow.lock() && m_pWindow->m_groupData.pNextWindow.lock())) { + if (!pDraggedWindow->canBeGroupedInto(m_window.lock()) || (*PDRAGINTOGROUP != 1 && *PDRAGINTOGROUP != 2) || (FLOATEDINTOTILED && !*PMERGEFLOATEDINTOTILEDONGROUPBAR) || + (!*PMERGEGROUPSONGROUPBAR && pDraggedWindow->m_groupData.pNextWindow.lock() && m_window->m_groupData.pNextWindow.lock())) { g_pInputManager->m_wasDraggingWindow = true; return false; } - const float BARRELATIVE = *PSTACKED ? pos.y - assignedBoxGlobal().y - (m_fBarHeight + *POUTERGAP) / 2 : pos.x - assignedBoxGlobal().x - m_fBarWidth / 2; - const float BARSIZE = *PSTACKED ? m_fBarHeight + *POUTERGAP : m_fBarWidth + *PINNERGAP; + const float BARRELATIVE = *PSTACKED ? pos.y - assignedBoxGlobal().y - (m_barHeight + *POUTERGAP) / 2 : pos.x - assignedBoxGlobal().x - m_barWidth / 2; + const float BARSIZE = *PSTACKED ? m_barHeight + *POUTERGAP : m_barWidth + *PINNERGAP; const int WINDOWINDEX = BARRELATIVE < 0 ? -1 : BARRELATIVE / BARSIZE; - PHLWINDOW pWindowInsertAfter = m_pWindow->getGroupWindowByIndex(WINDOWINDEX); + PHLWINDOW pWindowInsertAfter = m_window->getGroupWindowByIndex(WINDOWINDEX); PHLWINDOW pWindowInsertEnd = pWindowInsertAfter->m_groupData.pNextWindow.lock(); PHLWINDOW pDraggedHead = pDraggedWindow->m_groupData.pNextWindow.lock() ? pDraggedWindow->getGroupHead() : pDraggedWindow; @@ -478,7 +478,7 @@ bool CHyprGroupBarDecoration::onEndWindowDragOnDeco(const Vector2D& pos, PHLWIND if (WINDOWINDEX == -1) std::swap(pDraggedHead->m_groupData.head, pWindowInsertEnd->m_groupData.head); - m_pWindow->setGroupCurrent(pDraggedWindow); + m_window->setGroupCurrent(pDraggedWindow); pDraggedWindow->applyGroupRules(); pDraggedWindow->updateWindowDecos(); g_pLayoutManager->getCurrentLayout()->recalculateWindow(pDraggedWindow); @@ -493,12 +493,12 @@ bool CHyprGroupBarDecoration::onMouseButtonOnDeco(const Vector2D& pos, const IPo static auto PSTACKED = CConfigValue("group:groupbar:stacked"); static auto POUTERGAP = CConfigValue("group:groupbar:gaps_out"); static auto PINNERGAP = CConfigValue("group:groupbar:gaps_in"); - if (m_pWindow->isEffectiveInternalFSMode(FSMODE_FULLSCREEN)) + if (m_window->isEffectiveInternalFSMode(FSMODE_FULLSCREEN)) return true; const float BARRELATIVEX = pos.x - assignedBoxGlobal().x; const float BARRELATIVEY = pos.y - assignedBoxGlobal().y; - const int WINDOWINDEX = *PSTACKED ? (BARRELATIVEY / (m_fBarHeight + *POUTERGAP)) : (BARRELATIVEX) / (m_fBarWidth + *PINNERGAP); + const int WINDOWINDEX = *PSTACKED ? (BARRELATIVEY / (m_barHeight + *POUTERGAP)) : (BARRELATIVEX) / (m_barWidth + *PINNERGAP); static auto PFOLLOWMOUSE = CConfigValue("input:follow_mouse"); // close window on middle click @@ -508,7 +508,7 @@ bool CHyprGroupBarDecoration::onMouseButtonOnDeco(const Vector2D& pos, const IPo if (e.state == WL_POINTER_BUTTON_STATE_PRESSED) pressedCursorPos = pos; else if (e.state == WL_POINTER_BUTTON_STATE_RELEASED && pressedCursorPos == pos) - g_pXWaylandManager->sendCloseWindow(m_pWindow->getGroupWindowByIndex(WINDOWINDEX)); + g_pXWaylandManager->sendCloseWindow(m_window->getGroupWindowByIndex(WINDOWINDEX)); return true; } @@ -517,17 +517,17 @@ bool CHyprGroupBarDecoration::onMouseButtonOnDeco(const Vector2D& pos, const IPo return true; // click on padding - const auto TABPAD = !*PSTACKED && (BARRELATIVEX - (m_fBarWidth + *PINNERGAP) * WINDOWINDEX > m_fBarWidth); - const auto STACKPAD = *PSTACKED && (BARRELATIVEY - (m_fBarHeight + *POUTERGAP) * WINDOWINDEX < *POUTERGAP); + const auto TABPAD = !*PSTACKED && (BARRELATIVEX - (m_barWidth + *PINNERGAP) * WINDOWINDEX > m_barWidth); + const auto STACKPAD = *PSTACKED && (BARRELATIVEY - (m_barHeight + *POUTERGAP) * WINDOWINDEX < *POUTERGAP); if (TABPAD || STACKPAD) { - if (!g_pCompositor->isWindowActive(m_pWindow.lock())) - g_pCompositor->focusWindow(m_pWindow.lock()); + if (!g_pCompositor->isWindowActive(m_window.lock())) + g_pCompositor->focusWindow(m_window.lock()); return true; } - PHLWINDOW pWindow = m_pWindow->getGroupWindowByIndex(WINDOWINDEX); + PHLWINDOW pWindow = m_window->getGroupWindowByIndex(WINDOWINDEX); - if (pWindow != m_pWindow) + if (pWindow != m_window) pWindow->setGroupCurrent(pWindow); if (!g_pCompositor->isWindowActive(pWindow) && *PFOLLOWMOUSE != 3) @@ -542,13 +542,13 @@ bool CHyprGroupBarDecoration::onMouseButtonOnDeco(const Vector2D& pos, const IPo bool CHyprGroupBarDecoration::onScrollOnDeco(const Vector2D& pos, const IPointer::SAxisEvent e) { static auto PGROUPBARSCROLLING = CConfigValue("group:groupbar:scrolling"); - if (!*PGROUPBARSCROLLING || m_pWindow->m_groupData.pNextWindow.expired()) + if (!*PGROUPBARSCROLLING || m_window->m_groupData.pNextWindow.expired()) return false; if (e.delta > 0) - m_pWindow->setGroupCurrent(m_pWindow->m_groupData.pNextWindow.lock()); + m_window->setGroupCurrent(m_window->m_groupData.pNextWindow.lock()); else - m_pWindow->setGroupCurrent(m_pWindow->getGroupPrevious()); + m_window->setGroupCurrent(m_window->getGroupPrevious()); return true; } @@ -576,12 +576,12 @@ std::string CHyprGroupBarDecoration::getDisplayName() { } CBox CHyprGroupBarDecoration::assignedBoxGlobal() { - CBox box = m_bAssignedBox; - box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_TOP, m_pWindow.lock())); + CBox box = m_assignedBox; + box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_TOP, m_window.lock())); - const auto PWORKSPACE = m_pWindow->m_workspace; + const auto PWORKSPACE = m_window->m_workspace; - if (PWORKSPACE && !m_pWindow->m_pinned) + if (PWORKSPACE && !m_window->m_pinned) box.translate(PWORKSPACE->m_renderOffset->value()); return box.round(); diff --git a/src/render/decorations/CHyprGroupBarDecoration.hpp b/src/render/decorations/CHyprGroupBarDecoration.hpp index de087bce..feb304f2 100644 --- a/src/render/decorations/CHyprGroupBarDecoration.hpp +++ b/src/render/decorations/CHyprGroupBarDecoration.hpp @@ -12,11 +12,11 @@ class CTitleTex { CTitleTex(PHLWINDOW pWindow, const Vector2D& bufferSize, const float monitorScale); ~CTitleTex() = default; - SP texActive; - SP texInactive; - std::string szContent; + SP m_texActive; + SP m_texInactive; + std::string m_content; - PHLWINDOWREF pWindowOwner; + PHLWINDOWREF m_windowOwner; }; void refreshGroupBarGradients(); @@ -47,16 +47,14 @@ class CHyprGroupBarDecoration : public IHyprWindowDecoration { virtual std::string getDisplayName(); private: - SBoxExtents m_seExtents; + CBox m_assignedBox = {0}; - CBox m_bAssignedBox = {0}; - - PHLWINDOWREF m_pWindow; + PHLWINDOWREF m_window; std::vector m_dwGroupMembers; - float m_fBarWidth; - float m_fBarHeight; + float m_barWidth; + float m_barHeight; CTitleTex* textureFromTitle(const std::string&); void invalidateTextures(); @@ -71,5 +69,5 @@ class CHyprGroupBarDecoration : public IHyprWindowDecoration { struct STitleTexs { // STitleTexs* overriden = nullptr; // TODO: make shit shared in-group to decrease VRAM usage. std::vector> titleTexs; - } m_sTitleTexs; + } m_titleTexs; }; diff --git a/src/render/decorations/DecorationPositioner.cpp b/src/render/decorations/DecorationPositioner.cpp index cb70304f..250070bc 100644 --- a/src/render/decorations/DecorationPositioner.cpp +++ b/src/render/decorations/DecorationPositioner.cpp @@ -59,10 +59,10 @@ Vector2D CDecorationPositioner::getEdgeDefinedPoint(uint32_t edges, PHLWINDOW pW } void CDecorationPositioner::uncacheDecoration(IHyprWindowDecoration* deco) { - std::erase_if(m_vWindowPositioningDatas, [&](const auto& data) { return !data->pWindow.lock() || data->pDecoration == deco; }); + std::erase_if(m_windowPositioningDatas, [&](const auto& data) { return !data->pWindow.lock() || data->pDecoration == deco; }); - const auto WIT = std::find_if(m_mWindowDatas.begin(), m_mWindowDatas.end(), [&](const auto& other) { return other.first.lock() == deco->m_pWindow.lock(); }); - if (WIT == m_mWindowDatas.end()) + const auto WIT = std::find_if(m_windowDatas.begin(), m_windowDatas.end(), [&](const auto& other) { return other.first.lock() == deco->m_window.lock(); }); + if (WIT == m_windowDatas.end()) return; WIT->second.needsRecalc = true; @@ -70,16 +70,16 @@ void CDecorationPositioner::uncacheDecoration(IHyprWindowDecoration* deco) { void CDecorationPositioner::repositionDeco(IHyprWindowDecoration* deco) { uncacheDecoration(deco); - onWindowUpdate(deco->m_pWindow.lock()); + onWindowUpdate(deco->m_window.lock()); } CDecorationPositioner::SWindowPositioningData* CDecorationPositioner::getDataFor(IHyprWindowDecoration* pDecoration, PHLWINDOW pWindow) { - auto it = std::find_if(m_vWindowPositioningDatas.begin(), m_vWindowPositioningDatas.end(), [&](const auto& el) { return el->pDecoration == pDecoration; }); + auto it = std::find_if(m_windowPositioningDatas.begin(), m_windowPositioningDatas.end(), [&](const auto& el) { return el->pDecoration == pDecoration; }); - if (it != m_vWindowPositioningDatas.end()) + if (it != m_windowPositioningDatas.end()) return it->get(); - const auto DATA = m_vWindowPositioningDatas.emplace_back(makeUnique(pWindow, pDecoration)).get(); + const auto DATA = m_windowPositioningDatas.emplace_back(makeUnique(pWindow, pDecoration)).get(); DATA->positioningInfo = pDecoration->getPositioningInfo(); @@ -87,8 +87,8 @@ CDecorationPositioner::SWindowPositioningData* CDecorationPositioner::getDataFor } void CDecorationPositioner::sanitizeDatas() { - std::erase_if(m_mWindowDatas, [](const auto& other) { return !valid(other.first); }); - std::erase_if(m_vWindowPositioningDatas, [](const auto& other) { + std::erase_if(m_windowDatas, [](const auto& other) { return !valid(other.first); }); + std::erase_if(m_windowPositioningDatas, [](const auto& other) { if (!validMapped(other->pWindow)) return true; if (std::find_if(other->pWindow->m_windowDecorations.begin(), other->pWindow->m_windowDecorations.end(), [&](const auto& el) { return el.get() == other->pDecoration; }) == @@ -99,8 +99,8 @@ void CDecorationPositioner::sanitizeDatas() { } void CDecorationPositioner::forceRecalcFor(PHLWINDOW pWindow) { - const auto WIT = std::find_if(m_mWindowDatas.begin(), m_mWindowDatas.end(), [&](const auto& other) { return other.first.lock() == pWindow; }); - if (WIT == m_mWindowDatas.end()) + const auto WIT = std::find_if(m_windowDatas.begin(), m_windowDatas.end(), [&](const auto& other) { return other.first.lock() == pWindow; }); + if (WIT == m_windowDatas.end()) return; const auto WINDOWDATA = &WIT->second; @@ -112,8 +112,8 @@ void CDecorationPositioner::onWindowUpdate(PHLWINDOW pWindow) { if (!validMapped(pWindow)) return; - const auto WIT = std::find_if(m_mWindowDatas.begin(), m_mWindowDatas.end(), [&](const auto& other) { return other.first.lock() == pWindow; }); - if (WIT == m_mWindowDatas.end()) + const auto WIT = std::find_if(m_windowDatas.begin(), m_windowDatas.end(), [&](const auto& other) { return other.first.lock() == pWindow; }); + if (WIT == m_windowDatas.end()) return; const auto WINDOWDATA = &WIT->second; @@ -130,7 +130,7 @@ void CDecorationPositioner::onWindowUpdate(PHLWINDOW pWindow) { } if (WINDOWDATA->lastWindowSize == pWindow->m_realSize->value() /* position not changed */ - && std::all_of(m_vWindowPositioningDatas.begin(), m_vWindowPositioningDatas.end(), + && std::all_of(m_windowPositioningDatas.begin(), m_windowPositioningDatas.end(), [pWindow](const auto& data) { return pWindow != data->pWindow.lock() || !data->needsReposition; }) /* all window datas are either not for this window or don't need a reposition */ && !WINDOWDATA->needsRecalc /* window doesn't need recalc */ @@ -282,17 +282,17 @@ void CDecorationPositioner::onWindowUpdate(PHLWINDOW pWindow) { } void CDecorationPositioner::onWindowUnmap(PHLWINDOW pWindow) { - std::erase_if(m_vWindowPositioningDatas, [&](const auto& data) { return data->pWindow.lock() == pWindow; }); - m_mWindowDatas.erase(pWindow); + std::erase_if(m_windowPositioningDatas, [&](const auto& data) { return data->pWindow.lock() == pWindow; }); + m_windowDatas.erase(pWindow); } void CDecorationPositioner::onWindowMap(PHLWINDOW pWindow) { - m_mWindowDatas[pWindow] = {}; + m_windowDatas[pWindow] = {}; } SBoxExtents CDecorationPositioner::getWindowDecorationReserved(PHLWINDOW pWindow) { try { - const auto E = m_mWindowDatas.at(pWindow); + const auto E = m_windowDatas.at(pWindow); return E.reserved; } catch (std::out_of_range& e) { return {}; } } @@ -301,7 +301,7 @@ SBoxExtents CDecorationPositioner::getWindowDecorationExtents(PHLWINDOW pWindow, CBox const mainSurfaceBox = pWindow->getWindowMainSurfaceBox(); CBox accum = mainSurfaceBox; - for (auto const& data : m_vWindowPositioningDatas) { + for (auto const& data : m_windowPositioningDatas) { if (!data->pDecoration || (inputOnly && !(data->pDecoration->getDecorationFlags() & DECORATION_ALLOWS_MOUSE_INPUT))) continue; @@ -349,7 +349,7 @@ SBoxExtents CDecorationPositioner::getWindowDecorationExtents(PHLWINDOW pWindow, CBox CDecorationPositioner::getBoxWithIncludedDecos(PHLWINDOW pWindow) { CBox accum = pWindow->getWindowMainSurfaceBox(); - for (auto const& data : m_vWindowPositioningDatas) { + for (auto const& data : m_windowPositioningDatas) { if (data->pWindow.lock() != pWindow) continue; @@ -385,7 +385,7 @@ CBox CDecorationPositioner::getBoxWithIncludedDecos(PHLWINDOW pWindow) { } CBox CDecorationPositioner::getWindowDecorationBox(IHyprWindowDecoration* deco) { - auto const window = deco->m_pWindow.lock(); + auto const window = deco->m_window.lock(); const auto DATA = getDataFor(deco, window); CBox box = DATA->lastReply.assignedGeometry; diff --git a/src/render/decorations/DecorationPositioner.hpp b/src/render/decorations/DecorationPositioner.hpp index 787c6d1f..7189db41 100644 --- a/src/render/decorations/DecorationPositioner.hpp +++ b/src/render/decorations/DecorationPositioner.hpp @@ -87,8 +87,8 @@ class CDecorationPositioner { bool needsRecalc = false; }; - std::map m_mWindowDatas; - std::vector> m_vWindowPositioningDatas; + std::map m_windowDatas; + std::vector> m_windowPositioningDatas; SWindowPositioningData* getDataFor(IHyprWindowDecoration* pDecoration, PHLWINDOW pWindow); void onWindowUnmap(PHLWINDOW pWindow); diff --git a/src/render/decorations/IHyprWindowDecoration.cpp b/src/render/decorations/IHyprWindowDecoration.cpp index c71ee186..0dd11867 100644 --- a/src/render/decorations/IHyprWindowDecoration.cpp +++ b/src/render/decorations/IHyprWindowDecoration.cpp @@ -2,7 +2,7 @@ class CWindow; -IHyprWindowDecoration::IHyprWindowDecoration(PHLWINDOW pWindow) : m_pWindow(pWindow) { +IHyprWindowDecoration::IHyprWindowDecoration(PHLWINDOW pWindow) : m_window(pWindow) { ; } diff --git a/src/render/decorations/IHyprWindowDecoration.hpp b/src/render/decorations/IHyprWindowDecoration.hpp index 2703eb61..26bfcb45 100644 --- a/src/render/decorations/IHyprWindowDecoration.hpp +++ b/src/render/decorations/IHyprWindowDecoration.hpp @@ -56,7 +56,7 @@ class IHyprWindowDecoration { virtual std::string getDisplayName(); private: - PHLWINDOWREF m_pWindow; + PHLWINDOWREF m_window; friend class CDecorationPositioner; }; diff --git a/src/render/pass/BorderPassElement.cpp b/src/render/pass/BorderPassElement.cpp index 31042c28..1024f021 100644 --- a/src/render/pass/BorderPassElement.cpp +++ b/src/render/pass/BorderPassElement.cpp @@ -1,15 +1,15 @@ #include "BorderPassElement.hpp" #include "../OpenGL.hpp" -CBorderPassElement::CBorderPassElement(const CBorderPassElement::SBorderData& data_) : data(data_) { +CBorderPassElement::CBorderPassElement(const CBorderPassElement::SBorderData& data_) : m_data(data_) { ; } void CBorderPassElement::draw(const CRegion& damage) { - if (data.hasGrad2) - g_pHyprOpenGL->renderBorder(data.box, data.grad1, data.grad2, data.lerp, data.round, data.roundingPower, data.borderSize, data.a, data.outerRound); + if (m_data.hasGrad2) + g_pHyprOpenGL->renderBorder(m_data.box, m_data.grad1, m_data.grad2, m_data.lerp, m_data.round, m_data.roundingPower, m_data.borderSize, m_data.a, m_data.outerRound); else - g_pHyprOpenGL->renderBorder(data.box, data.grad1, data.round, data.roundingPower, data.borderSize, data.a, data.outerRound); + g_pHyprOpenGL->renderBorder(m_data.box, m_data.grad1, m_data.round, m_data.roundingPower, m_data.borderSize, m_data.a, m_data.outerRound); } bool CBorderPassElement::needsLiveBlur() { diff --git a/src/render/pass/BorderPassElement.hpp b/src/render/pass/BorderPassElement.hpp index 785653ab..238b9ed5 100644 --- a/src/render/pass/BorderPassElement.hpp +++ b/src/render/pass/BorderPassElement.hpp @@ -27,5 +27,5 @@ class CBorderPassElement : public IPassElement { } private: - SBorderData data; + SBorderData m_data; }; diff --git a/src/render/pass/ClearPassElement.cpp b/src/render/pass/ClearPassElement.cpp index bafa73c7..256b857f 100644 --- a/src/render/pass/ClearPassElement.cpp +++ b/src/render/pass/ClearPassElement.cpp @@ -1,12 +1,12 @@ #include "ClearPassElement.hpp" #include "../OpenGL.hpp" -CClearPassElement::CClearPassElement(const CClearPassElement::SClearData& data_) : data(data_) { +CClearPassElement::CClearPassElement(const CClearPassElement::SClearData& data_) : m_data(data_) { ; } void CClearPassElement::draw(const CRegion& damage) { - g_pHyprOpenGL->clear(data.color); + g_pHyprOpenGL->clear(m_data.color); } bool CClearPassElement::needsLiveBlur() { diff --git a/src/render/pass/ClearPassElement.hpp b/src/render/pass/ClearPassElement.hpp index 40242457..ff161551 100644 --- a/src/render/pass/ClearPassElement.hpp +++ b/src/render/pass/ClearPassElement.hpp @@ -21,5 +21,5 @@ class CClearPassElement : public IPassElement { } private: - SClearData data; + SClearData m_data; }; \ No newline at end of file diff --git a/src/render/pass/FramebufferElement.cpp b/src/render/pass/FramebufferElement.cpp index 8271777f..7cfa8b4b 100644 --- a/src/render/pass/FramebufferElement.cpp +++ b/src/render/pass/FramebufferElement.cpp @@ -1,18 +1,18 @@ #include "FramebufferElement.hpp" #include "../OpenGL.hpp" -CFramebufferElement::CFramebufferElement(const CFramebufferElement::SFramebufferElementData& data_) : data(data_) { +CFramebufferElement::CFramebufferElement(const CFramebufferElement::SFramebufferElementData& data_) : m_data(data_) { ; } void CFramebufferElement::draw(const CRegion& damage) { CFramebuffer* fb = nullptr; - if (data.main) { - switch (data.framebufferID) { - case FB_MONITOR_RENDER_MAIN: fb = g_pHyprOpenGL->m_RenderData.mainFB; break; - case FB_MONITOR_RENDER_CURRENT: fb = g_pHyprOpenGL->m_RenderData.currentFB; break; - case FB_MONITOR_RENDER_OUT: fb = g_pHyprOpenGL->m_RenderData.outFB; break; + if (m_data.main) { + switch (m_data.framebufferID) { + case FB_MONITOR_RENDER_MAIN: fb = g_pHyprOpenGL->m_renderData.mainFB; break; + case FB_MONITOR_RENDER_CURRENT: fb = g_pHyprOpenGL->m_renderData.currentFB; break; + case FB_MONITOR_RENDER_OUT: fb = g_pHyprOpenGL->m_renderData.outFB; break; } if (!fb) { @@ -21,13 +21,13 @@ void CFramebufferElement::draw(const CRegion& damage) { } } else { - switch (data.framebufferID) { - case FB_MONITOR_RENDER_EXTRA_OFFLOAD: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->offloadFB; break; - case FB_MONITOR_RENDER_EXTRA_MIRROR: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->mirrorFB; break; - case FB_MONITOR_RENDER_EXTRA_MIRROR_SWAP: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->mirrorSwapFB; break; - case FB_MONITOR_RENDER_EXTRA_OFF_MAIN: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->offMainFB; break; - case FB_MONITOR_RENDER_EXTRA_MONITOR_MIRROR: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->monitorMirrorFB; break; - case FB_MONITOR_RENDER_EXTRA_BLUR: fb = &g_pHyprOpenGL->m_RenderData.pCurrentMonData->blurFB; break; + switch (m_data.framebufferID) { + case FB_MONITOR_RENDER_EXTRA_OFFLOAD: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->offloadFB; break; + case FB_MONITOR_RENDER_EXTRA_MIRROR: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->mirrorFB; break; + case FB_MONITOR_RENDER_EXTRA_MIRROR_SWAP: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->mirrorSwapFB; break; + case FB_MONITOR_RENDER_EXTRA_OFF_MAIN: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->offMainFB; break; + case FB_MONITOR_RENDER_EXTRA_MONITOR_MIRROR: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->monitorMirrorFB; break; + case FB_MONITOR_RENDER_EXTRA_BLUR: fb = &g_pHyprOpenGL->m_renderData.pCurrentMonData->blurFB; break; } if (!fb) { diff --git a/src/render/pass/FramebufferElement.hpp b/src/render/pass/FramebufferElement.hpp index ab1f1426..515c3380 100644 --- a/src/render/pass/FramebufferElement.hpp +++ b/src/render/pass/FramebufferElement.hpp @@ -21,5 +21,5 @@ class CFramebufferElement : public IPassElement { } private: - SFramebufferElementData data; + SFramebufferElementData m_data; }; \ No newline at end of file diff --git a/src/render/pass/Pass.cpp b/src/render/pass/Pass.cpp index 925a30b4..fc743865 100644 --- a/src/render/pass/Pass.cpp +++ b/src/render/pass/Pass.cpp @@ -15,11 +15,11 @@ bool CRenderPass::empty() const { } bool CRenderPass::single() const { - return m_vPassElements.size() == 1; + return m_passElements.size() == 1; } void CRenderPass::add(SP el) { - m_vPassElements.emplace_back(makeShared(CRegion{}, el)); + m_passElements.emplace_back(makeShared(CRegion{}, el)); } void CRenderPass::simplify() { @@ -28,10 +28,10 @@ void CRenderPass::simplify() { // TODO: use precompute blur for instances where there is nothing in between // if there is live blur, we need to NOT occlude any area where it will be influenced - const auto WILLBLUR = std::ranges::any_of(m_vPassElements, [](const auto& el) { return el->element->needsLiveBlur(); }); + const auto WILLBLUR = std::ranges::any_of(m_passElements, [](const auto& el) { return el->element->needsLiveBlur(); }); - CRegion newDamage = damage.copy().intersect(CBox{{}, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize}); - for (auto& el : m_vPassElements | std::views::reverse) { + CRegion newDamage = m_damage.copy().intersect(CBox{{}, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize}); + for (auto& el : m_passElements | std::views::reverse) { if (newDamage.empty() && !el->element->undiscardable()) { el->discard = true; @@ -43,7 +43,7 @@ void CRenderPass::simplify() { if (!bb1 || newDamage.empty()) continue; - auto bb = bb1->scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + auto bb = bb1->scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale); // drop if empty if (CRegion copy = newDamage.copy(); copy.intersect(bb).empty()) { @@ -54,13 +54,13 @@ void CRenderPass::simplify() { auto opaque = el->element->opaqueRegion(); if (!opaque.empty()) { - opaque.scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + opaque.scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale); // if this intersects the liveBlur region, allow live blur to operate correctly. // do not occlude a border near it. if (WILLBLUR) { CRegion liveBlurRegion; - for (auto& el2 : m_vPassElements) { + for (auto& el2 : m_passElements) { // if we reach self, no problem, we can break. // if the blur is above us, we don't care, it will work fine. if (el2 == el) @@ -76,7 +76,7 @@ void CRenderPass::simplify() { } // expand the region: this area needs to be proper to blur it right. - liveBlurRegion.scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale).expand(oneBlurRadius() * 2.F); + liveBlurRegion.scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale).expand(oneBlurRadius() * 2.F); if (auto infringement = opaque.copy().intersect(liveBlurRegion); !infringement.empty()) { // eh, this is not the correct solution, but it will do... @@ -86,57 +86,57 @@ void CRenderPass::simplify() { } newDamage.subtract(opaque); if (*PDEBUGPASS) - occludedRegions.emplace_back(opaque); + m_occludedRegions.emplace_back(opaque); } } if (*PDEBUGPASS) { - for (auto& el2 : m_vPassElements) { + for (auto& el2 : m_passElements) { if (!el2->element->needsLiveBlur()) continue; const auto BB = el2->element->boundingBox(); RASSERT(BB, "No bounding box for an element with live blur is illegal"); - totalLiveBlurRegion.add(BB->copy().scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale)); + m_totalLiveBlurRegion.add(BB->copy().scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale)); } } } void CRenderPass::clear() { - m_vPassElements.clear(); + m_passElements.clear(); } CRegion CRenderPass::render(const CRegion& damage_) { static auto PDEBUGPASS = CConfigValue("debug:pass"); - const auto WILLBLUR = std::ranges::any_of(m_vPassElements, [](const auto& el) { return el->element->needsLiveBlur(); }); + const auto WILLBLUR = std::ranges::any_of(m_passElements, [](const auto& el) { return el->element->needsLiveBlur(); }); - damage = *PDEBUGPASS ? CRegion{CBox{{}, {INT32_MAX, INT32_MAX}}} : damage_.copy(); + m_damage = *PDEBUGPASS ? CRegion{CBox{{}, {INT32_MAX, INT32_MAX}}} : damage_.copy(); if (*PDEBUGPASS) { - occludedRegions.clear(); - totalLiveBlurRegion = CRegion{}; + m_occludedRegions.clear(); + m_totalLiveBlurRegion = CRegion{}; } - if (damage.empty()) { - g_pHyprOpenGL->m_RenderData.damage = damage; - g_pHyprOpenGL->m_RenderData.finalDamage = damage; - return damage; + if (m_damage.empty()) { + g_pHyprOpenGL->m_renderData.damage = m_damage; + g_pHyprOpenGL->m_renderData.finalDamage = m_damage; + return m_damage; } - if (!*PDEBUGPASS && debugData.present) - debugData = {false}; - else if (*PDEBUGPASS && !debugData.present) { - debugData.present = true; - debugData.keyboardFocusText = g_pHyprOpenGL->renderText("keyboard", Colors::WHITE, 12); - debugData.pointerFocusText = g_pHyprOpenGL->renderText("pointer", Colors::WHITE, 12); - debugData.lastWindowText = g_pHyprOpenGL->renderText("lastWindow", Colors::WHITE, 12); + if (!*PDEBUGPASS && m_debugData.present) + m_debugData = {false}; + else if (*PDEBUGPASS && !m_debugData.present) { + m_debugData.present = true; + m_debugData.keyboardFocusText = g_pHyprOpenGL->renderText("keyboard", Colors::WHITE, 12); + m_debugData.pointerFocusText = g_pHyprOpenGL->renderText("pointer", Colors::WHITE, 12); + m_debugData.lastWindowText = g_pHyprOpenGL->renderText("lastWindow", Colors::WHITE, 12); } if (WILLBLUR && !*PDEBUGPASS) { // combine blur regions into one that will be expanded CRegion blurRegion; - for (auto& el : m_vPassElements) { + for (auto& el : m_passElements) { if (!el->element->needsLiveBlur()) continue; @@ -146,40 +146,40 @@ CRegion CRenderPass::render(const CRegion& damage_) { blurRegion.add(*BB); } - blurRegion.scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + blurRegion.scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale); - blurRegion.intersect(damage).expand(oneBlurRadius()); + blurRegion.intersect(m_damage).expand(oneBlurRadius()); - g_pHyprOpenGL->m_RenderData.finalDamage = blurRegion.copy().add(damage); + g_pHyprOpenGL->m_renderData.finalDamage = blurRegion.copy().add(m_damage); // FIXME: why does this break on * 1.F ? // used to work when we expand all the damage... I think? Well, before pass. // moving a window over blur shows the edges being wonk. blurRegion.expand(oneBlurRadius() * 1.5F); - damage = blurRegion.copy().add(damage); + m_damage = blurRegion.copy().add(m_damage); } else - g_pHyprOpenGL->m_RenderData.finalDamage = damage; + g_pHyprOpenGL->m_renderData.finalDamage = m_damage; - if (std::ranges::any_of(m_vPassElements, [](const auto& el) { return el->element->disableSimplification(); })) { - for (auto& el : m_vPassElements) { - el->elementDamage = damage; + if (std::ranges::any_of(m_passElements, [](const auto& el) { return el->element->disableSimplification(); })) { + for (auto& el : m_passElements) { + el->elementDamage = m_damage; } } else simplify(); - g_pHyprOpenGL->m_RenderData.pCurrentMonData->blurFBShouldRender = std::ranges::any_of(m_vPassElements, [](const auto& el) { return el->element->needsPrecomputeBlur(); }); + g_pHyprOpenGL->m_renderData.pCurrentMonData->blurFBShouldRender = std::ranges::any_of(m_passElements, [](const auto& el) { return el->element->needsPrecomputeBlur(); }); - if (m_vPassElements.empty()) + if (m_passElements.empty()) return {}; - for (auto& el : m_vPassElements) { + for (auto& el : m_passElements) { if (el->discard) { el->element->discard(); continue; } - g_pHyprOpenGL->m_RenderData.damage = el->elementDamage; + g_pHyprOpenGL->m_renderData.damage = el->elementDamage; el->element->draw(el->elementDamage); } @@ -192,16 +192,16 @@ CRegion CRenderPass::render(const CRegion& damage_) { }); } - g_pHyprOpenGL->m_RenderData.damage = damage; - return damage; + g_pHyprOpenGL->m_renderData.damage = m_damage; + return m_damage; } void CRenderPass::renderDebugData() { - CBox box = {{}, g_pHyprOpenGL->m_RenderData.pMonitor->m_transformedSize}; - for (const auto& rg : occludedRegions) { + CBox box = {{}, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize}; + for (const auto& rg : m_occludedRegions) { g_pHyprOpenGL->renderRectWithDamage(box, Colors::RED.modifyA(0.1F), rg); } - g_pHyprOpenGL->renderRectWithDamage(box, Colors::GREEN.modifyA(0.1F), totalLiveBlurRegion); + g_pHyprOpenGL->renderRectWithDamage(box, Colors::GREEN.modifyA(0.1F), m_totalLiveBlurRegion); std::unordered_map offsets; @@ -219,9 +219,9 @@ void CRenderPass::renderDebugData() { if (!bb.has_value()) return; - CBox box = bb->copy().translate(-g_pHyprOpenGL->m_RenderData.pMonitor->m_position).scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + CBox box = bb->copy().translate(-g_pHyprOpenGL->m_renderData.pMonitor->m_position).scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale); - if (box.intersection(CBox{{}, g_pHyprOpenGL->m_RenderData.pMonitor->m_size}).empty()) + if (box.intersection(CBox{{}, g_pHyprOpenGL->m_renderData.pMonitor->m_size}).empty()) return; g_pHyprOpenGL->renderRectWithDamage(box, color, CRegion{0, 0, INT32_MAX, INT32_MAX}); @@ -231,17 +231,17 @@ void CRenderPass::renderDebugData() { else offsets[surface.get()] = 0; - box = {box.pos(), texture->m_vSize}; + box = {box.pos(), texture->m_size}; g_pHyprOpenGL->renderRectWithDamage(box, CHyprColor{0.F, 0.F, 0.F, 0.2F}, CRegion{0, 0, INT32_MAX, INT32_MAX}, std::min(5.0, box.size().y)); g_pHyprOpenGL->renderTexture(texture, box, 1.F); - offsets[surface.get()] += texture->m_vSize.y; + offsets[surface.get()] += texture->m_size.y; }; - renderHLSurface(debugData.keyboardFocusText, g_pSeatManager->m_state.keyboardFocus.lock(), Colors::PURPLE.modifyA(0.1F)); - renderHLSurface(debugData.pointerFocusText, g_pSeatManager->m_state.pointerFocus.lock(), Colors::ORANGE.modifyA(0.1F)); + renderHLSurface(m_debugData.keyboardFocusText, g_pSeatManager->m_state.keyboardFocus.lock(), Colors::PURPLE.modifyA(0.1F)); + renderHLSurface(m_debugData.pointerFocusText, g_pSeatManager->m_state.pointerFocus.lock(), Colors::ORANGE.modifyA(0.1F)); if (g_pCompositor->m_lastWindow) - renderHLSurface(debugData.lastWindowText, g_pCompositor->m_lastWindow->m_wlSurface->resource(), Colors::LIGHT_BLUE.modifyA(0.1F)); + renderHLSurface(m_debugData.lastWindowText, g_pCompositor->m_lastWindow->m_wlSurface->resource(), Colors::LIGHT_BLUE.modifyA(0.1F)); if (g_pSeatManager->m_state.pointerFocus) { if (g_pSeatManager->m_state.pointerFocus->m_current.input.intersect(CBox{{}, g_pSeatManager->m_state.pointerFocus->m_current.size}).getExtents().size() != @@ -251,28 +251,28 @@ void CRenderPass::renderDebugData() { auto BOX = hlSurface->getSurfaceBoxGlobal(); if (BOX) { auto region = g_pSeatManager->m_state.pointerFocus->m_current.input.copy() - .scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale) - .translate(BOX->pos() - g_pHyprOpenGL->m_RenderData.pMonitor->m_position); + .scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale) + .translate(BOX->pos() - g_pHyprOpenGL->m_renderData.pMonitor->m_position); g_pHyprOpenGL->renderRectWithDamage(box, CHyprColor{0.8F, 0.8F, 0.2F, 0.4F}, region); } } } } - const auto DISCARDED_ELEMENTS = std::count_if(m_vPassElements.begin(), m_vPassElements.end(), [](const auto& e) { return e->discard; }); - auto tex = g_pHyprOpenGL->renderText(std::format("occlusion layers: {}\npass elements: {} ({} discarded)\nviewport: {:X0}", occludedRegions.size(), m_vPassElements.size(), - DISCARDED_ELEMENTS, g_pHyprOpenGL->m_RenderData.pMonitor->m_pixelSize), + const auto DISCARDED_ELEMENTS = std::count_if(m_passElements.begin(), m_passElements.end(), [](const auto& e) { return e->discard; }); + auto tex = g_pHyprOpenGL->renderText(std::format("occlusion layers: {}\npass elements: {} ({} discarded)\nviewport: {:X0}", m_occludedRegions.size(), m_passElements.size(), + DISCARDED_ELEMENTS, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize), Colors::WHITE, 12); if (tex) { - box = CBox{{0.F, g_pHyprOpenGL->m_RenderData.pMonitor->m_size.y - tex->m_vSize.y}, tex->m_vSize}.scale(g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + box = CBox{{0.F, g_pHyprOpenGL->m_renderData.pMonitor->m_size.y - tex->m_size.y}, tex->m_size}.scale(g_pHyprOpenGL->m_renderData.pMonitor->m_scale); g_pHyprOpenGL->renderTexture(tex, box, 1.F); } std::string passStructure; auto yn = [](const bool val) -> const char* { return val ? "yes" : "no"; }; auto tick = [](const bool val) -> const char* { return val ? "✔" : "✖"; }; - for (const auto& el : m_vPassElements | std::views::reverse) { + for (const auto& el : m_passElements | std::views::reverse) { passStructure += std::format("{} {} (bb: {} op: {})\n", tick(!el->discard), el->element->passName(), yn(el->element->boundingBox().has_value()), yn(!el->element->opaqueRegion().empty())); } @@ -282,8 +282,8 @@ void CRenderPass::renderDebugData() { tex = g_pHyprOpenGL->renderText(passStructure, Colors::WHITE, 12); if (tex) { - box = CBox{{g_pHyprOpenGL->m_RenderData.pMonitor->m_size.x - tex->m_vSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->m_size.y - tex->m_vSize.y}, tex->m_vSize}.scale( - g_pHyprOpenGL->m_RenderData.pMonitor->m_scale); + box = CBox{{g_pHyprOpenGL->m_renderData.pMonitor->m_size.x - tex->m_size.x, g_pHyprOpenGL->m_renderData.pMonitor->m_size.y - tex->m_size.y}, tex->m_size}.scale( + g_pHyprOpenGL->m_renderData.pMonitor->m_scale); g_pHyprOpenGL->renderTexture(tex, box, 1.F); } } @@ -296,5 +296,5 @@ float CRenderPass::oneBlurRadius() { } void CRenderPass::removeAllOfType(const std::string& type) { - std::erase_if(m_vPassElements, [&type](const auto& e) { return e->element->passName() == type; }); + std::erase_if(m_passElements, [&type](const auto& e) { return e->element->passName() == type; }); } diff --git a/src/render/pass/Pass.hpp b/src/render/pass/Pass.hpp index bbc55d2c..ac564689 100644 --- a/src/render/pass/Pass.hpp +++ b/src/render/pass/Pass.hpp @@ -18,9 +18,9 @@ class CRenderPass { CRegion render(const CRegion& damage_); private: - CRegion damage; - std::vector occludedRegions; - CRegion totalLiveBlurRegion; + CRegion m_damage; + std::vector m_occludedRegions; + CRegion m_totalLiveBlurRegion; struct SPassElementData { CRegion elementDamage; @@ -28,9 +28,7 @@ class CRenderPass { bool discard = false; }; - std::vector> m_vPassElements; - - SP currentPassInfo = nullptr; + std::vector> m_passElements; void simplify(); float oneBlurRadius(); @@ -39,7 +37,7 @@ class CRenderPass { struct { bool present = false; SP keyboardFocusText, pointerFocusText, lastWindowText; - } debugData; + } m_debugData; friend class CHyprOpenGLImpl; }; diff --git a/src/render/pass/RectPassElement.cpp b/src/render/pass/RectPassElement.cpp index 1dab6a71..22f3bb11 100644 --- a/src/render/pass/RectPassElement.cpp +++ b/src/render/pass/RectPassElement.cpp @@ -1,45 +1,45 @@ #include "RectPassElement.hpp" #include "../OpenGL.hpp" -CRectPassElement::CRectPassElement(const CRectPassElement::SRectData& data_) : data(data_) { +CRectPassElement::CRectPassElement(const CRectPassElement::SRectData& data_) : m_data(data_) { ; } void CRectPassElement::draw(const CRegion& damage) { - if (data.box.w <= 0 || data.box.h <= 0) + if (m_data.box.w <= 0 || m_data.box.h <= 0) return; - if (!data.clipBox.empty()) - g_pHyprOpenGL->m_RenderData.clipBox = data.clipBox; + if (!m_data.clipBox.empty()) + g_pHyprOpenGL->m_renderData.clipBox = m_data.clipBox; - if (data.color.a == 1.F || !data.blur) - g_pHyprOpenGL->renderRectWithDamage(data.box, data.color, damage, data.round, data.roundingPower); + if (m_data.color.a == 1.F || !m_data.blur) + g_pHyprOpenGL->renderRectWithDamage(m_data.box, m_data.color, damage, m_data.round, m_data.roundingPower); else - g_pHyprOpenGL->renderRectWithBlur(data.box, data.color, data.round, data.roundingPower, data.blurA, data.xray); + g_pHyprOpenGL->renderRectWithBlur(m_data.box, m_data.color, m_data.round, m_data.roundingPower, m_data.blurA, m_data.xray); - g_pHyprOpenGL->m_RenderData.clipBox = {}; + g_pHyprOpenGL->m_renderData.clipBox = {}; } bool CRectPassElement::needsLiveBlur() { - return data.color.a < 1.F && !data.xray && data.blur; + return m_data.color.a < 1.F && !m_data.xray && m_data.blur; } bool CRectPassElement::needsPrecomputeBlur() { - return data.color.a < 1.F && data.xray && data.blur; + return m_data.color.a < 1.F && m_data.xray && m_data.blur; } std::optional CRectPassElement::boundingBox() { - return data.box.copy().scale(1.F / g_pHyprOpenGL->m_RenderData.pMonitor->m_scale).round(); + return m_data.box.copy().scale(1.F / g_pHyprOpenGL->m_renderData.pMonitor->m_scale).round(); } CRegion CRectPassElement::opaqueRegion() { - if (data.color.a < 1.F) + if (m_data.color.a < 1.F) return CRegion{}; - CRegion rg = boundingBox()->expand(-data.round); + CRegion rg = boundingBox()->expand(-m_data.round); - if (!data.clipBox.empty()) - rg.intersect(data.clipBox); + if (!m_data.clipBox.empty()) + rg.intersect(m_data.clipBox); return rg; } diff --git a/src/render/pass/RectPassElement.hpp b/src/render/pass/RectPassElement.hpp index f798dbf9..c83d52ec 100644 --- a/src/render/pass/RectPassElement.hpp +++ b/src/render/pass/RectPassElement.hpp @@ -27,5 +27,5 @@ class CRectPassElement : public IPassElement { } private: - SRectData data; + SRectData m_data; }; diff --git a/src/render/pass/RendererHintsPassElement.cpp b/src/render/pass/RendererHintsPassElement.cpp index 5b6d0098..2ad68204 100644 --- a/src/render/pass/RendererHintsPassElement.cpp +++ b/src/render/pass/RendererHintsPassElement.cpp @@ -1,13 +1,13 @@ #include "RendererHintsPassElement.hpp" #include "../OpenGL.hpp" -CRendererHintsPassElement::CRendererHintsPassElement(const CRendererHintsPassElement::SData& data_) : data(data_) { +CRendererHintsPassElement::CRendererHintsPassElement(const CRendererHintsPassElement::SData& data_) : m_data(data_) { ; } void CRendererHintsPassElement::draw(const CRegion& damage) { - if (data.renderModif.has_value()) - g_pHyprOpenGL->m_RenderData.renderModif = *data.renderModif; + if (m_data.renderModif.has_value()) + g_pHyprOpenGL->m_renderData.renderModif = *m_data.renderModif; } bool CRendererHintsPassElement::needsLiveBlur() { diff --git a/src/render/pass/RendererHintsPassElement.hpp b/src/render/pass/RendererHintsPassElement.hpp index a333e031..d56a0cd6 100644 --- a/src/render/pass/RendererHintsPassElement.hpp +++ b/src/render/pass/RendererHintsPassElement.hpp @@ -22,5 +22,5 @@ class CRendererHintsPassElement : public IPassElement { } private: - SData data; + SData m_data; }; \ No newline at end of file diff --git a/src/render/pass/ShadowPassElement.cpp b/src/render/pass/ShadowPassElement.cpp index 22910c96..cccace7e 100644 --- a/src/render/pass/ShadowPassElement.cpp +++ b/src/render/pass/ShadowPassElement.cpp @@ -2,12 +2,12 @@ #include "../OpenGL.hpp" #include "../decorations/CHyprDropShadowDecoration.hpp" -CShadowPassElement::CShadowPassElement(const CShadowPassElement::SShadowData& data_) : data(data_) { +CShadowPassElement::CShadowPassElement(const CShadowPassElement::SShadowData& data_) : m_data(data_) { ; } void CShadowPassElement::draw(const CRegion& damage) { - data.deco->render(g_pHyprOpenGL->m_RenderData.pMonitor.lock(), data.a); + m_data.deco->render(g_pHyprOpenGL->m_renderData.pMonitor.lock(), m_data.a); } bool CShadowPassElement::needsLiveBlur() { diff --git a/src/render/pass/ShadowPassElement.hpp b/src/render/pass/ShadowPassElement.hpp index 715e7bfb..7e85342a 100644 --- a/src/render/pass/ShadowPassElement.hpp +++ b/src/render/pass/ShadowPassElement.hpp @@ -22,5 +22,5 @@ class CShadowPassElement : public IPassElement { } private: - SShadowData data; + SShadowData m_data; }; \ No newline at end of file diff --git a/src/render/pass/SurfacePassElement.cpp b/src/render/pass/SurfacePassElement.cpp index ade9277c..ed699a02 100644 --- a/src/render/pass/SurfacePassElement.cpp +++ b/src/render/pass/SurfacePassElement.cpp @@ -12,59 +12,59 @@ #include using namespace Hyprutils::Utils; -CSurfacePassElement::CSurfacePassElement(const CSurfacePassElement::SRenderData& data_) : data(data_) { +CSurfacePassElement::CSurfacePassElement(const CSurfacePassElement::SRenderData& data_) : m_data(data_) { ; } void CSurfacePassElement::draw(const CRegion& damage) { - g_pHyprOpenGL->m_RenderData.currentWindow = data.pWindow; - g_pHyprOpenGL->m_RenderData.surface = data.surface; - g_pHyprOpenGL->m_RenderData.currentLS = data.pLS; - g_pHyprOpenGL->m_RenderData.clipBox = data.clipBox; - g_pHyprOpenGL->m_RenderData.discardMode = data.discardMode; - g_pHyprOpenGL->m_RenderData.discardOpacity = data.discardOpacity; - g_pHyprOpenGL->m_RenderData.useNearestNeighbor = data.useNearestNeighbor; - g_pHyprOpenGL->m_bEndFrame = data.flipEndFrame; + g_pHyprOpenGL->m_renderData.currentWindow = m_data.pWindow; + g_pHyprOpenGL->m_renderData.surface = m_data.surface; + g_pHyprOpenGL->m_renderData.currentLS = m_data.pLS; + g_pHyprOpenGL->m_renderData.clipBox = m_data.clipBox; + g_pHyprOpenGL->m_renderData.discardMode = m_data.discardMode; + g_pHyprOpenGL->m_renderData.discardOpacity = m_data.discardOpacity; + g_pHyprOpenGL->m_renderData.useNearestNeighbor = m_data.useNearestNeighbor; + g_pHyprOpenGL->m_endFrame = m_data.flipEndFrame; CScopeGuard x = {[]() { - g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); - g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); - g_pHyprOpenGL->m_RenderData.useNearestNeighbor = false; - g_pHyprOpenGL->m_RenderData.clipBox = {}; - g_pHyprOpenGL->m_RenderData.clipRegion = {}; - g_pHyprOpenGL->m_RenderData.discardMode = 0; - g_pHyprOpenGL->m_RenderData.discardOpacity = 0; - g_pHyprOpenGL->m_RenderData.useNearestNeighbor = false; - g_pHyprOpenGL->m_bEndFrame = false; - g_pHyprOpenGL->m_RenderData.currentWindow.reset(); - g_pHyprOpenGL->m_RenderData.surface.reset(); - g_pHyprOpenGL->m_RenderData.currentLS.reset(); + g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight = Vector2D(-1, -1); + g_pHyprOpenGL->m_renderData.useNearestNeighbor = false; + g_pHyprOpenGL->m_renderData.clipBox = {}; + g_pHyprOpenGL->m_renderData.clipRegion = {}; + g_pHyprOpenGL->m_renderData.discardMode = 0; + g_pHyprOpenGL->m_renderData.discardOpacity = 0; + g_pHyprOpenGL->m_renderData.useNearestNeighbor = false; + g_pHyprOpenGL->m_endFrame = false; + g_pHyprOpenGL->m_renderData.currentWindow.reset(); + g_pHyprOpenGL->m_renderData.surface.reset(); + g_pHyprOpenGL->m_renderData.currentLS.reset(); }}; - if (!data.texture) + if (!m_data.texture) return; - const auto& TEXTURE = data.texture; + const auto& TEXTURE = m_data.texture; // this is bad, probably has been logged elsewhere. Means the texture failed // uploading to the GPU. - if (!TEXTURE->m_iTexID) + if (!TEXTURE->m_texID) return; - const auto INTERACTIVERESIZEINPROGRESS = data.pWindow && g_pInputManager->m_currentlyDraggedWindow && g_pInputManager->m_dragMode == MBIND_RESIZE; + const auto INTERACTIVERESIZEINPROGRESS = m_data.pWindow && g_pInputManager->m_currentlyDraggedWindow && g_pInputManager->m_dragMode == MBIND_RESIZE; TRACY_GPU_ZONE("RenderSurface"); - auto PSURFACE = CWLSurface::fromResource(data.surface); + auto PSURFACE = CWLSurface::fromResource(m_data.surface); - const float ALPHA = data.alpha * data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier : 1.F); + const float ALPHA = m_data.alpha * m_data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier : 1.F); const float OVERALL_ALPHA = PSURFACE ? PSURFACE->m_overallOpacity : 1.F; - const bool BLUR = data.blur && (!TEXTURE->m_bOpaque || ALPHA < 1.F || OVERALL_ALPHA < 1.F); + const bool BLUR = m_data.blur && (!TEXTURE->m_opaque || ALPHA < 1.F || OVERALL_ALPHA < 1.F); auto windowBox = getTexBox(); const auto PROJSIZEUNSCALED = windowBox.size(); - windowBox.scale(data.pMonitor->m_scale); + windowBox.scale(m_data.pMonitor->m_scale); windowBox.round(); if (windowBox.width <= 1 || windowBox.height <= 1) { @@ -72,17 +72,17 @@ void CSurfacePassElement::draw(const CRegion& damage) { return; } - const bool MISALIGNEDFSV1 = std::floor(data.pMonitor->m_scale) != data.pMonitor->m_scale /* Fractional */ && data.surface->m_current.scale == 1 /* fs protocol */ && - windowBox.size() != data.surface->m_current.bufferSize /* misaligned */ && DELTALESSTHAN(windowBox.width, data.surface->m_current.bufferSize.x, 3) && - DELTALESSTHAN(windowBox.height, data.surface->m_current.bufferSize.y, 3) /* off by one-or-two */ && - (!data.pWindow || (!data.pWindow->m_realSize->isBeingAnimated() && !INTERACTIVERESIZEINPROGRESS)) /* not window or not animated/resizing */; + const bool MISALIGNEDFSV1 = std::floor(m_data.pMonitor->m_scale) != m_data.pMonitor->m_scale /* Fractional */ && m_data.surface->m_current.scale == 1 /* fs protocol */ && + windowBox.size() != m_data.surface->m_current.bufferSize /* misaligned */ && DELTALESSTHAN(windowBox.width, m_data.surface->m_current.bufferSize.x, 3) && + DELTALESSTHAN(windowBox.height, m_data.surface->m_current.bufferSize.y, 3) /* off by one-or-two */ && + (!m_data.pWindow || (!m_data.pWindow->m_realSize->isBeingAnimated() && !INTERACTIVERESIZEINPROGRESS)) /* not window or not animated/resizing */; - if (data.surface->m_colorManagement.valid()) + if (m_data.surface->m_colorManagement.valid()) Debug::log(TRACE, "FIXME: rendering surface with color management enabled, should apply necessary transformations"); - g_pHyprRenderer->calculateUVForSurface(data.pWindow, data.surface, data.pMonitor->m_self.lock(), data.mainSurface, windowBox.size(), PROJSIZEUNSCALED, MISALIGNEDFSV1); + g_pHyprRenderer->calculateUVForSurface(m_data.pWindow, m_data.surface, m_data.pMonitor->m_self.lock(), m_data.mainSurface, windowBox.size(), PROJSIZEUNSCALED, MISALIGNEDFSV1); auto cancelRender = false; - g_pHyprOpenGL->m_RenderData.clipRegion = visibleRegion(cancelRender); + g_pHyprOpenGL->m_renderData.clipRegion = visibleRegion(cancelRender); if (cancelRender) return; @@ -91,19 +91,19 @@ void CSurfacePassElement::draw(const CRegion& damage) { // as long as the window is not animated. During those it'd look weird. // UV will fixup it as well if (MISALIGNEDFSV1) - g_pHyprOpenGL->m_RenderData.useNearestNeighbor = true; + g_pHyprOpenGL->m_renderData.useNearestNeighbor = true; - float rounding = data.rounding; - float roundingPower = data.roundingPower; + float rounding = m_data.rounding; + float roundingPower = m_data.roundingPower; rounding -= 1; // to fix a border issue - if (data.dontRound) { + if (m_data.dontRound) { rounding = 0; roundingPower = 2.0f; } - const bool WINDOWOPAQUE = data.pWindow && data.pWindow->m_wlSurface->resource() == data.surface ? data.pWindow->opaque() : false; + const bool WINDOWOPAQUE = m_data.pWindow && m_data.pWindow->m_wlSurface->resource() == m_data.surface ? m_data.pWindow->opaque() : false; const bool CANDISABLEBLEND = ALPHA >= 1.f && OVERALL_ALPHA >= 1.f && rounding == 0 && WINDOWOPAQUE; if (CANDISABLEBLEND) @@ -114,38 +114,38 @@ void CSurfacePassElement::draw(const CRegion& damage) { // FIXME: This is wrong and will bug the blur out as shit if the first surface // is a subsurface that does NOT cover the entire frame. In such cases, we probably should fall back // to what we do for misaligned surfaces (blur the entire thing and then render shit without blur) - if (data.surfaceCounter == 0 && !data.popup) { + if (m_data.surfaceCounter == 0 && !m_data.popup) { if (BLUR) - g_pHyprOpenGL->renderTextureWithBlur(TEXTURE, windowBox, ALPHA, data.surface, rounding, roundingPower, data.blockBlurOptimization, data.fadeAlpha, OVERALL_ALPHA); + g_pHyprOpenGL->renderTextureWithBlur(TEXTURE, windowBox, ALPHA, m_data.surface, rounding, roundingPower, m_data.blockBlurOptimization, m_data.fadeAlpha, OVERALL_ALPHA); else g_pHyprOpenGL->renderTexture(TEXTURE, windowBox, ALPHA * OVERALL_ALPHA, rounding, roundingPower, false, true); } else { - if (BLUR && data.popup) - g_pHyprOpenGL->renderTextureWithBlur(TEXTURE, windowBox, ALPHA, data.surface, rounding, roundingPower, true, data.fadeAlpha, OVERALL_ALPHA); + if (BLUR && m_data.popup) + g_pHyprOpenGL->renderTextureWithBlur(TEXTURE, windowBox, ALPHA, m_data.surface, rounding, roundingPower, true, m_data.fadeAlpha, OVERALL_ALPHA); else g_pHyprOpenGL->renderTexture(TEXTURE, windowBox, ALPHA * OVERALL_ALPHA, rounding, roundingPower, false, true); } if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) - data.surface->presentFeedback(data.when, data.pMonitor->m_self.lock()); + m_data.surface->presentFeedback(m_data.when, m_data.pMonitor->m_self.lock()); // add async (dmabuf) buffers to usedBuffers so we can handle release later // sync (shm) buffers will be released in commitState, so no need to track them here - if (data.surface->m_current.buffer && !data.surface->m_current.buffer->isSynchronous()) - g_pHyprRenderer->usedAsyncBuffers.emplace_back(data.surface->m_current.buffer); + if (m_data.surface->m_current.buffer && !m_data.surface->m_current.buffer->isSynchronous()) + g_pHyprRenderer->m_usedAsyncBuffers.emplace_back(m_data.surface->m_current.buffer); g_pHyprOpenGL->blend(true); } CBox CSurfacePassElement::getTexBox() { - const double outputX = -data.pMonitor->m_position.x, outputY = -data.pMonitor->m_position.y; + const double outputX = -m_data.pMonitor->m_position.x, outputY = -m_data.pMonitor->m_position.y; - const auto INTERACTIVERESIZEINPROGRESS = data.pWindow && g_pInputManager->m_currentlyDraggedWindow && g_pInputManager->m_dragMode == MBIND_RESIZE; - auto PSURFACE = CWLSurface::fromResource(data.surface); + const auto INTERACTIVERESIZEINPROGRESS = m_data.pWindow && g_pInputManager->m_currentlyDraggedWindow && g_pInputManager->m_dragMode == MBIND_RESIZE; + auto PSURFACE = CWLSurface::fromResource(m_data.surface); CBox windowBox; - if (data.surface && data.mainSurface) { - windowBox = {(int)outputX + data.pos.x + data.localPos.x, (int)outputY + data.pos.y + data.localPos.y, data.w, data.h}; + if (m_data.surface && m_data.mainSurface) { + windowBox = {(int)outputX + m_data.pos.x + m_data.localPos.x, (int)outputY + m_data.pos.y + m_data.localPos.y, m_data.w, m_data.h}; // however, if surface buffer w / h < box, we need to adjust them const auto PWINDOW = PSURFACE ? PSURFACE->getWindow() : nullptr; @@ -167,49 +167,49 @@ CBox CSurfacePassElement::getTexBox() { } } else { // here we clamp to 2, these might be some tiny specks - windowBox = {(int)outputX + data.pos.x + data.localPos.x, (int)outputY + data.pos.y + data.localPos.y, std::max((float)data.surface->m_current.size.x, 2.F), - std::max((float)data.surface->m_current.size.y, 2.F)}; - if (data.pWindow && data.pWindow->m_realSize->isBeingAnimated() && data.surface && !data.mainSurface && data.squishOversized /* subsurface */) { + windowBox = {(int)outputX + m_data.pos.x + m_data.localPos.x, (int)outputY + m_data.pos.y + m_data.localPos.y, std::max((float)m_data.surface->m_current.size.x, 2.F), + std::max((float)m_data.surface->m_current.size.y, 2.F)}; + if (m_data.pWindow && m_data.pWindow->m_realSize->isBeingAnimated() && m_data.surface && !m_data.mainSurface && m_data.squishOversized /* subsurface */) { // adjust subsurfaces to the window - windowBox.width = (windowBox.width / data.pWindow->m_reportedSize.x) * data.pWindow->m_realSize->value().x; - windowBox.height = (windowBox.height / data.pWindow->m_reportedSize.y) * data.pWindow->m_realSize->value().y; + windowBox.width = (windowBox.width / m_data.pWindow->m_reportedSize.x) * m_data.pWindow->m_realSize->value().x; + windowBox.height = (windowBox.height / m_data.pWindow->m_reportedSize.y) * m_data.pWindow->m_realSize->value().y; } } - if (data.squishOversized) { - if (data.localPos.x + windowBox.width > data.w) - windowBox.width = data.w - data.localPos.x; - if (data.localPos.y + windowBox.height > data.h) - windowBox.height = data.h - data.localPos.y; + if (m_data.squishOversized) { + if (m_data.localPos.x + windowBox.width > m_data.w) + windowBox.width = m_data.w - m_data.localPos.x; + if (m_data.localPos.y + windowBox.height > m_data.h) + windowBox.height = m_data.h - m_data.localPos.y; } return windowBox; } bool CSurfacePassElement::needsLiveBlur() { - auto PSURFACE = CWLSurface::fromResource(data.surface); + auto PSURFACE = CWLSurface::fromResource(m_data.surface); - const float ALPHA = data.alpha * data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); - const bool BLUR = data.blur && (!data.texture || !data.texture->m_bOpaque || ALPHA < 1.F); + const float ALPHA = m_data.alpha * m_data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); + const bool BLUR = m_data.blur && (!m_data.texture || !m_data.texture->m_opaque || ALPHA < 1.F); - if (!data.pLS && !data.pWindow) + if (!m_data.pLS && !m_data.pWindow) return BLUR; - const bool NEWOPTIM = g_pHyprOpenGL->shouldUseNewBlurOptimizations(data.pLS, data.pWindow); + const bool NEWOPTIM = g_pHyprOpenGL->shouldUseNewBlurOptimizations(m_data.pLS, m_data.pWindow); return BLUR && !NEWOPTIM; } bool CSurfacePassElement::needsPrecomputeBlur() { - auto PSURFACE = CWLSurface::fromResource(data.surface); + auto PSURFACE = CWLSurface::fromResource(m_data.surface); - const float ALPHA = data.alpha * data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); - const bool BLUR = data.blur && (!data.texture || !data.texture->m_bOpaque || ALPHA < 1.F); + const float ALPHA = m_data.alpha * m_data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); + const bool BLUR = m_data.blur && (!m_data.texture || !m_data.texture->m_opaque || ALPHA < 1.F); - if (!data.pLS && !data.pWindow) + if (!m_data.pLS && !m_data.pWindow) return BLUR; - const bool NEWOPTIM = g_pHyprOpenGL->shouldUseNewBlurOptimizations(data.pLS, data.pWindow); + const bool NEWOPTIM = g_pHyprOpenGL->shouldUseNewBlurOptimizations(m_data.pLS, m_data.pWindow); return BLUR && NEWOPTIM; } @@ -219,29 +219,29 @@ std::optional CSurfacePassElement::boundingBox() { } CRegion CSurfacePassElement::opaqueRegion() { - auto PSURFACE = CWLSurface::fromResource(data.surface); + auto PSURFACE = CWLSurface::fromResource(m_data.surface); - const float ALPHA = data.alpha * data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); + const float ALPHA = m_data.alpha * m_data.fadeAlpha * (PSURFACE ? PSURFACE->m_alphaModifier * PSURFACE->m_overallOpacity : 1.F); if (ALPHA < 1.F) return {}; - if (data.surface && data.surface->m_current.size == Vector2D{data.w, data.h}) { - CRegion opaqueSurf = data.surface->m_current.opaque.copy().intersect(CBox{{}, {data.w, data.h}}); + if (m_data.surface && m_data.surface->m_current.size == Vector2D{m_data.w, m_data.h}) { + CRegion opaqueSurf = m_data.surface->m_current.opaque.copy().intersect(CBox{{}, {m_data.w, m_data.h}}); const auto texBox = getTexBox(); - opaqueSurf.scale(texBox.size() / Vector2D{data.w, data.h}); - return opaqueSurf.translate(data.pos + data.localPos - data.pMonitor->m_position).expand(-data.rounding); + opaqueSurf.scale(texBox.size() / Vector2D{m_data.w, m_data.h}); + return opaqueSurf.translate(m_data.pos + m_data.localPos - m_data.pMonitor->m_position).expand(-m_data.rounding); } - return data.texture && data.texture->m_bOpaque ? boundingBox()->expand(-data.rounding) : CRegion{}; + return m_data.texture && m_data.texture->m_opaque ? boundingBox()->expand(-m_data.rounding) : CRegion{}; } CRegion CSurfacePassElement::visibleRegion(bool& cancel) { - auto PSURFACE = CWLSurface::fromResource(data.surface); + auto PSURFACE = CWLSurface::fromResource(m_data.surface); if (!PSURFACE) return {}; - const auto& bufferSize = data.surface->m_current.bufferSize; + const auto& bufferSize = m_data.surface->m_current.bufferSize; auto visibleRegion = PSURFACE->m_visibleRegion.copy(); if (visibleRegion.empty()) @@ -257,8 +257,8 @@ CRegion CSurfacePassElement::visibleRegion(bool& cancel) { // deal with any rounding errors that might come from scaling visibleRegion.expand(1); - auto uvTL = g_pHyprOpenGL->m_RenderData.primarySurfaceUVTopLeft; - auto uvBR = g_pHyprOpenGL->m_RenderData.primarySurfaceUVBottomRight; + auto uvTL = g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft; + auto uvBR = g_pHyprOpenGL->m_renderData.primarySurfaceUVBottomRight; if (uvTL == Vector2D(-1, -1)) uvTL = Vector2D(0, 0); @@ -269,11 +269,11 @@ CRegion CSurfacePassElement::visibleRegion(bool& cancel) { visibleRegion.translate(-uvTL * bufferSize); auto texBox = getTexBox(); - texBox.scale(data.pMonitor->m_scale); + texBox.scale(m_data.pMonitor->m_scale); texBox.round(); visibleRegion.scale((Vector2D(1, 1) / (uvBR - uvTL)) * (texBox.size() / bufferSize)); - visibleRegion.translate((data.pos + data.localPos) * data.pMonitor->m_scale - data.pMonitor->m_position); + visibleRegion.translate((m_data.pos + m_data.localPos) * m_data.pMonitor->m_scale - m_data.pMonitor->m_position); return visibleRegion; } @@ -281,6 +281,6 @@ CRegion CSurfacePassElement::visibleRegion(bool& cancel) { void CSurfacePassElement::discard() { if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) { Debug::log(TRACE, "discard for invisible surface"); - data.surface->presentFeedback(data.when, data.pMonitor->m_self.lock(), true); + m_data.surface->presentFeedback(m_data.when, m_data.pMonitor->m_self.lock(), true); } } diff --git a/src/render/pass/SurfacePassElement.hpp b/src/render/pass/SurfacePassElement.hpp index 4d51f804..f4dbb45a 100644 --- a/src/render/pass/SurfacePassElement.hpp +++ b/src/render/pass/SurfacePassElement.hpp @@ -65,7 +65,7 @@ class CSurfacePassElement : public IPassElement { } private: - SRenderData data; + SRenderData m_data; CBox getTexBox(); }; diff --git a/src/render/pass/TexPassElement.cpp b/src/render/pass/TexPassElement.cpp index 3ccad6cb..b27f1032 100644 --- a/src/render/pass/TexPassElement.cpp +++ b/src/render/pass/TexPassElement.cpp @@ -4,27 +4,27 @@ #include using namespace Hyprutils::Utils; -CTexPassElement::CTexPassElement(const CTexPassElement::SRenderData& data_) : data(data_) { +CTexPassElement::CTexPassElement(const CTexPassElement::SRenderData& data_) : m_data(data_) { ; } void CTexPassElement::draw(const CRegion& damage) { - g_pHyprOpenGL->m_bEndFrame = data.flipEndFrame; + g_pHyprOpenGL->m_endFrame = m_data.flipEndFrame; CScopeGuard x = {[]() { // - g_pHyprOpenGL->m_bEndFrame = false; - g_pHyprOpenGL->m_RenderData.clipBox = {}; + g_pHyprOpenGL->m_endFrame = false; + g_pHyprOpenGL->m_renderData.clipBox = {}; }}; - if (!data.clipBox.empty()) - g_pHyprOpenGL->m_RenderData.clipBox = data.clipBox; + if (!m_data.clipBox.empty()) + g_pHyprOpenGL->m_renderData.clipBox = m_data.clipBox; - if (data.replaceProjection) - g_pHyprOpenGL->m_RenderData.monitorProjection = *data.replaceProjection; - g_pHyprOpenGL->renderTextureInternalWithDamage(data.tex, data.box, data.a, data.damage.empty() ? damage : data.damage, data.round, data.roundingPower); - if (data.replaceProjection) - g_pHyprOpenGL->m_RenderData.monitorProjection = g_pHyprOpenGL->m_RenderData.pMonitor->m_projMatrix; + if (m_data.replaceProjection) + g_pHyprOpenGL->m_renderData.monitorProjection = *m_data.replaceProjection; + g_pHyprOpenGL->renderTextureInternalWithDamage(m_data.tex, m_data.box, m_data.a, m_data.damage.empty() ? damage : m_data.damage, m_data.round, m_data.roundingPower); + if (m_data.replaceProjection) + g_pHyprOpenGL->m_renderData.monitorProjection = g_pHyprOpenGL->m_renderData.pMonitor->m_projMatrix; } bool CTexPassElement::needsLiveBlur() { @@ -36,7 +36,7 @@ bool CTexPassElement::needsPrecomputeBlur() { } std::optional CTexPassElement::boundingBox() { - return data.box.copy().scale(1.F / g_pHyprOpenGL->m_RenderData.pMonitor->m_scale).round(); + return m_data.box.copy().scale(1.F / g_pHyprOpenGL->m_renderData.pMonitor->m_scale).round(); } CRegion CTexPassElement::opaqueRegion() { diff --git a/src/render/pass/TexPassElement.hpp b/src/render/pass/TexPassElement.hpp index 5f0f490f..e98edd60 100644 --- a/src/render/pass/TexPassElement.hpp +++ b/src/render/pass/TexPassElement.hpp @@ -35,5 +35,5 @@ class CTexPassElement : public IPassElement { } private: - SRenderData data; + SRenderData m_data; }; diff --git a/src/render/pass/TextureMatteElement.cpp b/src/render/pass/TextureMatteElement.cpp index 3d927357..2b5d4fab 100644 --- a/src/render/pass/TextureMatteElement.cpp +++ b/src/render/pass/TextureMatteElement.cpp @@ -1,19 +1,19 @@ #include "TextureMatteElement.hpp" #include "../OpenGL.hpp" -CTextureMatteElement::CTextureMatteElement(const CTextureMatteElement::STextureMatteData& data_) : data(data_) { +CTextureMatteElement::CTextureMatteElement(const CTextureMatteElement::STextureMatteData& data_) : m_data(data_) { ; } void CTextureMatteElement::draw(const CRegion& damage) { - if (data.disableTransformAndModify) { + if (m_data.disableTransformAndModify) { g_pHyprOpenGL->setMonitorTransformEnabled(true); g_pHyprOpenGL->setRenderModifEnabled(false); - g_pHyprOpenGL->renderTextureMatte(data.tex, data.box, *data.fb); + g_pHyprOpenGL->renderTextureMatte(m_data.tex, m_data.box, *m_data.fb); g_pHyprOpenGL->setRenderModifEnabled(true); g_pHyprOpenGL->setMonitorTransformEnabled(false); } else - g_pHyprOpenGL->renderTextureMatte(data.tex, data.box, *data.fb); + g_pHyprOpenGL->renderTextureMatte(m_data.tex, m_data.box, *m_data.fb); } bool CTextureMatteElement::needsLiveBlur() { diff --git a/src/render/pass/TextureMatteElement.hpp b/src/render/pass/TextureMatteElement.hpp index bf673946..57d0e1e3 100644 --- a/src/render/pass/TextureMatteElement.hpp +++ b/src/render/pass/TextureMatteElement.hpp @@ -25,5 +25,5 @@ class CTextureMatteElement : public IPassElement { } private: - STextureMatteData data; + STextureMatteData m_data; }; \ No newline at end of file