<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/c6c0e0cc24ef26e0459d9343f4b06a3cc743eafd">https://github.com/macports/macports-ports/commit/c6c0e0cc24ef26e0459d9343f4b06a3cc743eafd</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new c6c0e0cc24e xorg-server: Bump to the current server-1.20-apple branch in XQuartz github
</span>c6c0e0cc24e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit c6c0e0cc24ef26e0459d9343f4b06a3cc743eafd
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Tue Mar 16 12:08:19 2021 -0700

<span style='display:block; white-space:pre;color:#404040;'>    xorg-server: Bump to the current server-1.20-apple branch in XQuartz github
</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/Portfile                           |   74 +-
 ...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/files/include/Xplugin.h            |  592 --------
 15 files changed, 21 insertions(+), 3795 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server/Portfile b/x11/xorg-server/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 43fe880c81a..2e047fbe9bb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/xorg-server/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/x11/xorg-server/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,11 +2,14 @@
</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 6db82302c5c1147e213a53fa07bbdad3587bb2b7
</span> 
 name            xorg-server
 conflicts       xorg-server-legacy xorg-server-devel xorg-server-1.18
 version         1.20.10
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision        1
</span> categories      x11 devel
 license         X11
 maintainers     {jeremyhu @jeremyhu} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,16 +18,10 @@ 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;'>-master_sites    https://xorg.freedesktop.org/archive/individual/xserver/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#master_sites    xorg:individual/xserver/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distname        xorg-server-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  4eb95e9060013e84667ab20993beb67444af8cd5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  a843432871248cce18a26cdf868a10fc34f2cbec01a2cdfb574e06269eaf0d04 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    5835553
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums       rmd160  1b10aaa1cf48e9d7377f091826d5b5f97bec7eca \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                sha256  977420c082450dc808de301ef56af4856d653eea71519a973c3490a780cb7c99 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                size    6307058
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_bzip2       yes
</span> use_parallel_build yes
 
 # Yes, mesa is a *BUILD* dependency
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,57 +63,27 @@ 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:#e0ffe0;'>+# Debugging ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.cppflags-append  -g -fsanitize=address -fno-omit-frame-pointer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.cflags-append    -g -fsanitize=address -fno-omit-frame-pointer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.cppflags-replace -Os -O1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.cflags-replace   -Os -O1
</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
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin 8 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append --disable-dependency-tracking
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> use_autoreconf yes
 autoreconf.args -fvi
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -131,10 +98,13 @@ 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;'>+    if {${os.major} < 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "$name requires macOS 10.9 or later.  Please use the xorg-server-legacy port instead."
</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;background:#e0e0e0;'>@@ -156,7 +126,7 @@ variant docs description "Install extra documentation" {
</span>                 --without-doxygen \
                 --without-fop \
                 --without-xmlto \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                --disable-devel-docs 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                --disable-devel-docs
</span> 
         configure.args-append \
                 --with-doxygen \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -170,6 +140,4 @@ variant docs description "Install extra documentation" {
</span>                 XMLTO=${prefix}/bin/xmlto
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type  regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url   https://xorg.freedesktop.org/archive/individual/xserver/?C=M&O=D
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex ${name}-(\\d+\\.\\d+\\.\\d+)\\.tar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type none
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/xorg-server/files/0001-os-connection-Improve-abstraction-for-launchd-secure.patch b/x11/xorg-server/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/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/files/0001-xquartz-Add-stub-ddxInputThread.patch b/x11/xorg-server/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/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/files/0002-randr-Initialize-RandR-even-if-there-are-currently-n.patch b/x11/xorg-server/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/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/files/0003-glx-Initialize-glx-even-if-there-are-currently-no-sc.patch b/x11/xorg-server/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/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/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch b/x11/xorg-server/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/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/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch b/x11/xorg-server/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/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, &reg);
</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, &reg, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        miPaintWindow(pWin, &reg, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     RegionUninit(&reg);
</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, &reg);
</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, &reg, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        miPaintWindow(pWin, &reg, PW_BACKGROUND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     RegionUninit(&reg);
</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/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch b/x11/xorg-server/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/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/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch b/x11/xorg-server/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/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/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch b/x11/xorg-server/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/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/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch b/x11/xorg-server/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/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/files/5008-fix-calloc-free-mis-match-bug.patch b/x11/xorg-server/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/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/files/Darwin19-Remove-AppFlags-Active-Hack.patch b/x11/xorg-server/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/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/files/dri/GL/internal/dri_interface.h b/x11/xorg-server/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/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/files/include/Xplugin.h b/x11/xorg-server/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/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>