renderer: cleanup old redundancies in CFramebuffer

This commit is contained in:
vaxerski 2023-07-29 13:27:40 +02:00
parent 77818e3457
commit f61a714320
3 changed files with 13 additions and 17 deletions

View file

@ -20,7 +20,7 @@ bool CFramebuffer::alloc(int w, int h) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
} }
if (firstAlloc || m_Size != Vector2D(w, h)) { if (firstAlloc || m_vSize != Vector2D(w, h)) {
glBindTexture(GL_TEXTURE_2D, m_cTex.m_iTexID); glBindTexture(GL_TEXTURE_2D, m_cTex.m_iTexID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
@ -48,7 +48,7 @@ bool CFramebuffer::alloc(int w, int h) {
glBindTexture(GL_TEXTURE_2D, 0); glBindTexture(GL_TEXTURE_2D, 0);
glBindFramebuffer(GL_FRAMEBUFFER, g_pHyprOpenGL->m_iCurrentOutputFb); glBindFramebuffer(GL_FRAMEBUFFER, g_pHyprOpenGL->m_iCurrentOutputFb);
m_Size = Vector2D(w, h); m_vSize = Vector2D(w, h);
return true; return true;
} }
@ -73,7 +73,7 @@ void CFramebuffer::release() {
m_cTex.m_iTexID = 0; m_cTex.m_iTexID = 0;
m_iFb = -1; m_iFb = -1;
m_Size = Vector2D(); m_vSize = Vector2D();
} }
CFramebuffer::~CFramebuffer() { CFramebuffer::~CFramebuffer() {

View file

@ -7,20 +7,16 @@ class CFramebuffer {
public: public:
~CFramebuffer(); ~CFramebuffer();
bool alloc(int w, int h); bool alloc(int w, int h);
void bind(); void bind();
void release(); void release();
void reset(); void reset();
bool isAllocated(); bool isAllocated();
Vector2D m_Position; Vector2D m_vSize;
Vector2D m_Size;
float m_fScale = 1;
CTexture m_cTex; CTexture m_cTex;
GLuint m_iFb = -1; GLuint m_iFb = -1;
CTexture* m_pStencilTex = nullptr; CTexture* m_pStencilTex = nullptr;
wl_output_transform m_tTransform; // for saving state
}; };

View file

@ -124,7 +124,7 @@ void CHyprOpenGLImpl::begin(CMonitor* pMonitor, CRegion* pDamage, bool fake) {
m_iWLROutputFb = m_iCurrentOutputFb; m_iWLROutputFb = m_iCurrentOutputFb;
// ensure a framebuffer for the monitor exists // ensure a framebuffer for the monitor exists
if (m_mMonitorRenderResources.find(pMonitor) == m_mMonitorRenderResources.end() || m_RenderData.pCurrentMonData->primaryFB.m_Size != pMonitor->vecPixelSize) { if (m_mMonitorRenderResources.find(pMonitor) == m_mMonitorRenderResources.end() || m_RenderData.pCurrentMonData->primaryFB.m_vSize != pMonitor->vecPixelSize) {
m_RenderData.pCurrentMonData->stencilTex.allocate(); m_RenderData.pCurrentMonData->stencilTex.allocate();
m_RenderData.pCurrentMonData->primaryFB.m_pStencilTex = &m_RenderData.pCurrentMonData->stencilTex; m_RenderData.pCurrentMonData->primaryFB.m_pStencilTex = &m_RenderData.pCurrentMonData->stencilTex;