summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/dri/drm
diff options
context:
space:
mode:
authorBenjamin Franzke <[email protected]>2011-03-09 20:55:02 +0100
committerBenjamin Franzke <[email protected]>2011-06-23 21:07:17 +0200
commit15d7f1c1c73735eb108710a01806712b11ce5e8a (patch)
treed703201022631047af9d623be34ed5fca3496809 /src/gallium/state_trackers/dri/drm
parent3af3c58dfd8b1ddc96fc10b6865de0cb26860dde (diff)
st/dri: Implement DRIimageExtension::dupImage
Diffstat (limited to 'src/gallium/state_trackers/dri/drm')
-rw-r--r--src/gallium/state_trackers/dri/drm/dri2.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c
index e471e8e5be2..0296a78092a 100644
--- a/src/gallium/state_trackers/dri/drm/dri2.c
+++ b/src/gallium/state_trackers/dri/drm/dri2.c
@@ -564,6 +564,24 @@ dri2_query_image(__DRIimage *image, int attrib, int *value)
}
}
+static __DRIimage *
+dri2_dup_image(__DRIimage *image, void *loaderPrivate)
+{
+ __DRIimage *img;
+
+ img = CALLOC_STRUCT(__DRIimageRec);
+ if (!img)
+ return NULL;
+
+ img->texture = NULL;
+ pipe_resource_reference(&img->texture, image->texture);
+ img->level = image->level;
+ img->layer = image->layer;
+ img->loader_private = loaderPrivate;
+
+ return img;
+}
+
static void
dri2_destroy_image(__DRIimage *img)
{
@@ -578,6 +596,7 @@ static struct __DRIimageExtensionRec dri2ImageExtension = {
dri2_destroy_image,
dri2_create_image,
dri2_query_image,
+ dri2_dup_image,
};
/*