dciddi.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_DCIDDI
  7. #define _INC_DCIDDI
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #define DCICOMMAND 3075
  12. #define DCI_VERSION 0x0100
  13. #define DCICREATEPRIMARYSURFACE 1
  14. #define DCICREATEOFFSCREENSURFACE 2
  15. #define DCICREATEOVERLAYSURFACE 3
  16. #define DCIENUMSURFACE 4
  17. #define DCIESCAPE 5
  18. #define DCI_OK 0
  19. #define DCI_FAIL_GENERIC -1
  20. #define DCI_FAIL_UNSUPPORTEDVERSION -2
  21. #define DCI_FAIL_INVALIDSURFACE -3
  22. #define DCI_FAIL_UNSUPPORTED -4
  23. #define DCI_ERR_CURRENTLYNOTAVAIL -5
  24. #define DCI_ERR_INVALIDRECT -6
  25. #define DCI_ERR_UNSUPPORTEDFORMAT -7
  26. #define DCI_ERR_UNSUPPORTEDMASK -8
  27. #define DCI_ERR_TOOBIGHEIGHT -9
  28. #define DCI_ERR_TOOBIGWIDTH -10
  29. #define DCI_ERR_TOOBIGSIZE -11
  30. #define DCI_ERR_OUTOFMEMORY -12
  31. #define DCI_ERR_INVALIDPOSITION -13
  32. #define DCI_ERR_INVALIDSTRETCH -14
  33. #define DCI_ERR_INVALIDCLIPLIST -15
  34. #define DCI_ERR_SURFACEISOBSCURED -16
  35. #define DCI_ERR_XALIGN -17
  36. #define DCI_ERR_YALIGN -18
  37. #define DCI_ERR_XYALIGN -19
  38. #define DCI_ERR_WIDTHALIGN -20
  39. #define DCI_ERR_HEIGHTALIGN -21
  40. #define DCI_STATUS_POINTERCHANGED 1
  41. #define DCI_STATUS_STRIDECHANGED 2
  42. #define DCI_STATUS_FORMATCHANGED 4
  43. #define DCI_STATUS_SURFACEINFOCHANGED 8
  44. #define DCI_STATUS_CHROMAKEYCHANGED 16
  45. #define DCI_STATUS_WASSTILLDRAWING 32
  46. #define DCI_SUCCESS(error) (((DCIRVAL)error) >= 0)
  47. #define DCI_SURFACE_TYPE 0x0000000F
  48. #define DCI_PRIMARY 0x00000000
  49. #define DCI_OFFSCREEN 0x00000001
  50. #define DCI_OVERLAY 0x00000002
  51. #define DCI_VISIBLE 0x00000010
  52. #define DCI_CHROMAKEY 0x00000020
  53. #define DCI_1632_ACCESS 0x00000040
  54. #define DCI_DWORDSIZE 0x00000080
  55. #define DCI_DWORDALIGN 0x00000100
  56. #define DCI_WRITEONLY 0x00000200
  57. #define DCI_ASYNC 0x00000400
  58. #define DCI_CAN_STRETCHX 0x00001000
  59. #define DCI_CAN_STRETCHY 0x00002000
  60. #define DCI_CAN_STRETCHXY (DCI_CAN_STRETCHX | DCI_CAN_STRETCHY)
  61. #define DCI_CAN_STRETCHXN 0x00004000
  62. #define DCI_CAN_STRETCHYN 0x00008000
  63. #define DCI_CAN_STRETCHXYN (DCI_CAN_STRETCHXN | DCI_CAN_STRETCHYN)
  64. #define DCI_CANOVERLAY 0x00010000
  65. typedef int DCIRVAL;
  66. typedef struct _DCICMD {
  67. DWORD dwCommand;
  68. DWORD dwParam1;
  69. DWORD dwParam2;
  70. DWORD dwVersion;
  71. DWORD dwReserved;
  72. } DCICMD;
  73. typedef struct _DCICREATEINPUT {
  74. DCICMD cmd;
  75. DWORD dwCompression;
  76. DWORD dwMask[3];
  77. DWORD dwWidth;
  78. DWORD dwHeight;
  79. DWORD dwDCICaps;
  80. DWORD dwBitCount;
  81. LPVOID lpSurface;
  82. } DCICREATEINPUT,*LPDCICREATEINPUT;
  83. typedef struct _DCISURFACEINFO {
  84. DWORD dwSize;
  85. DWORD dwDCICaps;
  86. DWORD dwCompression;
  87. DWORD dwMask[3];
  88. DWORD dwWidth;
  89. DWORD dwHeight;
  90. LONG lStride;
  91. DWORD dwBitCount;
  92. ULONG_PTR dwOffSurface;
  93. WORD wSelSurface;
  94. WORD wReserved;
  95. DWORD dwReserved1;
  96. DWORD dwReserved2;
  97. DWORD dwReserved3;
  98. DCIRVAL (CALLBACK *BeginAccess) (LPVOID,LPRECT);
  99. void (CALLBACK *EndAccess) (LPVOID);
  100. void (CALLBACK *DestroySurface) (LPVOID);
  101. } DCISURFACEINFO,*LPDCISURFACEINFO;
  102. typedef void (*ENUM_CALLBACK)(LPDCISURFACEINFO lpSurfaceInfo,LPVOID lpContext);
  103. typedef struct _DCIENUMINPUT {
  104. DCICMD cmd;
  105. RECT rSrc;
  106. RECT rDst;
  107. void (CALLBACK *EnumCallback)(LPDCISURFACEINFO,LPVOID);
  108. LPVOID lpContext;
  109. } DCIENUMINPUT,*LPDCIENUMINPUT;
  110. typedef DCISURFACEINFO DCIPRIMARY,*LPDCIPRIMARY;
  111. typedef struct _DCIOFFSCREEN {
  112. DCISURFACEINFO dciInfo;
  113. DCIRVAL (CALLBACK *Draw) (LPVOID);
  114. DCIRVAL (CALLBACK *SetClipList) (LPVOID,LPRGNDATA);
  115. DCIRVAL (CALLBACK *SetDestination) (LPVOID,LPRECT,LPRECT);
  116. } DCIOFFSCREEN,*LPDCIOFFSCREEN;
  117. typedef struct _DCIOVERLAY {
  118. DCISURFACEINFO dciInfo;
  119. DWORD dwChromakeyValue;
  120. DWORD dwChromakeyMask;
  121. } DCIOVERLAY,*LPDCIOVERLAY;
  122. #ifndef YVU9
  123. #define YVU9 mmioFOURCC('Y','V','U','9')
  124. #endif
  125. #ifndef Y411
  126. #define Y411 mmioFOURCC('Y','4','1','1')
  127. #endif
  128. #ifndef YUY2
  129. #define YUY2 mmioFOURCC('Y','U','Y','2')
  130. #endif
  131. #ifndef YVYU
  132. #define YVYU mmioFOURCC('Y','V','Y','U')
  133. #endif
  134. #ifndef UYVY
  135. #define UYVY mmioFOURCC('U','Y','V','Y')
  136. #endif
  137. #ifndef Y211
  138. #define Y211 mmioFOURCC('Y','2','1','1')
  139. #endif
  140. #ifdef __cplusplus
  141. }
  142. #endif
  143. #endif