Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: third_party/freetype/include/ftimage.h

Issue 815103002: Update freetype to 2.5.4. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Adjust GYP and GN Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/freetype/include/ftgzip.h ('k') | third_party/freetype/include/ftincrem.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /***************************************************************************/ 1 /***************************************************************************/
2 /* */ 2 /* */
3 /* ftimage.h */ 3 /* ftimage.h */
4 /* */ 4 /* */
5 /* FreeType glyph image formats and default raster interface */ 5 /* FreeType glyph image formats and default raster interface */
6 /* (specification). */ 6 /* (specification). */
7 /* */ 7 /* */
8 /* Copyright 1996-2010, 2013 by */ 8 /* Copyright 1996-2010, 2013, 2014 by */
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10 /* */ 10 /* */
11 /* This file is part of the FreeType project, and may only be used, */ 11 /* This file is part of the FreeType project, and may only be used, */
12 /* modified, and distributed under the terms of the FreeType project */ 12 /* modified, and distributed under the terms of the FreeType project */
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14 /* this file you indicate that you have read the license and */ 14 /* this file you indicate that you have read the license and */
15 /* understand and accept it fully. */ 15 /* understand and accept it fully. */
16 /* */ 16 /* */
17 /***************************************************************************/ 17 /***************************************************************************/
18 18
19 /*************************************************************************/ 19 /*************************************************************************/
20 /* */ 20 /* */
21 /* Note: A `raster' is simply a scan-line converter, used to render */ 21 /* Note: A `raster' is simply a scan-line converter, used to render */
22 /* FT_Outlines into FT_Bitmaps. */ 22 /* FT_Outlines into FT_Bitmaps. */
23 /* */ 23 /* */
24 /*************************************************************************/ 24 /*************************************************************************/
25 25
26 26
27 #ifndef __FTIMAGE_H__ 27 #ifndef __FTIMAGE_H__
28 #define __FTIMAGE_H__ 28 #define __FTIMAGE_H__
29 29
30 30
31 /* _STANDALONE_ is from ftgrays.c */ 31 /* _STANDALONE_ is from ftgrays.c */
32 #ifndef _STANDALONE_ 32 #ifndef _STANDALONE_
33 #include "../ft2build.h" 33 #include <ft2build.h>
34 #endif 34 #endif
35 35
36 36
37 FT_BEGIN_HEADER 37 FT_BEGIN_HEADER
38 38
39 39
40 /*************************************************************************/ 40 /*************************************************************************/
41 /* */ 41 /* */
42 /* <Section> */ 42 /* <Section> */
43 /* basic_types */ 43 /* basic_types */
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 FT_PIXEL_MODE_GRAY4, 186 FT_PIXEL_MODE_GRAY4,
187 FT_PIXEL_MODE_LCD, 187 FT_PIXEL_MODE_LCD,
188 FT_PIXEL_MODE_LCD_V, 188 FT_PIXEL_MODE_LCD_V,
189 FT_PIXEL_MODE_BGRA, 189 FT_PIXEL_MODE_BGRA,
190 190
191 FT_PIXEL_MODE_MAX /* do not remove */ 191 FT_PIXEL_MODE_MAX /* do not remove */
192 192
193 } FT_Pixel_Mode; 193 } FT_Pixel_Mode;
194 194
195 195
196 /*************************************************************************/ 196 /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */
197 /* */ 197 /* values instead. */
198 /* <Enum> */
199 /* ft_pixel_mode_xxx */
200 /* */
201 /* <Description> */
202 /* A list of deprecated constants. Use the corresponding */
203 /* @FT_Pixel_Mode values instead. */
204 /* */
205 /* <Values> */
206 /* ft_pixel_mode_none :: See @FT_PIXEL_MODE_NONE. */
207 /* ft_pixel_mode_mono :: See @FT_PIXEL_MODE_MONO. */
208 /* ft_pixel_mode_grays :: See @FT_PIXEL_MODE_GRAY. */
209 /* ft_pixel_mode_pal2 :: See @FT_PIXEL_MODE_GRAY2. */
210 /* ft_pixel_mode_pal4 :: See @FT_PIXEL_MODE_GRAY4. */
211 /* */
212 #define ft_pixel_mode_none FT_PIXEL_MODE_NONE 198 #define ft_pixel_mode_none FT_PIXEL_MODE_NONE
213 #define ft_pixel_mode_mono FT_PIXEL_MODE_MONO 199 #define ft_pixel_mode_mono FT_PIXEL_MODE_MONO
214 #define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY 200 #define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY
215 #define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 201 #define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
216 #define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 202 #define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
217 203
218 /* */
219
220 #if 0
221 204
222 /*************************************************************************/ 205 /*************************************************************************/
223 /* */ 206 /* */
224 /* <Enum> */
225 /* FT_Palette_Mode */
226 /* */
227 /* <Description> */
228 /* THIS TYPE IS DEPRECATED. DO NOT USE IT! */
229 /* */
230 /* An enumeration type to describe the format of a bitmap palette, */
231 /* used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */
232 /* */
233 /* <Values> */
234 /* ft_palette_mode_rgb :: The palette is an array of 3-byte RGB */
235 /* records. */
236 /* */
237 /* ft_palette_mode_rgba :: The palette is an array of 4-byte RGBA */
238 /* records. */
239 /* */
240 /* <Note> */
241 /* As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by */
242 /* FreeType, these types are not handled by the library itself. */
243 /* */
244 typedef enum FT_Palette_Mode_
245 {
246 ft_palette_mode_rgb = 0,
247 ft_palette_mode_rgba,
248
249 ft_palette_mode_max /* do not remove */
250
251 } FT_Palette_Mode;
252
253 /* */
254
255 #endif
256
257
258 /*************************************************************************/
259 /* */
260 /* <Struct> */ 207 /* <Struct> */
261 /* FT_Bitmap */ 208 /* FT_Bitmap */
262 /* */ 209 /* */
263 /* <Description> */ 210 /* <Description> */
264 /* A structure used to describe a bitmap or pixmap to the raster. */ 211 /* A structure used to describe a bitmap or pixmap to the raster. */
265 /* Note that we now manage pixmaps of various depths through the */ 212 /* Note that we now manage pixmaps of various depths through the */
266 /* `pixel_mode' field. */ 213 /* `pixel_mode' field. */
267 /* */ 214 /* */
268 /* <Fields> */ 215 /* <Fields> */
269 /* rows :: The number of bitmap rows. */ 216 /* rows :: The number of bitmap rows. */
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 /* field is intended for paletted pixel modes. Not */ 258 /* field is intended for paletted pixel modes. Not */
312 /* used currently. */ 259 /* used currently. */
313 /* */ 260 /* */
314 /* <Note> */ 261 /* <Note> */
315 /* For now, the only pixel modes supported by FreeType are mono and */ 262 /* For now, the only pixel modes supported by FreeType are mono and */
316 /* grays. However, drivers might be added in the future to support */ 263 /* grays. However, drivers might be added in the future to support */
317 /* more `colorful' options. */ 264 /* more `colorful' options. */
318 /* */ 265 /* */
319 typedef struct FT_Bitmap_ 266 typedef struct FT_Bitmap_
320 { 267 {
321 int rows; 268 unsigned int rows;
322 int width; 269 unsigned int width;
323 int pitch; 270 int pitch;
324 unsigned char* buffer; 271 unsigned char* buffer;
325 short num_grays; 272 unsigned short num_grays;
326 char pixel_mode; 273 unsigned char pixel_mode;
327 char palette_mode; 274 unsigned char palette_mode;
328 void* palette; 275 void* palette;
329 276
330 } FT_Bitmap; 277 } FT_Bitmap;
331 278
332 279
333 /*************************************************************************/ 280 /*************************************************************************/
334 /* */ 281 /* */
335 /* <Section> */ 282 /* <Section> */
336 /* outline_processing */ 283 /* outline_processing */
337 /* */ 284 /* */
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 /* Bits 3 and~4 are reserved for internal purposes. */ 321 /* Bits 3 and~4 are reserved for internal purposes. */
375 /* */ 322 /* */
376 /* contours :: An array of `n_contours' shorts, giving the end */ 323 /* contours :: An array of `n_contours' shorts, giving the end */
377 /* point of each contour within the outline. For */ 324 /* point of each contour within the outline. For */
378 /* example, the first contour is defined by the points */ 325 /* example, the first contour is defined by the points */
379 /* `0' to `contours[0]', the second one is defined by */ 326 /* `0' to `contours[0]', the second one is defined by */
380 /* the points `contours[0]+1' to `contours[1]', etc. */ 327 /* the points `contours[0]+1' to `contours[1]', etc. */
381 /* */ 328 /* */
382 /* flags :: A set of bit flags used to characterize the outline */ 329 /* flags :: A set of bit flags used to characterize the outline */
383 /* and give hints to the scan-converter and hinter on */ 330 /* and give hints to the scan-converter and hinter on */
384 /* how to convert/grid-fit it. See @FT_OUTLINE_FLAGS. */ 331 /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */
385 /* */ 332 /* */
386 /* <Note> */ 333 /* <Note> */
387 /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ 334 /* The B/W rasterizer only checks bit~2 in the `tags' array for the */
388 /* first point of each contour. The drop-out mode as given with */ 335 /* first point of each contour. The drop-out mode as given with */
389 /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ 336 /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */
390 /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ 337 /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */
391 /* */ 338 /* */
392 typedef struct FT_Outline_ 339 typedef struct FT_Outline_
393 { 340 {
394 short n_contours; /* number of contours in glyph */ 341 short n_contours; /* number of contours in glyph */
395 short n_points; /* number of points in the glyph */ 342 short n_points; /* number of points in the glyph */
396 343
397 FT_Vector* points; /* the outline's points */ 344 FT_Vector* points; /* the outline's points */
398 char* tags; /* the points flags */ 345 char* tags; /* the points flags */
399 short* contours; /* the contour end points */ 346 short* contours; /* the contour end points */
400 347
401 int flags; /* outline masks */ 348 int flags; /* outline masks */
402 349
403 } FT_Outline; 350 } FT_Outline;
404 351
352 /* */
353
405 /* Following limits must be consistent with */ 354 /* Following limits must be consistent with */
406 /* FT_Outline.{n_contours,n_points} */ 355 /* FT_Outline.{n_contours,n_points} */
407 #define FT_OUTLINE_CONTOURS_MAX SHRT_MAX 356 #define FT_OUTLINE_CONTOURS_MAX SHRT_MAX
408 #define FT_OUTLINE_POINTS_MAX SHRT_MAX 357 #define FT_OUTLINE_POINTS_MAX SHRT_MAX
409 358
410 359
411 /*************************************************************************/ 360 /*************************************************************************/
412 /* */ 361 /* */
413 /* <Enum> */ 362 /* <Enum> */
414 /* FT_OUTLINE_FLAGS */ 363 /* FT_OUTLINE_XXX */
415 /* */ 364 /* */
416 /* <Description> */ 365 /* <Description> */
417 /* A list of bit-field constants use for the flags in an outline's */ 366 /* A list of bit-field constants use for the flags in an outline's */
418 /* `flags' field. */ 367 /* `flags' field. */
419 /* */ 368 /* */
420 /* <Values> */ 369 /* <Values> */
421 /* FT_OUTLINE_NONE :: */ 370 /* FT_OUTLINE_NONE :: */
422 /* Value~0 is reserved. */ 371 /* Value~0 is reserved. */
423 /* */ 372 /* */
424 /* FT_OUTLINE_OWNER :: */ 373 /* FT_OUTLINE_OWNER :: */
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 #define FT_OUTLINE_EVEN_ODD_FILL 0x2 434 #define FT_OUTLINE_EVEN_ODD_FILL 0x2
486 #define FT_OUTLINE_REVERSE_FILL 0x4 435 #define FT_OUTLINE_REVERSE_FILL 0x4
487 #define FT_OUTLINE_IGNORE_DROPOUTS 0x8 436 #define FT_OUTLINE_IGNORE_DROPOUTS 0x8
488 #define FT_OUTLINE_SMART_DROPOUTS 0x10 437 #define FT_OUTLINE_SMART_DROPOUTS 0x10
489 #define FT_OUTLINE_INCLUDE_STUBS 0x20 438 #define FT_OUTLINE_INCLUDE_STUBS 0x20
490 439
491 #define FT_OUTLINE_HIGH_PRECISION 0x100 440 #define FT_OUTLINE_HIGH_PRECISION 0x100
492 #define FT_OUTLINE_SINGLE_PASS 0x200 441 #define FT_OUTLINE_SINGLE_PASS 0x200
493 442
494 443
495 /************************************************************************* 444 /* these constants are deprecated; use the corresponding */
496 * 445 /* `FT_OUTLINE_XXX' values instead */
497 * @enum:
498 * ft_outline_flags
499 *
500 * @description:
501 * These constants are deprecated. Please use the corresponding
502 * @FT_OUTLINE_FLAGS values.
503 *
504 * @values:
505 * ft_outline_none :: See @FT_OUTLINE_NONE.
506 * ft_outline_owner :: See @FT_OUTLINE_OWNER.
507 * ft_outline_even_odd_fill :: See @FT_OUTLINE_EVEN_ODD_FILL.
508 * ft_outline_reverse_fill :: See @FT_OUTLINE_REVERSE_FILL.
509 * ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS.
510 * ft_outline_high_precision :: See @FT_OUTLINE_HIGH_PRECISION.
511 * ft_outline_single_pass :: See @FT_OUTLINE_SINGLE_PASS.
512 */
513 #define ft_outline_none FT_OUTLINE_NONE 446 #define ft_outline_none FT_OUTLINE_NONE
514 #define ft_outline_owner FT_OUTLINE_OWNER 447 #define ft_outline_owner FT_OUTLINE_OWNER
515 #define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL 448 #define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL
516 #define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL 449 #define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL
517 #define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS 450 #define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS
518 #define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION 451 #define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION
519 #define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS 452 #define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS
520 453
521 /* */ 454 /* */
522 455
(...skipping 25 matching lines...) Expand all
548 /* */ 481 /* */
549 /* <Description> */ 482 /* <Description> */
550 /* A function pointer type used to describe the signature of a `move */ 483 /* A function pointer type used to describe the signature of a `move */
551 /* to' function during outline walking/decomposition. */ 484 /* to' function during outline walking/decomposition. */
552 /* */ 485 /* */
553 /* A `move to' is emitted to start a new contour in an outline. */ 486 /* A `move to' is emitted to start a new contour in an outline. */
554 /* */ 487 /* */
555 /* <Input> */ 488 /* <Input> */
556 /* to :: A pointer to the target point of the `move to'. */ 489 /* to :: A pointer to the target point of the `move to'. */
557 /* */ 490 /* */
558 /* user :: A typeless pointer which is passed from the caller of the */ 491 /* user :: A typeless pointer, which is passed from the caller of the */
559 /* decomposition function. */ 492 /* decomposition function. */
560 /* */ 493 /* */
561 /* <Return> */ 494 /* <Return> */
562 /* Error code. 0~means success. */ 495 /* Error code. 0~means success. */
563 /* */ 496 /* */
564 typedef int 497 typedef int
565 (*FT_Outline_MoveToFunc)( const FT_Vector* to, 498 (*FT_Outline_MoveToFunc)( const FT_Vector* to,
566 void* user ); 499 void* user );
567 500
568 #define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc 501 #define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc
569 502
570 503
571 /*************************************************************************/ 504 /*************************************************************************/
572 /* */ 505 /* */
573 /* <FuncType> */ 506 /* <FuncType> */
574 /* FT_Outline_LineToFunc */ 507 /* FT_Outline_LineToFunc */
575 /* */ 508 /* */
576 /* <Description> */ 509 /* <Description> */
577 /* A function pointer type used to describe the signature of a `line */ 510 /* A function pointer type used to describe the signature of a `line */
578 /* to' function during outline walking/decomposition. */ 511 /* to' function during outline walking/decomposition. */
579 /* */ 512 /* */
580 /* A `line to' is emitted to indicate a segment in the outline. */ 513 /* A `line to' is emitted to indicate a segment in the outline. */
581 /* */ 514 /* */
582 /* <Input> */ 515 /* <Input> */
583 /* to :: A pointer to the target point of the `line to'. */ 516 /* to :: A pointer to the target point of the `line to'. */
584 /* */ 517 /* */
585 /* user :: A typeless pointer which is passed from the caller of the */ 518 /* user :: A typeless pointer, which is passed from the caller of the */
586 /* decomposition function. */ 519 /* decomposition function. */
587 /* */ 520 /* */
588 /* <Return> */ 521 /* <Return> */
589 /* Error code. 0~means success. */ 522 /* Error code. 0~means success. */
590 /* */ 523 /* */
591 typedef int 524 typedef int
592 (*FT_Outline_LineToFunc)( const FT_Vector* to, 525 (*FT_Outline_LineToFunc)( const FT_Vector* to,
593 void* user ); 526 void* user );
594 527
595 #define FT_Outline_LineTo_Func FT_Outline_LineToFunc 528 #define FT_Outline_LineTo_Func FT_Outline_LineToFunc
(...skipping 10 matching lines...) Expand all
606 /* */ 539 /* */
607 /* A `conic to' is emitted to indicate a second-order Bézier arc in */ 540 /* A `conic to' is emitted to indicate a second-order Bézier arc in */
608 /* the outline. */ 541 /* the outline. */
609 /* */ 542 /* */
610 /* <Input> */ 543 /* <Input> */
611 /* control :: An intermediate control point between the last position */ 544 /* control :: An intermediate control point between the last position */
612 /* and the new target in `to'. */ 545 /* and the new target in `to'. */
613 /* */ 546 /* */
614 /* to :: A pointer to the target end point of the conic arc. */ 547 /* to :: A pointer to the target end point of the conic arc. */
615 /* */ 548 /* */
616 /* user :: A typeless pointer which is passed from the caller of */ 549 /* user :: A typeless pointer, which is passed from the caller of */
617 /* the decomposition function. */ 550 /* the decomposition function. */
618 /* */ 551 /* */
619 /* <Return> */ 552 /* <Return> */
620 /* Error code. 0~means success. */ 553 /* Error code. 0~means success. */
621 /* */ 554 /* */
622 typedef int 555 typedef int
623 (*FT_Outline_ConicToFunc)( const FT_Vector* control, 556 (*FT_Outline_ConicToFunc)( const FT_Vector* control,
624 const FT_Vector* to, 557 const FT_Vector* to,
625 void* user ); 558 void* user );
626 559
(...skipping 11 matching lines...) Expand all
638 /* */ 571 /* */
639 /* A `cubic to' is emitted to indicate a third-order Bézier arc. */ 572 /* A `cubic to' is emitted to indicate a third-order Bézier arc. */
640 /* */ 573 /* */
641 /* <Input> */ 574 /* <Input> */
642 /* control1 :: A pointer to the first Bézier control point. */ 575 /* control1 :: A pointer to the first Bézier control point. */
643 /* */ 576 /* */
644 /* control2 :: A pointer to the second Bézier control point. */ 577 /* control2 :: A pointer to the second Bézier control point. */
645 /* */ 578 /* */
646 /* to :: A pointer to the target end point. */ 579 /* to :: A pointer to the target end point. */
647 /* */ 580 /* */
648 /* user :: A typeless pointer which is passed from the caller of */ 581 /* user :: A typeless pointer, which is passed from the caller of */
649 /* the decomposition function. */ 582 /* the decomposition function. */
650 /* */ 583 /* */
651 /* <Return> */ 584 /* <Return> */
652 /* Error code. 0~means success. */ 585 /* Error code. 0~means success. */
653 /* */ 586 /* */
654 typedef int 587 typedef int
655 (*FT_Outline_CubicToFunc)( const FT_Vector* control1, 588 (*FT_Outline_CubicToFunc)( const FT_Vector* control1,
656 const FT_Vector* control2, 589 const FT_Vector* control2,
657 const FT_Vector* to, 590 const FT_Vector* to,
658 void* user ); 591 void* user );
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), 722 FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ),
790 723
791 FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), 724 FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ),
792 FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), 725 FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ),
793 FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), 726 FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ),
794 FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ) 727 FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' )
795 728
796 } FT_Glyph_Format; 729 } FT_Glyph_Format;
797 730
798 731
799 /*************************************************************************/ 732 /* these constants are deprecated; use the corresponding */
800 /* */ 733 /* `FT_Glyph_Format' values instead. */
801 /* <Enum> */
802 /* ft_glyph_format_xxx */
803 /* */
804 /* <Description> */
805 /* A list of deprecated constants. Use the corresponding */
806 /* @FT_Glyph_Format values instead. */
807 /* */
808 /* <Values> */
809 /* ft_glyph_format_none :: See @FT_GLYPH_FORMAT_NONE. */
810 /* ft_glyph_format_composite :: See @FT_GLYPH_FORMAT_COMPOSITE. */
811 /* ft_glyph_format_bitmap :: See @FT_GLYPH_FORMAT_BITMAP. */
812 /* ft_glyph_format_outline :: See @FT_GLYPH_FORMAT_OUTLINE. */
813 /* ft_glyph_format_plotter :: See @FT_GLYPH_FORMAT_PLOTTER. */
814 /* */
815 #define ft_glyph_format_none FT_GLYPH_FORMAT_NONE 734 #define ft_glyph_format_none FT_GLYPH_FORMAT_NONE
816 #define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE 735 #define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE
817 #define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP 736 #define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP
818 #define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE 737 #define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE
819 #define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER 738 #define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER
820 739
821 740
822 /*************************************************************************/ 741 /*************************************************************************/
823 /*************************************************************************/ 742 /*************************************************************************/
824 /*************************************************************************/ 743 /*************************************************************************/
825 /***** *****/ 744 /***** *****/
826 /***** R A S T E R D E F I N I T I O N S *****/ 745 /***** R A S T E R D E F I N I T I O N S *****/
827 /***** *****/ 746 /***** *****/
828 /*************************************************************************/ 747 /*************************************************************************/
829 /*************************************************************************/ 748 /*************************************************************************/
830 /*************************************************************************/ 749 /*************************************************************************/
831 750
832 751
833 /*************************************************************************/ 752 /*************************************************************************/
834 /* */ 753 /* */
835 /* A raster is a scan converter, in charge of rendering an outline into */ 754 /* A raster is a scan converter, in charge of rendering an outline into */
836 /* a a bitmap. This section contains the public API for rasters. */ 755 /* a a bitmap. This section contains the public API for rasters. */
837 /* */ 756 /* */
838 /* Note that in FreeType 2, all rasters are now encapsulated within */ 757 /* Note that in FreeType 2, all rasters are now encapsulated within */
839 /* specific modules called `renderers'. See `freetype/ftrender.h' for */ 758 /* specific modules called `renderers'. See `ftrender.h' for more */
840 /* more details on renderers. */ 759 /* details on renderers. */
841 /* */ 760 /* */
842 /*************************************************************************/ 761 /*************************************************************************/
843 762
844 763
845 /*************************************************************************/ 764 /*************************************************************************/
846 /* */ 765 /* */
847 /* <Section> */ 766 /* <Section> */
848 /* raster */ 767 /* raster */
849 /* */ 768 /* */
850 /* <Title> */ 769 /* <Title> */
851 /* Scanline Converter */ 770 /* Scanline Converter */
852 /* */ 771 /* */
853 /* <Abstract> */ 772 /* <Abstract> */
854 /* How vectorial outlines are converted into bitmaps and pixmaps. */ 773 /* How vectorial outlines are converted into bitmaps and pixmaps. */
855 /* */ 774 /* */
856 /* <Description> */ 775 /* <Description> */
857 /* This section contains technical definitions. */ 776 /* This section contains technical definitions. */
858 /* */ 777 /* */
778 /* <Order> */
779 /* FT_Raster */
780 /* FT_Span */
781 /* FT_SpanFunc */
782 /* */
783 /* FT_Raster_Params */
784 /* FT_RASTER_FLAG_XXX */
785 /* */
786 /* FT_Raster_NewFunc */
787 /* FT_Raster_DoneFunc */
788 /* FT_Raster_ResetFunc */
789 /* FT_Raster_SetModeFunc */
790 /* FT_Raster_RenderFunc */
791 /* FT_Raster_Funcs */
792 /* */
859 /*************************************************************************/ 793 /*************************************************************************/
860 794
861 795
862 /*************************************************************************/ 796 /*************************************************************************/
863 /* */ 797 /* */
864 /* <Type> */ 798 /* <Type> */
865 /* FT_Raster */ 799 /* FT_Raster */
866 /* */ 800 /* */
867 /* <Description> */ 801 /* <Description> */
868 /* A handle (pointer) to a raster object. Each object can be used */ 802 /* An opaque handle (pointer) to a raster object. Each object can be */
869 /* independently to convert an outline into a bitmap or pixmap. */ 803 /* used independently to convert an outline into a bitmap or pixmap. */
870 /* */ 804 /* */
871 typedef struct FT_RasterRec_* FT_Raster; 805 typedef struct FT_RasterRec_* FT_Raster;
872 806
873 807
874 /*************************************************************************/ 808 /*************************************************************************/
875 /* */ 809 /* */
876 /* <Struct> */ 810 /* <Struct> */
877 /* FT_Span */ 811 /* FT_Span */
878 /* */ 812 /* */
879 /* <Description> */ 813 /* <Description> */
880 /* A structure used to model a single span of gray (or black) pixels */ 814 /* A structure used to model a single span of gray pixels when */
881 /* when rendering a monochrome or anti-aliased bitmap. */ 815 /* rendering an anti-aliased bitmap. */
882 /* */ 816 /* */
883 /* <Fields> */ 817 /* <Fields> */
884 /* x :: The span's horizontal start position. */ 818 /* x :: The span's horizontal start position. */
885 /* */ 819 /* */
886 /* len :: The span's length in pixels. */ 820 /* len :: The span's length in pixels. */
887 /* */ 821 /* */
888 /* coverage :: The span color/coverage, ranging from 0 (background) */ 822 /* coverage :: The span color/coverage, ranging from 0 (background) */
889 /* to 255 (foreground). Only used for anti-aliased */ 823 /* to 255 (foreground). */
890 /* rendering. */
891 /* */ 824 /* */
892 /* <Note> */ 825 /* <Note> */
893 /* This structure is used by the span drawing callback type named */ 826 /* This structure is used by the span drawing callback type named */
894 /* @FT_SpanFunc which takes the y~coordinate of the span as a */ 827 /* @FT_SpanFunc that takes the y~coordinate of the span as a */
895 /* a parameter. */ 828 /* parameter. */
896 /* */ 829 /* */
897 /* The coverage value is always between 0 and 255. If you want less */ 830 /* The coverage value is always between 0 and 255. If you want less */
898 /* gray values, the callback function has to reduce them. */ 831 /* gray values, the callback function has to reduce them. */
899 /* */ 832 /* */
900 typedef struct FT_Span_ 833 typedef struct FT_Span_
901 { 834 {
902 short x; 835 short x;
903 unsigned short len; 836 unsigned short len;
904 unsigned char coverage; 837 unsigned char coverage;
905 838
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 883
951 #define FT_Raster_Span_Func FT_SpanFunc 884 #define FT_Raster_Span_Func FT_SpanFunc
952 885
953 886
954 /*************************************************************************/ 887 /*************************************************************************/
955 /* */ 888 /* */
956 /* <FuncType> */ 889 /* <FuncType> */
957 /* FT_Raster_BitTest_Func */ 890 /* FT_Raster_BitTest_Func */
958 /* */ 891 /* */
959 /* <Description> */ 892 /* <Description> */
960 /* THIS TYPE IS DEPRECATED. DO NOT USE IT. */ 893 /* Deprecated, unimplemented. */
961 /* */
962 /* A function used as a call-back by the monochrome scan-converter */
963 /* to test whether a given target pixel is already set to the drawing */
964 /* `color'. These tests are crucial to implement drop-out control */
965 /* per-se the TrueType spec. */
966 /* */
967 /* <Input> */
968 /* y :: The pixel's y~coordinate. */
969 /* */
970 /* x :: The pixel's x~coordinate. */
971 /* */
972 /* user :: User-supplied data that is passed to the callback. */
973 /* */
974 /* <Return> */
975 /* 1~if the pixel is `set', 0~otherwise. */
976 /* */ 894 /* */
977 typedef int 895 typedef int
978 (*FT_Raster_BitTest_Func)( int y, 896 (*FT_Raster_BitTest_Func)( int y,
979 int x, 897 int x,
980 void* user ); 898 void* user );
981 899
982 900
983 /*************************************************************************/ 901 /*************************************************************************/
984 /* */ 902 /* */
985 /* <FuncType> */ 903 /* <FuncType> */
986 /* FT_Raster_BitSet_Func */ 904 /* FT_Raster_BitSet_Func */
987 /* */ 905 /* */
988 /* <Description> */ 906 /* <Description> */
989 /* THIS TYPE IS DEPRECATED. DO NOT USE IT. */ 907 /* Deprecated, unimplemented. */
990 /* */
991 /* A function used as a call-back by the monochrome scan-converter */
992 /* to set an individual target pixel. This is crucial to implement */
993 /* drop-out control according to the TrueType specification. */
994 /* */
995 /* <Input> */
996 /* y :: The pixel's y~coordinate. */
997 /* */
998 /* x :: The pixel's x~coordinate. */
999 /* */
1000 /* user :: User-supplied data that is passed to the callback. */
1001 /* */
1002 /* <Return> */
1003 /* 1~if the pixel is `set', 0~otherwise. */
1004 /* */ 908 /* */
1005 typedef void 909 typedef void
1006 (*FT_Raster_BitSet_Func)( int y, 910 (*FT_Raster_BitSet_Func)( int y,
1007 int x, 911 int x,
1008 void* user ); 912 void* user );
1009 913
1010 914
1011 /*************************************************************************/ 915 /*************************************************************************/
1012 /* */ 916 /* */
1013 /* <Enum> */ 917 /* <Enum> */
(...skipping 13 matching lines...) Expand all
1027 /* */ 931 /* */
1028 /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ 932 /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */
1029 /* rendering. In this mode, client */ 933 /* rendering. In this mode, client */
1030 /* applications must provide their own span */ 934 /* applications must provide their own span */
1031 /* callback. This lets them directly */ 935 /* callback. This lets them directly */
1032 /* draw or compose over an existing bitmap. */ 936 /* draw or compose over an existing bitmap. */
1033 /* If this bit is not set, the target */ 937 /* If this bit is not set, the target */
1034 /* pixmap's buffer _must_ be zeroed before */ 938 /* pixmap's buffer _must_ be zeroed before */
1035 /* rendering. */ 939 /* rendering. */
1036 /* */ 940 /* */
1037 /* Note that for now, direct rendering is */ 941 /* Direct rendering is only possible with */
1038 /* only possible with anti-aliased glyphs. */ 942 /* anti-aliased glyphs. */
1039 /* */ 943 /* */
1040 /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ 944 /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */
1041 /* rendering mode. If set, the output will */ 945 /* rendering mode. If set, the output will */
1042 /* be clipped to a box specified in the */ 946 /* be clipped to a box specified in the */
1043 /* `clip_box' field of the */ 947 /* `clip_box' field of the */
1044 /* @FT_Raster_Params structure. */ 948 /* @FT_Raster_Params structure. */
1045 /* */ 949 /* */
1046 /* Note that by default, the glyph bitmap */ 950 /* Note that by default, the glyph bitmap */
1047 /* is clipped to the target pixmap, except */ 951 /* is clipped to the target pixmap, except */
1048 /* in direct rendering mode where all spans */ 952 /* in direct rendering mode where all spans */
1049 /* are generated if no clipping box is set. */ 953 /* are generated if no clipping box is set. */
1050 /* */ 954 /* */
1051 #define FT_RASTER_FLAG_DEFAULT 0x0 955 #define FT_RASTER_FLAG_DEFAULT 0x0
1052 #define FT_RASTER_FLAG_AA 0x1 956 #define FT_RASTER_FLAG_AA 0x1
1053 #define FT_RASTER_FLAG_DIRECT 0x2 957 #define FT_RASTER_FLAG_DIRECT 0x2
1054 #define FT_RASTER_FLAG_CLIP 0x4 958 #define FT_RASTER_FLAG_CLIP 0x4
1055 959
1056 /* deprecated */ 960 /* these constants are deprecated; use the corresponding */
961 /* `FT_RASTER_FLAG_XXX' values instead */
1057 #define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT 962 #define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
1058 #define ft_raster_flag_aa FT_RASTER_FLAG_AA 963 #define ft_raster_flag_aa FT_RASTER_FLAG_AA
1059 #define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT 964 #define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT
1060 #define ft_raster_flag_clip FT_RASTER_FLAG_CLIP 965 #define ft_raster_flag_clip FT_RASTER_FLAG_CLIP
1061 966
1062 967
1063 /*************************************************************************/ 968 /*************************************************************************/
1064 /* */ 969 /* */
1065 /* <Struct> */ 970 /* <Struct> */
1066 /* FT_Raster_Params */ 971 /* FT_Raster_Params */
1067 /* */ 972 /* */
1068 /* <Description> */ 973 /* <Description> */
1069 /* A structure to hold the arguments used by a raster's render */ 974 /* A structure to hold the arguments used by a raster's render */
1070 /* function. */ 975 /* function. */
1071 /* */ 976 /* */
1072 /* <Fields> */ 977 /* <Fields> */
1073 /* target :: The target bitmap. */ 978 /* target :: The target bitmap. */
1074 /* */ 979 /* */
1075 /* source :: A pointer to the source glyph image (e.g., an */ 980 /* source :: A pointer to the source glyph image (e.g., an */
1076 /* @FT_Outline). */ 981 /* @FT_Outline). */
1077 /* */ 982 /* */
1078 /* flags :: The rendering flags. */ 983 /* flags :: The rendering flags. */
1079 /* */ 984 /* */
1080 /* gray_spans :: The gray span drawing callback. */ 985 /* gray_spans :: The gray span drawing callback. */
1081 /* */ 986 /* */
1082 /* black_spans :: The black span drawing callback. UNIMPLEMENTED! */ 987 /* black_spans :: Unused. */
1083 /* */ 988 /* */
1084 /* bit_test :: The bit test callback. UNIMPLEMENTED! */ 989 /* bit_test :: Unused. */
1085 /* */ 990 /* */
1086 /* bit_set :: The bit set callback. UNIMPLEMENTED! */ 991 /* bit_set :: Unused. */
1087 /* */ 992 /* */
1088 /* user :: User-supplied data that is passed to each drawing */ 993 /* user :: User-supplied data that is passed to each drawing */
1089 /* callback. */ 994 /* callback. */
1090 /* */ 995 /* */
1091 /* clip_box :: An optional clipping box. It is only used in */ 996 /* clip_box :: An optional clipping box. It is only used in */
1092 /* direct rendering mode. Note that coordinates here */ 997 /* direct rendering mode. Note that coordinates here */
1093 /* should be expressed in _integer_ pixels (and not in */ 998 /* should be expressed in _integer_ pixels (and not in */
1094 /* 26.6 fixed-point units). */ 999 /* 26.6 fixed-point units). */
1095 /* */ 1000 /* */
1096 /* <Note> */ 1001 /* <Note> */
1097 /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ 1002 /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */
1098 /* bit flag is set in the `flags' field, otherwise a monochrome */ 1003 /* bit flag is set in the `flags' field, otherwise a monochrome */
1099 /* bitmap is generated. */ 1004 /* bitmap is generated. */
1100 /* */ 1005 /* */
1101 /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ 1006 /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */
1102 /* raster will call the `gray_spans' callback to draw gray pixel */ 1007 /* raster will call the `gray_spans' callback to draw gray pixel */
1103 /* spans, in the case of an aa glyph bitmap, it will call */ 1008 /* spans. This allows direct composition over a pre-existing bitmap */
1104 /* `black_spans', and `bit_test' and `bit_set' in the case of a */ 1009 /* through user-provided callbacks to perform the span drawing and */
1105 /* monochrome bitmap. This allows direct composition over a */ 1010 /* composition. Not supported by the monochrome rasterizer. */
1106 /* pre-existing bitmap through user-provided callbacks to perform the */
1107 /* span drawing/composition. */
1108 /* */
1109 /* Note that the `bit_test' and `bit_set' callbacks are required when */
1110 /* rendering a monochrome bitmap, as they are crucial to implement */
1111 /* correct drop-out control as defined in the TrueType specification. */
1112 /* */ 1011 /* */
1113 typedef struct FT_Raster_Params_ 1012 typedef struct FT_Raster_Params_
1114 { 1013 {
1115 const FT_Bitmap* target; 1014 const FT_Bitmap* target;
1116 const void* source; 1015 const void* source;
1117 int flags; 1016 int flags;
1118 FT_SpanFunc gray_spans; 1017 FT_SpanFunc gray_spans;
1119 FT_SpanFunc black_spans; /* doesn't work! */ 1018 FT_SpanFunc black_spans; /* unused */
1120 FT_Raster_BitTest_Func bit_test; /* doesn't work! */ 1019 FT_Raster_BitTest_Func bit_test; /* unused */
1121 FT_Raster_BitSet_Func bit_set; /* doesn't work! */ 1020 FT_Raster_BitSet_Func bit_set; /* unused */
1122 void* user; 1021 void* user;
1123 FT_BBox clip_box; 1022 FT_BBox clip_box;
1124 1023
1125 } FT_Raster_Params; 1024 } FT_Raster_Params;
1126 1025
1127 1026
1128 /*************************************************************************/ 1027 /*************************************************************************/
1129 /* */ 1028 /* */
1130 /* <FuncType> */ 1029 /* <FuncType> */
1131 /* FT_Raster_NewFunc */ 1030 /* FT_Raster_NewFunc */
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 /* @FT_Outline or anything else in order to support a large array of */ 1157 /* @FT_Outline or anything else in order to support a large array of */
1259 /* glyph formats. */ 1158 /* glyph formats. */
1260 /* */ 1159 /* */
1261 /* Note also that the render function can fail and return a */ 1160 /* Note also that the render function can fail and return a */
1262 /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ 1161 /* `FT_Err_Unimplemented_Feature' error code if the raster used does */
1263 /* not support direct composition. */ 1162 /* not support direct composition. */
1264 /* */ 1163 /* */
1265 /* XXX: For now, the standard raster doesn't support direct */ 1164 /* XXX: For now, the standard raster doesn't support direct */
1266 /* composition but this should change for the final release (see */ 1165 /* composition but this should change for the final release (see */
1267 /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ 1166 /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */
1268 /* for examples of distinct implementations which support direct */ 1167 /* for examples of distinct implementations that support direct */
1269 /* composition). */ 1168 /* composition). */
1270 /* */ 1169 /* */
1271 typedef int 1170 typedef int
1272 (*FT_Raster_RenderFunc)( FT_Raster raster, 1171 (*FT_Raster_RenderFunc)( FT_Raster raster,
1273 const FT_Raster_Params* params ); 1172 const FT_Raster_Params* params );
1274 1173
1275 #define FT_Raster_Render_Func FT_Raster_RenderFunc 1174 #define FT_Raster_Render_Func FT_Raster_RenderFunc
1276 1175
1277 1176
1278 /*************************************************************************/ 1177 /*************************************************************************/
(...skipping 19 matching lines...) Expand all
1298 { 1197 {
1299 FT_Glyph_Format glyph_format; 1198 FT_Glyph_Format glyph_format;
1300 FT_Raster_NewFunc raster_new; 1199 FT_Raster_NewFunc raster_new;
1301 FT_Raster_ResetFunc raster_reset; 1200 FT_Raster_ResetFunc raster_reset;
1302 FT_Raster_SetModeFunc raster_set_mode; 1201 FT_Raster_SetModeFunc raster_set_mode;
1303 FT_Raster_RenderFunc raster_render; 1202 FT_Raster_RenderFunc raster_render;
1304 FT_Raster_DoneFunc raster_done; 1203 FT_Raster_DoneFunc raster_done;
1305 1204
1306 } FT_Raster_Funcs; 1205 } FT_Raster_Funcs;
1307 1206
1308
1309 /* */ 1207 /* */
1310 1208
1311 1209
1312 FT_END_HEADER 1210 FT_END_HEADER
1313 1211
1314 #endif /* __FTIMAGE_H__ */ 1212 #endif /* __FTIMAGE_H__ */
1315 1213
1316 1214
1317 /* END */ 1215 /* END */
1318 1216
1319 1217
1320 /* Local Variables: */ 1218 /* Local Variables: */
1321 /* coding: utf-8 */ 1219 /* coding: utf-8 */
1322 /* End: */ 1220 /* End: */
OLDNEW
« no previous file with comments | « third_party/freetype/include/ftgzip.h ('k') | third_party/freetype/include/ftincrem.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698