1/****************************************************************************
2 *
3 * pfrobjs.h
4 *
5 * FreeType PFR object methods (specification).
6 *
7 * Copyright (C) 2002-2023 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 PFROBJS_H_
20#define PFROBJS_H_
21
22#include "pfrtypes.h"
23
24
25FT_BEGIN_HEADER
26
27 typedef struct PFR_FaceRec_* PFR_Face;
28
29 typedef struct PFR_SizeRec_* PFR_Size;
30
31 typedef struct PFR_SlotRec_* PFR_Slot;
32
33
34 typedef struct PFR_FaceRec_
35 {
36 FT_FaceRec root;
37 PFR_HeaderRec header;
38 PFR_LogFontRec log_font;
39 PFR_PhyFontRec phy_font;
40
41 } PFR_FaceRec;
42
43
44 typedef struct PFR_SizeRec_
45 {
46 FT_SizeRec root;
47
48 } PFR_SizeRec;
49
50
51 typedef struct PFR_SlotRec_
52 {
53 FT_GlyphSlotRec root;
54 PFR_GlyphRec glyph;
55
56 } PFR_SlotRec;
57
58
59 FT_LOCAL( FT_Error )
60 pfr_face_init( FT_Stream stream,
61 FT_Face face, /* PFR_Face */
62 FT_Int face_index,
63 FT_Int num_params,
64 FT_Parameter* params );
65
66 FT_LOCAL( void )
67 pfr_face_done( FT_Face face ); /* PFR_Face */
68
69
70 FT_LOCAL( FT_Error )
71 pfr_face_get_kerning( FT_Face face, /* PFR_Face */
72 FT_UInt glyph1,
73 FT_UInt glyph2,
74 FT_Vector* kerning );
75
76
77 FT_LOCAL( FT_Error )
78 pfr_slot_init( FT_GlyphSlot slot ); /* PFR_Slot */
79
80 FT_LOCAL( void )
81 pfr_slot_done( FT_GlyphSlot slot ); /* PFR_Slot */
82
83
84 FT_LOCAL( FT_Error )
85 pfr_slot_load( FT_GlyphSlot slot, /* PFR_Slot */
86 FT_Size size, /* PFR_Size */
87 FT_UInt gindex,
88 FT_Int32 load_flags );
89
90
91FT_END_HEADER
92
93#endif /* PFROBJS_H_ */
94
95
96/* END */
97