Hello community, here is the log from the commit of package randrproto for openSUSE:Factory checked in at 2015-05-20 23:24:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/randrproto (Old) and /work/SRC/openSUSE:Factory/.randrproto.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "randrproto" Changes: -------- --- /work/SRC/openSUSE:Factory/randrproto/randrproto.changes 2015-03-19 20:38:28.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.randrproto.new/randrproto.changes 2015-05-20 23:24:18.000000000 +0200 @@ -1,0 +2,6 @@ +Sun May 17 21:16:28 UTC 2015 - [email protected] + +- Update to version 1.5.0: + XRandR 1.5 adds monitor objects and tiling support. + +------------------------------------------------------------------- Old: ---- randrproto-1.4.1.tar.bz2 New: ---- randrproto-1.5.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ randrproto.spec ++++++ --- /var/tmp/diff_new_pack.13itjm/_old 2015-05-20 23:24:18.000000000 +0200 +++ /var/tmp/diff_new_pack.13itjm/_new 2015-05-20 23:24:18.000000000 +0200 @@ -17,7 +17,7 @@ Name: randrproto -Version: 1.4.1 +Version: 1.5.0 Release: 0 Url: http://xorg.freedesktop.org/ Summary: The X11 Protocol: X Resize and Rotate extension ++++++ randrproto-1.4.1.tar.bz2 -> randrproto-1.5.0.tar.bz2 ++++++ ++++ 7912 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/ChangeLog new/randrproto-1.5.0/ChangeLog --- old/randrproto-1.4.1/ChangeLog 2015-03-14 17:35:44.000000000 +0100 +++ new/randrproto-1.5.0/ChangeLog 2015-05-17 06:32:08.000000000 +0200 @@ -1,3 +1,54 @@ +commit 79b63f0e57cd5baf06ff24252d3f1675dcb64467 +Author: Dave Airlie <[email protected]> +Date: Sun May 17 14:29:29 2015 +1000 + + randrproto 1.5.0 + +commit 895ee5264524c7c239ee4ef5e39c4e295323fb51 +Author: Dave Airlie <[email protected]> +Date: Wed Apr 22 10:58:18 2015 +1000 + + randrproto: clarify output XID lifetimes. + + This just makes a note that randr won't make outputs disappear + dynamically. + + Reviewed-by: Aaron Plattner <[email protected]> + Signed-off-by: Dave Airlie <[email protected]> + +commit 98da0d6e48b7d124d6788ea568e9f9e3dc204322 +Author: Dave Airlie <[email protected]> +Date: Mon Feb 2 16:17:56 2015 +1000 + + randrproto: add tile property info for randr 1.5 + + expose this as an array of 8 32-bit values. + + Reviewed-by: Keith Packard <[email protected]> + Signed-off-by: Dave Airlie <[email protected]> + +commit 4109f29861a7066970a2afd079d0fc2c12828bcb +Author: Keith Packard <[email protected]> +Date: Fri Dec 12 15:57:57 2014 -0800 + + Add Monitors, update version to 1.5 (v2) + + v2: [airlied] add get_active to monitor get + interface, to allow normal vs configuration + clients to see active vs all monitors. (r-b by keithp) + + Reviewed-by: Dave Airlie <[email protected]> + Signed-off-by: Keith Packard <[email protected]> + +commit d501a4f08ee3c5435841aa70c0d5cd4b7398bd12 +Author: Keith Packard <[email protected]> +Date: Fri Dec 12 15:57:40 2014 -0800 + + Fix spelling errors in randrproto.txt + + Reviewed-by: Dave Airlie <[email protected]> + Signed-off-by: Keith Packard <[email protected]> + commit b1ba68df8a5fc113a387123ec2f312195e28e47f Author: Alan Coopersmith <[email protected]> Date: Sat Mar 14 09:35:04 2015 -0700 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/compile new/randrproto-1.5.0/compile --- old/randrproto-1.4.1/compile 2015-03-14 17:35:34.000000000 +0100 +++ new/randrproto-1.5.0/compile 1970-01-01 01:00:00.000000000 +0100 @@ -1,347 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2012-10-14.11; # UTC - -# Copyright (C) 1999-2014 Free Software Foundation, Inc. -# Written by Tom Tromey <[email protected]>. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to <[email protected]> or send patches to -# <[email protected]>. - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to <[email protected]>. -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/configure.ac new/randrproto-1.5.0/configure.ac --- old/randrproto-1.4.1/configure.ac 2015-03-14 17:35:29.000000000 +0100 +++ new/randrproto-1.5.0/configure.ac 2015-05-17 06:24:33.000000000 +0200 @@ -22,7 +22,7 @@ dnl Process this file with autoconf to create configure. AC_PREREQ([2.60]) -AC_INIT([RandrProto], [1.4.1], +AC_INIT([RandrProto], [1.5.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/missing new/randrproto-1.5.0/missing --- old/randrproto-1.4.1/missing 2015-03-14 17:35:34.000000000 +0100 +++ new/randrproto-1.5.0/missing 2015-05-17 06:25:36.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2012-06-26.16; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify @@ -160,7 +160,7 @@ ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." + echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/randr.h new/randrproto-1.5.0/randr.h --- old/randrproto-1.4.1/randr.h 2015-03-14 17:35:29.000000000 +0100 +++ new/randrproto-1.5.0/randr.h 2015-05-17 06:24:33.000000000 +0200 @@ -40,11 +40,11 @@ #define RANDR_NAME "RANDR" #define RANDR_MAJOR 1 -#define RANDR_MINOR 4 +#define RANDR_MINOR 5 #define RRNumberErrors 4 #define RRNumberEvents 2 -#define RRNumberRequests 42 +#define RRNumberRequests 45 #define X_RRQueryVersion 0 /* we skip 1 to make old clients fail pretty immediately */ @@ -104,6 +104,11 @@ #define X_RRDeleteProviderProperty 40 #define X_RRGetProviderProperty 41 +/* v1.5 */ +#define X_RRGetMonitors 42 +#define X_RRSetMonitor 43 +#define X_RRDeleteMonitor 44 + /* Event selection bits */ #define RRScreenChangeNotifyMask (1L << 0) /* V1.2 additions */ @@ -181,6 +186,7 @@ #define RR_PROPERTY_BORDER "Border" #define RR_PROPERTY_BORDER_DIMENSIONS "BorderDimensions" #define RR_PROPERTY_GUID "GUID" +#define RR_PROPERTY_RANDR_TILE "TILE" /* roles this device can carry out */ #define RR_Capability_None 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/randrproto.h new/randrproto-1.5.0/randrproto.h --- old/randrproto-1.4.1/randrproto.h 2015-03-14 17:35:29.000000000 +0100 +++ new/randrproto-1.5.0/randrproto.h 2015-05-17 06:24:33.000000000 +0200 @@ -50,6 +50,7 @@ #define RRCrtc CARD32 #define RRProvider CARD32 #define RRModeFlags CARD32 +#define Atom CARD32 #define Rotation CARD16 #define SizeID CARD16 @@ -1012,6 +1013,63 @@ } xRRSetPanningReply; #define sz_xRRSetPanningReply 32 +typedef struct { + Atom name B32; + BOOL primary; + BOOL automatic; + CARD16 noutput B16; + INT16 x B16; + INT16 y B16; + CARD16 width B16; + CARD16 height B16; + CARD32 widthInMillimeters B32; + CARD32 heightInMillimeters B32; +} xRRMonitorInfo; +#define sz_xRRMonitorInfo 24 + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Window window B32; + BOOL get_active; + CARD8 pad; + CARD16 pad2; +} xRRGetMonitorsReq; +#define sz_xRRGetMonitorsReq 12 + +typedef struct { + BYTE type; + CARD8 status; + CARD16 sequenceNumber B16; + CARD32 length B32; + Time timestamp B32; + CARD32 nmonitors B32; + CARD32 noutputs B32; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; +} xRRGetMonitorsReply; +#define sz_xRRGetMonitorsReply 32 + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Window window B32; + xRRMonitorInfo monitor; +} xRRSetMonitorReq; +#define sz_xRRSetMonitorReq 32 + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Window window B32; + Atom name B32; +} xRRDeleteMonitorReq; +#define sz_xRRDeleteMonitorReq 12 + #undef RRModeFlags #undef RRCrtc #undef RRMode @@ -1033,5 +1091,6 @@ #undef Rotation #undef SizeID #undef SubpixelOrder +#undef Atom #endif /* _XRANDRP_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/randrproto-1.4.1/randrproto.txt new/randrproto-1.5.0/randrproto.txt --- old/randrproto-1.4.1/randrproto.txt 2015-03-14 17:35:29.000000000 +0100 +++ new/randrproto-1.5.0/randrproto.txt 2015-05-17 06:24:33.000000000 +0200 @@ -1,5 +1,5 @@ The X Resize, Rotate and Reflect Extension - Version 1.4.1 + Version 1.5.0 2015-03-14 Jim Gettys @@ -149,7 +149,52 @@ 4) multiple GPU rendering - This replaces Xinerama. -1.99 Acknowledgements +1.5. Introduction to version 1.5 of the extension + +Version 1.5 adds an optional TILE property to outputs. + + • An optional TILE property. + This property is used to denote individual tiles in a tiled monitor + configuration, as exposed via DisplayID v1.3. + +Version 1.5 adds monitors + + • A 'Monitor' is a rectangular subset of the screen which represents + a coherent collection of pixels presented to the user. + + • Each Monitor is be associated with a list of outputs (which may be + empty). + + • When clients define monitors, the associated outputs are removed from + existing Monitors. If removing the output causes the list for that + monitor to become empty, that monitor will be deleted. + + • For active CRTCs that have no output associated with any + client-defined Monitor, one server-defined monitor will + automatically be defined of the first Output associated with them. + + • When defining a monitor, setting the geometry to all zeros will + cause that monitor to dynamically track the bounding box of the + active outputs associated with them + +This new object separates the physical configuration of the hardware +from the logical subsets the screen that applications should +consider as single viewable areas. + +1.5.1. Relationship between Monitors and Xinerama + +Xinerama's information now comes from the Monitors instead of directly +from the CRTCs. The Monitor marked as Primary will be listed first. + +1.5.2. Clarification of Output lifetimes + +With dynamic connectors being a possibility with the introduction of +DisplayPort multistream (MST), a lot of RandR clients can't handle the +XID BadMatch when a RandR output disappears. This is to clarify that +going forward the X server will not remove outputs dynamically, +just mark them as disconnected. + +1.99 Acknowledgments Our thanks to the contributors to the design found on the xpert mailing list, in particular: @@ -162,7 +207,9 @@ Thomas Winischhofer for the hardware-accelerated SiS rotation implementation Matthew Tippett and Kevin Martin for splitting outputs and CRTCs to more fully expose what video hardware can do -Dave Airlie for the 1.4.0 protocol changes. +Dave Airlie for the 1.4.0 protocol changes and for working through the +implications of MST monitors and encouraging the introduction of the +'Monitor' concept. ❧❧❧❧❧❧❧❧❧❧❧ @@ -262,7 +309,7 @@ configuration is unsupported by the hardware. The goal is to make these limitations expressed by the protocol, but when that isn't possible it is correct to return this error value. If, as a - implementor, you find this error code required, please submit the + implementer, you find this error code required, please submit the hardware constraints that exist so that a future version of the extension can correctly capture the configuration constraints in your system. @@ -365,6 +412,21 @@ ❧❧❧❧❧❧❧❧❧❧❧ +5.6. Protocol Types added in version 1.5 of the extension + +MONITORINFO { name: ATOM + primary: BOOL + automatic: BOOL + x: INT16 + y: INT16 + width: CARD16 + height: CARD16 + width-in-millimeters: CARD32 + height-in-millimeters: CARD32 + outputs: LISTofOUTPUT } + + ❧❧❧❧❧❧❧❧❧❧❧ + 6. Extension Initialization The name of this extension is "RANDR". @@ -1539,6 +1601,79 @@ ❧❧❧❧❧❧❧❧❧❧❧ + +7.5. Extension Requests added in version 1.5 of the extension. + +┌─── + RRGetMonitors + window : WINDOW + get_active : BOOL + ▶ + timestamp: TIMESTAMP + monitors: LISTofMONITORINFO +└─── + Errors: Window + + Returns the list of Monitors for the screen containing + 'window'. If 'get_active' is set it returns only active + monitors (non-0x0 monitors). 'get_active' should always + be set by toolkits, and not by configuration clients. + + 'timestamp' indicates the server time when the list of + monitors last changed. + +┌─── + RRSetMonitor + window : WINDOW + info: MONITORINFO +└─── + Errors: Window, Output, Atom, Value + + Create a new monitor. Any existing Monitor of the same name is deleted. + + 'name' must be a valid atom or an Atom error results. + + 'name' must not match the name of any Output on the screen, or + a Value error results. + + If 'info.outputs' is non-empty, and if x, y, width, height are all + zero, then the Monitor geometry will be dynamically defined to + be the bounding box of the geometry of the active CRTCs + associated with them. + + If 'name' matches an existing Monitor on the screen, the + existing one will be deleted as if RRDeleteMonitor were called. + + For each output in 'info.outputs, each one is removed from all + pre-existing Monitors. If removing the output causes the list of + outputs for that Monitor to become empty, then that Monitor will + be deleted as if RRDeleteMonitor were called. + + Only one monitor per screen may be primary. If 'info.primary' + is true, then the primary value will be set to false on all + other monitors on the screen. + + RRSetMonitor generates a ConfigureNotify event on the root + window of the screen. + +┌─── + RRDeleteMonitor + window : WINDOW + name: ATOM +└─── + Errors: Window, Atom, Value + + Deletes the named Monitor. + + 'name' must be a valid atom or an Atom error results. + + 'name' must match the name of a Monitor on the screen, or a + Value error results. + + RRDeleteMonitor generates a ConfigureNotify event on the root + window of the screen. + + ❧❧❧❧❧❧❧❧❧❧❧ 8. Extension Events Clients MAY select for ConfigureNotify on the root window to be @@ -1968,6 +2103,26 @@ unique identifiers. When such an identifier is available, this property contains its raw bytes. + "TILE" aka RR_PROPERTY_RANDR_TILE + Type: INTEGER + Format: 32 + Num items: 8 + Flags: Immutable + Range/List: - + + Tile monitors have an array of values describing the tiling, + based on DisplayID v1.3 + + The 8 elements are: + 0: group id - The tile group identifier + 1: flags - flags for tile group + 0x1 = single monitor enclosure + 2: number of horizontal tiles in tile group + 3: number of vertical tiles in tile group + 4: horizontal tile location for this tile + 5: vertical tile location for this tile + 6: horizontal tile size for this tile + 7: vertical tile size for this tile 9.2 Properties introduced with version 1.2 of the RandR extension @@ -2008,6 +2163,11 @@ ──────── ───────── ─────────────── GUID yes not mandatory +9.7 Properties introduced with version 1.5 of the RandR extension + +Property Immutable Mandatory since +──────── ───────── ─────────────── +TILE yes not mandatory ❧❧❧❧❧❧❧❧❧❧❧ 10. Extension Versioning @@ -2044,6 +2204,8 @@ 1.4: Added provider objects for handling multi-GPU systems. + 1.5: Added Monitors + Compatibility between 0.0 and 1.0 was *NOT* preserved, and 0.0 clients will fail against 1.0 servers. The wire encoding op-codes were changed for GetScreenInfo to ensure this failure in a relatively @@ -2194,6 +2356,23 @@ 0x00000008 SinkOffload └─── +A.1.1 Common Types added in version 1.5 of the protocol + +┌─── + MONITORINFO (16 + 4*n) + 4 ATOM name + 1 BOOL primary + 1 BOOL automatic + 2 CARD16 ncrtcs + 2 INT16 x + 2 INT16 y + 2 CARD16 width in pixels + 2 CARD16 height in pixels + 4 CARD32 width in millimeters + 4 CARD32 height in millimeters + 4*n CRTC crtcs +└─── + A.2 Protocol Requests Opcodes 1 and 3 were used in the 0.0 protocols, and will return @@ -2932,6 +3111,42 @@ p unused, p=pad(n) └─── +A.2.4 Protocol Requests added with version 1.5 + +┌─── + RRGetMonitors + 1 CARD8 major opcode + 1 42 RandR opcode + 2 2 request length + 4 WINDOW window + ▶ + 1 1 Reply + 1 unused + 2 CARD16 sequence number + 4 6*n + o reply length + 4 TIMESTAMP timestamp + 4 n nmonitors + 4 o noutputs + 12 unused + n*24+o*4 LISTofMONITORINFO monitors +└─── +┌─── + RRSetMonitor + 1 CARD8 major opcode + 1 43 RandR opcode + 2 6 + o request length + 4 WINDOW window + 24+o MONITORINFO monitorinfo +└─── +┌─── + RRDeleteMonitor + 1 CARD8 major opcode + 1 44 RandR opcode + 2 3 request length + 4 WINDOW window + 4 ATOM name +└─── + A.3 Protocol Events ┌───
