diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-16 12:44:45 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-16 12:44:45 +0200 |
| commit | 48e5bd96bc71f94f774eb92b00ef560b2f911c73 (patch) | |
| tree | 3d703572b5c7b68068c712f90ed10238846dd714 /src/render | |
| parent | b2650928eac06e3181ad07efe6ec55b2550f89b8 (diff) | |
Added shadow colors animations and inactive col
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/OpenGL.cpp | 4 | ||||
| -rw-r--r-- | src/render/Renderer.cpp | 7 | ||||
| -rw-r--r-- | src/render/Renderer.hpp | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index a8c669d7..07e4dfff 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -857,13 +857,13 @@ void CHyprOpenGLImpl::renderSnapshot(SLayerSurface** pLayer) { void CHyprOpenGLImpl::renderRoundedShadow(wlr_box* box, int round, int range, float a) { RASSERT(m_RenderData.pMonitor, "Tried to render shadow without begin()!"); RASSERT((box->width > 0 && box->height > 0), "Tried to render shadow with width/height < 0!"); + RASSERT(m_pCurrentWindow, "Tried to render shadow without a window!"); - static auto *const PSHADOWCOL = &g_pConfigManager->getConfigValuePtr("decoration:col.shadow")->intValue; static auto *const PSHADOWPOWER = &g_pConfigManager->getConfigValuePtr("decoration:shadow_render_power")->intValue; const auto SHADOWPOWER = std::clamp((int)*PSHADOWPOWER, 1, 4); - const auto col = CColor(*PSHADOWCOL); + const auto col = m_pCurrentWindow->m_cRealShadowColor.col(); float matrix[9]; wlr_matrix_project_box(matrix, box, wlr_output_transform_invert(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform), 0, m_RenderData.pMonitor->output->transform_matrix); // TODO: write own, don't use WLR here diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index f9f7d0e3..e3e67a65 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -693,6 +693,13 @@ void CHyprRenderer::damageBox(const int& x, const int& y, const int& w, const in damageBox(&box); } +void CHyprRenderer::damageRegion(pixman_region32_t* rg) { + PIXMAN_DAMAGE_FOREACH(rg) { + const auto RECT = RECTSARR[i]; + damageBox(RECT.x1, RECT.y1, RECT.x2 - RECT.x1, RECT.y2 - RECT.y1); + } +} + void CHyprRenderer::renderDragIcon(SMonitor* pMonitor, timespec* time) { if (!(g_pInputManager->m_sDrag.dragIcon && g_pInputManager->m_sDrag.iconMapped && g_pInputManager->m_sDrag.dragIcon->surface)) return; diff --git a/src/render/Renderer.hpp b/src/render/Renderer.hpp index c03c7117..97a0dc70 100644 --- a/src/render/Renderer.hpp +++ b/src/render/Renderer.hpp @@ -33,6 +33,7 @@ public: void damageWindow(CWindow*); void damageBox(wlr_box*); void damageBox(const int& x, const int& y, const int& w, const int& h); + void damageRegion(pixman_region32_t*); void damageMonitor(SMonitor*); bool applyMonitorRule(SMonitor*, SMonitorRule*, bool force = false); bool shouldRenderWindow(CWindow*, SMonitor*); |
