<pre style='margin:0'>
Jeremy Huddleston Sequoia (jeremyhu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c08cb5af930bb392b13e1aff3352ca845f49470c">https://github.com/macports/macports-ports/commit/c08cb5af930bb392b13e1aff3352ca845f49470c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c08cb5af930bb392b13e1aff3352ca845f49470c
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Fri Mar 12 11:08:49 2021 -0800
<span style='display:block; white-space:pre;color:#404040;'> xorg-server-devel: Update to my current xquartz-refactor branch
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
</span>---
x11/xorg-server-devel/Portfile | 54 +-
...on-Improve-abstraction-for-launchd-secure.patch | 71 -
.../0001-xquartz-Add-stub-ddxInputThread.patch | 30 -
...alize-RandR-even-if-there-are-currently-n.patch | 46 -
...ize-glx-even-if-there-are-currently-no-sc.patch | 118 --
.../5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch | 41 -
...evert-dix-Restore-PaintWindow-screen-hook.patch | 348 -----
...the-GC-clipping-problem-in-miPaintWindow-.patch | 158 ---
...old-miTrapezoids-and-miTriangles-routines.patch | 289 ----
...4-fb-Revert-fb-changes-that-broke-XQuartz.patch | 320 -----
...5-fb-Revert-fb-changes-that-broke-XQuartz.patch | 243 ----
.../files/5008-fix-calloc-free-mis-match-bug.patch | 67 -
.../Darwin19-Remove-AppFlags-Active-Hack.patch | 10 -
.../files/dri/GL/internal/dri_interface.h | 1409 --------------------
x11/xorg-server-devel/files/include/Xplugin.h | 592 --------
15 files changed, 13 insertions(+), 3783 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/Portfile b/x11/xorg-server-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 59a4ab97122..0a8e8f14ee8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/x11/xorg-server-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,10 +2,13 @@
</span>
PortSystem 1.0
PortGroup compiler_blacklist_versions 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup XQuartz xorg-server 2630bc4040843ac000c397f1718844cf3e1c6472
</span>
name xorg-server-devel
conflicts xorg-server xorg-server-1.18
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 1.20.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.20.99.1
</span> revision 0
categories x11 devel
license X11
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,10 +18,9 @@ homepage https://www.x.org
</span> platforms darwin macosx
long_description The X.org X server allows you to run X11 applications on your computer.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-fetch.type git
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-git.url git://anongit.freedesktop.org/xorg/xserver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#git.branch 1508ea68065b7976dbf56039f9b20dcaf0394431
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-git.branch xorg-server-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 c3fea4d4a1711b2c705fee3a0156ad00a9b7e1fa \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 b3882e4f9a60d268bda7c17841619e255492b2bae0de06fa43affa9a95b5b30f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 5841795
</span>
use_parallel_build yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -61,9 +63,6 @@ configure.args --with-apple-applications-dir=${applications_dir} \
</span> --disable-dri2 \
--disable-dri3
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# GL/internal/dri_interface.h is missing in prefix (provided by libdrm for the xorg DDX... not helpful for us)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cppflags-append -I/usr/include -I${filespath}/dri -F${configure.sdkroot}/System/Library/Frameworks/ApplicationServices.framework/Frameworks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Debugging ...
#configure.cppflags-append -g -fsanitize=address -fno-omit-frame-pointer
#configure.cflags-append -g -fsanitize=address -fno-omit-frame-pointer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -73,45 +72,16 @@ configure.cppflags-append -I/usr/include -I${filespath}/dri -F${configure.sdkroo
</span> configure.env-append \
RAWCPP=${configure.cpp}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0001-os-connection-Improve-abstraction-for-launchd-secure.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0001-xquartz-Add-stub-ddxInputThread.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0002-randr-Initialize-RandR-even-if-there-are-currently-n.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0003-glx-Initialize-glx-even-if-there-are-currently-no-sc.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5001-Revert-dix-Restore-PaintWindow-screen-hook.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5003-Use-old-miTrapezoids-and-miTriangles-routines.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5004-fb-Revert-fb-changes-that-broke-XQuartz.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5005-fb-Revert-fb-changes-that-broke-XQuartz.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# the following two patches avoid redefinition errors on pre-C11 compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the following patch avoids redefinition errors on pre-C11 compilers
</span> # https://trac.macports.org/ticket/57333
# another approach would be to update the port to build with gcc6+
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# patches to do that are in the above noted ticket/57333.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Edit: 5007 patch no longer needed with xorgproto 2019.1
</span> patchfiles-append \
5006-patch-xorg-server-dont-redefine-GLXscreen.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Fixes what appears to be a mis-match in the way
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# hw/xquartz/GL/visualConfigs.c allocates __GLXconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# objects with a single calloc call to the way
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# they are released in glxscreens.c with a loop and a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# free call to each struct. The patch below fixes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this by individually allocating each
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://bugzilla.freedesktop.org/show_bug.cgi?id=107555
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 5008-fix-calloc-free-mis-match-bug.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # enables the automake option "subdir-objects" so that automake
# doesn't complain about subdirectory *.in replacement files usage.
patchfiles-append 2001-enable-automake-subdir-objects.patch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Workaround for Darwin19+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# :info:build X11Application.m:431:17: error: use of undeclared identifier '_appFlags'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# :info:build _appFlags._active = YES;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# :info:build ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append Darwin19-Remove-AppFlags-Active-Hack.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> patch.pre_args -p1
platform darwin 8 {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -132,10 +102,12 @@ post-destroot {
</span> }
platform macosx {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Xplugin.h is missing on Tiger and incorrect on Leopard
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.cppflags-append -I${filespath}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} < 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "$name requires macOS 10.9 or later"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "unsupported OS version"
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
variant xcsecurity description "Enable Security Extensions" {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/0001-os-connection-Improve-abstraction-for-launchd-secure.patch b/x11/xorg-server-devel/files/0001-os-connection-Improve-abstraction-for-launchd-secure.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 13f14884d04..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/0001-os-connection-Improve-abstraction-for-launchd-secure.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,71 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From bf2bb516a584937cd45728fdb6e21bc84dce365a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sat, 10 Sep 2016 22:32:56 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 1/3] os/connection: Improve abstraction for launchd secure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sockets
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This changes away from hard-coding the /tmp/launch-* path to now
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-supporting a generic <absolute path to unix socket>[.<screen>]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-format for $DISPLAY.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cf-libxcb: d978a4f69b30b630f28d07f1003cf290284d24d8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CC: Adam Jackson <ajax@kemper.freedesktop.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- os/connection.c | 31 ++++++++++++++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 26 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/os/connection.c b/os/connection.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a901ebf..0d42184 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/os/connection.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/os/connection.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79,6 +79,8 @@ SOFTWARE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/stat.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef WIN32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/socket.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -992,15 +994,34 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ListenOnOpenFD(int fd, int noxauth)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char port[256];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char port[PATH_MAX];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XtransConnInfo ciptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *display_env = getenv("DISPLAY");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (display_env && (strncmp(display_env, "/tmp/launch", 11) == 0)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Make the path the launchd socket if our DISPLAY is set right */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strcpy(port, display_env);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* First check if display_env matches a <absolute path to unix socket>[.<screen number>] scheme (eg: launchd) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (display_env && display_env[0] == '/') {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ struct stat sbuf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcpy(port, display_env, sizeof(port));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* If the path exists, we don't have do do anything else.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * If it doesn't, we need to check for a .<screen number> to strip off and recheck.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (0 != stat(port, &sbuf)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char *dot = strrchr(port, '.');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (dot) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *dot = '\0';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (0 != stat(port, &sbuf)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ display_env = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ display_env = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!display_env) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Just some default so things don't break and die. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- snprintf(port, sizeof(port), ":%d", atoi(display));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/0001-xquartz-Add-stub-ddxInputThread.patch b/x11/xorg-server-devel/files/0001-xquartz-Add-stub-ddxInputThread.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 602d32f7d4d..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/0001-xquartz-Add-stub-ddxInputThread.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,30 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From f013979507da96377fad0e58b0699d9de051bb39 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jon Turney <jon.turney@dronecode.org.uk>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 18 Apr 2019 11:37:32 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] xquartz: Add stub ddxInputThread()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Omitted from 4ad21c32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hw/xquartz/darwin.c | 9 +++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 9 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6a143369e..ccfe5f963 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xquartz/darwin.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/hw/xquartz/darwin.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -826,3 +826,12 @@ ddxGiveUp(enum ExitCode error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LogClose(error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if INPUTTHREAD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/** This function is called in Xserver/os/inputthread.c when starting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ the input thread. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ddxInputThreadInit(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.24.1 (Apple Git-126)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/0002-randr-Initialize-RandR-even-if-there-are-currently-n.patch b/x11/xorg-server-devel/files/0002-randr-Initialize-RandR-even-if-there-are-currently-n.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 460ea647998..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/0002-randr-Initialize-RandR-even-if-there-are-currently-n.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,46 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 7d901d6ecc179020e213664da475ae9e2888ea1d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 11 Sep 2016 02:19:19 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2/3] randr: Initialize RandR even if there are currently no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- screens attached
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Failure to do so causes an overvlow in RRClientCallback().
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-=================================================================
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-==41262==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000103ccfbc8 at pc 0x0001034f32b9 bp 0x7000035a94c0 sp 0x7000035a94b8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-WRITE of size 4 at 0x000103ccfbc8 thread T6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #0 0x1034f32b8 in RRClientCallback randr.c:72
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #1 0x1038c75e3 in _CallCallbacks dixutils.c:737
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #2 0x10388f406 in CallCallbacks callback.h:83
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #3 0x1038bc49a in NextAvailableClient dispatch.c:3562
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #4 0x103ad094c in AllocNewConnection connection.c:777
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #5 0x103ad1695 in EstablishNewConnections connection.c:863
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #6 0x1038c6630 in ProcessWorkQueue dixutils.c:523
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #7 0x103ab2dbf in WaitForSomething WaitFor.c:175
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #8 0x103880836 in Dispatch dispatch.c:411
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #9 0x1038c2141 in dix_main main.c:301
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #10 0x1032ac75a in server_thread quartzStartup.c:66
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #11 0x7fffc5f16aaa in _pthread_body (libsystem_pthread.dylib+0x3aaa)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #12 0x7fffc5f169f6 in _pthread_start (libsystem_pthread.dylib+0x39f6)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #13 0x7fffc5f161fc in thread_start (libsystem_pthread.dylib+0x31fc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- randr/randr.c | 3 ---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/randr/randr.c b/randr/randr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0138dc1..efd3859 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/randr/randr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/randr/randr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -414,9 +414,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ExtensionEntry *extEntry;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (RRNScreens == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!dixRegisterPrivateKey(&RRClientPrivateKeyRec, PRIVATE_CLIENT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sizeof(RRClientRec) +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- screenInfo.numScreens * sizeof(RRTimesRec)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/0003-glx-Initialize-glx-even-if-there-are-currently-no-sc.patch b/x11/xorg-server-devel/files/0003-glx-Initialize-glx-even-if-there-are-currently-no-sc.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 7e26c4f6f7f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/0003-glx-Initialize-glx-even-if-there-are-currently-no-sc.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,118 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 42a41fabd58ec5c572c7affd095ee15f57883a0d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 11 Sep 2016 02:47:00 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 3/3] glx: Initialize glx even if there are currently no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- screens attached
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Failure to do so causes an overvlow in glxClientCallback
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Application Specific Information:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-X.Org X Server 1.18.99.1 Build Date: 20160911
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-=================================================================
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-==52118==ERROR: AddressSanitizer: SEGV on unknown address 0x000102b27b80 (pc 0x000103433245 bp 0x70000de67c20 sp 0x70000de67c00 T6)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #0 0x103433244 in __asan::asan_free(void*, __sanitizer::BufferedStackTrace*, __asan::AllocType) (libclang_rt.asan_osx_dynamic.dylib+0x3244)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #1 0x10347aeee in wrap_free (libclang_rt.asan_osx_dynamic.dylib+0x4aeee)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #2 0x102e6a5ed in glxClientCallback glxext.c:301
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #3 0x102b672a3 in _CallCallbacks dixutils.c:737
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #4 0x102b2f0c6 in CallCallbacks callback.h:83
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #5 0x102b5c15a in NextAvailableClient dispatch.c:3562
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #6 0x102d7060c in AllocNewConnection connection.c:777
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #7 0x102d71355 in EstablishNewConnections connection.c:863
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #8 0x102b662f0 in ProcessWorkQueue dixutils.c:523
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #9 0x102d52a7f in WaitForSomething WaitFor.c:175
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #10 0x102b204f6 in Dispatch dispatch.c:411
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #11 0x102b61e01 in dix_main main.c:301
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #12 0x10254c42a in server_thread quartzStartup.c:66
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #13 0x7fffc5f16aaa in _pthread_body (libsystem_pthread.dylib+0x3aaa)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #14 0x7fffc5f169f6 in _pthread_start (libsystem_pthread.dylib+0x39f6)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #15 0x7fffc5f161fc in thread_start (libsystem_pthread.dylib+0x31fc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- glx/glxext.c | 21 ---------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 21 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/glx/glxext.c b/glx/glxext.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 99f8661..29f5961 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/glx/glxext.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/glx/glxext.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -51,7 +51,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ** X resources.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int glxGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//static int glxGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RESTYPE __glXContextRes;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RESTYPE __glXDrawableRes;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -281,23 +281,23 @@ GlxPushProvider(__GLXprovider * provider)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __glXProviderStack = provider;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static Bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--checkScreenVisuals(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int i, j;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- for (i = 0; i < screenInfo.numScreens; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ScreenPtr screen = screenInfo.screens[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- for (j = 0; j < screen->numVisuals; j++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((screen->visuals[j].class == TrueColor ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- screen->visuals[j].class == DirectColor) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- screen->visuals[j].nplanes > 12)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//static Bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//checkScreenVisuals(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// int i, j;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// for (i = 0; i < screenInfo.numScreens; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ScreenPtr screen = screenInfo.screens[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// for (j = 0; j < screen->numVisuals; j++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// if ((screen->visuals[j].class == TrueColor ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// screen->visuals[j].class == DirectColor) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// screen->visuals[j].nplanes > 12)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GetGLXDrawableBytes(void *value, XID id, ResourceSizePtr size)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -471,10 +471,10 @@ xorgGlxGetDispatchAddress(CARD8 minorOpcode, CARD32 vendorCode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static Bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xorgGlxServerPreInit(const ExtensionEntry *extEntry)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (glxGeneration != serverGeneration) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //if (glxGeneration != serverGeneration) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Mesa requires at least one True/DirectColor visual */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!checkScreenVisuals())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // if (!checkScreenVisuals())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __glXContextRes = CreateNewResourceType((DeleteType) ContextGone,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "GLXContext");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -497,10 +497,12 @@ xorgGlxServerPreInit(const ExtensionEntry *extEntry)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __glXregisterPresentCompleteNotify();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glxGeneration = serverGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // glxGeneration = serverGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //return glxGeneration == serverGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return glxGeneration == serverGeneration;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch b/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1c9bf78189c..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,41 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From da0dc81ea081657dba3ba492359593ba40d7245a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 13 Jan 2012 12:00:57 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5000/5005] sdksyms.sh: Use CPPFLAGS, not CFLAGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CFLAGS can include flags which are not useful to the preprocessor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-or can even cause it to fail. This fixes a build issue on darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-when building for more than one architecture.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Keith Packard <keithp@keithp.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hw/xfree86/Makefile.am | 5 ++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 2 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 85bd0be..6de7c10 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xfree86/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/hw/xfree86/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -52,8 +52,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bin_PROGRAMS = Xorg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- nodist_Xorg_SOURCES = sdksyms.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ $(XORG_INCS) -I$(srcdir)/parser \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -I$(srcdir)/dri -I$(srcdir)/dri2 -I$(top_srcdir)/dri3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -142,7 +141,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXTRA_DIST += sdksyms.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sdksyms.dep sdksyms.c: sdksyms.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CPPFLAGS) $(AM_CPPFLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SDKSYMS_DEP = sdksyms.dep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -include $(SDKSYMS_DEP)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch b/x11/xorg-server-devel/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d08d2d56d19..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,348 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 1d3dba846a7e51608b71797e7510d114555bfcd3 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sat, 26 Dec 2015 10:56:52 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5001/5005] Revert "dix: Restore PaintWindow screen hook"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit cbd3cfbad3f07b20e90ea9498110f255813eb441.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- composite/compwindow.c | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dix/window.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hw/xquartz/quartz.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hw/xwin/winrandr.c | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include/scrnintstr.h | 5 -----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mi/miexpose.c | 32 +++++++++++++++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mi/mioverlay.c | 11 +++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mi/miscrinit.c | 1 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mi/miwindow.c | 6 ++----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miext/rootless/rootlessCommon.h | 1 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miext/rootless/rootlessScreen.c | 3 +--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miext/rootless/rootlessWindow.c | 23 +----------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miext/rootless/rootlessWindow.h | 1 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 13 files changed, 42 insertions(+), 53 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/composite/compwindow.c b/composite/compwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 344138a..77bdfa2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/composite/compwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/composite/compwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -105,7 +105,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionNull(&exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionSubtract(&exposed, &pWindow->borderClip, &pWindow->winSize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWindow->drawable.pScreen->PaintWindow(pWindow, &exposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWindow, &exposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(&exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/dix/window.c b/dix/window.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ead4dc2..6f31396 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/dix/window.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/dix/window.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1592,7 +1592,7 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionNull(&exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionSubtract(&exposed, &pWin->borderClip, &pWin->winSize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWin->drawable.pScreen->PaintWindow(pWin, &exposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, &exposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(&exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3159,7 +3159,7 @@ dixSaveScreens(ClientPtr client, int on, int mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* make it look like screen saver is off, so that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * NotClippedByChildren will compute a clip list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * for the root window, so PaintWindow works
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * for the root window, so miPaintWindow works
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- screenIsSaved = SCREEN_SAVER_OFF;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (*pWin->drawable.pScreen->MoveWindow) (pWin,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c8b6f96..2def8e3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xquartz/quartz.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/hw/xquartz/quartz.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -280,8 +280,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- quartzProcs->UpdateScreen(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* PaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* miPaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Tell RandR about the new size, so new connections get the correct info */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RRScreenSizeNotify(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/hw/xwin/winrandr.c b/hw/xwin/winrandr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1560199..73bbc9d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xwin/winrandr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/hw/xwin/winrandr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,7 +134,7 @@ winDoRandRScreenSetSize(ScreenPtr pScreen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SetRootClip(pScreen, ROOT_CLIP_FULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // and arrange for it to be repainted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Indicate that a screen size change took place */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RRScreenSizeNotify(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/include/scrnintstr.h b/include/scrnintstr.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2e617c4..a627fe7 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/include/scrnintstr.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/include/scrnintstr.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -158,10 +158,6 @@ typedef void (*PostValidateTreeProcPtr) (WindowPtr /*pParent */ ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef void (*WindowExposuresProcPtr) (WindowPtr /*pWindow */ ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionPtr /*prgn */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--typedef void (*PaintWindowProcPtr) (WindowPtr /*pWindow*/,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RegionPtr /*pRegion*/,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int /*what*/);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef void (*CopyWindowProcPtr) (WindowPtr /*pWindow */ ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DDXPointRec /*ptOldOrg */ ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionPtr /*prgnSrc */ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -544,7 +540,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ClearToBackgroundProcPtr ClearToBackground;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ClipNotifyProcPtr ClipNotify;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RestackWindowProcPtr RestackWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PaintWindowProcPtr PaintWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Pixmap procedures */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mi/miexpose.c b/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 148d1a6..f4c6e89 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -268,11 +268,10 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionTranslate(&rgnExposed, pDstDrawable->x, pDstDrawable->y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (extents) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* PaintWindow doesn't clip, so we have to */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* miPaintWindow doesn't clip, so we have to */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionIntersect(&rgnExposed, &rgnExposed, &pWin->clipList);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pDstDrawable->pScreen->PaintWindow((WindowPtr) pDstDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &rgnExposed, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow((WindowPtr) pDstDrawable, &rgnExposed, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (extents) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionReset(&rgnExposed, &expBox);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -384,14 +383,16 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * work overall, on both client and server. This is cheating, but
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * isn't prohibited by the protocol ("spontaneous combustion" :-).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- BoxRec box = *RegionExtents(prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BoxRec box;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ box = *RegionExtents(prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- exposures = &expRec;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionInit(exposures, &box, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionReset(prgn, &box);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* miPaintWindow doesn't clip, so we have to */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionIntersect(prgn, prgn, &pWin->clipList);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWin->drawable.pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, prgn, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (clientInterested)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miSendExposures(pWin, exposures,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pWin->drawable.x, pWin->drawable.y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -401,6 +402,14 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef ROOTLESS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Ugly, ugly, but we lost our hooks into miPaintWindow... =/ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void RootlessSetPixmapOfAncestors(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void RootlessStartDrawing(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Bool IsFramedWindow(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -428,6 +437,19 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Bool solid = TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DrawablePtr drawable = &pWin->drawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef ROOTLESS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (IsFramedWindow(pWin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessStartDrawing(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessDamageRegion(pWin, prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (pWin->backgroundState == ParentRelative) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((what == PW_BACKGROUND) ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (what == PW_BORDER && !pWin->borderIsPixel))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessSetPixmapOfAncestors(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (what == PW_BACKGROUND) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (pWin->backgroundState == ParentRelative)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pWin = pWin->parent;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mi/mioverlay.c b/mi/mioverlay.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b8b7a5b..a2715e9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/mi/mioverlay.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/mi/mioverlay.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -844,8 +844,8 @@ miOverlayHandleExposures(WindowPtr pWin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ((mival = pTree->valdata)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!((*pPriv->InOverlay) (pTree->pWin))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (RegionNotEmpty(&mival->borderExposed)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pTree->pWin, &mival->borderExposed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pTree->pWin, &mival->borderExposed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(&mival->borderExposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -883,8 +883,7 @@ miOverlayHandleExposures(WindowPtr pWin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (RegionNotEmpty(&val->after.borderExposed)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pChild, &val->after.borderExposed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (*WindowExposures) (pChild, &val->after.exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1008,7 +1007,7 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionIntersect(prgn, prgn, &pWin->clipList);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, prgn, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (clientInterested)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miSendExposures(pWin, exposures,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pWin->drawable.x, pWin->drawable.y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1607,7 +1606,7 @@ miOverlayClearToBackground(WindowPtr pWin,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (generateExposures)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (*pScreen->WindowExposures) (pWin, ®);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (pWin->backgroundState != None)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pWin, ®, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, ®, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(®);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mi/miscrinit.c b/mi/miscrinit.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9c6af0d..b53c7e4 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/mi/miscrinit.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/mi/miscrinit.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -253,7 +253,6 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pScreen->ClearToBackground = miClearToBackground;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pScreen->ClipNotify = (ClipNotifyProcPtr) 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pScreen->RestackWindow = (RestackWindowProcPtr) 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow = miPaintWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* CreatePixmap, DestroyPixmap */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* RealizeFont, UnrealizeFont */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* CreateGC */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mi/miwindow.c b/mi/miwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 39c279e..2fc7cfb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/mi/miwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/mi/miwindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -113,7 +113,7 @@ miClearToBackground(WindowPtr pWin,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (generateExposures)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (*pWin->drawable.pScreen->WindowExposures) (pWin, ®);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (pWin->backgroundState != None)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWin->drawable.pScreen->PaintWindow(pWin, ®, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, ®, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(®);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -219,9 +219,7 @@ miHandleValidateExposures(WindowPtr pWin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ((val = pChild->valdata)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (RegionNotEmpty(&val->after.borderExposed))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWin->drawable.pScreen->PaintWindow(pChild,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &val->after.borderExposed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(&val->after.borderExposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (*WindowExposures) (pChild, &val->after.exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionUninit(&val->after.exposed);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/miext/rootless/rootlessCommon.h b/miext/rootless/rootlessCommon.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c3fa2a2..7fdea22 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/miext/rootless/rootlessCommon.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/miext/rootless/rootlessCommon.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -94,7 +94,6 @@ typedef struct _RootlessScreenRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ChangeBorderWidthProcPtr ChangeBorderWidth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PositionWindowProcPtr PositionWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ChangeWindowAttributesProcPtr ChangeWindowAttributes;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PaintWindowProcPtr PaintWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CreateGCProcPtr CreateGC;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CopyWindowProcPtr CopyWindow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4716564..6226ee8 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/miext/rootless/rootlessScreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/miext/rootless/rootlessScreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -473,7 +473,7 @@ expose_1(WindowPtr pWin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!pWin->realized)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pWin->drawable.pScreen->PaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miPaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* FIXME: comments in windowstr.h indicate that borderClip doesn't
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include subwindow visibility. But I'm not so sure.. so we may
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -669,7 +669,6 @@ RootlessWrap(ScreenPtr pScreen)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(CloseScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(CreateGC);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(CopyWindow);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- WRAP(PaintWindow);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(GetImage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(SourceValidate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WRAP(CreateWindow);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e304299..3240acc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/miext/rootless/rootlessWindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/miext/rootless/rootlessWindow.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -720,7 +720,7 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * RootlessCopyWindow
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update *new* location of window. Old location is redrawn with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * PaintWindow. Cloned from fbCopyWindow.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * miPaintWindow. Cloned from fbCopyWindow.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The original always draws on the root pixmap, which we don't have.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Instead, draw on the parent window's pixmap.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -794,27 +794,6 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RL_DEBUG_MSG("copywindowFB end\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ScreenPtr pScreen = pWin->drawable.pScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (IsFramedWindow(pWin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RootlessStartDrawing(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RootlessDamageRegion(pWin, prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (pWin->backgroundState == ParentRelative) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((what == PW_BACKGROUND) ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (what == PW_BORDER && !pWin->borderIsPixel))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RootlessSetPixmapOfAncestors(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- SCREEN_UNWRAP(pScreen, PaintWindow);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pScreen->PaintWindow(pWin, prgn, what);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- SCREEN_WRAP(pScreen, PaintWindow);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Window resize procedures
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4fd34d5..d3955fc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/miext/rootless/rootlessWindow.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/miext/rootless/rootlessWindow.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -48,7 +48,6 @@ Bool RootlessUnrealizeWindow(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessRestackWindow(WindowPtr pWin, WindowPtr pOldNextSib);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionPtr prgnSrc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- VTKind kind);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessResizeWindow(WindowPtr pWin, int x, int y, unsigned int w,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch b/x11/xorg-server-devel/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 7c1ae876d31..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,158 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From d6058fa4f68b68dff95c5ce826f9b9b498df3951 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 30 Apr 2010 13:08:25 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5002/5005] Workaround the GC clipping problem in miPaintWindow
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- and add some debugging output.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mi/miexpose.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 90 insertions(+), 9 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mi/miexpose.c b/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f4c6e89..fe3bcb1 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/mi/miexpose.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,7 +408,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessStartDrawing(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Bool IsFramedWindow(WindowPtr pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "../fb/fb.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -437,20 +438,32 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Bool solid = TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DrawablePtr drawable = &pWin->drawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef XQUARTZ_CLIP_DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ prgn->extents.x2 - prgn->extents.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ prgn->extents.y2 - prgn->extents.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->winSize.extents.x1, pWin->winSize.extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->winSize.extents.x2 - pWin->winSize.extents.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->winSize.extents.y2 - pWin->winSize.extents.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->drawable.width, pWin->drawable.height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (what == PW_BACKGROUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef ROOTLESS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (IsFramedWindow(pWin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RootlessStartDrawing(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RootlessDamageRegion(pWin, prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(IsFramedWindow(pWin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessStartDrawing(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessDamageRegion(pWin, prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (pWin->backgroundState == ParentRelative) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((what == PW_BACKGROUND) ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (what == PW_BORDER && !pWin->borderIsPixel))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(pWin->backgroundState == ParentRelative) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RootlessSetPixmapOfAncestors(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (what == PW_BACKGROUND) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (pWin->backgroundState == ParentRelative)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pWin = pWin->parent;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -475,6 +488,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PixmapPtr pixmap;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef ROOTLESS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(IsFramedWindow(pWin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessStartDrawing(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessDamageRegion(pWin, prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(!pWin->borderIsPixel &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->backgroundState == ParentRelative) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RootlessSetPixmapOfAncestors(pWin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fill = pWin->border;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- solid = pWin->borderIsPixel;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -484,6 +509,11 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- drawable = &pixmap->drawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef XQUARTZ_CLIP_DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" Draw: %d %d %d %d\n",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ drawable->x, drawable->y, drawable->width, drawable->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (pWin->backgroundState == ParentRelative)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pWin = pWin->parent;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -550,6 +580,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ChangeGC(NullClient, pGC, gcmask, gcval);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ValidateGC(drawable, pGC);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef XQUARTZ_CLIP_DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" GC: %d %d %d %d\n",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef XQUARTZ
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Looks like our clipping isn't set right for some reason:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * http://xquartz.macosforge.org/trac/ticket/290
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(what == PW_BORDER) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(solid) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fbFillRegionSolid(&pWin->drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ prgn,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fbReplicatePixel(fill.pixel,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pWin->drawable.bitsPerPixel));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fbFillRegionSolid(drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ prgn,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fbReplicatePixel(fill.pixel,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ drawable->bitsPerPixel));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x1 += prgn->extents.x1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.y1 += prgn->extents.y1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x2 += prgn->extents.x1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.y2 += prgn->extents.y1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x2 = drawable->pScreen->width;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.y2 = drawable->pScreen->height;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef XQUARTZ_CLIP_DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ErrorF(" GC: %d %d %d %d\n",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- numRects = RegionNumRects(prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pbox = RegionRects(prgn);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for (i = numRects; --i >= 0; pbox++, prect++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch b/x11/xorg-server-devel/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d355e0003eb..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,289 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 2850855f560451bb64dd5af3f005c6988961336e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sat, 2 Nov 2013 11:00:23 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5003/5005] Use old miTrapezoids and miTriangles routines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reverts commits:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 788ccb9a8bcf6a4fb4054c507111eec3338fb969
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 566f1931ee2916269e164e114bffaf2da1d039d1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://xquartz.macosforge.org/trac/ticket/525
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbpict.c | 2 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- render/mipict.c | 4 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- render/mipict.h | 27 ++++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- render/mitri.c | 61 +++++++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5 files changed, 201 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbpict.c b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7ea0b66..434d890 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -498,10 +498,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->UnrealizeGlyph = fbUnrealizeGlyph;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->CompositeRects = miCompositeRects;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->Trapezoids = fbTrapezoids;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->AddTraps = fbAddTraps;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->AddTriangles = fbAddTriangles;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->Triangles = fbTriangles;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/render/mipict.c b/render/mipict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4b85512..a39eb2c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/render/mipict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/render/mipict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -575,8 +575,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->Composite = 0; /* requires DDX support */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->Glyphs = miGlyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->CompositeRects = miCompositeRects;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->Trapezoids = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->Triangles = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ps->Trapezoids = miTrapezoids;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ps->Triangles = miTriangles;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->RasterizeTrapezoid = 0; /* requires DDX support */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->AddTraps = 0; /* requires DDX support */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/render/mipict.h b/render/mipict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3241be4..8ee7a8a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/render/mipict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/render/mipict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -102,9 +102,36 @@ miCompositeRects(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xRenderColor * color, int nRect, xRectangle *rects);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miTriangles (CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 ySrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int ntri,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xTriangle *tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern _X_EXPORT PicturePtr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miCreateAlphaPicture (ScreenPtr pScreen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr pPictFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CARD16 width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CARD16 height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miTrapezoids (CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 ySrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int ntrap,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xTrapezoid *traps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/render/mitrap.c b/render/mitrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 17b6dcd..71c1857 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/render/mitrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/render/mitrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -34,6 +34,55 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "picturestr.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "mipict.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+PicturePtr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miCreateAlphaPicture (ScreenPtr pScreen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr pPictFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CARD16 width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CARD16 height)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PixmapPtr pPixmap;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pPicture;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ GCPtr pGC;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xRectangle rect;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (width > 32767 || height > 32767)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pPictFormat)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (pDst->polyEdge == PolyEdgeSharp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pPictFormat)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPictFormat->depth, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pPixmap)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pGC)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*pScreen->DestroyPixmap) (pPixmap);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ValidateGC (&pPixmap->drawable, pGC);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rect.x = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rect.y = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rect.width = width;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rect.height = height;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ FreeScratchGC (pGC);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0, 0, serverClient, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*pScreen->DestroyPixmap) (pPixmap);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return pPicture;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static xFixed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miLineFixedX(xLineFixed * l, xFixed y, Bool ceil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- box->x2 = x2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miTrapezoids (CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 ySrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int ntrap,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xTrapezoid *traps)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ScreenPtr pScreen = pDst->pDrawable->pScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictureScreenPtr ps = GetPictureScreen(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Check for solid alpha add
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (; ntrap; ntrap--, traps++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (maskFormat)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pPicture;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BoxRec bounds;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xDst, yDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xRel, yRel;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xDst = traps[0].left.p1.x >> 16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ yDst = traps[0].left.p1.y >> 16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miTrapezoidBounds (ntrap, traps, &bounds);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.x2 - bounds.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.y2 - bounds.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pPicture)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (; ntrap; ntrap--, traps++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*ps->RasterizeTrapezoid) (pPicture, traps,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ -bounds.x1, -bounds.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xRel = bounds.x1 + xSrc - xDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ yRel = bounds.y1 + ySrc - yDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CompositePicture (op, pSrc, pPicture, pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xRel, yRel, 0, 0, bounds.x1, bounds.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.x2 - bounds.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.y2 - bounds.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ FreePicture (pPicture, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (pDst->polyEdge == PolyEdgeSharp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (; ntrap; ntrap--, traps++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/render/mitri.c b/render/mitri.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 922f22a..bdca9ca 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/render/mitri.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/render/mitri.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+miTriangles (CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 ySrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int ntri,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xTriangle *tris)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ScreenPtr pScreen = pDst->pDrawable->pScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PictureScreenPtr ps = GetPictureScreen(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Check for solid alpha add
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*ps->AddTriangles) (pDst, 0, 0, ntri, tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (maskFormat)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BoxRec bounds;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PicturePtr pPicture;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xDst, yDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ INT16 xRel, yRel;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xDst = tris[0].p1.x >> 16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ yDst = tris[0].p1.y >> 16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miTriangleBounds (ntri, tris, &bounds);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.x2 - bounds.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.y2 - bounds.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!pPicture)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xRel = bounds.x1 + xSrc - xDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ yRel = bounds.y1 + ySrc - yDst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CompositePicture (op, pSrc, pPicture, pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xRel, yRel, 0, 0, bounds.x1, bounds.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bounds.x2 - bounds.x1, bounds.y2 - bounds.y1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ FreePicture (pPicture, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (pDst->polyEdge == PolyEdgeSharp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (; ntri; ntri--, tris++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch b/x11/xorg-server-devel/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 811e234c4ef..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,320 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 055a7bb8f22eb94a35cae6224d109daa435d288d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 12 Feb 2010 19:48:52 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5004/5005] fb: Revert fb changes that broke XQuartz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://bugs.freedesktop.org/show_bug.cgi?id=26124
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Revert "fb: Adjust transform or composite coordinates for pixman operations"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://bugs.freedesktop.org/26124
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fb.h | 3 +--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbpict.c | 82 ++++++++++++++++++-------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbtrap.c | 43 ++++++++++++++------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 43 insertions(+), 85 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fb.h b/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c687aa7..256a1ee 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1149,8 +1149,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RegionPtr pRegion, FbBits and, FbBits xor);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- Bool has_clip,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int *xoff, int *yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Bool has_clip);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbpict.c b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 434d890..be8274b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -46,23 +46,18 @@ fbComposite(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *src, *mask, *dest;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int src_xoff, src_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int msk_xoff, msk_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int dst_xoff, dst_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miCompositeSourceValidate(pSrc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pMask)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miCompositeSourceValidate(pMask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ src = image_from_pict(pSrc, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mask = image_from_pict(pMask, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ dest = image_from_pict(pDst, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (src && dest && !(pMask && !mask)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_composite(op, src, mask, dest,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xSrc + src_xoff, ySrc + src_yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xMask + msk_xoff, yMask + msk_yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xDst + dst_xoff, yDst + dst_yoff, width, height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xSrc, ySrc, xMask, yMask, xDst, yDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ width, height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free_pixman_pict(pSrc, src);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -279,20 +274,22 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static pixman_image_t *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+create_bits_picture(PicturePtr pict, Bool has_clip)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PixmapPtr pixmap;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FbBits *bits;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FbStride stride;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int bpp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int bpp, xoff, yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- fbGetPixmapBitsData(pixmap, bits, stride, bpp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bits = (FbBits*)((CARD8*)bits +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (pict->pDrawable->x + xoff) * (bpp / 8));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- image = pixman_image_create_bits((pixman_format_code_t) pict->format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixmap->drawable.width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixmap->drawable.height, (uint32_t *) bits,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pict->pDrawable->width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pict->pDrawable->height, (uint32_t *) bits,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- stride * sizeof(FbStride));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!image)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -311,28 +308,21 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pict->clientClip)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_set_has_client_clip(image, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (*xoff || *yoff)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_set_clip_region(image, pict->pCompositeClip);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (*xoff || *yoff)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Indexed table */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pict->pFormat->index.devPrivate)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_set_indexed(image, pict->pFormat->index.devPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Add in drawable origin to position within the image */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *xoff += pict->pDrawable->x;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *yoff += pict->pDrawable->y;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int *xoff, int *yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Bool is_alpha_map);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void image_destroy(pixman_image_t *image, void *data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -341,32 +331,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int *xoff, int *yoff, Bool is_alpha_map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_repeat_t repeat;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_filter_t filter;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pict->transform) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* For source images, adjust the transform to account
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * for the drawable offset within the pixman image,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * then set the offset to 0 as it will be used
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * to compute positions within the transformed image.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!has_clip) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- struct pixman_transform adjusted;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- adjusted = *pict->transform;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_transform_translate(&adjusted,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- NULL,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_int_to_fixed(*xoff),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_int_to_fixed(*yoff));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_image_set_transform(image, &adjusted);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *xoff = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *yoff = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_image_set_transform(image, pict->transform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_image_set_transform(image, pict->transform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- switch (pict->repeatType) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -394,10 +365,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * as the alpha map for this operation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pict->alphaMap && !is_alpha_map) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int alpha_xoff, alpha_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *alpha_map =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &alpha_yoff, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ image_from_pict_internal(pict->alphaMap, TRUE, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pict->alphaOrigin.y);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -435,8 +404,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static pixman_image_t *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- Bool is_alpha_map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *image = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -444,7 +412,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (pict->pDrawable) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- image = create_bits_picture(pict, has_clip, xoff, yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ image = create_bits_picture(pict, has_clip);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (pict->pSourcePict) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SourcePict *sp = pict->pSourcePict;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -462,19 +430,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (sp->type == SourcePictTypeConical)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- image = create_conical_gradient_image(gradient);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *xoff = *yoff = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (image)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ set_image_properties (image, pict, is_alpha_map);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+image_from_pict (PicturePtr pict, Bool has_clip)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return image_from_pict_internal (pict, has_clip, FALSE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbtrap.c b/fb/fbtrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bf82f8f..0145ce9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbtrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbtrap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INT16 x_off, INT16 y_off, int ntrap, xTrap * traps)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int dst_xoff, dst_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntrap, (pixman_trap_t *) traps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!(image = image_from_pict (pPicture, FALSE)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_add_traps(image, x_off, y_off,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ntrap, (pixman_trap_t *)traps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free_pixman_pict(pPicture, image);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xTrapezoid * trap, int x_off, int y_off)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int dst_xoff, dst_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!(image = image_from_pict (pPicture, FALSE)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- x_off + dst_xoff, y_off + dst_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ x_off, y_off);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free_pixman_pict(pPicture, image);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INT16 x_off, INT16 y_off, int ntri, xTriangle * tris)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *image;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int dst_xoff, dst_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!(image = image_from_pict (pPicture, FALSE)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_add_triangles(image,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dst_xoff + x_off, dst_yoff + y_off,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntri, (pixman_triangle_t *) tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pixman_add_triangles(image, x_off, y_off, ntri,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (pixman_triangle_t *)tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free_pixman_pict(pPicture, image);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_image_t *src, *dst;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int src_xoff, src_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int dst_xoff, dst_yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- miCompositeSourceValidate(pSrc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ src = image_from_pict(pSrc, FALSE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ dst = image_from_pict(pDst, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (src && dst) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pixman_format_code_t format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for (i = 0; i < nshapes; ++i) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- composite(op, src, dst, format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xSrc + src_xoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ySrc + src_yoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dst_xoff, dst_yoff, 1, shapes + i * shape_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xSrc, ySrc, 0, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 1, shapes + i * shape_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- composite(op, src, dst, format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xSrc + src_xoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xSrc, ySrc, 0, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ nshapes, shapes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DamageRegionProcessPending(pDst->pDrawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch b/x11/xorg-server-devel/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9b2ab6a39a0..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,243 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 3475655620bc51071f0ba9cbc30b39587d9b0b44 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sat, 31 May 2014 13:14:20 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5005/5005] fb: Revert fb changes that broke XQuartz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- http://bugs.freedesktop.org/show_bug.cgi?id=26124
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Revert "fb: Fix origin of source picture in fbGlyphs"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fb.h | 3 --
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbpict.c | 149 +---------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbpict.h | 11 +----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fb/fbscreen.c | 1 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4 files changed, 2 insertions(+), 162 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fb.h b/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 256a1ee..8e87498 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fb.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -952,9 +952,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT Bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--fbDestroyGlyphCache(void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * fbpixmap.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbpict.c b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index be8274b..66dd633 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbpict.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,152 +65,6 @@ fbComposite(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free_pixman_pict(pDst, dest);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static pixman_glyph_cache_t *glyphCache;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--fbDestroyGlyphCache(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (glyphCache)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_cache_destroy (glyphCache);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyphCache = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--fbUnrealizeGlyph(ScreenPtr pScreen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphPtr pGlyph)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (glyphCache)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_cache_remove (glyphCache, pGlyph, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--fbGlyphs(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- INT16 ySrc, int nlist,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphListPtr list,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphPtr *glyphs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define N_STACK_GLYPHS 512
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ScreenPtr pScreen = pDst->pDrawable->pScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_t *pglyphs = stack_glyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_image_t *srcImage, *dstImage;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int srcXoff, srcYoff, dstXoff, dstYoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphPtr glyph;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int n_glyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int x, y;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int i, n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int xDst = list->xOff, yDst = list->yOff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- miCompositeSourceValidate(pSrc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- n_glyphs = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- for (i = 0; i < nlist; ++i)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- n_glyphs += list[i].len;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!glyphCache)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyphCache = pixman_glyph_cache_create();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_cache_freeze (glyphCache);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (n_glyphs > N_STACK_GLYPHS) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(pglyphs = xallocarray(n_glyphs, sizeof(pixman_glyph_t))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto out;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- i = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- x = y = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- while (nlist--) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- x += list->xOff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- y += list->yOff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- n = list->len;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- while (n--) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- const void *g;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyph = *glyphs++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_image_t *glyphImage;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PicturePtr pPicture;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int xoff, yoff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pPicture = GetGlyphPicture(glyph, pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!pPicture) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- n_glyphs--;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto next;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto out;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g = pixman_glyph_cache_insert(glyphCache, glyph, NULL,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyph->info.x,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyph->info.y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyphImage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- free_pixman_pict(pPicture, glyphImage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!g)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto out;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pglyphs[i].x = x;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pglyphs[i].y = y;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pglyphs[i].glyph = g;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- i++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- next:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- x += glyph->info.xOff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- y += glyph->info.yOff;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- list++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto out;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- goto out_free_src;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (maskFormat) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_format_code_t format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_box32_t extents;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- format = maskFormat->format | (maskFormat->depth << 24);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_composite_glyphs(op, srcImage, dstImage, format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extents.x1, extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extents.x1 + dstXoff, extents.y1 + dstYoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extents.x2 - extents.x1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extents.y2 - extents.y1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyphCache, n_glyphs, pglyphs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_composite_glyphs_no_mask(op, srcImage, dstImage,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xSrc + srcXoff - xDst, ySrc + srcYoff - yDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dstXoff, dstYoff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- glyphCache, n_glyphs, pglyphs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- free_pixman_pict(pDst, dstImage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--out_free_src:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- free_pixman_pict(pSrc, srcImage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--out:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pixman_glyph_cache_thaw(glyphCache);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (pglyphs != stack_glyphs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- free(pglyphs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static pixman_image_t *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- create_solid_fill_image(PicturePtr pict)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -460,8 +314,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps = GetPictureScreen(pScreen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->Composite = fbComposite;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->Glyphs = fbGlyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ps->UnrealizeGlyph = fbUnrealizeGlyph;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ps->Glyphs = miGlyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->CompositeRects = miCompositeRects;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ps->AddTraps = fbAddTraps;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbpict.h b/fb/fbpict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5cb8663..110f32d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbpict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbpict.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -60,20 +60,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fbTriangles(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern _X_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--fbGlyphs(CARD8 op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PicturePtr pSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PicturePtr pDst,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- PictFormatPtr maskFormat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- INT16 xSrc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- INT16 ySrc, int nlist,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphListPtr list,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GlyphPtr *glyphs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* _FBPICT_H_ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/fb/fbscreen.c b/fb/fbscreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 71bcc5d..55330fc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/fb/fbscreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/fb/fbscreen.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int d;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DepthPtr depths = pScreen->allowedDepths;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- fbDestroyGlyphCache();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for (d = 0; d < pScreen->numDepths; d++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free(depths[d].vids);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free(depths);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.8.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/5008-fix-calloc-free-mis-match-bug.patch b/x11/xorg-server-devel/files/5008-fix-calloc-free-mis-match-bug.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9ee9378041c..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/5008-fix-calloc-free-mis-match-bug.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,67 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/hw/xquartz/GL/visualConfigs.c b/hw/xquartz/GL/visualConfigs.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 69b18f6a0..79a4cce58 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xquartz/GL/visualConfigs.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/hw/xquartz/GL/visualConfigs.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -59,7 +59,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Based originally on code from indirect.c which was based on code from i830_dri.c. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int numConfigs = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- __GLXconfig *visualConfigs, *c;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ __GLXconfig *visualConfigs, *c, *last_c;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct glCapabilities caps;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct glCapabilitiesConfig *conf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int stereo, depth, aux, buffers, stencil, accum, color, msample;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -113,7 +113,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(numConfigsPtr)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *numConfigsPtr = numConfigs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- visualConfigs = calloc(sizeof(*visualConfigs), numConfigs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ visualConfigs = calloc(sizeof(*visualConfigs),1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(NULL == visualConfigs) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ErrorF("xcalloc failure when allocating visualConfigs\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -122,6 +122,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c = visualConfigs; /* current buffer */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int confCount = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(conf = caps.configurations; conf; conf = conf->next) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(stereo = 0; stereo < (conf->stereo ? 2 : 1); ++stereo) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(aux = 0; aux < (conf->aux_buffers ? 2 : 1); ++aux) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,10 +135,12 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(depth = 0; depth < conf->total_depth_buffer_depths; ++depth) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(msample = 0; msample < (conf->multisample_buffers + 1); ++msample) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ++confCount;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Global
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c->visualID = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c->visualType = GLX_TRUE_COLOR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- c->next = c + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ c->next = calloc(sizeof(*visualConfigs),1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c->level = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c->indexBits = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -260,6 +263,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* EXT_framebuffer_sRGB */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c->sRGBCapable = GL_FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ last_c = c;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c = c->next;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -271,10 +275,11 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (c-1)->next = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ free(last_c->next);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ last_c->next = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (c - visualConfigs != numConfigs) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- FatalError("numConfigs calculation error in setVisualConfigs! numConfigs is %d i is %d\n", numConfigs, (int)(c - visualConfigs));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (confCount != numConfigs) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ FatalError("numConfigs calculation error in setVisualConfigs! numConfigs is %d count is %d\n", numConfigs, confCount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- freeGlCapabilities(&caps);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/Darwin19-Remove-AppFlags-Active-Hack.patch b/x11/xorg-server-devel/files/Darwin19-Remove-AppFlags-Active-Hack.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b04ffb5d738..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/Darwin19-Remove-AppFlags-Active-Hack.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,10 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/hw/xquartz/X11Application.m.orig 2019-07-16 13:45:05.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ a/hw/xquartz/X11Application.m 2019-07-16 13:46:31.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -428,7 +428,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* FIXME: This is a hack to avoid passing the event to AppKit which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * would result in it raising one of its windows.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- _appFlags._active = YES;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //_appFlags._active = YES;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [self set_front_process:nil];
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/dri/GL/internal/dri_interface.h b/x11/xorg-server-devel/files/dri/GL/internal/dri_interface.h
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b012570ae13..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/dri/GL/internal/dri_interface.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,1409 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Copyright 2007-2008 Red Hat, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * (C) Copyright IBM Corporation 2004
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * All Rights Reserved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Permission is hereby granted, free of charge, to any person obtaining a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * copy of this software and associated documentation files (the "Software"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * to deal in the Software without restriction, including without limitation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * on the rights to use, copy, modify, merge, publish, distribute, sub
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * license, and/or sell copies of the Software, and to permit persons to whom
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the Software is furnished to do so, subject to the following conditions:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The above copyright notice and this permission notice (including the next
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * paragraph) shall be included in all copies or substantial portions of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Software.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * USE OR OTHER DEALINGS IN THE SOFTWARE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \file dri_interface.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This file contains all the types and functions that define the interface
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * between a DRI driver and driver loader. Currently, the most common driver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * loader is the XFree86 libGL.so. However, other loaders do exist, and in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the future the server-side libglx.a will also be a loader.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \author Kevin E. Martin <kevin@precisioninsight.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \author Ian Romanick <idr@us.ibm.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \author Kristian Høgsberg <krh@redhat.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef DRI_INTERFACE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define DRI_INTERFACE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* For archs with no drm.h */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef __NOT_HAVE_DRM_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __NOT_HAVE_DRM_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef __NOT_HAVE_DRM_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#include <drm.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int drm_context_t;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int drm_drawable_t;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct drm_clip_rect drm_clip_rect_t;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \name DRI interface structures
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The following structures define the interface between the GLX client
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * side library and the DRI (direct rendering infrastructure).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@{*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIdisplayRec __DRIdisplay;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIscreenRec __DRIscreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIcontextRec __DRIcontext;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIdrawableRec __DRIdrawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIconfigRec __DRIconfig;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIframebufferRec __DRIframebuffer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIversionRec __DRIversion;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIcoreExtensionRec __DRIcoreExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIextensionRec __DRIextension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIswrastExtensionRec __DRIswrastExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIbufferRec __DRIbuffer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIdri2ExtensionRec __DRIdri2Extension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRI2flushExtensionRec __DRI2flushExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@}*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Extension struct. Drivers 'inherit' from this struct by embedding
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * it as the first element in the extension struct.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * We never break API in for a DRI extension. If we need to change
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the way things work in a non-backwards compatible manner, we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * introduce a new extension. During a transition period, we can
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * leave both the old and the new extension in the driver, which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * allows us to move to the new interface without having to update the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * loader(s) in lock step.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * However, we can add entry points to an extension over time as long
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * as we don't break the old ones. As we add entry points to an
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extension, we increase the version number. The corresponding
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * #define can be used to guard code that accesses the new entry
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * points at compile time and the version field in the extension
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * struct can be used at run-time to determine how to use the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIextensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int version;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The first set of extension are the screen extensions, returned by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __DRIcore::getExtensions(). This entry point will return a list of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extensions and the loader can use the ones it knows about by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * casting them to more specific extensions and advertising any GLX
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extensions the DRI extensions enables.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers to indicate support for setting the read drawable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_READ_DRAWABLE "DRI_ReadDrawable"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_READ_DRAWABLE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_COPY_SUB_BUFFER_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIcopySubBufferExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers that implement the GLX_SGI_swap_control or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * GLX_MESA_swap_control extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWAP_CONTROL "DRI_SwapControl"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWAP_CONTROL_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIswapControlExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int (*getSwapInterval)(__DRIdrawable *drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_FRAME_TRACKING_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIframeTrackingExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Enable or disable frame usage tracking.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since Internal API version 20030317.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Retrieve frame usage information.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since Internal API version 20030317.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*queryFrameTracking)(__DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int64_t * sbc, int64_t * missedFrames,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- float * lastMissedUsage, float * usage);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers that implement the GLX_SGI_video_sync extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRImediaStreamCounterExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Wait for the MSC to equal target_msc, or, if that has already passed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the next time (MSC % divisor) is equal to remainder. If divisor is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * zero, the function will return as soon as MSC is greater than or equal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * to target_msc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*waitForMSC)(__DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int64_t target_msc, int64_t divisor, int64_t remainder,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int64_t * msc, int64_t * sbc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Get the number of vertical refreshes since some point in time before
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * this function was first called (i.e., system start up).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int64_t *msc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEX_OFFSET "DRI_TexOffset"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEX_OFFSET_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRItexOffsetExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Method to override base texture image with a driver specific 'offset'.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The depth passed in allows e.g. to ignore the alpha channel of texture
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * images where the non-alpha components don't occupy a whole texel.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * For GLX_EXT_texture_from_pixmap with AIGLX.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned long long offset, GLint depth, GLuint pitch);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Valid values for format in the setTexBuffer2 function below. These
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * values match the GLX tokens for compatibility reasons, but we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * define them here since the DRI interface can't depend on GLX. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEXTURE_FORMAT_NONE 0x20D8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEXTURE_FORMAT_RGB 0x20D9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEX_BUFFER "DRI_TexBuffer"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_TEX_BUFFER_VERSION 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRItexBufferExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Method to override base texture image with the contents of a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __DRIdrawable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * setTexBuffer2 in version 2 of this interface
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*setTexBuffer)(__DRIcontext *pDRICtx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLint target,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *pDraw);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Method to override base texture image with the contents of a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __DRIdrawable, including the required texture format attribute.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * For GLX_EXT_texture_from_pixmap with AIGLX.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*setTexBuffer2)(__DRIcontext *pDRICtx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLint target,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLint format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *pDraw);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Method to release texture buffer in case some special platform
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * need this.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * For GLX_EXT_texture_from_pixmap with AIGLX.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLint target,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *pDraw);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Used by drivers that implement DRI2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_FLUSH "DRI2_Flush"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_FLUSH_VERSION 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum __DRI2throttleReason {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI2_THROTTLE_SWAPBUFFER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI2_THROTTLE_COPYSUBBUFFER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI2_THROTTLE_FLUSHFRONT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRI2flushExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*flush)(__DRIdrawable *drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Ask the driver to call getBuffers/getBuffersWithFormat before
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * it starts rendering again.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param drawable the drawable to invalidate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*invalidate)(__DRIdrawable *drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This function reduces the number of flushes in the driver by combining
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * several operations into one call.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * It can:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * - throttle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * - flush a drawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * - flush a context
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param context the context
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param drawable the drawable to flush
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param flags a combination of _DRI2_FLUSH_xxx flags
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param throttle_reason the reason for throttling, 0 = no throttling
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*flush_with_flags)(__DRIcontext *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned flags,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRI2throttleReason throttle_reason);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Extension that the driver uses to request
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * throttle callbacks.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_THROTTLE "DRI2_Throttle"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_THROTTLE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRI2throttleExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*throttle)(__DRIcontext *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRI2throttleReason reason);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@}*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The following extensions describe loader features that the DRI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * driver can make use of. Some of these are mandatory, such as the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * getDrawableInfo extension for DRI and the DRI Loader extensions for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DRI2, while others are optional, and if present allow the driver to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * expose certain features. The loader pass in a NULL terminated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * array of these extensions to the driver in the createNewScreen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * constructor.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIdamageExtensionRec __DRIdamageExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIloaderExtensionRec __DRIloaderExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Callback to getDrawableInfo protocol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_GET_DRAWABLE_INFO_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIgetDrawableInfoExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This function is used to get information about the position, size, and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * clip rects of a drawable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int * index, unsigned int * stamp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int * x, int * y, int * width, int * height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int * numClipRects, drm_clip_rect_t ** pClipRects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int * backX, int * backY,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int * numBackClipRects, drm_clip_rect_t ** pBackClipRects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Callback to get system time for media stream counter extensions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SYSTEM_TIME "DRI_SystemTime"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SYSTEM_TIME_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIsystemTimeExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Get the 64-bit unadjusted system time (UST).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*getUST)(int64_t * ust);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Get the media stream counter (MSC) rate.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Matching the definition in GLX_OML_sync_control, this function returns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the rate of the "media stream counter". In practical terms, this is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the frame refresh rate of the display.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLboolean (*getMSCRate)(__DRIdrawable *draw,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int32_t * numerator, int32_t * denominator,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Damage reporting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DAMAGE "DRI_Damage"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DAMAGE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIdamageExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Reports areas of the given drawable which have been modified by the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * driver.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param drawable which the drawing was done to.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param rects rectangles affected, with the drawable origin as the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * origin.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param x X offset of the drawable within the screen (used in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * front_buffer case)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param y Y offset of the drawable within the screen.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param front_buffer boolean flag for whether the drawing to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * drawable was actually done directly to the front buffer (instead
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * of backing storage, for example)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param loaderPrivate the data passed in at createNewDrawable time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*reportDamage)(__DRIdrawable *draw,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int x, int y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- drm_clip_rect_t *rects, int num_rects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLboolean front_buffer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_IMAGE_OP_DRAW 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_IMAGE_OP_CLEAR 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_IMAGE_OP_SWAP 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * SWRast Loader extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_LOADER_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIswrastLoaderExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Drawable position and size
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*getDrawableInfo)(__DRIdrawable *drawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *x, int *y, int *width, int *height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Put image to drawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*putImage)(__DRIdrawable *drawable, int op,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int x, int y, int width, int height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- char *data, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Get image from readable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*getImage)(__DRIdrawable *readable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int x, int y, int width, int height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- char *data, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Invalidate loader extension. The presence of this extension
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * indicates to the DRI driver that the loader will call invalidate in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the __DRI2_FLUSH extension, whenever the needs to query for new
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * buffers. This means that the DRI driver can drop the polling in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * glViewport().
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The extension doesn't provide any functionality, it's only use to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * indicate to the driver that it can use the new semantics. A DRI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * driver can use this to switch between the different semantics or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * just refuse to initialize if this extension isn't present.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_USE_INVALIDATE "DRI_UseInvalidate"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_USE_INVALIDATE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIuseInvalidateExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The remaining extensions describe driver extensions, immediately
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * available interfaces provided by the driver. To start using the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the extension you need in the array.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This symbol replaces the __DRI_DRIVER_EXTENSIONS symbol, and will be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * suffixed by "_drivername", allowing multiple drivers to be built into one
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * library, and also giving the driver the chance to return a variable driver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extensions struct depending on the driver name being loaded or any other
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * system state.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The function prototype is:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * const __DRIextension **__driDriverGetExtensions_drivername(void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRIVER_GET_EXTENSIONS "__driDriverGetExtensions"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Tokens for __DRIconfig attribs. A number of attributes defined by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * GLX or EGL standards are not in the table, as they must be provided
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * by the loader. For example, FBConfig ID or visual ID, drawable type.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BUFFER_SIZE 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_LEVEL 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_RED_SIZE 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_GREEN_SIZE 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BLUE_SIZE 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_LUMINANCE_SIZE 6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ALPHA_SIZE 7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_DEPTH_SIZE 9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_STENCIL_SIZE 10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ACCUM_RED_SIZE 11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_SAMPLE_BUFFERS 15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_SAMPLES 16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_RENDER_TYPE 17
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_CONFIG_CAVEAT 18
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_CONFORMANT 19
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_DOUBLE_BUFFER 20
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_STEREO 21
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_AUX_BUFFERS 22
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_TYPE 23
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_FLOAT_MODE 29
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_RED_MASK 30
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_GREEN_MASK 31
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BLUE_MASK 32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_ALPHA_MASK 33
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_SWAP_METHOD 40
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_YINVERTED 47
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* __DRI_ATTRIB_RENDER_TYPE */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_RGBA_BIT 0x01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_LUMINANCE_BIT 0x04
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_FLOAT_BIT 0x08
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_UNSIGNED_FLOAT_BIT 0x10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* __DRI_ATTRIB_CONFIG_CAVEAT */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_SLOW_BIT 0x01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* __DRI_ATTRIB_TRANSPARENT_TYPE */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension defines the core DRI functionality.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CORE "DRI_Core"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CORE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIcoreExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIscreen *(*createNewScreen)(int screen, int fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int sarea_handle,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driverConfigs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*destroyScreen)(__DRIscreen *screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **(*getExtensions)(__DRIscreen *screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*getConfigAttrib)(const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int attrib,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*indexConfigAttrib)(const __DRIconfig *config, int index,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *attrib, unsigned int *value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int drawable_id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int head,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*destroyDrawable)(__DRIdrawable *drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*swapBuffers)(__DRIdrawable *drawable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createNewContext)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*copyContext)(__DRIcontext *dest,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *src,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned long mask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*destroyContext)(__DRIcontext *context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*bindContext)(__DRIcontext *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *pdraw,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *pread);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*unbindContext)(__DRIcontext *ctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Stored version of some component (i.e., server-side DRI module, kernel-side
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DRM, etc.).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \todo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * There are several data structures that explicitly store a major version,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * minor version, and patch level. These structures should be modified to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * have a \c __DRIversionRec instead.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIversionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int major; /**< Major version number. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int minor; /**< Minor version number. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int patch; /**< Patch-level. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Framebuffer information record. Used by libGL to communicate information
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * about the framebuffer to the driver's \c __driCreateNewScreen function.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * In XFree86, most of this information is derrived from data returned by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * calling \c XF86DRIGetDeviceInfo.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __driUtilCreateNewScreen CallCreateNewScreen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \bug This structure could be better named.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIframebufferRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned char *base; /**< Framebuffer base address in the CPU's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * address space. This value is calculated by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * calling \c drmMap on the framebuffer handle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * returned by \c XF86DRIGetDeviceInfo (or a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * similar function).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int size; /**< Framebuffer size, in bytes. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int stride; /**< Number of bytes from one line to the next. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width; /**< Pixel width of the framebuffer. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int height; /**< Pixel height of the framebuffer. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int dev_priv_size; /**< Size of the driver's dev-priv structure. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *dev_priv; /**< Pointer to the driver's dev-priv structure. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides alternative screen, drawable and context
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * constructors for legacy DRI functionality. This is used in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * conjunction with the core extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_LEGACY "DRI_Legacy"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_LEGACY_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIlegacyExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIscreen *(*createNewScreen)(int screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIversion *ddx_version,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIversion *dri_version,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIversion *drm_version,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIframebuffer *frame_buffer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *pSAREA, int fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driver_configs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- drm_drawable_t hwDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int renderType, const int *attrs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createNewContext)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int render_type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- drm_context_t hwContext,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides alternative screen, drawable and context
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * constructors for swrast DRI functionality. This is used in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * conjunction with the core extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST "DRI_SWRast"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_SWRAST_VERSION 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIswrastExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIscreen *(*createNewScreen)(int screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driver_configs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Since version 2 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int api,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create a context for a particular API with a set of attributes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since version 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \sa __DRIdri2ExtensionRec::createContextAttribs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createContextAttribs)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int api,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned num_attribs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const uint32_t *attribs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned *error,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * createNewScreen() with the driver extensions passed in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since version 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIscreen *(*createNewScreen2)(int screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **loader_extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **driver_extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driver_configs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Common DRI function definitions, shared among DRI2 and Image extensions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef __DRIscreen *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*__DRIcreateNewScreen2Func)(int screen, int fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **driver_extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driver_configs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef __DRIdrawable *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*__DRIcreateNewDrawableFunc)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef __DRIcontext *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*__DRIcreateContextAttribsFunc)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int api,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned num_attribs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const uint32_t *attribs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned *error,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*__DRIgetAPIMaskFunc)(__DRIscreen *screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DRI2 Loader extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_FRONT_LEFT 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_BACK_LEFT 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_FRONT_RIGHT 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_BACK_RIGHT 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_DEPTH 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_STENCIL 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_ACCUM 6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_FAKE_FRONT_LEFT 7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_HIZ 10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Inofficial and for internal use. Increase when adding a new buffer token. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_BUFFER_COUNT 11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIbufferRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int attachment;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int pitch;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int cpp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int flags;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRI2_LOADER "DRI_DRI2Loader"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRI2_LOADER_VERSION 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIdri2LoaderExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *width, int *height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *attachments, int count,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *out_count, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Flush pending front-buffer rendering
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Any rendering that has been performed to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c __DRI_BUFFER_FRONT_LEFT.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param driDrawable Drawable whose front-buffer is to be flushed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param loaderPrivate Loader's private data that was previously passed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * into __DRIdri2ExtensionRec::createNewDrawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Get list of buffers from the server
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Gets a list of buffer for the specified set of attachments. Unlike
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c ::getBuffers, this function takes a list of attachments paired with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * opaque \c unsigned \c int value describing the format of the buffer.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * It is the responsibility of the caller to know what the service that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * allocates the buffers will expect to receive for the format.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param driDrawable Drawable whose buffers are being queried.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param width Output where the width of the buffers is stored.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param height Output where the height of the buffers is stored.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param attachments List of pairs of attachment ID and opaque format
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * requested for the drawable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param count Number of attachment / format pairs stored in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c attachments.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param loaderPrivate Loader's private data that was previously passed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * into __DRIdri2ExtensionRec::createNewDrawable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *width, int *height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *attachments, int count,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *out_count, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides alternative screen, drawable and context
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * constructors for DRI2.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRI2 "DRI_DRI2"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRI2_VERSION 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_API_GLES 1 /**< OpenGL ES 1.x */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_API_GLES2 2 /**< OpenGL ES 2.x */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_API_GLES3 4 /**< OpenGL ES 3.x */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ATTRIB_MINOR_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ATTRIB_FLAGS 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \requires __DRI2_ROBUSTNESS.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_FLAG_DEBUG 0x00000001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \requires __DRI2_ROBUSTNESS.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \name Context reset strategies.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@{*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_RESET_NO_NOTIFICATION 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_RESET_LOSE_CONTEXT 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@}*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \name Reasons that __DRIdri2Extension::createContextAttribs might fail
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@{*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Success! */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_SUCCESS 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Memory allocation failure */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_NO_MEMORY 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_BAD_API 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested an API version that the driver can't do. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_BAD_VERSION 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested a flag or combination of flags the driver can't do. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_BAD_FLAG 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested an attribute the driver doesn't understand. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested a flag the driver doesn't understand. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@}*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIdri2ExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIscreen *(*createNewScreen)(int screen, int fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIextension **extensions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig ***driver_configs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateNewDrawableFunc createNewDrawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createNewContext)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Since version 2 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIgetAPIMaskFunc getAPIMask;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int api,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const __DRIconfig *config,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcontext *shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int attachment,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*releaseBuffer)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIbuffer *buffer);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create a context for a particular API with a set of attributes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since version 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \sa __DRIswrastExtensionRec::createContextAttribs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateContextAttribsFunc createContextAttribs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * createNewScreen with the driver's extension list passed in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since version 4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateNewScreen2Func createNewScreen2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides functionality to enable various EGLImage
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extensions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE "DRI_IMAGE"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_VERSION 8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * These formats correspond to the similarly named MESA_FORMAT_*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * tokens, except in the native endian of the CPU. For example, on
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * by the driver (YUV planar formats) but serve as a base image for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * creating sub-images for the different planes within the image.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * R8, GR88 and NONE should not be used with createImageFormName or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * createImage, and are returned by query from sub images created with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * createImageFromNames (NONE, see above) and fromPlane (R8 & GR88).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_RGB565 0x1001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_XRGB8888 0x1002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_ARGB8888 0x1003
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_ABGR8888 0x1004
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_XBGR8888 0x1005
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_R8 0x1006 /* Since version 5 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_GR88 0x1007
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_NONE 0x1008
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_XRGB2101010 0x1009
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_ARGB2101010 0x100a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FORMAT_SARGB8 0x100b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_USE_SHARE 0x0001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_USE_SCANOUT 0x0002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_USE_LINEAR 0x0008
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * and GBM_FORMAT_* from gbm.h, used with createImageFromNames.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_RGB565 0x36314752
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_ARGB8888 0x34325241
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_XRGB8888 0x34325258
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_ABGR8888 0x34324241
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_XBGR8888 0x34324258
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUV410 0x39565559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUV411 0x31315559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUV420 0x32315559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUV422 0x36315559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUV444 0x34325559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_NV12 0x3231564e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_NV16 0x3631564e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Queryable on images created by createImageFromNames.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * RGB and RGBA are may be usable directly as images but its still
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * recommended to call fromPlanar with plane == 0.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Y_U_V, Y_UV and Y_XUXV all requires call to fromPlanar to create
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * usable sub-images, sampling from images return raw YUV data and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * color conversion needs to be done in the shader.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_COMPONENTS_RGB 0x3001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_COMPONENTS_RGBA 0x3002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_COMPONENTS_Y_U_V 0x3003
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * queryImage attributes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_STRIDE 0x2000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_HANDLE 0x2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_NAME 0x2002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_FORMAT 0x2003 /* available in versions 3+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_WIDTH 0x2004 /* available in versions 4+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_HEIGHT 0x2005
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_COMPONENTS 0x2006 /* available in versions 5+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ATTRIB_FD 0x2007 /* available in versions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * 7+. Each query will return a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * new fd. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum __DRIYUVColorSpace {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_COLOR_SPACE_UNDEFINED = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_COLOR_SPACE_ITU_REC709 = 0x3280,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_COLOR_SPACE_ITU_REC2020 = 0x3281
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum __DRISampleRange {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_RANGE_UNDEFINED = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_FULL_RANGE = 0x3282,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_NARROW_RANGE = 0x3283
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum __DRIChromaSiting {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_CHROMA_SITING_UNDEFINED = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_CHROMA_SITING_0 = 0x3284,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_YUV_CHROMA_SITING_0_5 = 0x3285
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@{*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Success! */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ERROR_SUCCESS 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Memory allocation failure */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ERROR_BAD_ALLOC 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested an invalid attribute for a texture object */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ERROR_BAD_MATCH 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/** Client requested an invalid texture object */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*@}*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIimageRec __DRIimage;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIimageExtensionRec __DRIimageExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIimageExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromName)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width, int height, int format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int name, int pitch,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int renderbuffer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*destroyImage)(__DRIimage *image);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImage)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width, int height, int format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int use,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The new __DRIimage will share the content with the old one, see dup(2).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Validate that a __DRIimage can be used a certain way.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GLboolean (*validateUsage)(__DRIimage *image, unsigned int use);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Unlike createImageFromName __DRI_IMAGE_FORMAT is not but instead
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * __DRI_IMAGE_FOURCC and strides are in bytes not pixels. Stride is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * also per block and not per pixel (for non-RGB, see gallium blocks).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromNames)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width, int height, int fourcc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *names, int num_names,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *strides, int *offsets,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create an image out of a sub-region of a parent image. This
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * entry point lets us create individual __DRIimages for different
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * planes in a planar buffer (typically yuv), for example. While a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * sub-image shares the underlying buffer object with the parent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * image and other sibling sub-images, the life times of parent and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * sub-images are not dependent. Destroying the parent or a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * sub-image doesn't affect other images. The underlying buffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * object is free when no __DRIimage remains that references it.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Sub-images may overlap, but rendering to overlapping sub-images
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * is undefined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*fromPlanar)(__DRIimage *image, int plane,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create image from texture.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromTexture)(__DRIcontext *context,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int target,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned texture,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int depth,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int level,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned *error,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Like createImageFromNames, but takes a prime fd instead.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromFds)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width, int height, int fourcc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *fds, int num_fds,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *strides, int *offsets,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Like createImageFromFds, but takes additional attributes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * For EGL_EXT_image_dma_buf_import.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \since 8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*createImageFromDmaBufs)(__DRIscreen *screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int width, int height, int fourcc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *fds, int num_fds,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *strides, int *offsets,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRIYUVColorSpace color_space,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRISampleRange sample_range,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRIChromaSiting horiz_siting,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum __DRIChromaSiting vert_siting,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned *error,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension must be implemented by the loader and passed to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * driver at screen creation time. The EGLImage entry points in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * various client APIs take opaque EGLImage handles and use this
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extension to map them to a __DRIimage. At version 1, this
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * extensions allows mapping EGLImage pointers to __DRIimage pointers,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * but future versions could support other EGLImage-like, opaque types
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * with new lookup functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_LOOKUP_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIimageLookupExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension allows for common DRI2 options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_CONFIG_QUERY_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRI2configQueryExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Robust context driver extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Existence of this extension means the driver can accept the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c __DRI_CTX_ATTRIB_RESET_STRATEGY attribute in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \c __DRIdri2ExtensionRec::createContextAttribs.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_ROBUSTNESS "DRI_Robustness"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_ROBUSTNESS_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIrobustnessExtensionRec __DRIrobustnessExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIrobustnessExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DRI config options extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides the XML string containing driver options for use by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the loader in supporting the driconf application.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_CONFIG_OPTIONS_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIconfigOptionsExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *xml;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} __DRIconfigOptionsExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This extension provides a driver vtable to a set of common driver helper
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * functions (driCoreExtension, driDRI2Extension) within the driver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * implementation, as opposed to having to pass them through a global
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * variable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * It is not intended to be public API to the actual loader, and the vtable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * layout may change at any time.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRIVER_VTABLE "DRI_DriverVtable"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_DRIVER_VTABLE_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRIDriverVtableExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const struct __DriverAPIRec *vtable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} __DRIDriverVtableExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Query renderer driver extension
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This allows the window system layer (either EGL or GLX) to query aspects of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * hardware and driver support without creating a context.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_QUERY "DRI_RENDERER_QUERY"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_QUERY_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_VENDOR_ID 0x0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_DEVICE_ID 0x0001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_VERSION 0x0002
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_ACCELERATED 0x0003
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_VIDEO_MEMORY 0x0004
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE 0x0005
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_PREFERRED_PROFILE 0x0006
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION 0x0007
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION 0x0008
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION 0x0009
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION 0x000a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRI2rendererQueryExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*queryInteger)(__DRIscreen *screen, int attribute, unsigned int *val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*queryString)(__DRIscreen *screen, int attribute, const char **val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Image Loader extension. Drivers use this to allocate color buffers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum __DRIimageBufferMask {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_IMAGE_BUFFER_BACK = (1 << 0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRI_IMAGE_BUFFER_FRONT = (1 << 1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIimageList {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- uint32_t image_mask;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *back;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIimage *front;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_LOADER_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIimageLoaderExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Allocate color buffers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param driDrawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param width Width of allocated buffers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param height Height of allocated buffers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param format one of __DRI_IMAGE_FORMAT_*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param stamp Address of variable to be updated when
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * getBuffers must be called again
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param loaderPrivate The loaderPrivate for driDrawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param buffer_mask Set of buffers to allocate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param buffers Returned buffers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int (*getBuffers)(__DRIdrawable *driDrawable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- uint32_t *stamp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *loaderPrivate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- uint32_t buffer_mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct __DRIimageList *buffers);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Flush pending front-buffer rendering
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Any rendering that has been performed to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * fake front will be flushed to the front
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param driDrawable Drawable whose front-buffer is to be flushed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * \param loaderPrivate Loader's private data that was previously passed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * into __DRIdri2ExtensionRec::createNewDrawable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * DRI extension.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_DRIVER "DRI_IMAGE_DRIVER"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DRI_IMAGE_DRIVER_VERSION 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct __DRIimageDriverExtensionRec {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIextension base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Common DRI functions, shared with DRI2 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateNewScreen2Func createNewScreen2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateNewDrawableFunc createNewDrawable;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIcreateContextAttribsFunc createContextAttribs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __DRIgetAPIMaskFunc getAPIMask;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server-devel/files/include/Xplugin.h b/x11/xorg-server-devel/files/include/Xplugin.h
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 543ba2dee1e..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server-devel/files/include/Xplugin.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,592 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Xplugin.h -- windowing API for rootless X11 server
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $Id: Xplugin.h,v 1.4 2003-03-03 23:30:53 jharper Exp $
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Permission is hereby granted, free of charge, to any person
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- obtaining a copy of this software and associated documentation files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (the "Software"), to deal in the Software without restriction,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- including without limitation the rights to use, copy, modify, merge,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- publish, distribute, sublicense, and/or sell copies of the Software,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- and to permit persons to whom the Software is furnished to do so,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- subject to the following conditions:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- The above copyright notice and this permission notice shall be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- included in all copies or substantial portions of the Software.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DEALINGS IN THE SOFTWARE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Except as contained in this notice, the name(s) of the above
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- copyright holders shall not be used in advertising or otherwise to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- promote the sale, use or other dealings in this Software without
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- prior written authorization.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Note that these interfaces are provided solely for the use of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- X11 server. Any other uses are unsupported and strongly discouraged. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef XPLUGIN_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XPLUGIN_H 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XPLUGIN_VERSION 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* By default we use the X server definition of BoxRec to define xp_box,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- so that the compiler can silently convert between the two. But if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_NO_X_HEADERS is defined, we'll define it ourselves. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef XP_NO_X_HEADERS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# include "miscstruct.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef BoxRec xp_box;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct xp_box_struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- short x1, y1, x2, y2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct xp_box_struct xp_box;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int xp_resource_id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef xp_resource_id xp_window_id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef xp_resource_id xp_surface_id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int xp_client_id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef unsigned int xp_request_type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef int xp_error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef int xp_bool;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Error codes that the functions declared here may return. They all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- numerically match their X equivalents, i.e. the XP_ can be dropped
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if <X11/X.h> has been included. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_error_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_Success = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadRequest = 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadValue = 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadWindow = 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadMatch = 8,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadAccess = 10,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BadImplementation = 17,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Event types generated by the plugin. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_event_type_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* The global display configuration changed somehow. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_DISPLAY_CHANGED = 1 << 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* A window changed state. Argument is xp_window_state_event */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_WINDOW_STATE_CHANGED = 1 << 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* An async request encountered an error. Argument is of type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_async_error_event */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_ASYNC_ERROR = 1 << 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Sent when a surface is destroyed as a side effect of destroying
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- a window. Arg is of type xp_surface_id. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_SURFACE_DESTROYED = 1 << 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Sent when any GL contexts pointing at the given surface need to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- call xp_update_gl_context () to refresh their state (because the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- window moved or was resized. Arg is of type xp_surface_id. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_SURFACE_CHANGED = 1 << 4,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Sent when a window has been moved. Arg is of type xp_window_id. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_EVENT_WINDOW_MOVED = 1 << 5,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Function type used to receive events. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef void (xp_event_fun) (unsigned int type, const void *arg,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int arg_size, void *user_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Operation types. Used when reporting errors asynchronously. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_request_type_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_NIL = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_DESTROY_WINDOW = 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_CONFIGURE_WINDOW = 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_FLUSH_WINDOW = 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_COPY_WINDOW = 4,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_UNLOCK_WINDOW = 5,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_DISABLE_UPDATE = 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_REENABLE_UPDATE = 7,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_HIDE_CURSOR = 8,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_SHOW_CURSOR = 9,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_REQUEST_FRAME_DRAW = 10,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Structure used to report an error asynchronously. Passed as the "arg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- of an XP_EVENT_ASYNC_ERROR event. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct xp_async_error_event_struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_request_type request_type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_resource_id id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_error error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct xp_async_error_event_struct xp_async_error_event;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Possible window states. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_window_state_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* The window is not in the global list of possibly-visible windows. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_WINDOW_STATE_OFFSCREEN = 1 << 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Parts of the window may be obscured by other windows. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_WINDOW_STATE_OBSCURED = 1 << 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Structure passed as argument of an XP_EVENT_WINDOW_STATE_CHANGED event. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct xp_window_state_event_struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_window_id id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int state;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct xp_window_state_event_struct xp_window_state_event;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Function type used to supply a colormap for indexed drawables. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef xp_error (xp_colormap_fun) (void *data, int first_color,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int n_colors, uint32_t *colors);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Window attributes structure. Used when creating and configuring windows.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Also used when configuring surfaces attached to windows. Functions that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- take one of these structures also take a bit mask defining which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fields are set to meaningful values. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_window_changes_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_ORIGIN = 1 << 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_SIZE = 1 << 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BOUNDS = XP_ORIGIN | XP_SIZE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_SHAPE = 1 << 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_STACKING = 1 << 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH = 1 << 4,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_COLORMAP = 1 << 5,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_WINDOW_LEVEL = 1 << 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-struct xp_window_changes_struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_ORIGIN */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int x, y;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_SIZE */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int width, height;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int bit_gravity; /* how to resize the backing store */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_SHAPE */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int shape_nrects; /* -1 = remove shape */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_box *shape_rects;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int shape_tx, shape_ty; /* translation for shape */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_STACKING */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int stack_mode;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_window_id sibling; /* may be zero; in ABOVE/BELOW modes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- it may specify a relative window */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_DEPTH, window-only */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int depth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_COLORMAP, window-only */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_colormap_fun *colormap;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *colormap_data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* XP_WINDOW_LEVEL, window-only */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int window_level;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-typedef struct xp_window_changes_struct xp_window_changes;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Values for bit_gravity field */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_bit_gravity_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_GRAVITY_NONE = 0, /* no gravity, fill everything */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_GRAVITY_NORTH_WEST = 1, /* anchor to top-left corner */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_GRAVITY_NORTH_EAST = 2, /* anchor to top-right corner */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_GRAVITY_SOUTH_EAST = 3, /* anchor to bottom-right corner */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_GRAVITY_SOUTH_WEST = 4, /* anchor to bottom-left corner */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Values for stack_mode field */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_window_stack_mode_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_UNMAPPED = 0, /* remove the window */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_MAPPED_ABOVE = 1, /* display the window on top */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_MAPPED_BELOW = 2, /* display the window at bottom */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Data formats for depth field and composite functions */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_depth_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH_NIL = 0, /* null source when compositing */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH_ARGB8888,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH_RGB555,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH_A8, /* for masks when compositing */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_DEPTH_INDEX8,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Options that may be passed to the xp_init () function. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_init_options_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Don't mark that this process can be in the foreground. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_IN_BACKGROUND = 1 << 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Deliver background pointer events to this process. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BACKGROUND_EVENTS = 1 << 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Miscellaneous functions */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Initialize the plugin library. Only the copy/fill/composite functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- may be called without having previously called xp_init () */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_init (unsigned int options);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Sets the current set of requested notifications to MASK. When any of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- these arrive, CALLBACK will be invoked with CALLBACK-DATA. Note that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- calling this function cancels any previously requested notifications
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- that aren't set in MASK. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_select_events (unsigned int mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_event_fun *callback,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *callback_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Waits for all initiated operations to complete. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_synchronize (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Causes any display update initiated through the plugin libary to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- queued until update is reenabled. Note that calls to these functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- nest. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_disable_update (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_reenable_update (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Cursor functions. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Installs the specified cursor. ARGB-DATA should point to 32-bit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- premultiplied big-endian ARGB data. The HOT-X,HOT-Y parameters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- specify the offset to the cursor's hot spot from its top-left
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- corner. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_set_cursor (unsigned int width, unsigned int height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int hot_x, unsigned int hot_y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const uint32_t *argb_data,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int rowbytes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Hide and show the cursor if it's owned by the current process. Calls
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to these functions nest. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_hide_cursor (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_show_cursor (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Window functions. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Create a new window as defined by MASK and VALUES. MASK must contain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_BOUNDS or an error is raised. The id of the newly created window
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is stored in *RET-ID if this function returns XP_Success. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_create_window (unsigned int mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_window_changes *values,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_window_id *ret_id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Destroys the window identified by ID. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_destroy_window (xp_window_id id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Reconfigures the given window according to MASK and VALUES. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_configure_window (xp_window_id id, unsigned int mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_window_changes *values);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Returns true if NATIVE-ID is a window created by the plugin library.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- If so and RET-ID is non-null, stores the id of the window in *RET-ID. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_bool xp_lookup_native_window (unsigned int native_id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_window_id *ret_id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* If ID names a window created by the plugin library, stores it's native
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- window id in *RET-NATIVE-ID. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_get_native_window (xp_window_id id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *ret_native_id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Locks the rectangle IN-RECT (or, if null, the entire window) of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- given window's backing store. Any other non-null parameters are filled
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- in as follows:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DEPTH = format of returned data. Currently either XP_DEPTH_ARGB8888
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- or XP_DEPTH_RGB565 (possibly with 8 bit planar alpha). Data is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- always stored in native byte order.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BITS[0] = pointer to top-left pixel of locked color data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BITS[1] = pointer to top-left of locked alpha data, or null if window
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- has no alpha. If the alpha data is meshed, then BITS[1] = BITS[0].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ROWBYTES[0,1] = size in bytes of each row of color,alpha data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OUT-RECT = rectangle specifying the current position and size of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- locked region relative to the window origin.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Note that an error is raised when trying to lock an already locked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- window. While the window is locked, the only operations that may
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- be performed on it are to modify, access or flush its marked region. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_lock_window (xp_window_id id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *in_rect,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *depth,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *bits[2],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int rowbytes[2],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_box *out_rect);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Mark that the region specified by SHAPE-NRECTS, SHAPE-RECTS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SHAPE-TX, and SHAPE-TY in the specified window has been updated, and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- will need to subsequently be redisplayed. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_mark_window (xp_window_id id, int shape_nrects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *shape_rects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int shape_tx, int shape_ty);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Unlocks the specified window. If FLUSH is true, then any marked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- regions are immediately redisplayed. Note that it's an error to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unlock an already unlocked window. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_unlock_window (xp_window_id id, xp_bool flush);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* If anything is marked in the given window for redisplay, do it now. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_flush_window (xp_window_id id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Moves the contents of the region DX,DY pixels away from that specified
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- by DST_RECTS and DST_NRECTS in the window with SRC-ID to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destination region in the window DST-ID. Note that currently source
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- and destination windows must be the same. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_copy_window (xp_window_id src_id, xp_window_id dst_id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int dst_nrects, const xp_box *dst_rects,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int dx, int dy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Returns true if the given window has any regions marked for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- redisplay. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_bool xp_is_window_marked (xp_window_id id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* If successful returns a superset of the region marked for update in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the given window. Use xp_free_region () to release the returned data. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_get_marked_shape (xp_window_id id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int *ret_nrects, xp_box **ret_rects);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern void xp_free_shape (int nrects, xp_box *rects);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Searches for the first window below ABOVE-ID containing the point X,Y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- and returns it's window id in *RET-ID. If no window is found, *RET-ID
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is set to zero. If ABOVE-ID is zero, finds the topmost window
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- containing the given point. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_find_window (int x, int y, xp_window_id above_id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_window_id *ret_id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Returns the current origin and size of the window ID in *BOUNDS-RET if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- successful. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_get_window_bounds (xp_window_id id, xp_box *bounds_ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Window surface functions. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Create a new VRAM surface on the specified window. If successful,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- returns the identifier of the new surface in *RET-SID. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_create_surface (xp_window_id id, xp_surface_id *ret_sid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Destroys the specified surface. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_destroy_surface (xp_surface_id sid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Reconfigures the specified surface as defined by MASK and VALUES.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Note that specifying XP_DEPTH is an error. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_configure_surface (xp_surface_id sid, unsigned int mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_window_changes *values);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* If successful, places the client identifier of the current process
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- in *RET-CLIENT. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_get_client_id (xp_client_id *ret_client);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Given a valid window,surface combination created by the current
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- process, attempts to allow the specified external client access
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to that surface. If successful, returns two integers in RET-KEY
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- which the client can use to import the surface into their process. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_export_surface (xp_window_id wid, xp_surface_id sid,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_client_id client,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int ret_key[2]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Given a two integer key returned from xp_export_surface (), tries
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to import the surface into the current process. If successful the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- local surface identifier is stored in *SID-RET. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_import_surface (const unsigned int key[2],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_surface_id *sid_ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* If successful, stores the number of surfaces attached to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- specified window in *RET. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_get_window_surface_count (xp_window_id id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int *ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Attaches the CGLContextObj CGL-CTX to the specified surface. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_attach_gl_context (void *cgl_ctx, xp_surface_id sid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Updates the CGLContextObj CGL-CTX to reflect any recent changes to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the surface it's attached to. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_update_gl_context (void *cgl_ctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Window frame functions. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Possible arguments to xp_frame_get_rect (). */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_frame_rect_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_RECT_TITLEBAR = 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_RECT_TRACKING = 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_RECT_GROWBOX = 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Classes of window frame. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_frame_class_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_DOCUMENT = 1 << 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_DIALOG = 1 << 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_MODAL_DIALOG = 1 << 2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_SYSTEM_MODAL_DIALOG = 1 << 3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_UTILITY = 1 << 4,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_TOOLBAR = 1 << 5,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_MENU = 1 << 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_SPLASH = 1 << 7,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLASS_BORDERLESS = 1 << 8,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Attributes of window frames. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_frame_attr_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_ACTIVE = 0x0001,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_URGENT = 0x0002,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_TITLE = 0x0004,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_PRELIGHT = 0x0008,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_SHADED = 0x0010,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLOSE_BOX = 0x0100,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_COLLAPSE = 0x0200,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_ZOOM = 0x0400,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_ANY_BUTTON = 0x0700,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_CLOSE_BOX_CLICKED = 0x0800,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_COLLAPSE_BOX_CLICKED = 0x1000,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_ZOOM_BOX_CLICKED = 0x2000,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_ANY_CLICKED = 0x3800,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_FRAME_GROW_BOX = 0x4000,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_FRAME_ATTR_IS_SET(a,b) (((a) & (b)) == (b))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_FRAME_ATTR_IS_CLICKED(a,m) ((a) & ((m) << 3))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_FRAME_ATTR_SET_CLICKED(a,m) ((a) |= ((m) << 3))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_FRAME_ATTR_UNSET_CLICKED(a,m) ((a) &= ~((m) << 3))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_FRAME_POINTER_ATTRS (XP_FRAME_PRELIGHT \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- | XP_FRAME_ANY_BUTTON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- | XP_FRAME_ANY_CLICKED)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_frame_get_rect (int type, int class, const xp_box *outer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *inner, xp_box *ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_frame_hit_test (int class, int x, int y,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *outer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *inner, int *ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_frame_draw (xp_window_id wid, int class, unsigned int attr,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const xp_box *outer, const xp_box *inner,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int title_len,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const unsigned char *title_bytes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Memory manipulation functions. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-enum xp_composite_op_enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_COMPOSITE_SRC = 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XP_COMPOSITE_OVER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_COMPOSITE_FUNCTION(op, src_depth, mask_depth, dest_depth) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (((op) << 24) | ((src_depth) << 16) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- | ((mask_depth) << 8) | ((dest_depth) << 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_COMPOSITE_FUNCTION_OP(f) (((f) >> 24) & 255)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_COMPOSITE_FUNCTION_SRC_DEPTH(f) (((f) >> 16) & 255)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_COMPOSITE_FUNCTION_MASK_DEPTH(f) (((f) >> 8) & 255)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define XP_COMPOSITE_FUNCTION_DEST_DEPTH(f) (((f) >> 0) & 255)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Composite WIDTH by HEIGHT pixels from source and mask to destination
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- using a specified function (if source and destination overlap,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- undefined behavior results).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- For SRC and DEST, the first element of the array is the color data. If
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the second element is non-null it implies that there is alpha data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (which may be meshed or planar). Data without alpha is assumed to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- opaque.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Passing a null SRC-ROWBYTES pointer implies that the data SRC points
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to is a single element.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Operations that are not supported will return XP_BadImplementation. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern xp_error xp_composite_pixels (unsigned int width, unsigned int height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int function,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *src[2], unsigned int src_rowbytes[2],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *mask, unsigned int mask_rowbytes,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *dest[2], unsigned int dest_rowbytes[2]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Fill HEIGHT rows of data starting at DST. Each row will have WIDTH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bytes filled with the 32-bit pattern VALUE. Each row is DST-ROWBYTES
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- wide in total. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern void xp_fill_bytes (unsigned int width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int height, uint32_t value,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *dst, unsigned int dst_rowbytes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Copy HEIGHT rows of bytes from SRC to DST. Each row will have WIDTH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bytes copied. SRC and DST may overlap, and the right thing will happen. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern void xp_copy_bytes (unsigned int width, unsigned int height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const void *src, unsigned int src_rowbytes,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void *dst, unsigned int dst_rowbytes);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Suggestions for the minimum number of bytes or pixels for which it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- makes sense to use some of the xp_ functions */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern unsigned int xp_fill_bytes_threshold, xp_copy_bytes_threshold,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xp_composite_area_threshold, xp_scroll_area_threshold;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Set the state for disabled hotkeys */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-xp_error xp_disable_hot_keys(xp_bool state);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif /* XPLUGIN_H */
</span></pre><pre style='margin:0'>
</pre>