ReactOS 0.4.16-dev-1067-ge98bba2
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_EncRec_
 
struct  PCF_AccelRec_
 
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_EncRec_ PCF_EncRec
 
typedef struct PCF_EncRec_PCF_Enc
 
typedef struct PCF_AccelRec_ PCF_AccelRec
 
typedef struct PCF_AccelRec_PCF_Accel
 
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 239 of file pcf.h.

â—† LSBFirst

#define LSBFirst   0

Definition at line 181 of file pcf.h.

â—† MSBFirst

#define MSBFirst   1

Definition at line 182 of file pcf.h.

â—† PCF_ACCEL_W_INKBOUNDS

#define PCF_ACCEL_W_INKBOUNDS   0x00000100UL

Definition at line 191 of file pcf.h.

â—† PCF_ACCELERATORS

#define PCF_ACCELERATORS   ( 1 << 1 )

Definition at line 230 of file pcf.h.

â—† PCF_BDF_ACCELERATORS

#define PCF_BDF_ACCELERATORS   ( 1 << 8 )

Definition at line 237 of file pcf.h.

â—† PCF_BDF_ENCODINGS

#define PCF_BDF_ENCODINGS   ( 1 << 5 )

Definition at line 234 of file pcf.h.

â—† PCF_BIT_MASK

#define PCF_BIT_MASK   ( 1 << 3 )

Definition at line 199 of file pcf.h.

â—† PCF_BIT_ORDER

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

Definition at line 204 of file pcf.h.

â—† PCF_BITMAPS

#define PCF_BITMAPS   ( 1 << 3 )

Definition at line 232 of file pcf.h.

â—† PCF_BYTE_MASK

#define PCF_BYTE_MASK   ( 1 << 2 )

Definition at line 198 of file pcf.h.

â—† PCF_BYTE_ORDER

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

Definition at line 202 of file pcf.h.

â—† PCF_COMPRESSED_METRICS

#define PCF_COMPRESSED_METRICS   0x00000100UL

Definition at line 192 of file pcf.h.

â—† PCF_DEFAULT_FORMAT

#define PCF_DEFAULT_FORMAT   0x00000000UL

Definition at line 189 of file pcf.h.

â—† PCF_FILE_VERSION

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

Definition at line 184 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:220
#define MSBFirst
Definition: pcf.h:182

Definition at line 223 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:197
#define PCF_BIT_MASK
Definition: pcf.h:199
#define PCF_SCAN_UNIT_MASK
Definition: pcf.h:200
#define PCF_BYTE_MASK
Definition: pcf.h:198

Definition at line 214 of file pcf.h.

â—† PCF_FORMAT_MASK

#define PCF_FORMAT_MASK   0xFFFFFF00UL

Definition at line 187 of file pcf.h.

â—† PCF_FORMAT_MATCH

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

Definition at line 194 of file pcf.h.

â—† PCF_GLYPH_NAMES

#define PCF_GLYPH_NAMES   ( 1 << 7 )

Definition at line 236 of file pcf.h.

â—† PCF_GLYPH_PAD

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

Definition at line 208 of file pcf.h.

â—† PCF_GLYPH_PAD_INDEX

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

Definition at line 206 of file pcf.h.

â—† PCF_GLYPH_PAD_MASK

#define PCF_GLYPH_PAD_MASK   ( 3 << 0 )

Definition at line 197 of file pcf.h.

â—† PCF_INDEX_TO_SIZE

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

Definition at line 221 of file pcf.h.

â—† PCF_INK_METRICS

#define PCF_INK_METRICS   ( 1 << 4 )

Definition at line 233 of file pcf.h.

â—† PCF_INKBOUNDS

#define PCF_INKBOUNDS   0x00000200UL

Definition at line 190 of file pcf.h.

â—† PCF_METRICS

#define PCF_METRICS   ( 1 << 2 )

Definition at line 231 of file pcf.h.

â—† PCF_PROPERTIES

#define PCF_PROPERTIES   ( 1 << 0 )

Definition at line 229 of file pcf.h.

â—† PCF_SCAN_UNIT

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

Definition at line 212 of file pcf.h.

â—† PCF_SCAN_UNIT_INDEX

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

Definition at line 210 of file pcf.h.

â—† PCF_SCAN_UNIT_MASK

#define PCF_SCAN_UNIT_MASK   ( 3 << 4 )

Definition at line 200 of file pcf.h.

â—† PCF_SIZE_TO_INDEX

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

Definition at line 220 of file pcf.h.

â—† PCF_SWIDTHS

#define PCF_SWIDTHS   ( 1 << 6 )

Definition at line 235 of file pcf.h.

Typedef Documentation

â—† PCF_Accel

â—† PCF_AccelRec

â—† PCF_Compressed_Metric

â—† PCF_Compressed_MetricRec

â—† PCF_Driver

â—† PCF_DriverRec

â—† PCF_Enc

â—† PCF_EncRec

â—† 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 1408 of file pcfread.c.

1411 {
1412 FT_Face root = FT_FACE( face );
1414 FT_Memory memory = FT_FACE( face )->memory;
1415 FT_Bool hasBDFAccelerators;
1416
1417
1419 if ( error )
1420 goto Exit;
1421
1422 root->num_faces = 1;
1423 root->face_index = 0;
1424
1425 /* If we are performing a simple font format check, exit immediately. */
1426 if ( face_index < 0 )
1427 return FT_Err_Ok;
1428
1430 if ( error )
1431 goto Exit;
1432
1433 /* Use the old accelerators if no BDF accelerators are in the file. */
1434 hasBDFAccelerators = pcf_has_table_type( face->toc.tables,
1435 face->toc.count,
1437 if ( !hasBDFAccelerators )
1438 {
1440 if ( error )
1441 goto Exit;
1442 }
1443
1444 /* metrics */
1446 if ( error )
1447 goto Exit;
1448
1449 /* bitmaps */
1451 if ( error )
1452 goto Exit;
1453
1454 /* encodings */
1456 if ( error )
1457 goto Exit;
1458
1459 /* BDF style accelerators (i.e. bounds based on encoded glyphs) */
1460 if ( hasBDFAccelerators )
1461 {
1463 if ( error )
1464 goto Exit;
1465 }
1466
1467 /* XXX: TO DO: inkmetrics and glyph_names are missing */
1468
1469 /* now construct the face object */
1470 {
1471 PCF_Property prop;
1472
1473
1474 root->face_flags |= FT_FACE_FLAG_FIXED_SIZES |
1476
1477 if ( face->accel.constantWidth )
1478 root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
1479
1481 goto Exit;
1482
1483 prop = pcf_find_property( face, "FAMILY_NAME" );
1484 if ( prop && prop->isString )
1485 {
1486
1487#ifdef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
1488
1490
1491
1492 if ( !driver->no_long_family_names )
1493 {
1494 /* Prepend the foundry name plus a space to the family name. */
1495 /* There are many fonts just called `Fixed' which look */
1496 /* completely different, and which have nothing to do with each */
1497 /* other. When selecting `Fixed' in KDE or Gnome one gets */
1498 /* results that appear rather random, the style changes often if */
1499 /* one changes the size and one cannot select some fonts at all. */
1500 /* */
1501 /* We also check whether we have `wide' characters; all put */
1502 /* together, we get family names like `Sony Fixed' or `Misc */
1503 /* Fixed Wide'. */
1504
1505 PCF_Property foundry_prop, point_size_prop, average_width_prop;
1506
1507 int l = ft_strlen( prop->value.atom ) + 1;
1508 int wide = 0;
1509
1510
1511 foundry_prop = pcf_find_property( face, "FOUNDRY" );
1512 point_size_prop = pcf_find_property( face, "POINT_SIZE" );
1513 average_width_prop = pcf_find_property( face, "AVERAGE_WIDTH" );
1514
1515 if ( point_size_prop && average_width_prop )
1516 {
1517 if ( average_width_prop->value.l >= point_size_prop->value.l )
1518 {
1519 /* This font is at least square shaped or even wider */
1520 wide = 1;
1521 l += ft_strlen( " Wide" );
1522 }
1523 }
1524
1525 if ( foundry_prop && foundry_prop->isString )
1526 {
1527 l += ft_strlen( foundry_prop->value.atom ) + 1;
1528
1529 if ( FT_NEW_ARRAY( root->family_name, l ) )
1530 goto Exit;
1531
1532 ft_strcpy( root->family_name, foundry_prop->value.atom );
1533 ft_strcat( root->family_name, " " );
1534 ft_strcat( root->family_name, prop->value.atom );
1535 }
1536 else
1537 {
1538 if ( FT_NEW_ARRAY( root->family_name, l ) )
1539 goto Exit;
1540
1541 ft_strcpy( root->family_name, prop->value.atom );
1542 }
1543
1544 if ( wide )
1545 ft_strcat( root->family_name, " Wide" );
1546 }
1547 else
1548
1549#endif /* PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
1550
1551 {
1552 if ( FT_STRDUP( root->family_name, prop->value.atom ) )
1553 goto Exit;
1554 }
1555 }
1556 else
1557 root->family_name = NULL;
1558
1559 root->num_glyphs = (FT_Long)face->nmetrics;
1560
1561 root->num_fixed_sizes = 1;
1562 if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
1563 goto Exit;
1564
1565 {
1566 FT_Bitmap_Size* bsize = root->available_sizes;
1567 FT_Short resolution_x = 0, resolution_y = 0;
1568
1569
1570 FT_ZERO( bsize );
1571
1572 /* for simplicity, we take absolute values of integer properties */
1573
1574#if 0
1575 bsize->height = face->accel.maxbounds.ascent << 6;
1576#endif
1577
1578#ifdef FT_DEBUG_LEVEL_TRACE
1579 if ( face->accel.fontAscent + face->accel.fontDescent < 0 )
1580 FT_TRACE0(( "pcf_load_font: negative height\n" ));
1581#endif
1582 if ( FT_ABS( face->accel.fontAscent +
1583 face->accel.fontDescent ) > 0x7FFF )
1584 {
1585 bsize->height = 0x7FFF;
1586 FT_TRACE0(( "pcf_load_font: clamping height to value %d\n",
1587 bsize->height ));
1588 }
1589 else
1590 bsize->height = FT_ABS( (FT_Short)( face->accel.fontAscent +
1591 face->accel.fontDescent ) );
1592
1593 prop = pcf_find_property( face, "AVERAGE_WIDTH" );
1594 if ( prop )
1595 {
1596#ifdef FT_DEBUG_LEVEL_TRACE
1597 if ( prop->value.l < 0 )
1598 FT_TRACE0(( "pcf_load_font: negative average width\n" ));
1599#endif
1600 if ( ( FT_ABS( prop->value.l ) > 0x7FFFL * 10 - 5 ) )
1601 {
1602 bsize->width = 0x7FFF;
1603 FT_TRACE0(( "pcf_load_font: clamping average width to value %d\n",
1604 bsize->width ));
1605 }
1606 else
1607 bsize->width = FT_ABS( (FT_Short)( ( prop->value.l + 5 ) / 10 ) );
1608 }
1609 else
1610 {
1611 /* this is a heuristical value */
1612 bsize->width = (FT_Short)FT_MulDiv( bsize->height, 2, 3 );
1613 }
1614
1615 prop = pcf_find_property( face, "POINT_SIZE" );
1616 if ( prop )
1617 {
1618#ifdef FT_DEBUG_LEVEL_TRACE
1619 if ( prop->value.l < 0 )
1620 FT_TRACE0(( "pcf_load_font: negative point size\n" ));
1621#endif
1622 /* convert from 722.7 decipoints to 72 points per inch */
1623 if ( FT_ABS( prop->value.l ) > 0x504C2L ) /* 0x7FFF * 72270/7200 */
1624 {
1625 bsize->size = 0x7FFF;
1626 FT_TRACE0(( "pcf_load_font: clamping point size to value %d\n",
1627 bsize->size ));
1628 }
1629 else
1630 bsize->size = FT_MulDiv( FT_ABS( prop->value.l ),
1631 64 * 7200,
1632 72270L );
1633 }
1634
1635 prop = pcf_find_property( face, "PIXEL_SIZE" );
1636 if ( prop )
1637 {
1638#ifdef FT_DEBUG_LEVEL_TRACE
1639 if ( prop->value.l < 0 )
1640 FT_TRACE0(( "pcf_load_font: negative pixel size\n" ));
1641#endif
1642 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1643 {
1644 bsize->y_ppem = 0x7FFF << 6;
1645 FT_TRACE0(( "pcf_load_font: clamping pixel size to value %d\n",
1646 bsize->y_ppem ));
1647 }
1648 else
1649 bsize->y_ppem = FT_ABS( (FT_Short)prop->value.l ) << 6;
1650 }
1651
1652 prop = pcf_find_property( face, "RESOLUTION_X" );
1653 if ( prop )
1654 {
1655#ifdef FT_DEBUG_LEVEL_TRACE
1656 if ( prop->value.l < 0 )
1657 FT_TRACE0(( "pcf_load_font: negative X resolution\n" ));
1658#endif
1659 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1660 {
1661 resolution_x = 0x7FFF;
1662 FT_TRACE0(( "pcf_load_font: clamping X resolution to value %d\n",
1663 resolution_x ));
1664 }
1665 else
1666 resolution_x = FT_ABS( (FT_Short)prop->value.l );
1667 }
1668
1669 prop = pcf_find_property( face, "RESOLUTION_Y" );
1670 if ( prop )
1671 {
1672#ifdef FT_DEBUG_LEVEL_TRACE
1673 if ( prop->value.l < 0 )
1674 FT_TRACE0(( "pcf_load_font: negative Y resolution\n" ));
1675#endif
1676 if ( FT_ABS( prop->value.l ) > 0x7FFF )
1677 {
1678 resolution_y = 0x7FFF;
1679 FT_TRACE0(( "pcf_load_font: clamping Y resolution to value %d\n",
1680 resolution_y ));
1681 }
1682 else
1683 resolution_y = FT_ABS( (FT_Short)prop->value.l );
1684 }
1685
1686 if ( bsize->y_ppem == 0 )
1687 {
1688 bsize->y_ppem = bsize->size;
1689 if ( resolution_y )
1690 bsize->y_ppem = FT_MulDiv( bsize->y_ppem, resolution_y, 72 );
1691 }
1692 if ( resolution_x && resolution_y )
1693 bsize->x_ppem = FT_MulDiv( bsize->y_ppem,
1694 resolution_x,
1695 resolution_y );
1696 else
1697 bsize->x_ppem = bsize->y_ppem;
1698 }
1699
1700 /* set up charset */
1701 {
1702 PCF_Property charset_registry, charset_encoding;
1703
1704
1705 charset_registry = pcf_find_property( face, "CHARSET_REGISTRY" );
1706 charset_encoding = pcf_find_property( face, "CHARSET_ENCODING" );
1707
1708 if ( charset_registry && charset_registry->isString &&
1709 charset_encoding && charset_encoding->isString )
1710 {
1711 if ( FT_STRDUP( face->charset_encoding,
1712 charset_encoding->value.atom ) ||
1713 FT_STRDUP( face->charset_registry,
1714 charset_registry->value.atom ) )
1715 goto Exit;
1716 }
1717 }
1718 }
1719
1720 Exit:
1721 if ( error )
1722 {
1723 /* This is done to respect the behaviour of the original */
1724 /* PCF font driver. */
1725 error = FT_THROW( Invalid_File_Format );
1726 }
1727
1728 return error;
1729 }
r l[0]
Definition: byte_order.h:168
#define NULL
Definition: types.h:112
#define FT_FACE_FLAG_FIXED_SIZES
Definition: freetype.h:1211
#define FT_FACE_FLAG_FIXED_WIDTH
Definition: freetype.h:1212
#define FT_FACE_FLAG_HORIZONTAL
Definition: freetype.h:1214
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
Definition: ftcalc.c:416
return FT_Err_Ok
Definition: ftbbox.c:527
#define FT_TRACE0(varformat)
Definition: ftdebug.h:185
#define FT_THROW(e)
Definition: ftdebug.h:241
#define FT_NEW_ARRAY(ptr, count)
Definition: ftmemory.h:332
#define FT_STRDUP(dst, str)
Definition: ftmemory.h:363
#define FT_SET_ERROR(expression)
Definition: ftmemory.h:42
#define FT_ZERO(p)
Definition: ftmemory.h:237
#define FT_FACE(x)
Definition: ftobjs.h:599
#define FT_ABS(a)
Definition: ftobjs.h:73
#define FT_FACE_DRIVER(x)
Definition: ftobjs.h:603
#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:65
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
int FT_Error
Definition: fttypes.h:299
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
if(dx< 0)
Definition: linetemp.h:194
#define error(str)
Definition: mkdosfs.c:1605
static char memory[1024 *256]
Definition: process.c:116
struct @1717::@1718 driver
struct PCF_DriverRec_ * PCF_Driver
#define PCF_ACCELERATORS
Definition: pcf.h:230
#define PCF_BDF_ACCELERATORS
Definition: pcf.h:237
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:974
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:1182
static FT_Error pcf_interpret_style(PCF_Face pcf)
Definition: pcfread.c:1298
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_::@4379 value
FT_Byte isString
Definition: pcf.h:70
Definition: parse.h:23

Referenced by PCF_Face_Init().