diff options
Diffstat (limited to '')
-rw-r--r-- | tiny_skia/src/text.rs | 9 | ||||
-rw-r--r-- | wgpu/src/text.rs | 8 |
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(); |