From 22b12e3013adf66b462b174688f82bd53ba8e721 Mon Sep 17 00:00:00 2001 From: davc0n Date: Thu, 8 May 2025 00:07:35 +0200 Subject: [PATCH] refactor: cshader class to sshader struct (#10324) --- src/render/OpenGL.cpp | 16 ++++++++-------- src/render/OpenGL.hpp | 34 +++++++++++++++++----------------- src/render/Shader.cpp | 4 ++-- src/render/Shader.hpp | 5 ++--- 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 6a568ed87..f073165de 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -906,7 +906,7 @@ static std::string processShader(const std::string& filename, const std::map tex, const CBox& box, static std::map, std::array> primariesConversionCache; -void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const NColorManagement::SImageDescription& imageDescription, +void CHyprOpenGLImpl::passCMUniforms(const SShader& shader, const NColorManagement::SImageDescription& imageDescription, const NColorManagement::SImageDescription& targetImageDescription, bool modifySDR) { glUniform1i(shader.sourceTF, imageDescription.transferFunction); glUniform1i(shader.targetTF, targetImageDescription.transferFunction); @@ -1487,7 +1487,7 @@ void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const NColorManageme glUniformMatrix3fv(shader.convertMatrix, 1, false, &primariesConversionCache[cacheKey][0]); } -void CHyprOpenGLImpl::passCMUniforms(const CShader& shader, const SImageDescription& imageDescription) { +void CHyprOpenGLImpl::passCMUniforms(const SShader& shader, const SImageDescription& imageDescription) { passCMUniforms(shader, imageDescription, m_renderData.pMonitor->m_imageDescription, true); } @@ -1519,7 +1519,7 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP tex, const CB Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); - CShader* shader = nullptr; + SShader* shader = nullptr; bool usingFinalShader = false; @@ -1716,7 +1716,7 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP tex, const CBox& box) Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); - CShader* shader = &m_shaders->m_shPASSTHRURGBA; + SShader* shader = &m_shaders->m_shPASSTHRURGBA; glActiveTexture(GL_TEXTURE0); glBindTexture(tex->m_target, tex->m_texID); @@ -1767,7 +1767,7 @@ void CHyprOpenGLImpl::renderTextureMatte(SP tex, const CBox& box, CFra Mat3x3 matrix = m_renderData.monitorProjection.projectBox(newBox, TRANSFORM, newBox.rot); Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); - CShader* shader = &m_shaders->m_shMATTE; + SShader* shader = &m_shaders->m_shMATTE; glUseProgram(shader->program); @@ -1912,7 +1912,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o } // declare the draw func - auto drawPass = [&](CShader* pShader, CRegion* pDamage) { + auto drawPass = [&](SShader* pShader, CRegion* pDamage) { if (currentRenderToFB == PMIRRORFB) PMIRRORSWAPFB->bind(); else diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index f4e9bdc4c..3c7a31697 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -83,20 +83,20 @@ struct SPreparedShaders { std::string TEXVERTSRC; std::string TEXVERTSRC300; std::string TEXVERTSRC320; - CShader m_shQUAD; - CShader m_shRGBA; - CShader m_shPASSTHRURGBA; - CShader m_shMATTE; - CShader m_shRGBX; - CShader m_shEXT; - CShader m_shBLUR1; - CShader m_shBLUR2; - CShader m_shBLURPREPARE; - CShader m_shBLURFINISH; - CShader m_shSHADOW; - CShader m_shBORDER1; - CShader m_shGLITCH; - CShader m_shCM; + SShader m_shQUAD; + SShader m_shRGBA; + SShader m_shPASSTHRURGBA; + SShader m_shMATTE; + SShader m_shRGBX; + SShader m_shEXT; + SShader m_shBLUR1; + SShader m_shBLUR2; + SShader m_shBLURPREPARE; + SShader m_shBLURFINISH; + SShader m_shSHADOW; + SShader m_shBORDER1; + SShader m_shGLITCH; + SShader m_shCM; }; struct SMonitorRenderData { @@ -309,7 +309,7 @@ class CHyprOpenGLImpl { bool m_offloadedFramebuffer = false; bool m_cmSupported = true; - CShader m_finalScreenShader; + SShader m_finalScreenShader; CTimer m_globalTimer; SP m_missingAssetTexture; @@ -334,9 +334,9 @@ class CHyprOpenGLImpl { // returns the out FB, can be either Mirror or MirrorSwap CFramebuffer* blurMainFramebufferWithDamage(float a, CRegion* damage); - void passCMUniforms(const CShader&, const NColorManagement::SImageDescription& imageDescription, const NColorManagement::SImageDescription& targetImageDescription, + void passCMUniforms(const SShader&, const NColorManagement::SImageDescription& imageDescription, const NColorManagement::SImageDescription& targetImageDescription, bool modifySDR = false); - void passCMUniforms(const CShader&, const NColorManagement::SImageDescription& imageDescription); + void passCMUniforms(const SShader&, const NColorManagement::SImageDescription& imageDescription); void renderTextureInternalWithDamage(SP, const CBox& box, float a, const CRegion& damage, int round = 0, float roundingPower = 2.0f, bool discardOpaque = false, bool noAA = false, bool allowCustomUV = false, bool allowDim = false); void renderTexturePrimitive(SP tex, const CBox& box); diff --git a/src/render/Shader.cpp b/src/render/Shader.cpp index 97bcf7613..7b22c83af 100644 --- a/src/render/Shader.cpp +++ b/src/render/Shader.cpp @@ -1,10 +1,10 @@ #include "Shader.hpp" -CShader::~CShader() { +SShader::~SShader() { destroy(); } -void CShader::destroy() { +void SShader::destroy() { if (program == 0) return; diff --git a/src/render/Shader.hpp b/src/render/Shader.hpp index 0ccc8c450..d23d2d5a3 100644 --- a/src/render/Shader.hpp +++ b/src/render/Shader.hpp @@ -3,9 +3,8 @@ #include "../defines.hpp" #include -class CShader { - public: - ~CShader(); +struct SShader { + ~SShader(); GLuint program = 0; GLint proj = -1;