blob: f6aa8b44cc6ead15cf75db4699c0244429c199a6 [file] [log] [blame]
Werner Lembergfadb6be2002-04-20 05:38:33 +00001/***************************************************************************/
2/* */
3/* pfrobjs.h */
4/* */
5/* FreeType PFR object methods (specification). */
6/* */
Werner Lembergb78c5542004-05-08 07:00:23 +00007/* Copyright 2002, 2003, 2004 by */
Werner Lembergfadb6be2002-04-20 05:38:33 +00008/* 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__
David Turner609e28c2002-04-19 15:13:47 +000021
22#include "pfrtypes.h"
23
Werner Lembergfadb6be2002-04-20 05:38:33 +000024
David Turner609e28c2002-04-19 15:13:47 +000025FT_BEGIN_HEADER
26
Werner Lembergfadb6be2002-04-20 05:38:33 +000027 typedef struct PFR_FaceRec_* PFR_Face;
David Turner3249c622002-10-31 08:30:19 +000028
Werner Lembergfadb6be2002-04-20 05:38:33 +000029 typedef struct PFR_SizeRec_* PFR_Size;
David Turner3249c622002-10-31 08:30:19 +000030
Werner Lembergfadb6be2002-04-20 05:38:33 +000031 typedef struct PFR_SlotRec_* PFR_Slot;
David Turner609e28c2002-04-19 15:13:47 +000032
33
Werner Lembergfadb6be2002-04-20 05:38:33 +000034 typedef struct PFR_FaceRec_
David Turner609e28c2002-04-19 15:13:47 +000035 {
36 FT_FaceRec root;
37 PFR_HeaderRec header;
38 PFR_LogFontRec log_font;
39 PFR_PhyFontRec phy_font;
40
41 } PFR_FaceRec;
42
43
Werner Lembergfadb6be2002-04-20 05:38:33 +000044 typedef struct PFR_SizeRec_
David Turner609e28c2002-04-19 15:13:47 +000045 {
Werner Lembergfadb6be2002-04-20 05:38:33 +000046 FT_SizeRec root;
David Turner3249c622002-10-31 08:30:19 +000047
David Turner609e28c2002-04-19 15:13:47 +000048 } PFR_SizeRec;
49
50
Werner Lembergfadb6be2002-04-20 05:38:33 +000051 typedef struct PFR_SlotRec_
David Turner609e28c2002-04-19 15:13:47 +000052 {
53 FT_GlyphSlotRec root;
54 PFR_GlyphRec glyph;
David Turner3249c622002-10-31 08:30:19 +000055
David Turner609e28c2002-04-19 15:13:47 +000056 } PFR_SlotRec;
57
58
59 FT_LOCAL( FT_Error )
Werner Lemberg68e9f922002-09-27 11:09:23 +000060 pfr_face_init( FT_Stream stream,
Werner Lembergb78c5542004-05-08 07:00:23 +000061 FT_Face face, /* PFR_Face */
Werner Lemberg68e9f922002-09-27 11:09:23 +000062 FT_Int face_index,
63 FT_Int num_params,
64 FT_Parameter* params );
David Turner609e28c2002-04-19 15:13:47 +000065
David Turner609e28c2002-04-19 15:13:47 +000066 FT_LOCAL( void )
Werner Lembergb78c5542004-05-08 07:00:23 +000067 pfr_face_done( FT_Face face ); /* PFR_Face */
David Turner609e28c2002-04-19 15:13:47 +000068
69
Werner Lembergb78c5542004-05-08 07:00:23 +000070 FT_LOCAL( FT_Error )
71 pfr_face_get_kerning( FT_Face face, /* PFR_Face */
Werner Lemberg319c00d2003-04-23 19:48:24 +000072 FT_UInt glyph1,
73 FT_UInt glyph2,
74 FT_Vector* kerning );
David Turner38f8e892002-06-21 07:33:23 +000075
76
77 FT_LOCAL( FT_Error )
Werner Lembergb78c5542004-05-08 07:00:23 +000078 pfr_slot_init( FT_GlyphSlot slot ); /* PFR_Slot */
David Turner609e28c2002-04-19 15:13:47 +000079
David Turner609e28c2002-04-19 15:13:47 +000080 FT_LOCAL( void )
Werner Lembergb78c5542004-05-08 07:00:23 +000081 pfr_slot_done( FT_GlyphSlot slot ); /* PFR_Slot */
David Turner609e28c2002-04-19 15:13:47 +000082
83
84 FT_LOCAL( FT_Error )
Werner Lembergb78c5542004-05-08 07:00:23 +000085 pfr_slot_load( FT_GlyphSlot slot, /* PFR_Slot */
86 FT_Size size, /* PFR_Size */
87 FT_UInt gindex,
88 FT_Int32 load_flags );
David Turner609e28c2002-04-19 15:13:47 +000089
90
91FT_END_HEADER
92
Werner Lembergfadb6be2002-04-20 05:38:33 +000093#endif /* __PFROBJS_H__ */
Werner Lembergeacb9302002-10-07 10:12:43 +000094
95
96/* END */