From 64a084477ea8df67cbb35b22826a1f6a0845e123 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sat, 4 Nov 2023 19:32:50 +0000 Subject: shadows: fix on transformed --- src/render/OpenGL.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/render/OpenGL.hpp') diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index 93dccbf4..fea967e5 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -59,6 +59,7 @@ struct SMonitorRenderData { CShader m_shQUAD; CShader m_shRGBA; CShader m_shPASSTHRURGBA; + CShader m_shMATTE; CShader m_shRGBX; CShader m_shEXT; CShader m_shBLUR1; @@ -96,6 +97,7 @@ struct SCurrentRenderData { }; class CGradientValueData; +class CHyprDropShadowDecoration; class CHyprOpenGLImpl { public: @@ -111,7 +113,7 @@ class CHyprOpenGLImpl { void renderTexture(wlr_texture*, CBox*, float a, int round = 0, bool allowCustomUV = false); void renderTexture(const CTexture&, CBox*, float a, int round = 0, bool discardActive = false, bool allowCustomUV = false); void renderTextureWithBlur(const CTexture&, CBox*, float a, wlr_surface* pSurface, int round = 0, bool blockBlurOptimization = false, float blurA = 1.f); - void renderRoundedShadow(CBox*, int round, int range, float a = 1.0, CFramebuffer* matte = nullptr); + void renderRoundedShadow(CBox*, int round, int range, float a = 1.0); void renderBorder(CBox*, const CGradientValueData&, int round, int borderSize, float a = 1.0, int outerRound = -1 /* use round */); void saveMatrix(); @@ -190,6 +192,7 @@ class CHyprOpenGLImpl { void renderTextureInternalWithDamage(const CTexture&, CBox* pBox, float a, CRegion* damage, int round = 0, bool discardOpaque = false, bool noAA = false, bool allowCustomUV = false, bool allowDim = false); void renderTexturePrimitive(const CTexture& tex, CBox* pBox); + void renderTextureMatte(const CTexture& tex, CBox* pBox, CFramebuffer& matte); void renderSplash(cairo_t* const, cairo_surface_t* const, double); void preBlurForCurrentMonitor(); @@ -197,6 +200,7 @@ class CHyprOpenGLImpl { bool shouldUseNewBlurOptimizations(SLayerSurface* pLayer, CWindow* pWindow); friend class CHyprRenderer; + friend class CHyprDropShadowDecoration; }; inline std::unique_ptr g_pHyprOpenGL; -- cgit v1.2.3