diff options
author | Ander Conselvan de Oliveira <[email protected]> | 2012-04-30 12:32:45 +0300 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2012-04-30 13:18:16 -0400 |
commit | 249817e92839d9ecdd78360eb3a856724df504c4 (patch) | |
tree | ad6be2ebfa279fe395f2c2ae4df78f4e5e8dcdc0 | |
parent | fc7d224e295c4cb641238c37612409b1174cea12 (diff) |
intel: set dri_format field for all images
Only images created with intel_create_image() had the field properly
set. Set it also on intel_dup_image(), intel_create_image_from_name()
and intel_create_image_from_renderbuffer().
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index ac21e96c653..ac6b22f7e06 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -188,6 +188,8 @@ intel_create_image_from_name(__DRIscreen *screen, if (image == NULL) return NULL; + image->dri_format = format; + switch (format) { case __DRI_IMAGE_FORMAT_RGB565: image->format = MESA_FORMAT_RGB565; @@ -255,6 +257,21 @@ intel_create_image_from_renderbuffer(__DRIcontext *context, image->data = loaderPrivate; intel_region_reference(&image->region, irb->mt->region); + switch (image->format) { + case MESA_FORMAT_RGB565: + image->dri_format = __DRI_IMAGE_FORMAT_RGB565; + break; + case MESA_FORMAT_XRGB8888: + image->dri_format = __DRI_IMAGE_FORMAT_XRGB8888; + break; + case MESA_FORMAT_ARGB8888: + image->dri_format = __DRI_IMAGE_FORMAT_ARGB8888; + break; + case MESA_FORMAT_RGBA8888_REV: + image->dri_format = __DRI_IMAGE_FORMAT_ABGR8888; + break; + } + return image; } @@ -365,6 +382,7 @@ intel_dup_image(__DRIimage *orig_image, void *loaderPrivate) } image->internal_format = orig_image->internal_format; + image->dri_format = orig_image->dri_format; image->format = orig_image->format; image->data_type = orig_image->data_type; image->data = loaderPrivate; |