summaryrefslogtreecommitdiff
path: root/include/X11/extensions/Xpresent.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/X11/extensions/Xpresent.h')
-rw-r--r--include/X11/extensions/Xpresent.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/include/X11/extensions/Xpresent.h b/include/X11/extensions/Xpresent.h
new file mode 100644
index 0000000..b253870
--- /dev/null
+++ b/include/X11/extensions/Xpresent.h
@@ -0,0 +1,127 @@
+/*
+ * 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 _XPRESENT_H_
+#define _XPRESENT_H_
+
+#include <stdint.h>
+#include <X11/extensions/presenttokens.h>
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/Xfixes.h>
+
+/*
+ * This revision number also appears in configure.ac, they have
+ * to be manually synchronized
+ */
+#define PRESENT_REVISION 0
+#define PRESENT_VERSION ((PRESENT_MAJOR * 10000) + (PRESENT_MINOR * 100) + (PRESENT_REVISION))
+
+/**
+ * Generic Present event. All Present events have the same header.
+ */
+
+typedef struct {
+ int type; /* event base */
+ unsigned long serial;
+ Bool send_event;
+ Display *display;
+ int extension;
+ int evtype;
+} XPresentEvent;
+
+typedef struct {
+ int type; /* event base */
+ unsigned long serial;
+ Bool send_event;
+ Display *display;
+ int extension;
+ int evtype;
+
+ uint32_t eid;
+ Window window;
+ int x,y;
+ unsigned width, height;
+ int off_x, off_y;
+ int pixmap_width, pixmap_height;
+ long pixmap_flags;
+} XPresentConfigureNotifyEvent;
+
+typedef struct {
+ int type; /* event base */
+ unsigned long serial;
+ Bool send_event;
+ Display *display;
+ int extension;
+ int evtype;
+
+ uint32_t eid;
+ Window window;
+ uint32_t serial_number;
+ uint64_t ust;
+ uint64_t msc;
+} XPresentCompleteNotifyEvent;
+
+_XFUNCPROTOBEGIN
+
+Bool XPresentQueryExtension (Display *dpy,
+ int *major_opcode_return,
+ int *event_base_return,
+ int *error_base_return);
+
+Status XPresentQueryVersion (Display *dpy,
+ int *major_version_return,
+ int *minor_version_return);
+
+int XPresentVersion (void);
+
+void
+XPresentRegion(Display *dpy,
+ Window window,
+ Pixmap pixmap,
+ uint32_t serial,
+ XserverRegion valid,
+ XserverRegion update,
+ int x_off,
+ int y_off,
+ XID idle_fence,
+ uint64_t target_msc,
+ uint64_t divisor,
+ uint64_t remainder);
+
+void
+XPresentNotifyMSC(Display *dpy,
+ Window window,
+ uint32_t serial,
+ uint64_t target_msc,
+ uint64_t divisor,
+ uint64_t remainder);
+
+XID
+XPresentSelectInput(Display *dpy,
+ Window window,
+ unsigned event_mask);
+
+_XFUNCPROTOEND
+
+#endif /* _XPRESENT_H_ */