summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-07-30 11:54:09 +0200
committerGitHub <noreply@github.com>2025-07-30 11:54:09 +0200
commit36a8b2226f42c28092cb8f2d65c0a5ff0da4414f (patch)
treee1a37fe842b35e8b1d2f53ced3c8422b1e371964 /src/render/OpenGL.cpp
parent43966cc787c4a8844ac1e7affaadeedde8f4cc60 (diff)
renderer: use CRegion foreach over getRects (#10980)
instead of allocating and returning a vector, use forEach to directly call a function on the rects.
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 49636965..d85982d2 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -1273,10 +1273,10 @@ void CHyprOpenGLImpl::clear(const CHyprColor& color) {
glClearColor(color.r, color.g, color.b, color.a);
if (!m_renderData.damage.empty()) {
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glClear(GL_COLOR_BUFFER_BIT);
- }
+ });
}
scissor(nullptr);
@@ -1429,16 +1429,16 @@ void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& co
damageClip.intersect(damage);
if (!damageClip.empty()) {
- for (auto const& RECT : damageClip.getRects()) {
+ damageClip.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
} else {
- for (auto const& RECT : damage.getRects()) {
+ damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -1702,16 +1702,16 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP<CTexture> tex, const CB
}
if (!damageClip.empty()) {
- for (auto const& RECT : damageClip.getRects()) {
+ damageClip.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
} else {
- for (auto const& RECT : damage.getRects()) {
+ damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -1746,10 +1746,10 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP<CTexture> tex, const CBox& box)
shader->setUniformInt(SHADER_TEX, 0);
glBindVertexArray(shader->uniformLocations[SHADER_SHADER_VAO]);
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
scissor(nullptr);
glBindVertexArray(0);
@@ -1789,10 +1789,10 @@ void CHyprOpenGLImpl::renderTextureMatte(SP<CTexture> tex, const CBox& box, CFra
glBindVertexArray(shader->uniformLocations[SHADER_SHADER_VAO]);
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
scissor(nullptr);
glBindVertexArray(0);
@@ -1885,10 +1885,10 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi
glBindVertexArray(m_shaders->m_shBLURPREPARE.uniformLocations[SHADER_SHADER_VAO]);
if (!damage.empty()) {
- for (auto const& RECT : damage.getRects()) {
+ damage.forEachRect([this](const auto& RECT) {
scissor(&RECT, false /* this region is already transformed */);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -1927,10 +1927,10 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi
glBindVertexArray(pShader->uniformLocations[SHADER_SHADER_VAO]);
if (!pDamage->empty()) {
- for (auto const& RECT : pDamage->getRects()) {
+ pDamage->forEachRect([this](const auto& RECT) {
scissor(&RECT, false /* this region is already transformed */);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -1988,10 +1988,10 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi
glBindVertexArray(m_shaders->m_shBLURFINISH.uniformLocations[SHADER_SHADER_VAO]);
if (!damage.empty()) {
- for (auto const& RECT : damage.getRects()) {
+ damage.forEachRect([this](const auto& RECT) {
scissor(&RECT, false /* this region is already transformed */);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -2347,16 +2347,16 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr
damageClip.intersect(m_renderData.damage);
if (!damageClip.empty()) {
- for (auto const& RECT : damageClip.getRects()) {
+ damageClip.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
} else {
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -2438,16 +2438,16 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr
damageClip.intersect(m_renderData.damage);
if (!damageClip.empty()) {
- for (auto const& RECT : damageClip.getRects()) {
+ damageClip.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
} else {
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);
@@ -2508,16 +2508,16 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun
damageClip.intersect(m_renderData.damage);
if (!damageClip.empty()) {
- for (auto const& RECT : damageClip.getRects()) {
+ damageClip.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
} else {
- for (auto const& RECT : m_renderData.damage.getRects()) {
+ m_renderData.damage.forEachRect([this](const auto& RECT) {
scissor(&RECT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- }
+ });
}
glBindVertexArray(0);