summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <[email protected]>2012-04-30 12:32:45 +0300
committerKristian Høgsberg <[email protected]>2012-04-30 13:18:16 -0400
commit249817e92839d9ecdd78360eb3a856724df504c4 (patch)
treead6be2ebfa279fe395f2c2ae4df78f4e5e8dcdc0
parentfc7d224e295c4cb641238c37612409b1174cea12 (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.c18
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;