Commit 9dc8a93b authored by Keith Packard's avatar Keith Packard
Browse files

Merge presentproto

parents 6039a6e0 bfdc7e05
#
# 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
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'
#
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.
presentdir = $(includedir)/X11/extensions
present_HEADERS = presentproto.h presenttokens.h
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = presentproto.pc
dist_doc_DATA = presentproto.txt
MAINTAINERCLEANFILES = ChangeLog INSTALL
.PHONY: ChangeLog INSTALL
INSTALL:
$(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog INSTALL
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
#! /bin/sh
srcdir=`dirname "$0"`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
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
AC_PREREQ([2.60])
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
m4_ifndef([XORG_MACROS_VERSION],
[m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.3)
XORG_DEFAULT_OPTIONS
AC_CONFIG_FILES([Makefile
presentproto.pc])
AC_OUTPUT
/*
* 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.
*/
#ifndef _PRESENT_PROTO_H_
#define _PRESENT_PROTO_H_
#include <X11/extensions/presenttokens.h>
#define Window CARD32
#define Pixmap CARD32
#define Region CARD32
#define XSyncFence CARD32
#define EventID CARD32
typedef struct {
Window window B32;
CARD32 serial B32;
} xPresentNotify;
#define sz_xPresentNotify 8
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xPresentQueryVersionReq;
#define sz_xPresentQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xPresentQueryVersionReply;
#define sz_xPresentQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
Window window B32;
Pixmap pixmap B32;
CARD32 serial B32;
Region valid B32;
Region update B32;
INT16 x_off B16;
INT16 y_off B16;
CARD32 target_crtc B32;
XSyncFence wait_fence B32;
XSyncFence idle_fence B32;
CARD32 options B32;
CARD32 pad1 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
/* followed by a LISTofPRESENTNOTIFY */
} xPresentPixmapReq;
#define sz_xPresentPixmapReq 72
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
Window window B32;
CARD32 serial B32;
CARD32 pad0 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
} xPresentNotifyMSCReq;
#define sz_xPresentNotifyMSCReq 40
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 eid B32;
CARD32 window B32;
CARD32 eventMask B32;
} xPresentSelectInputReq;
#define sz_xPresentSelectInputReq 16
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 target B32;
} xPresentQueryCapabilitiesReq;
#define sz_xPresentQueryCapabilitiesReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 capabilities B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xPresentQueryCapabilitiesReply;
#define sz_xPresentQueryCapabilitiesReply 32
/*
* Events
*
* All Present events are X Generic Events
*/
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD16 pad2;
CARD32 eid B32;
CARD32 window B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
INT16 off_x B16;
INT16 off_y B16;
CARD16 pixmap_width B16;
CARD16 pixmap_height B16;
CARD32 pixmap_flags B32;
} xPresentConfigureNotify;
#define sz_xPresentConfigureNotify 40
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD8 kind;
CARD8 mode;
CARD32 eid B32;
Window window B32;
CARD32 serial B32;
CARD64 ust;
CARD64 msc;
} xPresentCompleteNotify;
#define sz_xPresentCompleteNotify 40
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD16 pad2 B16;
CARD32 eid B32;
Window window B32;
CARD32 serial B32;
Pixmap pixmap B32;
CARD32 idle_fence B32;
} xPresentIdleNotify;
#define sz_xPresentIdleNotify 32
#if PRESENT_FUTURE_VERSION
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD8 update_window;
CARD8 pad1;
CARD32 eid B32;
Window event_window B32;
Window window B32;
Pixmap pixmap B32;
CARD32 serial B32;
/* 32-byte boundary */
Region valid_region B32;
Region update_region B32;
xRectangle valid_rect;
xRectangle update_rect;
INT16 x_off B16;
INT16 y_off B16;
CARD32 target_crtc B32;
XSyncFence wait_fence B32;
XSyncFence idle_fence B32;
CARD32 options B32;
CARD32 pad2 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
} xPresentRedirectNotify;
#define sz_xPresentRedirectNotify 104
#endif
#undef Window
#undef Pixmap
#undef Region
#undef XSyncFence
#undef EventID
#endif
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: PresentProto
Description: Present extension headers
Version: @PACKAGE_VERSION@
Cflags: -I${includedir}
This diff is collapsed.
/*
* 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.
*/
#ifndef _PRESENT_TOKENS_H_
#define _PRESENT_TOKENS_H_
#define PRESENT_NAME "Present"
#define PRESENT_MAJOR 1
#define PRESENT_MINOR 0
#define PresentNumberErrors 0
#define PresentNumberEvents 0
/* Requests */
#define X_PresentQueryVersion 0
#define X_PresentPixmap 1
#define X_PresentNotifyMSC 2
#define X_PresentSelectInput 3
#define X_PresentQueryCapabilities 4
#define PresentNumberRequests 5
/* Present operation options */
#define PresentOptionNone 0
#define PresentOptionAsync (1 << 0)
#define PresentOptionCopy (1 << 1)
#define PresentOptionUST (1 << 2)
#define PresentAllOptions (PresentOptionAsync | \
PresentOptionCopy | \
PresentOptionUST)
/* Present capabilities */
#define PresentCapabilityNone 0
#define PresentCapabilityAsync 1
#define PresentCapabilityFence 2
#define PresentCapabilityUST 4
#define PresentAllCapabilities (PresentCapabilityAsync | \
PresentCapabilityFence | \
PresentCapabilityUST)
/* Events */
#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 | \
PRESENT_REDIRECT_NOTIFY_MASK)
/* Complete Kinds */
#define PresentCompleteKindPixmap 0
#define PresentCompleteKindNotifyMSC 1
/* Complete Modes */
#define PresentCompleteModeCopy 0
#define PresentCompleteModeFlip 1
#define PresentCompleteModeSkip 2
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment