randrproto.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152
  1. /*
  2. * Copyright © 2000 Compaq Computer Corporation
  3. * Copyright © 2002 Hewlett-Packard Company
  4. * Copyright © 2006 Intel Corporation
  5. * Copyright © 2008 Red Hat, Inc.
  6. *
  7. * Permission to use, copy, modify, distribute, and sell this software and its
  8. * documentation for any purpose is hereby granted without fee, provided that
  9. * the above copyright notice appear in all copies and that both that copyright
  10. * notice and this permission notice appear in supporting documentation, and
  11. * that the name of the copyright holders not be used in advertising or
  12. * publicity pertaining to distribution of the software without specific,
  13. * written prior permission. The copyright holders make no representations
  14. * about the suitability of this software for any purpose. It is provided "as
  15. * is" without express or implied warranty.
  16. *
  17. * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  18. * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  19. * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20. * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  21. * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  22. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
  23. * OF THIS SOFTWARE.
  24. *
  25. * Author: Jim Gettys, Hewlett-Packard Company, Inc.
  26. * Keith Packard, Intel Corporation
  27. */
  28. /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
  29. /* V1.0 removes depth switching from the protocol */
  30. #ifndef _XRANDRP_H_
  31. #define _XRANDRP_H_
  32. #include <X11/extensions/randr.h>
  33. #include <X11/extensions/renderproto.h>
  34. #define Window CARD32
  35. #define Drawable CARD32
  36. #define Font CARD32
  37. #define Pixmap CARD32
  38. #define Cursor CARD32
  39. #define Colormap CARD32
  40. #define GContext CARD32
  41. #define Atom CARD32
  42. #define Time CARD32
  43. #define KeyCode CARD8
  44. #define KeySym CARD32
  45. #define RROutput CARD32
  46. #define RRMode CARD32
  47. #define RRCrtc CARD32
  48. #define RRProvider CARD32
  49. #define RRModeFlags CARD32
  50. #define RRLease CARD32
  51. #define Rotation CARD16
  52. #define SizeID CARD16
  53. #define SubpixelOrder CARD16
  54. /*
  55. * data structures
  56. */
  57. typedef struct {
  58. CARD16 widthInPixels;
  59. CARD16 heightInPixels;
  60. CARD16 widthInMillimeters;
  61. CARD16 heightInMillimeters;
  62. } xScreenSizes;
  63. #define sz_xScreenSizes 8
  64. /*
  65. * requests and replies
  66. */
  67. typedef struct {
  68. CARD8 reqType;
  69. CARD8 randrReqType;
  70. CARD16 length;
  71. CARD32 majorVersion;
  72. CARD32 minorVersion;
  73. } xRRQueryVersionReq;
  74. #define sz_xRRQueryVersionReq 12
  75. typedef struct {
  76. BYTE type; /* X_Reply */
  77. BYTE pad1;
  78. CARD16 sequenceNumber;
  79. CARD32 length;
  80. CARD32 majorVersion;
  81. CARD32 minorVersion;
  82. CARD32 pad2;
  83. CARD32 pad3;
  84. CARD32 pad4;
  85. CARD32 pad5;
  86. } xRRQueryVersionReply;
  87. #define sz_xRRQueryVersionReply 32
  88. typedef struct {
  89. CARD8 reqType;
  90. CARD8 randrReqType;
  91. CARD16 length;
  92. Window window;
  93. } xRRGetScreenInfoReq;
  94. #define sz_xRRGetScreenInfoReq 8
  95. /*
  96. * the xRRScreenInfoReply structure is followed by:
  97. *
  98. * the size information
  99. */
  100. typedef struct {
  101. BYTE type; /* X_Reply */
  102. BYTE setOfRotations;
  103. CARD16 sequenceNumber;
  104. CARD32 length;
  105. Window root;
  106. Time timestamp;
  107. Time configTimestamp;
  108. CARD16 nSizes;
  109. SizeID sizeID;
  110. Rotation rotation;
  111. CARD16 rate;
  112. CARD16 nrateEnts;
  113. CARD16 pad;
  114. } xRRGetScreenInfoReply;
  115. #define sz_xRRGetScreenInfoReply 32
  116. typedef struct {
  117. CARD8 reqType;
  118. CARD8 randrReqType;
  119. CARD16 length;
  120. Drawable drawable;
  121. Time timestamp;
  122. Time configTimestamp;
  123. SizeID sizeID;
  124. Rotation rotation;
  125. } xRR1_0SetScreenConfigReq;
  126. #define sz_xRR1_0SetScreenConfigReq 20
  127. typedef struct {
  128. CARD8 reqType;
  129. CARD8 randrReqType;
  130. CARD16 length;
  131. Drawable drawable;
  132. Time timestamp;
  133. Time configTimestamp;
  134. SizeID sizeID;
  135. Rotation rotation;
  136. CARD16 rate;
  137. CARD16 pad;
  138. } xRRSetScreenConfigReq;
  139. #define sz_xRRSetScreenConfigReq 24
  140. typedef struct {
  141. BYTE type; /* X_Reply */
  142. CARD8 status;
  143. CARD16 sequenceNumber;
  144. CARD32 length;
  145. Time newTimestamp;
  146. Time newConfigTimestamp;
  147. Window root;
  148. CARD16 subpixelOrder;
  149. CARD16 pad4;
  150. CARD32 pad5;
  151. CARD32 pad6;
  152. } xRRSetScreenConfigReply;
  153. #define sz_xRRSetScreenConfigReply 32
  154. typedef struct {
  155. CARD8 reqType;
  156. CARD8 randrReqType;
  157. CARD16 length;
  158. Window window;
  159. CARD16 enable;
  160. CARD16 pad2;
  161. } xRRSelectInputReq;
  162. #define sz_xRRSelectInputReq 12
  163. /*
  164. * Additions for version 1.2
  165. */
  166. typedef struct _xRRModeInfo {
  167. RRMode id;
  168. CARD16 width;
  169. CARD16 height;
  170. CARD32 dotClock;
  171. CARD16 hSyncStart;
  172. CARD16 hSyncEnd;
  173. CARD16 hTotal;
  174. CARD16 hSkew;
  175. CARD16 vSyncStart;
  176. CARD16 vSyncEnd;
  177. CARD16 vTotal;
  178. CARD16 nameLength;
  179. RRModeFlags modeFlags;
  180. } xRRModeInfo;
  181. #define sz_xRRModeInfo 32
  182. typedef struct {
  183. CARD8 reqType;
  184. CARD8 randrReqType;
  185. CARD16 length;
  186. Window window;
  187. } xRRGetScreenSizeRangeReq;
  188. #define sz_xRRGetScreenSizeRangeReq 8
  189. typedef struct {
  190. BYTE type; /* X_Reply */
  191. CARD8 pad;
  192. CARD16 sequenceNumber;
  193. CARD32 length;
  194. CARD16 minWidth;
  195. CARD16 minHeight;
  196. CARD16 maxWidth;
  197. CARD16 maxHeight;
  198. CARD32 pad0;
  199. CARD32 pad1;
  200. CARD32 pad2;
  201. CARD32 pad3;
  202. } xRRGetScreenSizeRangeReply;
  203. #define sz_xRRGetScreenSizeRangeReply 32
  204. typedef struct {
  205. CARD8 reqType;
  206. CARD8 randrReqType;
  207. CARD16 length;
  208. Window window;
  209. CARD16 width;
  210. CARD16 height;
  211. CARD32 widthInMillimeters;
  212. CARD32 heightInMillimeters;
  213. } xRRSetScreenSizeReq;
  214. #define sz_xRRSetScreenSizeReq 20
  215. typedef struct {
  216. CARD8 reqType;
  217. CARD8 randrReqType;
  218. CARD16 length;
  219. Window window;
  220. } xRRGetScreenResourcesReq;
  221. #define sz_xRRGetScreenResourcesReq 8
  222. typedef struct {
  223. BYTE type;
  224. CARD8 pad;
  225. CARD16 sequenceNumber;
  226. CARD32 length;
  227. Time timestamp;
  228. Time configTimestamp;
  229. CARD16 nCrtcs;
  230. CARD16 nOutputs;
  231. CARD16 nModes;
  232. CARD16 nbytesNames;
  233. CARD32 pad1;
  234. CARD32 pad2;
  235. } xRRGetScreenResourcesReply;
  236. #define sz_xRRGetScreenResourcesReply 32
  237. typedef struct {
  238. CARD8 reqType;
  239. CARD8 randrReqType;
  240. CARD16 length;
  241. RROutput output;
  242. Time configTimestamp;
  243. } xRRGetOutputInfoReq;
  244. #define sz_xRRGetOutputInfoReq 12
  245. typedef struct {
  246. BYTE type;
  247. CARD8 status;
  248. CARD16 sequenceNumber;
  249. CARD32 length;
  250. Time timestamp;
  251. RRCrtc crtc;
  252. CARD32 mmWidth;
  253. CARD32 mmHeight;
  254. CARD8 connection;
  255. CARD8 subpixelOrder;
  256. CARD16 nCrtcs;
  257. CARD16 nModes;
  258. CARD16 nPreferred;
  259. CARD16 nClones;
  260. CARD16 nameLength;
  261. } xRRGetOutputInfoReply;
  262. #define sz_xRRGetOutputInfoReply 36
  263. typedef struct {
  264. CARD8 reqType;
  265. CARD8 randrReqType;
  266. CARD16 length;
  267. RROutput output;
  268. } xRRListOutputPropertiesReq;
  269. #define sz_xRRListOutputPropertiesReq 8
  270. typedef struct {
  271. BYTE type;
  272. CARD8 pad0;
  273. CARD16 sequenceNumber;
  274. CARD32 length;
  275. CARD16 nAtoms;
  276. CARD16 pad1;
  277. CARD32 pad2;
  278. CARD32 pad3;
  279. CARD32 pad4;
  280. CARD32 pad5;
  281. CARD32 pad6;
  282. } xRRListOutputPropertiesReply;
  283. #define sz_xRRListOutputPropertiesReply 32
  284. typedef struct {
  285. CARD8 reqType;
  286. CARD8 randrReqType;
  287. CARD16 length;
  288. RROutput output;
  289. Atom property;
  290. } xRRQueryOutputPropertyReq;
  291. #define sz_xRRQueryOutputPropertyReq 12
  292. typedef struct {
  293. BYTE type;
  294. BYTE pad0;
  295. CARD16 sequenceNumber;
  296. CARD32 length;
  297. BOOL pending;
  298. BOOL range;
  299. BOOL immutable;
  300. BYTE pad1;
  301. CARD32 pad2;
  302. CARD32 pad3;
  303. CARD32 pad4;
  304. CARD32 pad5;
  305. CARD32 pad6;
  306. } xRRQueryOutputPropertyReply;
  307. #define sz_xRRQueryOutputPropertyReply 32
  308. typedef struct {
  309. CARD8 reqType;
  310. CARD8 randrReqType;
  311. CARD16 length;
  312. RROutput output;
  313. Atom property;
  314. BOOL pending;
  315. BOOL range;
  316. CARD16 pad;
  317. } xRRConfigureOutputPropertyReq;
  318. #define sz_xRRConfigureOutputPropertyReq 16
  319. typedef struct {
  320. CARD8 reqType;
  321. CARD8 randrReqType;
  322. CARD16 length;
  323. RROutput output;
  324. Atom property;
  325. Atom type;
  326. CARD8 format;
  327. CARD8 mode;
  328. CARD16 pad;
  329. CARD32 nUnits;
  330. } xRRChangeOutputPropertyReq;
  331. #define sz_xRRChangeOutputPropertyReq 24
  332. typedef struct {
  333. CARD8 reqType;
  334. CARD8 randrReqType;
  335. CARD16 length;
  336. RROutput output;
  337. Atom property;
  338. } xRRDeleteOutputPropertyReq;
  339. #define sz_xRRDeleteOutputPropertyReq 12
  340. typedef struct {
  341. CARD8 reqType;
  342. CARD8 randrReqType;
  343. CARD16 length;
  344. RROutput output;
  345. Atom property;
  346. Atom type;
  347. CARD32 longOffset;
  348. CARD32 longLength;
  349. #ifdef __cplusplus
  350. BOOL _delete;
  351. #else
  352. BOOL delete;
  353. #endif
  354. BOOL pending;
  355. CARD16 pad1;
  356. } xRRGetOutputPropertyReq;
  357. #define sz_xRRGetOutputPropertyReq 28
  358. typedef struct {
  359. BYTE type;
  360. CARD8 format;
  361. CARD16 sequenceNumber;
  362. CARD32 length;
  363. Atom propertyType;
  364. CARD32 bytesAfter;
  365. CARD32 nItems;
  366. CARD32 pad1;
  367. CARD32 pad2;
  368. CARD32 pad3;
  369. } xRRGetOutputPropertyReply;
  370. #define sz_xRRGetOutputPropertyReply 32
  371. typedef struct {
  372. CARD8 reqType;
  373. CARD8 randrReqType;
  374. CARD16 length;
  375. Window window;
  376. xRRModeInfo modeInfo;
  377. } xRRCreateModeReq;
  378. #define sz_xRRCreateModeReq 40
  379. typedef struct {
  380. BYTE type;
  381. CARD8 pad0;
  382. CARD16 sequenceNumber;
  383. CARD32 length;
  384. RRMode mode;
  385. CARD32 pad1;
  386. CARD32 pad2;
  387. CARD32 pad3;
  388. CARD32 pad4;
  389. CARD32 pad5;
  390. } xRRCreateModeReply;
  391. #define sz_xRRCreateModeReply 32
  392. typedef struct {
  393. CARD8 reqType;
  394. CARD8 randrReqType;
  395. CARD16 length;
  396. RRMode mode;
  397. } xRRDestroyModeReq;
  398. #define sz_xRRDestroyModeReq 8
  399. typedef struct {
  400. CARD8 reqType;
  401. CARD8 randrReqType;
  402. CARD16 length;
  403. RROutput output;
  404. RRMode mode;
  405. } xRRAddOutputModeReq;
  406. #define sz_xRRAddOutputModeReq 12
  407. typedef struct {
  408. CARD8 reqType;
  409. CARD8 randrReqType;
  410. CARD16 length;
  411. RROutput output;
  412. RRMode mode;
  413. } xRRDeleteOutputModeReq;
  414. #define sz_xRRDeleteOutputModeReq 12
  415. typedef struct {
  416. CARD8 reqType;
  417. CARD8 randrReqType;
  418. CARD16 length;
  419. RRCrtc crtc;
  420. Time configTimestamp;
  421. } xRRGetCrtcInfoReq;
  422. #define sz_xRRGetCrtcInfoReq 12
  423. typedef struct {
  424. BYTE type;
  425. CARD8 status;
  426. CARD16 sequenceNumber;
  427. CARD32 length;
  428. Time timestamp;
  429. INT16 x;
  430. INT16 y;
  431. CARD16 width;
  432. CARD16 height;
  433. RRMode mode;
  434. Rotation rotation;
  435. Rotation rotations;
  436. CARD16 nOutput;
  437. CARD16 nPossibleOutput;
  438. } xRRGetCrtcInfoReply;
  439. #define sz_xRRGetCrtcInfoReply 32
  440. typedef struct {
  441. CARD8 reqType;
  442. CARD8 randrReqType;
  443. CARD16 length;
  444. RRCrtc crtc;
  445. Time timestamp;
  446. Time configTimestamp;
  447. INT16 x;
  448. INT16 y;
  449. RRMode mode;
  450. Rotation rotation;
  451. CARD16 pad;
  452. } xRRSetCrtcConfigReq;
  453. #define sz_xRRSetCrtcConfigReq 28
  454. typedef struct {
  455. BYTE type;
  456. CARD8 status;
  457. CARD16 sequenceNumber;
  458. CARD32 length;
  459. Time newTimestamp;
  460. CARD32 pad1;
  461. CARD32 pad2;
  462. CARD32 pad3;
  463. CARD32 pad4;
  464. CARD32 pad5;
  465. } xRRSetCrtcConfigReply;
  466. #define sz_xRRSetCrtcConfigReply 32
  467. typedef struct {
  468. CARD8 reqType;
  469. CARD8 randrReqType;
  470. CARD16 length;
  471. RRCrtc crtc;
  472. } xRRGetCrtcGammaSizeReq;
  473. #define sz_xRRGetCrtcGammaSizeReq 8
  474. typedef struct {
  475. BYTE type;
  476. CARD8 status;
  477. CARD16 sequenceNumber;
  478. CARD32 length;
  479. CARD16 size;
  480. CARD16 pad1;
  481. CARD32 pad2;
  482. CARD32 pad3;
  483. CARD32 pad4;
  484. CARD32 pad5;
  485. CARD32 pad6;
  486. } xRRGetCrtcGammaSizeReply;
  487. #define sz_xRRGetCrtcGammaSizeReply 32
  488. typedef struct {
  489. CARD8 reqType;
  490. CARD8 randrReqType;
  491. CARD16 length;
  492. RRCrtc crtc;
  493. } xRRGetCrtcGammaReq;
  494. #define sz_xRRGetCrtcGammaReq 8
  495. typedef struct {
  496. BYTE type;
  497. CARD8 status;
  498. CARD16 sequenceNumber;
  499. CARD32 length;
  500. CARD16 size;
  501. CARD16 pad1;
  502. CARD32 pad2;
  503. CARD32 pad3;
  504. CARD32 pad4;
  505. CARD32 pad5;
  506. CARD32 pad6;
  507. } xRRGetCrtcGammaReply;
  508. #define sz_xRRGetCrtcGammaReply 32
  509. typedef struct {
  510. CARD8 reqType;
  511. CARD8 randrReqType;
  512. CARD16 length;
  513. RRCrtc crtc;
  514. CARD16 size;
  515. CARD16 pad1;
  516. } xRRSetCrtcGammaReq;
  517. #define sz_xRRSetCrtcGammaReq 12
  518. /*
  519. * Additions for V1.3
  520. */
  521. typedef xRRGetScreenResourcesReq xRRGetScreenResourcesCurrentReq;
  522. #define sz_xRRGetScreenResourcesCurrentReq sz_xRRGetScreenResourcesReq
  523. typedef xRRGetScreenResourcesReply xRRGetScreenResourcesCurrentReply;
  524. #define sz_xRRGetScreenResourcesCurrentReply sz_xRRGetScreenResourcesReply
  525. typedef struct {
  526. CARD8 reqType;
  527. CARD8 randrReqType;
  528. CARD16 length;
  529. RRCrtc crtc;
  530. xRenderTransform transform;
  531. CARD16 nbytesFilter; /* number of bytes in filter name */
  532. CARD16 pad;
  533. } xRRSetCrtcTransformReq;
  534. #define sz_xRRSetCrtcTransformReq 48
  535. typedef struct {
  536. CARD8 reqType;
  537. CARD8 randrReqType;
  538. CARD16 length;
  539. RRCrtc crtc;
  540. } xRRGetCrtcTransformReq;
  541. #define sz_xRRGetCrtcTransformReq 8
  542. typedef struct {
  543. BYTE type;
  544. CARD8 status;
  545. CARD16 sequenceNumber;
  546. CARD32 length;
  547. xRenderTransform pendingTransform;
  548. BYTE hasTransforms;
  549. CARD8 pad0;
  550. CARD16 pad1;
  551. xRenderTransform currentTransform;
  552. CARD32 pad2;
  553. CARD16 pendingNbytesFilter; /* number of bytes in filter name */
  554. CARD16 pendingNparamsFilter; /* number of filter params */
  555. CARD16 currentNbytesFilter; /* number of bytes in filter name */
  556. CARD16 currentNparamsFilter; /* number of filter params */
  557. } xRRGetCrtcTransformReply;
  558. #define sz_xRRGetCrtcTransformReply 96
  559. typedef struct {
  560. CARD8 reqType;
  561. CARD8 randrReqType;
  562. CARD16 length;
  563. Window window;
  564. RROutput output;
  565. } xRRSetOutputPrimaryReq;
  566. #define sz_xRRSetOutputPrimaryReq 12
  567. typedef struct {
  568. CARD8 reqType;
  569. CARD8 randrReqType;
  570. CARD16 length;
  571. Window window;
  572. } xRRGetOutputPrimaryReq;
  573. #define sz_xRRGetOutputPrimaryReq 8
  574. typedef struct {
  575. BYTE type;
  576. CARD8 pad;
  577. CARD16 sequenceNumber;
  578. CARD32 length;
  579. RROutput output;
  580. CARD32 pad1;
  581. CARD32 pad2;
  582. CARD32 pad3;
  583. CARD32 pad4;
  584. CARD32 pad5;
  585. } xRRGetOutputPrimaryReply;
  586. #define sz_xRRGetOutputPrimaryReply 32
  587. /*
  588. * Additions for V1.4
  589. */
  590. typedef struct {
  591. CARD8 reqType;
  592. CARD8 randrReqType;
  593. CARD16 length;
  594. Window window;
  595. } xRRGetProvidersReq;
  596. #define sz_xRRGetProvidersReq 8
  597. typedef struct {
  598. BYTE type;
  599. CARD8 pad;
  600. CARD16 sequenceNumber;
  601. CARD32 length;
  602. Time timestamp;
  603. CARD16 nProviders;
  604. CARD16 pad1;
  605. CARD32 pad2;
  606. CARD32 pad3;
  607. CARD32 pad4;
  608. CARD32 pad5;
  609. } xRRGetProvidersReply;
  610. #define sz_xRRGetProvidersReply 32
  611. typedef struct {
  612. CARD8 reqType;
  613. CARD8 randrReqType;
  614. CARD16 length;
  615. RRProvider provider;
  616. Time configTimestamp;
  617. } xRRGetProviderInfoReq;
  618. #define sz_xRRGetProviderInfoReq 12
  619. typedef struct {
  620. BYTE type;
  621. CARD8 status;
  622. CARD16 sequenceNumber;
  623. CARD32 length;
  624. Time timestamp;
  625. CARD32 capabilities;
  626. CARD16 nCrtcs;
  627. CARD16 nOutputs;
  628. CARD16 nAssociatedProviders;
  629. CARD16 nameLength;
  630. CARD32 pad1;
  631. CARD32 pad2;
  632. } xRRGetProviderInfoReply;
  633. #define sz_xRRGetProviderInfoReply 32
  634. typedef struct {
  635. CARD8 reqType;
  636. CARD8 randrReqType;
  637. CARD16 length;
  638. RRProvider provider;
  639. RRProvider source_provider;
  640. Time configTimestamp;
  641. } xRRSetProviderOutputSourceReq;
  642. #define sz_xRRSetProviderOutputSourceReq 16
  643. typedef struct {
  644. CARD8 reqType;
  645. CARD8 randrReqType;
  646. CARD16 length;
  647. RRProvider provider;
  648. RRProvider sink_provider;
  649. Time configTimestamp;
  650. } xRRSetProviderOffloadSinkReq;
  651. #define sz_xRRSetProviderOffloadSinkReq 16
  652. typedef struct {
  653. CARD8 reqType;
  654. CARD8 randrReqType;
  655. CARD16 length;
  656. RRProvider provider;
  657. } xRRListProviderPropertiesReq;
  658. #define sz_xRRListProviderPropertiesReq 8
  659. typedef struct {
  660. BYTE type;
  661. CARD8 pad0;
  662. CARD16 sequenceNumber;
  663. CARD32 length;
  664. CARD16 nAtoms;
  665. CARD16 pad1;
  666. CARD32 pad2;
  667. CARD32 pad3;
  668. CARD32 pad4;
  669. CARD32 pad5;
  670. CARD32 pad6;
  671. } xRRListProviderPropertiesReply;
  672. #define sz_xRRListProviderPropertiesReply 32
  673. typedef struct {
  674. CARD8 reqType;
  675. CARD8 randrReqType;
  676. CARD16 length;
  677. RRProvider provider;
  678. Atom property;
  679. } xRRQueryProviderPropertyReq;
  680. #define sz_xRRQueryProviderPropertyReq 12
  681. typedef struct {
  682. BYTE type;
  683. BYTE pad0;
  684. CARD16 sequenceNumber;
  685. CARD32 length;
  686. BOOL pending;
  687. BOOL range;
  688. BOOL immutable;
  689. BYTE pad1;
  690. CARD32 pad2;
  691. CARD32 pad3;
  692. CARD32 pad4;
  693. CARD32 pad5;
  694. CARD32 pad6;
  695. } xRRQueryProviderPropertyReply;
  696. #define sz_xRRQueryProviderPropertyReply 32
  697. typedef struct {
  698. CARD8 reqType;
  699. CARD8 randrReqType;
  700. CARD16 length;
  701. RRProvider provider;
  702. Atom property;
  703. BOOL pending;
  704. BOOL range;
  705. CARD16 pad;
  706. } xRRConfigureProviderPropertyReq;
  707. #define sz_xRRConfigureProviderPropertyReq 16
  708. typedef struct {
  709. CARD8 reqType;
  710. CARD8 randrReqType;
  711. CARD16 length;
  712. RRProvider provider;
  713. Atom property;
  714. Atom type;
  715. CARD8 format;
  716. CARD8 mode;
  717. CARD16 pad;
  718. CARD32 nUnits;
  719. } xRRChangeProviderPropertyReq;
  720. #define sz_xRRChangeProviderPropertyReq 24
  721. typedef struct {
  722. CARD8 reqType;
  723. CARD8 randrReqType;
  724. CARD16 length;
  725. RRProvider provider;
  726. Atom property;
  727. } xRRDeleteProviderPropertyReq;
  728. #define sz_xRRDeleteProviderPropertyReq 12
  729. typedef struct {
  730. CARD8 reqType;
  731. CARD8 randrReqType;
  732. CARD16 length;
  733. RRProvider provider;
  734. Atom property;
  735. Atom type;
  736. CARD32 longOffset;
  737. CARD32 longLength;
  738. #ifdef __cplusplus
  739. BOOL _delete;
  740. #else
  741. BOOL delete;
  742. #endif
  743. BOOL pending;
  744. CARD16 pad1;
  745. } xRRGetProviderPropertyReq;
  746. #define sz_xRRGetProviderPropertyReq 28
  747. typedef struct {
  748. BYTE type;
  749. CARD8 format;
  750. CARD16 sequenceNumber;
  751. CARD32 length;
  752. Atom propertyType;
  753. CARD32 bytesAfter;
  754. CARD32 nItems;
  755. CARD32 pad1;
  756. CARD32 pad2;
  757. CARD32 pad3;
  758. } xRRGetProviderPropertyReply;
  759. #define sz_xRRGetProviderPropertyReply 32
  760. /*
  761. * Additions for V1.6
  762. */
  763. typedef struct {
  764. CARD8 reqType;
  765. CARD8 randrReqType;
  766. CARD16 length;
  767. Window window;
  768. RRLease lid;
  769. CARD16 nCrtcs;
  770. CARD16 nOutputs;
  771. } xRRCreateLeaseReq;
  772. #define sz_xRRCreateLeaseReq 16
  773. typedef struct {
  774. BYTE type;
  775. CARD8 nfd;
  776. CARD16 sequenceNumber;
  777. CARD32 length;
  778. CARD32 pad2;
  779. CARD32 pad3;
  780. CARD32 pad4;
  781. CARD32 pad5;
  782. CARD32 pad6;
  783. CARD32 pad7;
  784. } xRRCreateLeaseReply;
  785. #define sz_xRRCreateLeaseReply 32
  786. typedef struct {
  787. CARD8 reqType;
  788. CARD8 randrReqType;
  789. CARD16 length;
  790. RRLease lid;
  791. BYTE terminate;
  792. CARD8 pad1;
  793. CARD16 pad2;
  794. } xRRFreeLeaseReq;
  795. #define sz_xRRFreeLeaseReq 12
  796. /*
  797. * event
  798. */
  799. typedef struct {
  800. CARD8 type; /* always evBase + ScreenChangeNotify */
  801. CARD8 rotation; /* new rotation */
  802. CARD16 sequenceNumber;
  803. Time timestamp; /* time screen was changed */
  804. Time configTimestamp; /* time config data was changed */
  805. Window root; /* root window */
  806. Window window; /* window requesting notification */
  807. SizeID sizeID; /* new size ID */
  808. CARD16 subpixelOrder; /* subpixel order */
  809. CARD16 widthInPixels; /* new size */
  810. CARD16 heightInPixels;
  811. CARD16 widthInMillimeters;
  812. CARD16 heightInMillimeters;
  813. } xRRScreenChangeNotifyEvent;
  814. #define sz_xRRScreenChangeNotifyEvent 32
  815. typedef struct {
  816. CARD8 type; /* always evBase + RRNotify */
  817. CARD8 subCode; /* RRNotify_CrtcChange */
  818. CARD16 sequenceNumber;
  819. Time timestamp; /* time crtc was changed */
  820. Window window; /* window requesting notification */
  821. RRCrtc crtc; /* affected CRTC */
  822. RRMode mode; /* current mode */
  823. CARD16 rotation; /* rotation and reflection */
  824. CARD16 pad1; /* unused */
  825. INT16 x; /* new location */
  826. INT16 y;
  827. CARD16 width; /* new size */
  828. CARD16 height;
  829. } xRRCrtcChangeNotifyEvent;
  830. #define sz_xRRCrtcChangeNotifyEvent 32
  831. typedef struct {
  832. CARD8 type; /* always evBase + RRNotify */
  833. CARD8 subCode; /* RRNotify_OutputChange */
  834. CARD16 sequenceNumber;
  835. Time timestamp; /* time output was changed */
  836. Time configTimestamp; /* time config was changed */
  837. Window window; /* window requesting notification */
  838. RROutput output; /* affected output */
  839. RRCrtc crtc; /* current crtc */
  840. RRMode mode; /* current mode */
  841. CARD16 rotation; /* rotation and reflection */
  842. CARD8 connection; /* connection status */
  843. CARD8 subpixelOrder; /* subpixel order */
  844. } xRROutputChangeNotifyEvent;
  845. #define sz_xRROutputChangeNotifyEvent 32
  846. typedef struct {
  847. CARD8 type; /* always evBase + RRNotify */
  848. CARD8 subCode; /* RRNotify_OutputProperty */
  849. CARD16 sequenceNumber;
  850. Window window; /* window requesting notification */
  851. RROutput output; /* affected output */
  852. Atom atom; /* property name */
  853. Time timestamp; /* time crtc was changed */
  854. CARD8 state; /* NewValue or Deleted */
  855. CARD8 pad1;
  856. CARD16 pad2;
  857. CARD32 pad3;
  858. CARD32 pad4;
  859. } xRROutputPropertyNotifyEvent;
  860. #define sz_xRROutputPropertyNotifyEvent 32
  861. typedef struct {
  862. CARD8 type; /* always evBase + RRNotify */
  863. CARD8 subCode; /* RRNotify_ProviderChange */
  864. CARD16 sequenceNumber;
  865. Time timestamp; /* time provider was changed */
  866. Window window; /* window requesting notification */
  867. RRProvider provider; /* affected provider */
  868. CARD32 pad1;
  869. CARD32 pad2;
  870. CARD32 pad3;
  871. CARD32 pad4;
  872. } xRRProviderChangeNotifyEvent;
  873. #define sz_xRRProviderChangeNotifyEvent 32
  874. typedef struct {
  875. CARD8 type; /* always evBase + RRNotify */
  876. CARD8 subCode; /* RRNotify_ProviderProperty */
  877. CARD16 sequenceNumber;
  878. Window window; /* window requesting notification */
  879. RRProvider provider; /* affected provider */
  880. Atom atom; /* property name */
  881. Time timestamp; /* time provider was changed */
  882. CARD8 state; /* NewValue or Deleted */
  883. CARD8 pad1;
  884. CARD16 pad2;
  885. CARD32 pad3;
  886. CARD32 pad4;
  887. } xRRProviderPropertyNotifyEvent;
  888. #define sz_xRRProviderPropertyNotifyEvent 32
  889. typedef struct {
  890. CARD8 type; /* always evBase + RRNotify */
  891. CARD8 subCode; /* RRNotify_ResourceChange */
  892. CARD16 sequenceNumber;
  893. Time timestamp; /* time resource was changed */
  894. Window window; /* window requesting notification */
  895. CARD32 pad1;
  896. CARD32 pad2;
  897. CARD32 pad3;
  898. CARD32 pad4;
  899. CARD32 pad5;
  900. } xRRResourceChangeNotifyEvent;
  901. #define sz_xRRResourceChangeNotifyEvent 32
  902. typedef struct {
  903. CARD8 type; /* always evBase + RRNotify */
  904. CARD8 subCode; /* RRNotify_Lease */
  905. CARD16 sequenceNumber;
  906. Time timestamp; /* time resource was changed */
  907. Window window; /* window requesting notification */
  908. RRLease lease;
  909. CARD8 created; /* created/deleted */
  910. CARD8 pad0;
  911. CARD16 pad1;
  912. CARD32 pad2;
  913. CARD32 pad3;
  914. CARD32 pad4;
  915. } xRRLeaseNotifyEvent;
  916. #define sz_xRRLeaseNotifyEvent 32
  917. typedef struct {
  918. CARD8 reqType;
  919. CARD8 randrReqType;
  920. CARD16 length;
  921. RRCrtc crtc;
  922. } xRRGetPanningReq;
  923. #define sz_xRRGetPanningReq 8
  924. typedef struct {
  925. BYTE type;
  926. CARD8 status;
  927. CARD16 sequenceNumber;
  928. CARD32 length;
  929. Time timestamp;
  930. CARD16 left;
  931. CARD16 top;
  932. CARD16 width;
  933. CARD16 height;
  934. CARD16 track_left;
  935. CARD16 track_top;
  936. CARD16 track_width;
  937. CARD16 track_height;
  938. INT16 border_left;
  939. INT16 border_top;
  940. INT16 border_right;
  941. INT16 border_bottom;
  942. } xRRGetPanningReply;
  943. #define sz_xRRGetPanningReply 36
  944. typedef struct {
  945. CARD8 reqType;
  946. CARD8 randrReqType;
  947. CARD16 length;
  948. RRCrtc crtc;
  949. Time timestamp;
  950. CARD16 left;
  951. CARD16 top;
  952. CARD16 width;
  953. CARD16 height;
  954. CARD16 track_left;
  955. CARD16 track_top;
  956. CARD16 track_width;
  957. CARD16 track_height;
  958. INT16 border_left;
  959. INT16 border_top;
  960. INT16 border_right;
  961. INT16 border_bottom;
  962. } xRRSetPanningReq;
  963. #define sz_xRRSetPanningReq 36
  964. typedef struct {
  965. BYTE type;
  966. CARD8 status;
  967. CARD16 sequenceNumber;
  968. CARD32 length;
  969. Time newTimestamp;
  970. CARD32 pad1;
  971. CARD32 pad2;
  972. CARD32 pad3;
  973. CARD32 pad4;
  974. CARD32 pad5;
  975. } xRRSetPanningReply;
  976. #define sz_xRRSetPanningReply 32
  977. typedef struct {
  978. Atom name;
  979. BOOL primary;
  980. BOOL automatic;
  981. CARD16 noutput;
  982. INT16 x;
  983. INT16 y;
  984. CARD16 width;
  985. CARD16 height;
  986. CARD32 widthInMillimeters;
  987. CARD32 heightInMillimeters;
  988. } xRRMonitorInfo;
  989. #define sz_xRRMonitorInfo 24
  990. typedef struct {
  991. CARD8 reqType;
  992. CARD8 randrReqType;
  993. CARD16 length;
  994. Window window;
  995. BOOL get_active;
  996. CARD8 pad;
  997. CARD16 pad2;
  998. } xRRGetMonitorsReq;
  999. #define sz_xRRGetMonitorsReq 12
  1000. typedef struct {
  1001. BYTE type;
  1002. CARD8 status;
  1003. CARD16 sequenceNumber;
  1004. CARD32 length;
  1005. Time timestamp;
  1006. CARD32 nmonitors;
  1007. CARD32 noutputs;
  1008. CARD32 pad1;
  1009. CARD32 pad2;
  1010. CARD32 pad3;
  1011. } xRRGetMonitorsReply;
  1012. #define sz_xRRGetMonitorsReply 32
  1013. typedef struct {
  1014. CARD8 reqType;
  1015. CARD8 randrReqType;
  1016. CARD16 length;
  1017. Window window;
  1018. xRRMonitorInfo monitor;
  1019. } xRRSetMonitorReq;
  1020. #define sz_xRRSetMonitorReq 32
  1021. typedef struct {
  1022. CARD8 reqType;
  1023. CARD8 randrReqType;
  1024. CARD16 length;
  1025. Window window;
  1026. Atom name;
  1027. } xRRDeleteMonitorReq;
  1028. #define sz_xRRDeleteMonitorReq 12
  1029. #undef RRLease
  1030. #undef RRModeFlags
  1031. #undef RRCrtc
  1032. #undef RRMode
  1033. #undef RROutput
  1034. #undef RRMode
  1035. #undef RRCrtc
  1036. #undef RRProvider
  1037. #undef Drawable
  1038. #undef Window
  1039. #undef Font
  1040. #undef Pixmap
  1041. #undef Cursor
  1042. #undef Colormap
  1043. #undef GContext
  1044. #undef Atom
  1045. #undef Time
  1046. #undef KeyCode
  1047. #undef KeySym
  1048. #undef Rotation
  1049. #undef SizeID
  1050. #undef SubpixelOrder
  1051. #endif /* _XRANDRP_H_ */