From f88c6efd636077d67c9c16845cd924f62285448c Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Fri, 11 Oct 2019 16:33:31 +0200 Subject: [PATCH 1/4] Show warn! for shadow drawing operations --- components/canvas/raqote_backend.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index b8fcd592de0..c1e193ca3e4 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -306,7 +306,7 @@ impl GenericDrawTarget for raqote::DrawTarget { _sigma: f32, _operator: CompositionOp, ) { - unimplemented!(); + warn!("no support for drawing shadows"); } fn fill(&mut self, path: &Path, pattern: Pattern, draw_options: &DrawOptions) { self.fill( From 772f2bc2ee963972bdde2d3aafdc6d931c2c1e7d Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Fri, 11 Oct 2019 16:55:53 +0200 Subject: [PATCH 2/4] Implement Path::transformed_copy_to_builder() --- components/canvas/raqote_backend.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index c1e193ca3e4..8a7fd3354c4 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -180,9 +180,11 @@ impl DrawOptions { impl Path { pub fn transformed_copy_to_builder( &self, - _transform: &Transform2D, + transform: &Transform2D, ) -> Box { - unimplemented!() + Box::new(PathBuilder(Some(raqote::PathBuilder::from( + self.as_raqote().clone().transform(transform), + )))) } pub fn contains_point(&self, x: f64, y: f64, _path_transform: &Transform2D) -> bool { @@ -633,11 +635,12 @@ pub trait ToRaqoteGradientStop { impl ToRaqoteGradientStop for CanvasGradientStop { fn to_raqote(&self) -> raqote::GradientStop { - let color: u32 = ((self.color.alpha as u32) << 8 * 3 | - (self.color.red as u32) << 8 * 2 | - (self.color.green as u32) << 8 * 1 | - (self.color.blue as u32) << 8 * 0) - .into(); + let color = raqote::Color::new( + self.color.alpha, + self.color.red, + self.color.green, + self.color.blue, + ); let position = self.offset as f32; raqote::GradientStop { position, color } } From fa2de689196d467c0c3b76a76a542fd7c15c9847 Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Fri, 11 Oct 2019 17:05:40 +0200 Subject: [PATCH 3/4] Implement DrawTarget::snapshot() --- components/canvas/raqote_backend.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index 8a7fd3354c4..a2f563db346 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -357,7 +357,7 @@ impl GenericDrawTarget for raqote::DrawTarget { self.set_transform(matrix); } fn snapshot(&self) -> SourceSurface { - unimplemented!(); + SourceSurface::Raqote(self.snapshot_data_owned()) } fn stroke( &mut self, From 9762dd3d3f87684177690cab5c1b17321e2f8bf3 Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Fri, 11 Oct 2019 20:13:19 +0200 Subject: [PATCH 4/4] Update raqote --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03c85bbb277..218e2d515a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3864,8 +3864,8 @@ dependencies = [ [[package]] name = "raqote" -version = "0.6.5-alpha.0" -source = "git+https://github.com/jrmuizel/raqote#c9d6d9c65ffac5fe91e2699f9854b3fbaa3c85c2" +version = "0.7.4-alpha.0" +source = "git+https://github.com/jrmuizel/raqote#2a801bca7253e053767ef5ea11b0ee77c52617c9" dependencies = [ "euclid", "font-kit", @@ -5067,9 +5067,9 @@ checksum = "c666f0fed8e1e20e057af770af9077d72f3d5a33157b8537c1475dd8ffd6d32b" [[package]] name = "sw-composite" -version = "0.5.10" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eba1755094da86216f071f7a28b0453345c3e6e558ea2fd7821c55eef8fb9b2" +checksum = "71bd71d7772bdbb7e5fbe37f767c5b2506bd23e72c12186a63f78c0980f64e9b" [[package]] name = "swapper"