Back to index

x11proto-randr  1.4.0
randrproto.h
Go to the documentation of this file.
00001 /*
00002  * Copyright © 2000 Compaq Computer Corporation
00003  * Copyright © 2002 Hewlett-Packard Company
00004  * Copyright © 2006 Intel Corporation
00005  * Copyright © 2008 Red Hat, Inc.
00006  *
00007  * Permission to use, copy, modify, distribute, and sell this software and its
00008  * documentation for any purpose is hereby granted without fee, provided that
00009  * the above copyright notice appear in all copies and that both that copyright
00010  * notice and this permission notice appear in supporting documentation, and
00011  * that the name of the copyright holders not be used in advertising or
00012  * publicity pertaining to distribution of the software without specific,
00013  * written prior permission.  The copyright holders make no representations
00014  * about the suitability of this software for any purpose.  It is provided "as
00015  * is" without express or implied warranty.
00016  *
00017  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
00018  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
00019  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
00020  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
00021  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
00022  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
00023  * OF THIS SOFTWARE.
00024  *
00025  * Author:  Jim Gettys, Hewlett-Packard Company, Inc.
00026  *         Keith Packard, Intel Corporation
00027  */
00028 
00029 /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
00030 /* V1.0 removes depth switching from the protocol */
00031 #ifndef _XRANDRP_H_
00032 #define _XRANDRP_H_
00033 
00034 #include <X11/extensions/randr.h>
00035 #include <X11/extensions/renderproto.h>
00036 
00037 #define Window CARD32
00038 #define Drawable CARD32
00039 #define Font CARD32
00040 #define Pixmap CARD32
00041 #define Cursor CARD32
00042 #define Colormap CARD32
00043 #define GContext CARD32
00044 #define Atom CARD32
00045 #define Time CARD32
00046 #define KeyCode CARD8
00047 #define KeySym CARD32
00048 #define RROutput CARD32
00049 #define RRMode CARD32
00050 #define RRCrtc CARD32
00051 #define RRProvider CARD32
00052 #define RRModeFlags CARD32
00053 
00054 #define Rotation CARD16
00055 #define SizeID CARD16
00056 #define SubpixelOrder CARD16
00057 
00058 /*
00059  * data structures
00060  */
00061 
00062 typedef struct {
00063     CARD16 widthInPixels B16;
00064     CARD16 heightInPixels B16;
00065     CARD16 widthInMillimeters B16;
00066     CARD16 heightInMillimeters B16;
00067 } xScreenSizes;
00068 #define sz_xScreenSizes 8
00069 
00070 /* 
00071  * requests and replies
00072  */
00073 
00074 typedef struct {
00075     CARD8   reqType;
00076     CARD8   randrReqType;
00077     CARD16  length B16;
00078     CARD32  majorVersion B32;
00079     CARD32  minorVersion B32;
00080 } xRRQueryVersionReq;
00081 #define sz_xRRQueryVersionReq   12
00082 
00083 typedef struct {
00084     BYTE    type;   /* X_Reply */
00085     BYTE    pad1;
00086     CARD16  sequenceNumber B16;
00087     CARD32  length B32;
00088     CARD32  majorVersion B32;
00089     CARD32  minorVersion B32;
00090     CARD32  pad2 B32;
00091     CARD32  pad3 B32;
00092     CARD32  pad4 B32;
00093     CARD32  pad5 B32;
00094 } xRRQueryVersionReply;
00095 #define sz_xRRQueryVersionReply    32
00096 
00097 typedef struct {
00098     CARD8   reqType;
00099     CARD8   randrReqType;
00100     CARD16  length B16;
00101     Window  window B32;
00102 } xRRGetScreenInfoReq;
00103 #define sz_xRRGetScreenInfoReq   8
00104 
00105 /* 
00106  * the xRRScreenInfoReply structure is followed by:
00107  *
00108  * the size information
00109  */
00110 
00111 
00112 typedef struct {
00113     BYTE    type;   /* X_Reply */
00114     BYTE    setOfRotations;
00115     CARD16  sequenceNumber B16;
00116     CARD32  length B32;
00117     Window  root B32;
00118     Time    timestamp B32;
00119     Time    configTimestamp B32;
00120     CARD16  nSizes B16;
00121     SizeID  sizeID B16;
00122     Rotation  rotation B16;
00123     CARD16  rate B16;
00124     CARD16  nrateEnts B16;
00125     CARD16  pad B16;
00126 } xRRGetScreenInfoReply;
00127 #define sz_xRRGetScreenInfoReply   32
00128 
00129 typedef struct {
00130     CARD8    reqType;
00131     CARD8    randrReqType;
00132     CARD16   length B16;
00133     Drawable drawable B32;
00134     Time     timestamp B32;
00135     Time     configTimestamp B32;
00136     SizeID   sizeID B16;
00137     Rotation rotation B16;
00138 } xRR1_0SetScreenConfigReq;
00139 #define sz_xRR1_0SetScreenConfigReq   20
00140 
00141 typedef struct {
00142     CARD8    reqType;
00143     CARD8    randrReqType;
00144     CARD16   length B16;
00145     Drawable drawable B32;
00146     Time     timestamp B32;
00147     Time     configTimestamp B32;
00148     SizeID   sizeID B16;
00149     Rotation rotation B16;
00150     CARD16   rate B16;
00151     CARD16   pad B16;
00152 } xRRSetScreenConfigReq;
00153 #define sz_xRRSetScreenConfigReq   24
00154 
00155 typedef struct {
00156     BYTE    type;   /* X_Reply */
00157     CARD8   status;
00158     CARD16  sequenceNumber B16;
00159     CARD32  length B32;
00160     Time    newTimestamp B32;  
00161     Time    newConfigTimestamp B32;
00162     Window  root;
00163     CARD16  subpixelOrder B16;
00164     CARD16  pad4 B16;
00165     CARD32  pad5 B32;
00166     CARD32  pad6 B32;
00167 } xRRSetScreenConfigReply;
00168 #define sz_xRRSetScreenConfigReply 32
00169 
00170 typedef struct {
00171     CARD8   reqType;
00172     CARD8   randrReqType;
00173     CARD16  length B16;
00174     Window  window B32;
00175     CARD16  enable B16;
00176     CARD16  pad2 B16;
00177 } xRRSelectInputReq;
00178 #define sz_xRRSelectInputReq   12
00179 
00180 /*
00181  * Additions for version 1.2
00182  */
00183 
00184 typedef struct _xRRModeInfo {
00185     RRMode           id B32;
00186     CARD16           width B16;
00187     CARD16           height B16;
00188     CARD32           dotClock B32;
00189     CARD16           hSyncStart B16;
00190     CARD16           hSyncEnd B16;
00191     CARD16           hTotal B16;
00192     CARD16           hSkew B16;
00193     CARD16           vSyncStart B16;
00194     CARD16           vSyncEnd B16;
00195     CARD16           vTotal B16;
00196     CARD16           nameLength B16;
00197     RRModeFlags             modeFlags B32;
00198 } xRRModeInfo;
00199 #define sz_xRRModeInfo                 32
00200 
00201 typedef struct {
00202     CARD8   reqType;
00203     CARD8   randrReqType;
00204     CARD16  length B16;
00205     Window  window B32;
00206 } xRRGetScreenSizeRangeReq;
00207 #define sz_xRRGetScreenSizeRangeReq 8
00208 
00209 typedef struct {
00210     BYTE    type;   /* X_Reply */
00211     CARD8   pad;
00212     CARD16  sequenceNumber B16;
00213     CARD32  length B32;
00214     CARD16  minWidth B16;
00215     CARD16  minHeight B16;
00216     CARD16  maxWidth B16;
00217     CARD16  maxHeight B16;
00218     CARD32  pad0 B32;
00219     CARD32  pad1 B32;
00220     CARD32  pad2 B32;
00221     CARD32  pad3 B32;
00222 } xRRGetScreenSizeRangeReply;
00223 #define sz_xRRGetScreenSizeRangeReply 32
00224 
00225 typedef struct {
00226     CARD8   reqType;
00227     CARD8   randrReqType;
00228     CARD16  length B16;
00229     Window  window B32;
00230     CARD16  width B16;
00231     CARD16  height B16;
00232     CARD32  widthInMillimeters B32;
00233     CARD32  heightInMillimeters B32;
00234 } xRRSetScreenSizeReq;
00235 #define sz_xRRSetScreenSizeReq         20
00236 
00237 typedef struct {
00238     CARD8   reqType;
00239     CARD8   randrReqType;
00240     CARD16  length B16;
00241     Window  window B32;
00242 } xRRGetScreenResourcesReq;
00243 #define sz_xRRGetScreenResourcesReq 8
00244 
00245 typedef struct {
00246     BYTE      type;
00247     CARD8     pad;
00248     CARD16    sequenceNumber B16;
00249     CARD32    length B32;
00250     Time      timestamp B32;
00251     Time      configTimestamp B32;
00252     CARD16    nCrtcs B16;
00253     CARD16    nOutputs B16;
00254     CARD16    nModes B16;
00255     CARD16    nbytesNames B16;
00256     CARD32    pad1 B32;
00257     CARD32    pad2 B32;
00258 } xRRGetScreenResourcesReply;
00259 #define sz_xRRGetScreenResourcesReply     32
00260 
00261 typedef struct {
00262     CARD8     reqType;
00263     CARD8     randrReqType;
00264     CARD16    length B16;
00265     RROutput  output B32;
00266     Time      configTimestamp B32;
00267 } xRRGetOutputInfoReq;
00268 #define sz_xRRGetOutputInfoReq            12
00269 
00270 typedef struct {
00271     BYTE      type;
00272     CARD8     status;
00273     CARD16    sequenceNumber B16;
00274     CARD32    length B32;
00275     Time      timestamp B32;
00276     RRCrtc    crtc B32;
00277     CARD32    mmWidth B32;
00278     CARD32    mmHeight B32;
00279     CARD8     connection;
00280     CARD8     subpixelOrder;
00281     CARD16    nCrtcs B16;
00282     CARD16    nModes B16;
00283     CARD16    nPreferred B16;
00284     CARD16    nClones B16;
00285     CARD16    nameLength B16;
00286 } xRRGetOutputInfoReply;
00287 #define sz_xRRGetOutputInfoReply   36
00288 
00289 typedef struct {
00290     CARD8     reqType;
00291     CARD8     randrReqType;
00292     CARD16    length B16;
00293     RROutput  output B32;
00294 } xRRListOutputPropertiesReq; 
00295 #define sz_xRRListOutputPropertiesReq     8
00296 
00297 typedef struct {
00298     BYTE      type;
00299     CARD8     pad0;
00300     CARD16    sequenceNumber B16;
00301     CARD32    length B32;
00302     CARD16    nAtoms B16;
00303     CARD16    pad1 B16;
00304     CARD32    pad2 B32;
00305     CARD32    pad3 B32;
00306     CARD32    pad4 B32;
00307     CARD32    pad5 B32;
00308     CARD32    pad6 B32;
00309 } xRRListOutputPropertiesReply;
00310 #define sz_xRRListOutputPropertiesReply   32
00311 
00312 typedef struct {
00313     CARD8     reqType;
00314     CARD8     randrReqType;
00315     CARD16    length B16;
00316     RROutput  output B32;
00317     Atom      property B32;
00318 } xRRQueryOutputPropertyReq; 
00319 #define sz_xRRQueryOutputPropertyReq      12
00320 
00321 typedef struct {
00322     BYTE      type;
00323     BYTE      pad0;
00324     CARD16    sequenceNumber B16;
00325     CARD32    length B32;
00326     BOOL      pending;
00327     BOOL      range;
00328     BOOL      immutable;
00329     BYTE      pad1;
00330     CARD32    pad2 B32;
00331     CARD32    pad3 B32;
00332     CARD32    pad4 B32;
00333     CARD32    pad5 B32;
00334     CARD32    pad6 B32;
00335 } xRRQueryOutputPropertyReply;
00336 #define sz_xRRQueryOutputPropertyReply    32
00337 
00338 typedef struct {
00339     CARD8     reqType;
00340     CARD8     randrReqType;
00341     CARD16    length B16;
00342     RROutput  output B32;
00343     Atom      property B32;
00344     BOOL      pending;
00345     BOOL      range;
00346     CARD16    pad B16;
00347 } xRRConfigureOutputPropertyReq; 
00348 #define sz_xRRConfigureOutputPropertyReq  16
00349 
00350 typedef struct {
00351     CARD8     reqType;
00352     CARD8     randrReqType;
00353     CARD16    length B16;
00354     RROutput  output B32;
00355     Atom      property B32;
00356     Atom      type B32;
00357     CARD8     format;
00358     CARD8     mode;
00359     CARD16    pad;
00360     CARD32    nUnits B32;
00361 } xRRChangeOutputPropertyReq;
00362 #define sz_xRRChangeOutputPropertyReq     24
00363 
00364 typedef struct {
00365     CARD8     reqType;
00366     CARD8     randrReqType;
00367     CARD16    length B16;
00368     RROutput  output B32;
00369     Atom      property B32;
00370 } xRRDeleteOutputPropertyReq;
00371 #define sz_xRRDeleteOutputPropertyReq     12
00372 
00373 typedef struct {
00374     CARD8     reqType;
00375     CARD8     randrReqType;
00376     CARD16    length B16;
00377     RROutput  output B32;
00378     Atom      property B32;
00379     Atom      type B32;
00380     CARD32    longOffset B32;
00381     CARD32    longLength B32;
00382 #ifdef __cplusplus
00383     BOOL      _delete;
00384 #else
00385     BOOL      delete;
00386 #endif
00387     BOOL      pending;
00388     CARD16    pad1 B16;
00389 } xRRGetOutputPropertyReq;
00390 #define sz_xRRGetOutputPropertyReq 28
00391 
00392 typedef struct {
00393     BYTE      type;
00394     CARD8     format;
00395     CARD16    sequenceNumber B16;
00396     CARD32    length B32;
00397     Atom      propertyType B32;
00398     CARD32    bytesAfter B32;
00399     CARD32    nItems B32;
00400     CARD32    pad1 B32;
00401     CARD32    pad2 B32;
00402     CARD32    pad3 B32;
00403 } xRRGetOutputPropertyReply;
00404 #define sz_xRRGetOutputPropertyReply      32
00405 
00406 typedef struct {
00407     CARD8     reqType;
00408     CARD8     randrReqType;
00409     CARD16    length B16;
00410     Window    window B32;
00411     xRRModeInfo      modeInfo;
00412 } xRRCreateModeReq; 
00413 #define sz_xRRCreateModeReq        40
00414 
00415 typedef struct {
00416     BYTE      type;
00417     CARD8     pad0;
00418     CARD16    sequenceNumber B16;
00419     CARD32    length B32;
00420     RRMode    mode B32;
00421     CARD32    pad1 B32;
00422     CARD32    pad2 B32;
00423     CARD32    pad3 B32;
00424     CARD32    pad4 B32;
00425     CARD32    pad5 B32;
00426 } xRRCreateModeReply;
00427 #define sz_xRRCreateModeReply             32
00428 
00429 typedef struct {
00430     CARD8     reqType;
00431     CARD8     randrReqType;
00432     CARD16    length B16;
00433     RRMode    mode B32;
00434 } xRRDestroyModeReq;
00435 #define sz_xRRDestroyModeReq              8
00436 
00437 typedef struct {
00438     CARD8     reqType;
00439     CARD8     randrReqType;
00440     CARD16    length B16;
00441     RROutput  output B32;
00442     RRMode    mode B32;
00443 } xRRAddOutputModeReq;
00444 #define sz_xRRAddOutputModeReq            12
00445 
00446 typedef struct {
00447     CARD8     reqType;
00448     CARD8     randrReqType;
00449     CARD16    length B16;
00450     RROutput  output B32;
00451     RRMode    mode B32;
00452 } xRRDeleteOutputModeReq;
00453 #define sz_xRRDeleteOutputModeReq  12
00454 
00455 typedef struct {
00456     CARD8     reqType;
00457     CARD8     randrReqType;
00458     CARD16    length B16;
00459     RRCrtc    crtc B32;
00460     Time      configTimestamp B32;
00461 } xRRGetCrtcInfoReq; 
00462 #define sz_xRRGetCrtcInfoReq              12
00463 
00464 typedef struct {
00465     BYTE      type;
00466     CARD8     status;
00467     CARD16    sequenceNumber B16;
00468     CARD32    length B32;
00469     Time      timestamp B32;
00470     INT16     x B16;
00471     INT16     y B16;
00472     CARD16    width B16;
00473     CARD16    height B16;
00474     RRMode    mode B32;
00475     Rotation  rotation B16;
00476     Rotation  rotations B16;
00477     CARD16    nOutput B16;
00478     CARD16    nPossibleOutput B16;
00479 } xRRGetCrtcInfoReply;
00480 #define sz_xRRGetCrtcInfoReply            32
00481 
00482 typedef struct {
00483     CARD8     reqType;
00484     CARD8     randrReqType;
00485     CARD16    length B16;
00486     RRCrtc    crtc B32;
00487     Time      timestamp B32;
00488     Time      configTimestamp B32;
00489     INT16     x B16;
00490     INT16     y B16;
00491     RRMode    mode B32;
00492     Rotation  rotation B16;
00493     CARD16    pad B16;
00494 } xRRSetCrtcConfigReq; 
00495 #define sz_xRRSetCrtcConfigReq            28
00496 
00497 typedef struct {
00498     BYTE      type;
00499     CARD8     status;
00500     CARD16    sequenceNumber B16;
00501     CARD32    length B32;
00502     Time      newTimestamp B32;
00503     CARD32    pad1 B32;
00504     CARD32    pad2 B16;
00505     CARD32    pad3 B32;
00506     CARD32    pad4 B32;
00507     CARD32    pad5 B32;
00508 } xRRSetCrtcConfigReply;
00509 #define sz_xRRSetCrtcConfigReply   32
00510 
00511 typedef struct {
00512     CARD8     reqType;
00513     CARD8     randrReqType;
00514     CARD16    length B16;
00515     RRCrtc    crtc B32;
00516 } xRRGetCrtcGammaSizeReq; 
00517 #define sz_xRRGetCrtcGammaSizeReq  8
00518 
00519 typedef struct {
00520     BYTE      type;
00521     CARD8     status;
00522     CARD16    sequenceNumber B16;
00523     CARD32    length B32;
00524     CARD16    size B16;
00525     CARD16    pad1 B16;
00526     CARD32    pad2 B32;
00527     CARD32    pad3 B32;
00528     CARD32    pad4 B32;
00529     CARD32    pad5 B32;
00530     CARD32    pad6 B32;
00531 } xRRGetCrtcGammaSizeReply;
00532 #define sz_xRRGetCrtcGammaSizeReply       32
00533 
00534 typedef struct {
00535     CARD8     reqType;
00536     CARD8     randrReqType;
00537     CARD16    length B16;
00538     RRCrtc    crtc B32;
00539 } xRRGetCrtcGammaReq; 
00540 #define sz_xRRGetCrtcGammaReq             8
00541 
00542 typedef struct {
00543     BYTE      type;
00544     CARD8     status;
00545     CARD16    sequenceNumber B16;
00546     CARD32    length B32;
00547     CARD16    size B16;
00548     CARD16    pad1 B16;
00549     CARD32    pad2 B32;
00550     CARD32    pad3 B32;
00551     CARD32    pad4 B32;
00552     CARD32    pad5 B32;
00553     CARD32    pad6 B32;
00554 } xRRGetCrtcGammaReply;
00555 #define sz_xRRGetCrtcGammaReply           32
00556 
00557 typedef struct {
00558     CARD8     reqType;
00559     CARD8     randrReqType;
00560     CARD16    length B16;
00561     RRCrtc    crtc B32;
00562     CARD16    size B16;
00563     CARD16    pad1 B16;
00564 } xRRSetCrtcGammaReq;
00565 #define sz_xRRSetCrtcGammaReq             12
00566 
00567 /*
00568  * Additions for V1.3
00569  */
00570 
00571 typedef xRRGetScreenResourcesReq xRRGetScreenResourcesCurrentReq;
00572 
00573 #define sz_xRRGetScreenResourcesCurrentReq sz_xRRGetScreenResourcesReq
00574 
00575 typedef xRRGetScreenResourcesReply xRRGetScreenResourcesCurrentReply;
00576 #define sz_xRRGetScreenResourcesCurrentReply     sz_xRRGetScreenResourcesReply
00577 
00578 typedef struct {
00579     CARD8            reqType;
00580     CARD8            randrReqType;
00581     CARD16           length B16;
00582     RRCrtc           crtc B32;
00583     xRenderTransform transform;
00584     CARD16           nbytesFilter; /* number of bytes in filter name */
00585     CARD16           pad B16;
00586 } xRRSetCrtcTransformReq;
00587 
00588 #define sz_xRRSetCrtcTransformReq  48
00589 
00590 typedef struct {
00591     CARD8            reqType;
00592     CARD8            randrReqType;
00593     CARD16           length B16;
00594     RRCrtc           crtc B32;
00595 } xRRGetCrtcTransformReq;
00596 
00597 #define sz_xRRGetCrtcTransformReq  8
00598 
00599 typedef struct {
00600     BYTE             type;
00601     CARD8            status;
00602     CARD16           sequenceNumber B16;
00603     CARD32           length B32;
00604     xRenderTransform pendingTransform;
00605     BYTE             hasTransforms;
00606     CARD8            pad0;
00607     CARD16           pad1 B16;
00608     xRenderTransform currentTransform;
00609     CARD32           pad2 B32;
00610     CARD16           pendingNbytesFilter B16;    /* number of bytes in filter name */
00611     CARD16           pendingNparamsFilter B16;   /* number of filter params */
00612     CARD16           currentNbytesFilter B16;    /* number of bytes in filter name */
00613     CARD16           currentNparamsFilter B16;   /* number of filter params */
00614 } xRRGetCrtcTransformReply;
00615 
00616 #define sz_xRRGetCrtcTransformReply       96
00617 
00618 typedef struct {
00619     CARD8     reqType;
00620     CARD8     randrReqType;
00621     CARD16    length B16;
00622     Window    window B32;
00623     RROutput  output B32;
00624 } xRRSetOutputPrimaryReq;
00625 #define sz_xRRSetOutputPrimaryReq  12
00626 
00627 typedef struct {
00628     CARD8     reqType;
00629     CARD8     randrReqType;
00630     CARD16    length B16;
00631     Window    window B32;
00632 } xRRGetOutputPrimaryReq;
00633 #define sz_xRRGetOutputPrimaryReq  8
00634 
00635 typedef struct {
00636     BYTE      type;
00637     CARD8     pad;
00638     CARD16    sequenceNumber B16;
00639     CARD32    length B32;
00640     RROutput  output B32;
00641     CARD32    pad1 B32;
00642     CARD32    pad2 B32;
00643     CARD32    pad3 B32;
00644     CARD32    pad4 B32;
00645     CARD32    pad5 B32;
00646 } xRRGetOutputPrimaryReply;
00647 #define sz_xRRGetOutputPrimaryReply       32
00648 
00649 /*
00650  * Additions for V1.4
00651  */
00652 
00653 typedef struct {
00654     CARD8     reqType;
00655     CARD8     randrReqType;
00656     CARD16    length B16;
00657     Window    window B32;
00658 } xRRGetProvidersReq;
00659 #define sz_xRRGetProvidersReq 8
00660 
00661 typedef struct {
00662     BYTE      type;
00663     CARD8     pad;
00664     CARD16    sequenceNumber B16;
00665     CARD32    length B32;
00666     Time      timestamp B32;
00667     CARD16    nProviders;
00668     CARD16    pad1 B16;
00669     CARD32    pad2 B32;
00670     CARD32    pad3 B32;
00671     CARD32    pad4 B32;
00672     CARD32    pad5 B32;
00673 } xRRGetProvidersReply;
00674 #define sz_xRRGetProvidersReply 32
00675 
00676 typedef struct {
00677     CARD8     reqType;
00678     CARD8     randrReqType;
00679     CARD16    length B16;
00680     RRProvider       provider B32;
00681     Time      configTimestamp B32;
00682 } xRRGetProviderInfoReq;
00683 #define sz_xRRGetProviderInfoReq 12
00684 
00685 typedef struct {
00686     BYTE      type;
00687     CARD8     status;
00688     CARD16    sequenceNumber B16;
00689     CARD32    length B32;
00690     Time      timestamp B32;
00691     CARD32    capabilities B32;
00692     CARD16    nCrtcs B16;
00693     CARD16    nOutputs B16;
00694     CARD16    nAssociatedProviders B16;
00695     CARD16    nameLength B16;
00696     CARD32      pad1 B32;
00697     CARD32      pad2 B32;
00698 } xRRGetProviderInfoReply;
00699 #define sz_xRRGetProviderInfoReply 32
00700 
00701 typedef struct {
00702     CARD8     reqType;
00703     CARD8     randrReqType;
00704     CARD16    length B16;
00705     RRProvider  provider B32;
00706     RRProvider  source_provider B32;
00707     Time      configTimestamp B32;
00708 } xRRSetProviderOutputSourceReq;
00709 #define sz_xRRSetProviderOutputSourceReq 16
00710 
00711 typedef struct {
00712     CARD8     reqType;
00713     CARD8     randrReqType;
00714     CARD16    length B16;
00715     RRProvider  provider B32;
00716     RRProvider  sink_provider B32;
00717     Time      configTimestamp B32;
00718 } xRRSetProviderOffloadSinkReq;
00719 #define sz_xRRSetProviderOffloadSinkReq 16
00720 
00721 typedef struct {
00722     CARD8     reqType;
00723     CARD8     randrReqType;
00724     CARD16    length B16;
00725     RRProvider       provider B32;
00726 } xRRListProviderPropertiesReq; 
00727 #define sz_xRRListProviderPropertiesReq   8
00728 
00729 typedef struct {
00730     BYTE      type;
00731     CARD8     pad0;
00732     CARD16    sequenceNumber B16;
00733     CARD32    length B32;
00734     CARD16    nAtoms B16;
00735     CARD16    pad1 B16;
00736     CARD32    pad2 B32;
00737     CARD32    pad3 B32;
00738     CARD32    pad4 B32;
00739     CARD32    pad5 B32;
00740     CARD32    pad6 B32;
00741 } xRRListProviderPropertiesReply;
00742 #define sz_xRRListProviderPropertiesReply 32
00743 
00744 typedef struct {
00745     CARD8     reqType;
00746     CARD8     randrReqType;
00747     CARD16    length B16;
00748     RRProvider       provider B32;
00749     Atom      property B32;
00750 } xRRQueryProviderPropertyReq; 
00751 #define sz_xRRQueryProviderPropertyReq    12
00752 
00753 typedef struct {
00754     BYTE      type;
00755     BYTE      pad0;
00756     CARD16    sequenceNumber B16;
00757     CARD32    length B32;
00758     BOOL      pending;
00759     BOOL      range;
00760     BOOL      immutable;
00761     BYTE      pad1;
00762     CARD32    pad2 B32;
00763     CARD32    pad3 B32;
00764     CARD32    pad4 B32;
00765     CARD32    pad5 B32;
00766     CARD32    pad6 B32;
00767 } xRRQueryProviderPropertyReply;
00768 #define sz_xRRQueryProviderPropertyReply  32
00769 
00770 typedef struct {
00771     CARD8     reqType;
00772     CARD8     randrReqType;
00773     CARD16    length B16;
00774     RRProvider       provider B32;
00775     Atom      property B32;
00776     BOOL      pending;
00777     BOOL      range;
00778     CARD16    pad B16;
00779 } xRRConfigureProviderPropertyReq; 
00780 #define sz_xRRConfigureProviderPropertyReq       16
00781 
00782 typedef struct {
00783     CARD8     reqType;
00784     CARD8     randrReqType;
00785     CARD16    length B16;
00786     RRProvider       provider B32;
00787     Atom      property B32;
00788     Atom      type B32;
00789     CARD8     format;
00790     CARD8     mode;
00791     CARD16    pad;
00792     CARD32    nUnits B32;
00793 } xRRChangeProviderPropertyReq;
00794 #define sz_xRRChangeProviderPropertyReq   24
00795 
00796 typedef struct {
00797     CARD8     reqType;
00798     CARD8     randrReqType;
00799     CARD16    length B16;
00800     RRProvider       provider B32;
00801     Atom      property B32;
00802 } xRRDeleteProviderPropertyReq;
00803 #define sz_xRRDeleteProviderPropertyReq   12
00804 
00805 typedef struct {
00806     CARD8     reqType;
00807     CARD8     randrReqType;
00808     CARD16    length B16;
00809     RRProvider       provider B32;
00810     Atom      property B32;
00811     Atom      type B32;
00812     CARD32    longOffset B32;
00813     CARD32    longLength B32;
00814 #ifdef __cplusplus
00815     BOOL      _delete;
00816 #else
00817     BOOL      delete;
00818 #endif
00819     BOOL      pending;
00820     CARD16    pad1 B16;
00821 } xRRGetProviderPropertyReq;
00822 #define sz_xRRGetProviderPropertyReq      28
00823 
00824 typedef struct {
00825     BYTE      type;
00826     CARD8     format;
00827     CARD16    sequenceNumber B16;
00828     CARD32    length B32;
00829     Atom      propertyType B32;
00830     CARD32    bytesAfter B32;
00831     CARD32    nItems B32;
00832     CARD32    pad1 B32;
00833     CARD32    pad2 B32;
00834     CARD32    pad3 B32;
00835 } xRRGetProviderPropertyReply;
00836 #define sz_xRRGetProviderPropertyReply    32
00837 
00838 /*
00839  * event
00840  */
00841 typedef struct {
00842     CARD8 type;                           /* always evBase + ScreenChangeNotify */
00843     CARD8 rotation;                /* new rotation */
00844     CARD16 sequenceNumber B16;
00845     Time timestamp B32;                   /* time screen was changed */
00846     Time configTimestamp B32;             /* time config data was changed */
00847     Window root B32;               /* root window */
00848     Window window B32;                    /* window requesting notification */
00849     SizeID sizeID B16;                    /* new size ID */
00850     CARD16 subpixelOrder B16;             /* subpixel order */
00851     CARD16 widthInPixels B16;             /* new size */
00852     CARD16 heightInPixels B16;
00853     CARD16 widthInMillimeters B16;
00854     CARD16 heightInMillimeters B16;
00855 } xRRScreenChangeNotifyEvent;
00856 #define sz_xRRScreenChangeNotifyEvent     32
00857 
00858 typedef struct {
00859     CARD8 type;                           /* always evBase + RRNotify */
00860     CARD8 subCode;                 /* RRNotify_CrtcChange */
00861     CARD16 sequenceNumber B16;
00862     Time timestamp B32;                   /* time crtc was changed */
00863     Window window B32;                    /* window requesting notification */
00864     RRCrtc crtc B32;               /* affected CRTC */
00865     RRMode mode B32;               /* current mode */
00866     CARD16 rotation B16;           /* rotation and reflection */
00867     CARD16 pad1 B16;               /* unused */
00868     INT16 x B16;                   /* new location */
00869     INT16 y B16;
00870     CARD16 width B16;                     /* new size */
00871     CARD16 height B16;
00872 } xRRCrtcChangeNotifyEvent;
00873 #define sz_xRRCrtcChangeNotifyEvent       32
00874 
00875 typedef struct {
00876     CARD8 type;                           /* always evBase + RRNotify */
00877     CARD8 subCode;                 /* RRNotify_OutputChange */
00878     CARD16 sequenceNumber B16;
00879     Time timestamp B32;                   /* time output was changed */
00880     Time configTimestamp B32;             /* time config was changed */
00881     Window window B32;                    /* window requesting notification */
00882     RROutput output B32;           /* affected output */
00883     RRCrtc crtc B32;               /* current crtc */
00884     RRMode mode B32;               /* current mode */
00885     CARD16 rotation B16;           /* rotation and reflection */
00886     CARD8 connection;                     /* connection status */
00887     CARD8 subpixelOrder;           /* subpixel order */
00888 } xRROutputChangeNotifyEvent;
00889 #define sz_xRROutputChangeNotifyEvent     32
00890 
00891 typedef struct {
00892     CARD8 type;                           /* always evBase + RRNotify */
00893     CARD8 subCode;                 /* RRNotify_OutputProperty */
00894     CARD16 sequenceNumber B16;
00895     Window window B32;                    /* window requesting notification */
00896     RROutput output B32;           /* affected output */
00897     Atom atom B32;                 /* property name */
00898     Time timestamp B32;                   /* time crtc was changed */
00899     CARD8 state;                   /* NewValue or Deleted */
00900     CARD8 pad1;
00901     CARD16 pad2 B16;
00902     CARD32 pad3 B32;
00903     CARD32 pad4 B32;
00904 } xRROutputPropertyNotifyEvent;
00905 #define sz_xRROutputPropertyNotifyEvent   32
00906 
00907 typedef struct {
00908     CARD8 type;                           /* always evBase + RRNotify */
00909     CARD8 subCode;                 /* RRNotify_ProviderChange */
00910     CARD16 sequenceNumber B16;
00911     Time timestamp B32;                   /* time provider was changed */
00912     Window window B32;                    /* window requesting notification */
00913     RRProvider provider B32;              /* affected provider */
00914     CARD32 pad1 B32;
00915     CARD32 pad2 B32;
00916     CARD32 pad3 B32;
00917     CARD32 pad4 B32;
00918 } xRRProviderChangeNotifyEvent;
00919 #define sz_xRRProviderChangeNotifyEvent   32
00920 
00921 typedef struct {
00922     CARD8 type;                           /* always evBase + RRNotify */
00923     CARD8 subCode;                 /* RRNotify_ProviderProperty */
00924     CARD16 sequenceNumber B16;
00925     Window window B32;                    /* window requesting notification */
00926     RRProvider provider B32;              /* affected provider */
00927     Atom atom B32;                 /* property name */
00928     Time timestamp B32;                   /* time provider was changed */
00929     CARD8 state;                   /* NewValue or Deleted */
00930     CARD8 pad1;
00931     CARD16 pad2 B16;
00932     CARD32 pad3 B32;
00933     CARD32 pad4 B32;
00934 } xRRProviderPropertyNotifyEvent;
00935 #define sz_xRRProviderPropertyNotifyEvent 32
00936 
00937 typedef struct {
00938     CARD8 type;                           /* always evBase + RRNotify */
00939     CARD8 subCode;                 /* RRNotify_ResourceChange */
00940     CARD16 sequenceNumber B16;
00941     Time timestamp B32;                   /* time resource was changed */
00942     Window window B32;                    /* window requesting notification */
00943     CARD32 pad1 B32;
00944     CARD32 pad2 B32;
00945     CARD32 pad3 B32;
00946     CARD32 pad4 B32;
00947     CARD32 pad5 B32;
00948 } xRRResourceChangeNotifyEvent;
00949 #define sz_xRRResourceChangeNotifyEvent   32
00950 
00951 typedef struct {
00952     CARD8     reqType;
00953     CARD8     randrReqType;
00954     CARD16    length B16;
00955     RRCrtc    crtc B32;
00956 } xRRGetPanningReq; 
00957 #define sz_xRRGetPanningReq        8
00958 
00959 typedef struct {
00960     BYTE      type;
00961     CARD8     status;
00962     CARD16    sequenceNumber B16;
00963     CARD32    length B32;
00964     Time      timestamp B32;
00965     CARD16    left B16;
00966     CARD16    top B16;
00967     CARD16    width B16;
00968     CARD16    height B16;
00969     CARD16    track_left B16;
00970     CARD16    track_top B16;
00971     CARD16    track_width B16;
00972     CARD16    track_height B16;
00973     INT16     border_left B16;
00974     INT16     border_top B16;
00975     INT16     border_right B16;
00976     INT16     border_bottom B16;
00977 } xRRGetPanningReply;
00978 #define sz_xRRGetPanningReply             36
00979 
00980 typedef struct {
00981     CARD8     reqType;
00982     CARD8     randrReqType;
00983     CARD16    length B16;
00984     RRCrtc    crtc B32;
00985     Time      timestamp B32;
00986     CARD16    left B16;
00987     CARD16    top B16;
00988     CARD16    width B16;
00989     CARD16    height B16;
00990     CARD16    track_left B16;
00991     CARD16    track_top B16;
00992     CARD16    track_width B16;
00993     CARD16    track_height B16;
00994     INT16     border_left B16;
00995     INT16     border_top B16;
00996     INT16     border_right B16;
00997     INT16     border_bottom B16;
00998 } xRRSetPanningReq; 
00999 #define sz_xRRSetPanningReq        36
01000 
01001 typedef struct {
01002     BYTE      type;
01003     CARD8     status;
01004     CARD16    sequenceNumber B16;
01005     CARD32    length B32;
01006     Time      newTimestamp B32;
01007     CARD32      pad1 B32;
01008     CARD32      pad2 B32;
01009     CARD32      pad3 B32;
01010     CARD32      pad4 B32;
01011     CARD32      pad5 B32;
01012 } xRRSetPanningReply;
01013 #define sz_xRRSetPanningReply      32
01014 
01015 #undef RRModeFlags
01016 #undef RRCrtc
01017 #undef RRMode
01018 #undef RROutput
01019 #undef RRMode
01020 #undef RRCrtc
01021 #undef RRProvider
01022 #undef Drawable
01023 #undef Window
01024 #undef Font
01025 #undef Pixmap
01026 #undef Cursor
01027 #undef Colormap
01028 #undef GContext
01029 #undef Atom
01030 #undef Time
01031 #undef KeyCode
01032 #undef KeySym
01033 #undef Rotation
01034 #undef SizeID
01035 #undef SubpixelOrder
01036 
01037 #endif /* _XRANDRP_H_ */