renderproto.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. /*
  2. * Copyright © 2000 SuSE, Inc.
  3. *
  4. * Permission to use, copy, modify, distribute, and sell this software and its
  5. * documentation for any purpose is hereby granted without fee, provided that
  6. * the above copyright notice appear in all copies and that both that
  7. * copyright notice and this permission notice appear in supporting
  8. * documentation, and that the name of SuSE not be used in advertising or
  9. * publicity pertaining to distribution of the software without specific,
  10. * written prior permission. SuSE makes no representations about the
  11. * suitability of this software for any purpose. It is provided "as is"
  12. * without express or implied warranty.
  13. *
  14. * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  15. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
  16. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  17. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  18. * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  19. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  20. *
  21. * Author: Keith Packard, SuSE, Inc.
  22. */
  23. #ifndef _XRENDERP_H_
  24. #define _XRENDERP_H_
  25. #include <X11/Xmd.h>
  26. #include <X11/extensions/render.h>
  27. #define Window CARD32
  28. #define Drawable CARD32
  29. #define Font CARD32
  30. #define Pixmap CARD32
  31. #define Cursor CARD32
  32. #define Colormap CARD32
  33. #define GContext CARD32
  34. #define Atom CARD32
  35. #define VisualID CARD32
  36. #define Time CARD32
  37. #define KeyCode CARD8
  38. #define KeySym CARD32
  39. #define Picture CARD32
  40. #define PictFormat CARD32
  41. #define Fixed INT32
  42. #define Glyphset CARD32
  43. /*
  44. * data structures
  45. */
  46. typedef struct {
  47. CARD16 red;
  48. CARD16 redMask;
  49. CARD16 green;
  50. CARD16 greenMask;
  51. CARD16 blue;
  52. CARD16 blueMask;
  53. CARD16 alpha;
  54. CARD16 alphaMask;
  55. } xDirectFormat;
  56. #define sz_xDirectFormat 16
  57. typedef struct {
  58. PictFormat id;
  59. CARD8 type;
  60. CARD8 depth;
  61. CARD16 pad1;
  62. xDirectFormat direct;
  63. Colormap colormap;
  64. } xPictFormInfo;
  65. #define sz_xPictFormInfo 28
  66. typedef struct {
  67. VisualID visual;
  68. PictFormat format;
  69. } xPictVisual;
  70. #define sz_xPictVisual 8
  71. typedef struct {
  72. CARD8 depth;
  73. CARD8 pad1;
  74. CARD16 nPictVisuals;
  75. CARD32 pad2;
  76. } xPictDepth;
  77. #define sz_xPictDepth 8
  78. typedef struct {
  79. CARD32 nDepth;
  80. PictFormat fallback;
  81. } xPictScreen;
  82. #define sz_xPictScreen 8
  83. typedef struct {
  84. CARD32 pixel;
  85. CARD16 red;
  86. CARD16 green;
  87. CARD16 blue;
  88. CARD16 alpha;
  89. } xIndexValue;
  90. #define sz_xIndexValue 12
  91. typedef struct {
  92. CARD16 red;
  93. CARD16 green;
  94. CARD16 blue;
  95. CARD16 alpha;
  96. } xRenderColor;
  97. #define sz_xRenderColor 8
  98. typedef struct {
  99. Fixed x;
  100. Fixed y;
  101. } xPointFixed;
  102. #define sz_xPointFixed 8
  103. typedef struct {
  104. xPointFixed p1;
  105. xPointFixed p2;
  106. } xLineFixed;
  107. #define sz_xLineFixed 16
  108. typedef struct {
  109. xPointFixed p1, p2, p3;
  110. } xTriangle;
  111. #define sz_xTriangle 24
  112. typedef struct {
  113. Fixed top;
  114. Fixed bottom;
  115. xLineFixed left;
  116. xLineFixed right;
  117. } xTrapezoid;
  118. #define sz_xTrapezoid 40
  119. typedef struct {
  120. CARD16 width;
  121. CARD16 height;
  122. INT16 x;
  123. INT16 y;
  124. INT16 xOff;
  125. INT16 yOff;
  126. } xGlyphInfo;
  127. #define sz_xGlyphInfo 12
  128. typedef struct {
  129. CARD8 len;
  130. CARD8 pad1;
  131. CARD16 pad2;
  132. INT16 deltax;
  133. INT16 deltay;
  134. } xGlyphElt;
  135. #define sz_xGlyphElt 8
  136. typedef struct {
  137. Fixed l, r, y;
  138. } xSpanFix;
  139. #define sz_xSpanFix 12
  140. typedef struct {
  141. xSpanFix top, bot;
  142. } xTrap;
  143. #define sz_xTrap 24
  144. /*
  145. * requests and replies
  146. */
  147. typedef struct {
  148. CARD8 reqType;
  149. CARD8 renderReqType;
  150. CARD16 length;
  151. CARD32 majorVersion;
  152. CARD32 minorVersion;
  153. } xRenderQueryVersionReq;
  154. #define sz_xRenderQueryVersionReq 12
  155. typedef struct {
  156. BYTE type; /* X_Reply */
  157. BYTE pad1;
  158. CARD16 sequenceNumber;
  159. CARD32 length;
  160. CARD32 majorVersion;
  161. CARD32 minorVersion;
  162. CARD32 pad2;
  163. CARD32 pad3;
  164. CARD32 pad4;
  165. CARD32 pad5;
  166. } xRenderQueryVersionReply;
  167. #define sz_xRenderQueryVersionReply 32
  168. typedef struct {
  169. CARD8 reqType;
  170. CARD8 renderReqType;
  171. CARD16 length;
  172. } xRenderQueryPictFormatsReq;
  173. #define sz_xRenderQueryPictFormatsReq 4
  174. typedef struct {
  175. BYTE type; /* X_Reply */
  176. BYTE pad1;
  177. CARD16 sequenceNumber;
  178. CARD32 length;
  179. CARD32 numFormats;
  180. CARD32 numScreens;
  181. CARD32 numDepths;
  182. CARD32 numVisuals;
  183. CARD32 numSubpixel; /* Version 0.6 */
  184. CARD32 pad5;
  185. } xRenderQueryPictFormatsReply;
  186. #define sz_xRenderQueryPictFormatsReply 32
  187. typedef struct {
  188. CARD8 reqType;
  189. CARD8 renderReqType;
  190. CARD16 length;
  191. PictFormat format;
  192. } xRenderQueryPictIndexValuesReq;
  193. #define sz_xRenderQueryPictIndexValuesReq 8
  194. typedef struct {
  195. BYTE type; /* X_Reply */
  196. BYTE pad1;
  197. CARD16 sequenceNumber;
  198. CARD32 length;
  199. CARD32 numIndexValues;
  200. CARD32 pad2;
  201. CARD32 pad3;
  202. CARD32 pad4;
  203. CARD32 pad5;
  204. CARD32 pad6;
  205. } xRenderQueryPictIndexValuesReply;
  206. #define sz_xRenderQueryPictIndexValuesReply 32
  207. typedef struct {
  208. CARD8 reqType;
  209. CARD8 renderReqType;
  210. CARD16 length;
  211. Picture pid;
  212. Drawable drawable;
  213. PictFormat format;
  214. CARD32 mask;
  215. } xRenderCreatePictureReq;
  216. #define sz_xRenderCreatePictureReq 20
  217. typedef struct {
  218. CARD8 reqType;
  219. CARD8 renderReqType;
  220. CARD16 length;
  221. Picture picture;
  222. CARD32 mask;
  223. } xRenderChangePictureReq;
  224. #define sz_xRenderChangePictureReq 12
  225. typedef struct {
  226. CARD8 reqType;
  227. CARD8 renderReqType;
  228. CARD16 length;
  229. Picture picture;
  230. INT16 xOrigin;
  231. INT16 yOrigin;
  232. } xRenderSetPictureClipRectanglesReq;
  233. #define sz_xRenderSetPictureClipRectanglesReq 12
  234. typedef struct {
  235. CARD8 reqType;
  236. CARD8 renderReqType;
  237. CARD16 length;
  238. Picture picture;
  239. } xRenderFreePictureReq;
  240. #define sz_xRenderFreePictureReq 8
  241. typedef struct {
  242. CARD8 reqType;
  243. CARD8 renderReqType;
  244. CARD16 length;
  245. CARD8 op;
  246. CARD8 pad1;
  247. CARD16 pad2;
  248. Picture src;
  249. Picture mask;
  250. Picture dst;
  251. INT16 xSrc;
  252. INT16 ySrc;
  253. INT16 xMask;
  254. INT16 yMask;
  255. INT16 xDst;
  256. INT16 yDst;
  257. CARD16 width;
  258. CARD16 height;
  259. } xRenderCompositeReq;
  260. #define sz_xRenderCompositeReq 36
  261. typedef struct {
  262. CARD8 reqType;
  263. CARD8 renderReqType;
  264. CARD16 length;
  265. Picture src;
  266. Picture dst;
  267. CARD32 colorScale;
  268. CARD32 alphaScale;
  269. INT16 xSrc;
  270. INT16 ySrc;
  271. INT16 xDst;
  272. INT16 yDst;
  273. CARD16 width;
  274. CARD16 height;
  275. } xRenderScaleReq;
  276. #define sz_xRenderScaleReq 32
  277. typedef struct {
  278. CARD8 reqType;
  279. CARD8 renderReqType;
  280. CARD16 length;
  281. CARD8 op;
  282. CARD8 pad1;
  283. CARD16 pad2;
  284. Picture src;
  285. Picture dst;
  286. PictFormat maskFormat;
  287. INT16 xSrc;
  288. INT16 ySrc;
  289. } xRenderTrapezoidsReq;
  290. #define sz_xRenderTrapezoidsReq 24
  291. typedef struct {
  292. CARD8 reqType;
  293. CARD8 renderReqType;
  294. CARD16 length;
  295. CARD8 op;
  296. CARD8 pad1;
  297. CARD16 pad2;
  298. Picture src;
  299. Picture dst;
  300. PictFormat maskFormat;
  301. INT16 xSrc;
  302. INT16 ySrc;
  303. } xRenderTrianglesReq;
  304. #define sz_xRenderTrianglesReq 24
  305. typedef struct {
  306. CARD8 reqType;
  307. CARD8 renderReqType;
  308. CARD16 length;
  309. CARD8 op;
  310. CARD8 pad1;
  311. CARD16 pad2;
  312. Picture src;
  313. Picture dst;
  314. PictFormat maskFormat;
  315. INT16 xSrc;
  316. INT16 ySrc;
  317. } xRenderTriStripReq;
  318. #define sz_xRenderTriStripReq 24
  319. typedef struct {
  320. CARD8 reqType;
  321. CARD8 renderReqType;
  322. CARD16 length;
  323. CARD8 op;
  324. CARD8 pad1;
  325. CARD16 pad2;
  326. Picture src;
  327. Picture dst;
  328. PictFormat maskFormat;
  329. INT16 xSrc;
  330. INT16 ySrc;
  331. } xRenderTriFanReq;
  332. #define sz_xRenderTriFanReq 24
  333. typedef struct {
  334. CARD8 reqType;
  335. CARD8 renderReqType;
  336. CARD16 length;
  337. Glyphset gsid;
  338. PictFormat format;
  339. } xRenderCreateGlyphSetReq;
  340. #define sz_xRenderCreateGlyphSetReq 12
  341. typedef struct {
  342. CARD8 reqType;
  343. CARD8 renderReqType;
  344. CARD16 length;
  345. Glyphset gsid;
  346. Glyphset existing;
  347. } xRenderReferenceGlyphSetReq;
  348. #define sz_xRenderReferenceGlyphSetReq 24
  349. typedef struct {
  350. CARD8 reqType;
  351. CARD8 renderReqType;
  352. CARD16 length;
  353. Glyphset glyphset;
  354. } xRenderFreeGlyphSetReq;
  355. #define sz_xRenderFreeGlyphSetReq 8
  356. typedef struct {
  357. CARD8 reqType;
  358. CARD8 renderReqType;
  359. CARD16 length;
  360. Glyphset glyphset;
  361. CARD32 nglyphs;
  362. } xRenderAddGlyphsReq;
  363. #define sz_xRenderAddGlyphsReq 12
  364. typedef struct {
  365. CARD8 reqType;
  366. CARD8 renderReqType;
  367. CARD16 length;
  368. Glyphset glyphset;
  369. } xRenderFreeGlyphsReq;
  370. #define sz_xRenderFreeGlyphsReq 8
  371. typedef struct {
  372. CARD8 reqType;
  373. CARD8 renderReqType;
  374. CARD16 length;
  375. CARD8 op;
  376. CARD8 pad1;
  377. CARD16 pad2;
  378. Picture src;
  379. Picture dst;
  380. PictFormat maskFormat;
  381. Glyphset glyphset;
  382. INT16 xSrc;
  383. INT16 ySrc;
  384. } xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
  385. xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;
  386. #define sz_xRenderCompositeGlyphs8Req 28
  387. #define sz_xRenderCompositeGlyphs16Req 28
  388. #define sz_xRenderCompositeGlyphs32Req 28
  389. /* 0.1 and higher */
  390. typedef struct {
  391. CARD8 reqType;
  392. CARD8 renderReqType;
  393. CARD16 length;
  394. CARD8 op;
  395. CARD8 pad1;
  396. CARD16 pad2;
  397. Picture dst;
  398. xRenderColor color;
  399. } xRenderFillRectanglesReq;
  400. #define sz_xRenderFillRectanglesReq 20
  401. /* 0.5 and higher */
  402. typedef struct {
  403. CARD8 reqType;
  404. CARD8 renderReqType;
  405. CARD16 length;
  406. Cursor cid;
  407. Picture src;
  408. CARD16 x;
  409. CARD16 y;
  410. } xRenderCreateCursorReq;
  411. #define sz_xRenderCreateCursorReq 16
  412. /* 0.6 and higher */
  413. /*
  414. * This can't use an array because 32-bit values may be in bitfields
  415. */
  416. typedef struct {
  417. Fixed matrix11;
  418. Fixed matrix12;
  419. Fixed matrix13;
  420. Fixed matrix21;
  421. Fixed matrix22;
  422. Fixed matrix23;
  423. Fixed matrix31;
  424. Fixed matrix32;
  425. Fixed matrix33;
  426. } xRenderTransform;
  427. #define sz_xRenderTransform 36
  428. typedef struct {
  429. CARD8 reqType;
  430. CARD8 renderReqType;
  431. CARD16 length;
  432. Picture picture;
  433. xRenderTransform transform;
  434. } xRenderSetPictureTransformReq;
  435. #define sz_xRenderSetPictureTransformReq 44
  436. typedef struct {
  437. CARD8 reqType;
  438. CARD8 renderReqType;
  439. CARD16 length;
  440. Drawable drawable;
  441. } xRenderQueryFiltersReq;
  442. #define sz_xRenderQueryFiltersReq 8
  443. typedef struct {
  444. BYTE type; /* X_Reply */
  445. BYTE pad1;
  446. CARD16 sequenceNumber;
  447. CARD32 length;
  448. CARD32 numAliases; /* LISTofCARD16 */
  449. CARD32 numFilters; /* LISTofSTRING8 */
  450. CARD32 pad2;
  451. CARD32 pad3;
  452. CARD32 pad4;
  453. CARD32 pad5;
  454. } xRenderQueryFiltersReply;
  455. #define sz_xRenderQueryFiltersReply 32
  456. typedef struct {
  457. CARD8 reqType;
  458. CARD8 renderReqType;
  459. CARD16 length;
  460. Picture picture;
  461. CARD16 nbytes; /* number of bytes in name */
  462. CARD16 pad;
  463. } xRenderSetPictureFilterReq;
  464. #define sz_xRenderSetPictureFilterReq 12
  465. /* 0.8 and higher */
  466. typedef struct {
  467. Cursor cursor;
  468. CARD32 delay;
  469. } xAnimCursorElt;
  470. #define sz_xAnimCursorElt 8
  471. typedef struct {
  472. CARD8 reqType;
  473. CARD8 renderReqType;
  474. CARD16 length;
  475. Cursor cid;
  476. } xRenderCreateAnimCursorReq;
  477. #define sz_xRenderCreateAnimCursorReq 8
  478. /* 0.9 and higher */
  479. typedef struct {
  480. CARD8 reqType;
  481. CARD8 renderReqType;
  482. CARD16 length;
  483. Picture picture;
  484. INT16 xOff;
  485. INT16 yOff;
  486. } xRenderAddTrapsReq;
  487. #define sz_xRenderAddTrapsReq 12
  488. /* 0.10 and higher */
  489. typedef struct {
  490. CARD8 reqType;
  491. CARD8 renderReqType;
  492. CARD16 length;
  493. Picture pid;
  494. xRenderColor color;
  495. } xRenderCreateSolidFillReq;
  496. #define sz_xRenderCreateSolidFillReq 16
  497. typedef struct {
  498. CARD8 reqType;
  499. CARD8 renderReqType;
  500. CARD16 length;
  501. Picture pid;
  502. xPointFixed p1;
  503. xPointFixed p2;
  504. CARD32 nStops;
  505. } xRenderCreateLinearGradientReq;
  506. #define sz_xRenderCreateLinearGradientReq 28
  507. typedef struct {
  508. CARD8 reqType;
  509. CARD8 renderReqType;
  510. CARD16 length;
  511. Picture pid;
  512. xPointFixed inner;
  513. xPointFixed outer;
  514. Fixed inner_radius;
  515. Fixed outer_radius;
  516. CARD32 nStops;
  517. } xRenderCreateRadialGradientReq;
  518. #define sz_xRenderCreateRadialGradientReq 36
  519. typedef struct {
  520. CARD8 reqType;
  521. CARD8 renderReqType;
  522. CARD16 length;
  523. Picture pid;
  524. xPointFixed center;
  525. Fixed angle; /* in degrees */
  526. CARD32 nStops;
  527. } xRenderCreateConicalGradientReq;
  528. #define sz_xRenderCreateConicalGradientReq 24
  529. #undef Window
  530. #undef Drawable
  531. #undef Font
  532. #undef Pixmap
  533. #undef Cursor
  534. #undef Colormap
  535. #undef GContext
  536. #undef Atom
  537. #undef VisualID
  538. #undef Time
  539. #undef KeyCode
  540. #undef KeySym
  541. #undef Picture
  542. #undef PictFormat
  543. #undef Fixed
  544. #undef Glyphset
  545. #endif /* _XRENDERP_H_ */