21#include FT_INTERNAL_DEBUG_H
22#include FT_INTERNAL_CALC_H
23#include FT_INTERNAL_STREAM_H
25#include FT_TRUETYPE_IDS_H
26#include FT_TRUETYPE_TAGS_H
27#include FT_INTERNAL_SFNT_H
30#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
31#include FT_MULTIPLE_MASTERS_H
32#include FT_SERVICE_MULTIPLE_MASTERS_H
33#include FT_SERVICE_METRICS_VARIATIONS_H
36#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
43#include FT_INTERNAL_POSTSCRIPT_AUX_H
44#include FT_SERVICE_CFF_TABLE_LOAD_H
54#define FT_COMPONENT cffobjs
104 for (
i =
font->num_subfonts;
i > 0;
i-- )
187 error =
funcs->create( cffsize->face->memory, &priv,
192 for (
i =
font->num_subfonts;
i > 0;
i-- )
198 error =
funcs->create( cffsize->face->memory, &priv,
204 cffsize->internal->module_data =
internal;
207 size->strike_index = 0xFFFFFFFFUL;
214#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
241 size->metrics.x_scale,
size->metrics.y_scale,
244 for (
i =
font->num_subfonts;
i > 0;
i-- )
251 if ( top_upm != sub_upm )
253 x_scale =
FT_MulDiv(
size->metrics.x_scale, top_upm, sub_upm );
254 y_scale =
FT_MulDiv(
size->metrics.y_scale, top_upm, sub_upm );
258 x_scale =
size->metrics.x_scale;
259 y_scale =
size->metrics.y_scale;
263 x_scale, y_scale, 0, 0 );
281#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
293 return cff_size_select(
size, strike_index );
313 size->metrics.x_scale,
size->metrics.y_scale,
316 for (
i =
font->num_subfonts;
i > 0;
i-- )
323 if ( top_upm != sub_upm )
325 x_scale =
FT_MulDiv(
size->metrics.x_scale, top_upm, sub_upm );
326 y_scale =
FT_MulDiv(
size->metrics.y_scale, top_upm, sub_upm );
330 x_scale =
size->metrics.x_scale;
331 y_scale =
size->metrics.y_scale;
335 x_scale, y_scale, 0, 0 );
377 slot->internal->glyph_hints = (
void*)
funcs;
419 while ( continue_search )
430 if ( continue_search )
449 FT_Int32 family_name_length, style_name_length;
453 style_name_length = (FT_Int32)
ft_strlen( style_name );
455 if ( family_name_length > style_name_length )
460 for (
idx = 1;
idx <= style_name_length;
idx++ )
463 style_name[style_name_length -
idx] )
467 if (
idx > style_name_length )
470 idx = family_name_length - style_name_length - 1;
498 FT_Service_PsCMaps psnames;
501 FT_Service_CFFLoad cffload;
512 FT_ERROR((
"cff_face_init: cannot access `sfnt' module\n" ));
526 FT_ERROR((
"cff_face_init: cannot access `psaux' module\n" ));
547 FT_TRACE2((
" not an OpenType/CFF font\n" ));
553 if ( face_index < 0 )
585 face->is_cff2 = cff2;
627 if ( face_index < 0 )
637 cffface->face_index = face_index & 0xFFFF;
652 " cannot open CFF & CEF fonts\n"
654 " without the `psnames' module\n" ));
659#ifdef FT_DEBUG_LEVEL_TRACE
688 for (
l = 0;
l < s1len;
l++ )
703 for (
l = 0;
l < s1len;
l++ )
710#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
712 FT_Service_MultiMasters mm = (FT_Service_MultiMasters)
face->mm;
713 FT_Service_MetricsVariations
var = (FT_Service_MetricsVariations)
face->var;
722 error = mm->set_instance( cffface, instance_index );
727 var->metrics_adjust( cffface );
754 if (
temp != 0x10000L )
789 if (
top->has_font_matrix )
826 if (
temp != 0x10000L )
844 char* style_name =
NULL;
860 cffface->bbox.xMax = ( dict->
font_bbox.
xMax + 0xFFFF ) >> 16;
861 cffface->bbox.yMax = ( dict->
font_bbox.
yMax + 0xFFFF ) >> 16;
865 cffface->ascender = (
FT_Short)( cffface->bbox.yMax );
866 cffface->descender = (
FT_Short)( cffface->bbox.yMin );
868 cffface->height = (
FT_Short)( ( cffface->units_per_EM * 12 ) / 10 );
869 if ( cffface->height < cffface->ascender - cffface->descender )
870 cffface->height = (
FT_Short)( cffface->ascender -
871 cffface->descender );
873 cffface->underline_position =
875 cffface->underline_thickness =
889 if ( !cffface->family_name )
893 (
FT_UInt)( face_index & 0xFFFF ) );
894 if ( cffface->family_name )
898 if ( cffface->family_name )
903 char* family = cffface->family_name;
908 if ( full && family )
913 if ( *fullp == *family )
921 if ( *fullp ==
' ' || *fullp ==
'-' )
928 if ( *family ==
' ' || *family ==
'-' )
934 if ( !*family && *fullp )
951 char *cid_font_name =
962 cffface->style_name = style_name;
985 if (
face->kern_pairs )
989 cffface->face_flags |=
flags;
1013 if ( !
ft_strncmp( cffface->style_name,
"Bold", 4 ) ||
1014 !
ft_strncmp( cffface->style_name,
"Black", 5 ) )
1017 cffface->style_flags =
flags;
1020#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
1045 for ( nn = 0; nn < (
FT_UInt)cffface->num_charmaps; nn++ )
1047 cmap = cffface->charmaps[nn];
1065 cmaprec.
face = cffface;
1068 cmaprec.
encoding = FT_ENCODING_UNICODE;
1070 nn = (
FT_UInt)cffface->num_charmaps;
1081 if ( !cffface->charmap && nn != (
FT_UInt)cffface->num_charmaps )
1082 cffface->charmap = cffface->charmaps[nn];
1090 cmaprec.
face = cffface;
1096 cmaprec.
encoding = FT_ENCODING_ADOBE_STANDARD;
1097 clazz = &cff_cmap_encoding_class_rec;
1102 cmaprec.
encoding = FT_ENCODING_ADOBE_EXPERT;
1103 clazz = &cff_cmap_encoding_class_rec;
1108 cmaprec.
encoding = FT_ENCODING_ADOBE_CUSTOM;
1109 clazz = &cff_cmap_encoding_class_rec;
1133 memory = cffface->memory;
1150#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
1151 cff_done_blend(
face );
1166#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
1184 seed = (FT_UInt32)( (
FT_Offset)(
char*)&seed ^
1187 seed = seed ^ ( seed >> 10 ) ^ ( seed >> 20 );
1189 driver->random_seed = (FT_Int32)seed;
1190 if (
driver->random_seed < 0 )
1192 else if (
driver->random_seed == 0 )
1193 driver->random_seed = 123456789;
ios_base &_STLP_CALL internal(ios_base &__s)
return cff_index_get_sid_string(cff, sid)
cff_font_done(CFF_Font font)
cff_font_load(FT_Library library, FT_Stream stream, FT_Int face_index, CFF_Font font, CFF_Face face, FT_Bool pure_cff, FT_Bool cff2)
cff_index_get_name(CFF_Font font, FT_UInt element)
cff_face_done(FT_Face cffface)
cff_slot_done(FT_GlyphSlot slot)
static void remove_style(FT_String *family_name, const FT_String *style_name)
cff_size_init(FT_Size cffsize)
static PSH_Globals_Funcs cff_size_get_globals_funcs(CFF_Size size)
cff_slot_init(FT_GlyphSlot slot)
cff_size_request(FT_Size size, FT_Size_Request req)
cff_driver_done(FT_Module module)
cff_size_done(FT_Size cffsize)
cff_driver_init(FT_Module module)
cff_face_init(FT_Stream stream, FT_Face cffface, FT_Int face_index, FT_Int num_params, FT_Parameter *params)
static FT_String * cff_strcpy(FT_Memory memory, const FT_String *source)
static void cff_make_private_dict(CFF_SubFont subfont, PS_Private priv)
static void remove_subset_prefix(FT_String *name)
FT_BEGIN_HEADER typedef TT_Face CFF_Face
struct CFF_InternalRec_ * CFF_Internal
struct CFF_SizeRec_ * CFF_Size
struct CFF_FontRec_ * CFF_Font
#define TT_MS_ID_UNICODE_CS
#define TT_PLATFORM_MICROSOFT
#define TT_PLATFORM_APPLE_UNICODE
#define FT_FACE_FLAG_KERNING
#define FT_FACE_FLAG_SFNT
#define FT_STYLE_FLAG_ITALIC
#define FT_FACE_FLAG_SCALABLE
#define FT_FACE_FLAG_HINTER
#define FT_HAS_MULTIPLE_MASTERS(face)
#define FT_FACE_FLAG_FIXED_WIDTH
FT_DivFix(FT_Long a, FT_Long b)
#define FT_FACE_FLAG_CID_KEYED
#define FT_HAS_FIXED_SIZES(face)
#define FT_FACE_FLAG_GLYPH_NAMES
#define FT_STYLE_FLAG_BOLD
#define FT_FACE_FLAG_HORIZONTAL
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
FT_Vector_Transform_Scaled(FT_Vector *vector, const FT_Matrix *matrix, FT_Long scaling)
FT_Matrix_Multiply_Scaled(const FT_Matrix *a, FT_Matrix *b, FT_Long scaling)
#define FT_ERROR(varformat)
#define FT_TRACE2(varformat)
#define FT_TRACE4(varformat)
#define FT_HINTING_FREETYPE
FT_BEGIN_HEADER typedef signed long FT_Pos
#define FT_STRDUP(dst, str)
FT_Get_Module(FT_Library library, const char *module_name)
FT_Select_Metrics(FT_Face face, FT_ULong strike_index)
FT_Request_Metrics(FT_Face face, FT_Size_Request req)
FT_CMap_New(FT_CMap_Class clazz, FT_Pointer init_data, FT_CharMap charmap, FT_CMap *acmap)
FT_Get_Module_Interface(FT_Library library, const char *mod_name)
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3
#define FT_FACE_FIND_GLOBAL_SERVICE(face, ptr, id)
#define FT_STREAM_SEEK(position)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLenum face
GLenum const GLfloat * params
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
PSHinter_Interface * PSHinter_Service
static char memory[1024 *256]
struct @1709::@1710 driver
FT_BEGIN_HEADER struct PS_DriverRec_ * PS_Driver
struct PSAux_ServiceRec_ * PSAux_Service
static struct __wine_debug_functions funcs
SFNT_Interface * SFNT_Service
FT_Fixed underline_position
FT_Fixed underline_thickness
FT_Service_PsCMaps psnames
CFF_SubFont subfonts[CFF_MAX_CID_FONTS]
CFF_IndexRec charstrings_index
FT_ULong string_pool_size
PSHinter_Service pshinter
FT_Pos family_other_blues[10]
FT_Byte num_family_other_blues
CFF_PrivateRec private_dict
CFF_FontRecDictRec font_dict
PSH_Globals_Funcs(* get_globals_funcs)(FT_Module module)
T2_Hints_Funcs(* get_t2_funcs)(FT_Module module)
FT_UShort standard_width[1]
FT_Short snap_heights[13]
FT_Byte num_family_other_blues
FT_UShort standard_height[1]
FT_Short family_blues[14]
FT_Short family_other_blues[10]
TT_Load_Table_Func load_cmap
TT_Done_Face_Func done_face
TT_Init_Face_Func init_face
TT_Set_SBit_Strike_Func set_sbit_strike
TT_Load_Face_Func load_face
T1_FIELD_DICT_FONTDICT family_name
#define TT_ADOBE_ID_EXPERT
#define TT_ADOBE_ID_STANDARD
#define TT_PLATFORM_ADOBE
#define TT_ADOBE_ID_CUSTOM