Define an event to notify clients about the validity of their buffers.

Bumps the protocol and package versions.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Francisco Jerez 2010-02-08 19:24:37 +01:00 committed by Kristian Høgsberg
parent bd6f2584d3
commit 41045095bd
3 changed files with 42 additions and 10 deletions

View file

@ -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

View file

@ -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

View file

@ -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.