aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas/raqote_backend.rs
diff options
context:
space:
mode:
authorUtsav Oza <utsavoza96@gmail.com>2020-05-23 22:03:04 +0530
committerUtsav Oza <utsavoza96@gmail.com>2020-06-10 22:10:42 +0530
commitf161ab8e57b0149b368f892f11c83d953c55dd5a (patch)
treece067152140204eed750c585ac3890ff909969ad /components/canvas/raqote_backend.rs
parent726f7d72092d5b8908cc8d8fdefe51ebea8dadf8 (diff)
downloadservo-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.rs29
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>,