aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-10-02 08:04:24 -0700
committerPatrick Walton <pcwalton@mimiga.net>2014-10-02 08:05:24 -0700
commitdbdfce06954997d27b8c38ffb965e96106212fe4 (patch)
tree8c10989c48a18726c17d94a6e2e00d8f3d72ea07
parentc7915028b498dc8426cdbb5b35f0ad270613a244 (diff)
downloadservo-dbdfce06954997d27b8c38ffb965e96106212fe4.tar.gz
servo-dbdfce06954997d27b8c38ffb965e96106212fe4.zip
gfx: Use subpixel positioning for glyphs.
Improves text rendering significantly.
-rw-r--r--components/gfx/display_list/mod.rs4
-rw-r--r--components/util/geometry.rs6
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;