aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer/rects.rs
diff options
context:
space:
mode:
authorKirill Chibisov <contact@kchibisov.com>2022-02-22 13:57:04 +0300
committerGitHub <noreply@github.com>2022-02-22 13:57:04 +0300
commit36e981ad4b809f743e36c699f28075a13fdc4cc7 (patch)
tree78522457de75515d433e0e6a13b4d0ffd1c2a71d /alacritty/src/renderer/rects.rs
parent4734b2b85073c775145bce1dd7deefd064003bda (diff)
downloadr-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.rs9
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);