.gitignore | 72 +++++++++++++++++++++++++++++++++++++++++++++++++--- COPYING | 19 +++++++++++++ README | 32 +++++++++++++++++++++++ autogen.sh | 13 ++++++--- configure.ac | 6 ++-- presentproto.h | 6 ++++ presentproto.txt | 76 ++++++++++++++++++++++++++++++++++++++++++------------- presenttokens.h | 12 +++++++- 8 files changed, 208 insertions(+), 28 deletions(-)
New commits: commit bfdc7e052302c79c5803ad95a73c9b63b350c40c Author: Julien Cristau <[email protected]> Date: Thu Jan 26 08:50:11 2017 +0100 Bump version to 1.1 diff --git a/configure.ac b/configure.ac index 4c6e0d7..ff3fdb8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([PresentProto], [1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([PresentProto], [1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) # Require xorg-macros: XORG_DEFAULT_OPTIONS commit 6d760eb116b4efd92ddba902fb9cb52f72f81da7 Author: Mihail Konev <[email protected]> Date: Thu Jan 26 13:52:48 2017 +1000 autogen: add default patch prefix Signed-off-by: Mihail Konev <[email protected]> diff --git a/autogen.sh b/autogen.sh index 0006de8..4b784fb 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,6 +9,9 @@ cd "$srcdir" autoreconf -v --install || exit 1 cd "$ORIGDIR" || exit $? +git config --local --get format.subjectPrefix >/dev/null 2>&1 || + git config --local format.subjectPrefix "PATCH presentproto" + if test -z "$NOCONFIGURE"; then exec "$srcdir"/configure "$@" fi commit 3057bb8db057aaf13f87237f7fe78e5e2543c60a Author: Emil Velikov <[email protected]> Date: Mon Mar 9 12:00:52 2015 +0000 autogen.sh: use quoted string variables Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent fall-outs, when they contain space. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> diff --git a/autogen.sh b/autogen.sh index fd9c59a..0006de8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,14 +1,14 @@ #! /bin/sh -srcdir=`dirname $0` +srcdir=`dirname "$0"` test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` -cd $srcdir +cd "$srcdir" autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? +cd "$ORIGDIR" || exit $? if test -z "$NOCONFIGURE"; then - exec $srcdir/configure "$@" + exec "$srcdir"/configure "$@" fi commit 86d1674e1598ddae3c9fc7f54378f638f7ec0fe4 Author: Peter Hutterer <[email protected]> Date: Tue Jan 24 10:32:07 2017 +1000 autogen.sh: use exec instead of waiting for configure to finish Syncs the invocation of configure with the one from the server. Signed-off-by: Peter Hutterer <[email protected]> diff --git a/autogen.sh b/autogen.sh index fc34bd5..fd9c59a 100755 --- a/autogen.sh +++ b/autogen.sh @@ -10,5 +10,5 @@ autoreconf -v --install || exit 1 cd $ORIGDIR || exit $? if test -z "$NOCONFIGURE"; then - $srcdir/configure "$@" + exec $srcdir/configure "$@" fi commit d6d4548a9e972f1463d36a56989e319cef745b9b Author: Kenneth Graunke <[email protected]> Date: Thu Jul 28 09:48:35 2016 -0700 Fix typo (modifiy -> modify) diff --git a/presentproto.txt b/presentproto.txt index 6dd1ca2..fdaf658 100644 --- a/presentproto.txt +++ b/presentproto.txt @@ -282,7 +282,7 @@ The name of this extension is "Present" Selects the set of Present events to be delivered for the specified window and event context. PresentSelectInput can - create, modifiy or delete event contexts. An event context is + create, modify, or delete event contexts. An event context is associated with a specific window; using an existing event context with a different window generates a Match error. commit ef84007fc4a23d3897b4776906139de9d0698c2a Author: Alan Coopersmith <[email protected]> Date: Sat May 31 21:38:41 2014 -0700 configure: Drop AM_MAINTAINER_MODE Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/configure.ac b/configure.ac index e14d0a6..4c6e0d7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,6 @@ AC_PREREQ([2.60]) AC_INIT([PresentProto], [1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) -AM_MAINTAINER_MODE # Require xorg-macros: XORG_DEFAULT_OPTIONS m4_ifndef([XORG_MACROS_VERSION], commit 24f3a56e541b0a9e6c6ee76081f441221a120ef9 Author: Keith Packard <[email protected]> Date: Thu Jan 2 16:38:47 2014 -0800 autogen.sh: Implement GNOME Build API http://people.gnome.org/~walters/docs/build-api.txt Signed-off-by: Keith Packard <[email protected]> diff --git a/autogen.sh b/autogen.sh index 904cd67..fc34bd5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,4 +9,6 @@ cd $srcdir autoreconf -v --install || exit 1 cd $ORIGDIR || exit $? -$srcdir/configure --enable-maintainer-mode "$@" +if test -z "$NOCONFIGURE"; then + $srcdir/configure "$@" +fi commit e2763622941bc35db9a2dbf16e10bb830af07d67 Author: Keith Packard <[email protected]> Date: Fri Dec 13 12:21:02 2013 -0800 Don't define 'redirect' stuff in header files Leave it all under #if PRESENT_FUTURE_VERSION for documentation Signed-off-by: Keith Packard <[email protected]> diff --git a/presentproto.h b/presentproto.h index ee65fa4..08ddc05 100644 --- a/presentproto.h +++ b/presentproto.h @@ -196,6 +196,7 @@ typedef struct { } xPresentIdleNotify; #define sz_xPresentIdleNotify 32 +#if PRESENT_FUTURE_VERSION typedef struct { CARD8 type; CARD8 extension; @@ -236,6 +237,7 @@ typedef struct { } xPresentRedirectNotify; #define sz_xPresentRedirectNotify 104 +#endif #undef Window #undef Pixmap diff --git a/presenttokens.h b/presenttokens.h index 807dbcf..acb7576 100644 --- a/presenttokens.h +++ b/presenttokens.h @@ -64,18 +64,28 @@ #define PresentConfigureNotify 0 #define PresentCompleteNotify 1 #define PresentIdleNotify 2 +#if PRESENT_FUTURE_VERSION #define PresentRedirectNotify 3 +#endif /* Event Masks */ #define PresentConfigureNotifyMask 1 #define PresentCompleteNotifyMask 2 #define PresentIdleNotifyMask 4 +#if PRESENT_FUTURE_VERSION #define PresentRedirectNotifyMask 8 +#endif + +#if PRESENT_FUTURE_VERSION +#define PRESENT_REDIRECT_NOTIFY_MASK PresentRedirectNotifyMask +#else +#define PRESENT_REDIRECT_NOTIFY_MASK 0 +#endif #define PresentAllEvents (PresentConfigureNotifyMask | \ PresentCompleteNotifyMask | \ PresentIdleNotifyMask | \ - PresentRedirectNotifyMask) + PRESENT_REDIRECT_NOTIFY_MASK) /* Complete Kinds */ commit ff72e3fcfd48185c2e33d6eaa50b7ff100aaeabb Author: Keith Packard <[email protected]> Date: Fri Dec 13 12:11:00 2013 -0800 Move Redirect stuff to 'later version' sections This makes it clear that the Redirect event bits are not part of the 1.0 standard. Signed-off-by: Keith Packard <[email protected]> diff --git a/presentproto.txt b/presentproto.txt index 9cd7658..6dd1ca2 100644 --- a/presentproto.txt +++ b/presentproto.txt @@ -13,7 +13,13 @@ window contents from a pixmap in a well defined fashion, synchronizing with the display refresh and potentially using a more efficient mechanism than copying the contents of the source pixmap. -1.1. Acknowledgments +1.1. Future Present extension versions + +This document includes speculation about future 'redirect' support +within the Present extension. All such information is subject to +change and is provided only as an aid to further Present development. + +1.2. Acknowledgments Eric Anholt <[email protected]> Owen Taylor <[email protected]> @@ -41,13 +47,11 @@ PRESENTNOTIFY { PRESENTEVENTTYPE { PresentConfigureNotify, PresentCompleteNotify, - PresentIdleNotify, - PresentRedirectNotify } + PresentIdleNotify } PRESENTEVENTMASK { PresentConfigureNotifyMask, PresentCompleteNotifyMask, - PresentIdleNotifyMask, - PresentSubredirectNotifyMask } + PresentIdleNotifyMask } PRESENTOPTION { PresentOptionAsync, PresentOptionCopy, @@ -67,6 +71,14 @@ PRESENTCOMPLETEMODE { PresentCompleteModeCopy, The Present extension also uses the Sync extension Fence data type to provide synchronization for pixmaps. +2.1. Data Types proposed for a later Present extension version + +PRESENTEVENTTYPE { ... + PresentRedirectNotify } + +PRESENTEVENTMASK { ... + PresentSubredirectNotifyMask } + ❄ ❄ ❄ ❄ ❄ ❄ ❄ 3. Errors @@ -86,6 +98,8 @@ PresentPixmap request. IdleNotify events inform clients when pixmaps are available for re-use. +5.1. Events proposed for a later Present extension version + RedirectNotify events inform clients about other clients PresentPixmap requests. @@ -281,13 +295,6 @@ The name of this extension is "Present" no operation is performed. Otherwise, a new event context is created selecting the specified events. - Specifying PresentSubredirectNotify Mask causes PresentPixmap - requests on any child of 'window' from other clients to - generate PresentRedirectNotify events to 'window' instead of - actually performing the operation. However, only one client at - a time can select for PresentRedirect on a window. An attempt - to violate this restriction results in an Access error. - ┌─── PresentQueryCapabilities target: CRTC or WINDOW @@ -324,6 +331,25 @@ The name of this extension is "Present" defined by the extension, but is expected to be on the order of milliseconds or less. + +7.1 Requests proposed for a later Present extension version + + These are not part of the standard and represent future plans + for the Present extension. + +┌─── + PresentSelectInput + ... +└─── + ... + + Specifying PresentSubredirectNotify Mask causes PresentPixmap + requests on any child of 'window' from other clients to + generate PresentRedirectNotify events to 'window' instead of + actually performing the operation. However, only one client at + a time can select for PresentRedirect on a window. An attempt + to violate this restriction results in an Access error. + ❄ ❄ ❄ ❄ ❄ ❄ ❄ 8. Extension Events @@ -426,6 +452,8 @@ The name of this extension is "Present" buffer. If not None, then the client must wait for the fence to be signaled before using the pixmap. +8.1. Extension Events proposed for a later Present extension version + ┌─── PresentRedirectNotify type: CARD8 XGE event type (35) @@ -527,7 +555,6 @@ A.1 Common Types 0 PresentConfigureNotify 1 PresentCompleteNotify 2 PresentIdleNotify - 3 PresentRedirectNotify └─── ┌─── @@ -535,7 +562,6 @@ A.1 Common Types 1 PresentConfigureNotifyMask 2 PresentCompleteNotifyMask 4 PresentIdleNotifyMask - 8 PresentRedirectNotifyMask └─── ┌─── @@ -571,6 +597,20 @@ A.1 Common Types 4 CARD32 serial └─── +A.1.1 Common Types proposed for a later Present extension version + +┌─── + PresentEventType + ... + 3 PresentRedirectNotify +└─── + +┌─── + PresentEventMask + ... + 8 PresentSubredirectNotifyMask +└─── + A.2 Protocol Requests ┌─── @@ -706,6 +746,8 @@ A.3 Protocol Events 4 SyncFence idle-fence └─── +A.3.1 Protocol Events proposed for later Present extension version + ┌─── PresentRedirectNotify 1 35 XGE commit 8405ee4552565825d776e6a8963d33d9cd9cddf0 Author: Adam Jackson <[email protected]> Date: Wed Dec 11 13:25:06 2013 -0500 Force Window and Pixmap to be CARD32 on the wire If you don't do this then the client libs on 64-bit machines see them as XIDs, which are 64-bit wide (sigh), which ruins the wire encoding and nothing works. Reviewed-by: Jasper St. Pierre <[email protected]> Signed-off-by: Adam Jackson <[email protected]> diff --git a/presentproto.h b/presentproto.h index 8303a94..ee65fa4 100644 --- a/presentproto.h +++ b/presentproto.h @@ -25,6 +25,8 @@ #include <X11/extensions/presenttokens.h> +#define Window CARD32 +#define Pixmap CARD32 #define Region CARD32 #define XSyncFence CARD32 #define EventID CARD32 @@ -235,6 +237,8 @@ typedef struct { #define sz_xPresentRedirectNotify 104 +#undef Window +#undef Pixmap #undef Region #undef XSyncFence #undef EventID commit 7c5aa106e36e915d7b094833fac8a27996c50b24 Author: Keith Packard <[email protected]> Date: Fri Dec 13 11:52:57 2013 -0800 Fix spelling of James Jones' email address Signed-off-by: Keith Packard <[email protected]> diff --git a/presentproto.txt b/presentproto.txt index 5025a2a..9cd7658 100644 --- a/presentproto.txt +++ b/presentproto.txt @@ -17,7 +17,7 @@ mechanism than copying the contents of the source pixmap. Eric Anholt <[email protected]> Owen Taylor <[email protected]> -James Jones <[email protected]> +James Jones <[email protected]> ❄ ❄ ❄ ❄ ❄ ❄ ❄ commit 2f75a7b9fde8fbff63a12eaf4d0a9bf38fe23a8d Author: Julien Cristau <[email protected]> Date: Sun Nov 24 14:02:49 2013 +0100 Fix wrong reference to DRI3 in the protocol spec Signed-off-by: Julien Cristau <[email protected]> diff --git a/presentproto.txt b/presentproto.txt index 2edcf81..5025a2a 100644 --- a/presentproto.txt +++ b/presentproto.txt @@ -740,6 +740,6 @@ A.3 Protocol Events A.4 Protocol Errors -The DRI3 extension defines no errors. +The Present extension defines no errors. ❄ ❄ ❄ ❄ ❄ ❄ ❄ commit bad9370af5f7c50541a4898b8ad10c9d0168dc14 Author: Gaetan Nadon <[email protected]> Date: Tue Nov 5 09:06:57 2013 -0500 config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES Fix Automake warning: AC_OUTPUT should be used without arguments. www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Files Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index 2363d30..e14d0a6 100644 --- a/configure.ac +++ b/configure.ac @@ -9,5 +9,6 @@ m4_ifndef([XORG_MACROS_VERSION], XORG_MACROS_VERSION(1.3) XORG_DEFAULT_OPTIONS -AC_OUTPUT([Makefile +AC_CONFIG_FILES([Makefile presentproto.pc]) +AC_OUTPUT commit 5eec069b69c94eed75586c1d98aedfd7031714b8 Author: Gaetan Nadon <[email protected]> Date: Tue Nov 5 09:06:30 2013 -0500 Add the required README file. Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/README b/README new file mode 100644 index 0000000..7a653f3 --- /dev/null +++ b/README @@ -0,0 +1,32 @@ + The Present Extension + +The Present extension provides a way for applications to update their +window contents from a pixmap in a well defined fashion, synchronizing +with the display refresh and potentially using a more efficient +mechanism than copying the contents of the source pixmap. + +Extension name: Present + +All questions regarding this software should be directed at the +Xorg mailing list: + + http://lists.freedesktop.org/mailman/listinfo/xorg + +Please submit bug reports to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + +The master development code repository can be found at: + + git://anongit.freedesktop.org/git/xorg/proto/presentproto + + http://cgit.freedesktop.org/xorg/proto/presentproto + +For patch submission instructions, see: + + http://www.x.org/wiki/Development/Documentation/SubmittingPatches + +For more information on the git code manager, see: + + http://wiki.x.org/wiki/GitPage + commit a359a2e9a220826c9e077f40332dba1392bd9313 Author: Adam Jackson <[email protected]> Date: Wed Nov 6 12:32:10 2013 -0500 Add COPYING Text taken from the header files. Signed-off-by: Adam Jackson <[email protected]> diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..8dcf1d4 --- /dev/null +++ b/COPYING @@ -0,0 +1,19 @@ +Copyright © 2013 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of the copyright holders not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. The copyright holders make no representations +about the suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. commit 02393d26f052a3af15c72b0c4a4a31ca3353339d Author: Aaron Plattner <[email protected]> Date: Fri Nov 1 14:04:12 2013 -0700 Copy the standard .gitignore from other proto packages Signed-off-by: Aaron Plattner <[email protected]> Reviewed-by: Gaetan Nadon <[email protected]> diff --git a/.gitignore b/.gitignore index edddba7..89b276d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,78 @@ -Makefile -Makefile.in +# +# X.Org module default exclusion patterns +# The next section if for module specific patterns +# +# Do not edit the following section +# GNU Build System (Autotools) aclocal.m4 autom4te.cache/ +autoscan.log +ChangeLog +compile config.guess +config.h +config.h.in config.log +config-ml.in +config.py config.status +config.status.lineno config.sub configure -presentproto.pc +configure.scan +depcomp +.deps/ +INSTALL install-sh +.libs/ +libtool +libtool.m4 +ltmain.sh +lt~obsolete.m4 +ltoptions.m4 +ltsugar.m4 +ltversion.m4 +Makefile +Makefile.in +mdate-sh missing +mkinstalldirs +*.pc +py-compile +stamp-h? +symlink-tree +texinfo.tex +ylwrap + +# Do not edit the following section +# Edit Compile Debug Document Distribute +*~ +*.[0-9] +*.[0-9]x +*.bak +*.bin +core +*.dll +*.exe +*-ISO*.bdf +*-JIS*.bdf +*-KOI8*.bdf +*.kld +*.ko +*.ko.cmd +*.lai +*.l[oa] +*.[oa] +*.obj +*.patch +*.so +*.pcf.gz +*.pdb +*.tar.bz2 +*.tar.gz +# +# Add & Override patterns for presentproto +# +# Edit the following section as needed +# For example, !report.pc overrides *.pc. See 'man gitignore' +#

