diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2022-02-22 13:57:04 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-22 13:57:04 +0300 |
commit | 36e981ad4b809f743e36c699f28075a13fdc4cc7 (patch) | |
tree | 78522457de75515d433e0e6a13b4d0ffd1c2a71d /alacritty/src/renderer/rects.rs | |
parent | 4734b2b85073c775145bce1dd7deefd064003bda (diff) | |
download | r-alacritty-36e981ad4b809f743e36c699f28075a13fdc4cc7.tar.gz r-alacritty-36e981ad4b809f743e36c699f28075a13fdc4cc7.tar.bz2 r-alacritty-36e981ad4b809f743e36c699f28075a13fdc4cc7.zip |
Don't use 'origin_upper_left' in rect shaders
Diffstat (limited to 'alacritty/src/renderer/rects.rs')
-rw-r--r-- | alacritty/src/renderer/rects.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/alacritty/src/renderer/rects.rs b/alacritty/src/renderer/rects.rs index 5f9d13e3..3c74b10b 100644 --- a/alacritty/src/renderer/rects.rs +++ b/alacritty/src/renderer/rects.rs @@ -407,6 +407,8 @@ pub struct RectShaderProgram { /// Terminal padding. u_padding_x: GLint, + + /// A padding from the bottom of the screen to viewport. u_padding_y: GLint, /// Underline position. @@ -449,10 +451,15 @@ impl RectShaderProgram { pub fn update_uniforms(&self, size_info: &SizeInfo, metrics: &Metrics) { let position = (0.5 * metrics.descent).abs(); let underline_position = metrics.descent.abs() - metrics.underline_position.abs(); + + let viewport_height = size_info.height() - size_info.padding_y(); + let padding_y = viewport_height + - (viewport_height / size_info.cell_height()).floor() * size_info.cell_height(); + unsafe { gl::Uniform1f(self.u_cell_width, size_info.cell_width()); gl::Uniform1f(self.u_cell_height, size_info.cell_height()); - gl::Uniform1f(self.u_padding_y, size_info.padding_y()); + gl::Uniform1f(self.u_padding_y, padding_y); gl::Uniform1f(self.u_padding_x, size_info.padding_x()); gl::Uniform1f(self.u_underline_position, underline_position); gl::Uniform1f(self.u_underline_thickness, metrics.underline_thickness); |