diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-17 18:47:10 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-17 18:47:10 +0200 |
| commit | b0f5e4ab5656fb3b72efa7ce646d4b47ae82b814 (patch) | |
| tree | 0eef3cf73193a8e64e9d2f547f03066939a38377 /src/render/OpenGL.cpp | |
| parent | 748a787ba2935f62b1a6f986a3fd6c758a8ba626 (diff) | |
store scale and scale windows with monitor
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 5c3e672e..02909e36 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -1,5 +1,6 @@ #include "OpenGL.hpp" #include "../Compositor.hpp" +#include "../helpers/MiscFunctions.hpp" CHyprOpenGLImpl::CHyprOpenGLImpl() { RASSERT(eglMakeCurrent(g_pCompositor->m_sWLREGL->display, EGL_NO_SURFACE, EGL_NO_SURFACE, g_pCompositor->m_sWLREGL->context), "Couldn't make the EGL current!"); @@ -140,8 +141,8 @@ void CHyprOpenGLImpl::begin(SMonitor* pMonitor, pixman_region32_t* pDamage) { m_mMonitorRenderResources[pMonitor].primaryFB.m_pStencilTex = &m_mMonitorRenderResources[pMonitor].stencilTex; m_mMonitorRenderResources[pMonitor].mirrorFB.m_pStencilTex = &m_mMonitorRenderResources[pMonitor].stencilTex; - m_mMonitorRenderResources[pMonitor].primaryFB.alloc(pMonitor->vecSize.x, pMonitor->vecSize.y); - m_mMonitorRenderResources[pMonitor].mirrorFB.alloc(pMonitor->vecSize.x, pMonitor->vecSize.y); + m_mMonitorRenderResources[pMonitor].primaryFB.alloc(pMonitor->vecSize.x * pMonitor->scale, pMonitor->vecSize.y * pMonitor->scale); + m_mMonitorRenderResources[pMonitor].mirrorFB.alloc(pMonitor->vecSize.x * pMonitor->scale, pMonitor->vecSize.y * pMonitor->scale); createBGTextureForMonitor(pMonitor); } @@ -162,6 +163,7 @@ void CHyprOpenGLImpl::end() { clear(CColor(11, 11, 11, 255)); + scaleBox(&windowBox, m_RenderData.pMonitor->scale); renderTexture(m_mMonitorRenderResources[m_RenderData.pMonitor].primaryFB.m_cTex, &windowBox, 255.f, 0); // reset our data @@ -470,6 +472,8 @@ void CHyprOpenGLImpl::renderBorder(wlr_box* box, const CColor& col, int thick, i RASSERT((box->width > 0 && box->height > 0), "Tried to render rect with width/height < 0!"); RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!"); + scaleBox(box, m_RenderData.pMonitor->scale); + float matrix[9]; wlr_matrix_project_box(matrix, box, WL_OUTPUT_TRANSFORM_NORMAL, 0, m_RenderData.pMonitor->output->transform_matrix); // TODO: write own, don't use WLR here |
