[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] GSoC-2019-moazin 1460c6b 06/26: Support OT-SVG fonts with CF
From: |
Moazin Khatti |
Subject: |
[freetype2] GSoC-2019-moazin 1460c6b 06/26: Support OT-SVG fonts with CFF outlines |
Date: |
Tue, 2 Jul 2019 03:24:07 -0400 (EDT) |
branch: GSoC-2019-moazin
commit 1460c6b0387c57d3d4fdf611257823d6e71eb400
Author: Moazin Khatti <address@hidden>
Commit: Moazin Khatti <address@hidden>
Support OT-SVG fonts with CFF outlines
---
include/freetype/internal/cffotypes.h | 3 +++
src/cff/cffgload.c | 15 +++++++++++++++
src/truetype/ttgload.c | 26 ++++++++------------------
3 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/include/freetype/internal/cffotypes.h
b/include/freetype/internal/cffotypes.h
index b26893e..aaf0668 100644
--- a/include/freetype/internal/cffotypes.h
+++ b/include/freetype/internal/cffotypes.h
@@ -61,6 +61,9 @@ FT_BEGIN_HEADER
{
FT_GlyphSlotRec root;
+ FT_Byte* svg_document;
+ FT_ULong svg_document_length;
+
FT_Bool hint;
FT_Bool scaled;
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 36aa7d1..4db7797 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -347,6 +347,21 @@
if ( load_flags & FT_LOAD_SBITS_ONLY )
return FT_THROW( Invalid_Argument );
+ /* OpenType SVG Support Over here */
+ if ( ( load_flags & FT_LOAD_COLOR ) &&
+ ( ((TT_Face)glyph->root.face)->svg ) )
+ {
+ SFNT_Service sfnt = (SFNT_Service)(((TT_Face)glyph->root.face)->sfnt);
+ error = sfnt->load_svg_doc( &(glyph->root), glyph_index );
+ if( error == FT_Err_Ok )
+ {
+ glyph->root.format = FT_GLYPH_FORMAT_SVG;
+ return error;
+ }
+ }
+
+ /* OpenType SVG Support End */
+
/* if we have a CID subfont, use its matrix (which has already */
/* been multiplied with the root matrix) */
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 6b2bb69..57baf88 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -2440,23 +2440,6 @@
#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
static FT_Error
- load_svg_glyph( TT_GlyphSlot glyph,
- FT_ULong glyph_index )
- {
- FT_Error error;
- TT_Face face;
- SFNT_Service sfnt;
- FT_Byte* doc_list;
-
- face = (TT_Face)(glyph->root).face;
- sfnt = (SFNT_Service)face->sfnt;
-
- error = sfnt->load_svg_doc( (FT_GlyphSlot)glyph, glyph_index );
- return error;
- }
-
-
- static FT_Error
tt_loader_init( TT_Loader loader,
TT_Size size,
TT_GlyphSlot glyph,
@@ -2798,6 +2781,7 @@
{
FT_Error error;
TT_LoaderRec loader;
+ SFNT_Service sfnt;
FT_GlyphSlot glyph = (FT_GlyphSlot)glyph_;
FT_TRACE1(( "TT_Load_Glyph: glyph index %d\n", glyph_index ));
@@ -2905,7 +2889,13 @@
/* OT-SVG part here */
if ( ( load_flags & FT_LOAD_COLOR ) && ( ((TT_Face)glyph->face)->svg ) )
{
- error = load_svg_glyph( glyph_, glyph_index );
+ sfnt = (SFNT_Service)((TT_Face)glyph->face)->sfnt;
+ error = sfnt->load_svg_doc( glyph, glyph_index );
+ if( error == FT_Err_Ok )
+ {
+ glyph->format = FT_GLYPH_FORMAT_SVG;
+ return error;
+ }
}
if ( load_flags & FT_LOAD_SBITS_ONLY )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] GSoC-2019-moazin 1460c6b 06/26: Support OT-SVG fonts with CFF outlines,
Moazin Khatti <=