1 #ifndef CLIB_PIXMAN_PROTOS_H
    2 #define CLIB_PIXMAN_PROTOS_H
    3 
    4 /*
    5 	pixman.library C prototypes
    6 
    7 	Copyright © 2009-2026 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef LIBRARIES_PIXMAN_H
   11 # include <libraries/pixman.h>
   12 #endif
   13 
   14 
   15 #ifdef __cplusplus
   16 extern "C" {
   17 #endif
   18 
   19 void          pixman_transform_init_identity    (struct pixman_transform       *matrix);
   20 pixman_bool_t pixman_transform_point_3d         (const struct pixman_transform *transform,
   21 						 struct pixman_vector          *vector);
   22 pixman_bool_t pixman_transform_point            (const struct pixman_transform *transform,
   23 						 struct pixman_vector          *vector);
   24 pixman_bool_t pixman_transform_multiply         (struct pixman_transform       *dst,
   25 						 const struct pixman_transform *l,
   26 						 const struct pixman_transform *r);
   27 void          pixman_transform_init_scale       (struct pixman_transform       *t,
   28 						 pixman_fixed_t                 sx,
   29 						 pixman_fixed_t                 sy);
   30 pixman_bool_t pixman_transform_scale            (struct pixman_transform       *forward,
   31 						 struct pixman_transform       *reverse,
   32 						 pixman_fixed_t                 sx,
   33 						 pixman_fixed_t                 sy);
   34 void          pixman_transform_init_rotate      (struct pixman_transform       *t,
   35 						 pixman_fixed_t                 cos,
   36 						 pixman_fixed_t                 sin);
   37 pixman_bool_t pixman_transform_rotate           (struct pixman_transform       *forward,
   38 						 struct pixman_transform       *reverse,
   39 						 pixman_fixed_t                 c,
   40 						 pixman_fixed_t                 s);
   41 void          pixman_transform_init_translate   (struct pixman_transform       *t,
   42 						 pixman_fixed_t                 tx,
   43 						 pixman_fixed_t                 ty);
   44 pixman_bool_t pixman_transform_translate        (struct pixman_transform       *forward,
   45 						 struct pixman_transform       *reverse,
   46 						 pixman_fixed_t                 tx,
   47 						 pixman_fixed_t                 ty);
   48 pixman_bool_t pixman_transform_bounds           (const struct pixman_transform *matrix,
   49 						 struct pixman_box16           *b);
   50 pixman_bool_t pixman_transform_invert           (struct pixman_transform       *dst,
   51 						 const struct pixman_transform *src);
   52 pixman_bool_t pixman_transform_is_identity      (const struct pixman_transform *t);
   53 pixman_bool_t pixman_transform_is_scale         (const struct pixman_transform *t);
   54 pixman_bool_t pixman_transform_is_int_translate (const struct pixman_transform *t);
   55 pixman_bool_t pixman_transform_is_inverse       (const struct pixman_transform *a,
   56 						 const struct pixman_transform *b);
   57 
   58 pixman_bool_t pixman_transform_from_pixman_f_transform (struct pixman_transform         *t,
   59 							const struct pixman_f_transform *ft);
   60 void          pixman_f_transform_from_pixman_transform (struct pixman_f_transform       *ft,
   61 							const struct pixman_transform   *t);
   62 pixman_bool_t pixman_f_transform_invert                (struct pixman_f_transform       *dst,
   63 							const struct pixman_f_transform *src);
   64 pixman_bool_t pixman_f_transform_point                 (const struct pixman_f_transform *t,
   65 							struct pixman_f_vector          *v);
   66 void          pixman_f_transform_point_3d              (const struct pixman_f_transform *t,
   67 							struct pixman_f_vector          *v);
   68 void          pixman_f_transform_multiply              (struct pixman_f_transform       *dst,
   69 							const struct pixman_f_transform *l,
   70 							const struct pixman_f_transform *r);
   71 void          pixman_f_transform_init_scale            (struct pixman_f_transform       *t,
   72 							double                           sx,
   73 							double                           sy);
   74 pixman_bool_t pixman_f_transform_scale                 (struct pixman_f_transform       *forward,
   75 							struct pixman_f_transform       *reverse,
   76 							double                           sx,
   77 							double                           sy);
   78 void          pixman_f_transform_init_rotate           (struct pixman_f_transform       *t,
   79 							double                           cos,
   80 							double                           sin);
   81 pixman_bool_t pixman_f_transform_rotate                (struct pixman_f_transform       *forward,
   82 							struct pixman_f_transform       *reverse,
   83 							double                           c,
   84 							double                           s);
   85 void          pixman_f_transform_init_translate        (struct pixman_f_transform       *t,
   86 							double                           tx,
   87 							double                           ty);
   88 pixman_bool_t pixman_f_transform_translate             (struct pixman_f_transform       *forward,
   89 							struct pixman_f_transform       *reverse,
   90 							double                           tx,
   91 							double                           ty);
   92 pixman_bool_t pixman_f_transform_bounds                (const struct pixman_f_transform *t,
   93 							struct pixman_box16             *b);
   94 void          pixman_f_transform_init_identity         (struct pixman_f_transform       *t);
   95 
   96 void                    pixman_region_init               (pixman_region16_t *region);
   97 void                    pixman_region_init_rect          (pixman_region16_t *region,
   98 							  int                x,
   99 							  int                y,
  100 							  unsigned int       width,
  101 							  unsigned int       height);
  102 pixman_bool_t           pixman_region_init_rects         (pixman_region16_t    *region,
  103 							  const pixman_box16_t *boxes,
  104 							  int                  count);
  105 void                    pixman_region_init_with_extents  (pixman_region16_t       *region,
  106 							  const pixman_box16_t    *extents);
  107 void                    pixman_region_init_from_image    (pixman_region16_t *region,
  108 							  pixman_image_t    *image);
  109 void                    pixman_region_fini               (pixman_region16_t *region);
  110 
  111 void                    pixman_region_translate          (pixman_region16_t *region,
  112 							  int                x,
  113 							  int                y);
  114 pixman_bool_t           pixman_region_copy               (pixman_region16_t       *dest,
  115 							  const pixman_region16_t *source);
  116 pixman_bool_t           pixman_region_intersect          (pixman_region16_t       *new_reg,
  117 							  const pixman_region16_t *reg1,
  118 							  const pixman_region16_t *reg2);
  119 pixman_bool_t           pixman_region_union              (pixman_region16_t       *new_reg,
  120 							  const pixman_region16_t *reg1,
  121 							  const pixman_region16_t *reg2);
  122 pixman_bool_t           pixman_region_union_rect         (pixman_region16_t       *dest,
  123 							  const pixman_region16_t *source,
  124 							  int                      x,
  125 							  int                      y,
  126 							  unsigned int             width,
  127 							  unsigned int             height);
  128 pixman_bool_t		pixman_region_intersect_rect     (pixman_region16_t       *dest,
  129 							  const pixman_region16_t *source,
  130 							  int                      x,
  131 							  int                      y,
  132 							  unsigned int             width,
  133 							  unsigned int             height);
  134 pixman_bool_t           pixman_region_subtract           (pixman_region16_t       *reg_d,
  135 							  const pixman_region16_t *reg_m,
  136 							  const pixman_region16_t *reg_s);
  137 pixman_bool_t           pixman_region_inverse            (pixman_region16_t       *new_reg,
  138 							  const pixman_region16_t *reg1,
  139 							  const pixman_box16_t    *inv_rect);
  140 pixman_bool_t           pixman_region_contains_point     (const pixman_region16_t *region,
  141 							  int                     x,
  142 							  int                     y,
  143 							  pixman_box16_t           *box);
  144 pixman_region_overlap_t pixman_region_contains_rectangle (const pixman_region16_t *region,
  145 							  const pixman_box16_t    *prect);
  146 pixman_bool_t           pixman_region_empty              (const pixman_region16_t *region);
  147 pixman_bool_t           pixman_region_not_empty          (const pixman_region16_t *region);
  148 pixman_box16_t *        pixman_region_extents            (const pixman_region16_t *region);
  149 int                     pixman_region_n_rects            (const pixman_region16_t *region);
  150 pixman_box16_t *        pixman_region_rectangles         (const pixman_region16_t *region,
  151 							  int                     *n_rects);
  152 pixman_bool_t           pixman_region_equal              (const pixman_region16_t *region1,
  153 							  const pixman_region16_t *region2);
  154 pixman_bool_t           pixman_region_selfcheck          (pixman_region16_t *region);
  155 void                    pixman_region_reset              (pixman_region16_t       *region,
  156 							  const pixman_box16_t    *box);
  157 
  158 void                    pixman_region32_init               (pixman_region32_t *region);
  159 void                    pixman_region32_init_rect          (pixman_region32_t *region,
  160 							    int                x,
  161 							    int                y,
  162 							    unsigned int       width,
  163 							    unsigned int       height);
  164 pixman_bool_t           pixman_region32_init_rects         (pixman_region32_t *region,
  165 							    const pixman_box32_t *boxes,
  166 							    int                count);
  167 void                    pixman_region32_init_with_extents  (pixman_region32_t    *region,
  168 							    const pixman_box32_t *extents);
  169 void                    pixman_region32_init_from_image    (pixman_region32_t *region,
  170 							    pixman_image_t    *image);
  171 void                    pixman_region32_fini               (pixman_region32_t *region);
  172 
  173 void                    pixman_region32_translate          (pixman_region32_t *region,
  174 							    int                x,
  175 							    int                y);
  176 pixman_bool_t           pixman_region32_copy               (pixman_region32_t       *dest,
  177 							    const pixman_region32_t *source);
  178 pixman_bool_t           pixman_region32_intersect          (pixman_region32_t       *new_reg,
  179 							    const pixman_region32_t *reg1,
  180 							    const pixman_region32_t *reg2);
  181 pixman_bool_t           pixman_region32_union              (pixman_region32_t       *new_reg,
  182 							    const pixman_region32_t *reg1,
  183 							    const pixman_region32_t *reg2);
  184 pixman_bool_t		pixman_region32_intersect_rect     (pixman_region32_t       *dest,
  185 							    const pixman_region32_t *source,
  186 							    int                      x,
  187 							    int                      y,
  188 							    unsigned int             width,
  189 							    unsigned int             height);
  190 pixman_bool_t           pixman_region32_union_rect         (pixman_region32_t       *dest,
  191 							    const pixman_region32_t *source,
  192 							    int                      x,
  193 							    int                      y,
  194 							    unsigned int             width,
  195 							    unsigned int             height);
  196 pixman_bool_t           pixman_region32_subtract           (pixman_region32_t       *reg_d,
  197 							    const pixman_region32_t *reg_m,
  198 							    const pixman_region32_t *reg_s);
  199 pixman_bool_t           pixman_region32_inverse            (pixman_region32_t       *new_reg,
  200 							    const pixman_region32_t *reg1,
  201 							    const pixman_box32_t    *inv_rect);
  202 pixman_bool_t           pixman_region32_contains_point     (const pixman_region32_t *region,
  203 							    int                      x,
  204 							    int                      y,
  205 							    pixman_box32_t          *box);
  206 pixman_region_overlap_t pixman_region32_contains_rectangle (const pixman_region32_t *region,
  207 							    const pixman_box32_t    *prect);
  208 pixman_bool_t           pixman_region32_empty              (const pixman_region32_t *region);
  209 pixman_bool_t           pixman_region32_not_empty          (const pixman_region32_t *region);
  210 pixman_box32_t *        pixman_region32_extents            (const pixman_region32_t *region);
  211 int                     pixman_region32_n_rects            (const pixman_region32_t *region);
  212 pixman_box32_t *        pixman_region32_rectangles         (const pixman_region32_t *region,
  213 							    int                     *n_rects);
  214 pixman_bool_t           pixman_region32_equal              (const pixman_region32_t *region1,
  215 							    const pixman_region32_t *region2);
  216 pixman_bool_t           pixman_region32_selfcheck          (pixman_region32_t *region);
  217 void                    pixman_region32_reset              (pixman_region32_t    *region,
  218 							    const pixman_box32_t *box);
  219 
  220 void                    pixman_region64f_init              (pixman_region64f_t *region);
  221 void                    pixman_region64f_init_rect         (pixman_region64f_t *region,
  222 							    int                 x,
  223 							    int                 y,
  224 							    unsigned int        width,
  225 							    unsigned int        height);
  226 void                    pixman_region64f_init_rectf        (pixman_region64f_t *region,
  227 							    double              x,
  228 							    double              y,
  229 							    double              width,
  230 							    double              height);
  231 pixman_bool_t           pixman_region64f_init_rects        (pixman_region64f_t *region,
  232 							    const pixman_box64f_t *boxes,
  233 							    int                 count);
  234 void                    pixman_region64f_init_with_extents (pixman_region64f_t    *region,
  235 							    const pixman_box64f_t *extents);
  236 void                    pixman_region64f_init_from_image   (pixman_region64f_t *region,
  237 							    pixman_image_t     *image);
  238 void                    pixman_region64f_fini              (pixman_region64f_t *region);
  239 void                    pixman_region64f_translate         (pixman_region64f_t *region,
  240 							    int                 x,
  241 							    int                 y);
  242 void                    pixman_region64f_translatef        (pixman_region64f_t *region,
  243 							    double              x,
  244 							    double              y);
  245 pixman_bool_t           pixman_region64f_copy              (pixman_region64f_t       *dest,
  246 							    const pixman_region64f_t *source);
  247 pixman_bool_t           pixman_region64f_intersect         (pixman_region64f_t       *new_reg,
  248 							    const pixman_region64f_t *reg1,
  249 							    const pixman_region64f_t *reg2);
  250 pixman_bool_t           pixman_region64f_union             (pixman_region64f_t       *new_reg,
  251 							    const pixman_region64f_t *reg1,
  252 							    const pixman_region64f_t *reg2);
  253 pixman_bool_t		pixman_region64f_intersect_rect    (pixman_region64f_t       *dest,
  254 							    const pixman_region64f_t *source,
  255 							    int                       x,
  256 							    int                       y,
  257 							    unsigned int              width,
  258 							    unsigned int              height);
  259 pixman_bool_t		pixman_region64f_intersect_rectf   (pixman_region64f_t       *dest,
  260 							    const pixman_region64f_t *source,
  261 							    double                    x,
  262 							    double                    y,
  263 							    double                    width,
  264 							    double                    height);
  265 pixman_bool_t           pixman_region64f_union_rect        (pixman_region64f_t       *dest,
  266 							    const pixman_region64f_t *source,
  267 							    int                       x,
  268 							    int                       y,
  269 							    unsigned int              width,
  270 							    unsigned int              height);
  271 pixman_bool_t           pixman_region64f_union_rectf       (pixman_region64f_t       *dest,
  272 							    const pixman_region64f_t *source,
  273 							    double                    x,
  274 							    double                    y,
  275 							    double                    width,
  276 							    double                    height);
  277 pixman_bool_t           pixman_region64f_subtract          (pixman_region64f_t       *reg_d,
  278 							    const pixman_region64f_t *reg_m,
  279 							    const pixman_region64f_t *reg_s);
  280 pixman_bool_t           pixman_region64f_inverse           (pixman_region64f_t       *new_reg,
  281 							    const pixman_region64f_t *reg1,
  282 							    const pixman_box64f_t    *inv_rect);
  283 pixman_bool_t           pixman_region64f_contains_point    (const pixman_region64f_t *region,
  284 							    int                       x,
  285 							    int                       y,
  286 							    pixman_box64f_t          *box);
  287 pixman_bool_t           pixman_region64f_contains_pointf   (const pixman_region64f_t *region,
  288 							    double                    x,
  289 							    double                    y,
  290 							    pixman_box64f_t          *box);
  291 pixman_region_overlap_t pixman_region64f_contains_rectangle(const pixman_region64f_t *region,
  292 							    const pixman_box64f_t    *prect);
  293 pixman_bool_t           pixman_region64f_empty             (const pixman_region64f_t *region);
  294 pixman_bool_t           pixman_region64f_not_empty         (const pixman_region64f_t *region);
  295 pixman_box64f_t *       pixman_region64f_extents           (const pixman_region64f_t *region);
  296 int                     pixman_region64f_n_rects           (const pixman_region64f_t *region);
  297 pixman_box64f_t *       pixman_region64f_rectangles        (const pixman_region64f_t *region,
  298 							    int                      *n_rects);
  299 pixman_bool_t           pixman_region64f_equal             (const pixman_region64f_t *region1,
  300 							    const pixman_region64f_t *region2);
  301 pixman_bool_t           pixman_region64f_selfcheck         (pixman_region64f_t *region);
  302 void                    pixman_region64f_reset             (pixman_region64f_t    *region,
  303 							    const pixman_box64f_t *box);
  304 void			pixman_region64f_clear		   (pixman_region64f_t *region);
  305 pixman_bool_t pixman_blt                (uint32_t           *src_bits,
  306 					 uint32_t           *dst_bits,
  307 					 int                 src_stride,
  308 					 int                 dst_stride,
  309 					 int                 src_bpp,
  310 					 int                 dst_bpp,
  311 					 int                 src_x,
  312 					 int                 src_y,
  313 					 int                 dest_x,
  314 					 int                 dest_y,
  315 					 int                 width,
  316 					 int                 height);
  317 pixman_bool_t pixman_fill               (uint32_t           *bits,
  318 					 int                 stride,
  319 					 int                 bpp,
  320 					 int                 x,
  321 					 int                 y,
  322 					 int                 width,
  323 					 int                 height,
  324 					 uint32_t            _xor);
  325 
  326 int           pixman_version            (void);
  327 const char*   pixman_version_string     (void);
  328 
  329 pixman_bool_t pixman_format_supported_destination (pixman_format_code_t format);
  330 pixman_bool_t pixman_format_supported_source      (pixman_format_code_t format);
  331 
  332 pixman_image_t *pixman_image_create_solid_fill       (const pixman_color_t         *color);
  333 pixman_image_t *pixman_image_create_linear_gradient  (const pixman_point_fixed_t   *p1,
  334 						      const pixman_point_fixed_t   *p2,
  335 						      const pixman_gradient_stop_t *stops,
  336 						      int                           n_stops);
  337 pixman_image_t *pixman_image_create_radial_gradient  (const pixman_point_fixed_t   *inner,
  338 						      const pixman_point_fixed_t   *outer,
  339 						      pixman_fixed_t                inner_radius,
  340 						      pixman_fixed_t                outer_radius,
  341 						      const pixman_gradient_stop_t *stops,
  342 						      int                           n_stops);
  343 pixman_image_t *pixman_image_create_conical_gradient (const pixman_point_fixed_t   *center,
  344 						      pixman_fixed_t                angle,
  345 						      const pixman_gradient_stop_t *stops,
  346 						      int                           n_stops);
  347 pixman_image_t *pixman_image_create_bits             (pixman_format_code_t          format,
  348 						      int                           width,
  349 						      int                           height,
  350 						      uint32_t                     *bits,
  351 						      int                           rowstride_bytes);
  352 
  353 pixman_image_t *pixman_image_ref                     (pixman_image_t               *image);
  354 pixman_bool_t   pixman_image_unref                   (pixman_image_t               *image);
  355 
  356 void		pixman_image_set_destroy_function    (pixman_image_t		   *image,
  357 						      pixman_image_destroy_func_t   function,
  358 						      void			   *data);
  359 void *		pixman_image_get_destroy_data        (pixman_image_t		   *image);
  360 
  361 pixman_bool_t   pixman_image_set_clip_region         (pixman_image_t               *image,
  362 						      const pixman_region16_t            *region);
  363 pixman_bool_t   pixman_image_set_clip_region32       (pixman_image_t               *image,
  364 						      const pixman_region32_t            *region);
  365 pixman_bool_t   pixman_image_set_clip_region64f      (pixman_image_t               *image,
  366 						      const pixman_region64f_t           *region);
  367 void		pixman_image_set_has_client_clip     (pixman_image_t               *image,
  368 						      pixman_bool_t		    clien_clip);
  369 pixman_bool_t   pixman_image_set_transform           (pixman_image_t               *image,
  370 						      const pixman_transform_t     *transform);
  371 void            pixman_image_set_repeat              (pixman_image_t               *image,
  372 						      pixman_repeat_t               repeat);
  373 void            pixman_image_set_dither              (pixman_image_t               *image,
  374 						      pixman_dither_t               dither);
  375 void            pixman_image_set_dither_offset       (pixman_image_t               *image,
  376 						      int                           offset_x,
  377 						      int                           offset_y);
  378 pixman_bool_t   pixman_image_set_filter              (pixman_image_t               *image,
  379 						      pixman_filter_t               filter,
  380 						      const pixman_fixed_t         *filter_params,
  381 						      int                           n_filter_params);
  382 void		pixman_image_set_source_clipping     (pixman_image_t		   *image,
  383 						      pixman_bool_t                 source_clipping);
  384 void            pixman_image_set_alpha_map           (pixman_image_t               *image,
  385 						      pixman_image_t               *alpha_map,
  386 						      int16_t                       x,
  387 						      int16_t                       y);
  388 void            pixman_image_set_component_alpha     (pixman_image_t               *image,
  389 						      pixman_bool_t                 component_alpha);
  390 pixman_bool_t   pixman_image_get_component_alpha     (pixman_image_t               *image);
  391 void		pixman_image_set_accessors	     (pixman_image_t		   *image,
  392 						      pixman_read_memory_func_t	    read_func,
  393 						      pixman_write_memory_func_t    write_func);
  394 void		pixman_image_set_indexed	     (pixman_image_t		   *image,
  395 						      const pixman_indexed_t	   *indexed);
  396 uint32_t       *pixman_image_get_data                (pixman_image_t               *image);
  397 int		pixman_image_get_width               (pixman_image_t               *image);
  398 int             pixman_image_get_height              (pixman_image_t               *image);
  399 int		pixman_image_get_stride              (pixman_image_t               *image); /* in bytes */
  400 int		pixman_image_get_depth               (pixman_image_t		   *image);
  401 pixman_format_code_t pixman_image_get_format	     (pixman_image_t		   *image);
  402 pixman_bool_t	pixman_image_fill_rectangles	     (pixman_op_t		    op,
  403 						      pixman_image_t		   *image,
  404 						      const pixman_color_t	   *color,
  405 						      int			    n_rects,
  406 						      const pixman_rectangle16_t   *rects);
  407 pixman_bool_t   pixman_image_fill_boxes              (pixman_op_t                   op,
  408                                                       pixman_image_t               *dest,
  409                                                       const pixman_color_t         *color,
  410                                                       int                           n_boxes,
  411                                                       const pixman_box32_t         *boxes);
  412 
  413 pixman_bool_t pixman_compute_composite_region (pixman_region16_t *region,
  414 					       pixman_image_t    *src_image,
  415 					       pixman_image_t    *mask_image,
  416 					       pixman_image_t    *dest_image,
  417 					       int16_t            src_x,
  418 					       int16_t            src_y,
  419 					       int16_t            mask_x,
  420 					       int16_t            mask_y,
  421 					       int16_t            dest_x,
  422 					       int16_t            dest_y,
  423 					       uint16_t           width,
  424 					       uint16_t           height);
  425 void          pixman_image_composite          (pixman_op_t        op,
  426 					       pixman_image_t    *src,
  427 					       pixman_image_t    *mask,
  428 					       pixman_image_t    *dest,
  429 					       int16_t            src_x,
  430 					       int16_t            src_y,
  431 					       int16_t            mask_x,
  432 					       int16_t            mask_y,
  433 					       int16_t            dest_x,
  434 					       int16_t            dest_y,
  435 					       uint16_t           width,
  436 					       uint16_t           height);
  437 void          pixman_image_composite32        (pixman_op_t        op,
  438 					       pixman_image_t    *src,
  439 					       pixman_image_t    *mask,
  440 					       pixman_image_t    *dest,
  441 					       int32_t            src_x,
  442 					       int32_t            src_y,
  443 					       int32_t            mask_x,
  444 					       int32_t            mask_y,
  445 					       int32_t            dest_x,
  446 					       int32_t            dest_y,
  447 					       int32_t            width,
  448 					       int32_t            height);
  449 void          pixman_image_composite64f       (pixman_op_t        op,
  450 					       pixman_image_t    *src,
  451 					       pixman_image_t    *mask,
  452 					       pixman_image_t    *dest,
  453 					       double             src_x,
  454 					       double             src_y,
  455 					       double             mask_x,
  456 					       double             mask_y,
  457 					       double             dest_x,
  458 					       double             dest_y,
  459 					       double             width,
  460 					       double             height);
  461 
  462 pixman_fixed_t pixman_sample_ceil_y        (pixman_fixed_t             y,
  463 					    int                        bpp);
  464 pixman_fixed_t pixman_sample_floor_y       (pixman_fixed_t             y,
  465 					    int                        bpp);
  466 void           pixman_edge_step            (pixman_edge_t             *e,
  467 					    int                        n);
  468 void           pixman_edge_init            (pixman_edge_t             *e,
  469 					    int                        bpp,
  470 					    pixman_fixed_t             y_start,
  471 					    pixman_fixed_t             x_top,
  472 					    pixman_fixed_t             y_top,
  473 					    pixman_fixed_t             x_bot,
  474 					    pixman_fixed_t             y_bot);
  475 void           pixman_line_fixed_edge_init (pixman_edge_t             *e,
  476 					    int                        bpp,
  477 					    pixman_fixed_t             y,
  478 					    const pixman_line_fixed_t *line,
  479 					    int                        x_off,
  480 					    int                        y_off);
  481 void           pixman_rasterize_edges      (pixman_image_t            *image,
  482 					    pixman_edge_t             *l,
  483 					    pixman_edge_t             *r,
  484 					    pixman_fixed_t             t,
  485 					    pixman_fixed_t             b);
  486 void           pixman_add_traps            (pixman_image_t            *image,
  487 					    int16_t                    x_off,
  488 					    int16_t                    y_off,
  489 					    int                        ntrap,
  490 					    const pixman_trap_t       *traps);
  491 void           pixman_add_trapezoids       (pixman_image_t            *image,
  492 					    int16_t                    x_off,
  493 					    int                        y_off,
  494 					    int                        ntraps,
  495 					    const pixman_trapezoid_t  *traps);
  496 void           pixman_rasterize_trapezoid  (pixman_image_t            *image,
  497 					    const pixman_trapezoid_t  *trap,
  498 					    int                        x_off,
  499 					    int                        y_off);
  500 void          pixman_composite_trapezoids (pixman_op_t		       op,
  501 					   pixman_image_t *	       src,
  502 					   pixman_image_t *	       dst,
  503 					   pixman_format_code_t	       mask_format,
  504 					   int			       x_src,
  505 					   int			       y_src,
  506 					   int			       x_dst,
  507 					   int			       y_dst,
  508 					   int			       n_traps,
  509 					   const pixman_trapezoid_t *  traps);
  510 void          pixman_composite_triangles (pixman_op_t		       op,
  511 					  pixman_image_t *	       src,
  512 					  pixman_image_t *	       dst,
  513 					  pixman_format_code_t	       mask_format,
  514 					  int			       x_src,
  515 					  int			       y_src,
  516 					  int			       x_dst,
  517 					  int			       y_dst,
  518 					  int			       n_tris,
  519 					  const pixman_triangle_t *    tris);
  520 void	      pixman_add_triangles       (pixman_image_t              *image,
  521 					  int32_t	               x_off,
  522 					  int32_t	               y_off,
  523 					  int	                       n_tris,
  524 					  const pixman_triangle_t     *tris);
  525 
  526 
  527 pixman_fixed_t *
  528 pixman_filter_create_separable_convolution (int             *n_values,
  529 					    pixman_fixed_t   scale_x,
  530 					    pixman_fixed_t   scale_y,
  531 					    pixman_kernel_t  reconstruct_x,
  532 					    pixman_kernel_t  reconstruct_y,
  533 					    pixman_kernel_t  sample_x,
  534 					    pixman_kernel_t  sample_y,
  535 					    int              subsample_bits_x,
  536 					    int              subsample_bits_y);
  537 
  538 #ifdef __cplusplus
  539 }
  540 #endif
  541 
  542 #endif /* CLIB_PIXMAN_PROTOS_H */