1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-25 14:05:41 -05:00

Combine FontOffset and GlyphOffset structs into Delta struct

The two structs are very similar, so there is no reason for them to be
separate. Instead combine them into a single Delta struct, which can be
used to shift a point in a two dimensional plane.
This commit is contained in:
Aaron Williamson 2017-04-26 20:28:18 -06:00 committed by Joe Wilm
parent 0a1dc56bcf
commit f06be732a2
3 changed files with 15 additions and 51 deletions

View file

@ -1163,54 +1163,18 @@ impl Dpi {
}
}
/// Modifications to font spacing
///
/// The way Alacritty calculates vertical and horizontal cell sizes may not be
/// ideal for all fonts. This gives the user a way to tweak those values.
#[derive(Debug, Deserialize)]
pub struct FontOffset {
/// Extra horizontal spacing between letters
x: f32,
/// Extra vertical spacing between lines
y: f32,
}
impl FontOffset {
/// Get letter spacing
#[inline]
pub fn x(&self) -> f32 {
self.x
}
/// Get line spacing
#[inline]
pub fn y(&self) -> f32 {
self.y
}
}
impl Default for FontOffset {
fn default() -> FontOffset {
FontOffset { x: 0.0, y: 0.0 }
}
}
/// Modifications to glyph positions within their cells
///
/// By default the glyphs are located at the bottom of the cell which can be
/// undesirable. This gives the user a way to shift where the glyphs are
/// displayed in their cells.
/// A delta for a point in a 2 dimensional plane
#[derive(Clone, Copy, Debug, Deserialize)]
pub struct GlyphOffset {
/// Horizontal position
pub struct Delta {
/// Horizontal change
pub x: f32,
/// Vertical position
/// Vertical change
pub y: f32,
}
impl Default for GlyphOffset {
fn default() -> GlyphOffset {
GlyphOffset { x: 0.0, y: 0.0 }
impl Default for Delta {
fn default() -> Delta {
Delta { x: 0.0, y: 0.0 }
}
}
@ -1273,11 +1237,11 @@ pub struct Font {
size: Size,
/// Extra spacing per character
offset: FontOffset,
offset: Delta,
/// Glyph offset within character cell
#[serde(default)]
glyph_offset: GlyphOffset,
glyph_offset: Delta,
#[serde(default="true_bool")]
use_thin_strokes: bool
@ -1316,13 +1280,13 @@ impl Font {
/// Get offsets to font metrics
#[inline]
pub fn offset(&self) -> &FontOffset {
pub fn offset(&self) -> &Delta {
&self.offset
}
/// Get cell offsets for glyphs
#[inline]
pub fn glyph_offset(&self) -> &GlyphOffset {
pub fn glyph_offset(&self) -> &Delta {
&self.glyph_offset
}
}

View file

@ -171,8 +171,8 @@ impl Display {
// font metrics should be computed before creating the window in the first
// place so that a resize is not needed.
let metrics = glyph_cache.font_metrics();
let cell_width = (metrics.average_advance + font.offset().x() as f64) as u32;
let cell_height = (metrics.line_height + font.offset().y() as f64) as u32;
let cell_width = (metrics.average_advance + font.offset().x as f64) as u32;
let cell_height = (metrics.line_height + font.offset().y as f64) as u32;
// Resize window to specified dimensions
let dimensions = options.dimensions()

View file

@ -28,7 +28,7 @@ use gl;
use index::{Line, Column, RangeInclusive};
use notify::{Watcher as WatcherApi, RecommendedWatcher as Watcher, op};
use config::{Config, GlyphOffset};
use config::{Config, Delta};
use term::{self, cell, RenderableCell};
use window::{Size, Pixels};
@ -156,7 +156,7 @@ pub struct GlyphCache {
font_size: font::Size,
/// glyph offset
glyph_offset: GlyphOffset,
glyph_offset: Delta,
}
impl GlyphCache {