diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2014-10-02 08:04:24 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2014-10-02 08:05:24 -0700 |
commit | dbdfce06954997d27b8c38ffb965e96106212fe4 (patch) | |
tree | 8c10989c48a18726c17d94a6e2e00d8f3d72ea07 | |
parent | c7915028b498dc8426cdbb5b35f0ad270613a244 (diff) | |
download | servo-dbdfce06954997d27b8c38ffb965e96106212fe4.tar.gz servo-dbdfce06954997d27b8c38ffb965e96106212fe4.zip |
gfx: Use subpixel positioning for glyphs.
Improves text rendering significantly.
-rw-r--r-- | components/gfx/display_list/mod.rs | 4 | ||||
-rw-r--r-- | components/util/geometry.rs | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs index 55829ae78d4..5025542765c 100644 --- a/components/gfx/display_list/mod.rs +++ b/components/gfx/display_list/mod.rs @@ -110,8 +110,8 @@ impl ScaledFontExtensionMethods for ScaledFont { let azglyph = struct__AzGlyph { mIndex: glyph.id() as uint32_t, mPosition: struct__AzPoint { - x: (origin.x + glyph_offset.x).to_nearest_px() as AzFloat, - y: (origin.y + glyph_offset.y).to_nearest_px() as AzFloat + x: (origin.x + glyph_offset.x).to_subpx() as AzFloat, + y: (origin.y + glyph_offset.y).to_subpx() as AzFloat } }; origin = Point2D(origin.x + glyph_advance, origin.y); diff --git a/components/util/geometry.rs b/components/util/geometry.rs index 0bf7cffe60c..d212992f6da 100644 --- a/components/util/geometry.rs +++ b/components/util/geometry.rs @@ -201,6 +201,12 @@ impl Au { } #[inline] + pub fn to_subpx(&self) -> f64 { + let Au(s) = *self; + (s as f64) / 60f64 + } + + #[inline] pub fn to_snapped(&self) -> Au { let Au(s) = *self; let res = s % 60i32; |