summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tiny_skia/src/text.rs9
-rw-r--r--wgpu/src/text.rs8
2 files changed, 12 insertions, 5 deletions
diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs
index ba8a4e4b..a34c7317 100644
--- a/tiny_skia/src/text.rs
+++ b/tiny_skia/src/text.rs
@@ -99,6 +99,10 @@ impl Pipeline {
alignment::Vertical::Bottom => bounds.y - total_height,
};
+ // TODO: Subpixel glyph positioning
+ let x = x.round() as i32;
+ let y = y.round() as i32;
+
let mut swash = cosmic_text::SwashCache::new();
for run in buffer.layout_runs() {
@@ -117,9 +121,8 @@ impl Pipeline {
.expect("Create glyph pixel map");
pixels.draw_pixmap(
- x as i32 + glyph.x_int + placement.left,
- y as i32 - glyph.y_int - placement.top
- + run.line_y as i32,
+ x + glyph.x_int + placement.left,
+ y - glyph.y_int - placement.top + run.line_y as i32,
pixmap,
&tiny_skia::PixmapPaint::default(),
tiny_skia::Transform::identity(),
diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs
index ff68772d..cf9fbad3 100644
--- a/wgpu/src/text.rs
+++ b/wgpu/src/text.rs
@@ -133,10 +133,14 @@ impl Pipeline {
alignment::Vertical::Bottom => y - total_height,
};
+ // TODO: Subpixel glyph positioning
+ let left = left.round() as i32;
+ let top = top.round() as i32;
+
glyphon::TextArea {
buffer,
- left: left as i32,
- top: top as i32,
+ left,
+ top,
bounds,
default_color: {
let [r, g, b, a] = section.color.into_linear();