diff options
author | Utsav Oza <utsavoza96@gmail.com> | 2020-06-04 01:32:25 +0530 |
---|---|---|
committer | Utsav Oza <utsavoza96@gmail.com> | 2020-06-10 22:11:24 +0530 |
commit | c21fde375184c367f923b9e3776ba3adbe7f53dd (patch) | |
tree | b23c310ff6abd3fdfac9dd09e0432e0574880ce4 /components/canvas | |
parent | 15fd256302cc4401e0c4e2d154d473bfaa16223d (diff) | |
download | servo-c21fde375184c367f923b9e3776ba3adbe7f53dd.tar.gz servo-c21fde375184c367f923b9e3776ba3adbe7f53dd.zip |
Implement CanvasRenderingContext2D.font property
Diffstat (limited to 'components/canvas')
-rw-r--r-- | components/canvas/Cargo.toml | 1 | ||||
-rw-r--r-- | components/canvas/canvas_data.rs | 6 | ||||
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 1 | ||||
-rw-r--r-- | components/canvas/raqote_backend.rs | 1 |
4 files changed, 9 insertions, 0 deletions
diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml index 918e2971f9a..3d7fa7f38e0 100644 --- a/components/canvas/Cargo.toml +++ b/components/canvas/Cargo.toml @@ -34,6 +34,7 @@ pixels = { path = "../pixels" } raqote = { version = "0.8", features = ["text"] } servo_config = { path = "../config" } sparkle = "0.1.24" +style = { path = "../style" } # NOTE: the sm-angle feature only enables ANGLE on Windows, not other platforms! surfman = { version = "0.2", features = ["sm-angle", "sm-angle-default"] } surfman-chains = "0.3" diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index 6ff87eca291..c90fca964f7 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -13,6 +13,7 @@ use num_traits::ToPrimitive; use std::marker::PhantomData; use std::mem; use std::sync::Arc; +use style::properties::style_structs::Font as FontStyleStruct; use webrender_api::units::RectExt as RectExt_; /// The canvas data stores a state machine for the current status of @@ -1067,6 +1068,10 @@ impl<'a> CanvasData<'a> { self.backend.set_shadow_color(value, &mut self.state); } + pub fn set_font(&mut self, font_style: FontStyleStruct) { + self.state.font_style = Some(font_style) + } + // https://html.spec.whatwg.org/multipage/#when-shadows-are-drawn fn need_to_draw_shadow(&self) -> bool { self.backend.need_to_draw_shadow(&self.state.shadow_color) && @@ -1158,6 +1163,7 @@ pub struct CanvasPaintState<'a> { pub shadow_offset_y: f64, pub shadow_blur: f64, pub shadow_color: Color, + pub font_style: Option<FontStyleStruct>, } /// It writes an image to the destination target diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index 6832a5cddc8..9d9f8350e1d 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -247,6 +247,7 @@ impl<'a> CanvasPaintThread<'a> { }, Canvas2dMsg::SetShadowBlur(value) => self.canvas(canvas_id).set_shadow_blur(value), Canvas2dMsg::SetShadowColor(color) => self.canvas(canvas_id).set_shadow_color(color), + Canvas2dMsg::SetFont(font_style) => self.canvas(canvas_id).set_font(font_style), } } diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index 451656d7708..3c30c0f1a19 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -90,6 +90,7 @@ impl<'a> CanvasPaintState<'a> { shadow_offset_y: 0.0, shadow_blur: 0.0, shadow_color: Color::Raqote(raqote::SolidSource::from_unpremultiplied_argb(0, 0, 0, 0)), + font_style: None, } } } |