From 0f8657f4ca4591a8674e9e53b66160eb8ebfa164 Mon Sep 17 00:00:00 2001
From: +merlan #flirora <flirora@flirora.xyz>
Date: Fri, 23 May 2025 13:07:41 -0400
Subject: [PATCH 1/3] Update fdsm dependency

---
 internal/compiler/Cargo.toml             | 7 ++++---
 internal/compiler/passes/embed_glyphs.rs | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/internal/compiler/Cargo.toml b/internal/compiler/Cargo.toml
index 6fb4c8ec10f..f53e1f456ea 100644
--- a/internal/compiler/Cargo.toml
+++ b/internal/compiler/Cargo.toml
@@ -30,7 +30,7 @@ display-diagnostics = ["codemap", "codemap-diagnostic"]
 # Enable the support to render images and font in the binary
 software-renderer = ["image", "dep:resvg", "fontdue", "i-slint-common/shared-fontdb", "dep:rayon"]
 # Enable support to embed the fonts as signed distance fields
-sdf-fonts = ["dep:fdsm", "dep:ttf-parser-fdsm", "dep:nalgebra", "dep:rayon"]
+sdf-fonts = ["dep:fdsm", "dep:fdsm-ttf-parser", "dep:ttf-parser-fdsm", "dep:nalgebra", "dep:rayon"]
 
 # Translation bundler
 bundle-translations = ["dep:polib"]
@@ -62,8 +62,9 @@ image = { workspace = true, optional = true, features = ["default"] }
 resvg = { workspace = true, optional = true }
 # font embedding
 fontdue = { workspace = true, optional = true, features = ["parallel"] }
-fdsm = { version = "0.6.0", optional = true, features = ["ttf-parser"] }
-ttf-parser-fdsm = { package = "ttf-parser", version = "0.24.1", optional = true }
+fdsm = { version = "0.7.0", optional = true }
+fdsm-ttf-parser = { version = "0.1.0", optional = true }
+ttf-parser-fdsm = { package = "ttf-parser", version = "0.25.1", optional = true }
 nalgebra = { version = "0.33.0", optional = true }
 rayon = { workspace = true, optional = true }
 # translations
diff --git a/internal/compiler/passes/embed_glyphs.rs b/internal/compiler/passes/embed_glyphs.rs
index 6b611263e87..b346fb02a56 100644
--- a/internal/compiler/passes/embed_glyphs.rs
+++ b/internal/compiler/passes/embed_glyphs.rs
@@ -490,7 +490,7 @@ fn generate_sdf_for_glyph(
     let face =
         ttf_parser_fdsm::Face::parse(font.face_data.as_ref().as_ref(), font.face_index).unwrap();
     let glyph_id = face.glyph_index(code_point).unwrap_or_default();
-    let mut shape = fdsm::shape::Shape::load_from_face(&face, glyph_id);
+    let mut shape = fdsm_ttf_parser::load_shape_from_face(&face, glyph_id);
 
     let metrics = font.metrics();
     let target_pixel_size = target_pixel_size as f64;

From 04ea6ec8e806218e8b98b191f7080646cba91bfc Mon Sep 17 00:00:00 2001
From: +merlan #flirora <flirora@flirora.xyz>
Date: Sat, 24 May 2025 11:53:28 -0400
Subject: [PATCH 2/3] Update fdsm-ttf-parser to 0.1.2

---
 internal/compiler/Cargo.toml             | 5 ++---
 internal/compiler/passes/embed_glyphs.rs | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/internal/compiler/Cargo.toml b/internal/compiler/Cargo.toml
index f53e1f456ea..00637f2c06c 100644
--- a/internal/compiler/Cargo.toml
+++ b/internal/compiler/Cargo.toml
@@ -30,7 +30,7 @@ display-diagnostics = ["codemap", "codemap-diagnostic"]
 # Enable the support to render images and font in the binary
 software-renderer = ["image", "dep:resvg", "fontdue", "i-slint-common/shared-fontdb", "dep:rayon"]
 # Enable support to embed the fonts as signed distance fields
-sdf-fonts = ["dep:fdsm", "dep:fdsm-ttf-parser", "dep:ttf-parser-fdsm", "dep:nalgebra", "dep:rayon"]
+sdf-fonts = ["dep:fdsm", "dep:fdsm-ttf-parser", "dep:nalgebra", "dep:rayon"]
 
 # Translation bundler
 bundle-translations = ["dep:polib"]
@@ -63,8 +63,7 @@ resvg = { workspace = true, optional = true }
 # font embedding
 fontdue = { workspace = true, optional = true, features = ["parallel"] }
 fdsm = { version = "0.7.0", optional = true }
-fdsm-ttf-parser = { version = "0.1.0", optional = true }
-ttf-parser-fdsm = { package = "ttf-parser", version = "0.25.1", optional = true }
+fdsm-ttf-parser = { version = "0.1.2", optional = true }
 nalgebra = { version = "0.33.0", optional = true }
 rayon = { workspace = true, optional = true }
 # translations
diff --git a/internal/compiler/passes/embed_glyphs.rs b/internal/compiler/passes/embed_glyphs.rs
index b346fb02a56..c407497f5df 100644
--- a/internal/compiler/passes/embed_glyphs.rs
+++ b/internal/compiler/passes/embed_glyphs.rs
@@ -488,7 +488,7 @@ fn generate_sdf_for_glyph(
     use nalgebra::{Affine2, Similarity2, Vector2};
 
     let face =
-        ttf_parser_fdsm::Face::parse(font.face_data.as_ref().as_ref(), font.face_index).unwrap();
+        fdsm_ttf_parser::ttf_parser::Face::parse(font.face_data.as_ref().as_ref(), font.face_index).unwrap();
     let glyph_id = face.glyph_index(code_point).unwrap_or_default();
     let mut shape = fdsm_ttf_parser::load_shape_from_face(&face, glyph_id);
 

From ab52e3f3d38ce638707c3152a44f795ef22f2a4e Mon Sep 17 00:00:00 2001
From: +merlan #flirora <flirora@flirora.xyz>
Date: Sat, 24 May 2025 11:55:35 -0400
Subject: [PATCH 3/3] Fix formatting

---
 internal/compiler/passes/embed_glyphs.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/internal/compiler/passes/embed_glyphs.rs b/internal/compiler/passes/embed_glyphs.rs
index c407497f5df..21096ee4f46 100644
--- a/internal/compiler/passes/embed_glyphs.rs
+++ b/internal/compiler/passes/embed_glyphs.rs
@@ -488,7 +488,8 @@ fn generate_sdf_for_glyph(
     use nalgebra::{Affine2, Similarity2, Vector2};
 
     let face =
-        fdsm_ttf_parser::ttf_parser::Face::parse(font.face_data.as_ref().as_ref(), font.face_index).unwrap();
+        fdsm_ttf_parser::ttf_parser::Face::parse(font.face_data.as_ref().as_ref(), font.face_index)
+            .unwrap();
     let glyph_id = face.glyph_index(code_point).unwrap_or_default();
     let mut shape = fdsm_ttf_parser::load_shape_from_face(&face, glyph_id);