diff options
| -rw-r--r-- | pixman/pixman-image.c | 22 | ||||
| -rw-r--r-- | pixman/pixman.h | 4 |
2 files changed, 22 insertions, 4 deletions
diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index 9b44aa9..6b878c3 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -697,8 +697,15 @@ pixman_image_set_accessors (pixman_image_t * image, PIXMAN_EXPORT uint32_t * pixman_image_get_data (pixman_image_t *image) { - if (image->type == BITS) - return image->bits.bits; + return pixman_image_get_data_for_plane (image, 0); +} + +PIXMAN_EXPORT uint32_t * +pixman_image_get_data_for_plane (pixman_image_t *image, + unsigned int plane) +{ + if (image->type == BITS && plane < PIXMAN_MAX_PLANES) + return image->bits.planes[plane].bits; return NULL; } @@ -724,8 +731,15 @@ pixman_image_get_height (pixman_image_t *image) PIXMAN_EXPORT int pixman_image_get_stride (pixman_image_t *image) { - if (image->type == BITS) - return image->bits.rowstride * (int) sizeof (uint32_t); + return pixman_image_get_stride_for_plane (image, 0); +} + +PIXMAN_EXPORT int +pixman_image_get_stride_for_plane (pixman_image_t *image, + unsigned int plane) +{ + if (image->type == BITS && plane < PIXMAN_MAX_PLANES) + return image->bits.planes[plane].rowstride * (int) sizeof (uint32_t); return 0; } diff --git a/pixman/pixman.h b/pixman/pixman.h index 4a740ec..89ce899 100644 --- a/pixman/pixman.h +++ b/pixman/pixman.h @@ -780,9 +780,13 @@ void pixman_image_set_accessors (pixman_image_t *image, void pixman_image_set_indexed (pixman_image_t *image, const pixman_indexed_t *indexed); uint32_t *pixman_image_get_data (pixman_image_t *image); +uint32_t *pixman_image_get_data_for_plane (pixman_image_t *image, + unsigned int plane); int pixman_image_get_width (pixman_image_t *image); int pixman_image_get_height (pixman_image_t *image); int pixman_image_get_stride (pixman_image_t *image); /* in bytes */ +int pixman_image_get_stride_for_plane (pixman_image_t *image, + unsigned int plane); int pixman_image_get_depth (pixman_image_t *image); pixman_bool_t pixman_image_fill_rectangles (pixman_op_t op, pixman_image_t *image, |
