diff options
author | Utsav Oza <utsavoza96@gmail.com> | 2020-05-23 22:03:04 +0530 |
---|---|---|
committer | Utsav Oza <utsavoza96@gmail.com> | 2020-06-10 22:10:42 +0530 |
commit | f161ab8e57b0149b368f892f11c83d953c55dd5a (patch) | |
tree | ce067152140204eed750c585ac3890ff909969ad /components/canvas/raqote_backend.rs | |
parent | 726f7d72092d5b8908cc8d8fdefe51ebea8dadf8 (diff) | |
download | servo-f161ab8e57b0149b368f892f11c83d953c55dd5a.tar.gz servo-f161ab8e57b0149b368f892f11c83d953c55dd5a.zip |
Basic implementation of canvas.fillText
Diffstat (limited to 'components/canvas/raqote_backend.rs')
-rw-r--r-- | components/canvas/raqote_backend.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index 72eae8b40c8..c732d686472 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -13,6 +13,9 @@ use canvas_traits::canvas::*; use cssparser::RGBA; use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D}; use euclid::Angle; +use font_kit::family_name::FamilyName; +use font_kit::properties::Properties; +use font_kit::source::SystemSource; use lyon_geom::Arc; use raqote::PathOp; use std::marker::PhantomData; @@ -513,6 +516,32 @@ impl GenericDrawTarget for raqote::DrawTarget { ), } } + + fn fill_text( + &mut self, + text: String, + x: f64, + y: f64, + max_width: Option<f64>, + pattern: canvas_data::Pattern, + draw_options: &DrawOptions, + ) { + let font = SystemSource::new() + .select_best_match(&[FamilyName::SansSerif], &Properties::new()) + .unwrap() + .load() + .unwrap(); + + self.draw_text( + &font, + 24., + &text, + Point2D::new(x as f32, y as f32), + &pattern.source(), + draw_options.as_raqote(), + ); + } + fn fill_rect( &mut self, rect: &Rect<f32>, |