[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master a8652c5 1/2: [truetype, cff] Extend `get_var_blend' f
From: |
Werner LEMBERG |
Subject: |
[freetype2] master a8652c5 1/2: [truetype, cff] Extend `get_var_blend' function of MM service. |
Date: |
Sun, 18 Dec 2016 17:24:40 +0000 (UTC) |
branch: master
commit a8652c59daca62b5f25680928efcdd04ea9f6731
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
[truetype, cff] Extend `get_var_blend' function of MM service.
In particular, we need access to named instance data.
* include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func):
Add argument for `FT_MM_Var'.
* src/cff/cffload.c (cff_get_var_blend): Updated.
* src/cff/cffload.h: Updated.
* src/cff/cf2ft.c (cf2_getNormalizedVector): Updated.
* src/truetype/ttgxvar.c (tt_get_var_blend): Updated.
Accept value `NULL' for arguments.
* src/truetype/ttgxvar.h: Updated.
---
ChangeLog | 18 ++++++++++++++++++
include/freetype/internal/services/svmm.h | 7 ++++---
src/cff/cf2ft.c | 2 +-
src/cff/cffload.c | 9 +++++----
src/cff/cffload.h | 7 ++++---
src/truetype/ttgxvar.c | 25 +++++++++++++++++--------
src/truetype/ttgxvar.h | 7 ++++---
7 files changed, 53 insertions(+), 22 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 75a33bd..46623ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2016-12-18 Werner Lemberg <address@hidden>
+ [truetype, cff] Extend `get_var_blend' function of MM service.
+
+ In particular, we need access to named instance data.
+
+ * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func):
+ Add argument for `FT_MM_Var'.
+
+ * src/cff/cffload.c (cff_get_var_blend): Updated.
+ * src/cff/cffload.h: Updated.
+
+ * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated.
+
+ * src/truetype/ttgxvar.c (tt_get_var_blend): Updated.
+ Accept value `NULL' for arguments.
+ * src/truetype/ttgxvar.h: Updated.
+
+2016-12-18 Werner Lemberg <address@hidden>
+
[sfnt] Handle `fvar' with zero axes as a non-MM font.
This is better behaviour than exiting with an error.
diff --git a/include/freetype/internal/services/svmm.h
b/include/freetype/internal/services/svmm.h
index 21dbd87..e54845a 100644
--- a/include/freetype/internal/services/svmm.h
+++ b/include/freetype/internal/services/svmm.h
@@ -69,9 +69,10 @@ FT_BEGIN_HEADER
FT_Long* coords );
typedef FT_Error
- (*FT_Get_Var_Blend_Func)( FT_Face face,
- FT_UInt *num_coords,
- FT_Fixed* *coords );
+ (*FT_Get_Var_Blend_Func)( FT_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_MM_Var* *mm_var );
typedef void
(*FT_Done_Blend_Func)( FT_Face );
diff --git a/src/cff/cf2ft.c b/src/cff/cf2ft.c
index 02f16ab..a7fb5aa 100644
--- a/src/cff/cf2ft.c
+++ b/src/cff/cf2ft.c
@@ -450,7 +450,7 @@
FT_ASSERT( decoder && decoder->builder.face );
FT_ASSERT( vec && len );
- return cff_get_var_blend( decoder->builder.face, len, vec );
+ return cff_get_var_blend( decoder->builder.face, len, vec, NULL );
}
#endif
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index d347b0a..c097523 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1548,14 +1548,15 @@
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
FT_LOCAL_DEF( FT_Error )
- cff_get_var_blend( CFF_Face face,
- FT_UInt *num_coords,
- FT_Fixed* *coords )
+ cff_get_var_blend( CFF_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_MM_Var* *mm_var )
{
FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
- return mm->get_var_blend( FT_FACE( face ), num_coords, coords );
+ return mm->get_var_blend( FT_FACE( face ), num_coords, coords, mm_var );
}
diff --git a/src/cff/cffload.h b/src/cff/cffload.h
index 2da726c..dc3a2c5 100644
--- a/src/cff/cffload.h
+++ b/src/cff/cffload.h
@@ -105,9 +105,10 @@ FT_BEGIN_HEADER
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
FT_LOCAL( FT_Error )
- cff_get_var_blend( CFF_Face face,
- FT_UInt *num_coords,
- FT_Fixed* *coords );
+ cff_get_var_blend( CFF_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_MM_Var* *mm_var );
FT_LOCAL( void )
cff_done_blend( CFF_Face face );
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 3bcec27..5a4e8f5 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -2740,24 +2740,33 @@
/* tt_get_var_blend */
/* */
/* <Description> */
- /* An internal version of `TT_Get_MM_Blend' that just returns */
+ /* An extended internal version of `TT_Get_MM_Blend' that returns */
/* pointers instead of copying data, without any initialization of */
/* the MM machinery in case it isn't loaded yet. */
/* */
FT_LOCAL_DEF( FT_Error )
- tt_get_var_blend( TT_Face face,
- FT_UInt *num_coords,
- FT_Fixed* *coords )
+ tt_get_var_blend( TT_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_MM_Var* *mm_var )
{
if ( face->blend )
{
- *num_coords = face->blend->num_axis;
- *coords = face->blend->normalizedcoords;
+ if ( num_coords )
+ *num_coords = face->blend->num_axis;
+ if ( coords )
+ *coords = face->blend->normalizedcoords;
+ if ( mm_var )
+ *mm_var = face->blend->mmvar;
}
else
{
- *num_coords = 0;
- *coords = NULL;
+ if ( num_coords )
+ *num_coords = 0;
+ if ( coords )
+ *coords = NULL;
+ if ( mm_var )
+ *mm_var = NULL;
}
return FT_Err_Ok;
diff --git a/src/truetype/ttgxvar.h b/src/truetype/ttgxvar.h
index 95f991f..215e109 100644
--- a/src/truetype/ttgxvar.h
+++ b/src/truetype/ttgxvar.h
@@ -260,9 +260,10 @@ FT_BEGIN_HEADER
FT_Int *adelta );
FT_LOCAL( FT_Error )
- tt_get_var_blend( TT_Face face,
- FT_UInt *num_coords,
- FT_Fixed* *coords );
+ tt_get_var_blend( TT_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_MM_Var* *mm_var );
FT_LOCAL( void )
tt_done_blend( TT_Face face );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master a8652c5 1/2: [truetype, cff] Extend `get_var_blend' function of MM service.,
Werner LEMBERG <=