Source code of Windows XP (NT5)
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.

547 lines
28 KiB

  1. #ifndef _pixel_h_
  2. #define _pixel_h_
  3. /*
  4. ** Copyright 1991,1992, Silicon Graphics, Inc.
  5. ** All Rights Reserved.
  6. **
  7. ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  8. ** the contents of this file may not be disclosed to third parties, copied or
  9. ** duplicated in any form, in whole or in part, without the prior written
  10. ** permission of Silicon Graphics, Inc.
  11. **
  12. ** RESTRICTED RIGHTS LEGEND:
  13. ** Use, duplication or disclosure by the Government is subject to restrictions
  14. ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  15. ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  16. ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  17. ** rights reserved under the Copyright Laws of the United States.
  18. */
  19. #include "types.h"
  20. #include "vertex.h"
  21. #include "constant.h"
  22. /* Not much for elegance, but it works. */
  23. #define __GL_N_PIXEL_MAPS (GL_PIXEL_MAP_A_TO_A - GL_PIXEL_MAP_I_TO_I + 1)
  24. #define __GL_REMAP_PM(x) ((x) - GL_PIXEL_MAP_I_TO_I)
  25. #define __GL_PIXEL_MAP_I_TO_I __GL_REMAP_PM(GL_PIXEL_MAP_I_TO_I)
  26. #define __GL_PIXEL_MAP_S_TO_S __GL_REMAP_PM(GL_PIXEL_MAP_S_TO_S)
  27. #define __GL_PIXEL_MAP_I_TO_R __GL_REMAP_PM(GL_PIXEL_MAP_I_TO_R)
  28. #define __GL_PIXEL_MAP_I_TO_G __GL_REMAP_PM(GL_PIXEL_MAP_I_TO_G)
  29. #define __GL_PIXEL_MAP_I_TO_B __GL_REMAP_PM(GL_PIXEL_MAP_I_TO_B)
  30. #define __GL_PIXEL_MAP_I_TO_A __GL_REMAP_PM(GL_PIXEL_MAP_I_TO_A)
  31. #define __GL_PIXEL_MAP_R_TO_R __GL_REMAP_PM(GL_PIXEL_MAP_R_TO_R)
  32. #define __GL_PIXEL_MAP_G_TO_G __GL_REMAP_PM(GL_PIXEL_MAP_G_TO_G)
  33. #define __GL_PIXEL_MAP_B_TO_B __GL_REMAP_PM(GL_PIXEL_MAP_B_TO_B)
  34. #define __GL_PIXEL_MAP_A_TO_A __GL_REMAP_PM(GL_PIXEL_MAP_A_TO_A)
  35. /*
  36. ** Pixel type not exlicitly defined by the spec, but implictly suggested.
  37. */
  38. #define __GL_RED_ALPHA 1
  39. #ifdef GL_EXT_paletted_texture
  40. // Pixel type needed to distinguish paletted texture data from
  41. // normal color index
  42. #define __GL_PALETTE_INDEX 2
  43. #endif
  44. typedef struct __GLpixelMapHeadRec {
  45. GLint size;
  46. GLint tableId;
  47. union {
  48. GLint *mapI; /* access index (integral) entries */
  49. __GLfloat *mapF; /* access component (float) entries */
  50. } base;
  51. } __GLpixelMapHead;
  52. //!!! Don't change this structure without changing MCDPIXELTRANSFER !!!
  53. typedef struct __GLpixelTransferModeRec {
  54. __GLfloat r_scale, g_scale, b_scale, a_scale, d_scale;
  55. __GLfloat r_bias, g_bias, b_bias, a_bias, d_bias;
  56. __GLfloat zoomX;
  57. __GLfloat zoomY;
  58. GLint indexShift;
  59. GLint indexOffset;
  60. GLboolean mapColor;
  61. GLboolean mapStencil;
  62. } __GLpixelTransferMode;
  63. //!!! Don't change this structure without changing MCDPIXELPACK !!!
  64. typedef struct __GLpixelPackModeRec {
  65. GLboolean swapEndian;
  66. GLboolean lsbFirst;
  67. GLuint lineLength;
  68. GLuint skipLines;
  69. GLuint skipPixels;
  70. GLuint alignment;
  71. } __GLpixelPackMode;
  72. //!!! Don't change this structure without changing MCDPIXELUNPACK !!!
  73. typedef struct __GLpixelUnpackModeRec {
  74. GLboolean swapEndian;
  75. GLboolean lsbFirst;
  76. GLuint lineLength;
  77. GLuint skipLines;
  78. GLuint skipPixels;
  79. GLuint alignment;
  80. } __GLpixelUnpackMode;
  81. typedef struct __GLpixelStateRec {
  82. __GLpixelTransferMode transferMode;
  83. __GLpixelMapHead pixelMap[__GL_N_PIXEL_MAPS];
  84. __GLpixelPackMode packModes;
  85. __GLpixelUnpackMode unpackModes;
  86. GLuint pixelMapTableId;
  87. /*
  88. ** Read buffer. Where pixel reads come from.
  89. */
  90. GLenum readBuffer;
  91. /*
  92. ** Read buffer specified by user. May be different from readBuffer
  93. ** above. If the user specifies GL_FRONT_LEFT, for example, then
  94. ** readBuffer is set to GL_FRONT, and readBufferReturn to
  95. ** GL_FRONT_LEFT.
  96. */
  97. GLenum readBufferReturn;
  98. } __GLpixelState;
  99. typedef struct __GLpixelMachineRec {
  100. GLboolean modifyRGBA; /* Is the RGBA path being modified? */
  101. GLboolean modifyCI;
  102. GLboolean modifyDepth;
  103. GLboolean modifyStencil;
  104. /* scaled values indicating what a red of 0 maps to, an alpha of 1 ... */
  105. GLfloat red0Mod, green0Mod, blue0Mod, alpha1Mod;
  106. GLfloat *redMap; /* Lookup tables with no modification */
  107. GLfloat *greenMap;
  108. GLfloat *blueMap;
  109. GLfloat *alphaMap;
  110. GLfloat *iMap;
  111. GLvoid *iCurMap, *redCurMap, *greenCurMap, *blueCurMap, *alphaCurMap;
  112. GLboolean rgbaCurrent;
  113. GLfloat *redModMap; /* Lookup tables for modification path */
  114. GLfloat *greenModMap;
  115. GLfloat *blueModMap;
  116. GLfloat *alphaModMap;
  117. GLboolean iToICurrent; /* Lookup table for modification of CI */
  118. GLfloat *iToIMap;
  119. GLboolean iToRGBACurrent; /* Lookup tables from CI to RGBA */
  120. GLfloat *iToRMap;
  121. GLfloat *iToGMap;
  122. GLfloat *iToBMap;
  123. GLfloat *iToAMap;
  124. } __GLpixelMachine;
  125. extern void FASTCALL __glInitDefaultPixelMap(__GLcontext *gc, GLenum map);
  126. /************************************************************************/
  127. #define __GL_MAX_SPAN_SIZE (__GL_MAX_MAX_VIEWPORT * 4 * sizeof(GLfloat))
  128. struct __GLpixelSpanInfoRec {
  129. GLenum srcFormat, srcType; /* Form of source image */
  130. const GLvoid *srcImage; /* The source image */
  131. GLvoid *srcCurrent; /* The current pointer into the source data */
  132. GLint srcRowIncrement; /* Add this much to get to the next row */
  133. GLint srcGroupIncrement; /* Add this much to get to the next group */
  134. GLint srcComponents; /* (4 for RGBA, 1 for ALPHA, etc.) */
  135. GLint srcElementSize; /* Size of one element (1 for BYTE) */
  136. GLint srcSwapBytes;
  137. GLint srcLsbFirst;
  138. GLint srcSkipPixels, srcSkipLines;
  139. GLint srcLineLength;
  140. GLint srcAlignment;
  141. GLboolean srcPackedData; /* True if source data is packed */
  142. GLint srcStartBit; /* After applying skipPixels */
  143. GLenum dstFormat, dstType; /* Form of destination image */
  144. const GLvoid *dstImage; /* The destination image */
  145. GLvoid *dstCurrent; /* The current pointer into the dest data */
  146. GLint dstRowIncrement; /* Add this much to get to the next row */
  147. GLint dstGroupIncrement; /* Add this much to get to the next group */
  148. GLint dstComponents; /* (4 for RGBA, 1 for ALPHA, etc.) */
  149. GLint dstElementSize; /* Size of one element (1 for BYTE) */
  150. GLint dstSwapBytes;
  151. GLint dstLsbFirst;
  152. GLint dstSkipPixels, dstSkipLines;
  153. GLint dstLineLength;
  154. GLint dstAlignment;
  155. GLboolean dstPackedData; /* True if destination data is packed */
  156. GLint dstStartBit; /* After applying skipPixels */
  157. __GLfloat zoomx, zoomy;
  158. GLint width, height; /* Size of image */
  159. GLint realWidth; /* Width of actual span (after xZoom) */
  160. __GLfloat readX, readY; /* Reading coords (CopyPixels, ReadPixels) */
  161. __GLfloat x, y; /* Effective raster coordinates */
  162. GLint startCol, startRow; /* First actual pixel goes here */
  163. GLint endCol; /* Last column rendered (minus coladd) */
  164. GLint columns, rows; /* Taking zoomx, zoomy into account */
  165. GLboolean overlap; /* Do CopyPixels src/dest regions overlap? */
  166. GLint rowsUp, rowsDown; /* Stuff for overlapping CopyPixels regions */
  167. GLint rowadd, coladd; /* Adders for incrementing the col or row */
  168. __GLfloat rendZoomx; /* effective zoomx for render span */
  169. __GLzValue fragz; /* save this computation in the span walker */
  170. __GLfloat rpyUp, rpyDown;
  171. GLint startUp, startDown;
  172. GLint readUp, readDown;
  173. GLvoid *redMap, *greenMap, *blueMap, *alphaMap;
  174. GLvoid *indexMap;
  175. GLshort *pixelArray; /* Array of pixel relication counts (if */
  176. /* zoomx < -1 or zoomx > 1) or pixels to */
  177. /* skip (if zoomx < 1 and zoomx > -1). */
  178. #ifdef GL_EXT_paletted_texture
  179. // Used when the source or destination has a palette
  180. // These fields are only used for expanding palette index
  181. // data into RGBA so only source fields are needed
  182. RGBQUAD *srcPalette;
  183. GLint srcPaletteSize;
  184. #endif
  185. /*
  186. ** A pile of span routines used by the DrawPixels, ReadPixels, and
  187. ** CopyPixels functions.
  188. */
  189. void (FASTCALL *spanReader)(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  190. GLvoid *outspan);
  191. void (*(spanModifier[7]))(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  192. GLvoid *inspan, GLvoid *outspan);
  193. void (FASTCALL *spanRender)(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  194. GLvoid *inspan);
  195. };
  196. /* px_api.c */
  197. extern GLboolean __glCheckDrawPixelArgs(__GLcontext *gc, GLsizei width,
  198. GLsizei height, GLenum format,
  199. GLenum type);
  200. void FASTCALL __glPixelSetColorScales(__GLcontext *);
  201. /* px_paths.c */
  202. GLboolean FASTCALL __glClipDrawPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  203. void FASTCALL __glComputeSpanPixelArray(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  204. void FASTCALL __glLoadUnpackModes(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  205. GLboolean packed);
  206. void __glInitDrawPixelsInfo(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  207. GLint width, GLint height, GLenum format,
  208. GLenum type, const GLvoid *pixels);
  209. void FASTCALL __glDrawPixels4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  210. void FASTCALL __glDrawPixels3(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  211. void FASTCALL __glDrawPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  212. void FASTCALL __glDrawPixels1(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  213. void FASTCALL __glDrawPixels0(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  214. void __glSlowPickDrawPixels(__GLcontext *gc, GLint width, GLint height,
  215. GLenum format, GLenum type, const GLvoid *pixels,
  216. GLboolean packed);
  217. void FASTCALL __glGenericPickDrawPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  218. GLboolean FASTCALL __glClipReadPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  219. void FASTCALL __glLoadPackModes(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  220. void __glInitReadPixelsInfo(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  221. GLint x, GLint y, GLint width, GLint height,
  222. GLenum format, GLenum type, const GLvoid *pixels);
  223. void FASTCALL __glReadPixels5(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  224. void FASTCALL __glReadPixels4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  225. void FASTCALL __glReadPixels3(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  226. void FASTCALL __glReadPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  227. void FASTCALL __glReadPixels1(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  228. void FASTCALL __glReadPixels0(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  229. void __glSlowPickReadPixels(__GLcontext *gc, GLint x, GLint y,
  230. GLsizei width, GLsizei height,
  231. GLenum format, GLenum type, const GLvoid *pixels);
  232. void FASTCALL __glGenericPickReadPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  233. GLboolean FASTCALL __glClipCopyPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  234. void __glInitCopyPixelsInfo(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  235. GLint x, GLint y, GLint width, GLint height,
  236. GLenum format);
  237. void FASTCALL __glCopyPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  238. void FASTCALL __glCopyPixels1(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  239. void FASTCALL __glCopyPixels0(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  240. void FASTCALL __glCopyPixelsOverlapping(__GLcontext *gc,
  241. __GLpixelSpanInfo *spanInfo, GLint modifiers);
  242. void __glSlowPickCopyPixels(__GLcontext *gc, GLint x, GLint y, GLint width,
  243. GLint height, GLenum type);
  244. void FASTCALL __glGenericPickCopyPixels(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  245. void FASTCALL __glCopyImage1(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  246. void FASTCALL __glCopyImage2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  247. void FASTCALL __glCopyImage3(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  248. void FASTCALL __glCopyImage4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  249. void FASTCALL __glCopyImage5(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  250. void FASTCALL __glCopyImage6(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  251. void FASTCALL __glCopyImage7(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  252. void FASTCALL __glGenericPickCopyImage(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  253. GLboolean applyPixelTransfer);
  254. /* px_modify.c */
  255. void FASTCALL __glBuildRGBAModifyTables(__GLcontext *gc, __GLpixelMachine *pm);
  256. void FASTCALL __glBuildItoIModifyTables(__GLcontext *gc, __GLpixelMachine *pm);
  257. void FASTCALL __glBuildItoRGBAModifyTables(__GLcontext *gc,
  258. __GLpixelMachine *pm);
  259. void __glSpanModifyRGBA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  260. GLvoid *inspan, GLvoid *outspan);
  261. void __glSpanModifyRed(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  262. GLvoid *inspan, GLvoid *outspan);
  263. void __glSpanModifyBlue(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  264. GLvoid *inspan, GLvoid *outspan);
  265. void __glSpanModifyGreen(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  266. GLvoid *inspan, GLvoid *outspan);
  267. void __glSpanModifyAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  268. GLvoid *inspan, GLvoid *outspan);
  269. void __glSpanModifyRGB(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  270. GLvoid *inspan, GLvoid *outspan);
  271. void __glSpanModifyLuminance(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  272. GLvoid *inspan, GLvoid *outspan);
  273. void __glSpanModifyLuminanceAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  274. GLvoid *inspan, GLvoid *outspan);
  275. void __glSpanModifyRedAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  276. GLvoid *inspan, GLvoid *outspan);
  277. void __glSpanModifyDepth(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  278. GLvoid *inspan, GLvoid *outspan);
  279. void __glSpanModifyStencil(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  280. GLvoid *inspan, GLvoid *outspan);
  281. void __glSpanModifyCI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  282. GLvoid *inspan, GLvoid *outspan);
  283. /* px_pack.c */
  284. void FASTCALL __glInitPacker(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  285. void __glSpanReduceRed(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  286. GLvoid *inspan, GLvoid *outspan);
  287. void __glSpanReduceGreen(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  288. GLvoid *inspan, GLvoid *outspan);
  289. void __glSpanReduceBlue(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  290. GLvoid *inspan, GLvoid *outspan);
  291. void __glSpanReduceAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  292. GLvoid *inspan, GLvoid *outspan);
  293. void __glSpanReduceRGB(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  294. GLvoid *inspan, GLvoid *outspan);
  295. #ifdef GL_EXT_bgra
  296. void __glSpanReduceBGR(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  297. GLvoid *inspan, GLvoid *outspan);
  298. #endif
  299. void __glSpanReduceLuminance(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  300. GLvoid *inspan, GLvoid *outspan);
  301. void __glSpanReduceLuminanceAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  302. GLvoid *inspan, GLvoid *outspan);
  303. void __glSpanReduceRedAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  304. GLvoid *inspan, GLvoid *outspan);
  305. void __glSpanPackUbyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  306. GLvoid *inspan, GLvoid *outspan);
  307. void __glSpanPackByte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  308. GLvoid *inspan, GLvoid *outspan);
  309. void __glSpanPackUshort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  310. GLvoid *inspan, GLvoid *outspan);
  311. void __glSpanPackShort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  312. GLvoid *inspan, GLvoid *outspan);
  313. void __glSpanPackUint(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  314. GLvoid *inspan, GLvoid *outspan);
  315. void __glSpanPackInt(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  316. GLvoid *inspan, GLvoid *outspan);
  317. void __glSpanPackUbyteI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  318. GLvoid *inspan, GLvoid *outspan);
  319. void __glSpanPackByteI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  320. GLvoid *inspan, GLvoid *outspan);
  321. void __glSpanPackUshortI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  322. GLvoid *inspan, GLvoid *outspan);
  323. void __glSpanPackShortI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  324. GLvoid *inspan, GLvoid *outspan);
  325. void __glSpanPackUintI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  326. GLvoid *inspan, GLvoid *outspan);
  327. void __glSpanPackIntI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  328. GLvoid *inspan, GLvoid *outspan);
  329. void __glSpanCopy(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  330. GLvoid *inspan, GLvoid *outspan);
  331. void __glSpanPackBitmap(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  332. GLvoid *inspan, GLvoid *outspan);
  333. /* px_read.c */
  334. void FASTCALL __glSpanReadRGBA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  335. GLvoid *span);
  336. void FASTCALL __glSpanReadRGBA2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  337. GLvoid *span);
  338. void FASTCALL __glSpanReadCI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  339. GLvoid *span);
  340. void FASTCALL __glSpanReadCI2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  341. GLvoid *span);
  342. void FASTCALL __glSpanReadDepth(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  343. GLvoid *span);
  344. void FASTCALL __glSpanReadDepth2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  345. GLvoid *span);
  346. void FASTCALL __glSpanReadStencil(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  347. GLvoid *span);
  348. void FASTCALL __glSpanReadStencil2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  349. GLvoid *span);
  350. /* px_render.c */
  351. void FASTCALL __glSlowDrawPixelsStore(__GLcolorBuffer *cfb, const __GLfragment *frag);
  352. void FASTCALL __glSpanRenderRGBubyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  353. GLvoid *span);
  354. void FASTCALL __glSpanRenderRGBubyte2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  355. GLvoid *span);
  356. void FASTCALL __glSpanRenderRGBAubyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  357. GLvoid *span);
  358. void FASTCALL __glSpanRenderRGBAubyte2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  359. GLvoid *span);
  360. void FASTCALL __glSpanRenderDepthUint(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  361. GLvoid *span);
  362. void FASTCALL __glSpanRenderDepthUint2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  363. GLvoid *span);
  364. void FASTCALL __glSpanRenderDepth2Uint(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  365. GLvoid *span);
  366. void FASTCALL __glSpanRenderDepth2Uint2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  367. GLvoid *span);
  368. void FASTCALL __glSpanRenderStencilUshort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  369. GLvoid *span);
  370. void FASTCALL __glSpanRenderStencilUshort2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  371. GLvoid *span);
  372. void FASTCALL __glSpanRenderStencilUbyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  373. GLvoid *span);
  374. void FASTCALL __glSpanRenderStencilUbyte2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  375. GLvoid *span);
  376. void FASTCALL __glSpanRenderCIushort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  377. GLvoid *span);
  378. void FASTCALL __glSpanRenderCIushort2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  379. GLvoid *span);
  380. void FASTCALL __glSpanRenderCIubyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  381. GLvoid *span);
  382. void FASTCALL __glSpanRenderCIubyte2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  383. GLvoid *span);
  384. void FASTCALL __glSpanRenderCIubyte3(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  385. GLvoid *span);
  386. void FASTCALL __glSpanRenderCIubyte4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  387. GLvoid *span);
  388. void FASTCALL __glSpanRenderRGBA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  389. GLvoid *span);
  390. void FASTCALL __glSpanRenderRGBA2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  391. GLvoid *span);
  392. void FASTCALL __glSpanRenderDepth(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  393. GLvoid *span);
  394. void FASTCALL __glSpanRenderDepth2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  395. GLvoid *span);
  396. void FASTCALL __glSpanRenderCI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  397. GLvoid *span);
  398. void FASTCALL __glSpanRenderCI2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  399. GLvoid *span);
  400. void FASTCALL __glSpanRenderStencil(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  401. GLvoid *span);
  402. void FASTCALL __glSpanRenderStencil2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  403. GLvoid *span);
  404. /* px_unpack.c */
  405. GLint FASTCALL __glElementsPerGroup(GLenum format);
  406. __GLfloat FASTCALL __glBytesPerElement(GLenum type);
  407. void FASTCALL __glInitUnpacker(__GLcontext *gc, __GLpixelSpanInfo *spanInfo);
  408. void __glSpanUnpackBitmap(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  409. GLvoid *inspan, GLvoid *outspan);
  410. void __glSpanUnpackBitmap2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  411. GLvoid *inspan, GLvoid *outspan);
  412. void __glSpanUnpackRGBubyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  413. GLvoid *inspan, GLvoid *outspan);
  414. void __glSpanUnpackIndexUbyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  415. GLvoid *inspan, GLvoid *outspan);
  416. void __glSpanUnpackRGBAubyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  417. GLvoid *inspan, GLvoid *outspan);
  418. void __glSpanSwapBytes2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  419. GLvoid *inspan, GLvoid *outspan);
  420. void __glSpanSwapBytes2Dst(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  421. GLvoid *inspan, GLvoid *outspan);
  422. void __glSpanSwapAndSkipBytes2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  423. GLvoid *inspan, GLvoid *outspan);
  424. void __glSpanSwapBytes4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  425. GLvoid *inspan, GLvoid *outspan);
  426. void __glSpanSwapBytes4Dst(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  427. GLvoid *inspan, GLvoid *outspan);
  428. void __glSpanSwapAndSkipBytes4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  429. GLvoid *inspan, GLvoid *outspan);
  430. void __glSpanSkipPixels1(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  431. GLvoid *inspan, GLvoid *outspan);
  432. void __glSpanSkipPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  433. GLvoid *inspan, GLvoid *outspan);
  434. void __glSpanSkipPixels4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  435. GLvoid *inspan, GLvoid *outspan);
  436. void __glSpanSlowSkipPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  437. GLvoid *inspan, GLvoid *outspan);
  438. void __glSpanSlowSkipPixels4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  439. GLvoid *inspan, GLvoid *outspan);
  440. void __glSpanAlignPixels2(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  441. GLvoid *inspan, GLvoid *outspan);
  442. void __glSpanAlignPixels2Dst(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  443. GLvoid *inspan, GLvoid *outspan);
  444. void __glSpanAlignPixels4(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  445. GLvoid *inspan, GLvoid *outspan);
  446. void __glSpanAlignPixels4Dst(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  447. GLvoid *inspan, GLvoid *outspan);
  448. void __glSpanUnpackUbyte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  449. GLvoid *inspan, GLvoid *outspan);
  450. void __glSpanUnpackByte(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  451. GLvoid *inspan, GLvoid *outspan);
  452. void __glSpanUnpackUshort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  453. GLvoid *inspan, GLvoid *outspan);
  454. void __glSpanUnpackShort(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  455. GLvoid *inspan, GLvoid *outspan);
  456. void __glSpanUnpackUint(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  457. GLvoid *inspan, GLvoid *outspan);
  458. void __glSpanUnpackInt(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  459. GLvoid *inspan, GLvoid *outspan);
  460. void __glSpanUnpackUbyteI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  461. GLvoid *inspan, GLvoid *outspan);
  462. void __glSpanUnpackByteI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  463. GLvoid *inspan, GLvoid *outspan);
  464. void __glSpanUnpackUshortI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  465. GLvoid *inspan, GLvoid *outspan);
  466. void __glSpanUnpackShortI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  467. GLvoid *inspan, GLvoid *outspan);
  468. void __glSpanUnpackUintI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  469. GLvoid *inspan, GLvoid *outspan);
  470. void __glSpanUnpackIntI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  471. GLvoid *inspan, GLvoid *outspan);
  472. void __glSpanClampFloat(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  473. GLvoid *inspan, GLvoid *outspan);
  474. void __glSpanClampSigned(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  475. GLvoid *inspan, GLvoid *outspan);
  476. void __glSpanExpandRed(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  477. GLvoid *inspan, GLvoid *outspan);
  478. void __glSpanExpandGreen(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  479. GLvoid *inspan, GLvoid *outspan);
  480. void __glSpanExpandBlue(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  481. GLvoid *inspan, GLvoid *outspan);
  482. void __glSpanExpandAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  483. GLvoid *inspan, GLvoid *outspan);
  484. void __glSpanExpandRGB(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  485. GLvoid *inspan, GLvoid *outspan);
  486. #ifdef GL_EXT_bgra
  487. void __glSpanExpandBGR(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  488. GLvoid *inspan, GLvoid *outspan);
  489. #endif
  490. void __glSpanExpandLuminance(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  491. GLvoid *inspan, GLvoid *outspan);
  492. void __glSpanExpandLuminanceAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  493. GLvoid *inspan, GLvoid *outspan);
  494. void __glSpanExpandRedAlpha(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  495. GLvoid *inspan, GLvoid *outspan);
  496. void __glSpanScaleRGBA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  497. GLvoid *inspan, GLvoid *outspan);
  498. void __glSpanUnscaleRGBA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  499. GLvoid *inspan, GLvoid *outspan);
  500. #ifdef GL_EXT_bgra
  501. void __glSpanScaleBGRA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  502. GLvoid *inspan, GLvoid *outspan);
  503. void __glSpanUnscaleBGRA(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  504. GLvoid *inspan, GLvoid *outspan);
  505. #endif
  506. #ifdef GL_EXT_paletted_texture
  507. void __glSpanModifyPI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  508. GLvoid *inspan, GLvoid *outspan);
  509. void __glSpanScalePI(__GLcontext *gc, __GLpixelSpanInfo *spanInfo,
  510. GLvoid *inspan, GLvoid *outspan);
  511. #endif
  512. #endif /* _pixel_h_ */