45#ifdef FT_CONFIG_OPTION_MAC_FONTS
50#ifdef FT_DEBUG_LEVEL_TRACE
54#if defined( _MSC_VER )
59#pragma warning( push )
60#pragma warning( disable : 4244 )
67#define MD5_u32plus FT_MD5_u32plus
68#define MD5_CTX FT_MD5_CTX
69#define MD5_Init FT_MD5_Init
70#define MD5_Update FT_MD5_Update
71#define MD5_Final FT_MD5_Final
77#if defined( _MSC_VER )
81 static const char*
const pixel_modes[] =
89 "vertical LCD 8-bit bitmap",
90 "BGRA 32-bit color image bitmap"
96#define GRID_FIT_METRICS
110 const char* service_id )
116 if (
desc && service_id )
201 return FT_THROW( Invalid_Library_Handle );
204 return FT_THROW( Invalid_Argument );
221#ifndef FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT
280#define FT_COMPONENT objs
333 slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
363 if (
slot->format != FT_GLYPH_FORMAT_OUTLINE )
377 pbox.
xMin = ( cbox.
xMin >> 6 ) + ( x_shift >> 6 );
378 pbox.
yMin = ( cbox.
yMin >> 6 ) + ( y_shift >> 6 );
379 pbox.
xMax = ( cbox.
xMax >> 6 ) + ( x_shift >> 6 );
380 pbox.
yMax = ( cbox.
yMax >> 6 ) + ( y_shift >> 6 );
383 cbox.
xMin = ( cbox.
xMin & 63 ) + ( x_shift & 63 );
384 cbox.
yMin = ( cbox.
yMin & 63 ) + ( y_shift & 63 );
385 cbox.
xMax = ( cbox.
xMax & 63 ) + ( x_shift & 63 );
386 cbox.
yMax = ( cbox.
yMax & 63 ) + ( y_shift & 63 );
399 pbox.
xMin += ( cbox.
xMin + 31 ) >> 6;
400 pbox.
xMax += ( cbox.
xMax + 32 ) >> 6;
407 if ( ( ( cbox.
xMin + 31 ) & 63 ) - 31 +
408 ( ( cbox.
xMax + 32 ) & 63 ) - 32 < 0 )
416 pbox.
yMin += ( cbox.
yMin + 31 ) >> 6;
417 pbox.
yMax += ( cbox.
yMax + 32 ) >> 6;
421 if ( ( ( cbox.
yMin + 31 ) & 63 ) - 31 +
422 ( ( cbox.
yMax + 32 ) & 63 ) - 32 < 0 )
450 pbox.
xMax += ( cbox.
xMax + 63 ) >> 6;
451 pbox.
yMax += ( cbox.
yMax + 63 ) >> 6;
460 switch ( pixel_mode )
463 pitch = ( (
width + 15 ) >> 4 ) << 1;
483 bitmap->pixel_mode = (
unsigned char)pixel_mode;
489 if ( pbox.
xMin < -0x8000 || pbox.
xMax > 0x7FFF ||
490 pbox.
yMin < -0x8000 || pbox.
yMax > 0x7FFF )
492 FT_TRACE3((
"ft_glyphslot_preset_bitmap: [%ld %ld %ld %ld]\n",
541 slot->bitmap.width = 0;
542 slot->bitmap.rows = 0;
543 slot->bitmap.pitch = 0;
544 slot->bitmap.pixel_mode = 0;
547 slot->bitmap_left = 0;
548 slot->bitmap_top = 0;
549 slot->num_subglyphs = 0;
552 slot->control_len = 0;
554 slot->format = FT_GLYPH_FORMAT_NONE;
556 slot->linearHoriAdvance = 0;
557 slot->linearVertAdvance = 0;
578 if (
slot->internal )
606 return FT_THROW( Invalid_Face_Handle );
609 return FT_THROW( Invalid_Argument );
615 FT_TRACE4((
"FT_New_GlyphSlot: Creating new slot object\n" ));
672 if (
slot->generic.finalizer )
705 internal->transform_matrix.xx = 0x10000L;
708 internal->transform_matrix.yy = 0x10000L;
732 if ( delta->x | delta->y )
741#ifdef GRID_FIT_METRICS
798 FT_Int32 load_flags )
810 return FT_THROW( Invalid_Face_Handle );
833 load_flags &= ~FT_LOAD_RENDER;
837 load_flags &= ~FT_LOAD_RENDER;
867 (
face->internal->transform_matrix.yx == 0 &&
868 face->internal->transform_matrix.xx != 0 ) ||
869 (
face->internal->transform_matrix.xx == 0 &&
870 face->internal->transform_matrix.yx != 0 ) ) )
896 !is_light_type1 ) ) ||
923 if ( !
error &&
slot->format == FT_GLYPH_FORMAT_BITMAP )
941 glyph_index, load_flags );
943 internal->transform_flags = transform_flags;
955 if (
slot->format == FT_GLYPH_FORMAT_OUTLINE )
962#ifdef GRID_FIT_METRICS
976 slot->advance.y =
slot->metrics.vertAdvance;
980 slot->advance.x =
slot->metrics.horiAdvance;
1016 else if (
slot->format == FT_GLYPH_FORMAT_OUTLINE )
1019 if (
internal->transform_flags & 1 )
1023 if (
internal->transform_flags & 2 )
1034 slot->glyph_index = glyph_index;
1035 slot->internal->load_flags = load_flags;
1040 slot->format != FT_GLYPH_FORMAT_BITMAP &&
1041 slot->format != FT_GLYPH_FORMAT_COMPOSITE )
1056#ifdef FT_DEBUG_LEVEL_TRACE
1057 FT_TRACE5((
"FT_Load_Glyph: index %d, flags 0x%x\n",
1058 glyph_index, load_flags ));
1062 slot->linearHoriAdvance / 65536.0 ));
1064 slot->linearVertAdvance / 65536.0 ));
1066 FT_TRACE5((
" bitmap %dx%d, %s (mode %d)\n",
1069 pixel_modes[
slot->bitmap.pixel_mode],
1070 slot->bitmap.pixel_mode ));
1101 FT_Int32 load_flags )
1107 return FT_THROW( Invalid_Face_Handle );
1109 glyph_index = (
FT_UInt)char_code;
1110 if (
face->charmap )
1124 if (
size->generic.finalizer )
1128 if (
driver->clazz->done_size )
1150 for (
n = 0;
n <
face->num_charmaps;
n++ )
1161 face->num_charmaps = 0;
1175 if (
face->autohint.finalizer )
1176 face->autohint.finalizer(
face->autohint.data );
1180 while (
face->glyph )
1191 if (
face->generic.finalizer )
1209 if (
face->internal )
1254 return FT_THROW( Invalid_CharMap_Handle );
1288 if (
cur[0]->encoding == FT_ENCODING_UNICODE )
1309 if (
cur[0]->encoding == FT_ENCODING_UNICODE )
1316 return FT_THROW( Invalid_CharMap_Handle );
1393 face->stream = *astream;
1396 if ( external_stream )
1404#ifdef FT_CONFIG_OPTION_INCREMENTAL
1409 face->internal->incremental_interface =
NULL;
1410 for (
i = 0;
i < num_params && !
face->internal->incremental_interface;
1413 face->internal->incremental_interface =
1418 face->internal->random_seed = -1;
1426 *astream =
face->stream;
1478 return FT_THROW( Invalid_Argument );
1504 return FT_THROW( Invalid_Argument );
1507 args.memory_base = file_base;
1515#ifdef FT_CONFIG_OPTION_MAC_FONTS
1576 return FT_THROW( Invalid_Library_Handle );
1579 return FT_THROW( Invalid_Argument );
1604 const char* driver_name,
1616 memory_stream_close,
1638 if ( face_index > 0 )
1639 face_index &= 0x7FFF0000L;
1645 (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;
1685 *is_sfnt_cid =
FALSE;
1693 return FT_THROW( Unknown_File_Format );
1701 *is_sfnt_cid =
FALSE;
1703 for (
i = 0;
i < numTables;
i++ )
1714 *is_sfnt_cid =
TRUE;
1715 if ( face_index < 0 )
1723 *is_sfnt_cid =
FALSE;
1724 if ( face_index < 0 )
1727 if ( face_index >= 0 && pstable_index == face_index )
1755 if ( face_index > 0 )
1756 face_index &= 0xFFFFL;
1770 FT_TRACE2((
"open_face_PS_from_sfnt_stream: invalid table offset\n" ));
1776 FT_TRACE2((
"open_face_PS_from_sfnt_stream: invalid table length\n" ));
1799 is_sfnt_cid ?
"cid" :
"type1",
1840 FT_ULong pfb_len, pfb_pos, pfb_lenpos;
1844 if ( face_index == -1 )
1846 if ( face_index != 0 )
1852 for (
i = 0;
i < resource_cnt;
i++ )
1863 FT_TRACE4((
" POST fragment #%d: length=0x%08lx"
1864 " total pfb_len=0x%08lx\n",
1867 if ( FT_MAC_RFORK_MAX_LEN <
temp ||
1868 FT_MAC_RFORK_MAX_LEN -
temp < pfb_len + 6 )
1870 FT_TRACE2((
" MacOS resource length cannot exceed"
1872 FT_MAC_RFORK_MAX_LEN ));
1878 pfb_len +=
temp + 6;
1881 FT_TRACE2((
" total buffer size to concatenate"
1882 " %ld POST fragments: 0x%08lx\n",
1883 resource_cnt, pfb_len + 2 ));
1885 if ( pfb_len + 2 < 6 )
1887 FT_TRACE2((
" too long fragment length makes"
1888 " pfb_len confused: pfb_len=0x%08lx\n",
1910 for (
i = 0;
i < resource_cnt;
i++ )
1921 if ( 0x7FFFFFFFUL < rlen )
1931 " offsets=0x%08lx, rlen=0x%08lx, flags=0x%04x\n",
1939 if ( (
flags >> 8 ) == 0 )
1941 FT_TRACE3((
" Skip POST fragment #%d because it is a comment\n",
1957 FT_TRACE3((
" Write POST fragment #%d header (4-byte) to buffer"
1959 i, pfb_data, pfb_lenpos ));
1961 if ( pfb_lenpos + 3 > pfb_len + 2 )
1965 pfb_data[pfb_lenpos + 1] = (
FT_Byte)(
len >> 8 );
1966 pfb_data[pfb_lenpos + 2] = (
FT_Byte)(
len >> 16 );
1967 pfb_data[pfb_lenpos + 3] = (
FT_Byte)(
len >> 24 );
1969 if ( (
flags >> 8 ) == 5 )
1972 FT_TRACE3((
" Write POST fragment #%d header (6-byte) to buffer"
1974 i, pfb_data, pfb_pos ));
1976 if ( pfb_pos + 6 > pfb_len + 2 )
1979 pfb_data[pfb_pos++] = 0x80;
1985 pfb_lenpos = pfb_pos;
1986 pfb_data[pfb_pos++] = 0;
1987 pfb_data[pfb_pos++] = 0;
1988 pfb_data[pfb_pos++] = 0;
1989 pfb_data[pfb_pos++] = 0;
1992 if ( pfb_pos > pfb_len || pfb_pos + rlen > pfb_len )
1995 FT_TRACE3((
" Load POST fragment #%d (%ld byte) to buffer"
1997 i, rlen, pfb_data, pfb_pos ));
2008 if ( pfb_pos + 2 > pfb_len + 2 )
2010 pfb_data[pfb_pos++] = 0x80;
2011 pfb_data[pfb_pos++] = 3;
2013 if ( pfb_lenpos + 3 > pfb_len + 2 )
2016 pfb_data[pfb_lenpos + 1] = (
FT_Byte)(
len >> 8 );
2017 pfb_data[pfb_lenpos + 2] = (
FT_Byte)(
len >> 16 );
2018 pfb_data[pfb_lenpos + 3] = (
FT_Byte)(
len >> 24 );
2020 return open_face_from_buffer(
library,
2029 FT_TRACE2((
" Abort due to too-short buffer to store"
2030 " all POST fragments\n" ));
2032 FT_TRACE2((
" Abort due to invalid offset in a POST fragment\n" ));
2062 FT_Long face_index_in_resource = 0;
2065 if ( face_index < 0 )
2066 face_index = -face_index - 1;
2067 if ( face_index >= resource_cnt )
2068 return FT_THROW( Cannot_Open_Resource );
2078 return FT_THROW( Cannot_Open_Resource );
2079 if ( (
FT_ULong)rlen > FT_MAC_RFORK_MAX_LEN )
2103 is_cff = rlen > 4 && !
ft_memcmp( sfnt_data,
"OTTO", 4 );
2107 face_index_in_resource,
2108 is_cff ?
"cff" :
"truetype",
2130 FT_Long map_offset, rdata_pos;
2136 &map_offset, &rdata_pos );
2142 map_offset, rdata_pos,
2144 &data_offsets, &
count );
2148 face_index, aface );
2152 (*aface)->num_faces = 1;
2159 map_offset, rdata_pos,
2161 &data_offsets, &
count );
2168 face_index_internal, aface );
2171 (*aface)->num_faces =
count;
2187 unsigned char header[128];
2193 return FT_THROW( Invalid_Stream_Operation );
2211 return FT_THROW( Unknown_File_Format );
2213 dlen = (
header[0x53] << 24 ) |
2218 rlen = (
header[0x57] << 24 ) |
2223 offset = 128 + ( ( dlen + 127 ) & ~127 );
2241#define FT_COMPONENT raccess
2261 is_darwin_vfs = ft_raccess_rule_by_darwin_vfs(
library,
i );
2262 if ( is_darwin_vfs && vfs_rfork_has_no_font )
2264 FT_TRACE3((
"Skip rule %d: darwin vfs resource fork"
2265 " is already checked and"
2266 " no font is found\n",
2273 FT_TRACE3((
"Error 0x%x has occurred in rule %d\n",
2281 FT_TRACE3((
"Try rule %d: %s (offset=%ld) ...",
2286 vfs_rfork_has_no_font =
TRUE;
2295 face_index, aface );
2302 else if ( is_darwin_vfs )
2303 vfs_rfork_has_no_font =
TRUE;
2308 if ( file_names[
i] )
2319#define FT_COMPONENT objs
2347#define FT_COMPONENT raccess
2349#ifdef FT_DEBUG_LEVEL_TRACE
2360#define FT_COMPONENT objs
2368 face_index, aface,
args );
2405#ifndef FT_CONFIG_OPTION_MAC_FONTS
2410#ifdef FT_DEBUG_LEVEL_TRACE
2412 if ( face_index < 0 )
2413 FT_TRACE3((
"Requesting number of faces and named instances\n"));
2416 FT_TRACE3((
"Requesting face %ld", face_index & 0xFFFFL ));
2417 if ( face_index & 0x7FFF0000L )
2418 FT_TRACE3((
", named instance %ld", face_index >> 16 ));
2425 if ( ( !aface && face_index >= 0 ) || !
args )
2426 return FT_THROW( Invalid_Argument );
2453 num_params =
args->num_params;
2489 num_params =
args->num_params;
2498#ifdef FT_CONFIG_OPTION_MAC_FONTS
2499 if ( test_mac_fonts &&
2500 ft_strcmp(
cur[0]->clazz->module_name,
"truetype" ) == 0 &&
2536#if !defined( FT_MACINTOSH ) && defined( FT_CONFIG_OPTION_MAC_FONTS )
2537 if ( test_mac_fonts )
2566 FT_TRACE4((
"FT_Open_Face: New face object, adding to list\n" ));
2578 FT_TRACE4((
"FT_Open_Face: Creating glyph slot\n" ));
2580 if ( face_index >= 0 )
2591 FT_TRACE4((
"FT_Open_Face: Creating size object\n" ));
2605 if (
face->height < 0 )
2617 for (
i = 0;
i <
face->num_fixed_sizes;
i++ )
2633 " Invalid bitmap dimensions for strike %d,"
2634 " now disabled\n",
i ));
2649 internal->transform_matrix.xx = 0x10000L;
2652 internal->transform_matrix.yy = 0x10000L;
2661#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
2681#ifdef FT_DEBUG_LEVEL_TRACE
2682 if ( !
error && face_index < 0 )
2684 FT_TRACE3((
"FT_Open_Face: The font has %ld face%s\n"
2685 " and %ld named instance%s for face %ld\n",
2687 face->num_faces == 1 ?
"" :
"s",
2688 face->style_flags >> 16,
2689 (
face->style_flags >> 16 ) == 1 ?
"" :
"s",
2704 const char* filepathname )
2711 if ( !filepathname )
2712 return FT_THROW( Invalid_Argument );
2716 open.pathname = (
char*)filepathname;
2738 return FT_THROW( Invalid_Face_Handle );
2742 return FT_THROW( Invalid_Driver_Handle );
2758 FT_BOOL( parameters->stream &&
2772 return FT_THROW( Invalid_Face_Handle );
2774 face->internal->refcount++;
2794 face->internal->refcount--;
2795 if (
face->internal->refcount > 0 )
2839 return FT_THROW( Invalid_Face_Handle );
2842 return FT_THROW( Invalid_Argument );
2844 if ( !
face->driver )
2845 return FT_THROW( Invalid_Driver_Handle );
2901 return FT_THROW( Invalid_Size_Handle );
2905 return FT_THROW( Invalid_Face_Handle );
2909 return FT_THROW( Invalid_Driver_Handle );
2923 if (
face->sizes_list.head )
2949 return FT_THROW( Invalid_Face_Handle );
2953 return FT_THROW( Unimplemented_Feature );
2958 if ( req->width && !req->height )
2960 else if ( !req->width && req->height )
2967 return FT_THROW( Invalid_Pixel_Size );
2969 for (
i = 0;
i <
face->num_fixed_sizes;
i++ )
2979 FT_TRACE3((
"FT_Match_Size: bitmap strike %d matches\n",
i ));
2988 FT_TRACE3((
"FT_Match_Size: no matching bitmap strike\n" ));
2990 return FT_THROW( Invalid_Pixel_Size );
3004 if (
metrics->horiBearingY < 0 )
3006 if ( height < metrics->horiBearingY )
3009 else if (
metrics->horiBearingY > 0 )
3028#ifdef GRID_FIT_METRICS
3065 bsize =
face->available_sizes + strike_index;
3073 face->units_per_EM );
3075 face->units_per_EM );
3102 FT_Long w = 0,
h = 0, scaled_w = 0, scaled_h = 0;
3105 switch ( req->type )
3108 w =
h =
face->units_per_EM;
3121 w =
face->max_advance_width;
3132 goto Calculate_Ppem;
3210 return FT_THROW( Invalid_Face_Handle );
3212 if ( strike_index < 0 || strike_index >=
face->num_fixed_sizes )
3213 return FT_THROW( Invalid_Argument );
3215 clazz =
face->driver->clazz;
3221 FT_TRACE5((
"FT_Select_Size (%s driver):\n",
3222 face->driver->root.clazz->module_name ));
3231#ifdef FT_DEBUG_LEVEL_TRACE
3265 return FT_THROW( Invalid_Face_Handle );
3267 if ( !req || req->width < 0 || req->height < 0 ||
3269 return FT_THROW( Invalid_Argument );
3273 face->size->internal->autohint_metrics.x_scale = 0;
3275 clazz =
face->driver->clazz;
3281 FT_TRACE5((
"FT_Request_Size (%s driver):\n",
3282 face->driver->root.clazz->module_name ));
3306#ifdef FT_DEBUG_LEVEL_TRACE
3343 char_width = char_height;
3344 else if ( !char_height )
3345 char_height = char_width;
3347 if ( !horz_resolution )
3348 horz_resolution = vert_resolution;
3349 else if ( !vert_resolution )
3350 vert_resolution = horz_resolution;
3352 if ( char_width < 1 * 64 )
3353 char_width = 1 * 64;
3354 if ( char_height < 1 * 64 )
3355 char_height = 1 * 64;
3357 if ( !horz_resolution )
3358 horz_resolution = vert_resolution = 72;
3361 req.
width = char_width;
3362 req.
height = char_height;
3382 if ( pixel_width == 0 )
3383 pixel_width = pixel_height;
3384 else if ( pixel_height == 0 )
3385 pixel_height = pixel_width;
3387 if ( pixel_width < 1 )
3389 if ( pixel_height < 1 )
3393 if ( pixel_width >= 0xFFFFU )
3394 pixel_width = 0xFFFFU;
3395 if ( pixel_height >= 0xFFFFU )
3396 pixel_height = 0xFFFFU;
3422 return FT_THROW( Invalid_Face_Handle );
3425 return FT_THROW( Invalid_Argument );
3432 if (
driver->clazz->get_kerning )
3442 akerning->x =
FT_MulFix( akerning->x,
face->size->metrics.x_scale );
3443 akerning->y =
FT_MulFix( akerning->y,
face->size->metrics.y_scale );
3447 FT_Pos orig_x = akerning->x;
3448 FT_Pos orig_y = akerning->y;
3454 if (
face->size->metrics.x_ppem < 25 )
3456 face->size->metrics.x_ppem, 25 );
3457 if (
face->size->metrics.y_ppem < 25 )
3459 face->size->metrics.y_ppem, 25 );
3464#ifdef FT_DEBUG_LEVEL_TRACE
3470 if ( akerning->x != orig_x_rounded ||
3471 akerning->y != orig_y_rounded )
3472 FT_TRACE5((
"FT_Get_Kerning: horizontal kerning"
3473 " (%ld, %ld) scaled down to (%ld, %ld) pixels\n",
3474 orig_x_rounded / 64, orig_y_rounded / 64,
3475 akerning->x / 64, akerning->y / 64 ));
3495 FT_Service_Kerning service;
3500 return FT_THROW( Invalid_Face_Handle );
3503 return FT_THROW( Invalid_Argument );
3507 return FT_THROW( Unimplemented_Feature );
3529 return FT_THROW( Invalid_Face_Handle );
3532 if ( encoding == FT_ENCODING_NONE && !
face->num_charmaps )
3533 return FT_THROW( Invalid_Argument );
3539 if ( encoding == FT_ENCODING_UNICODE )
3544 return FT_THROW( Invalid_CharMap_Handle );
3550 if (
cur[0]->encoding == encoding )
3557 return FT_THROW( Invalid_Argument );
3572 return FT_THROW( Invalid_Face_Handle );
3575 if ( !
cur || !charmap )
3576 return FT_THROW( Invalid_CharMap_Handle );
3582 if (
cur[0] == charmap &&
3590 return FT_THROW( Invalid_Argument );
3602 if ( !charmap || !charmap->face )
3605 for (
i = 0;
i < charmap->face->num_charmaps;
i++ )
3606 if ( charmap->face->charmaps[
i] == charmap )
3624 clazz->
done( cmap );
3641 for (
i = 0;
i <
face->num_charmaps;
i++ )
3650 face->num_charmaps - 1 ) )
3654 for (
j =
i + 1;
j <
face->num_charmaps;
j++ )
3656 if (
j ==
face->num_charmaps - 1 )
3657 face->charmaps[
j - 1] = last_charmap;
3662 face->num_charmaps--;
3688 if ( !clazz || !charmap || !charmap->face )
3689 return FT_THROW( Invalid_Argument );
3691 face = charmap->face;
3694 if ( !
FT_ALLOC( cmap, clazz->size ) )
3697 cmap->
clazz = clazz;
3701 error = clazz->init( cmap, init_data );
3709 face->num_charmaps + 1 ) )
3742 if ( charcode > 0xFFFFFFFFUL )
3744 FT_TRACE1((
"FT_Get_Char_Index: too large charcode" ));
3745 FT_TRACE1((
" 0x%lx is truncated\n", charcode ));
3795 FT_UInt32
code = (FT_UInt32)charcode;
3825 if ( num_properties > 0 && !properties )
3831 for ( ; num_properties > 0; num_properties-- )
3835 if ( properties->data )
3838 face->internal->no_stem_darkening =
FALSE;
3840 face->internal->no_stem_darkening =
TRUE;
3845 face->internal->no_stem_darkening = -1;
3850#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
3851 if ( properties->data )
3856 face->internal->lcd_filter_func = ft_lcd_filter_fir;
3865 if ( properties->data )
3867 face->internal->random_seed = *( (FT_Int32*)properties->data );
3868 if (
face->internal->random_seed < 0 )
3869 face->internal->random_seed = 0;
3874 face->internal->random_seed = -1;
3906 face->charmap->encoding == FT_ENCODING_UNICODE )
3917 if ( charcode > 0xFFFFFFFFUL )
3919 FT_TRACE1((
"FT_Face_GetCharVariantIndex:"
3920 " too large charcode" ));
3921 FT_TRACE1((
" 0x%lx is truncated\n", charcode ));
3923 if ( variantSelector > 0xFFFFFFFFUL )
3925 FT_TRACE1((
"FT_Face_GetCharVariantIndex:"
3926 " too large variantSelector" ));
3927 FT_TRACE1((
" 0x%lx is truncated\n", variantSelector ));
3931 (FT_UInt32)charcode,
3932 (FT_UInt32)variantSelector );
3960 if ( charcode > 0xFFFFFFFFUL )
3962 FT_TRACE1((
"FT_Face_GetCharVariantIsDefault:"
3963 " too large charcode" ));
3964 FT_TRACE1((
" 0x%lx is truncated\n", charcode ));
3966 if ( variantSelector > 0xFFFFFFFFUL )
3968 FT_TRACE1((
"FT_Face_GetCharVariantIsDefault:"
3969 " too large variantSelector" ));
3970 FT_TRACE1((
" 0x%lx is truncated\n", variantSelector ));
3974 (FT_UInt32)charcode,
3975 (FT_UInt32)variantSelector );
4030 if ( charcode > 0xFFFFFFFFUL )
4032 FT_TRACE1((
"FT_Face_GetVariantsOfChar: too large charcode" ));
4033 FT_TRACE1((
" 0x%lx is truncated\n", charcode ));
4037 (FT_UInt32)charcode );
4064 if ( variantSelector > 0xFFFFFFFFUL )
4066 FT_TRACE1((
"FT_Get_Char_Index: too large variantSelector" ));
4067 FT_TRACE1((
" 0x%lx is truncated\n", variantSelector ));
4071 (FT_UInt32)variantSelector );
4092 FT_Service_GlyphDict service;
4099 if ( service && service->name_index )
4100 result = service->name_index(
face, glyph_name );
4116 FT_Service_GlyphDict service;
4120 return FT_THROW( Invalid_Face_Handle );
4122 if ( !
buffer || buffer_max == 0 )
4123 return FT_THROW( Invalid_Argument );
4129 return FT_THROW( Invalid_Glyph_Index );
4132 return FT_THROW( Invalid_Argument );
4135 if ( service && service->get_name )
4157 FT_Service_PsFontName service;
4162 POSTSCRIPT_FONT_NAME );
4164 if ( service && service->get_ps_font_name )
4180 FT_Service_SFNT_Table service;
4203 FT_Service_SFNT_Table service;
4207 return FT_THROW( Invalid_Face_Handle );
4211 return FT_THROW( Unimplemented_Feature );
4225 FT_Service_SFNT_Table service;
4232 return FT_THROW( Invalid_Face_Handle );
4236 return FT_THROW( Unimplemented_Feature );
4247 FT_Service_TTCMaps service;
4252 if ( !charmap || !charmap->face )
4255 face = charmap->face;
4259 if ( service->get_cmap_info( charmap, &
cmap_info ))
4271 FT_Service_TTCMaps service;
4276 if ( !charmap || !charmap->face )
4279 face = charmap->face;
4283 if ( service->get_cmap_info( charmap, &
cmap_info ))
4299 return FT_THROW( Invalid_Size_Handle );
4303 return FT_THROW( Invalid_Face_Handle );
4343 cur = (*node)->next;
4463 if (
render->clazz->glyph_format == FT_GLYPH_FORMAT_OUTLINE &&
4465 render->clazz->raster_class->raster_done(
render->raster );
4514 if ( num_params > 0 && !parameters )
4529 if ( renderer->glyph_format == FT_GLYPH_FORMAT_OUTLINE )
4532 set_mode = renderer->clazz->set_mode;
4534 for ( ; num_params > 0; num_params-- )
4536 error =
set_mode( renderer, parameters->tag, parameters->data );
4557 switch (
slot->format )
4559 case FT_GLYPH_FORMAT_BITMAP:
4592 FT_Int32 load_flags =
slot->internal->load_flags;
4622 slot->format = FT_GLYPH_FORMAT_BITMAP;
4632 slot->format = FT_GLYPH_FORMAT_OUTLINE;
4641 if (
slot->format == FT_GLYPH_FORMAT_OUTLINE )
4668#ifdef FT_DEBUG_LEVEL_TRACE
4671#define FT_COMPONENT checksum
4682 ft_trace_levels[trace_checksum] >= 3 &&
4683 slot->bitmap.buffer )
4697 unsigned char md5[16];
4698 unsigned long coverage = 0;
4701 int pitch =
bitmap.pitch;
4704 FT_TRACE3((
"FT_Render_Glyph: bitmap %dx%d, %s (mode %d)\n",
4707 pixel_modes[
slot->bitmap.pixel_mode],
4708 slot->bitmap.pixel_mode ));
4710 for (
i = 0;
i < rows;
i++ )
4711 for (
j = 0;
j < pitch;
j++ )
4712 coverage +=
bitmap.buffer[
i * pitch +
j];
4714 FT_TRACE3((
" Total coverage: %lu\n", coverage ));
4719 (
unsigned long)rows * (
unsigned long)pitch );
4723 for (
i = 0;
i < 16;
i++ )
4737 ft_trace_levels[trace_checksum] >= 7 )
4739 if (
slot->bitmap.rows < 128U &&
4740 slot->bitmap.width < 128U &&
4741 slot->bitmap.buffer )
4743 int rows = (
int)
slot->bitmap.rows;
4745 int pitch =
slot->bitmap.pitch;
4748 unsigned char* topleft =
slot->bitmap.buffer;
4752 topleft -= pitch * ( rows - 1 );
4755 switch (
slot->bitmap.pixel_mode )
4759 for (
i = 0;
i < rows;
i++ )
4762 for (
m = 128;
m > 0 && j < width; m >>= 1,
j++ )
4764 ( topleft[
i * pitch +
j / 8] &
m ) != 0 ));
4771 for (
i = 0;
i < rows;
i++ )
4781 FT_TRACE7((
"Netpbm image: too large, omitted\n" ));
4785#define FT_COMPONENT objs
4803 return FT_THROW( Invalid_Argument );
4880#define FREETYPE_VER_FIXED ( ( (FT_Long)FREETYPE_MAJOR << 16 ) | \
4884 return FT_THROW( Invalid_Library_Handle );
4887 return FT_THROW( Invalid_Argument );
4891 return FT_THROW( Invalid_Version );
4897 if (
ft_strcmp(
module->clazz->module_name, clazz->module_name ) == 0 )
4900 if ( clazz->module_version <=
module->clazz->module_version )
4901 return FT_THROW( Lower_Module_Version );
4951 if ( clazz->module_init )
4970 if ( renderer->
clazz &&
5013 const char* mod_name )
5028 const char* service_id,
5039 if (
module->clazz->get_interface )
5056 if (
cur[0]->clazz->get_interface )
5058 result =
cur[0]->clazz->get_interface(
cur[0], service_id );
5080 return FT_THROW( Invalid_Library_Handle );
5109 return FT_THROW( Invalid_Driver_Handle );
5125 FT_Service_Properties service;
5127#ifdef FT_DEBUG_LEVEL_ERROR
5137 return FT_THROW( Invalid_Library_Handle );
5140 return FT_THROW( Invalid_Argument );
5152 FT_ERROR((
"%s: can't find module `%s'\n",
5158 if ( !
cur[0]->clazz->get_interface )
5160 FT_ERROR((
"%s: module `%s' doesn't support properties\n",
5162 return FT_THROW( Unimplemented_Feature );
5166 interface =
cur[0]->clazz->get_interface(
cur[0],
5170 FT_ERROR((
"%s: module `%s' doesn't support properties\n",
5172 return FT_THROW( Unimplemented_Feature );
5175 service = (FT_Service_Properties)
interface;
5178 missing_func =
FT_BOOL( !service->set_property );
5180 missing_func =
FT_BOOL( !service->get_property );
5184 FT_ERROR((
"%s: property service of module `%s' is broken\n",
5186 return FT_THROW( Unimplemented_Feature );
5189 return set ? service->set_property(
cur[0],
5193 : service->get_property(
cur[0],
5233#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
5274 return FT_THROW( Invalid_Library_Handle );
5292 if ( !
memory || !alibrary )
5293 return FT_THROW( Invalid_Argument );
5295#ifdef FT_DEBUG_LEVEL_ERROR
5359 return FT_THROW( Invalid_Library_Handle );
5385 const char* driver_name[] = {
"type42",
NULL };
5389 m <
sizeof ( driver_name ) /
sizeof ( driver_name[0] );
5399 if ( driver_name[
m] &&
5409 while ( faces->
head )
5413 FT_TRACE0((
"FT_Done_Library: failed to free some faces\n" ));
5482 FT_Service_TrueTypeEngine service;
5485 service = (FT_Service_TrueTypeEngine)
5490 result = service->engine_type;
5514 glyph->format == FT_GLYPH_FORMAT_COMPOSITE &&
5515 sub_index < glyph->num_subglyphs )
5520 *p_index = subg->
index;
5521 *p_flags = subg->
flags;
5522 *p_arg1 = subg->
arg1;
5523 *p_arg2 = subg->
arg2;
ios_base &_STLP_CALL internal(ios_base &__s)
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
struct FT_AutoHinter_InterfaceRec_ * FT_AutoHinter_Interface
typedefFT_BEGIN_HEADER struct FT_AutoHinterRec_ * FT_AutoHinter
int get_name(unsigned char **pos, uint32_t *remaining, const char **out_name)
static LPCWSTR LPCWSTR module_name
#define TT_PLATFORM_MICROSOFT
#define TT_PLATFORM_APPLE_UNICODE
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define FT_LOAD_VERTICAL_LAYOUT
#define FT_LOAD_TARGET_MODE(x)
FT_BEGIN_HEADER struct FT_Glyph_Metrics_ FT_Glyph_Metrics
#define FT_LOAD_SBITS_ONLY
#define FT_LOAD_NO_BITMAP
#define FT_LOAD_IGNORE_TRANSFORM
@ FT_SIZE_REQUEST_TYPE_BBOX
@ FT_SIZE_REQUEST_TYPE_NOMINAL
@ FT_SIZE_REQUEST_TYPE_REAL_DIM
@ FT_SIZE_REQUEST_TYPE_SCALES
@ FT_SIZE_REQUEST_TYPE_MAX
@ FT_SIZE_REQUEST_TYPE_CELL
#define FT_LOAD_NO_RECURSE
#define FT_LOAD_BITMAP_METRICS_ONLY
enum FT_Render_Mode_ FT_Render_Mode
#define FT_LOAD_NO_HINTING
FT_DivFix(FT_Long a, FT_Long b)
#define FT_HAS_FIXED_SIZES(face)
#define FT_LOAD_FORCE_AUTOHINT
#define FT_IS_SCALABLE(face)
#define FT_LOAD_MONOCHROME
#define FT_HAS_VERTICAL(face)
struct FT_SizeRec_ * FT_Size
#define FT_FACE_FLAG_EXTERNAL_STREAM
enum FT_Encoding_ FT_Encoding
FT_Vector_Transform(FT_Vector *vector, const FT_Matrix *matrix)
#define FT_HAS_GLYPH_NAMES(face)
#define FT_LOAD_NO_AUTOHINT
#define FT_IS_TRICKY(face)
#define FT_LOAD_LINEAR_DESIGN
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
FT_MulFix(FT_Long a, FT_Long b)
struct FT_CharMapRec_ * FT_CharMap
FT_Bitmap_Convert(FT_Library library, const FT_Bitmap *source, FT_Bitmap *target, FT_Int alignment)
FT_BEGIN_HEADER FT_Bitmap_Init(FT_Bitmap *abitmap)
FT_Bitmap_Done(FT_Library library, FT_Bitmap *bitmap)
#define FT_ASSERT(condition)
#define FT_TRACE0(varformat)
#define FT_ERROR(varformat)
#define FT_TRACE5(varformat)
#define FT_TRACE7(varformat)
#define FT_TRACE3(varformat)
#define FT_TRACE2(varformat)
#define FT_TRACE1(varformat)
#define FT_TRACE4(varformat)
struct FT_Driver_ClassRec_ * FT_Driver_Class
FT_BEGIN_HEADER FT_Get_Font_Format(FT_Face face)
FT_GlyphLoader_Done(FT_GlyphLoader loader)
FT_GlyphLoader_New(FT_Memory memory, FT_GlyphLoader *aloader)
enum FT_Glyph_Format_ FT_Glyph_Format
enum FT_Pixel_Mode_ FT_Pixel_Mode
FT_BEGIN_HEADER typedef signed long FT_Pos
FT_Incremental_InterfaceRec * FT_Incremental_Interface
#define FT_LCD_FILTER_FIVE_TAPS
FT_List_Up(FT_List list, FT_ListNode node)
void(* FT_List_Destructor)(FT_Memory memory, void *data, void *user)
FT_List_Finalize(FT_List list, FT_List_Destructor destroy, FT_Memory memory, void *user)
FT_List_Remove(FT_List list, FT_ListNode node)
FT_BEGIN_HEADER FT_List_Find(FT_List list, void *data)
FT_List_Add(FT_List list, FT_ListNode node)
#define FT_ALLOC(ptr, size)
#define FT_RENEW_ARRAY(ptr, curcnt, newcnt)
#define FT_MODULE_FONT_DRIVER
@ FT_TRUETYPE_ENGINE_TYPE_NONE
FT_Error(* FT_DebugHook_Func)(void *arg)
enum FT_TrueTypeEngineType_ FT_TrueTypeEngineType
FT_Load_Glyph(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
static void destroy_charmaps(FT_Face face, FT_Memory memory)
FT_Remove_Module(FT_Library library, FT_Module module)
static FT_Error ft_add_renderer(FT_Module module)
FT_Get_Next_Char(FT_Face face, FT_ULong charcode, FT_UInt *agindex)
FT_Get_Sfnt_Table(FT_Face face, FT_Sfnt_Tag tag)
static FT_CharMap find_variant_selector_charmap(FT_Face face)
FT_Set_Transform(FT_Face face, FT_Matrix *matrix, FT_Vector *delta)
static void destroy_face(FT_Memory memory, FT_Face face, FT_Driver driver)
FT_Match_Size(FT_Face face, FT_Size_Request req, FT_Bool ignore_width, FT_ULong *size_index)
FT_Face_GetVariantSelectors(FT_Face face)
static void destroy_size(FT_Memory memory, FT_Size size, FT_Driver driver)
FT_Library_Version(FT_Library library, FT_Int *amajor, FT_Int *aminor, FT_Int *apatch)
FT_Property_Get(FT_Library library, const FT_String *module_name, const FT_String *property_name, void *value)
FT_Set_Pixel_Sizes(FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height)
static FT_Error open_face(FT_Driver driver, FT_Stream *astream, FT_Bool external_stream, FT_Long face_index, FT_Int num_params, FT_Parameter *params, FT_Face *aface)
static void ft_glyphslot_clear(FT_GlyphSlot slot)
static void ft_cmap_done_internal(FT_CMap cmap)
static FT_Error ft_open_face_internal(FT_Library library, const FT_Open_Args *args, FT_Long face_index, FT_Face *aface, FT_Bool test_mac_fonts)
FT_Set_Renderer(FT_Library library, FT_Renderer renderer, FT_UInt num_params, FT_Parameter *parameters)
ft_synthesize_vertical_metrics(FT_Glyph_Metrics *metrics, FT_Pos advance)
FT_Done_Face(FT_Face face)
FT_Get_First_Char(FT_Face face, FT_UInt *agindex)
FT_Get_CMap_Language_ID(FT_CharMap charmap)
FT_Face_GetVariantsOfChar(FT_Face face, FT_ULong charcode)
FT_Select_Metrics(FT_Face face, FT_ULong strike_index)
FT_Open_Face(FT_Library library, const FT_Open_Args *args, FT_Long face_index, FT_Face *aface)
static void Destroy_Module(FT_Module module)
FT_Done_Size(FT_Size size)
ft_validator_run(FT_Validator valid)
static FT_Renderer ft_lookup_glyph_renderer(FT_GlyphSlot slot)
ft_glyphslot_preset_bitmap(FT_GlyphSlot slot, FT_Render_Mode mode, const FT_Vector *origin)
FT_Load_Sfnt_Table(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
FT_Get_Char_Index(FT_Face face, FT_ULong charcode)
ft_glyphslot_free_bitmap(FT_GlyphSlot slot)
FT_Add_Module(FT_Library library, const FT_Module_Class *clazz)
FT_New_Face(FT_Library library, const char *pathname, FT_Long face_index, FT_Face *aface)
static void Destroy_Driver(FT_Driver driver)
FT_Select_Charmap(FT_Face face, FT_Encoding encoding)
ft_validator_init(FT_Validator valid, const FT_Byte *base, const FT_Byte *limit, FT_ValidationLevel level)
static FT_Error ft_property_do(FT_Library library, const FT_String *module_name, const FT_String *property_name, void *value, FT_Bool set, FT_Bool value_is_string)
static void ft_glyphslot_done(FT_GlyphSlot slot)
FT_Activate_Size(FT_Size size)
static FT_Error find_unicode_charmap(FT_Face face)
FT_Done_Library(FT_Library library)
FT_Select_Size(FT_Face face, FT_Int strike_index)
FT_CMap_Done(FT_CMap cmap)
FT_New_GlyphSlot(FT_Face face, FT_GlyphSlot *aslot)
FT_Set_Debug_Hook(FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook)
FT_Request_Size(FT_Face face, FT_Size_Request req)
FT_Request_Metrics(FT_Face face, FT_Size_Request req)
FT_Get_Postscript_Name(FT_Face face)
FT_New_Library(FT_Memory memory, FT_Library *alibrary)
#define FREETYPE_VER_FIXED
ft_module_get_service(FT_Module module, const char *service_id, FT_Bool global)
FT_Face_GetCharVariantIndex(FT_Face face, FT_ULong charcode, FT_ULong variantSelector)
FT_Get_Renderer(FT_Library library, FT_Glyph_Format format)
FT_Get_Charmap_Index(FT_CharMap charmap)
FT_Set_Charmap(FT_Face face, FT_CharMap charmap)
ft_validator_error(FT_Validator valid, FT_Error error)
FT_CMap_New(FT_CMap_Class clazz, FT_Pointer init_data, FT_CharMap charmap, FT_CMap *acmap)
FT_Render_Glyph_Internal(FT_Library library, FT_GlyphSlot slot, FT_Render_Mode render_mode)
FT_Get_CMap_Format(FT_CharMap charmap)
static FT_Error ft_glyphslot_init(FT_GlyphSlot slot)
FT_Get_Module(FT_Library library, const char *module_name)
FT_New_Size(FT_Face face, FT_Size *asize)
FT_Get_TrueType_Engine_Type(FT_Library library)
FT_Get_Glyph_Name(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
FT_Reference_Library(FT_Library library)
static void ft_glyphslot_grid_fit_metrics(FT_GlyphSlot slot, FT_Bool vertical)
FT_Get_Name_Index(FT_Face face, const FT_String *glyph_name)
FT_Stream_New(FT_Library library, const FT_Open_Args *args, FT_Stream *astream)
FT_Render_Glyph(FT_GlyphSlot slot, FT_Render_Mode render_mode)
FT_Get_Module_Interface(FT_Library library, const char *mod_name)
FT_Get_Track_Kerning(FT_Face face, FT_Fixed point_size, FT_Int degree, FT_Fixed *akerning)
FT_Stream_Free(FT_Stream stream, FT_Int external)
FT_Get_Color_Glyph_Layer(FT_Face face, FT_UInt base_glyph, FT_UInt *aglyph_index, FT_UInt *acolor_index, FT_LayerIterator *iterator)
FT_Get_Kerning(FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning)
static void ft_set_current_renderer(FT_Library library)
FT_Attach_Stream(FT_Face face, FT_Open_Args *parameters)
FT_Done_GlyphSlot(FT_GlyphSlot slot)
FT_Property_Set(FT_Library library, const FT_String *module_name, const FT_String *property_name, const void *value)
FT_Get_SubGlyph_Info(FT_GlyphSlot glyph, FT_UInt sub_index, FT_Int *p_index, FT_UInt *p_flags, FT_Int *p_arg1, FT_Int *p_arg2, FT_Matrix *p_transform)
FT_Face_GetCharVariantIsDefault(FT_Face face, FT_ULong charcode, FT_ULong variantSelector)
FT_Face_GetCharsOfVariant(FT_Face face, FT_ULong variantSelector)
FT_Set_Char_Size(FT_Face face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution)
FT_Sfnt_Table_Info(FT_Face face, FT_UInt table_index, FT_ULong *tag, FT_ULong *length)
FT_Lookup_Renderer(FT_Library library, FT_Glyph_Format format, FT_ListNode *node)
ft_glyphslot_alloc_bitmap(FT_GlyphSlot slot, FT_ULong size)
FT_Face_Properties(FT_Face face, FT_UInt num_properties, FT_Parameter *properties)
FT_Reference_Face(FT_Face face)
FT_Attach_File(FT_Face face, const char *filepathname)
FT_New_Memory_Face(FT_Library library, const FT_Byte *file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface)
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
static void ft_recompute_scaled_metrics(FT_Face face, FT_Size_Metrics *metrics)
FT_Load_Char(FT_Face face, FT_ULong char_code, FT_Int32 load_flags)
static void ft_remove_renderer(FT_Module module)
ft_glyphslot_set_bitmap(FT_GlyphSlot slot, FT_Byte *buffer)
#define FT_FACE_LIBRARY(x)
#define FT_DRIVER_HAS_HINTER(x)
#define FT_MODULE_IS_RENDERER(x)
#define FT_DRIVER_USES_OUTLINES(x)
#define FT_REQUEST_WIDTH(req)
#define FT_REQUEST_HEIGHT(req)
#define FT_FACE_MEMORY(x)
#define FT_PIX_ROUND_LONG(x)
ft_lcd_padding(FT_BBox *cbox, FT_GlyphSlot slot, FT_Render_Mode mode)
#define FT_DRIVER_HINTS_LIGHTLY(x)
#define FT_GLYPH_OWN_BITMAP
#define FT_MODULE_IS_DRIVER(x)
#define FT_PIX_CEIL_LONG(x)
#define FT_MODULE_IS_HINTER(x)
#define FT_PAD_CEIL(x, n)
FT_Outline_Check(FT_Outline *outline)
FT_Outline_Translate(const FT_Outline *outline, FT_Pos xOffset, FT_Pos yOffset)
FT_Outline_Transform(const FT_Outline *outline, const FT_Matrix *matrix)
FT_Outline_Get_CBox(const FT_Outline *outline, FT_BBox *acbox)
#define FT_PARAM_TAG_INCREMENTAL
#define FT_PARAM_TAG_RANDOM_SEED
#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS
#define FT_PARAM_TAG_STEM_DARKENING
FT_Error(* FT_Renderer_SetModeFunc)(FT_Renderer renderer, FT_ULong mode_tag, FT_Pointer mode_ptr)
FT_Raccess_Guess(FT_Library library, FT_Stream stream, char *base_name, char **new_names, FT_Long *offsets, FT_Error *errors)
FT_Raccess_Get_HeaderInfo(FT_Library library, FT_Stream stream, FT_Long rfork_offset, FT_Long *map_offset, FT_Long *rdata_pos)
#define FT_RACCESS_N_RULES
FT_Raccess_Get_DataOffsets(FT_Library library, FT_Stream stream, FT_Long map_offset, FT_Long rdata_pos, FT_Long tag, FT_Bool sort_by_res_id, FT_Long **offsets, FT_Long *count)
#define FT_FACE_LOOKUP_SERVICE(face, ptr, id)
#define FT_FACE_FIND_SERVICE(face, ptr, id)
#define FT_READ_USHORT(var)
#define FT_READ_ULONG(var)
#define FT_READ_LONG(var)
FT_Stream_Close(FT_Stream stream)
FT_Stream_Open(FT_Stream stream, const char *filepathname)
#define FT_STREAM_SKIP(distance)
FT_Stream_Read(FT_Stream stream, FT_Byte *buffer, FT_ULong count)
FT_Stream_Seek(FT_Stream stream, FT_ULong pos)
FT_Stream_OpenMemory(FT_Stream stream, const FT_Byte *base, FT_ULong size)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
void(* FT_Stream_CloseFunc)(FT_Stream stream)
FT_BEGIN_HEADER typedef unsigned char FT_Bool
enum FT_ValidationLevel_ FT_ValidationLevel
typedefFT_BEGIN_HEADER struct FT_ValidatorRec_ volatile * FT_Validator
static const FxOffsetAndName offsets[]
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLuint GLint GLenum face
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
GLenum const GLfloat * params
GLuint GLsizei GLsizei * length
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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
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 GLint GLint j
D3D11_SHADER_VARIABLE_DESC desc
static char memory[1024 *256]
struct @1789::@1790 driver
FT_BEGIN_HEADER struct PS_DriverRec_ * PS_Driver
static unsigned int file_size
void MD5_Init(MD5_CTX *ctx)
void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
void MD5_Final(unsigned char *result, MD5_CTX *ctx)
static LONGLONG Adjust(LONGLONG value, const LONGLONG *pModifier, DWORD dwFlags)
SFNT_Interface * SFNT_Service
FT_AutoHinter_GlyphLoadFunc load_glyph
FT_CMap_CharNextFunc char_next
FT_CMap_CharVariantListFunc charvariant_list
FT_CMap_CharVarIndexFunc char_var_index
FT_CMap_VariantCharListFunc variantchar_list
FT_CMap_CharVarIsDefaultFunc char_var_default
FT_CMap_CharIndexFunc char_index
FT_CMap_VariantListFunc variant_list
FT_Size_RequestFunc request_size
FT_Size_InitFunc init_size
FT_Size_SelectFunc select_size
FT_Slot_DoneFunc done_slot
FT_Face_InitFunc init_face
FT_Face_DoneFunc done_face
FT_Face_AttachFunc attach_file
FT_Slot_InitFunc init_slot
FT_DebugHook_Func debug_hooks[4]
FT_Module modules[FT_MAX_MODULES]
const void * module_interface
FT_Module_Destructor module_done
FT_Raster_NewFunc raster_new
FT_Raster_RenderFunc raster_render
FT_Raster_DoneFunc raster_done
FT_Renderer_RenderFunc render
FT_Renderer_Class * clazz
FT_Glyph_Format glyph_format
FT_Renderer_TransformFunc transform_glyph
FT_Glyph_Format glyph_format
FT_Raster_Funcs * raster_class
FT_Renderer_RenderFunc render_glyph
FT_Size_Request_Type type
TT_Get_Colr_Layer_Func get_colr_layer
TT_Blend_Colr_Func colr_blend
TT_MaxProfile max_profile
FT_ULong font_program_size
FT_ULong cvt_program_size
FT_UShort maxSizeOfInstructions
#define FT_SERVICE_ID_PROPERTIES
#define FT_SERVICE_ID_TRUETYPE_ENGINE
FT_UInt FT_UInt right_glyph
#define TT_APPLE_ID_UNICODE_32
#define TT_APPLE_ID_VARIANT_SELECTOR
enum FT_Sfnt_Tag_ FT_Sfnt_Tag
struct TT_FaceRec_ * TT_Face
static uacpi_status set_mode(enum hw_mode mode)
static void set_name(msft_typelib_t *typelib)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList