summaryrefslogtreecommitdiff
path: root/pixman/pixman-general.c
diff options
context:
space:
mode:
Diffstat (limited to 'pixman/pixman-general.c')
-rw-r--r--pixman/pixman-general.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
index f75e7b38..4f73331c 100644
--- a/pixman/pixman-general.c
+++ b/pixman/pixman-general.c
@@ -39,18 +39,12 @@
#include "pixman-combine32.h"
#include "pixman-private.h"
-static uint32_t *
-get_scanline_null (pixman_iter_t *iter, const uint32_t *mask)
-{
- return NULL;
-}
-
static void
-iter_init (pixman_implementation_t *imp,
- pixman_iter_t *iter,
- pixman_image_t *image,
- int x, int y, int width, int height,
- uint8_t *buffer, iter_flags_t flags)
+general_iter_init (pixman_implementation_t *imp,
+ pixman_iter_t *iter,
+ pixman_image_t *image,
+ int x, int y, int width, int height,
+ uint8_t *buffer, iter_flags_t flags)
{
iter->image = image;
iter->x = x;
@@ -58,12 +52,7 @@ iter_init (pixman_implementation_t *imp,
iter->width = width;
iter->buffer = (uint32_t *)buffer;
- if (!image)
- {
- iter->get_scanline = get_scanline_null;
- iter->next_line = _pixman_iter_next_line_noop;
- }
- else if (image->type == SOLID)
+ if (image->type == SOLID)
{
_pixman_solid_fill_iter_init (
image, iter, x, y, width, height, buffer, flags);
@@ -146,17 +135,17 @@ general_composite_rect (pixman_implementation_t *imp,
mask_buffer = src_buffer + width * Bpp;
dest_buffer = mask_buffer + width * Bpp;
- iter_init (imp->toplevel, &src_iter, src,
- src_x, src_y, width, height,
- src_buffer, narrow);
+ _pixman_implementation_iter_init (imp->toplevel, &src_iter, src,
+ src_x, src_y, width, height,
+ src_buffer, narrow);
- iter_init (imp->toplevel, &mask_iter, mask,
- mask_x, mask_y, width, height,
- mask_buffer, narrow);
+ _pixman_implementation_iter_init (imp->toplevel, &mask_iter, mask,
+ mask_x, mask_y, width, height,
+ mask_buffer, narrow);
- iter_init (imp->toplevel, &dest_iter, dest,
- dest_x, dest_y, width, height,
- dest_buffer, narrow | ITER_WRITE);
+ _pixman_implementation_iter_init (imp->toplevel, &dest_iter, dest,
+ dest_x, dest_y, width, height,
+ dest_buffer, narrow | ITER_WRITE);
component_alpha =
mask &&
@@ -251,6 +240,7 @@ _pixman_implementation_create_general (void)
imp->blt = general_blt;
imp->fill = general_fill;
+ imp->iter_init = general_iter_init;
return imp;
}