shadows: fix on transformed

This commit is contained in:
Vaxry
2023-11-04 19:32:50 +00:00
parent 7a09d24065
commit 64a084477e
4 changed files with 101 additions and 32 deletions

View File

@@ -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;