[dri2proto patch v3] Define an event to notify clients about the validity of their buffers.
Francisco Jerez
currojerez at riseup.net
Fri Jan 22 06:27:32 PST 2010
Bumps the protocol and package versions.
Signed-off-by: Francisco Jerez <currojerez at riseup.net>
---
configure.ac | 2 +-
dri2proto.h | 19 +++++++++++++++++--
dri2proto.txt | 31 ++++++++++++++++++++++++-------
3 files changed, 42 insertions(+), 10 deletions(-)
diff --git a/configure.ac b/configure.ac
index fc96197..c5affe3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ([2.57])
-AC_INIT([DRI2Proto], [2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([DRI2Proto], [2.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/dri2proto.h b/dri2proto.h
index 43152c2..9708a4a 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -35,10 +35,10 @@
#define DRI2_NAME "DRI2"
#define DRI2_MAJOR 1
-#define DRI2_MINOR 2
+#define DRI2_MINOR 3
#define DRI2NumberErrors 0
-#define DRI2NumberEvents 1
+#define DRI2NumberEvents 2
#define DRI2NumberRequests 13
#define X_DRI2QueryVersion 0
@@ -59,6 +59,7 @@
* Events
*/
#define DRI2_BufferSwapComplete 0
+#define DRI2_InvalidateBuffers 1
typedef struct {
CARD32 attachment B32;
@@ -299,4 +300,18 @@ typedef struct {
} xDRI2BufferSwapComplete;
#define sz_xDRI2BufferSwapComplete 32
+typedef struct {
+ CARD8 type;
+ CARD8 pad;
+ CARD16 sequenceNumber B16;
+ CARD32 drawable B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xDRI2InvalidateBuffers;
+#define sz_xDRI2InvalidateBuffers 32
+
#endif
diff --git a/dri2proto.txt b/dri2proto.txt
index de58289..3d3eec4 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -125,9 +125,12 @@ or by using the OML swap buffers routine.
2.7 Events
-DRI2 provides a single event to indicate when a DRI2SwapBuffers request has
-been completed. This can be used to throttle drawing on the client side and
-tie into application main loops.
+DRI2 provides an event to indicate when a DRI2SwapBuffers request has
+been completed. This can be used to throttle drawing on the client
+side and tie into application main loops.
+
+Another event is generated when the validity of the requested buffers
+changes.
â â â â â â
@@ -333,10 +336,6 @@ The name of this extension is "DRI2".
Returns the swap count value when the swap will actually occur (e.g.
the last queued swap count + (pending swap count * swap interval)).
- The client should invalidate its render buffers after sending this
- request, causing a subsequent GetBuffers request to get updated buffer
- info.
-
This request is only available with protocol version 1.2 or
later.
@@ -459,6 +458,22 @@ The name of this extension is "DRI2".
the swap was performed with a blit, and DRI2_FLIP_COMPLETE, indicating
a full page flip was completed.
+ââââ
+ DRI2InvalidateBuffers
+ â¶
+ drawable: CARD32
+ââââ
+
+ This event is generated when the buffers the client had
+ requested for 'drawable' (with DRI2GetBuffers or
+ DRI2GetBuffersWithFormat) become inappropriate because they
+ don't match the drawable dimensions anymore, or a buffer swap
+ has been performed.
+
+ Note that the server is only required to warn the client once
+ about this condition, until the client takes care of bringing
+ them back up-to-date with another GetBuffers request.
+
â â â â â â
10. Extension Versioning
@@ -491,6 +506,8 @@ The DRI2 extension has undergone a number of revisions before
2.2: Approaching perfection. Added requests for swapbuffers,
MSC and SBC related requests, and events.
+ 2.3: Added the DRI2InvalidateBuffers event.
+
Compatibility up to 2.0 is not preserved, but was also never released.
--
1.6.4.4
More information about the xorg-devel
mailing list