From b178891ab352d3306833fc0f48e5ea395e946300 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Thu, 11 Aug 2022 20:29:21 +0200 Subject: compile shaders for every context separately --- src/render/OpenGL.hpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src/render/OpenGL.hpp') diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index 5e8d32e6..6575cf82 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -42,6 +42,18 @@ struct SMonitorRenderData { bool blurFBDirty = true; wlr_box backgroundTexBox; + + // Shaders + bool m_bShadersInitialized = false; + CShader m_shQUAD; + CShader m_shRGBA; + CShader m_shRGBX; + CShader m_shEXT; + CShader m_shBLUR1; + CShader m_shBLUR2; + CShader m_shSHADOW; + CShader m_shBORDER1; + // }; struct SCurrentRenderData { @@ -114,20 +126,10 @@ private: bool m_bFakeFrame = false; bool m_bEndFrame = false; - // Shaders - CShader m_shQUAD; - CShader m_shRGBA; - CShader m_shRGBX; - CShader m_shEXT; - CShader m_shBLUR1; - CShader m_shBLUR2; - CShader m_shSHADOW; - CShader m_shBORDER1; - // - GLuint createProgram(const std::string&, const std::string&); GLuint compileShader(const GLuint&, std::string); void createBGTextureForMonitor(CMonitor*); + void initShaders(); // returns the out FB, can be either Mirror or MirrorSwap CFramebuffer* blurMainFramebufferWithDamage(float a, wlr_box* pBox, pixman_region32_t* damage); -- cgit v1.2.3