typedef struct drm_clip_rect drm_clip_rect_t;
#endif
+#include <GL/gl.h>
+
#include <stdint.h>
/**
typedef struct __DRI2fenceExtensionRec __DRI2fenceExtension;
typedef struct __DRI2interopExtensionRec __DRI2interopExtension;
typedef struct __DRI2blobExtensionRec __DRI2blobExtension;
+typedef struct __DRI2bufferDamageExtensionRec __DRI2bufferDamageExtension;
typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension;
typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension;
struct mesa_glinterop_export_out *out);
};
+
+/**
+ * Extension for limiting window system back buffer rendering to user-defined
+ * scissor region.
+ */
+
+#define __DRI2_BUFFER_DAMAGE "DRI2_BufferDamage"
+#define __DRI2_BUFFER_DAMAGE_VERSION 1
+
+struct __DRI2bufferDamageExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Provides an array of rectangles representing an overriding scissor region
+ * for rendering operations performed to the specified drawable. These
+ * rectangles do not replace client API scissor regions or draw
+ * co-ordinates, but instead inform the driver of the overall bounds of all
+ * operations which will be issued before the next flush.
+ *
+ * Any rendering operations writing pixels outside this region to the
+ * drawable will have an undefined effect on the entire drawable.
+ *
+ * This entrypoint may only be called after the drawable has either been
+ * newly created or flushed, and before any rendering operations which write
+ * pixels to the drawable. Calling this entrypoint at any other time will
+ * have an undefined effect on the entire drawable.
+ *
+ * Calling this entrypoint with @nrects 0 and @rects NULL will reset the
+ * region to the buffer's full size. This entrypoint may be called once to
+ * reset the region, followed by a second call with a populated region,
+ * before a rendering call is made.
+ *
+ * Used to implement EGL_KHR_partial_update.
+ *
+ * \param drawable affected drawable
+ * \param nrects number of rectangles provided
+ * \param rects the array of rectangles, lower-left origin
+ */
+ void (*set_damage_region)(__DRIdrawable *drawable, unsigned int nrects,
+ int *rects);
+};
+
/*@}*/
/**
#define __DRI_ATTRIB_YINVERTED 47
#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48
#define __DRI_ATTRIB_MUTABLE_RENDER_BUFFER 49 /* EGL_MUTABLE_RENDER_BUFFER_BIT_KHR */
-#define __DRI_ATTRIB_MAX 50
+#define __DRI_ATTRIB_RED_SHIFT 50
+#define __DRI_ATTRIB_GREEN_SHIFT 51
+#define __DRI_ATTRIB_BLUE_SHIFT 52
+#define __DRI_ATTRIB_ALPHA_SHIFT 53
+#define __DRI_ATTRIB_MAX 54
/* __DRI_ATTRIB_RENDER_TYPE */
#define __DRI_ATTRIB_RGBA_BIT 0x01
* only BGRA ordering can be exposed.
*/
DRI_LOADER_CAP_RGBA_ORDERING,
+ DRI_LOADER_CAP_FP16,
};
struct __DRIdri2LoaderExtensionRec {
#define __DRI_IMAGE_FORMAT_XBGR2101010 0x1010
#define __DRI_IMAGE_FORMAT_ABGR2101010 0x1011
#define __DRI_IMAGE_FORMAT_SABGR8 0x1012
+#define __DRI_IMAGE_FORMAT_UYVY 0x1013
+#define __DRI_IMAGE_FORMAT_XBGR16161616F 0x1014
+#define __DRI_IMAGE_FORMAT_ABGR16161616F 0x1015
#define __DRI_IMAGE_USE_SHARE 0x0001
#define __DRI_IMAGE_USE_SCANOUT 0x0002
#define __DRI_IMAGE_FOURCC_RGBX1010102 0x30335852
#define __DRI_IMAGE_FOURCC_BGRA1010102 0x30334142
#define __DRI_IMAGE_FOURCC_BGRX1010102 0x30335842
+#define __DRI_IMAGE_FOURCC_ABGR16161616F 0x48344241
+#define __DRI_IMAGE_FOURCC_XBGR16161616F 0x48344258
#define __DRI_IMAGE_FOURCC_YUV410 0x39565559
#define __DRI_IMAGE_FOURCC_YUV411 0x31315559
#define __DRI_IMAGE_FOURCC_YUV420 0x32315559
#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
#define __DRI_IMAGE_FOURCC_UYVY 0x59565955
#define __DRI_IMAGE_FOURCC_AYUV 0x56555941
+#define __DRI_IMAGE_FOURCC_XYUV8888 0x56555958
#define __DRI_IMAGE_FOURCC_YVU410 0x39555659
#define __DRI_IMAGE_FOURCC_YVU411 0x31315659
#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005
#define __DRI_IMAGE_COMPONENTS_Y_UXVX 0x3008
#define __DRI_IMAGE_COMPONENTS_AYUV 0x3009
+#define __DRI_IMAGE_COMPONENTS_XYUV 0x300A
#define __DRI_IMAGE_COMPONENTS_R 0x3006
#define __DRI_IMAGE_COMPONENTS_RG 0x3007