ReactOS 0.4.15-dev-7918-g2a2556c
pcf.h File Reference
#include <ft2build.h>
Include dependency graph for pcf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PCF_TableRec_
 
struct  PCF_TocRec_
 
struct  PCF_ParsePropertyRec_
 
struct  PCF_PropertyRec_
 
struct  PCF_Compressed_MetricRec_
 
struct  PCF_MetricRec_
 
struct  PCF_AccelRec_
 
struct  PCF_EncodingRec_
 
struct  PCF_FaceRec_
 
struct  PCF_DriverRec_
 

Macros

#define LSBFirst   0
 
#define MSBFirst   1
 
#define PCF_FILE_VERSION
 
#define PCF_FORMAT_MASK   0xFFFFFF00UL
 
#define PCF_DEFAULT_FORMAT   0x00000000UL
 
#define PCF_INKBOUNDS   0x00000200UL
 
#define PCF_ACCEL_W_INKBOUNDS   0x00000100UL
 
#define PCF_COMPRESSED_METRICS   0x00000100UL
 
#define PCF_FORMAT_MATCH(a, b)    ( ( (a) & PCF_FORMAT_MASK ) == ( (b) & PCF_FORMAT_MASK ) )
 
#define PCF_GLYPH_PAD_MASK   ( 3 << 0 )
 
#define PCF_BYTE_MASK   ( 1 << 2 )
 
#define PCF_BIT_MASK   ( 1 << 3 )
 
#define PCF_SCAN_UNIT_MASK   ( 3 << 4 )
 
#define PCF_BYTE_ORDER(f)    ( ( (f) & PCF_BYTE_MASK ) ? MSBFirst : LSBFirst )
 
#define PCF_BIT_ORDER(f)    ( ( (f) & PCF_BIT_MASK ) ? MSBFirst : LSBFirst )
 
#define PCF_GLYPH_PAD_INDEX(f)    ( (f) & PCF_GLYPH_PAD_MASK )
 
#define PCF_GLYPH_PAD(f)    ( 1 << PCF_GLYPH_PAD_INDEX( f ) )
 
#define PCF_SCAN_UNIT_INDEX(f)    ( ( (f) & PCF_SCAN_UNIT_MASK ) >> 4 )
 
#define PCF_SCAN_UNIT(f)    ( 1 << PCF_SCAN_UNIT_INDEX( f ) )
 
#define PCF_FORMAT_BITS(f)
 
#define PCF_SIZE_TO_INDEX(s)   ( (s) == 4 ? 2 : (s) == 2 ? 1 : 0 )
 
#define PCF_INDEX_TO_SIZE(b)   ( 1 << b )
 
#define PCF_FORMAT(bit, byte, glyph, scan)
 
#define PCF_PROPERTIES   ( 1 << 0 )
 
#define PCF_ACCELERATORS   ( 1 << 1 )
 
#define PCF_METRICS   ( 1 << 2 )
 
#define PCF_BITMAPS   ( 1 << 3 )
 
#define PCF_INK_METRICS   ( 1 << 4 )
 
#define PCF_BDF_ENCODINGS   ( 1 << 5 )
 
#define PCF_SWIDTHS   ( 1 << 6 )
 
#define PCF_GLYPH_NAMES   ( 1 << 7 )
 
#define PCF_BDF_ACCELERATORS   ( 1 << 8 )
 
#define GLYPHPADOPTIONS   4 /* I'm not sure about this */
 

Typedefs

typedef FT_BEGIN_HEADER struct PCF_TableRec_ PCF_TableRec
 
typedef FT_BEGIN_HEADER struct PCF_TableRec_PCF_Table
 
typedef struct PCF_TocRec_ PCF_TocRec
 
typedef struct PCF_TocRec_PCF_Toc
 
typedef struct PCF_ParsePropertyRec_ PCF_ParsePropertyRec
 
typedef struct PCF_ParsePropertyRec_PCF_ParseProperty
 
typedef struct PCF_PropertyRec_ PCF_PropertyRec
 
typedef struct PCF_PropertyRec_PCF_Property
 
typedef struct PCF_Compressed_MetricRec_ PCF_Compressed_MetricRec
 
typedef struct PCF_Compressed_MetricRec_PCF_Compressed_Metric
 
typedef struct PCF_MetricRec_ PCF_MetricRec
 
typedef struct PCF_MetricRec_PCF_Metric
 
typedef struct PCF_AccelRec_ PCF_AccelRec
 
typedef struct PCF_AccelRec_PCF_Accel
 
typedef struct PCF_EncodingRec_ PCF_EncodingRec
 
typedef struct PCF_EncodingRec_PCF_Encoding
 
typedef struct PCF_FaceRec_ PCF_FaceRec
 
typedef struct PCF_FaceRec_PCF_Face
 
typedef struct PCF_DriverRec_ PCF_DriverRec
 
typedef struct PCF_DriverRec_PCF_Driver
 

Functions

 pcf_load_font (FT_Stream stream, PCF_Face face, FT_Long face_index)
 

Macro Definition Documentation

◆ GLYPHPADOPTIONS

#define GLYPHPADOPTIONS   4 /* I'm not sure about this */

Definition at line 235 of file pcf.h.

◆ LSBFirst

#define LSBFirst   0

Definition at line 177 of file pcf.h.

◆ MSBFirst

#define MSBFirst   1

Definition at line 178 of file pcf.h.

◆ PCF_ACCEL_W_INKBOUNDS

#define PCF_ACCEL_W_INKBOUNDS   0x00000100UL

Definition at line 187 of file pcf.h.

◆ PCF_ACCELERATORS

#define PCF_ACCELERATORS   ( 1 << 1 )

Definition at line 226 of file pcf.h.

◆ PCF_BDF_ACCELERATORS

#define PCF_BDF_ACCELERATORS   ( 1 << 8 )

Definition at line 233 of file pcf.h.

◆ PCF_BDF_ENCODINGS

#define PCF_BDF_ENCODINGS   ( 1 << 5 )

Definition at line 230 of file pcf.h.

◆ PCF_BIT_MASK

#define PCF_BIT_MASK   ( 1 << 3 )

Definition at line 195 of file pcf.h.

◆ PCF_BIT_ORDER

#define PCF_BIT_ORDER (   f)     ( ( (f) & PCF_BIT_MASK ) ? MSBFirst : LSBFirst )

Definition at line 200 of file pcf.h.

◆ PCF_BITMAPS

#define PCF_BITMAPS   ( 1 << 3 )

Definition at line 228 of file pcf.h.

◆ PCF_BYTE_MASK

#define PCF_BYTE_MASK   ( 1 << 2 )

Definition at line 194 of file pcf.h.

◆ PCF_BYTE_ORDER

#define PCF_BYTE_ORDER (   f)     ( ( (f) & PCF_BYTE_MASK ) ? MSBFirst : LSBFirst )

Definition at line 198 of file pcf.h.

◆ PCF_COMPRESSED_METRICS

#define PCF_COMPRESSED_METRICS   0x00000100UL

Definition at line 188 of file pcf.h.

◆ PCF_DEFAULT_FORMAT

#define PCF_DEFAULT_FORMAT   0x00000000UL

Definition at line 185 of file pcf.h.

◆ PCF_FILE_VERSION

#define PCF_FILE_VERSION
Value:
( ( 'p' << 24 ) | \
( 'c' << 16 ) | \
( 'f' << 8 ) | 1 )

Definition at line 180 of file pcf.h.

◆ PCF_FORMAT

#define PCF_FORMAT (   bit,
  byte,
  glyph,
  scan 
)
Value:
( ( PCF_SIZE_TO_INDEX( scan ) << 4 ) | \
( ( (bit) == MSBFirst ? 1 : 0 ) << 3 ) | \
( ( (byte) == MSBFirst ? 1 : 0 ) << 2 ) | \
( PCF_SIZE_TO_INDEX( glyph ) << 0 ) )
#define PCF_SIZE_TO_INDEX(s)
Definition: pcf.h:216
#define MSBFirst
Definition: pcf.h:178

Definition at line 219 of file pcf.h.

◆ PCF_FORMAT_BITS

#define PCF_FORMAT_BITS (   f)
Value:
( (f) & ( PCF_GLYPH_PAD_MASK | \
#define f
Definition: ke_i.h:83
#define PCF_GLYPH_PAD_MASK
Definition: pcf.h:193
#define PCF_BIT_MASK
Definition: pcf.h:195
#define PCF_SCAN_UNIT_MASK
Definition: pcf.h:196
#define PCF_BYTE_MASK
Definition: pcf.h:194

Definition at line 210 of file pcf.h.

◆ PCF_FORMAT_MASK

#define PCF_FORMAT_MASK   0xFFFFFF00UL

Definition at line 183 of file pcf.h.

◆ PCF_FORMAT_MATCH

#define PCF_FORMAT_MATCH (   a,
  b 
)     ( ( (a) & PCF_FORMAT_MASK ) == ( (b) & PCF_FORMAT_MASK ) )

Definition at line 190 of file pcf.h.

◆ PCF_GLYPH_NAMES

#define PCF_GLYPH_NAMES   ( 1 << 7 )

Definition at line 232 of file pcf.h.

◆ PCF_GLYPH_PAD

#define PCF_GLYPH_PAD (   f)     ( 1 << PCF_GLYPH_PAD_INDEX( f ) )

Definition at line 204 of file pcf.h.

◆ PCF_GLYPH_PAD_INDEX

#define PCF_GLYPH_PAD_INDEX (   f)     ( (f) & PCF_GLYPH_PAD_MASK )

Definition at line 202 of file pcf.h.

◆ PCF_GLYPH_PAD_MASK

#define PCF_GLYPH_PAD_MASK   ( 3 << 0 )

Definition at line 193 of file pcf.h.

◆ PCF_INDEX_TO_SIZE

#define PCF_INDEX_TO_SIZE (   b)    ( 1 << b )

Definition at line 217 of file pcf.h.

◆ PCF_INK_METRICS

#define PCF_INK_METRICS   ( 1 << 4 )

Definition at line 229 of file pcf.h.

◆ PCF_INKBOUNDS

#define PCF_INKBOUNDS   0x00000200UL

Definition at line 186 of file pcf.h.

◆ PCF_METRICS

#define PCF_METRICS   ( 1 << 2 )

Definition at line 227 of file pcf.h.

◆ PCF_PROPERTIES

#define PCF_PROPERTIES   ( 1 << 0 )

Definition at line 225 of file pcf.h.

◆ PCF_SCAN_UNIT

#define PCF_SCAN_UNIT (   f)     ( 1 << PCF_SCAN_UNIT_INDEX( f ) )

Definition at line 208 of file pcf.h.

◆ PCF_SCAN_UNIT_INDEX

#define PCF_SCAN_UNIT_INDEX (   f)     ( ( (f) & PCF_SCAN_UNIT_MASK ) >> 4 )

Definition at line 206 of file pcf.h.

◆ PCF_SCAN_UNIT_MASK

#define PCF_SCAN_UNIT_MASK   ( 3 << 4 )

Definition at line 196 of file pcf.h.

◆ PCF_SIZE_TO_INDEX

#define PCF_SIZE_TO_INDEX (   s)    ( (s) == 4 ? 2 : (s) == 2 ? 1 : 0 )

Definition at line 216 of file pcf.h.

◆ PCF_SWIDTHS

#define PCF_SWIDTHS   ( 1 << 6 )

Definition at line 231 of file pcf.h.

Typedef Documentation

◆ PCF_Accel

◆ PCF_AccelRec

◆ PCF_Compressed_Metric

◆ PCF_Compressed_MetricRec

◆ PCF_Driver

◆ PCF_DriverRec

◆ PCF_Encoding

◆ PCF_EncodingRec

◆ PCF_Face

◆ PCF_FaceRec

◆ PCF_Metric

◆ PCF_MetricRec

◆ PCF_ParseProperty

◆ PCF_ParsePropertyRec

◆ PCF_Property

◆ PCF_PropertyRec

◆ PCF_Table

◆ PCF_TableRec

◆ PCF_Toc

◆ PCF_TocRec

Function Documentation

◆ pcf_load_font()

pcf_load_font ( FT_Stream  stream,
PCF_Face  face,
FT_Long  face_index 
)

Definition at line 1333 of file pcfread.c.

1336 {
1337 FT_Face root = FT_FACE( face );
1339 FT_Memory memory = FT_FACE( face )->memory;
1340 FT_Bool hasBDFAccelerators;
1341
1342
1344 if ( error )
1345 goto Exit;
1346
1347 root->num_faces = 1;
1348 root->face_index = 0;
1349
1350 /* If we are performing a simple font format check, exit immediately. */
1351 if ( face_index < 0 )
1352 return FT_Err_Ok;
1353
1355 if ( error )
1356 goto Exit;
1357
1358 /* Use the old accelerators if no BDF accelerators are in the file. */
1359 hasBDFAccelerators = pcf_has_table_type( face->toc.tables,
1360 face->toc.count,
1362 if ( !hasBDFAccelerators )
1363 {
1365 if ( error )
1366 goto Exit;
1367 }
1368
1369 /* metrics */
1371 if ( error )
1372 goto Exit;
1373
1374 /* bitmaps */
1376 if ( error )
1377 goto Exit;
1378
1379 /* encodings */
1381 if ( error )
1382 goto Exit;
1383
1384 /* BDF style accelerators (i.e. bounds based on encoded glyphs) */
1385 if ( hasBDFAccelerators )
1386 {
1388 if ( error )
1389 goto Exit;
1390 }
1391
1392 /* XXX: TO DO: inkmetrics and glyph_names are missing */
1393
1394 /* now construct the face object */
1395 {
1396 PCF_Property prop;
1397
1398
1399 root->face_flags |= FT_FACE_FLAG_FIXED_SIZES |
1402
1403 if ( face->accel.constantWidth )
1404 root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
1405
1407 goto Exit;
1408
1409 prop = pcf_find_property( face, "FAMILY_NAME" );
1410 if ( prop && prop->isString )
1411 {
1412
1413#ifdef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
1414
1416
1417
1418 if ( !driver->no_long_family_names )
1419 {
1420 /* Prepend the foundry name plus a space to the family name. */
1421 /* There are many fonts just called `Fixed' which look */
1422 /* completely different, and which have nothing to do with each */
1423 /* other. When selecting `Fixed' in KDE or Gnome one gets */
1424 /* results that appear rather random, the style changes often if */
1425 /* one changes the size and one cannot select some fonts at all. */
1426 /* */
1427 /* We also check whether we have `wide' characters; all put */
1428 /* together, we get family names like `Sony Fixed' or `Misc */
1429 /* Fixed Wide'. */
1430
1431 PCF_Property foundry_prop, point_size_prop, average_width_prop;
1432
1433 int l = ft_strlen( prop->value.atom ) + 1;
1434 int wide = 0;
1435
1436
1437 foundry_prop = pcf_find_property( face, "FOUNDRY" );
1438 point_size_prop = pcf_find_property( face, "POINT_SIZE" );
1439 average_width_prop = pcf_find_property( face, "AVERAGE_WIDTH" );
1440
1441 if ( point_size_prop && average_width_prop )
1442 {
1443 if ( average_width_prop->value.l >= point_size_prop->value.l )
1444 {
1445 /* This font is at least square shaped or even wider */
1446 wide = 1;
1447 l += ft_strlen( " Wide" );
1448 }
1449 }
1450
1451 if ( foundry_prop && foundry_prop->isString )
1452 {
1453 l += ft_strlen( foundry_prop->value.atom ) + 1;
1454
1455 if ( FT_NEW_ARRAY( root->family_name, l ) )
1456 goto Exit;
1457
1458 ft_strcpy( root->family_name, foundry_prop->value.atom );
1459 ft_strcat( root->family_name, " " );
1460 ft_strcat( root->family_name, prop->value.atom );
1461 }
1462 else
1463 {
1464 if ( FT_NEW_ARRAY( root->family_name, l ) )
1465 goto Exit;
1466
1467 ft_strcpy( root->family_name, prop->value.atom );
1468 }
1469
1470 if ( wide )
1471 ft_strcat( root->family_name, " Wide" );
1472 }
1473 else
1474
1475#endif /* PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
1476
1477 {
1478 if ( FT_STRDUP( root->family_name, prop->value.atom ) )
1479 goto Exit;
1480 }
1481 }
1482 else
1483 root->family_name = NULL;
1484
1485 /*
1486 * Note: We shift all glyph indices by +1 since we must
1487 * respect the convention that glyph 0 always corresponds
1488 * to the `missing glyph'.
1489 *
1490 * This implies bumping the number of `available' glyphs by 1.
1491 */
1492 root->num_glyphs = (FT_Long)( face->nmetrics + 1 );
1493
1494 root->num_fixed_sizes = 1;
1495 if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
1496 goto Exit;
1497
1498 {
1499 FT_Bitmap_Size* bsize = root->available_sizes;
1500 FT_Short resolution_x = 0, resolution_y = 0;
1501
1502
1503 FT_ZERO( bsize );
1504
1505 /* for simplicity, we take absolute values of integer properties */
1506
1507#if 0
1508 bsize->height = face->accel.maxbounds.ascent << 6;
1509#endif
1510
1511#ifdef FT_DEBUG_LEVEL_TRACE
1512 if ( face->accel.fontAscent + face->accel.fontDescent < 0 )
1513 FT_TRACE0(( "pcf_load_font: negative height\n" ));
1514#endif
1515 if ( FT_ABS( face->accel.fontAscent +
1516 face->accel.fontDescent ) > 0x7FFF )
1517 {
1518 bsize->height = 0x7FFF;
1519 FT_TRACE0(( "pcf_load_font: clamping height to value %d\n",
1520 bsize->height ));
1521 }
1522 else
1523 bsize->height = FT_ABS( (FT_Short)( face->accel.fontAscent +
1524 face->accel.fontDescent ) );
1525
1526 prop = pcf_find_property( face, "AVERAGE_WIDTH" );
1527 if ( prop )
1528 {
1529#ifdef FT_DEBUG_LEVEL_TRACE
1530 if ( prop->value.l < 0 )
1531 FT_TRACE0(( "pcf_load_font: negative average width\n" ));
1532#endif
1533 if ( ( FT_ABS( prop->value.l ) > 0x7FFFL * 10 - 5 ) )
1534 {
1535 bsize->width = 0x7FFF;
1536 FT_TRACE0(( "pcf_load_font: clamping average width to value %d\n",
1537 bsize->width ));
1538 }
1539 else
1540 bsize->width = FT_ABS( (FT_Short)( ( prop->value.l + 5 ) / 10 ) );
1541 }
1542 else
1543 {
1544 /* this is a heuristical value */
1545 bsize->width = (FT_Short)FT_MulDiv( bsize->height, 2, 3 );
1546 }
1547
1548 prop = pcf_find_property( face, "POINT_SIZE" );
1549 if ( prop )
1550 {
1551#ifdef FT_DEBUG_LEVEL_TRACE
1552 if ( prop->value.l < 0 )
1553 FT_TRACE0(( "pcf_load_font: negative point size\n" ));
1554#endif
1555 /* convert from 722.7 decipoints to 72 points per inch */
1556 if ( FT_ABS( prop->value.l ) > 0x504C2L ) /* 0x7FFF * 72270/7200 */
1557 {
1558 bsize->size = 0x7FFF;
1559 FT_TRACE0(( "pcf_load_font: clamping point size to value %d\n",
1560 bsize->size ));
1561 }
1562 else
1563 bsize->size = FT_MulDiv( FT_ABS( prop->value.l ),
1564 64 * 7200,
1565 72270L );
1566 }
1567
1568 prop = pcf_find_property( face, "PIXEL_SIZE" );
1569 if ( prop )
1570 {
1571#ifdef FT_DEBUG_LEVEL_TRACE
1572 if ( prop->value.l < 0 )
1573 FT_TRACE0(( "pcf_load_font: negative pixel size\n" ));
1574#endif
1575 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1576 {
1577 bsize->y_ppem = 0x7FFF << 6;
1578 FT_TRACE0(( "pcf_load_font: clamping pixel size to value %d\n",
1579 bsize->y_ppem ));
1580 }
1581 else
1582 bsize->y_ppem = FT_ABS( (FT_Short)prop->value.l ) << 6;
1583 }
1584
1585 prop = pcf_find_property( face, "RESOLUTION_X" );
1586 if ( prop )
1587 {
1588#ifdef FT_DEBUG_LEVEL_TRACE
1589 if ( prop->value.l < 0 )
1590 FT_TRACE0(( "pcf_load_font: negative X resolution\n" ));
1591#endif
1592 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1593 {
1594 resolution_x = 0x7FFF;
1595 FT_TRACE0(( "pcf_load_font: clamping X resolution to value %d\n",
1596 resolution_x ));
1597 }
1598 else
1599 resolution_x = FT_ABS( (FT_Short)prop->value.l );
1600 }
1601
1602 prop = pcf_find_property( face, "RESOLUTION_Y" );
1603 if ( prop )
1604 {
1605#ifdef FT_DEBUG_LEVEL_TRACE
1606 if ( prop->value.l < 0 )
1607 FT_TRACE0(( "pcf_load_font: negative Y resolution\n" ));
1608#endif
1609 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1610 {
1611 resolution_y = 0x7FFF;
1612 FT_TRACE0(( "pcf_load_font: clamping Y resolution to value %d\n",
1613 resolution_y ));
1614 }
1615 else
1616 resolution_y = FT_ABS( (FT_Short)prop->value.l );
1617 }
1618
1619 if ( bsize->y_ppem == 0 )
1620 {
1621 bsize->y_ppem = bsize->size;
1622 if ( resolution_y )
1623 bsize->y_ppem = FT_MulDiv( bsize->y_ppem, resolution_y, 72 );
1624 }
1625 if ( resolution_x && resolution_y )
1626 bsize->x_ppem = FT_MulDiv( bsize->y_ppem,
1627 resolution_x,
1628 resolution_y );
1629 else
1630 bsize->x_ppem = bsize->y_ppem;
1631 }
1632
1633 /* set up charset */
1634 {
1635 PCF_Property charset_registry, charset_encoding;
1636
1637
1638 charset_registry = pcf_find_property( face, "CHARSET_REGISTRY" );
1639 charset_encoding = pcf_find_property( face, "CHARSET_ENCODING" );
1640
1641 if ( charset_registry && charset_registry->isString &&
1642 charset_encoding && charset_encoding->isString )
1643 {
1644 if ( FT_STRDUP( face->charset_encoding,
1645 charset_encoding->value.atom ) ||
1646 FT_STRDUP( face->charset_registry,
1647 charset_registry->value.atom ) )
1648 goto Exit;
1649 }
1650 }
1651 }
1652
1653 Exit:
1654 if ( error )
1655 {
1656 /* This is done to respect the behaviour of the original */
1657 /* PCF font driver. */
1658 error = FT_THROW( Invalid_File_Format );
1659 }
1660
1661 return error;
1662 }
r l[0]
Definition: byte_order.h:168
#define NULL
Definition: types.h:112
#define FT_FACE_FLAG_FIXED_SIZES
Definition: freetype.h:1239
#define FT_FACE_FLAG_FIXED_WIDTH
Definition: freetype.h:1240
#define FT_FACE_FLAG_FAST_GLYPHS
Definition: freetype.h:1245
#define FT_FACE_FLAG_HORIZONTAL
Definition: freetype.h:1242
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
Definition: ftcalc.c:416
return FT_Err_Ok
Definition: ftbbox.c:511
#define FT_TRACE0(varformat)
Definition: ftdebug.h:157
#define FT_THROW(e)
Definition: ftdebug.h:213
#define FT_NEW_ARRAY(ptr, count)
Definition: ftmemory.h:333
#define FT_STRDUP(dst, str)
Definition: ftmemory.h:364
#define FT_SET_ERROR(expression)
Definition: ftmemory.h:42
#define FT_ZERO(p)
Definition: ftmemory.h:237
#define FT_FACE(x)
Definition: ftobjs.h:630
#define FT_ABS(a)
Definition: ftobjs.h:74
#define FT_FACE_DRIVER(x)
Definition: ftobjs.h:634
#define ft_strcat
Definition: ftstdlib.h:85
#define ft_strlen
Definition: ftstdlib.h:88
#define ft_strcpy
Definition: ftstdlib.h:87
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
signed short FT_Short
Definition: fttypes.h:198
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
#define error(str)
Definition: mkdosfs.c:1605
static char memory[1024 *256]
Definition: process.c:116
struct @1669::@1670 driver
struct PCF_DriverRec_ * PCF_Driver
#define PCF_ACCELERATORS
Definition: pcf.h:226
#define PCF_BDF_ACCELERATORS
Definition: pcf.h:233
static FT_Error pcf_get_properties(FT_Stream stream, PCF_Face face)
Definition: pcfread.c:480
static FT_Error pcf_get_encodings(FT_Stream stream, PCF_Face face)
Definition: pcfread.c:937
static FT_Bool pcf_has_table_type(PCF_Table tables, FT_ULong ntables, FT_ULong type)
Definition: pcfread.c:412
static FT_Error pcf_get_bitmaps(FT_Stream stream, PCF_Face face)
Definition: pcfread.c:808
pcf_find_property(PCF_Face face, const FT_String *prop)
Definition: pcfread.c:458
static FT_Error pcf_get_accel(FT_Stream stream, PCF_Face face, FT_ULong type)
Definition: pcfread.c:1107
static FT_Error pcf_interpret_style(PCF_Face pcf)
Definition: pcfread.c:1223
static FT_Error pcf_read_TOC(FT_Stream stream, PCF_Face face)
Definition: pcfread.c:95
static FT_Error pcf_get_metrics(FT_Stream stream, PCF_Face face)
Definition: pcfread.c:679
static void Exit(void)
Definition: sock.c:1330
FT_Pos y_ppem
Definition: freetype.h:379
FT_Pos x_ppem
Definition: freetype.h:378
FT_Short width
Definition: freetype.h:374
FT_Short height
Definition: freetype.h:373
FT_String * atom
Definition: pcf.h:74
FT_Long l
Definition: pcf.h:75
union PCF_PropertyRec_::@4247 value
FT_Byte isString
Definition: pcf.h:70
Definition: parse.h:23

Referenced by PCF_Face_Init().