summaryrefslogtreecommitdiff
path: root/src/render/gl/GLElementRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/gl/GLElementRenderer.cpp')
-rw-r--r--src/render/gl/GLElementRenderer.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/render/gl/GLElementRenderer.cpp b/src/render/gl/GLElementRenderer.cpp
index 670c7886..dbf62cb8 100644
--- a/src/render/gl/GLElementRenderer.cpp
+++ b/src/render/gl/GLElementRenderer.cpp
@@ -24,15 +24,17 @@ void CGLElementRenderer::draw(WP<CClearPassElement> element, const CRegion& dama
RASSERT(g_pHyprRenderer->m_renderData.pMonitor, "Tried to render without begin()!");
TRACY_GPU_ZONE("RenderClear");
-
- GLCALL(glClearColor(color.r, color.g, color.b, color.a));
+ const std::array<GLfloat, 4> c = {sc<GLfloat>(color.r), sc<GLfloat>(color.g), sc<GLfloat>(color.b), sc<GLfloat>(color.a)};
if (!g_pHyprRenderer->m_renderData.damage.empty()) {
- g_pHyprRenderer->m_renderData.damage.forEachRect([](const auto& RECT) {
+ g_pHyprRenderer->m_renderData.damage.forEachRect([&c](const auto& RECT) {
g_pHyprOpenGL->scissor(&RECT, g_pHyprRenderer->m_renderData.transformDamage);
- glClear(GL_COLOR_BUFFER_BIT);
+ glClearBufferfv(GL_COLOR, 0, c.data());
});
- }
+
+ g_pHyprOpenGL->scissor(nullptr);
+ } else
+ glClearBufferfv(GL_COLOR, 0, c.data());
};
void CGLElementRenderer::draw(WP<CFramebufferElement> element, const CRegion& damage) {