From bd61a90f9debc274d7464b879b44267612f953cf Mon Sep 17 00:00:00 2001 From: LongYinan Date: Tue, 4 Mar 2025 22:29:14 +0800 Subject: [PATCH] fix: BlendMode::Plus should be mapped to "plus" globalCompositeOperation (#1016) --- src/ctx.rs | 10 ++-------- src/sk.rs | 6 +++--- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/ctx.rs b/src/ctx.rs index 141fc31c..be7b1e76 100644 --- a/src/ctx.rs +++ b/src/ctx.rs @@ -956,14 +956,8 @@ impl CanvasRenderingContext2D { } #[napi(getter)] - pub fn get_global_composite_operation(&self) -> String { - self - .context - .state - .paint - .get_blend_mode() - .as_str() - .to_owned() + pub fn get_global_composite_operation(&self) -> &str { + self.context.state.paint.get_blend_mode().as_str() } #[napi(setter, return_if_invalid)] diff --git a/src/sk.rs b/src/sk.rs index 53b98290..6c4b8de8 100644 --- a/src/sk.rs +++ b/src/sk.rs @@ -1216,7 +1216,7 @@ impl Default for BlendMode { } impl BlendMode { - pub fn as_str(&self) -> &str { + pub fn as_str(&self) -> &'static str { match self { BlendMode::Clear => "clear", BlendMode::Color => "color", @@ -1237,7 +1237,7 @@ impl BlendMode { BlendMode::Modulate => "modulate", BlendMode::Multiply => "multiply", BlendMode::Overlay => "overlay", - BlendMode::Plus => "plus", + BlendMode::Plus => "lighter", BlendMode::Saturation => "saturation", BlendMode::Screen => "screen", BlendMode::SoftLight => "soft-light", @@ -1275,7 +1275,7 @@ impl FromStr for BlendMode { "modulate" => Ok(BlendMode::Modulate), "multiply" => Ok(BlendMode::Multiply), "overlay" => Ok(BlendMode::Overlay), - "plus" => Ok(BlendMode::Plus), + "lighter" => Ok(BlendMode::Plus), "saturation" => Ok(BlendMode::Saturation), "screen" => Ok(BlendMode::Screen), "soft-light" => Ok(BlendMode::SoftLight),