aboutsummaryrefslogtreecommitdiff
path: root/alacritty/res
diff options
context:
space:
mode:
authorIvan Avdeev <marflon@gmail.com>2020-12-09 21:42:03 -0800
committerGitHub <noreply@github.com>2020-12-10 05:42:03 +0000
commit5ececc310508c1cdc590d4b6dea9ec2e99475c38 (patch)
treee6f53de3713d543a9d5acbf2ccebd1cbbebd2526 /alacritty/res
parent4975be29df848db9b339b5390290e4eb2ac8e140 (diff)
downloadr-alacritty-5ececc310508c1cdc590d4b6dea9ec2e99475c38.tar.gz
r-alacritty-5ececc310508c1cdc590d4b6dea9ec2e99475c38.tar.bz2
r-alacritty-5ececc310508c1cdc590d4b6dea9ec2e99475c38.zip
Render underline and strikeout rects in batches
Currently Alacritty requires a separate `draw` call to OpenGL whenever a new rectangle is rendered to the screen. With many rectangles visible, this has a significant impact on rendering performance. Instead of using separate draw calls, the new `RectRenderer` will build a batch of rectangles for rendering. This makes sure that multiple rectangles can be grouped together for single draw calls allowing a reduced impact on rendering time. Since this change is OpenGL 2 friendly, it should not make it more complicated to transition away from the 3.3+ requirements like an alternative instancing based implementation might have.
Diffstat (limited to 'alacritty/res')
-rw-r--r--alacritty/res/rect.f.glsl2
-rw-r--r--alacritty/res/rect.v.glsl4
2 files changed, 5 insertions, 1 deletions
diff --git a/alacritty/res/rect.f.glsl b/alacritty/res/rect.f.glsl
index edea07dc..945eaf2d 100644
--- a/alacritty/res/rect.f.glsl
+++ b/alacritty/res/rect.f.glsl
@@ -1,6 +1,6 @@
#version 330 core
-uniform vec4 color;
+flat in vec4 color;
out vec4 FragColor;
diff --git a/alacritty/res/rect.v.glsl b/alacritty/res/rect.v.glsl
index 02be0bee..bf9a97d3 100644
--- a/alacritty/res/rect.v.glsl
+++ b/alacritty/res/rect.v.glsl
@@ -1,7 +1,11 @@
#version 330 core
layout (location = 0) in vec2 aPos;
+layout (location = 1) in vec4 aColor;
+
+flat out vec4 color;
void main()
{
+ color = aColor;
gl_Position = vec4(aPos.x, aPos.y, 0.0, 1.0);
}