freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] GSoC-2019-moazin 4288f4a 17/32: Minor changes.


From: Moazin Khatti
Subject: [freetype2] GSoC-2019-moazin 4288f4a 17/32: Minor changes.
Date: Thu, 11 Jul 2019 05:10:05 -0400 (EDT)

branch: GSoC-2019-moazin
commit 4288f4a70aa19cc35a952a2d0fb8024d9b7b8290
Author: Moazin Khatti <address@hidden>
Commit: Moazin Khatti <address@hidden>

    Minor changes.
    
    * src/base/ftobjs.c (FT_Load_Glyph): Use the recrusive call with
    `FT_LOAD_NO_SCALE' so that the loaded data is unscaled.
    
    * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change the format
    to bitmap once an SVG glyph is successfully rendered.
    
    * src/sfnt/ttsvg.c (tt_face_load_svg_doc): Make sure metrics are
    grabbed. Scale `horiAdvance' and `vertAdvance' properly and
    convert them to 26.6 format.
---
 src/base/ftobjs.c | 9 +++++++--
 src/sfnt/ttsvg.c  | 4 ++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 569fc2f..cc0badd 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -839,9 +839,9 @@
       load_flags &= ~FT_LOAD_RENDER;
 
     if ( ( load_flags & FT_LOAD_COLOR ) &&
-         ( ((TT_Face)face)->svg ) )
+         ( ttface->svg ) )
     {
-      FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT );
+      FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE);
     }
 
     /*
@@ -4548,6 +4548,11 @@
     case FT_GLYPH_FORMAT_SVG:      /* handle svg rendering */
       renderer = FT_Lookup_Renderer( library, slot->format, NULL );
       error    = renderer->clazz->render_glyph( renderer, slot, 
FT_RENDER_MODE_NORMAL, NULL);
+      if( error == FT_Err_Ok )
+      {
+        slot->format = FT_GLYPH_FORMAT_BITMAP;
+      }
+      return error;
       break;
     default:
       if ( slot->internal->load_flags & FT_LOAD_COLOR )
diff --git a/src/sfnt/ttsvg.c b/src/sfnt/ttsvg.c
index f13f2eb..4901b22 100644
--- a/src/sfnt/ttsvg.c
+++ b/src/sfnt/ttsvg.c
@@ -232,7 +232,11 @@
 
     svg_document->svg_document        = doc_list;
     svg_document->svg_document_length = doc_length;
+    svg_document->metrics             = glyph->face->size->metrics;
 
     glyph->other = svg_document;
+    glyph->metrics.horiAdvance *= 
((float)glyph->face->size->metrics.x_ppem)/((float)glyph->face->units_per_EM) * 
64.0;
+    glyph->metrics.vertAdvance *= 
((float)glyph->face->size->metrics.y_ppem)/((float)glyph->face->units_per_EM) * 
64.0;
+
     return FT_Err_Ok;
   }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]