summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-11-04 19:32:50 +0000
committerVaxry <vaxry@vaxry.net>2023-11-04 19:32:50 +0000
commit64a084477ea8df67cbb35b22826a1f6a0845e123 (patch)
treedf8e620d6a3936e4d196c51e4129cb61107c5642 /src/render/OpenGL.hpp
parent7a09d24065050ad5b9490a6be947229ae83cb824 (diff)
shadows: fix on transformed
Diffstat (limited to 'src/render/OpenGL.hpp')
-rw-r--r--src/render/OpenGL.hpp6
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;