From ed0dbafc72b99ab2d2e97c7ed748d32026e9d880 Mon Sep 17 00:00:00 2001 From: Bastien Orivel Date: Thu, 8 Aug 2019 16:40:38 +0200 Subject: [PATCH] Implement need_to_draw_shadow --- components/canvas/canvas_data.rs | 2 +- components/canvas/raqote_backend.rs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index 8288e823eea..1602c8c7467 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -317,7 +317,7 @@ pub enum Color { #[cfg(feature = "canvas2d-azure")] Azure(azure::azure_hl::Color), #[cfg(feature = "canvas2d-raqote")] - Raqote(()), + Raqote(raqote::SolidSource), } #[derive(Clone)] diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index b212a2622ea..573ee2bb8ff 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -20,8 +20,8 @@ impl Backend for RaqoteBackend { unimplemented!() } - fn need_to_draw_shadow(&self, _color: &Color) -> bool { - unimplemented!() + fn need_to_draw_shadow(&self, color: &Color) -> bool { + color.as_raqote().a != 0 } fn size_from_pattern(&self, _rect: &Rect, _pattern: &Pattern) -> Option> { @@ -84,7 +84,7 @@ impl<'a> CanvasPaintState<'a> { shadow_offset_x: 0.0, shadow_offset_y: 0.0, shadow_blur: 0.0, - shadow_color: Color::Raqote(()), + shadow_color: Color::Raqote(raqote::SolidSource { r: 0, g: 0, b: 0, a: 0 }), } } } @@ -450,3 +450,11 @@ impl<'a> ToRaqoteSource<'a> for FillOrStrokeStyle { } } } + +impl Color { + fn as_raqote(&self) -> &raqote::SolidSource { + match self { + Color::Raqote(s) => s, + } + } +}