From 32e75e3e320fb66ab517a378df645f3d29b3a209 Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:27:47 +0300 Subject: renderer: refactor render elements (#13438) Part 2 of renderer refactors --- src/render/Renderer.hpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/render/Renderer.hpp') diff --git a/src/render/Renderer.hpp b/src/render/Renderer.hpp index bd14c219..b854715d 100644 --- a/src/render/Renderer.hpp +++ b/src/render/Renderer.hpp @@ -7,20 +7,32 @@ #include #include "../helpers/Monitor.hpp" #include "../desktop/view/LayerSurface.hpp" -#include "OpenGL.hpp" +#include "./pass/Pass.hpp" #include "Renderbuffer.hpp" #include "../helpers/time/Timer.hpp" #include "../helpers/math/Math.hpp" #include "../helpers/time/Time.hpp" #include "../../protocols/cursor-shape-v1.hpp" +#include "desktop/view/Popup.hpp" #include "render/Framebuffer.hpp" #include "render/Texture.hpp" +#include "render/pass/BorderPassElement.hpp" +#include "render/pass/ClearPassElement.hpp" +#include "render/pass/FramebufferElement.hpp" +#include "render/pass/PreBlurElement.hpp" +#include "render/pass/RectPassElement.hpp" +#include "render/pass/RendererHintsPassElement.hpp" +#include "render/pass/ShadowPassElement.hpp" +#include "render/pass/SurfacePassElement.hpp" +#include "render/pass/TexPassElement.hpp" +#include "render/pass/TextureMatteElement.hpp" struct SMonitorRule; class CWorkspace; class CInputPopup; class IHLBuffer; class CEventLoopTimer; +class CRenderPass; const std::vector ASSET_PATHS = { #ifdef DATAROOTDIR @@ -174,6 +186,18 @@ class CHyprRenderer { SP surface = nullptr, bool modifySDR = false, float sdrMinLuminance = -1.0f, int sdrMaxLuminance = -1); bool reloadShaders(const std::string& path = ""); + void draw(CBorderPassElement* element, const CRegion& damage); + void draw(CClearPassElement* element, const CRegion& damage); + void draw(CFramebufferElement* element, const CRegion& damage); + void draw(CPreBlurElement* element, const CRegion& damage); + void draw(CRectPassElement* element, const CRegion& damage); + void draw(CRendererHintsPassElement* element, const CRegion& damage); + void draw(CShadowPassElement* element, const CRegion& damage); + void draw(CSurfacePassElement* element, const CRegion& damage); + void draw(CTexPassElement* element, const CRegion& damage); + void draw(CTextureMatteElement* element, const CRegion& damage); + void draw(WP element, const CRegion& damage); + private: void arrangeLayerArray(PHLMONITOR, const std::vector&, bool, CBox*); void renderWorkspace(PHLMONITOR pMonitor, PHLWORKSPACE pWorkspace, const Time::steady_tp& now, const CBox& geometry); @@ -219,6 +243,7 @@ class CHyprRenderer { std::vector m_renderUnfocused; SP m_renderUnfocusedTimer; + friend class CRenderPass; friend class CHyprOpenGLImpl; friend class CToplevelExportFrame; friend class Screenshare::CScreenshareFrame; -- cgit v1.2.3