contrib/OWB: add correct SDL dependency, fix compilers used
[AROS-Contrib.git] / freetype1 / contrib / ftos2 / ifi / 32fdstrc.h
blob0db1d72d81cff2e2fd74bf356fe4d1cdb6e43903
1 /*********************************************************************\
2 * Module Name: 32FDSTRC.H
4 * OS/2 Intelligent Font Interface
6 * Copyright (c) 1989,1994 IBM Corporation
7 * Copyright (c) 1989 Microsoft Corporation
9 \*********************************************************************/
10 #ifndef __32FDSTRC_H__
11 #define __32FDSTRC_H__
13 #define FACESIZE 32
14 #define GLYPHNAMESIZE 16
16 /* Error codes defined to be returned by IFI */
17 /* NOTE: The actual values are subject to change */
19 /*#define PMERR_BUFFER_TOO_SMALL 23003L*/
20 #define PMERR_FACENAME_NOT_FOUND 23004L
21 #define PMERR_FD_ALREADY_INSTALLED 23005L
22 #define PMERR_INVALID_CONTEXTINFO 23006L
23 #define PMERR_NOT_A_FONT_FILE 23007L
24 #define PMERR_INVALID_FONT_SELECTION 23008L
25 #define PMERR_INVALID_FORMAT 23009L
26 #define PMERR_BUSY_HFC 230010L
27 #define PMERR_INVALID_HFC 230011L
28 #define PMERR_INVALID_INDEX 230012L
29 #define PMERR_INVALID_QUERY_TYPE 230013L
30 #define PMERR_CONTEXT_NOT_SET 230014L
32 /* Query faces subfunction */
33 #define FD_QUERY_CONTEXTMETRICS 1L
34 #define FD_QUERY_ABC_WIDTHS 2L
35 #define FD_QUERY_KERNINGPAIRS 3L
37 /* Query char subfunction */
38 #define FD_QUERY_CHARIMAGE 1L
39 #define FD_QUERY_OUTLINE 2L
40 #define FD_QUERY_BITMAPMETRICS 4L
42 #define FD_CHARATTR_ALIGNED_8 0x00000001
43 #define FD_CHARATTR_ALIGNED_16 0x00000002
44 #define FD_CHARATTR_ALIGNED_32 0x00000004
45 #define FD_CHARATTR_NO_CACHE 0x00000010
47 typedef struct _ABC_TRIPLETS /*abc*/
49 LONG lA;
50 ULONG ulB;
51 LONG lC;
52 } ABC_TRIPLETS;
53 typedef ABC_TRIPLETS *PABC_TRIPLETS;
55 // THIS STRUCTURE NOW RESIDES IN PMDDI.H FOR CRUISER WORLD
56 // BUT IFI FONT DRIVER DOES NOT INCLUDE PMDDI.H
58 #ifndef INCL_IFI
59 typedef struct _POINTFX { /* ptfx */
60 FIXED x;
61 FIXED y;
62 } POINTFX;
63 typedef POINTFX *PPOINTFX;
64 #endif
66 typedef struct _BITMAPMETRICS /* bmm */
68 SIZEL sizlExtent;
69 ULONG cyAscent;
70 #ifdef OLD_DRIVER
71 POINTFX *ppfxOrigin; /* Return character origin. */
72 #else
73 POINTFX pfxOrigin; /* Return character origin. */
74 #endif
75 } BITMAPMETRICS;
76 typedef BITMAPMETRICS *PBITMAPMETRICS;
78 typedef struct _MAT2 /* mat */
80 FIXED eM11;
81 FIXED eM12;
82 FIXED eM21;
83 FIXED eM22;
84 } MAT2;
86 typedef struct _FD_KERNINGPAIRS /* krnpr */
88 GLYPH giFirst;
89 GLYPH giSecond;
90 LONG eKerningAmount;
91 } FD_KERNINGPAIRS;
93 typedef struct _CONTEXTINFO /* ci */
95 ULONG cb; /* Length in bytes of this structure. */
96 ULONG fl; /* Flags. */
97 SIZEL sizlPPM; /* Device resolution in pels/meter. */
98 POINTFX pfxSpot; /* Spot size in pels. */
99 MAT2 matXform; /* Notional to Device transform. */
100 } CONTEXTINFO;
101 typedef CONTEXTINFO *PCONTEXTINFO;
103 typedef struct _CHARATTR /* ca */
105 ULONG cb;
106 ULONG iQuery; /* Query type. */
107 GLYPH gi; /* Glyph index in font. */
108 PBYTE pBuffer; /* Bitmap buffer. */
109 ULONG cbLen; /* Size of buffer in bytes. */
110 } CHARATTR;
111 typedef CHARATTR *PCHARATTR;
113 typedef struct _CHARATTR2 /* ca2 */
115 ULONG cb;
116 ULONG iQuery; /* Query type. */
117 GLYPH gi; /* Glyph index in font. */
118 PBYTE pBuffer; /* Bitmap buffer. */
119 ULONG cbLen; /* Size of buffer in bytes. */
120 ULONG fl; /* Flags */
121 } CHARATTR2;
122 typedef CHARATTR2 *PCHARATTR2;
124 typedef struct _CONTEXTMETRICS
126 SIZEL sizlMax;
127 ULONG cyMaxAscent;
128 ULONG cyMaxDescent;
129 ULONG cxTotal;
130 ULONG cGlyphs;
131 } CONTEXTMETRICS;
132 typedef CONTEXTMETRICS * PCONTEXTMETRICS;
134 typedef struct _POLYGONHEADER {
135 ULONG cb;
136 ULONG iType; /* Must be FD_POLYGON_TYPE */
137 } POLYGONHEADER;
138 typedef POLYGONHEADER *PPOLYGONHEADER;
140 typedef struct _PRIMLINE {
141 ULONG iType; /* Must be FD_PRIM_LINE */
142 POINTFX pte;
143 } PRIMLINE;
144 typedef PRIMLINE *PPRIMLINE;
146 typedef struct _PRIMSPLINE {
147 ULONG iType; /* Must be FD_PRIM_SPLINE */
148 POINTFX pte[3];
149 } PRIMSPLINE;
150 typedef PRIMSPLINE *PPRIMSPLINE;
153 * The names of these were changed to avoid conflict with PRIM_LINE
154 * which is defined ion some other header file.
156 #define FD_POLYGON_TYPE 24
157 #define FD_PRIM_LINE 1
158 #define FD_PRIM_SPLINE 3
160 #endif