configure.ac     |    2 
 debian/changelog |    2 
 randr.h          |    4 +
 randrproto.h     |   58 ++++++++++++++++----------
 randrproto.txt   |  121 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 5 files changed, 156 insertions(+), 31 deletions(-)

New commits:
commit 32021a941ef20bbc5b192661bef8ae9e91cf0726
Author: Timo Aaltonen <[email protected]>
Date:   Fri Dec 12 22:02:11 2008 +0200

    Update the changelog

diff --git a/debian/changelog b/debian/changelog
index f218197..4e9c6f9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-x11proto-randr (1.2.99.2-1) UNRELEASED; urgency=low
+x11proto-randr (1.2.99.3-1) UNRELEASED; urgency=low
 
   * New upstream prerelease.
   * Build-depend on automake, run autoreconf on build.

commit 3fdbdc2b0a971db7497c6e03e215fd19ec400ce9
Author: Matthias Hopf <[email protected]>
Date:   Fri Dec 12 12:41:21 2008 +0100

    Bump to 1.2.99.3

diff --git a/configure.ac b/configure.ac
index e7398d7..5c0cc88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
-AC_INIT([RandrProto], [1.2.99.2], 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([RandrProto], [1.2.99.3], 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 
 XORG_RELEASE_VERSION

commit 0c1527d2e89a807e54c549e44798e2cf63fafca2
Author: Matthias Hopf <[email protected]>
Date:   Thu Dec 11 17:15:15 2008 +0100

    Panning tracking areas describe full screen if set to 0.

diff --git a/randrproto.txt b/randrproto.txt
index 9b23120..e55140d 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1156,7 +1156,8 @@ dynamic changes in the display environment.
        total screen size. If set to the total screen size, the CRTC will pan
        in the remaining axis even if the pointer is outside the panning area
        on a different CRTC, as shown in the figure above. If the pointer is
-       outside the tracking area, the CRTC will not pan.
+       outside the tracking area, the CRTC will not pan. Zero can be used as
+       an alias for the total screen size.
 
        ┌──┳━━━━━━━━━━━━━━┳────────────┐
        │  ┃     CRTC     ┃            │

commit d904495a4cbd66850dc03d32f223aaaf8425f077
Author: Adam Jackson <[email protected]>
Date:   Wed Dec 10 11:15:48 2008 -0500

    Add [GS]etOutputPrimary

diff --git a/randr.h b/randr.h
index 92f2fb6..eafcda5 100644
--- a/randr.h
+++ b/randr.h
@@ -44,7 +44,7 @@ typedef unsigned long XRandrModeFlags;
 
 #define RRNumberErrors         3
 #define RRNumberEvents         2
-#define RRNumberRequests       30
+#define RRNumberRequests       32
 
 #define X_RRQueryVersion       0
 /* we skip 1 to make old clients fail pretty immediately */
@@ -84,6 +84,8 @@ typedef unsigned long XRandrModeFlags;
 #define X_RRGetCrtcTransform       27
 #define X_RRGetPanning             28
 #define X_RRSetPanning             29
+#define X_RRSetOutputPrimary       30
+#define X_RRGetOutputPrimary       31
 
 #define RRTransformUnit                    (1L << 0)
 #define RRTransformScaleUp         (1L << 1)
diff --git a/randrproto.h b/randrproto.h
index b434b3a..3b98a9f 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -614,6 +614,37 @@ typedef struct {
 
 #define sz_xRRGetCrtcTransformReply    96
 
+typedef struct {
+    CARD8      reqType;
+    CARD8      randrReqType;
+    CARD16     length B16;
+    Window     window B32;
+    RROutput   output B32;
+} xRRSetOutputPrimaryReq;
+#define sz_xRRSetOutputPrimaryReq      12
+
+typedef struct {
+    CARD8      reqType;
+    CARD8      randrReqType;
+    CARD16     length B16;
+    Window     window B32;
+} xRRGetOutputPrimaryReq;
+#define sz_xRRGetOutputPrimaryReq      8
+
+typedef struct {
+    BYTE       type;
+    CARD8      pad;
+    CARD16     sequenceNumber B16;
+    CARD32     length B32;
+    RROutput   output B32;
+    CARD32     pad1 B32;
+    CARD32     pad2 B32;
+    CARD32     pad3 B32;
+    CARD32     pad4 B32;
+    CARD32     pad5 B32;
+} xRRGetOutputPrimaryReply;
+#define sz_xRRGetOutputPrimaryReply    32
+
 /*
  * event
  */
diff --git a/randrproto.txt b/randrproto.txt
index 65b122d..9b23120 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1193,6 +1193,51 @@ dynamic changes in the display environment.
        'new-time-stamp' contains the time at which this request was
        executed.
 
+┌───
+    RRSetOutputPrimary
+       window: WINDOW
+       output: OUTPUT
+└───
+       Errors: Match, Output, Window
+
+       RRSetOutputPrimary marks 'output' as the primary output for the
+       screen with the same root window as 'window'. This output's CRTC
+       will be sorted to the front of the list in Xinerama and RANDR
+       geometry requests for the benefit of older applications. The
+       default primary output is None, and None is a legal value to pass
+       to RRSetOutputPrimary. This request is expected to be used by
+       desktop environments to mark the screen that should hold the primary
+       menu bar or panel.
+
+       If the named output is not connected to any CRTC, or if the Window
+       and Output are not attached to the same screen, BadMatch is generated.
+       In the latter case, errorValue will be the Window, not the Output.
+
+       As this changes the logical layout of the screen, ConfigureNotify
+       and RRScreenChangeNotify will be generated on the appropriate root
+       window when the primary output is changed by this call. This request
+       also generates RROutputChangeNotify events on the outputs that gained
+       and lost primary status.
+
+       If an output is disconnected asynchronously (eg. due to recabling),
+       the primary status does not change, but RROutputChangeNotify events
+       will be generated if the hardware is capable of detecting this;
+       clients are expected to reconfigure if appropriate.
+
+       If an output is deleted (eg. due to device hotplug), the server will
+       act as though None was passed to RRSetOutputPrimary, including
+       generating the appropriate events.
+
+┌───
+    RRGetOutputPrimary
+       window: WINDOW
+      ▶
+       output: OUTPUT
+└───
+       Errors: Window
+
+       RRGetOutputPrimary returns the primary output for the system.
+
                               ❧❧❧❧❧❧❧❧❧❧❧
 
 8. Extension Events
@@ -1360,7 +1405,7 @@ list of what each version provided:
             modes
 
        1.3: Added cheap version of RRGetScreenResources.  Added CRTC
-            transformations.  Added panning.
+            transformations.  Added panning.  Added primary outputs.
 
 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
@@ -1369,8 +1414,9 @@ graceful way. Version 1.1 servers and clients are cross 
compatible with
 1.0. Version 1.1 is considered to be stable and we intend upward
 compatibility from this point. Version 1.2 offers an extended model of the
 system with multiple output support. Version 1.3 adds a cheap version of
-GetScreenResources to avoid expensive DDC operations, and CRTC
-transformations. 1.2 and 1.3 are backward-compatible with 1.1.
+GetScreenResources to avoid expensive DDC operations, CRTC transformations,
+panning, and the primary output concept. 1.2 and 1.3 are backward-compatible
+with 1.1.
 
                               ❧❧❧❧❧❧❧❧❧❧❧
 
@@ -2038,6 +2084,33 @@ A.2.2 Protocol Requests added with version 1.3
        20                              unused
 └───
 
+┌───
+    RRSetOutputPrimary
+       1       CARD8                   major opcode
+       1       30                      RandR opcode
+       2       3                       length
+       4       WINDOW                  window
+       4       OUTPUT                  output
+└───
+    
+┌───
+    RRGetOutputPrimary
+       1       CARD8                   major opcode
+       1       31                      RandR opcode
+       2       2                       length
+       4       WINDOW                  window
+      ▶
+       1       1                       Reply
+       1                               unused
+       2       CARD16                  sequence number
+       4       CARD32                  length
+       4       OUTPUT                  output
+       4       CARD32                  pad1
+       4       CARD32                  pad2
+       4       CARD32                  pad3
+       4       CARD32                  pad4
+└───
+
 A.3 Protocol Events
 
 ┌───

commit e71912062f3985dd2f4d7b37e415b4a614b51d9b
Author: Matthias Hopf <[email protected]>
Date:   Mon Dec 8 14:40:07 2008 +0100

    Add unicode art pictures for panning.

diff --git a/randrproto.txt b/randrproto.txt
index 5244379..65b122d 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -120,7 +120,10 @@ following features are added in this version:
      support made it trivial to add full projective transformations. These
      can be used to scale the screen up/down as well as perform projector
      keystone correct or other effects.
-     
+
+   • Panning. It was removed with RandR 1.2 because the old semantics didn't
+     fit any longer. With RandR 1.3 panning can be specified per crtc.
+
 1.1 Acknowledgements
 
 Our thanks to the contributors to the design found on the xpert mailing
@@ -1116,6 +1119,16 @@ dynamic changes in the display environment.
        successfully set, the request is ignored and InvalidTime returned in
        status.
 
+       ┌──┳━━━━━━━━━━━━━━┳─────┬ ─ ─ ─ ─ ─ ┐
+       │  ┃     CRTC     ┃     │
+       │  ┃              ┃     │           │
+       │  ┃             X┃→    │
+       │  ┃              ┃     │           │  framebuffer
+       │  ┗━━━━━━━━━━━━━━┛     │
+       │                       │           │
+       │panning area           │
+       └───────────────────────┴ ─ ─ ─ ─ ─ ┘
+
        'left', 'top', 'width', and 'height' contain the total panning area
        for this CRTC.  'width' has to be larger than or equal to the CRTC's
        width or 0, and 'left'+'width' must be within the screen size, else a
@@ -1126,13 +1139,35 @@ dynamic changes in the display environment.
        RRSetScreenSize will silently enable panning if the screen size is
        increased. This does not happen if set to 0.
 
+       ┌────────┳━━━━━━━━━━━━━━┳ ─ ─ ─ ─ ─ ┐
+       │        ┃     CRTC     ┃
+       │        ┃              ┃           │
+       │        ┃              ┃
+       │        ┃              ┃           │  tracking area
+       │        ┗━━━━━━━━━━━━━━┫     X
+       │               ↓       │     ↓     │
+       │panning area           │
+       └───────────────────────┴ ─ ─ ─ ─ ─ ┘
+
        'track_left', 'track_top', 'track_width', and 'track_height' contain
        the pointer area for which the panning region is updated.  For normal
        use cases it should enclose the panning area minus borders, and is
        typically set to either the panning area minus borders, or to the
        total screen size. If set to the total screen size, the CRTC will pan
        in the remaining axis even if the pointer is outside the panning area
-       on a different CRTC.
+       on a different CRTC, as shown in the figure above. If the pointer is
+       outside the tracking area, the CRTC will not pan.
+
+       ┌──┳━━━━━━━━━━━━━━┳────────────┐
+       │  ┃     CRTC     ┃            │
+       │  ┃              ┃            │
+       │  ┃              ┃→           │
+       │  ┃           X←→┃            │
+       │  ┃       border_right        │
+       │  ┗━━━━━━━━━━━━━━┛            │
+       │                              │
+       │panning area                  │
+       └──────────────────────────────┘
 
        'border_left', 'border_top', 'border_right', and 'border_bottom'
        define the distances from the CRTC borders that will activate panning
@@ -1140,7 +1175,7 @@ dynamic changes in the display environment.
        when the pointer hits the CRTC borders (behavior of pre-RandR Xserver
        panning).  If the borders are positive, the screen will pan when the
        pointer gets close to the CRTC borders, if they are negative, the
-       screen will only pan when the pointer is already way past the CRTC 
+       screen will only pan when the pointer is already way past the CRTC
        borders.  Negative values might confuse users and disable panning to
        the very edges of the screen.  Thus they are discouraged.
        border_left + border_right has to be lower or equal than the CRTC's

commit ad6501790bbaff528cf247df24ddb7de27576a11
Author: Keith Packard <[email protected]>
Date:   Wed Nov 26 15:47:18 2008 -0800

    Remove duplicate GetScreenResourcesCurrent declarations
    
    Signed-off-by: Keith Packard <[email protected]>

diff --git a/randrproto.h b/randrproto.h
index f8aac94..215bde3 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -567,29 +567,12 @@ typedef struct {
  * Additions for V1.3
  */
 
-typedef struct {
-    CARD8   reqType;
-    CARD8   randrReqType;
-    CARD16  length B16;
-    Window  window B32;
-} xRRGetScreenResourcesCurrentReq;
-#define sz_xRRGetScreenResourcesCurrentReq 8
+typedef xRRGetScreenResourcesReq xRRGetScreenResourcesCurrentReq;
 
-typedef struct {
-    BYTE       type;
-    CARD8      pad;
-    CARD16     sequenceNumber B16;
-    CARD32     length B32;
-    Time       timestamp B32;
-    Time       configTimestamp B32;
-    CARD16     nCrtcs B16;
-    CARD16     nOutputs B16;
-    CARD16     nModes B16;
-    CARD16     nbytesNames B16;
-    CARD32     pad1 B32;
-    CARD32     pad2 B32;
-} xRRGetScreenResourcesCurrentReply;
-#define sz_xRRGetScreenResourcesCurrentReply   32
+#define sz_xRRGetScreenResourcesCurrentReq sz_xRRGetScreenResourcesReq
+
+typedef xRRGetScreenResourcesReply xRRGetScreenResourcesCurrentReply;
+#define sz_xRRGetScreenResourcesCurrentReply   sz_xRRGetScreenResourcesReply
 
 typedef struct {
     CARD8              reqType;


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to