4 |
/* */ |
/* */ |
5 |
/* Objects manager (body). */ |
/* Objects manager (body). */ |
6 |
/* */ |
/* */ |
7 |
/* Copyright 1996-2001, 2002, 2003, 2004 by */ |
/* Copyright 1996-2001, 2002, 2003, 2004, 2005 by */ |
8 |
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
9 |
/* */ |
/* */ |
10 |
/* This file is part of the FreeType project, and may only be used, */ |
/* This file is part of the FreeType project, and may only be used, */ |
750 |
if ( !error ) |
if ( !error ) |
751 |
{ |
{ |
752 |
/* XXX: TODO: move this code to the SFNT module where it belongs */ |
/* XXX: TODO: move this code to the SFNT module where it belongs */ |
753 |
|
|
754 |
#ifdef FT_OPTIMIZE_MEMORY |
#ifdef FT_OPTIMIZE_MEMORY |
755 |
FT_Byte* strike = face->sbit_table + 8 + strike_index*48; |
FT_Byte* strike = face->sbit_table + 8 + strike_index*48; |
756 |
|
|
757 |
sbit_metrics->ascender = (FT_Char)strike[16] << 6; /* hori.ascender */ |
sbit_metrics->ascender = (FT_Char)strike[16] << 6; /* hori.ascender */ |
758 |
sbit_metrics->descender = (FT_Char)strike[17] << 6; /* hori.descender */ |
sbit_metrics->descender = (FT_Char)strike[17] << 6; /* hori.descender */ |
759 |
|
|
760 |
/* XXX: Is this correct? */ |
/* XXX: Is this correct? */ |
761 |
sbit_metrics->max_advance = ( (FT_Char)strike[22] + /* min_origin_SB */ |
sbit_metrics->max_advance = ( (FT_Char)strike[22] + /* min_origin_SB */ |
762 |
strike[18] + /* max_width */ |
strike[18] + /* max_width */ |
763 |
(FT_Char)strike[23] /* min_advance_SB */ |
(FT_Char)strike[23] /* min_advance_SB */ |
764 |
) << 6; |
) << 6; |
765 |
|
|
766 |
#else /* !OPTIMIZE_MEMORY */ |
#else /* !FT_OPTIMIZE_MEMORY */ |
767 |
|
|
768 |
TT_SBit_Strike strike = face->sbit_strikes + strike_index; |
TT_SBit_Strike strike = face->sbit_strikes + strike_index; |
769 |
|
|
770 |
|
|
775 |
sbit_metrics->max_advance = ( strike->hori.min_origin_SB + |
sbit_metrics->max_advance = ( strike->hori.min_origin_SB + |
776 |
strike->hori.max_width + |
strike->hori.max_width + |
777 |
strike->hori.min_advance_SB ) << 6; |
strike->hori.min_advance_SB ) << 6; |
778 |
#endif /* !OPTIMIZE_MEMORY */ |
|
779 |
|
#endif /* !FT_OPTIMIZE_MEMORY */ |
780 |
|
|
781 |
/* XXX: Is this correct? */ |
/* XXX: Is this correct? */ |
782 |
sbit_metrics->height = sbit_metrics->ascender - |
sbit_metrics->height = sbit_metrics->ascender - |