From 608f606d4963a538decd6b878d16858857eb7e7f Mon Sep 17 00:00:00 2001 From: Abdelrahman Ashraf <a.theashraf@gmail.com> Date: Mon, 18 Mar 2024 13:23:28 +0700 Subject: [PATCH] =?UTF-8?q?chore:=20=F0=9F=A4=96=20utilize=20ABGR8888S=20c?= =?UTF-8?q?olor=20space=20for=20web=20(#100)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deps/modules/thorvg | 2 +- dotlottie-rs/src/lottie_renderer/mod.rs | 17 +++++++++++++++-- dotlottie-rs/src/thorvg.rs | 4 ++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/deps/modules/thorvg b/deps/modules/thorvg index 65d7559b..8545cf5a 160000 --- a/deps/modules/thorvg +++ b/deps/modules/thorvg @@ -1 +1 @@ -Subproject commit 65d7559ba7ed7405d27d8c93a66158236e25b217 +Subproject commit 8545cf5ab8632c1860aa09fe5732081415fd6f11 diff --git a/dotlottie-rs/src/lottie_renderer/mod.rs b/dotlottie-rs/src/lottie_renderer/mod.rs index 85d15d30..259be8e1 100644 --- a/dotlottie-rs/src/lottie_renderer/mod.rs +++ b/dotlottie-rs/src/lottie_renderer/mod.rs @@ -69,7 +69,7 @@ impl LottieRenderer { self.width, self.width, self.height, - TvgColorspace::ABGR8888, + get_color_space_for_target(), ) .map_err(LottieRendererError::ThorvgError)?; @@ -184,7 +184,7 @@ impl LottieRenderer { self.width, self.width, self.height, - TvgColorspace::ABGR8888, + get_color_space_for_target(), ) .map_err(LottieRendererError::ThorvgError)?; @@ -269,3 +269,16 @@ fn hex_to_rgba(hex_color: u32) -> (u8, u8, u8, u8) { (red, green, blue, alpha) } + +#[inline] +fn get_color_space_for_target() -> TvgColorspace { + #[cfg(target_arch = "wasm32")] + { + TvgColorspace::ABGR8888S + } + + #[cfg(not(target_arch = "wasm32"))] + { + TvgColorspace::ABGR8888 + } +} diff --git a/dotlottie-rs/src/thorvg.rs b/dotlottie-rs/src/thorvg.rs index f9a0f39e..aa8494a3 100644 --- a/dotlottie-rs/src/thorvg.rs +++ b/dotlottie-rs/src/thorvg.rs @@ -34,7 +34,9 @@ pub enum TvgEngine { pub enum TvgColorspace { ABGR8888, + ABGR8888S, ARGB8888, + ARGB8888S, } fn convert_tvg_result(result: Tvg_Result, function_name: &str) -> Result<(), TvgError> { @@ -99,7 +101,9 @@ impl Canvas { ) -> Result<(), TvgError> { let color_space = match color_space { TvgColorspace::ABGR8888 => Tvg_Colorspace_TVG_COLORSPACE_ABGR8888, + TvgColorspace::ABGR8888S => Tvg_Colorspace_TVG_COLORSPACE_ABGR8888S, TvgColorspace::ARGB8888 => Tvg_Colorspace_TVG_COLORSPACE_ARGB8888, + TvgColorspace::ARGB8888S => Tvg_Colorspace_TVG_COLORSPACE_ARGB8888S, }; let result = unsafe {