diff options
author | Benjamin Franzke <[email protected]> | 2011-03-09 20:56:02 +0100 |
---|---|---|
committer | Benjamin Franzke <[email protected]> | 2011-06-23 21:07:17 +0200 |
commit | 3af3c58dfd8b1ddc96fc10b6865de0cb26860dde (patch) | |
tree | db3d574843a579e7431eab28592aff2d53857b7b | |
parent | 5fbbd4c19fca6486050990893e8e8c1835ba0b4d (diff) |
intel: Implement DRIimageExtension::dupImage
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index e915ca04fe0..2a3a601ddba 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -282,13 +282,38 @@ intel_query_image(__DRIimage *image, int attrib, int *value) } } +static __DRIimage * +intel_dup_image(__DRIimage *orig_image, void *loaderPrivate) +{ + __DRIimage *image; + + image = CALLOC(sizeof *image); + if (image == NULL) + return NULL; + + image->region = NULL; + intel_region_reference(&image->region, orig_image->region); + if (image->region == NULL) { + FREE(image); + return NULL; + } + + image->internal_format = orig_image->internal_format; + image->format = orig_image->format; + image->data_type = orig_image->data_type; + image->data = loaderPrivate; + + return image; +} + static struct __DRIimageExtensionRec intelImageExtension = { { __DRI_IMAGE, __DRI_IMAGE_VERSION }, intel_create_image_from_name, intel_create_image_from_renderbuffer, intel_destroy_image, intel_create_image, - intel_query_image + intel_query_image, + intel_dup_image }; static const __DRIextension *intelScreenExtensions[] = { |