freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] GSoC-2019-moazin e028be9 26/66: Minor fixes.


From: Moazin Khatti
Subject: [freetype2] GSoC-2019-moazin e028be9 26/66: Minor fixes.
Date: Sat, 17 Aug 2019 11:36:44 -0400 (EDT)

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

    Minor fixes.
---
 include/freetype/config/ftmodule.h |  3 +--
 include/freetype/freetype.h        |  1 +
 include/freetype/ftimage.h         |  4 ++--
 include/freetype/svgrenderer.h     |  2 +-
 src/base/ftglyph.c                 | 19 ++++++++++---------
 src/base/ftobjs.c                  |  6 ++++++
 src/sfnt/sfobjs.c                  |  6 +++---
 src/sfnt/ttsvg.c                   | 11 +++++++----
 src/sfnt/ttsvg.h                   |  2 +-
 src/svg/ftsvg.c                    | 21 ++++++++++++---------
 src/svg/ftsvg.h                    |  2 +-
 src/svg/module.mk                  |  2 +-
 src/svg/rules.mk                   |  2 +-
 src/svg/svg.c                      |  2 +-
 src/svg/svgtypes.c                 |  2 +-
 15 files changed, 49 insertions(+), 36 deletions(-)

diff --git a/include/freetype/config/ftmodule.h 
b/include/freetype/config/ftmodule.h
index 0f37d07..7c603e5 100644
--- a/include/freetype/config/ftmodule.h
+++ b/include/freetype/config/ftmodule.h
@@ -22,8 +22,7 @@ FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
 FT_USE_MODULE( FT_Module_Class, psaux_module_class )
 FT_USE_MODULE( FT_Module_Class, psnames_module_class )
 FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
-FT_USE_MODULE( FT_Renderer_Class, ft_svg_renderer_class )
-/*FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )*/
+FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
 FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
 FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
 FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index 8d28cb7..d715f28 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -141,6 +141,7 @@ FT_BEGIN_HEADER
    *   FT_FACE_FLAG_GLYPH_NAMES
    *   FT_FACE_FLAG_EXTERNAL_STREAM
    *   FT_FACE_FLAG_HINTER
+   *   FT_FACE_FLAG_SVG
    *
    *   FT_HAS_HORIZONTAL
    *   FT_HAS_VERTICAL
diff --git a/include/freetype/ftimage.h b/include/freetype/ftimage.h
index 461e354..b40c228 100644
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -734,7 +734,7 @@ FT_BEGIN_HEADER
    *     but FreeType isn't currently capable of rendering them correctly.
    *
    *   FT_GLYPH_FORMAT_SVG ::
-   *     The glyph is inside an SVG documents in the SVG table.
+   *     The glyph is represented by an SVG documents in the SVG table.
    *
    */
   typedef enum  FT_Glyph_Format_
@@ -757,7 +757,7 @@ FT_BEGIN_HEADER
 #define ft_glyph_format_bitmap     FT_GLYPH_FORMAT_BITMAP
 #define ft_glyph_format_outline    FT_GLYPH_FORMAT_OUTLINE
 #define ft_glyph_format_plotter    FT_GLYPH_FORMAT_PLOTTER
-#define ft_glyph_format_svg        FT_GLYPH_FROMAT_SVG
+#define ft_glyph_format_svg        FT_GLYPH_FORMAT_SVG
 
 
   /*************************************************************************/
diff --git a/include/freetype/svgrenderer.h b/include/freetype/svgrenderer.h
index b33e423..c8aad1f 100644
--- a/include/freetype/svgrenderer.h
+++ b/include/freetype/svgrenderer.h
@@ -5,7 +5,7 @@
  *   Interface for SVG Renderer Module (specification).
  *
  * Copyright (C) 2004-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index f558476..ab3be17 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -289,12 +289,12 @@
   ft_svg_glyph_init( FT_Glyph      svg_glyph,
                      FT_GlyphSlot  slot )
   {
-    FT_SvgGlyph   glyph   = (FT_SvgGlyph)svg_glyph;
-    FT_Error      error   = FT_Err_Ok;
-    FT_Memory     memory  =  FT_GLYPH( glyph )->library->memory;
-    FT_ULong      doc_length;
-
+    FT_ULong         doc_length;
     FT_SVG_Document  document;
+    FT_SvgGlyph      glyph   = (FT_SvgGlyph)svg_glyph;
+    FT_Error         error   = FT_Err_Ok;
+    FT_Memory        memory  = FT_GLYPH( glyph )->library->memory;
+
 
     if ( slot->format != FT_GLYPH_FORMAT_SVG )
     {
@@ -316,13 +316,13 @@
       goto Exit;
     }
 
+    /* init the parent first */
     slot->format = FT_GLYPH_FORMAT_OUTLINE;
-    /* let's init the parent first */
     ft_outline_glyph_class.glyph_init( svg_glyph, slot );
     slot->format = FT_GLYPH_FORMAT_SVG;
 
     /* allocate a new document */
-    doc_length = document->svg_document_length;
+    doc_length                 = document->svg_document_length;
     glyph->svg_document        = memory->alloc( memory, doc_length );
     glyph->svg_document_length = doc_length;
     glyph->glyph_index         = slot->glyph_index;
@@ -420,9 +420,10 @@
     document->start_glyph_id      = glyph->start_glyph_id;
     document->end_glyph_id        = glyph->end_glyph_id;
 
-    slot->format = FT_GLYPH_FORMAT_SVG;
+    slot->format      = FT_GLYPH_FORMAT_SVG;
+    slot->glyph_index = glyph->glyph_index;
+    slot->other       = document;
 
-    slot->other = document;
     return error;
   }
 
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 871e4be..e4e1532 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -5604,7 +5604,13 @@
     FT_Module               renderer;
     SVG_Renderer_Interface  *svg;
 
+    /* TODO: (OT-SVG) Handle the case if the module is not found */
     renderer = FT_Get_Module( library, "ot-svg" );
+
+    /* If ot-svg module is not available return with error */
+    if ( renderer == 0 )
+      return FT_THROW( Missing_Module );
+
     svg = (SVG_Renderer_Interface*)renderer->clazz->module_interface;
     svg->set_hooks(renderer, init_hook, free_hook, render_hook);
     return FT_Err_Ok;
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index 6cd62b2..67b1aa9 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -751,7 +751,7 @@
     FT_Bool       is_apple_sbix;
     FT_Bool       has_CBLC;
     FT_Bool       has_CBDT;
-    FT_Bool       has_SVG = FALSE; /* For OpenType SVG fonts */
+    FT_Bool       has_SVG                      = FALSE; /* for OT-SVG */
     FT_Bool       ignore_typographic_family    = FALSE;
     FT_Bool       ignore_typographic_subfamily = FALSE;
 
@@ -955,8 +955,8 @@
     }
 
     /* opentype svg colored glyph support */
-    /* no If statement because the function always exists for now */ 
-    LOAD_( svg ); 
+    /* no If statement because the function always exists for now */
+    LOAD_( svg );
 
     if( face->svg )
       has_SVG = TRUE;
diff --git a/src/sfnt/ttsvg.c b/src/sfnt/ttsvg.c
index 41c0e16..96fdb37 100644
--- a/src/sfnt/ttsvg.c
+++ b/src/sfnt/ttsvg.c
@@ -5,7 +5,7 @@
  *   OpenType SVG Color (specification).
  *
  * Copyright (C) 2018-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
@@ -112,8 +112,9 @@
   {
     FT_Memory  memory = face->root.memory;
     FT_Stream  stream = face->root.stream;
+    Svg*       svg    = (Svg*) face->svg;
+
 
-    Svg* svg = (Svg*) face->svg;
     if( svg )
     {
       FT_FRAME_RELEASE( svg->table );
@@ -246,8 +247,10 @@
     svg_document->end_glyph_id        = end_glyph_id;
 
     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;
+    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;
   }
diff --git a/src/sfnt/ttsvg.h b/src/sfnt/ttsvg.h
index 186d4c8..9b8541e 100644
--- a/src/sfnt/ttsvg.h
+++ b/src/sfnt/ttsvg.h
@@ -5,7 +5,7 @@
  *   OpenType SVG Color (specification).
  *
  * Copyright (C) 2018-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
diff --git a/src/svg/ftsvg.c b/src/svg/ftsvg.c
index 901c576..0bda218 100644
--- a/src/svg/ftsvg.c
+++ b/src/svg/ftsvg.c
@@ -5,7 +5,7 @@
  *   The FreeType svg renderer interface (body).
  *
  * Copyright (C) 1996-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
@@ -37,7 +37,9 @@
   static FT_Error
   ft_svg_init( SVG_Renderer svg_module )
   {
-    FT_Error           error = FT_Err_Ok;
+    FT_Error  error = FT_Err_Ok;
+
+
     svg_module->loaded = FALSE;
     return error;
   }
@@ -48,26 +50,27 @@
                  FT_Render_Mode    mode,
                  const FT_Vector*  origin )
   {
-    SVG_Renderer  renderer_ = (SVG_Renderer)renderer;
+    SVG_Renderer  svg_renderer = (SVG_Renderer)renderer;
+
 
-    if( renderer_->loaded == FALSE )
+    if( svg_renderer->loaded == FALSE )
     {
-      renderer_->loaded = TRUE;
-      renderer_->hooks.svg_lib_init();
+      svg_renderer->loaded = TRUE;
+      svg_renderer->hooks.svg_lib_init();
     }
 
-    return renderer_->hooks.svg_lib_render( slot );
+    return svg_renderer->hooks.svg_lib_render( slot );
   }
 
   static FT_Error
-  ft_svg_set_hooks( FT_Module       renderer_,
+  ft_svg_set_hooks( FT_Module       module,
                     SVG_Lib_Init    init_hook,
                     SVG_Lib_Free    free_hook,
                     SVG_Lib_Render  render_hook )
   {
     SVG_Renderer  renderer;
 
-    renderer = (SVG_Renderer)renderer_;
+    renderer = (SVG_Renderer)module;
     renderer->hooks.svg_lib_init   = init_hook;
     renderer->hooks.svg_lib_free   = free_hook;
     renderer->hooks.svg_lib_render = render_hook;
diff --git a/src/svg/ftsvg.h b/src/svg/ftsvg.h
index 3c99677..74cc767 100644
--- a/src/svg/ftsvg.h
+++ b/src/svg/ftsvg.h
@@ -5,7 +5,7 @@
  *   The FreeType svg renderer interface (specification).
  *
  * Copyright (C) 1996-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
diff --git a/src/svg/module.mk b/src/svg/module.mk
index b6efa17..eda4006 100644
--- a/src/svg/module.mk
+++ b/src/svg/module.mk
@@ -4,7 +4,7 @@
 
 
 # Copyright (C) 1996-2019 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
+# David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # and distributed under the terms of the FreeType project license,
diff --git a/src/svg/rules.mk b/src/svg/rules.mk
index 0f14de4..427580f 100644
--- a/src/svg/rules.mk
+++ b/src/svg/rules.mk
@@ -4,7 +4,7 @@
 
 
 # Copyright (C) 1996-2019 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
+# David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # and distributed under the terms of the FreeType project license,
diff --git a/src/svg/svg.c b/src/svg/svg.c
index 660bb1c..baa720c 100644
--- a/src/svg/svg.c
+++ b/src/svg/svg.c
@@ -5,7 +5,7 @@
  *   FreeType svg renderer module component (body only).
  *
  * Copyright (C) 1996-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project
diff --git a/src/svg/svgtypes.c b/src/svg/svgtypes.c
index 5c86469..57e5c01 100644
--- a/src/svg/svgtypes.c
+++ b/src/svg/svgtypes.c
@@ -6,7 +6,7 @@
  *   The FreeType svg renderer internal types (specification).
  *
  * Copyright (C) 1996-2019 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * David Turner, Robert Wilhelm, Werner Lemberg and Moazin Khatti.
  *
  * This file is part of the FreeType project, and may only be used,
  * modified, and distributed under the terms of the FreeType project



reply via email to

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