Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

283 lines
6.4 KiB

  1. /******************************Module*Header**********************************\
  2. * Module Name: ROPTAB.H
  3. * Author: Noel VanHook
  4. * Date: Apr 23, 1995
  5. * Purpose: Table lookup for BLT operands.
  6. *
  7. * Copyright (c) 1995 Cirrus Logic, Inc.
  8. *
  9. \*****************************************************************************/
  10. #ifndef _ROPTBL_H_
  11. #define _ROPTBL_H_
  12. //
  13. // The table is indexed by rop code. Each entry is a pointer to
  14. // which blt function to use for that rop code.
  15. // BLT functions are selected based on what operands they use.
  16. //
  17. // Make sure BLT functions are prototyped before including this file.
  18. //
  19. //
  20. BLTFN *RopTab[] = {
  21. /* 00 */ op0BLT, // BLACKNESS.
  22. /* 01 */ op1op2BLT,
  23. /* 02 */ op1op2BLT,
  24. /* 03 */ op1op2BLT,
  25. /* 04 */ op1op2BLT,
  26. /* 05 */ op2BLT, // DPon
  27. /* 06 */ op1op2BLT,
  28. /* 07 */ op1op2BLT,
  29. /* 08 */ op1op2BLT,
  30. /* 09 */ op1op2BLT,
  31. /* 0A */ op2BLT, // DPna
  32. /* 0B */ op1op2BLT,
  33. /* 0C */ op1op2BLT,
  34. /* 0D */ op1op2BLT,
  35. /* 0E */ op1op2BLT,
  36. /* 0F */ op2BLT, // Pn
  37. /* 10 */ op1op2BLT,
  38. /* 11 */ op1BLT, // DSon
  39. /* 12 */ op1op2BLT,
  40. /* 13 */ op1op2BLT,
  41. /* 14 */ op1op2BLT,
  42. /* 15 */ op1op2BLT,
  43. /* 16 */ op1op2BLT,
  44. /* 17 */ op1op2BLT,
  45. /* 18 */ op1op2BLT,
  46. /* 19 */ op1op2BLT,
  47. /* 1A */ op1op2BLT,
  48. /* 1B */ op1op2BLT,
  49. /* 1C */ op1op2BLT,
  50. /* 1D */ op1op2BLT,
  51. /* 1E */ op1op2BLT,
  52. /* 1F */ op1op2BLT,
  53. /* 20 */ op1op2BLT,
  54. /* 21 */ op1op2BLT,
  55. /* 22 */ op1BLT, // DSna
  56. /* 23 */ op1op2BLT,
  57. /* 24 */ op1op2BLT,
  58. /* 25 */ op1op2BLT,
  59. /* 26 */ op1op2BLT,
  60. /* 27 */ op1op2BLT,
  61. /* 28 */ op1op2BLT,
  62. /* 29 */ op1op2BLT,
  63. /* 2A */ op1op2BLT,
  64. /* 2B */ op1op2BLT,
  65. /* 2C */ op1op2BLT,
  66. /* 2D */ op1op2BLT,
  67. /* 2E */ op1op2BLT,
  68. /* 2F */ op1op2BLT,
  69. /* 30 */ op1op2BLT,
  70. /* 31 */ op1op2BLT,
  71. /* 32 */ op1op2BLT,
  72. /* 33 */ op1BLT, // Sn -- NOT SRC COPY
  73. /* 34 */ op1op2BLT,
  74. /* 35 */ op1op2BLT,
  75. /* 36 */ op1op2BLT,
  76. /* 37 */ op1op2BLT,
  77. /* 38 */ op1op2BLT,
  78. /* 39 */ op1op2BLT,
  79. /* 3A */ op1op2BLT,
  80. /* 3B */ op1op2BLT,
  81. /* 3C */ op1op2BLT,
  82. /* 3D */ op1op2BLT,
  83. /* 3E */ op1op2BLT,
  84. /* 3F */ op1op2BLT,
  85. /* 40 */ op1op2BLT,
  86. /* 41 */ op1op2BLT,
  87. /* 42 */ op1op2BLT,
  88. /* 43 */ op1op2BLT,
  89. /* 44 */ op1BLT, // SDna -- SRC ERASE
  90. /* 45 */ op1op2BLT,
  91. /* 46 */ op1op2BLT,
  92. /* 47 */ op1op2BLT,
  93. /* 48 */ op1op2BLT,
  94. /* 49 */ op1op2BLT,
  95. /* 4A */ op1op2BLT,
  96. /* 4B */ op1op2BLT,
  97. /* 4C */ op1op2BLT,
  98. /* 4D */ op1op2BLT,
  99. /* 4E */ op1op2BLT,
  100. /* 4F */ op1op2BLT,
  101. /* 50 */ op2BLT, // PDna
  102. /* 51 */ op1op2BLT,
  103. /* 52 */ op1op2BLT,
  104. /* 53 */ op1op2BLT,
  105. /* 54 */ op1op2BLT,
  106. /* 55 */ op0BLT, // DEST INVERT. Blinking things, like a text cursor.
  107. /* 56 */ op1op2BLT,
  108. /* 57 */ op1op2BLT,
  109. /* 58 */ op1op2BLT,
  110. /* 59 */ op1op2BLT,
  111. /* 5A */ op2BLT, // DPx -- PAT INVERT
  112. /* 5B */ op1op2BLT,
  113. /* 5C */ op1op2BLT,
  114. /* 5D */ op1op2BLT,
  115. /* 5E */ op1op2BLT,
  116. /* 5F */ op2BLT, // DPan
  117. /* 60 */ op1op2BLT,
  118. /* 61 */ op1op2BLT,
  119. /* 62 */ op1op2BLT,
  120. /* 63 */ op1op2BLT,
  121. /* 64 */ op1op2BLT,
  122. /* 65 */ op1op2BLT,
  123. /* 66 */ op1BLT, // DSx -- SRC INVERT
  124. /* 67 */ op1op2BLT,
  125. /* 68 */ op1op2BLT,
  126. /* 69 */ op1op2BLT,
  127. /* 6A */ op1op2BLT,
  128. /* 6B */ op1op2BLT,
  129. /* 6C */ op1op2BLT,
  130. /* 6D */ op1op2BLT,
  131. /* 6E */ op1op2BLT,
  132. /* 6F */ op1op2BLT,
  133. /* 70 */ op1op2BLT,
  134. /* 71 */ op1op2BLT,
  135. /* 72 */ op1op2BLT,
  136. /* 73 */ op1op2BLT,
  137. /* 74 */ op1op2BLT,
  138. /* 75 */ op1op2BLT,
  139. /* 76 */ op1op2BLT,
  140. /* 77 */ op1BLT, // DSan
  141. /* 78 */ op1op2BLT,
  142. /* 79 */ op1op2BLT,
  143. /* 7A */ op1op2BLT,
  144. /* 7B */ op1op2BLT,
  145. /* 7C */ op1op2BLT,
  146. /* 7D */ op1op2BLT,
  147. /* 7E */ op1op2BLT,
  148. /* 7F */ op1op2BLT,
  149. /* 80 */ op1op2BLT,
  150. /* 81 */ op1op2BLT,
  151. /* 82 */ op1op2BLT,
  152. /* 83 */ op1op2BLT,
  153. /* 84 */ op1op2BLT,
  154. /* 85 */ op1op2BLT,
  155. /* 86 */ op1op2BLT,
  156. /* 87 */ op1op2BLT,
  157. /* 88 */ op1BLT, // DSa -- SRC AND
  158. /* 89 */ op1op2BLT,
  159. /* 8A */ op1op2BLT,
  160. /* 8B */ op1op2BLT,
  161. /* 8C */ op1op2BLT,
  162. /* 8D */ op1op2BLT,
  163. /* 8E */ op1op2BLT,
  164. /* 8F */ op1op2BLT,
  165. /* 90 */ op1op2BLT,
  166. /* 91 */ op1op2BLT,
  167. /* 92 */ op1op2BLT,
  168. /* 93 */ op1op2BLT,
  169. /* 94 */ op1op2BLT,
  170. /* 95 */ op1op2BLT,
  171. /* 96 */ op1op2BLT,
  172. /* 97 */ op1op2BLT,
  173. /* 98 */ op1op2BLT,
  174. /* 99 */ op1BLT, // DSa -- SRC AND
  175. /* 9A */ op1op2BLT,
  176. /* 9B */ op1op2BLT,
  177. /* 9C */ op1op2BLT,
  178. /* 9D */ op1op2BLT,
  179. /* 9E */ op1op2BLT,
  180. /* 9F */ op1op2BLT,
  181. /* A0 */ op2BLT, // DPa
  182. /* A1 */ op1op2BLT,
  183. /* A2 */ op1op2BLT,
  184. /* A3 */ op1op2BLT,
  185. /* A4 */ op1op2BLT,
  186. /* A5 */ op2BLT, // DPxn
  187. /* A6 */ op1op2BLT,
  188. /* A7 */ op1op2BLT,
  189. /* A8 */ op1op2BLT,
  190. /* A9 */ op1op2BLT,
  191. /* AA */ op0BLT, // DEST = DEST.
  192. /* AB */ op1op2BLT,
  193. /* AC */ op1op2BLT,
  194. /* AD */ op1op2BLT,
  195. /* AE */ op1op2BLT,
  196. /* AF */ op2BLT, // DPno
  197. /* B0 */ op1op2BLT,
  198. /* B1 */ op1op2BLT,
  199. /* B2 */ op1op2BLT,
  200. /* B3 */ op1op2BLT,
  201. /* B4 */ op1op2BLT,
  202. /* B5 */ op1op2BLT,
  203. /* B6 */ op1op2BLT,
  204. /* B7 */ op1op2BLT,
  205. /* B8 */ op1op2BLT,
  206. /* B9 */ op1op2BLT,
  207. /* BA */ op1op2BLT,
  208. /* BB */ op1BLT, // DSno -- MERGE PAINT
  209. /* BC */ op1op2BLT,
  210. /* BD */ op1op2BLT,
  211. /* BE */ op1op2BLT,
  212. /* BF */ op1op2BLT,
  213. /* C0 */ op1op2BLT,
  214. /* C1 */ op1op2BLT,
  215. /* C2 */ op1op2BLT,
  216. /* C3 */ op1op2BLT,
  217. /* C4 */ op1op2BLT,
  218. /* C5 */ op1op2BLT,
  219. /* C6 */ op1op2BLT,
  220. /* C7 */ op1op2BLT,
  221. /* C8 */ op1op2BLT,
  222. /* C9 */ op1op2BLT,
  223. /* CA */ op1op2BLT,
  224. /* CB */ op1op2BLT,
  225. /* CC */ op1BLT, // S -- SRC COPY
  226. /* CD */ op1op2BLT,
  227. /* CE */ op1op2BLT,
  228. /* CF */ op1op2BLT,
  229. /* D0 */ op1op2BLT,
  230. /* D1 */ op1op2BLT,
  231. /* D2 */ op1op2BLT,
  232. /* D3 */ op1op2BLT,
  233. /* D4 */ op1op2BLT,
  234. /* D5 */ op1op2BLT,
  235. /* D6 */ op1op2BLT,
  236. /* D7 */ op1op2BLT,
  237. /* D8 */ op1op2BLT,
  238. /* D9 */ op1op2BLT,
  239. /* DA */ op1op2BLT,
  240. /* DB */ op1op2BLT,
  241. /* DC */ op1op2BLT,
  242. /* DD */ op1BLT, // SDno
  243. /* DE */ op1op2BLT,
  244. /* DF */ op1op2BLT,
  245. /* E0 */ op1op2BLT,
  246. /* E1 */ op1op2BLT,
  247. /* E2 */ op1op2BLT,
  248. /* E3 */ op1op2BLT,
  249. /* E4 */ op1op2BLT,
  250. /* E5 */ op1op2BLT,
  251. /* E6 */ op1op2BLT,
  252. /* E7 */ op1op2BLT,
  253. /* E8 */ op1op2BLT,
  254. /* E9 */ op1op2BLT,
  255. /* EA */ op1op2BLT,
  256. /* EB */ op1op2BLT,
  257. /* EC */ op1op2BLT,
  258. /* ED */ op1op2BLT,
  259. /* EE */ op1BLT, // DSo -- SRC PAINT
  260. /* EF */ op1op2BLT,
  261. /* F0 */ op2BLT, // P -- PAT COPY. Used for fills.
  262. /* F1 */ op1op2BLT,
  263. /* F2 */ op1op2BLT,
  264. /* F3 */ op1op2BLT,
  265. /* F4 */ op1op2BLT,
  266. /* F5 */ op2BLT, // PDno
  267. /* F6 */ op1op2BLT,
  268. /* F7 */ op1op2BLT,
  269. /* F8 */ op1op2BLT,
  270. /* F9 */ op1op2BLT,
  271. /* FA */ op2BLT, // DPo
  272. /* FB */ op1op2BLT,
  273. /* FC */ op1op2BLT,
  274. /* FD */ op1op2BLT,
  275. /* FE */ op1op2BLT,
  276. /* FF */ op0BLT, // WHITENESS.
  277. };
  278. #endif // _ROPTBL_H_