Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © 2008 Red Hat, Inc.
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Soft-
  6.  * ware"), to deal in the Software without restriction, including without
  7.  * limitation the rights to use, copy, modify, merge, publish, distribute,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, provided that the above copyright
  10.  * notice(s) and this permission notice appear in all copies of the Soft-
  11.  * ware and that both the above copyright notice(s) and this permission
  12.  * notice appear in supporting documentation.
  13.  *
  14.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  15.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
  16.  * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
  17.  * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
  18.  * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
  19.  * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  20.  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  21.  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
  22.  * MANCE OF THIS SOFTWARE.
  23.  *
  24.  * Except as contained in this notice, the name of a copyright holder shall
  25.  * not be used in advertising or otherwise to promote the sale, use or
  26.  * other dealings in this Software without prior written authorization of
  27.  * the copyright holder.
  28.  *
  29.  * Authors:
  30.  *   Kristian Høgsberg (krh@redhat.com)
  31.  */
  32.  
  33. #ifndef _DRI2_PROTO_H_
  34. #define _DRI2_PROTO_H_
  35.  
  36. #define DRI2_NAME                       "DRI2"
  37. #define DRI2_MAJOR                      1
  38. #define DRI2_MINOR                      2
  39.  
  40. #define DRI2NumberErrors                0
  41. #define DRI2NumberEvents                2
  42. #define DRI2NumberRequests              13
  43.  
  44. #define X_DRI2QueryVersion              0
  45. #define X_DRI2Connect                   1
  46. #define X_DRI2Authenticate              2
  47. #define X_DRI2CreateDrawable            3
  48. #define X_DRI2DestroyDrawable           4
  49. #define X_DRI2GetBuffers                5
  50. #define X_DRI2CopyRegion                6
  51. #define X_DRI2GetBuffersWithFormat      7
  52. #define X_DRI2SwapBuffers               8
  53. #define X_DRI2GetMSC                    9
  54. #define X_DRI2WaitMSC                   10
  55. #define X_DRI2WaitSBC                   11
  56. #define X_DRI2SwapInterval              12
  57.  
  58. typedef struct {
  59.     CARD32  attachment B32;
  60.     CARD32  name B32;
  61.     CARD32  pitch B32;
  62.     CARD32  cpp B32;
  63.     CARD32  flags B32;
  64. } xDRI2Buffer;
  65.  
  66. typedef struct {
  67.     CARD8   reqType;
  68.     CARD8   dri2ReqType;
  69.     CARD16  length B16;
  70.     CARD32  majorVersion B32;
  71.     CARD32  minorVersion B32;
  72. } xDRI2QueryVersionReq;
  73. #define sz_xDRI2QueryVersionReq   12
  74.  
  75. typedef struct {
  76.     BYTE    type;   /* X_Reply */
  77.     BYTE    pad1;
  78.     CARD16  sequenceNumber B16;
  79.     CARD32  length B32;
  80.     CARD32  majorVersion B32;
  81.     CARD32  minorVersion B32;
  82.     CARD32  pad2 B32;
  83.     CARD32  pad3 B32;
  84.     CARD32  pad4 B32;
  85.     CARD32  pad5 B32;
  86. } xDRI2QueryVersionReply;
  87. #define sz_xDRI2QueryVersionReply       32
  88.  
  89. typedef struct {
  90.     CARD8   reqType;
  91.     CARD8   dri2ReqType;
  92.     CARD16  length B16;
  93.     CARD32  window B32;
  94.     CARD32  driverType B32;
  95. } xDRI2ConnectReq;
  96. #define sz_xDRI2ConnectReq      12
  97.  
  98. typedef struct {
  99.     BYTE    type;   /* X_Reply */
  100.     BYTE    pad1;
  101.     CARD16  sequenceNumber B16;
  102.     CARD32  length B32;
  103.     CARD32  driverNameLength B32;
  104.     CARD32  deviceNameLength B32;
  105.     CARD32  pad2 B32;
  106.     CARD32  pad3 B32;
  107.     CARD32  pad4 B32;
  108.     CARD32  pad5 B32;
  109. } xDRI2ConnectReply;
  110. #define sz_xDRI2ConnectReply    32
  111.  
  112. typedef struct {
  113.     CARD8   reqType;
  114.     CARD8   dri2ReqType;
  115.     CARD16  length B16;
  116.     CARD32  window B32;
  117.     CARD32  magic B32;
  118. } xDRI2AuthenticateReq;
  119. #define sz_xDRI2AuthenticateReq   12
  120.  
  121. typedef struct {
  122.     BYTE    type;   /* X_Reply */
  123.     BYTE    pad1;
  124.     CARD16  sequenceNumber B16;
  125.     CARD32  length B32;
  126.     CARD32  authenticated B32;
  127.     CARD32  pad2 B32;
  128.     CARD32  pad3 B32;
  129.     CARD32  pad4 B32;
  130.     CARD32  pad5 B32;
  131.     CARD32  pad6 B32;
  132. } xDRI2AuthenticateReply;
  133. #define sz_xDRI2AuthenticateReply       32
  134.  
  135. typedef struct {
  136.     CARD8   reqType;
  137.     CARD8   dri2ReqType;
  138.     CARD16  length B16;
  139.     CARD32  drawable B32;
  140. } xDRI2CreateDrawableReq;
  141. #define sz_xDRI2CreateDrawableReq   8
  142.  
  143. typedef struct {
  144.     CARD8   reqType;
  145.     CARD8   dri2ReqType;
  146.     CARD16  length B16;
  147.     CARD32  drawable B32;
  148. } xDRI2DestroyDrawableReq;
  149. #define sz_xDRI2DestroyDrawableReq   8
  150.  
  151. typedef struct {
  152.     CARD8   reqType;
  153.     CARD8   dri2ReqType;
  154.     CARD16  length B16;
  155.     CARD32  drawable B32;
  156.     CARD32  count B32;
  157. } xDRI2GetBuffersReq;
  158. #define sz_xDRI2GetBuffersReq   12
  159.  
  160. typedef struct {
  161.     BYTE    type;   /* X_Reply */
  162.     BYTE    pad1;
  163.     CARD16  sequenceNumber B16;
  164.     CARD32  length B32;
  165.     CARD32  width B32;
  166.     CARD32  height B32;
  167.     CARD32  count B32;
  168.     CARD32  pad2 B32;
  169.     CARD32  pad3 B32;
  170.     CARD32  pad4 B32;
  171. } xDRI2GetBuffersReply;
  172. #define sz_xDRI2GetBuffersReply 32
  173.  
  174. typedef struct {
  175.     CARD8   reqType;
  176.     CARD8   dri2ReqType;
  177.     CARD16  length B16;
  178.     CARD32  drawable B32;
  179.     CARD32  region B32;
  180.     CARD32  dest B32;
  181.     CARD32  src B32;
  182. } xDRI2CopyRegionReq;
  183. #define sz_xDRI2CopyRegionReq   20
  184.  
  185. typedef struct {
  186.     BYTE    type;   /* X_Reply */
  187.     BYTE    pad1;
  188.     CARD16  sequenceNumber B16;
  189.     CARD32  length B32;
  190.     CARD32  pad2 B32;
  191.     CARD32  pad3 B32;
  192.     CARD32  pad4 B32;
  193.     CARD32  pad5 B32;
  194.     CARD32  pad6 B32;
  195.     CARD32  pad7 B32;
  196. } xDRI2CopyRegionReply;
  197. #define sz_xDRI2CopyRegionReply 32
  198.  
  199. typedef struct {
  200.     CARD8   reqType;
  201.     CARD8   dri2ReqType;
  202.     CARD16  length B16;
  203.     CARD32  drawable B32;
  204.     CARD32  target_msc_hi B32;
  205.     CARD32  target_msc_lo B32;
  206.     CARD32  divisor_hi B32;
  207.     CARD32  divisor_lo B32;
  208.     CARD32  remainder_hi B32;
  209.     CARD32  remainder_lo B32;
  210. } xDRI2SwapBuffersReq;
  211. #define sz_xDRI2SwapBuffersReq  32
  212.  
  213. typedef struct {
  214.     BYTE    type;   /* X_Reply */
  215.     BYTE    pad1;
  216.     CARD16  sequenceNumber B16;
  217.     CARD32  length B32;
  218.     CARD32  swap_hi B32;
  219.     CARD32  swap_lo B32;
  220.     CARD32  pad2 B32;
  221.     CARD32  pad3 B32;
  222.     CARD32  pad4 B32;
  223.     CARD32  pad5 B32;
  224. } xDRI2SwapBuffersReply;
  225. #define sz_xDRI2SwapBuffersReply 32
  226.  
  227. #endif
  228.