Rev 1891 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1891 | Rev 3931 | ||
---|---|---|---|
Line 224... | Line 224... | ||
224 | const struct pixman_transform *b); |
224 | const struct pixman_transform *b); |
Line 225... | Line 225... | ||
225 | 225 | ||
226 | /* |
226 | /* |
227 | * Floating point matrices |
227 | * Floating point matrices |
- | 228 | */ |
|
- | 229 | typedef struct pixman_f_transform pixman_f_transform_t; |
|
- | 230 | typedef struct pixman_f_vector pixman_f_vector_t; |
|
228 | */ |
231 | |
229 | struct pixman_f_vector |
232 | struct pixman_f_vector |
230 | { |
233 | { |
231 | double v[3]; |
234 | double v[3]; |
Line 287... | Line 290... | ||
287 | PIXMAN_FILTER_FAST, |
290 | PIXMAN_FILTER_FAST, |
288 | PIXMAN_FILTER_GOOD, |
291 | PIXMAN_FILTER_GOOD, |
289 | PIXMAN_FILTER_BEST, |
292 | PIXMAN_FILTER_BEST, |
290 | PIXMAN_FILTER_NEAREST, |
293 | PIXMAN_FILTER_NEAREST, |
291 | PIXMAN_FILTER_BILINEAR, |
294 | PIXMAN_FILTER_BILINEAR, |
292 | PIXMAN_FILTER_CONVOLUTION |
295 | PIXMAN_FILTER_CONVOLUTION, |
- | 296 | ||
- | 297 | /* The SEPARABLE_CONVOLUTION filter takes the following parameters: |
|
- | 298 | * |
|
- | 299 | * width: integer given as 16.16 fixpoint number |
|
- | 300 | * height: integer given as 16.16 fixpoint number |
|
- | 301 | * x_phase_bits: integer given as 16.16 fixpoint |
|
- | 302 | * y_phase_bits: integer given as 16.16 fixpoint |
|
- | 303 | * xtables: (1 << x_phase_bits) tables of size width |
|
- | 304 | * ytables: (1 << y_phase_bits) tables of size height |
|
- | 305 | * |
|
- | 306 | * When sampling at (x, y), the location is first rounded to one of |
|
- | 307 | * n_x_phases * n_y_phases subpixel positions. These subpixel positions |
|
- | 308 | * determine an xtable and a ytable to use. |
|
- | 309 | * |
|
- | 310 | * Conceptually a width x height matrix is then formed in which each entry |
|
- | 311 | * is the product of the corresponding entries in the x and y tables. |
|
- | 312 | * This matrix is then aligned with the image pixels such that its center |
|
- | 313 | * is as close as possible to the subpixel location chosen earlier. Then |
|
- | 314 | * the image is convolved with the matrix and the resulting pixel returned. |
|
- | 315 | */ |
|
- | 316 | PIXMAN_FILTER_SEPARABLE_CONVOLUTION |
|
293 | } pixman_filter_t; |
317 | } pixman_filter_t; |
Line 294... | Line 318... | ||
294 | 318 | ||
295 | typedef enum |
319 | typedef enum |
296 | { |
320 | { |
Line 464... | Line 488... | ||
464 | pixman_bool_t pixman_region_equal (pixman_region16_t *region1, |
488 | pixman_bool_t pixman_region_equal (pixman_region16_t *region1, |
465 | pixman_region16_t *region2); |
489 | pixman_region16_t *region2); |
466 | pixman_bool_t pixman_region_selfcheck (pixman_region16_t *region); |
490 | pixman_bool_t pixman_region_selfcheck (pixman_region16_t *region); |
467 | void pixman_region_reset (pixman_region16_t *region, |
491 | void pixman_region_reset (pixman_region16_t *region, |
468 | pixman_box16_t *box); |
492 | pixman_box16_t *box); |
- | 493 | void pixman_region_clear (pixman_region16_t *region); |
|
469 | /* |
494 | /* |
470 | * 32 bit regions |
495 | * 32 bit regions |
471 | */ |
496 | */ |
472 | typedef struct pixman_region32_data pixman_region32_data_t; |
497 | typedef struct pixman_region32_data pixman_region32_data_t; |
473 | typedef struct pixman_box32 pixman_box32_t; |
498 | typedef struct pixman_box32 pixman_box32_t; |
Line 558... | Line 583... | ||
558 | pixman_bool_t pixman_region32_equal (pixman_region32_t *region1, |
583 | pixman_bool_t pixman_region32_equal (pixman_region32_t *region1, |
559 | pixman_region32_t *region2); |
584 | pixman_region32_t *region2); |
560 | pixman_bool_t pixman_region32_selfcheck (pixman_region32_t *region); |
585 | pixman_bool_t pixman_region32_selfcheck (pixman_region32_t *region); |
561 | void pixman_region32_reset (pixman_region32_t *region, |
586 | void pixman_region32_reset (pixman_region32_t *region, |
562 | pixman_box32_t *box); |
587 | pixman_box32_t *box); |
- | 588 | void pixman_region32_clear (pixman_region32_t *region); |
|
Line 563... | Line 589... | ||
563 | 589 | ||
564 | 590 | ||
565 | /* Copy / Fill / Misc */ |
591 | /* Copy / Fill / Misc */ |
Line 569... | Line 595... | ||
569 | int dst_stride, |
595 | int dst_stride, |
570 | int src_bpp, |
596 | int src_bpp, |
571 | int dst_bpp, |
597 | int dst_bpp, |
572 | int src_x, |
598 | int src_x, |
573 | int src_y, |
599 | int src_y, |
574 | int dst_x, |
600 | int dest_x, |
575 | int dst_y, |
601 | int dest_y, |
576 | int width, |
602 | int width, |
577 | int height); |
603 | int height); |
578 | pixman_bool_t pixman_fill (uint32_t *bits, |
604 | pixman_bool_t pixman_fill (uint32_t *bits, |
579 | int stride, |
605 | int stride, |
580 | int bpp, |
606 | int bpp, |
Line 648... | Line 674... | ||
648 | #define PIXMAN_TYPE_COLOR 4 |
674 | #define PIXMAN_TYPE_COLOR 4 |
649 | #define PIXMAN_TYPE_GRAY 5 |
675 | #define PIXMAN_TYPE_GRAY 5 |
650 | #define PIXMAN_TYPE_YUY2 6 |
676 | #define PIXMAN_TYPE_YUY2 6 |
651 | #define PIXMAN_TYPE_YV12 7 |
677 | #define PIXMAN_TYPE_YV12 7 |
652 | #define PIXMAN_TYPE_BGRA 8 |
678 | #define PIXMAN_TYPE_BGRA 8 |
- | 679 | #define PIXMAN_TYPE_RGBA 9 |
|
- | 680 | #define PIXMAN_TYPE_ARGB_SRGB 10 |
|
Line 653... | Line 681... | ||
653 | 681 | ||
654 | #define PIXMAN_FORMAT_COLOR(f) \ |
682 | #define PIXMAN_FORMAT_COLOR(f) \ |
655 | (PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_ARGB || \ |
683 | (PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_ARGB || \ |
- | 684 | PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_ABGR || \ |
|
656 | PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_ABGR || \ |
685 | PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_BGRA || \ |
Line 657... | Line 686... | ||
657 | PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_BGRA) |
686 | PIXMAN_FORMAT_TYPE(f) == PIXMAN_TYPE_RGBA) |
658 | 687 | ||
659 | /* 32bpp formats */ |
688 | /* 32bpp formats */ |
660 | typedef enum { |
689 | typedef enum { |
661 | PIXMAN_a8r8g8b8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,8,8,8,8), |
690 | PIXMAN_a8r8g8b8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,8,8,8,8), |
662 | PIXMAN_x8r8g8b8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,8,8,8), |
691 | PIXMAN_x8r8g8b8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,8,8,8), |
663 | PIXMAN_a8b8g8r8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,8,8,8,8), |
692 | PIXMAN_a8b8g8r8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,8,8,8,8), |
664 | PIXMAN_x8b8g8r8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,0,8,8,8), |
693 | PIXMAN_x8b8g8r8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,0,8,8,8), |
- | 694 | PIXMAN_b8g8r8a8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_BGRA,8,8,8,8), |
|
- | 695 | PIXMAN_b8g8r8x8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_BGRA,0,8,8,8), |
|
665 | PIXMAN_b8g8r8a8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_BGRA,8,8,8,8), |
696 | PIXMAN_r8g8b8a8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_RGBA,8,8,8,8), |
666 | PIXMAN_b8g8r8x8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_BGRA,0,8,8,8), |
697 | PIXMAN_r8g8b8x8 = PIXMAN_FORMAT(32,PIXMAN_TYPE_RGBA,0,8,8,8), |
667 | PIXMAN_x14r6g6b6 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,6,6,6), |
698 | PIXMAN_x14r6g6b6 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,6,6,6), |
668 | PIXMAN_x2r10g10b10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,10,10,10), |
699 | PIXMAN_x2r10g10b10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,10,10,10), |
669 | PIXMAN_a2r10g10b10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,2,10,10,10), |
700 | PIXMAN_a2r10g10b10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,2,10,10,10), |
Line -... | Line 701... | ||
- | 701 | PIXMAN_x2b10g10r10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,0,10,10,10), |
|
- | 702 | PIXMAN_a2b10g10r10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,2,10,10,10), |
|
- | 703 | ||
670 | PIXMAN_x2b10g10r10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,0,10,10,10), |
704 | /* sRGB formats */ |
671 | PIXMAN_a2b10g10r10 = PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,2,10,10,10), |
705 | PIXMAN_a8r8g8b8_sRGB = PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB_SRGB,8,8,8,8), |
672 | 706 | ||
Line 673... | Line 707... | ||
673 | /* 24bpp formats */ |
707 | /* 24bpp formats */ |
Line 725... | Line 759... | ||
725 | /* Querying supported format values. */ |
759 | /* Querying supported format values. */ |
726 | pixman_bool_t pixman_format_supported_destination (pixman_format_code_t format); |
760 | pixman_bool_t pixman_format_supported_destination (pixman_format_code_t format); |
727 | pixman_bool_t pixman_format_supported_source (pixman_format_code_t format); |
761 | pixman_bool_t pixman_format_supported_source (pixman_format_code_t format); |
Line 728... | Line 762... | ||
728 | 762 | ||
729 | /* Constructors */ |
763 | /* Constructors */ |
730 | pixman_image_t *pixman_image_create_solid_fill (pixman_color_t *color); |
764 | pixman_image_t *pixman_image_create_solid_fill (const pixman_color_t *color); |
731 | pixman_image_t *pixman_image_create_linear_gradient (pixman_point_fixed_t *p1, |
765 | pixman_image_t *pixman_image_create_linear_gradient (const pixman_point_fixed_t *p1, |
732 | pixman_point_fixed_t *p2, |
766 | const pixman_point_fixed_t *p2, |
733 | const pixman_gradient_stop_t *stops, |
767 | const pixman_gradient_stop_t *stops, |
734 | int n_stops); |
768 | int n_stops); |
735 | pixman_image_t *pixman_image_create_radial_gradient (pixman_point_fixed_t *inner, |
769 | pixman_image_t *pixman_image_create_radial_gradient (const pixman_point_fixed_t *inner, |
736 | pixman_point_fixed_t *outer, |
770 | const pixman_point_fixed_t *outer, |
737 | pixman_fixed_t inner_radius, |
771 | pixman_fixed_t inner_radius, |
738 | pixman_fixed_t outer_radius, |
772 | pixman_fixed_t outer_radius, |
739 | const pixman_gradient_stop_t *stops, |
773 | const pixman_gradient_stop_t *stops, |
740 | int n_stops); |
774 | int n_stops); |
741 | pixman_image_t *pixman_image_create_conical_gradient (pixman_point_fixed_t *center, |
775 | pixman_image_t *pixman_image_create_conical_gradient (const pixman_point_fixed_t *center, |
742 | pixman_fixed_t angle, |
776 | pixman_fixed_t angle, |
743 | const pixman_gradient_stop_t *stops, |
777 | const pixman_gradient_stop_t *stops, |
744 | int n_stops); |
778 | int n_stops); |
745 | pixman_image_t *pixman_image_create_bits (pixman_format_code_t format, |
779 | pixman_image_t *pixman_image_create_bits (pixman_format_code_t format, |
746 | int width, |
780 | int width, |
747 | int height, |
781 | int height, |
748 | uint32_t *bits, |
782 | uint32_t *bits, |
- | 783 | int rowstride_bytes); |
|
- | 784 | pixman_image_t *pixman_image_create_bits_no_clear (pixman_format_code_t format, |
|
- | 785 | int width, |
|
- | 786 | int height, |
|
- | 787 | uint32_t * bits, |
|
Line 749... | Line 788... | ||
749 | int rowstride_bytes); |
788 | int rowstride_bytes); |
750 | 789 | ||
751 | /* Destructor */ |
790 | /* Destructor */ |
Line 790... | Line 829... | ||
790 | int pixman_image_get_width (pixman_image_t *image); |
829 | int pixman_image_get_width (pixman_image_t *image); |
791 | int pixman_image_get_height (pixman_image_t *image); |
830 | int pixman_image_get_height (pixman_image_t *image); |
792 | int pixman_image_get_stride (pixman_image_t *image); /* in bytes */ |
831 | int pixman_image_get_stride (pixman_image_t *image); /* in bytes */ |
793 | int pixman_image_get_depth (pixman_image_t *image); |
832 | int pixman_image_get_depth (pixman_image_t *image); |
794 | pixman_format_code_t pixman_image_get_format (pixman_image_t *image); |
833 | pixman_format_code_t pixman_image_get_format (pixman_image_t *image); |
- | 834 | ||
- | 835 | typedef enum |
|
- | 836 | { |
|
- | 837 | PIXMAN_KERNEL_IMPULSE, |
|
- | 838 | PIXMAN_KERNEL_BOX, |
|
- | 839 | PIXMAN_KERNEL_LINEAR, |
|
- | 840 | PIXMAN_KERNEL_CUBIC, |
|
- | 841 | PIXMAN_KERNEL_GAUSSIAN, |
|
- | 842 | PIXMAN_KERNEL_LANCZOS2, |
|
- | 843 | PIXMAN_KERNEL_LANCZOS3, |
|
- | 844 | PIXMAN_KERNEL_LANCZOS3_STRETCHED /* Jim Blinn's 'nice' filter */ |
|
- | 845 | } pixman_kernel_t; |
|
- | 846 | ||
- | 847 | /* Create the parameter list for a SEPARABLE_CONVOLUTION filter |
|
- | 848 | * with the given kernels and scale parameters. |
|
- | 849 | */ |
|
- | 850 | pixman_fixed_t * |
|
- | 851 | pixman_filter_create_separable_convolution (int *n_values, |
|
- | 852 | pixman_fixed_t scale_x, |
|
- | 853 | pixman_fixed_t scale_y, |
|
- | 854 | pixman_kernel_t reconstruct_x, |
|
- | 855 | pixman_kernel_t reconstruct_y, |
|
- | 856 | pixman_kernel_t sample_x, |
|
- | 857 | pixman_kernel_t sample_y, |
|
- | 858 | int subsample_bits_x, |
|
- | 859 | int subsample_bits_y); |
|
- | 860 | ||
795 | pixman_bool_t pixman_image_fill_rectangles (pixman_op_t op, |
861 | pixman_bool_t pixman_image_fill_rectangles (pixman_op_t op, |
796 | pixman_image_t *image, |
862 | pixman_image_t *image, |
797 | pixman_color_t *color, |
863 | const pixman_color_t *color, |
798 | int n_rects, |
864 | int n_rects, |
799 | const pixman_rectangle16_t *rects); |
865 | const pixman_rectangle16_t *rects); |
800 | pixman_bool_t pixman_image_fill_boxes (pixman_op_t op, |
866 | pixman_bool_t pixman_image_fill_boxes (pixman_op_t op, |
801 | pixman_image_t *dest, |
867 | pixman_image_t *dest, |
802 | pixman_color_t *color, |
868 | const pixman_color_t *color, |
803 | int n_boxes, |
869 | int n_boxes, |
804 | const pixman_box32_t *boxes); |
870 | const pixman_box32_t *boxes); |
Line 805... | Line 871... | ||
805 | 871 | ||
806 | /* Composite */ |
872 | /* Composite */ |
807 | pixman_bool_t pixman_compute_composite_region (pixman_region16_t *region, |
873 | pixman_bool_t pixman_compute_composite_region (pixman_region16_t *region, |
808 | pixman_image_t *src_image, |
874 | pixman_image_t *src_image, |
809 | pixman_image_t *mask_image, |
875 | pixman_image_t *mask_image, |
810 | pixman_image_t *dst_image, |
876 | pixman_image_t *dest_image, |
811 | int16_t src_x, |
877 | int16_t src_x, |
812 | int16_t src_y, |
878 | int16_t src_y, |
813 | int16_t mask_x, |
879 | int16_t mask_x, |
814 | int16_t mask_y, |
880 | int16_t mask_y, |
Line 839... | Line 905... | ||
839 | int32_t dest_x, |
905 | int32_t dest_x, |
840 | int32_t dest_y, |
906 | int32_t dest_y, |
841 | int32_t width, |
907 | int32_t width, |
842 | int32_t height); |
908 | int32_t height); |
Line -... | Line 909... | ||
- | 909 | ||
- | 910 | /* Executive Summary: This function is a no-op that only exists |
|
- | 911 | * for historical reasons. |
|
- | 912 | * |
|
843 | 913 | * There used to be a bug in the X server where it would rely on |
|
844 | /* Old X servers rely on out-of-bounds accesses when they are asked |
914 | * out-of-bounds accesses when it was asked to composite with a |
845 | * to composite with a window as the source. They create a pixman image |
915 | * window as the source. It would create a pixman image pointing |
846 | * pointing to some bogus position in memory, but then they set a clip |
916 | * to some bogus position in memory, but then set a clip region |
847 | * region to the position where the actual bits are. |
917 | * to the position where the actual bits were. |
848 | * |
918 | * |
849 | * Due to a bug in old versions of pixman, where it would not clip |
919 | * Due to a bug in old versions of pixman, where it would not clip |
850 | * against the image bounds when a clip region was set, this would |
920 | * against the image bounds when a clip region was set, this would |
851 | * actually work. So by default we allow certain out-of-bound access |
921 | * actually work. So when the pixman bug was fixed, a workaround was |
- | 922 | * added to allow certain out-of-bound accesses. This function disabled |
|
852 | * to happen unless explicitly disabled. |
923 | * those workarounds. |
853 | * |
924 | * |
- | 925 | * Since 0.21.2, pixman doesn't do these workarounds anymore, so now this |
|
854 | * Fixed X servers should call this function to disable the workaround. |
926 | * function is a no-op. |
855 | */ |
927 | */ |
Line 856... | Line 928... | ||
856 | void pixman_disable_out_of_bounds_workaround (void); |
928 | void pixman_disable_out_of_bounds_workaround (void); |
- | 929 | ||
- | 930 | /* |
|
- | 931 | * Glyphs |
|
- | 932 | */ |
|
- | 933 | typedef struct pixman_glyph_cache_t pixman_glyph_cache_t; |
|
- | 934 | typedef struct |
|
- | 935 | { |
|
- | 936 | int x, y; |
|
- | 937 | const void *glyph; |
|
- | 938 | } pixman_glyph_t; |
|
- | 939 | ||
- | 940 | pixman_glyph_cache_t *pixman_glyph_cache_create (void); |
|
- | 941 | void pixman_glyph_cache_destroy (pixman_glyph_cache_t *cache); |
|
- | 942 | void pixman_glyph_cache_freeze (pixman_glyph_cache_t *cache); |
|
- | 943 | void pixman_glyph_cache_thaw (pixman_glyph_cache_t *cache); |
|
- | 944 | const void * pixman_glyph_cache_lookup (pixman_glyph_cache_t *cache, |
|
- | 945 | void *font_key, |
|
- | 946 | void *glyph_key); |
|
- | 947 | const void * pixman_glyph_cache_insert (pixman_glyph_cache_t *cache, |
|
- | 948 | void *font_key, |
|
- | 949 | void *glyph_key, |
|
- | 950 | int origin_x, |
|
- | 951 | int origin_y, |
|
- | 952 | pixman_image_t *glyph_image); |
|
- | 953 | void pixman_glyph_cache_remove (pixman_glyph_cache_t *cache, |
|
- | 954 | void *font_key, |
|
- | 955 | void *glyph_key); |
|
- | 956 | void pixman_glyph_get_extents (pixman_glyph_cache_t *cache, |
|
- | 957 | int n_glyphs, |
|
- | 958 | pixman_glyph_t *glyphs, |
|
- | 959 | pixman_box32_t *extents); |
|
- | 960 | pixman_format_code_t pixman_glyph_get_mask_format (pixman_glyph_cache_t *cache, |
|
- | 961 | int n_glyphs, |
|
- | 962 | const pixman_glyph_t *glyphs); |
|
- | 963 | void pixman_composite_glyphs (pixman_op_t op, |
|
- | 964 | pixman_image_t *src, |
|
- | 965 | pixman_image_t *dest, |
|
- | 966 | pixman_format_code_t mask_format, |
|
- | 967 | int32_t src_x, |
|
- | 968 | int32_t src_y, |
|
- | 969 | int32_t mask_x, |
|
- | 970 | int32_t mask_y, |
|
- | 971 | int32_t dest_x, |
|
- | 972 | int32_t dest_y, |
|
- | 973 | int32_t width, |
|
- | 974 | int32_t height, |
|
- | 975 | pixman_glyph_cache_t *cache, |
|
- | 976 | int n_glyphs, |
|
- | 977 | const pixman_glyph_t *glyphs); |
|
- | 978 | void pixman_composite_glyphs_no_mask (pixman_op_t op, |
|
- | 979 | pixman_image_t *src, |
|
- | 980 | pixman_image_t *dest, |
|
- | 981 | int32_t src_x, |
|
- | 982 | int32_t src_y, |
|
- | 983 | int32_t dest_x, |
|
- | 984 | int32_t dest_y, |
|
- | 985 | pixman_glyph_cache_t *cache, |
|
- | 986 | int n_glyphs, |
|
- | 987 | const pixman_glyph_t *glyphs); |
|
857 | 988 | ||
858 | /* |
989 | /* |
859 | * Trapezoids |
990 | * Trapezoids |
860 | */ |
991 | */ |
861 | typedef struct pixman_edge pixman_edge_t; |
992 | typedef struct pixman_edge pixman_edge_t; |
862 | typedef struct pixman_trapezoid pixman_trapezoid_t; |
993 | typedef struct pixman_trapezoid pixman_trapezoid_t; |
- | 994 | typedef struct pixman_trap pixman_trap_t; |
|
Line 863... | Line 995... | ||
863 | typedef struct pixman_trap pixman_trap_t; |
995 | typedef struct pixman_span_fix pixman_span_fix_t; |
864 | typedef struct pixman_span_fix pixman_span_fix_t; |
996 | typedef struct pixman_triangle pixman_triangle_t; |
865 | 997 | ||
866 | /* |
998 | /* |
Line 887... | Line 1019... | ||
887 | { |
1019 | { |
888 | pixman_fixed_t top, bottom; |
1020 | pixman_fixed_t top, bottom; |
889 | pixman_line_fixed_t left, right; |
1021 | pixman_line_fixed_t left, right; |
890 | }; |
1022 | }; |
Line -... | Line 1023... | ||
- | 1023 | ||
- | 1024 | struct pixman_triangle |
|
- | 1025 | { |
|
- | 1026 | pixman_point_fixed_t p1, p2, p3; |
|
Line 891... | Line 1027... | ||
891 | 1027 | }; |
|
892 | 1028 | ||
893 | /* whether 't' is a well defined not obviously empty trapezoid */ |
1029 | /* whether 't' is a well defined not obviously empty trapezoid */ |
894 | #define pixman_trapezoid_valid(t) \ |
1030 | #define pixman_trapezoid_valid(t) \ |
Line 932... | Line 1068... | ||
932 | pixman_fixed_t b); |
1068 | pixman_fixed_t b); |
933 | void pixman_add_traps (pixman_image_t *image, |
1069 | void pixman_add_traps (pixman_image_t *image, |
934 | int16_t x_off, |
1070 | int16_t x_off, |
935 | int16_t y_off, |
1071 | int16_t y_off, |
936 | int ntrap, |
1072 | int ntrap, |
937 | pixman_trap_t *traps); |
1073 | const pixman_trap_t *traps); |
938 | void pixman_add_trapezoids (pixman_image_t *image, |
1074 | void pixman_add_trapezoids (pixman_image_t *image, |
939 | int16_t x_off, |
1075 | int16_t x_off, |
940 | int y_off, |
1076 | int y_off, |
941 | int ntraps, |
1077 | int ntraps, |
942 | const pixman_trapezoid_t *traps); |
1078 | const pixman_trapezoid_t *traps); |
943 | void pixman_rasterize_trapezoid (pixman_image_t *image, |
1079 | void pixman_rasterize_trapezoid (pixman_image_t *image, |
944 | const pixman_trapezoid_t *trap, |
1080 | const pixman_trapezoid_t *trap, |
945 | int x_off, |
1081 | int x_off, |
946 | int y_off); |
1082 | int y_off); |
- | 1083 | void pixman_composite_trapezoids (pixman_op_t op, |
|
- | 1084 | pixman_image_t * src, |
|
- | 1085 | pixman_image_t * dst, |
|
- | 1086 | pixman_format_code_t mask_format, |
|
- | 1087 | int x_src, |
|
- | 1088 | int y_src, |
|
- | 1089 | int x_dst, |
|
- | 1090 | int y_dst, |
|
- | 1091 | int n_traps, |
|
- | 1092 | const pixman_trapezoid_t * traps); |
|
- | 1093 | void pixman_composite_triangles (pixman_op_t op, |
|
- | 1094 | pixman_image_t * src, |
|
- | 1095 | pixman_image_t * dst, |
|
- | 1096 | pixman_format_code_t mask_format, |
|
- | 1097 | int x_src, |
|
- | 1098 | int y_src, |
|
- | 1099 | int x_dst, |
|
- | 1100 | int y_dst, |
|
- | 1101 | int n_tris, |
|
- | 1102 | const pixman_triangle_t * tris); |
|
- | 1103 | void pixman_add_triangles (pixman_image_t *image, |
|
- | 1104 | int32_t x_off, |
|
- | 1105 | int32_t y_off, |
|
- | 1106 | int n_tris, |
|
- | 1107 | const pixman_triangle_t *tris); |
|
Line 947... | Line 1108... | ||
947 | 1108 | ||
Line 948... | Line 1109... | ||
948 | PIXMAN_END_DECLS |
1109 | PIXMAN_END_DECLS |