diff options
author | Ivan Avdeev <marflon@gmail.com> | 2020-12-09 21:42:03 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-10 05:42:03 +0000 |
commit | 5ececc310508c1cdc590d4b6dea9ec2e99475c38 (patch) | |
tree | e6f53de3713d543a9d5acbf2ccebd1cbbebd2526 /alacritty/res | |
parent | 4975be29df848db9b339b5390290e4eb2ac8e140 (diff) | |
download | r-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.glsl | 2 | ||||
-rw-r--r-- | alacritty/res/rect.v.glsl | 4 |
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); } |