ReactOS  0.4.15-dev-2103-g9dff498
pfrload.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* pfrload.h */
4 /* */
5 /* FreeType PFR loader (specification). */
6 /* */
7 /* Copyright 2002-2018 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
15 /* */
16 /***************************************************************************/
17 
18 
19 #ifndef PFRLOAD_H_
20 #define PFRLOAD_H_
21 
22 #include "pfrobjs.h"
23 #include FT_INTERNAL_STREAM_H
24 
25 
27 
28  /* some size checks should be always done (mainly to prevent */
29  /* excessive allocation for malformed data), ... */
30 #define PFR_CHECK_SIZE( x ) do \
31  { \
32  if ( p + (x) > limit ) \
33  goto Too_Short; \
34  } while ( 0 )
35 
36  /* ... and some only if intensive checking is explicitly requested */
37 #ifdef PFR_CONFIG_NO_CHECKS
38 #define PFR_CHECK( x ) do { } while ( 0 )
39 #else
40 #define PFR_CHECK PFR_CHECK_SIZE
41 #endif
42 
43 #define PFR_NEXT_BYTE( p ) FT_NEXT_BYTE( p )
44 #define PFR_NEXT_INT8( p ) FT_NEXT_CHAR( p )
45 #define PFR_NEXT_SHORT( p ) FT_NEXT_SHORT( p )
46 #define PFR_NEXT_USHORT( p ) FT_NEXT_USHORT( p )
47 #define PFR_NEXT_LONG( p ) FT_NEXT_OFF3( p )
48 #define PFR_NEXT_ULONG( p ) FT_NEXT_UOFF3( p )
49 
50 
51  /* handling extra items */
52 
53  typedef FT_Error
55  FT_Byte* limit,
56  FT_Pointer data );
57 
58  typedef struct PFR_ExtraItemRec_
59  {
62 
64 
65  typedef const struct PFR_ExtraItemRec_* PFR_ExtraItem;
66 
67 
70  FT_Byte* limit );
71 
74  FT_Byte* limit,
75  PFR_ExtraItem item_list,
76  FT_Pointer item_data );
77 
78 
79  /* load a PFR header */
82  FT_Stream stream );
83 
84  /* check a PFR header */
85  FT_LOCAL( FT_Bool )
87 
88 
89  /* return number of logical fonts in this file */
92  FT_UInt32 log_section_offset,
93  FT_Long *acount );
94 
95  /* load a pfr logical font entry */
99  FT_UInt face_index,
100  FT_UInt32 section_offset,
101  FT_Bool size_increment );
102 
103 
104  /* load a physical font entry */
105  FT_LOCAL( FT_Error )
106  pfr_phy_font_load( PFR_PhyFont phy_font,
108  FT_UInt32 offset,
109  FT_UInt32 size );
110 
111  /* finalize a physical font */
112  FT_LOCAL( void )
113  pfr_phy_font_done( PFR_PhyFont phy_font,
114  FT_Memory memory );
115 
116  /* */
117 
119 
120 #endif /* PFRLOAD_H_ */
121 
122 
123 /* END */
FT_BEGIN_HEADER struct PFR_HeaderRec_ * PFR_Header
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
#define FT_END_HEADER
Definition: ftheader.h:54
pfr_phy_font_done(PFR_PhyFont phy_font, FT_Memory memory)
Definition: pfrload.c:778
pfr_extra_items_parse(FT_Byte **pp, FT_Byte *limit, PFR_ExtraItem item_list, FT_Pointer item_data)
Definition: pfrload.c:134
static char memory[1024 *256]
Definition: process.c:116
const struct PFR_ExtraItemRec_ * PFR_ExtraItem
Definition: pfrload.h:65
GLint limit
Definition: glext.h:10326
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
unsigned char FT_Byte
Definition: fttypes.h:154
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
#define FT_LOCAL(x)
Definition: ftconfig.h:387
pfr_header_check(PFR_Header header)
Definition: pfrload.c:261
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920
FT_Error(* PFR_ExtraItem_ParseFunc)(FT_Byte *p, FT_Byte *limit, FT_Pointer data)
Definition: pfrload.h:54
struct PFR_ExtraItemRec_ PFR_ExtraItemRec
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
pfr_header_load(PFR_Header header, FT_Stream stream)
Definition: pfrload.c:241
pfr_log_font_count(FT_Stream stream, FT_UInt32 log_section_offset, FT_Long *acount)
Definition: pfrload.c:289
Definition: parse.h:22
FT_UInt type
Definition: pfrload.h:60
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
PFR_ExtraItem_ParseFunc parser
Definition: pfrload.h:61
unsigned int FT_UInt
Definition: fttypes.h:231
pfr_extra_items_skip(FT_Byte **pp, FT_Byte *limit)
Definition: pfrload.c:126
pfr_log_font_load(PFR_LogFont log_font, FT_Stream stream, FT_UInt face_index, FT_UInt32 section_offset, FT_Bool size_increment)
Definition: pfrload.c:327
pfr_phy_font_load(PFR_PhyFont phy_font, FT_Stream stream, FT_UInt32 offset, FT_UInt32 size)
Definition: pfrload.c:822
GLfloat GLfloat p
Definition: glext.h:8902