summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2010-02-08 19:24:37 +0100
committerKristian Høgsberg <krh@bitplanet.net>2010-02-15 11:22:30 -0500
commit41045095bddfe460a76fb560e1d087430d8fd76f (patch)
tree657a87039936e0eb9b4d379311392efea052a2c5
parentbd6f2584d3d55746bb56bf923b35e85adfd0dc3b (diff)
Define an event to notify clients about the validity of their buffers.dri2proto-2.3
Bumps the protocol and package versions. Signed-off-by: Francisco Jerez <currojerez@riseup.net>
-rw-r--r--configure.ac2
-rw-r--r--dri2proto.h19
-rw-r--r--dri2proto.txt31
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.