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.

758 lines
29 KiB

  1. /*++
  2. Copyright (c) 1990-1991 Microsoft Corporation
  3. Module Name:
  4. htstret.h
  5. Abstract:
  6. This module has private definition for htstret.c
  7. Author:
  8. 24-Jan-1991 Thu 10:11:10 created -by- Daniel Chou (danielc)
  9. [Environment:]
  10. GDI Device Driver - Halftone.
  11. [Notes:]
  12. Revision History:
  13. --*/
  14. #ifndef _HTSTRET_
  15. #define _HTSTRET_
  16. #define MULRGB(b,l) (LONG)((LONG)(b) * (LONG)(l))
  17. #define MULQW(a,b) ((DWORDLONG)(a) * (DWORDLONG)(b))
  18. #define INC_PIN_BY_1ST_LEFT(p,f) (p) += ((f) & AAIF_EXP_HAS_1ST_LEFT)
  19. #define INC_PIN_BY_EDF_LOAD_PIXEL(p,f) (p) += ((f) >> 15)
  20. #define PMAP_EXP4(Max) \
  21. { \
  22. do { \
  23. \
  24. *(pMap + 0) = (Mul0 += ed.Mul[0]); \
  25. *(pMap + 256) = (Mul1 += ed.Mul[1]); \
  26. *(pMap + 512) = (Mul2 += ed.Mul[2]); \
  27. *(pMap + 768) = (Mul3 += ed.Mul[3]) + ((Max) >> 1); \
  28. \
  29. } while (++pMap < pMap0End); \
  30. }
  31. #define PMAP_EXP3(Max) \
  32. { \
  33. do { \
  34. \
  35. *(pMap + 256) = (Mul1 += ed.Mul[1]); \
  36. *(pMap + 512) = (Mul2 += ed.Mul[2]); \
  37. *(pMap + 768) = (Mul3 += ed.Mul[3]) + ((Max) >> 1); \
  38. \
  39. } while (++pMap < pMap0End); \
  40. }
  41. #define PMAP_EXP2(Max) \
  42. { \
  43. do { \
  44. \
  45. *(pMap + 512) = (Mul2 += ed.Mul[2]); \
  46. *(pMap + 768) = (Mul3 += ed.Mul[3]) + ((Max) >> 1); \
  47. \
  48. } while (++pMap < pMap0End); \
  49. }
  50. #define PMAP_EXP1(Max) \
  51. { \
  52. do { \
  53. \
  54. *(pMap + 768) = (Mul3 += ed.Mul[3]) + ((Max) >> 1); \
  55. \
  56. } while (++pMap < pMap0End); \
  57. }
  58. #define INC_EXP4() { ++prgb3; ++prgb2; ++prgb1; ++prgb0; }
  59. #define INC_EXP3() { ++prgb3; ++prgb2; ++prgb1; }
  60. #define INC_EXP2() { ++prgb3; ++prgb2; }
  61. #define INC_EXP1() { ++prgb3; }
  62. #define INC2_EXP4() { prgb3 += 4; prgb2 += 4; prgb1 += 4; prgb0 += 4; }
  63. #define INC2_EXP3() { prgb3 += 4; prgb2 += 4; prgb1 += 4; }
  64. #define INC2_EXP2() { prgb3 += 4; prgb2 += 4; }
  65. #define INC2_EXP1() { prgb3 += 4; }
  66. #define GET_EXP4(cType, c, rs) \
  67. (cType)(((pMap0[prgb3->c + 768]) + \
  68. (pMap0[prgb2->c + 512]) + \
  69. (pMap0[prgb1->c + 256]) + \
  70. (pMap0[prgb0->c ])) >> (rs))
  71. #define GET_EXP3(cType, c, rs) \
  72. (cType)(((pMap0[prgb3->c + 768]) + \
  73. (pMap0[prgb2->c + 512]) + \
  74. (pMap0[prgb1->c + 256])) >> (rs))
  75. #define GET_EXP2(cType, c, rs) \
  76. (cType)(((pMap0[prgb3->c + 768]) + \
  77. (pMap0[prgb2->c + 512])) >> (rs))
  78. #define GET_EXP1(cType, c, rs) \
  79. (cType)(((pMap0[prgb3->c + 768])) >> (rs))
  80. #define GET_EXP_PC(MacMap, MacMul, MacIncPtr, pDst) \
  81. { \
  82. MacMap(DI_MAX_NUM); \
  83. \
  84. do { \
  85. \
  86. pDst->r = MacMul(BYTE, r, DI_R_SHIFT); \
  87. pDst->g = MacMul(BYTE, g, DI_R_SHIFT); \
  88. pDst->b = MacMul(BYTE, b, DI_R_SHIFT); \
  89. \
  90. MacIncPtr(); \
  91. \
  92. } while (((LPBYTE)pDst += AAHdr.AABufInc) != (LPBYTE)AAHdr.pAABufEnd); \
  93. }
  94. #define GRAY_INC_EXP4() { ++pb3; ++pb2; ++pb1; ++pb0; }
  95. #define GRAY_INC_EXP3() { ++pb3; ++pb2; ++pb1; }
  96. #define GRAY_INC_EXP2() { ++pb3; ++pb2; }
  97. #define GRAY_INC_EXP1() { ++pb3; }
  98. #define GRAY_GET_EXP4(cType, rs) \
  99. (cType)(((pMap0[*pb3 + 768]) + \
  100. (pMap0[*pb2 + 512]) + \
  101. (pMap0[*pb1 + 256]) + \
  102. (pMap0[*pb0 ])) >> (rs))
  103. #define GRAY_GET_EXP3(cType, rs) \
  104. (cType)(((pMap0[*pb3 + 768]) + \
  105. (pMap0[*pb2 + 512]) + \
  106. (pMap0[*pb1 + 256])) >> (rs))
  107. #define GRAY_GET_EXP2(cType, rs) \
  108. (cType)(((pMap0[*pb3 + 768]) + \
  109. (pMap0[*pb2 + 512])) >> (rs))
  110. #define GRAY_GET_EXP1(cType, rs) \
  111. (cType)(((pMap0[*pb3 + 768])) >> (rs))
  112. #define GRAY_GET_EXP_PC(MacMap, MacMul, MacIncPtr, pDst) \
  113. { \
  114. MacMap((DI_MAX_NUM >> 4)); \
  115. \
  116. do { \
  117. \
  118. pDst->Gray = MacMul(WORD, (DI_R_SHIFT - 8)); \
  119. \
  120. MacIncPtr(); \
  121. \
  122. } while (((LPBYTE)pDst += AAHdr.AABufInc) != (LPBYTE)AAHdr.pAABufEnd); \
  123. }
  124. #define OUTPUT_AA_CURSCAN \
  125. { \
  126. ASSERT(((LPBYTE)AAHdr.DstSurfInfo.pb >= AAHdr.pOutBeg) && \
  127. ((LPBYTE)AAHdr.DstSurfInfo.pb <= AAHdr.pOutEnd)); \
  128. \
  129. if (AAHdr.Flags & AAHF_HAS_MASK) { \
  130. \
  131. DBG_TIMER_BEG(TIMER_MASK); \
  132. \
  133. AAHdr.AAMaskCYFunc(&AAHdr); \
  134. \
  135. DBG_TIMER_BEG(TIMER_MASK); \
  136. } \
  137. \
  138. DBG_TIMER_BEG(TIMER_OUTPUT); \
  139. \
  140. if (AAHdr.Flags & AAHF_ALPHA_BLEND) { \
  141. \
  142. AlphaBlendBGRF(&AAHdr); \
  143. } \
  144. \
  145. if (AAHdr.Flags & AAHF_DO_DST_CLR_MAPPING) { \
  146. \
  147. MappingBGRF((PBGRF)AAHdr.pRealOutBeg, \
  148. (PBGRF)AAHdr.pRealOutEnd, \
  149. (PBGR8)AAHdr.pBGRMapTable, \
  150. (LPBYTE)AAHdr.AAPI.pbPat555); \
  151. \
  152. if ((AAHdr.AAPI.pbPat555 += AAHdr.AAPI.cyNext555) == \
  153. AAHdr.AAPI.pbWrap555) { \
  154. \
  155. AAHdr.AAPI.pbPat555 = AAHdr.AAPI.pbBeg555; \
  156. } \
  157. } \
  158. \
  159. AAHdr.AAOutputFunc(&AAHdr, \
  160. AAHdr.pOutputBeg, \
  161. AAHdr.pOutputEnd, \
  162. AAHdr.DstSurfInfo.pb, \
  163. AAHdr.pIdxBGR, \
  164. AAHdr.AAPI.pbPatBGR, \
  165. AAHdr.AAPI.pbPatBGR + AAHdr.AAPI.cbEndBGR, \
  166. AAHdr.AAPI.cbWrapBGR, \
  167. AAHdr.AAOutputInfo); \
  168. \
  169. if ((AAHdr.AAPI.pbPatBGR += AAHdr.AAPI.cyNextBGR) == \
  170. AAHdr.AAPI.pbWrapBGR) { \
  171. \
  172. AAHdr.AAPI.pbPatBGR = AAHdr.AAPI.pbBegBGR; \
  173. } \
  174. \
  175. AAHdr.DstSurfInfo.pb += AAHdr.DstSurfInfo.cyNext; \
  176. \
  177. DBG_TIMER_END(TIMER_OUTPUT); \
  178. }
  179. #define _SHARPEN_CLR_LRTB(cS, cL, cC, cR, cT, cB, ExtraRS) \
  180. { \
  181. register LONG c; \
  182. \
  183. if (((c) = (((LONG)(cC) << 3) + ((LONG)(cC) << 2) - \
  184. (LONG)(cL) - (LONG)(cR) - (LONG)(cT) - \
  185. (LONG)(cB)) >> (ExtraRS + 3)) & 0xFF00) { \
  186. \
  187. (c) = (LONG)~((DWORD)(c) >> 24); \
  188. } \
  189. \
  190. (cS) = (BYTE)(c); \
  191. }
  192. #define _SHARPEN_CLR_LR(cS, cL, cC, cR, ExtraRS) \
  193. { \
  194. register LONG c; \
  195. \
  196. if (((c) = (((LONG)(cC) << 2) + ((LONG)(cC) << 1) - \
  197. (LONG)(cL) - (LONG)(cR)) >> (ExtraRS + 2)) & 0xFF00) { \
  198. \
  199. (c) = (LONG)~((DWORD)(c) >> 24); \
  200. } \
  201. \
  202. (cS) = (BYTE)(c); \
  203. }
  204. #define _SHARPEN_WCLR_LR(cS, cL, cC, cR, ExtraRS) \
  205. { \
  206. register LONG c; \
  207. \
  208. if (((c) = (((LONG)(cC) << 2) + ((LONG)(cC) << 1) - \
  209. (LONG)(cL) - (LONG)(cR)) >> (ExtraRS + 2)) & 0xFF0000) { \
  210. \
  211. (c) = (LONG)~((DWORD)(c) >> 16); \
  212. } \
  213. \
  214. (cS) = (WORD)(c); \
  215. }
  216. #define SHARPEN_RGB_LR(rgbSP, rgbL, rgbC, rgbR, ExtraRS) \
  217. { \
  218. _SHARPEN_CLR_LR((rgbSP).b, (rgbL).b, (rgbC).b, (rgbR).b, ExtraRS); \
  219. _SHARPEN_CLR_LR((rgbSP).g, (rgbL).g, (rgbC).g, (rgbR).g, ExtraRS); \
  220. _SHARPEN_CLR_LR((rgbSP).r, (rgbL).r, (rgbC).r, (rgbR).r, ExtraRS); \
  221. }
  222. #define SHARPEN_PRGB_LR(prgbSP, rgbL, rgbC, rgbR, ExtraRS) \
  223. { \
  224. _SHARPEN_CLR_LR((prgbSP)->b, (rgbL).b, (rgbC).b, (rgbR).b, ExtraRS); \
  225. _SHARPEN_CLR_LR((prgbSP)->g, (rgbL).g, (rgbC).g, (rgbR).g, ExtraRS); \
  226. _SHARPEN_CLR_LR((prgbSP)->r, (rgbL).r, (rgbC).r, (rgbR).r, ExtraRS); \
  227. }
  228. #define SHARPEN_GRAY_LR(GraySP, GrayL, GrayC, GrayR, ExtraRS) \
  229. { \
  230. _SHARPEN_CLR_LR(GraySP, GrayL, GrayC, GrayR, ExtraRS); \
  231. }
  232. #define SHARPEN_PGRAY_LR(pbSP, bL, bC, bR, ExtraRS) \
  233. { \
  234. _SHARPEN_CLR_LR(*(pbSP), (bL), bC, bR, ExtraRS); \
  235. }
  236. #define SHARPEN_PWGRAY_LR(pSP, bL, bC, bR) \
  237. { \
  238. _SHARPEN_WCLR_LR((pSP)->Gray, (bL), bC, bR, (DI_R_SHIFT - 8)); \
  239. }
  240. #define SHARPEN_PRGB_LRTB(pS, pT, pC, pB, ExtraRS) \
  241. { \
  242. _SHARPEN_CLR_LRTB(((pS) )->b, \
  243. ((pC) - 1)->b, \
  244. ((pC) )->b, \
  245. ((pC) + 1)->b, \
  246. ((pT) )->b, \
  247. ((pB) )->b, \
  248. ExtraRS); \
  249. \
  250. _SHARPEN_CLR_LRTB(((pS) )->g, \
  251. ((pC) - 1)->g, \
  252. ((pC) )->g, \
  253. ((pC) + 1)->g, \
  254. ((pT) )->g, \
  255. ((pB) )->g, \
  256. ExtraRS); \
  257. \
  258. _SHARPEN_CLR_LRTB(((pS) )->r, \
  259. ((pC) - 1)->r, \
  260. ((pC) )->r, \
  261. ((pC) + 1)->r, \
  262. ((pT) )->r, \
  263. ((pB) )->r, \
  264. ExtraRS); \
  265. }
  266. #define RGB_DIMAX_TO_BYTE(prgb, rgbL, prgbLast) \
  267. { \
  268. prgb->r = (BYTE)(((DWORD)(rgbL.r)+(DI_MAX_NUM>>1)) >> DI_R_SHIFT);\
  269. prgb->g = (BYTE)(((DWORD)(rgbL.g)+(DI_MAX_NUM>>1)) >> DI_R_SHIFT);\
  270. (prgbLast)->b = (BYTE)(((DWORD)(rgbL.b)+(DI_MAX_NUM>>1)) >> DI_R_SHIFT);\
  271. }
  272. #define SHARPEN_PB_LRTB(pS, pT, pC, pB, ExtraRS) \
  273. { \
  274. _SHARPEN_CLR_LRTB(*((pS) ), \
  275. *((pC) - 1), \
  276. *((pC) ), \
  277. *((pC) + 1), \
  278. *((pT) ), \
  279. *((pB) ), \
  280. ExtraRS); \
  281. }
  282. #define GRAY_DIMAX_TO_BYTE(pb, Gray) \
  283. { \
  284. *(pb) = (BYTE)(((DWORD)(Gray) + (DI_MAX_NUM >> 1)) >> DI_R_SHIFT); \
  285. }
  286. //
  287. // GET_ALPHA_BLEND(s,d,a) is based on (s=Src, d=Dst, c=Alpha)
  288. // d = (s * a) + (1 - a) * d
  289. // = (s * a) + d - (d * a)
  290. // = d + (s * a) - (d * a)
  291. // = d + (s - d) * a
  292. // This macro will do the [(s - d) * a] by shifting to left of 16 bits to
  293. // obtain more precisions.
  294. //
  295. // GET_GRAY_ALPHA_BLEND(s,d,a) is same as GET_ALPHA_BLEND() except it is
  296. // using only 12 bits for precision, because gray level is already 16 bits
  297. // and a LONG can only up to 31 bits plus a sign bit
  298. //
  299. // GET_AB_DEST_CA(s,d,a) is based on (s=Src, d=Dst, srcAlpha)
  300. // GET_AB_DEST(s,d) is based on (s=Src Alpha, d=Dst Alpha)
  301. // d = s + (1 - s) * d
  302. // = s + d - (s * d)
  303. // This macro will do the [(s * d)] by shifting to left of 16 bits to
  304. // obtain more precisions.
  305. //
  306. //
  307. #define __B2W(b) ((WORD)GrayIdxWORD[b])
  308. #define GRAY_B2W(b) (WORD)__B2W(b)
  309. #define GET_CA_VALUE(b) (LONG)__B2W(b)
  310. #define _GET_GRAY_CA_VALUE(b) ((LONG)__B2W(b) >> 4)
  311. #define GET_GRAY_AB_SRC(s,d)
  312. #define GET_GRAY_AB_DST(s,d) (s)=(d)
  313. #define GET_GRAY_ALPHA_BLEND(s,d,a) \
  314. (s) = (WORD)(((LONG)(d) + (((((LONG)(s)-(LONG)(d)) \
  315. * _GET_GRAY_CA_VALUE(a)) + 0x800) >> 12)))
  316. #define _GET_BGR_BLEND(s,d,a) \
  317. (BYTE)(((LONG)(d)+(((((LONG)(s)-(LONG)(d))*(LONG)(a))+0x8000) >> 16)))
  318. #define GET_AB_BGR_SRC(pS, pbXlate, pD) \
  319. { \
  320. pS->b = (BYTE)pbXlate[pS->b]; \
  321. pS->g = (BYTE)pbXlate[pS->g]; \
  322. pS->r = (BYTE)pbXlate[pS->r]; \
  323. }
  324. #define GET_AB_BGR_DST(pS, pbXlate, pD) *(PBGR8)(pS) = *(PBGR8)(pD)
  325. #define GET_ALPHA_BLEND_BGR(pS, pbXlate, pD, a) \
  326. { \
  327. pS->b = (BYTE)_GET_BGR_BLEND(pbXlate[pS->b + 0], pD->b, a); \
  328. pS->g = (BYTE)_GET_BGR_BLEND(pbXlate[pS->g + 256], pD->g, a); \
  329. pS->r = (BYTE)_GET_BGR_BLEND(pbXlate[pS->r + 512], pD->r, a); \
  330. }
  331. #define GET_AB_DEST_CA_SRC(s,d) (d)=(s)
  332. #define GET_AB_DEST_CA_DST(s,d)
  333. #define GET_AB_DEST_CA(s,d,a) \
  334. (d)=(BYTE)(((LONG)(s)+(LONG)(d)-((((LONG)(d)*(LONG)(a))+0x8000)>>16)))
  335. #define GET_AB_DEST(s,d) \
  336. (BYTE)(((LONG)(s)+(LONG)(d)-((((LONG)(d)*GET_CA_VALUE(s))+0x8000)>>16)))
  337. #define _GET_CONST_ALPHA(a, b, p) (BYTE)(((a) + p[(b) + (256 * 3)]) >> 8)
  338. #define _GRAY_CONST_ALPHA(a, b, p) (WORD)(((a) + p[(b) + (256 * 3)]))
  339. #define GET_CONST_ALPHA_BGR(pS, pD, pwBGR) \
  340. { \
  341. pS->b = _GET_CONST_ALPHA(pwBGR[pS->b + 0], pD->b, pwBGR); \
  342. pS->g = _GET_CONST_ALPHA(pwBGR[pS->g + 256], pD->g, pwBGR); \
  343. pS->r = _GET_CONST_ALPHA(pwBGR[pS->r + 512], pD->r, pwBGR); \
  344. }
  345. #define GET_CONST_ALPHA_GRAY(pS, pbD, pwBGR) \
  346. ((PGRAYF)pS)->Gray = _GRAY_CONST_ALPHA(pwBGR[pS->g], *pbD, pwBGR)
  347. typedef LPBYTE (HTENTRY *AASHARPENFUNC)(DWORD AAHFlags,
  348. LPBYTE pS,
  349. LPBYTE pT,
  350. LPBYTE pC,
  351. LPBYTE pB,
  352. LONG cbIn);
  353. typedef VOID (HTENTRY *FASTEXPAACXFUNC)(PAAINFO pAAInfo,
  354. LPBYTE pIn,
  355. LPBYTE pOut,
  356. LPBYTE pOutEnd,
  357. LONG OutInc);
  358. #define _MUL1(x) ((LONG)(x))
  359. #define _MUL2(x) ((LONG)(x)<<1)
  360. #define _MUL3(x) (_MUL2(x)+(LONG)(x))
  361. #define _MUL4(x) ((LONG)(x)<<2)
  362. #define _MUL5(x) (_MUL4(x)+_MUL1(x))
  363. #define _MUL6(x) (_MUL4(x)+_MUL2(x))
  364. #define _MUL8(x) ((LONG)(x)<<3)
  365. #define _MUL10(x) (_MUL8(x)+_MUL2(x))
  366. #define _MUL12(x) (_MUL8(x)+_MUL4(x))
  367. #define _MUL16(x) ((LONG)(x)<<4)
  368. #define _MUL22(x) (_MUL16(x)+_MUL6(x))
  369. #define _MUL24(x) (_MUL4(_MUL6(x)))
  370. #define _MUL14(x) (_MUL16(x)-_MUL2(x))
  371. #define CLR_13(l,c) ((_MUL1(l)+_MUL3(c)+2) >> 2)
  372. #define CLR_35(l,c) ((_MUL3(l)+_MUL5(c)+4) >> 3)
  373. #define CLR_1319(l,c) ((_MUL4(_MUL3(l)+_MUL5(c))+_MUL1(l)-_MUL1(c)+16)>>5)
  374. #define CLR_1141(l,c,r) ((_MUL1(l)+_MUL14(c)+_MUL1(r)+8) >> 4)
  375. #define CLR_5225(l,c,r) ((_MUL5(_MUL1(l)+_MUL1(r))+_MUL22(c)+16) >> 5)
  376. #define CLR_3121(l,c,r) ((_MUL3(l)+_MUL12(c)+_MUL1(r)+8) >> 4)
  377. #define CLR_6251(l,c,r) ((_MUL6(l)+_MUL24(c)+_MUL1(c)+_MUL1(r)+16) >> 5)
  378. #define CLR_3263(l,c,r) ((_MUL3(_MUL1(l)+_MUL1(r))+_MUL24(c)+_MUL2(c)+16)>>5)
  379. #define BGR_MACRO(pO, Mac, cl, cc) \
  380. { \
  381. pO->r = (BYTE)Mac((cl).r, (cc).r); \
  382. pO->g = (BYTE)Mac((cl).g, (cc).g); \
  383. pO->b = (BYTE)Mac((cl).b, (cc).b); \
  384. }
  385. #define BGR_MACRO3(pO, Mac, cl, cc, cr) \
  386. { \
  387. pO->r = (BYTE)Mac((cl).r, (cc).r, (cr).r); \
  388. pO->g = (BYTE)Mac((cl).g, (cc).g, (cr).g); \
  389. pO->b = (BYTE)Mac((cl).b, (cc).b, (cr).b); \
  390. }
  391. #define GRAY_MACRO(pO, Mac, cl, cc) \
  392. { \
  393. pO->Gray = (WORD)Mac((cl), (cc)); \
  394. }
  395. #define GRAY_MACRO3(pO, Mac, cl, cc, cr) \
  396. { \
  397. pO->Gray = (WORD)Mac((cl), (cc), (cr)); \
  398. }
  399. //
  400. // Function Prototype
  401. //
  402. VOID
  403. HTENTRY
  404. MappingBGR(
  405. PBGR8 pbgr,
  406. LONG cbgr,
  407. PBGR8 pBGRMapTable,
  408. LPBYTE pbPat555
  409. );
  410. VOID
  411. HTENTRY
  412. MappingBGRF(
  413. PBGRF pbgrf,
  414. PBGRF pbgrfEnd,
  415. PBGR8 pBGRMapTable,
  416. LPBYTE pbPat555
  417. );
  418. PBGR8
  419. HTENTRY
  420. SharpenInput(
  421. DWORD AAHFlags,
  422. PBGR8 pbgrS,
  423. PBGR8 pbgr0,
  424. PBGR8 pbgr1,
  425. PBGR8 pbgr2,
  426. LONG cbBGRIn
  427. );
  428. LPBYTE
  429. HTENTRY
  430. GraySharpenInput(
  431. DWORD AAHFlags,
  432. LPBYTE pbS,
  433. LPBYTE pb0,
  434. LPBYTE pb1,
  435. LPBYTE pb2,
  436. LONG cbIn
  437. );
  438. LONG
  439. HTENTRY
  440. TileDIB_CY(
  441. PAAHEADER pAAHdr
  442. );
  443. VOID
  444. HTENTRY
  445. RepDIB_CX(
  446. PAAINFO pAAInfo,
  447. PBGR8 pIn,
  448. PBGR8 pOut,
  449. LPBYTE pOutEnd,
  450. LONG OutInc
  451. );
  452. LONG
  453. HTENTRY
  454. RepDIB_CY(
  455. PAAHEADER pAAHdr
  456. );
  457. LONG
  458. HTENTRY
  459. FastExpAA_CY(
  460. PAAHEADER pAAHdr
  461. );
  462. VOID
  463. HTENTRY
  464. SkipDIB_CX(
  465. PAAINFO pAAInfo,
  466. PBGR8 pIn,
  467. PBGR8 pOut,
  468. LPBYTE pOutEnd,
  469. LONG OutInc
  470. );
  471. LONG
  472. HTENTRY
  473. SkipDIB_CY(
  474. PAAHEADER pAAHdr
  475. );
  476. VOID
  477. HTENTRY
  478. CopyDIB_CX(
  479. PAAINFO pAAInfo,
  480. PBGR8 pIn,
  481. PBGR8 pOut,
  482. LPBYTE pOutEnd,
  483. LONG OutInc
  484. );
  485. LONG
  486. HTENTRY
  487. BltDIB_CY(
  488. PAAHEADER pAAHdr
  489. );
  490. VOID
  491. HTENTRY
  492. ShrinkDIB_CX(
  493. PAAINFO pAAInfo,
  494. PBGR8 pIn,
  495. PBGR8 pOut,
  496. LPBYTE pOutEnd,
  497. LONG OutInc
  498. );
  499. LONG
  500. HTENTRY
  501. ShrinkDIB_CY(
  502. PAAHEADER pAAHdr
  503. );
  504. VOID
  505. HTENTRY
  506. SrkYDIB_SrkCX(
  507. PAAINFO pAAInfo,
  508. PBGR8 pIn,
  509. PBGR8 pOut
  510. );
  511. LONG
  512. HTENTRY
  513. ShrinkDIB_CY_SrkCX(
  514. PAAHEADER pAAHdr
  515. );
  516. VOID
  517. HTENTRY
  518. ExpandDIB_CX(
  519. PAAINFO pAAInfo,
  520. PBGR8 pIn,
  521. PBGR8 pOut,
  522. LPBYTE pOutEnd,
  523. LONG OutInc
  524. );
  525. VOID
  526. HTENTRY
  527. ExpYDIB_ExpCX(
  528. PEXPDATA pED,
  529. PBGR8 pIn,
  530. PBGR8 pOut,
  531. PBGR8 pOutEnd
  532. );
  533. LONG
  534. HTENTRY
  535. ExpandDIB_CY_ExpCX(
  536. PAAHEADER pAAHdr
  537. );
  538. LONG
  539. HTENTRY
  540. ExpandDIB_CY(
  541. PAAHEADER pAAHdr
  542. );
  543. //
  544. // Gray functions
  545. //
  546. VOID
  547. HTENTRY
  548. GrayRepDIB_CX(
  549. PAAINFO pAAInfo,
  550. LPBYTE pIn,
  551. PGRAYF pOut,
  552. LPBYTE pOutEnd,
  553. LONG OutInc
  554. );
  555. VOID
  556. HTENTRY
  557. GraySkipDIB_CX(
  558. PAAINFO pAAInfo,
  559. LPBYTE pIn,
  560. PGRAYF pOut,
  561. LPBYTE pOutEnd,
  562. LONG OutInc
  563. );
  564. VOID
  565. HTENTRY
  566. GrayCopyDIB_CXGray(
  567. PAAINFO pAAInfo,
  568. LPBYTE pIn,
  569. PGRAYF pOut,
  570. LPBYTE pOutEnd,
  571. LONG OutInc
  572. );
  573. VOID
  574. HTENTRY
  575. GrayCopyDIB_CX(
  576. PAAINFO pAAInfo,
  577. LPBYTE pIn,
  578. LPBYTE pOut,
  579. LPBYTE pOutEnd,
  580. LONG OutInc
  581. );
  582. LONG
  583. HTENTRY
  584. GrayExpandDIB_CY_ExpCX(
  585. PAAHEADER pAAHdr
  586. );
  587. VOID
  588. HTENTRY
  589. GrayExpandDIB_CX(
  590. PAAINFO pAAInfo,
  591. LPBYTE pIn,
  592. LPBYTE pOut,
  593. LPBYTE pOutEnd,
  594. LONG OutInc
  595. );
  596. LONG
  597. HTENTRY
  598. GrayExpandDIB_CY(
  599. PAAHEADER pAAHdr
  600. );
  601. VOID
  602. HTENTRY
  603. GrayShrinkDIB_CX(
  604. PAAINFO pAAInfo,
  605. LPBYTE pIn,
  606. LPBYTE pOut,
  607. LPBYTE pOutEnd,
  608. LONG OutInc
  609. );
  610. LONG
  611. HTENTRY
  612. GrayShrinkDIB_CY(
  613. PAAHEADER pAAHdr
  614. );
  615. #endif // _HTSTRET_