summaryrefslogtreecommitdiffstats
path: root/include/GL
diff options
context:
space:
mode:
authorAbdiel Janulgue <abdiel.janulgue@linux.intel.com>2012-11-27 15:19:54 +0200
committerChad Versace <chad.versace@linux.intel.com>2013-02-01 11:58:12 -0800
commit7b7af48e010565cdd11f486c000fd929b6ca99f1 (patch)
tree3293936e5e5c87b61fdcf6743155111a5bbac594 /include/GL
parenta8a5055f2dea1960898763d17f28043577c3e64e (diff)
downloadexternal_mesa3d-7b7af48e010565cdd11f486c000fd929b6ca99f1.zip
external_mesa3d-7b7af48e010565cdd11f486c000fd929b6ca99f1.tar.gz
external_mesa3d-7b7af48e010565cdd11f486c000fd929b6ca99f1.tar.bz2
dri2: Create image from texture
Add create image from texture extension and bump version. v8: - Add appropriate image errors codes in DRI interface so we don't have to use internal EGL functions in driver. Suggested by Chad Versace. Reviewed-by: Eric Anholt <eric@anholt.net> (v6) Reviewed-by: Chad Versace <chad.versace@linux.intel.com> (v8) Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Diffstat (limited to 'include/GL')
-rw-r--r--include/GL/internal/dri_interface.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index c236cb7..42147e9 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -938,7 +938,7 @@ struct __DRIdri2ExtensionRec {
* extensions.
*/
#define __DRI_IMAGE "DRI_IMAGE"
-#define __DRI_IMAGE_VERSION 5
+#define __DRI_IMAGE_VERSION 6
/**
* These formats correspond to the similarly named MESA_FORMAT_*
@@ -1022,6 +1022,23 @@ struct __DRIdri2ExtensionRec {
#define __DRI_IMAGE_ATTRIB_HEIGHT 0x2005
#define __DRI_IMAGE_ATTRIB_COMPONENTS 0x2006 /* available in versions 5+ */
+/**
+ * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail
+ */
+/*@{*/
+/** Success! */
+#define __DRI_IMAGE_ERROR_SUCCESS 0
+
+/** Memory allocation failure */
+#define __DRI_IMAGE_ERROR_BAD_ALLOC 1
+
+/** Client requested an invalid attribute for a texture object */
+#define __DRI_IMAGE_ERROR_BAD_MATCH 2
+
+/** Client requested an invalid texture object */
+#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
+/*@}*/
+
typedef struct __DRIimageRec __DRIimage;
typedef struct __DRIimageExtensionRec __DRIimageExtension;
struct __DRIimageExtensionRec {
@@ -1087,6 +1104,19 @@ struct __DRIimageExtensionRec {
*/
__DRIimage *(*fromPlanar)(__DRIimage *image, int plane,
void *loaderPrivate);
+
+ /**
+ * Create image from texture.
+ *
+ * \since 6
+ */
+ __DRIimage *(*createImageFromTexture)(__DRIcontext *context,
+ int target,
+ unsigned texture,
+ int depth,
+ int level,
+ unsigned *error,
+ void *loaderPrivate);
};