diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-11-04 19:32:50 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-11-04 19:32:50 +0000 |
| commit | 64a084477ea8df67cbb35b22826a1f6a0845e123 (patch) | |
| tree | df8e620d6a3936e4d196c51e4129cb61107c5642 /src/render/OpenGL.hpp | |
| parent | 7a09d24065050ad5b9490a6be947229ae83cb824 (diff) | |
shadows: fix on transformed
Diffstat (limited to 'src/render/OpenGL.hpp')
| -rw-r--r-- | src/render/OpenGL.hpp | 6 |
1 files changed, 5 insertions, 1 deletions
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<CHyprOpenGLImpl> g_pHyprOpenGL; |
