summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pixman/pixman-image.c22
-rw-r--r--pixman/pixman.h4
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,