|
|
|
@ -60,10 +60,12 @@ |
|
|
|
|
/* - unscaled load */ |
|
|
|
|
/* - unhinted load */ |
|
|
|
|
/* - light-hinted load */ |
|
|
|
|
/* - neither a MM nor a GX font */ |
|
|
|
|
|
|
|
|
|
#define LOAD_ADVANCE_FAST_CHECK( flags ) \ |
|
|
|
|
( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \
|
|
|
|
|
FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT ) |
|
|
|
|
#define LOAD_ADVANCE_FAST_CHECK( face, flags ) \ |
|
|
|
|
( ( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \
|
|
|
|
|
FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT ) && \
|
|
|
|
|
!FT_HAS_MULTIPLE_MASTERS( face ) ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* documentation is in ftadvanc.h */ |
|
|
|
@ -87,7 +89,7 @@ |
|
|
|
|
return FT_THROW( Invalid_Glyph_Index ); |
|
|
|
|
|
|
|
|
|
func = face->driver->clazz->get_advances; |
|
|
|
|
if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) ) |
|
|
|
|
if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) ) |
|
|
|
|
{ |
|
|
|
|
FT_Error error; |
|
|
|
|
|
|
|
|
@ -133,7 +135,7 @@ |
|
|
|
|
return FT_Err_Ok; |
|
|
|
|
|
|
|
|
|
func = face->driver->clazz->get_advances; |
|
|
|
|
if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) ) |
|
|
|
|
if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) ) |
|
|
|
|
{ |
|
|
|
|
error = func( face, start, count, flags, padvances ); |
|
|
|
|
if ( !error ) |
|
|
|
|