ReactOS 0.4.15-dev-7674-gc0b4db1
afmodule.c
Go to the documentation of this file.
1/***************************************************************************/
2/* */
3/* afmodule.c */
4/* */
5/* Auto-fitter module implementation (body). */
6/* */
7/* Copyright 2003-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#include "afglobal.h"
20#include "afmodule.h"
21#include "afloader.h"
22#include "aferrors.h"
23#include "afpic.h"
24
25#ifdef FT_DEBUG_AUTOFIT
26
27#ifndef FT_MAKE_OPTION_SINGLE_OBJECT
28
29#ifdef __cplusplus
30 extern "C" {
31#endif
32 extern void
33 af_glyph_hints_dump_segments( AF_GlyphHints hints,
34 FT_Bool to_stdout );
35 extern void
36 af_glyph_hints_dump_points( AF_GlyphHints hints,
37 FT_Bool to_stdout );
38 extern void
39 af_glyph_hints_dump_edges( AF_GlyphHints hints,
40 FT_Bool to_stdout );
41#ifdef __cplusplus
42 }
43#endif
44
45#endif
46
47 int _af_debug_disable_horz_hints;
48 int _af_debug_disable_vert_hints;
49 int _af_debug_disable_blue_hints;
50
51 /* we use a global object instead of a local one for debugging */
52 AF_GlyphHintsRec _af_debug_hints_rec[1];
53
54 void* _af_debug_hints = _af_debug_hints_rec;
55#endif
56
57#include FT_INTERNAL_OBJECTS_H
58#include FT_INTERNAL_DEBUG_H
59#include FT_DRIVER_H
60#include FT_SERVICE_PROPERTIES_H
61
62
63 /*************************************************************************/
64 /* */
65 /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
66 /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
67 /* messages during execution. */
68 /* */
69#undef FT_COMPONENT
70#define FT_COMPONENT trace_afmodule
71
72
73 static FT_Error
75 AF_FaceGlobals* aglobals,
77 {
79 AF_FaceGlobals globals;
80
81
82 if ( !face )
83 return FT_THROW( Invalid_Face_Handle );
84
85 globals = (AF_FaceGlobals)face->autohint.data;
86 if ( !globals )
87 {
88 /* trigger computation of the global style data */
89 /* in case it hasn't been done yet */
90 error = af_face_globals_new( face, &globals, module );
91 if ( !error )
92 {
93 face->autohint.data =
94 (FT_Pointer)globals;
95 face->autohint.finalizer =
97 }
98 }
99
100 if ( !error )
101 *aglobals = globals;
102
103 return error;
104 }
105
106
107#ifdef FT_CONFIG_OPTION_PIC
108
109#undef AF_SCRIPT_CLASSES_GET
110#define AF_SCRIPT_CLASSES_GET \
111 ( GET_PIC( ft_module->library )->af_script_classes )
112
113#undef AF_STYLE_CLASSES_GET
114#define AF_STYLE_CLASSES_GET \
115 ( GET_PIC( ft_module->library )->af_style_classes )
116
117#endif
118
119
120 static FT_Error
122 const char* property_name,
123 const void* value,
124 FT_Bool value_is_string )
125 {
127 AF_Module module = (AF_Module)ft_module;
128
129#ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
130 FT_UNUSED( value_is_string );
131#endif
132
133
134 if ( !ft_strcmp( property_name, "fallback-script" ) )
135 {
136 FT_UInt* fallback_script;
137 FT_UInt ss;
138
139
140#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
141 if ( value_is_string )
142 return FT_THROW( Invalid_Argument );
143#endif
144
145 fallback_script = (FT_UInt*)value;
146
147 /* We translate the fallback script to a fallback style that uses */
148 /* `fallback-script' as its script and `AF_COVERAGE_NONE' as its */
149 /* coverage value. */
150 for ( ss = 0; AF_STYLE_CLASSES_GET[ss]; ss++ )
151 {
153
154
155 if ( (FT_UInt)style_class->script == *fallback_script &&
156 style_class->coverage == AF_COVERAGE_DEFAULT )
157 {
158 module->fallback_style = ss;
159 break;
160 }
161 }
162
163 if ( !AF_STYLE_CLASSES_GET[ss] )
164 {
165 FT_TRACE0(( "af_property_set: Invalid value %d for property `%s'\n",
166 fallback_script, property_name ));
167 return FT_THROW( Invalid_Argument );
168 }
169
170 return error;
171 }
172 else if ( !ft_strcmp( property_name, "default-script" ) )
173 {
174 FT_UInt* default_script;
175
176
177#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
178 if ( value_is_string )
179 return FT_THROW( Invalid_Argument );
180#endif
181
182 default_script = (FT_UInt*)value;
183
184 module->default_script = *default_script;
185
186 return error;
187 }
188 else if ( !ft_strcmp( property_name, "increase-x-height" ) )
189 {
191 AF_FaceGlobals globals;
192
193
194#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
195 if ( value_is_string )
196 return FT_THROW( Invalid_Argument );
197#endif
198
200
201 error = af_property_get_face_globals( prop->face, &globals, module );
202 if ( !error )
203 globals->increase_x_height = prop->limit;
204
205 return error;
206 }
207#ifdef AF_CONFIG_OPTION_USE_WARPER
208 else if ( !ft_strcmp( property_name, "warping" ) )
209 {
210#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
211 if ( value_is_string )
212 {
213 const char* s = (const char*)value;
214 long w = ft_strtol( s, NULL, 10 );
215
216
217 if ( w == 0 )
218 module->warping = 0;
219 else if ( w == 1 )
220 module->warping = 1;
221 else
222 return FT_THROW( Invalid_Argument );
223 }
224 else
225#endif
226 {
227 FT_Bool* warping = (FT_Bool*)value;
228
229
230 module->warping = *warping;
231 }
232
233 return error;
234 }
235#endif /* AF_CONFIG_OPTION_USE_WARPER */
236 else if ( !ft_strcmp( property_name, "darkening-parameters" ) )
237 {
238 FT_Int* darken_params;
239 FT_Int x1, y1, x2, y2, x3, y3, x4, y4;
240
241#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
242 FT_Int dp[8];
243
244
245 if ( value_is_string )
246 {
247 const char* s = (const char*)value;
248 char* ep;
249 int i;
250
251
252 /* eight comma-separated numbers */
253 for ( i = 0; i < 7; i++ )
254 {
255 dp[i] = (FT_Int)ft_strtol( s, &ep, 10 );
256 if ( *ep != ',' || s == ep )
257 return FT_THROW( Invalid_Argument );
258
259 s = ep + 1;
260 }
261
262 dp[7] = (FT_Int)ft_strtol( s, &ep, 10 );
263 if ( !( *ep == '\0' || *ep == ' ' ) || s == ep )
264 return FT_THROW( Invalid_Argument );
265
266 darken_params = dp;
267 }
268 else
269#endif
270 darken_params = (FT_Int*)value;
271
272 x1 = darken_params[0];
273 y1 = darken_params[1];
274 x2 = darken_params[2];
275 y2 = darken_params[3];
276 x3 = darken_params[4];
277 y3 = darken_params[5];
278 x4 = darken_params[6];
279 y4 = darken_params[7];
280
281 if ( x1 < 0 || x2 < 0 || x3 < 0 || x4 < 0 ||
282 y1 < 0 || y2 < 0 || y3 < 0 || y4 < 0 ||
283 x1 > x2 || x2 > x3 || x3 > x4 ||
284 y1 > 500 || y2 > 500 || y3 > 500 || y4 > 500 )
285 return FT_THROW( Invalid_Argument );
286
287 module->darken_params[0] = x1;
288 module->darken_params[1] = y1;
289 module->darken_params[2] = x2;
290 module->darken_params[3] = y2;
291 module->darken_params[4] = x3;
292 module->darken_params[5] = y3;
293 module->darken_params[6] = x4;
294 module->darken_params[7] = y4;
295
296 return error;
297 }
298 else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
299 {
300#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
301 if ( value_is_string )
302 {
303 const char* s = (const char*)value;
304 long nsd = ft_strtol( s, NULL, 10 );
305
306
307 if ( !nsd )
308 module->no_stem_darkening = FALSE;
309 else
310 module->no_stem_darkening = TRUE;
311 }
312 else
313#endif
314 {
315 FT_Bool* no_stem_darkening = (FT_Bool*)value;
316
317
318 module->no_stem_darkening = *no_stem_darkening;
319 }
320
321 return error;
322 }
323
324 FT_TRACE0(( "af_property_set: missing property `%s'\n",
325 property_name ));
326 return FT_THROW( Missing_Property );
327 }
328
329
330 static FT_Error
332 const char* property_name,
333 void* value )
334 {
336 AF_Module module = (AF_Module)ft_module;
337 FT_UInt fallback_style = module->fallback_style;
338 FT_UInt default_script = module->default_script;
339#ifdef AF_CONFIG_OPTION_USE_WARPER
340 FT_Bool warping = module->warping;
341#endif
342
343
344 if ( !ft_strcmp( property_name, "glyph-to-script-map" ) )
345 {
347 AF_FaceGlobals globals;
348
349
350 error = af_property_get_face_globals( prop->face, &globals, module );
351 if ( !error )
352 prop->map = globals->glyph_styles;
353
354 return error;
355 }
356 else if ( !ft_strcmp( property_name, "fallback-script" ) )
357 {
359
360 AF_StyleClass style_class = AF_STYLE_CLASSES_GET[fallback_style];
361
362
363 *val = style_class->script;
364
365 return error;
366 }
367 else if ( !ft_strcmp( property_name, "default-script" ) )
368 {
370
371
372 *val = default_script;
373
374 return error;
375 }
376 else if ( !ft_strcmp( property_name, "increase-x-height" ) )
377 {
379 AF_FaceGlobals globals;
380
381
382 error = af_property_get_face_globals( prop->face, &globals, module );
383 if ( !error )
384 prop->limit = globals->increase_x_height;
385
386 return error;
387 }
388#ifdef AF_CONFIG_OPTION_USE_WARPER
389 else if ( !ft_strcmp( property_name, "warping" ) )
390 {
392
393
394 *val = warping;
395
396 return error;
397 }
398#endif /* AF_CONFIG_OPTION_USE_WARPER */
399 else if ( !ft_strcmp( property_name, "darkening-parameters" ) )
400 {
401 FT_Int* darken_params = module->darken_params;
402 FT_Int* val = (FT_Int*)value;
403
404
405 val[0] = darken_params[0];
406 val[1] = darken_params[1];
407 val[2] = darken_params[2];
408 val[3] = darken_params[3];
409 val[4] = darken_params[4];
410 val[5] = darken_params[5];
411 val[6] = darken_params[6];
412 val[7] = darken_params[7];
413
414 return error;
415 }
416 else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
417 {
418 FT_Bool no_stem_darkening = module->no_stem_darkening;
420
421
422 *val = no_stem_darkening;
423
424 return error;
425 }
426
427 FT_TRACE0(( "af_property_get: missing property `%s'\n",
428 property_name ));
429 return FT_THROW( Missing_Property );
430 }
431
432
434 af_service_properties,
435
436 (FT_Properties_SetFunc)af_property_set, /* set_property */
437 (FT_Properties_GetFunc)af_property_get ) /* get_property */
438
439
441 af_services,
442
444
445
448 const char* module_interface )
449 {
450 /* AF_SERVICES_GET dereferences `library' in PIC mode */
451#ifdef FT_CONFIG_OPTION_PIC
453
454
455 if ( !module )
456 return NULL;
457 library = module->library;
458 if ( !library )
459 return NULL;
460#else
461 FT_UNUSED( module );
462#endif
463
465 }
466
467
469 af_autofitter_init( FT_Module ft_module ) /* AF_Module */
470 {
471 AF_Module module = (AF_Module)ft_module;
472
473
474 module->fallback_style = AF_STYLE_FALLBACK;
475 module->default_script = AF_SCRIPT_DEFAULT;
476#ifdef AF_CONFIG_OPTION_USE_WARPER
477 module->warping = 0;
478#endif
479 module->no_stem_darkening = TRUE;
480
489
490 return FT_Err_Ok;
491 }
492
493
494 FT_CALLBACK_DEF( void )
495 af_autofitter_done( FT_Module ft_module ) /* AF_Module */
496 {
497 FT_UNUSED( ft_module );
498
499#ifdef FT_DEBUG_AUTOFIT
500 if ( _af_debug_hints_rec->memory )
501 af_glyph_hints_done( _af_debug_hints_rec );
502#endif
503 }
504
505
510 FT_UInt glyph_index,
511 FT_Int32 load_flags )
512 {
514 FT_Memory memory = module->root.library->memory;
515
516#ifdef FT_DEBUG_AUTOFIT
517
518 /* in debug mode, we use a global object that survives this routine */
519
520 AF_GlyphHints hints = _af_debug_hints_rec;
521 AF_LoaderRec loader[1];
522
523 FT_UNUSED( size );
524
525
526 if ( hints->memory )
528
530 af_loader_init( loader, hints );
531
532 error = af_loader_load_glyph( loader, module, slot->face,
533 glyph_index, load_flags );
534
535#ifdef FT_DEBUG_LEVEL_TRACE
536 if ( ft_trace_levels[FT_COMPONENT] )
537 {
538#endif
539 af_glyph_hints_dump_points( hints, 0 );
540 af_glyph_hints_dump_segments( hints, 0 );
541 af_glyph_hints_dump_edges( hints, 0 );
542#ifdef FT_DEBUG_LEVEL_TRACE
543 }
544#endif
545
546 af_loader_done( loader );
547
548 return error;
549
550#else /* !FT_DEBUG_AUTOFIT */
551
552#ifdef __REACTOS__
554 AF_LoaderRec *loader = malloc(sizeof(AF_LoaderRec));
555 if (!hints || !loader)
556 {
557 error = FT_Err_Out_Of_Memory;
558 goto Exit;
559 }
560#else
562 AF_LoaderRec loader[1];
563#endif
564
565 FT_UNUSED( size );
566
567
569 af_loader_init( loader, hints );
570
571 error = af_loader_load_glyph( loader, module, slot->face,
572 glyph_index, load_flags );
573
574 af_loader_done( loader );
576
577#ifdef __REACTOS__
578Exit:
579 free(hints);
580 free(loader);
581#endif
582
583 return error;
584
585#endif /* !FT_DEBUG_AUTOFIT */
586 }
587
588
590 af_autofitter_interface,
591
592 NULL, /* reset_face */
593 NULL, /* get_global_hints */
594 NULL, /* done_global_hints */
596
597
599 autofit_module_class,
600
602 sizeof ( AF_ModuleRec ),
603
604 "autofitter",
605 0x10000L, /* version 1.0 of the autofitter */
606 0x20000L, /* requires FreeType 2.0 or above */
607
608 (const void*)&AF_INTERFACE_GET,
609
612 (FT_Module_Requester) af_get_interface /* get_interface */
613 )
614
615
616/* END */
af_face_globals_new(FT_Face face, AF_FaceGlobals *aglobals, AF_Module module)
Definition: afglobal.c:336
af_face_globals_free(AF_FaceGlobals globals)
Definition: afglobal.c:387
#define AF_STYLE_FALLBACK
Definition: afglobal.h:71
#define AF_SCRIPT_DEFAULT
Definition: afglobal.h:74
af_glyph_hints_done(AF_GlyphHints hints)
Definition: afhints.c:672
af_glyph_hints_init(AF_GlyphHints hints, FT_Memory memory)
Definition: afhints.c:662
af_loader_init(AF_Loader loader, AF_GlyphHints hints)
Definition: afloader.c:32
af_loader_load_glyph(AF_Loader loader, AF_Module module, FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: afloader.c:214
af_loader_done(AF_Loader loader)
Definition: afloader.c:73
FT_BEGIN_HEADER struct AF_LoaderRec_ AF_LoaderRec
const void FT_Module_Constructor FT_Module_Destructor af_autofitter_done
Definition: afmodule.c:611
af_autofitter_load_glyph(AF_Module module, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: afmodule.c:507
const void *& AF_INTERFACE_GET
Definition: afmodule.c:605
static FT_Error af_property_get(FT_Module ft_module, const char *property_name, void *value)
Definition: afmodule.c:331
FT_MODULE_HINTER
Definition: afmodule.c:601
const void FT_Module_Constructor af_autofitter_init
Definition: afmodule.c:610
static FT_Error af_property_set(FT_Module ft_module, const char *property_name, const void *value, FT_Bool value_is_string)
Definition: afmodule.c:121
static FT_Error af_property_get_face_globals(FT_Face face, AF_FaceGlobals *aglobals, AF_Module module)
Definition: afmodule.c:74
FT_SERVICE_ID_PROPERTIES
Definition: afmodule.c:443
#define FT_COMPONENT
Definition: afmodule.c:70
&AF_SERVICE_PROPERTIES_GET af_get_interface(FT_Module module, const char *module_interface)
Definition: afmodule.c:447
FT_BEGIN_HEADER struct AF_ModuleRec_ * AF_Module
FT_BEGIN_HEADER struct AF_ModuleRec_ AF_ModuleRec
#define AF_SERVICE_PROPERTIES_GET
Definition: afpic.h:29
#define AF_STYLE_CLASSES_GET
Definition: afpic.h:33
#define AF_SERVICES_GET
Definition: afpic.h:28
@ AF_COVERAGE_DEFAULT
Definition: aftypes.h:412
struct AF_FaceGlobalsRec_ * AF_FaceGlobals
Definition: aftypes.h:467
#define FT_DEFINE_AUTOHINTER_INTERFACE( class_, reset_face_, get_global_hints_, done_global_hints_, load_glyph_)
Definition: autohint.h:202
FT_Error(* FT_AutoHinter_GlyphLoadFunc)(FT_AutoHinter hinter, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: autohint.h:175
FT_Library library
Definition: cffdrivr.c:654
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1
Definition: ftoption.h:777
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4
Definition: ftoption.h:787
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4
Definition: ftoption.h:786
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2
Definition: ftoption.h:780
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2
Definition: ftoption.h:781
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1
Definition: ftoption.h:778
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3
Definition: ftoption.h:783
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3
Definition: ftoption.h:784
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
return FT_Err_Ok
Definition: ftbbox.c:511
#define FT_CALLBACK_DEF(x)
Definition: ftconfig.h:533
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
#define FT_TRACE0(varformat)
Definition: ftdebug.h:157
#define FT_THROW(e)
Definition: ftdebug.h:213
void(* FT_Module_Destructor)(FT_Module module)
Definition: ftmodapi.h:167
FT_Error(* FT_Module_Constructor)(FT_Module module)
Definition: ftmodapi.h:152
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
#define FT_DEFINE_MODULE( class_, flags_, size_, name_, version_, requires_, interface_, init_, done_, get_interface_)
Definition: ftobjs.h:1497
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
Definition: ftobjs.c:98
#define FT_DEFINE_SERVICEDESCREC1(class_, serv_id_1, serv_data_1)
Definition: ftserv.h:189
#define ft_strcmp
Definition: ftstdlib.h:86
#define ft_strtol
Definition: ftstdlib.h:145
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
void * FT_Pointer
Definition: fttypes.h:311
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
int FT_Error
Definition: fttypes.h:300
void(* FT_Generic_Finalizer)(void *object)
Definition: fttypes.h:428
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
GLdouble s
Definition: gl.h:2039
GLsizeiptr size
Definition: glext.h:5919
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
GLuint GLfloat * val
Definition: glext.h:7180
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define ss
Definition: i386-dis.c:441
if(dx< 0)
Definition: linetemp.h:194
#define error(str)
Definition: mkdosfs.c:1605
static char memory[1024 *256]
Definition: process.c:116
TT_CMap_Info_GetFunc tt_get_cmap_info const char * module_interface
Definition: sfdriver.c:1176
namespace GUID const ADDRINFOEXW * hints
Definition: sock.c:80
static void Exit(void)
Definition: sock.c:1330
FT_UShort * glyph_styles
Definition: afglobal.h:109
FT_UInt increase_x_height
Definition: afglobal.h:117
FT_Memory memory
Definition: afhints.h:336
AF_Script script
Definition: aftypes.h:450
AF_Coverage coverage
Definition: aftypes.h:452
Definition: vfat.h:185
#define FT_DEFINE_SERVICE_PROPERTIESREC(class_, set_property_, get_property_)
Definition: svprop.h:50
FT_Error(* FT_Properties_GetFunc)(FT_Module module, const char *property_name, void *value)
Definition: svprop.h:36
FT_Error(* FT_Properties_SetFunc)(FT_Module module, const char *property_name, const void *value, FT_Bool value_is_string)
Definition: svprop.h:30
Definition: pdh_main.c:94
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3711
#define const
Definition: zconf.h:233