aboutsummaryrefslogtreecommitdiff
path: root/gl/internal
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-12-03 11:07:07 +0100
committermarha <marha@users.sourceforge.net>2012-12-03 11:07:07 +0100
commitdf7332b1dc314ab2f9c5bb44b36b4f003cef4261 (patch)
tree7abbabd69af6194cbd74e1901b0f4cd90dd0c39f /gl/internal
parent17464545a9abdd19312065a578d1f69a6b0b015f (diff)
downloadvcxsrv-df7332b1dc314ab2f9c5bb44b36b4f003cef4261.tar.gz
vcxsrv-df7332b1dc314ab2f9c5bb44b36b4f003cef4261.tar.bz2
vcxsrv-df7332b1dc314ab2f9c5bb44b36b4f003cef4261.zip
Synchronised files
Diffstat (limited to 'gl/internal')
-rw-r--r--gl/internal/dri_interface.h39
1 files changed, 32 insertions, 7 deletions
diff --git a/gl/internal/dri_interface.h b/gl/internal/dri_interface.h
index 36e8bbc85..e4ead73dd 100644
--- a/gl/internal/dri_interface.h
+++ b/gl/internal/dri_interface.h
@@ -269,7 +269,17 @@ struct __DRItexBufferExtensionRec {
* Used by drivers that implement DRI2
*/
#define __DRI2_FLUSH "DRI2_Flush"
-#define __DRI2_FLUSH_VERSION 3
+#define __DRI2_FLUSH_VERSION 4
+
+#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */
+#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */
+
+enum __DRI2throttleReason {
+ __DRI2_THROTTLE_SWAPBUFFER,
+ __DRI2_THROTTLE_COPYSUBBUFFER,
+ __DRI2_THROTTLE_FLUSHFRONT
+};
+
struct __DRI2flushExtensionRec {
__DRIextension base;
void (*flush)(__DRIdrawable *drawable);
@@ -283,6 +293,27 @@ struct __DRI2flushExtensionRec {
* \since 3
*/
void (*invalidate)(__DRIdrawable *drawable);
+
+ /**
+ * This function reduces the number of flushes in the driver by combining
+ * several operations into one call.
+ *
+ * It can:
+ * - throttle
+ * - flush a drawable
+ * - flush a context
+ *
+ * \param context the context
+ * \param drawable the drawable to flush
+ * \param flags a combination of _DRI2_FLUSH_xxx flags
+ * \param throttle_reason the reason for throttling, 0 = no throttling
+ *
+ * \since 4
+ */
+ void (*flush_with_flags)(__DRIcontext *ctx,
+ __DRIdrawable *drawable,
+ unsigned flags,
+ enum __DRI2throttleReason throttle_reason);
};
@@ -294,12 +325,6 @@ struct __DRI2flushExtensionRec {
#define __DRI2_THROTTLE "DRI2_Throttle"
#define __DRI2_THROTTLE_VERSION 1
-enum __DRI2throttleReason {
- __DRI2_THROTTLE_SWAPBUFFER,
- __DRI2_THROTTLE_COPYSUBBUFFER,
- __DRI2_THROTTLE_FLUSHFRONT
-};
-
struct __DRI2throttleExtensionRec {
__DRIextension base;
void (*throttle)(__DRIcontext *ctx,