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.

895 lines
42 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: compsize.c
  3. *
  4. * Functions to compute size of input buffer.
  5. *
  6. *
  7. * Copyright (c) 1993 Microsoft Corporation
  8. \**************************************************************************/
  9. #ifndef _CLIENTSIDE_
  10. #include "precomp.h"
  11. #pragma hdrstop
  12. #include "compsize.h"
  13. #include "glsize.h"
  14. // Server code will flag the bad enum
  15. #define GL_BAD_SIZE(x) {return(0);}
  16. static GLint gaiMapSize[] = {
  17. 4, //GL_MAP1_COLOR_4 , GL_MAP2_COLOR_4
  18. 1, //GL_MAP1_INDEX , GL_MAP2_INDEX
  19. 3, //GL_MAP1_NORMAL , GL_MAP2_NORMAL
  20. 1, //GL_MAP1_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_1
  21. 2, //GL_MAP1_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_2
  22. 3, //GL_MAP1_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_3
  23. 4, //GL_MAP1_TEXTURE_COORD_4, GL_MAP2_TEXTURE_COORD_4
  24. 3, //GL_MAP1_VERTEX_3 , GL_MAP2_VERTEX_3
  25. 4, //GL_MAP1_VERTEX_4 , GL_MAP2_VERTEX_4
  26. };
  27. #define RANGE_MAP1SIZE(n) RANGE(n,GL_MAP1_COLOR_4,GL_MAP1_VERTEX_4)
  28. #define MAP1SIZE(n) gaiMapSize[(n)-GL_MAP1_COLOR_4]
  29. #define RANGE_MAP2SIZE(n) RANGE(n,GL_MAP2_COLOR_4,GL_MAP2_VERTEX_4)
  30. #define MAP2SIZE(n) gaiMapSize[(n)-GL_MAP2_COLOR_4]
  31. GLint gaiGLTypeSize[] = {
  32. 1, //GL_BYTE
  33. 1, //GL_UNSIGNED_BYTE
  34. 2, //GL_SHORT
  35. 2, //GL_UNSIGNED_SHORT
  36. 4, //GL_INT
  37. 4, //GL_UNSIGNED_INT
  38. 4, //GL_FLOAT
  39. 2, //GL_2_BYTES
  40. 3, //GL_3_BYTES
  41. 4 //GL_4_BYTES
  42. };
  43. GLint __glCallLists_size(GLint n, GLenum type)
  44. {
  45. if ( RANGE_GLTYPESIZE(type) )
  46. return(GLTYPESIZE(type) * n);
  47. GL_BAD_SIZE(type);
  48. }
  49. GLint __glCltMap1_size(GLenum target)
  50. {
  51. if (RANGE_MAP1SIZE(target))
  52. return(MAP1SIZE(target));
  53. GL_BAD_SIZE(target);
  54. }
  55. //XXX Optimize if (vstride != MAP2SIZE) or (ustride != MAP2SIZE * vorder)
  56. //XXX by changing vstride to MAP1SIZE, ustride to MAPSIZE * vorder
  57. //XXX and copying minimal data to the shared memory window.
  58. GLint __glCltMap2_size(GLenum target)
  59. {
  60. // PTAR: (uorder - 1) ???
  61. // How come nothing is done with target?
  62. //
  63. // if (RANGE_MAP2SIZE(target)
  64. // && ustride >= MAP2SIZE(target) && vstride >= MAP2SIZE(target)
  65. // && uorder >= 1 && vorder >= 1)
  66. // return(ustride * (uorder - 1) + vstride * vorder);
  67. if (RANGE_MAP2SIZE(target))
  68. return(MAP2SIZE(target));
  69. GL_BAD_SIZE(target);
  70. }
  71. GLint __glGetMap_size(GLenum target, GLenum query)
  72. {
  73. GLint order, majorMinor[2];
  74. if ( RANGE_MAP1SIZE(target) )
  75. {
  76. switch (query)
  77. {
  78. case GL_COEFF:
  79. glGetMapiv(target, GL_ORDER, &order);
  80. return (order * MAP1SIZE(target));
  81. case GL_ORDER:
  82. return 1;
  83. case GL_DOMAIN:
  84. return 2;
  85. }
  86. }
  87. else if ( RANGE_MAP2SIZE(target) )
  88. {
  89. switch (query)
  90. {
  91. case GL_COEFF:
  92. glGetMapiv(target, GL_ORDER, majorMinor);
  93. return (majorMinor[0] * majorMinor[1] * MAP2SIZE(target));
  94. case GL_ORDER:
  95. return 2;
  96. case GL_DOMAIN:
  97. return 4;
  98. }
  99. }
  100. GL_BAD_SIZE(target);
  101. }
  102. GLint __glGetPixelMap_size(GLenum map)
  103. {
  104. GLint size;
  105. if ( RANGE(map, GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_A_TO_A) )
  106. {
  107. // For each GL_PIXEL_* there is a corresponding GL_PIXEL_*_SIZE
  108. // for which we can call glGetIntergerv. We convert GL_PIXEL_*
  109. // to GL_PIXEL_*_SIZE by exploiting the contiguous nature of the
  110. // indices (i.e., we add to map the offset of the GL_PIXEL_*_SIZE
  111. // range from the GL_PIXEL_* range).
  112. glGetIntegerv(map+(GL_PIXEL_MAP_I_TO_I_SIZE - GL_PIXEL_MAP_I_TO_I), &size);
  113. return size;
  114. }
  115. GL_BAD_SIZE(map);
  116. }
  117. #define GET_INDEX_MIN GL_CURRENT_COLOR
  118. #define GET_INDEX_MAX GL_TEXTURE_2D
  119. static GLubyte gabGetSize[GET_INDEX_MAX - GET_INDEX_MIN + 1] =
  120. {
  121. 4, // GL_CURRENT_COLOR 0x0B00
  122. 1, // GL_CURRENT_INDEX 0x0B01
  123. 3, // GL_CURRENT_NORMAL 0x0B02
  124. 4, // GL_CURRENT_TEXTURE_COORDS 0x0B03
  125. 4, // GL_CURRENT_RASTER_COLOR 0x0B04
  126. 1, // GL_CURRENT_RASTER_INDEX 0x0B05
  127. 4, // GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
  128. 4, // GL_CURRENT_RASTER_POSITION 0x0B07
  129. 1, // GL_CURRENT_RASTER_POSITION_VALID 0x0B08
  130. 1, // GL_CURRENT_RASTER_DISTANCE 0x0B09
  131. 0, // 0x0B0A
  132. 0, // 0x0B0B
  133. 0, // 0x0B0C
  134. 0, // 0x0B0D
  135. 0, // 0x0B0E
  136. 0, // 0x0B0F
  137. 1, // GL_POINT_SMOOTH 0x0B10
  138. 1, // GL_POINT_SIZE 0x0B11
  139. 2, // GL_POINT_SIZE_RANGE 0x0B12
  140. 1, // GL_POINT_SIZE_GRANULARITY 0x0B13
  141. 0, // 0x0B14
  142. 0, // 0x0B15
  143. 0, // 0x0B16
  144. 0, // 0x0B17
  145. 0, // 0x0B18
  146. 0, // 0x0B19
  147. 0, // 0x0B1A
  148. 0, // 0x0B1B
  149. 0, // 0x0B1C
  150. 0, // 0x0B1D
  151. 0, // 0x0B1E
  152. 0, // 0x0B1F
  153. 1, // GL_LINE_SMOOTH 0x0B20
  154. 1, // GL_LINE_WIDTH 0x0B21
  155. 2, // GL_LINE_WIDTH_RANGE 0x0B22
  156. 1, // GL_LINE_WIDTH_GRANULARITY 0x0B23
  157. 1, // GL_LINE_STIPPLE 0x0B24
  158. 1, // GL_LINE_STIPPLE_PATTERN 0x0B25
  159. 1, // GL_LINE_STIPPLE_REPEAT 0x0B26
  160. 0, // 0x0B27
  161. 0, // 0x0B28
  162. 0, // 0x0B29
  163. 0, // 0x0B2A
  164. 0, // 0x0B2B
  165. 0, // 0x0B2C
  166. 0, // 0x0B2D
  167. 0, // 0x0B2E
  168. 0, // 0x0B2F
  169. 1, // GL_LIST_MODE 0x0B30
  170. 1, // GL_MAX_LIST_NESTING 0x0B31
  171. 1, // GL_LIST_BASE 0x0B32
  172. 1, // GL_LIST_INDEX 0x0B33
  173. 0, // 0x0B34
  174. 0, // 0x0B35
  175. 0, // 0x0B36
  176. 0, // 0x0B37
  177. 0, // 0x0B38
  178. 0, // 0x0B39
  179. 0, // 0x0B3A
  180. 0, // 0x0B3B
  181. 0, // 0x0B3C
  182. 0, // 0x0B3D
  183. 0, // 0x0B3E
  184. 0, // 0x0B3F
  185. 2, // GL_POLYGON_MODE 0x0B40
  186. 1, // GL_POLYGON_SMOOTH 0x0B41
  187. 1, // GL_POLYGON_STIPPLE 0x0B42
  188. 1, // GL_EDGE_FLAG 0x0B43
  189. 1, // GL_CULL_FACE 0x0B44
  190. 1, // GL_CULL_FACE_MODE 0x0B45
  191. 1, // GL_FRONT_FACE 0x0B46
  192. 0, // 0x0B47
  193. 0, // 0x0B48
  194. 0, // 0x0B49
  195. 0, // 0x0B4A
  196. 0, // 0x0B4B
  197. 0, // 0x0B4C
  198. 0, // 0x0B4D
  199. 0, // 0x0B4E
  200. 0, // 0x0B4F
  201. 1, // GL_LIGHTING 0x0B50
  202. 1, // GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
  203. 1, // GL_LIGHT_MODEL_TWO_SIDE 0x0B52
  204. 4, // GL_LIGHT_MODEL_AMBIENT 0x0B53
  205. 1, // GL_SHADE_MODEL 0x0B54
  206. 1, // GL_COLOR_MATERIAL_FACE 0x0B55
  207. 1, // GL_COLOR_MATERIAL_PARAMETER 0x0B56
  208. 1, // GL_COLOR_MATERIAL 0x0B57
  209. 0, // 0x0B58
  210. 0, // 0x0B59
  211. 0, // 0x0B5A
  212. 0, // 0x0B5B
  213. 0, // 0x0B5C
  214. 0, // 0x0B5D
  215. 0, // 0x0B5E
  216. 0, // 0x0B5F
  217. 1, // GL_FOG 0x0B60
  218. 1, // GL_FOG_INDEX 0x0B61
  219. 1, // GL_FOG_DENSITY 0x0B62
  220. 1, // GL_FOG_START 0x0B63
  221. 1, // GL_FOG_END 0x0B64
  222. 1, // GL_FOG_MODE 0x0B65
  223. 4, // GL_FOG_COLOR 0x0B66
  224. 0, // 0x0B67
  225. 0, // 0x0B68
  226. 0, // 0x0B69
  227. 0, // 0x0B6A
  228. 0, // 0x0B6B
  229. 0, // 0x0B6C
  230. 0, // 0x0B6D
  231. 0, // 0x0B6E
  232. 0, // 0x0B6F
  233. 2, // GL_DEPTH_RANGE 0x0B70
  234. 1, // GL_DEPTH_TEST 0x0B71
  235. 1, // GL_DEPTH_WRITEMASK 0x0B72
  236. 1, // GL_DEPTH_CLEAR_VALUE 0x0B73
  237. 1, // GL_DEPTH_FUNC 0x0B74
  238. 0, // 0x0B75
  239. 0, // 0x0B76
  240. 0, // 0x0B77
  241. 0, // 0x0B78
  242. 0, // 0x0B79
  243. 0, // 0x0B7A
  244. 0, // 0x0B7B
  245. 0, // 0x0B7C
  246. 0, // 0x0B7D
  247. 0, // 0x0B7E
  248. 0, // 0x0B7F
  249. 4, // GL_ACCUM_CLEAR_VALUE 0x0B80
  250. 0, // 0x0B81
  251. 0, // 0x0B82
  252. 0, // 0x0B83
  253. 0, // 0x0B84
  254. 0, // 0x0B85
  255. 0, // 0x0B86
  256. 0, // 0x0B87
  257. 0, // 0x0B88
  258. 0, // 0x0B89
  259. 0, // 0x0B8A
  260. 0, // 0x0B8B
  261. 0, // 0x0B8C
  262. 0, // 0x0B8D
  263. 0, // 0x0B8E
  264. 0, // 0x0B8F
  265. 1, // GL_STENCIL_TEST 0x0B90
  266. 1, // GL_STENCIL_CLEAR_VALUE 0x0B91
  267. 1, // GL_STENCIL_FUNC 0x0B92
  268. 1, // GL_STENCIL_VALUE_MASK 0x0B93
  269. 1, // GL_STENCIL_FAIL 0x0B94
  270. 1, // GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
  271. 1, // GL_STENCIL_PASS_DEPTH_PASS 0x0B96
  272. 1, // GL_STENCIL_REF 0x0B97
  273. 1, // GL_STENCIL_WRITEMASK 0x0B98
  274. 0, // 0x0B99
  275. 0, // 0x0B9A
  276. 0, // 0x0B9B
  277. 0, // 0x0B9C
  278. 0, // 0x0B9D
  279. 0, // 0x0B9E
  280. 0, // 0x0B9F
  281. 1, // GL_MATRIX_MODE 0x0BA0
  282. 1, // GL_NORMALIZE 0x0BA1
  283. 4, // GL_VIEWPORT 0x0BA2
  284. 1, // GL_MODELVIEW_STACK_DEPTH 0x0BA3
  285. 1, // GL_PROJECTION_STACK_DEPTH 0x0BA4
  286. 1, // GL_TEXTURE_STACK_DEPTH 0x0BA5
  287. 16, // GL_MODELVIEW_MATRIX 0x0BA6
  288. 16, // GL_PROJECTION_MATRIX 0x0BA7
  289. 16, // GL_TEXTURE_MATRIX 0x0BA8
  290. 0, // 0x0BA9
  291. 0, // 0x0BAA
  292. 0, // 0x0BAB
  293. 0, // 0x0BAC
  294. 0, // 0x0BAD
  295. 0, // 0x0BAE
  296. 0, // 0x0BAF
  297. 1, // GL_ATTRIB_STACK_DEPTH 0x0BB0
  298. 0, // 0x0BB1
  299. 0, // 0x0BB2
  300. 0, // 0x0BB3
  301. 0, // 0x0BB4
  302. 0, // 0x0BB5
  303. 0, // 0x0BB6
  304. 0, // 0x0BB7
  305. 0, // 0x0BB8
  306. 0, // 0x0BB9
  307. 0, // 0x0BBA
  308. 0, // 0x0BBB
  309. 0, // 0x0BBC
  310. 0, // 0x0BBD
  311. 0, // 0x0BBE
  312. 0, // 0x0BBF
  313. 1, // GL_ALPHA_TEST 0x0BC0
  314. 1, // GL_ALPHA_TEST_FUNC 0x0BC1
  315. 1, // GL_ALPHA_TEST_REF 0x0BC2
  316. 0, // 0x0BC3
  317. 0, // 0x0BC4
  318. 0, // 0x0BC5
  319. 0, // 0x0BC6
  320. 0, // 0x0BC7
  321. 0, // 0x0BC8
  322. 0, // 0x0BC9
  323. 0, // 0x0BCA
  324. 0, // 0x0BCB
  325. 0, // 0x0BCC
  326. 0, // 0x0BCD
  327. 0, // 0x0BCE
  328. 0, // 0x0BCF
  329. 1, // GL_DITHER 0x0BD0
  330. 0, // 0x0BD1
  331. 0, // 0x0BD2
  332. 0, // 0x0BD3
  333. 0, // 0x0BD4
  334. 0, // 0x0BD5
  335. 0, // 0x0BD6
  336. 0, // 0x0BD7
  337. 0, // 0x0BD8
  338. 0, // 0x0BD9
  339. 0, // 0x0BDA
  340. 0, // 0x0BDB
  341. 0, // 0x0BDC
  342. 0, // 0x0BDD
  343. 0, // 0x0BDE
  344. 0, // 0x0BDF
  345. 1, // GL_BLEND_DST 0x0BE0
  346. 1, // GL_BLEND_SRC 0x0BE1
  347. 1, // GL_BLEND 0x0BE2
  348. 0, // 0x0BE3
  349. 0, // 0x0BE4
  350. 0, // 0x0BE5
  351. 0, // 0x0BE6
  352. 0, // 0x0BE7
  353. 0, // 0x0BE8
  354. 0, // 0x0BE9
  355. 0, // 0x0BEA
  356. 0, // 0x0BEB
  357. 0, // 0x0BEC
  358. 0, // 0x0BED
  359. 0, // 0x0BEE
  360. 0, // 0x0BEF
  361. 1, // GL_LOGIC_OP_MODE 0x0BF0
  362. 1, // GL_LOGIC_OP 0x0BF1
  363. 0, // 0x0BF2
  364. 0, // 0x0BF3
  365. 0, // 0x0BF4
  366. 0, // 0x0BF5
  367. 0, // 0x0BF6
  368. 0, // 0x0BF7
  369. 0, // 0x0BF8
  370. 0, // 0x0BF9
  371. 0, // 0x0BFA
  372. 0, // 0x0BFB
  373. 0, // 0x0BFC
  374. 0, // 0x0BFD
  375. 0, // 0x0BFE
  376. 0, // 0x0BFF
  377. 1, // GL_AUX_BUFFERS 0x0C00
  378. 1, // GL_DRAW_BUFFER 0x0C01
  379. 1, // GL_READ_BUFFER 0x0C02
  380. 0, // 0x0C03
  381. 0, // 0x0C04
  382. 0, // 0x0C05
  383. 0, // 0x0C06
  384. 0, // 0x0C07
  385. 0, // 0x0C08
  386. 0, // 0x0C09
  387. 0, // 0x0C0A
  388. 0, // 0x0C0B
  389. 0, // 0x0C0C
  390. 0, // 0x0C0D
  391. 0, // 0x0C0E
  392. 0, // 0x0C0F
  393. 4, // GL_SCISSOR_BOX 0x0C10
  394. 1, // GL_SCISSOR_TEST 0x0C11
  395. 0, // 0x0C12
  396. 0, // 0x0C13
  397. 0, // 0x0C14
  398. 0, // 0x0C15
  399. 0, // 0x0C16
  400. 0, // 0x0C17
  401. 0, // 0x0C18
  402. 0, // 0x0C19
  403. 0, // 0x0C1A
  404. 0, // 0x0C1B
  405. 0, // 0x0C1C
  406. 0, // 0x0C1D
  407. 0, // 0x0C1E
  408. 0, // 0x0C1F
  409. 1, // GL_INDEX_CLEAR_VALUE 0x0C20
  410. 1, // GL_INDEX_WRITEMASK 0x0C21
  411. 4, // GL_COLOR_CLEAR_VALUE 0x0C22
  412. 4, // GL_COLOR_WRITEMASK 0x0C23
  413. 0, // 0x0C24
  414. 0, // 0x0C25
  415. 0, // 0x0C26
  416. 0, // 0x0C27
  417. 0, // 0x0C28
  418. 0, // 0x0C29
  419. 0, // 0x0C2A
  420. 0, // 0x0C2B
  421. 0, // 0x0C2C
  422. 0, // 0x0C2D
  423. 0, // 0x0C2E
  424. 0, // 0x0C2F
  425. 1, // GL_INDEX_MODE 0x0C30
  426. 1, // GL_RGBA_MODE 0x0C31
  427. 1, // GL_DOUBLEBUFFER 0x0C32
  428. 1, // GL_STEREO 0x0C33
  429. 0, // 0x0C34
  430. 0, // 0x0C35
  431. 0, // 0x0C36
  432. 0, // 0x0C37
  433. 0, // 0x0C38
  434. 0, // 0x0C39
  435. 0, // 0x0C3A
  436. 0, // 0x0C3B
  437. 0, // 0x0C3C
  438. 0, // 0x0C3D
  439. 0, // 0x0C3E
  440. 0, // 0x0C3F
  441. 1, // GL_RENDER_MODE 0x0C40
  442. 0, // 0x0C41
  443. 0, // 0x0C42
  444. 0, // 0x0C43
  445. 0, // 0x0C44
  446. 0, // 0x0C45
  447. 0, // 0x0C46
  448. 0, // 0x0C47
  449. 0, // 0x0C48
  450. 0, // 0x0C49
  451. 0, // 0x0C4A
  452. 0, // 0x0C4B
  453. 0, // 0x0C4C
  454. 0, // 0x0C4D
  455. 0, // 0x0C4E
  456. 0, // 0x0C4F
  457. 1, // GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
  458. 1, // GL_POINT_SMOOTH_HINT 0x0C51
  459. 1, // GL_LINE_SMOOTH_HINT 0x0C52
  460. 1, // GL_POLYGON_SMOOTH_HINT 0x0C53
  461. 1, // GL_FOG_HINT 0x0C54
  462. 0, // 0x0C55
  463. 0, // 0x0C56
  464. 0, // 0x0C57
  465. 0, // 0x0C58
  466. 0, // 0x0C59
  467. 0, // 0x0C5A
  468. 0, // 0x0C5B
  469. 0, // 0x0C5C
  470. 0, // 0x0C5D
  471. 0, // 0x0C5E
  472. 0, // 0x0C5F
  473. 1, // GL_TEXTURE_GEN_S 0x0C60
  474. 1, // GL_TEXTURE_GEN_T 0x0C61
  475. 1, // GL_TEXTURE_GEN_R 0x0C62
  476. 1, // GL_TEXTURE_GEN_Q 0x0C63
  477. 0, // 0x0C64
  478. 0, // 0x0C65
  479. 0, // 0x0C66
  480. 0, // 0x0C67
  481. 0, // 0x0C68
  482. 0, // 0x0C69
  483. 0, // 0x0C6A
  484. 0, // 0x0C6B
  485. 0, // 0x0C6C
  486. 0, // 0x0C6D
  487. 0, // 0x0C6E
  488. 0, // 0x0C6F
  489. 0, // GL_PIXEL_MAP_I_TO_I 0x0C70
  490. 0, // GL_PIXEL_MAP_S_TO_S 0x0C71
  491. 0, // GL_PIXEL_MAP_I_TO_R 0x0C72
  492. 0, // GL_PIXEL_MAP_I_TO_G 0x0C73
  493. 0, // GL_PIXEL_MAP_I_TO_B 0x0C74
  494. 0, // GL_PIXEL_MAP_I_TO_A 0x0C75
  495. 0, // GL_PIXEL_MAP_R_TO_R 0x0C76
  496. 0, // GL_PIXEL_MAP_G_TO_G 0x0C77
  497. 0, // GL_PIXEL_MAP_B_TO_B 0x0C78
  498. 0, // GL_PIXEL_MAP_A_TO_A 0x0C79
  499. 0, // 0x0C7A
  500. 0, // 0x0C7B
  501. 0, // 0x0C7C
  502. 0, // 0x0C7D
  503. 0, // 0x0C7E
  504. 0, // 0x0C7F
  505. 0, // 0x0C80
  506. 0, // 0x0C81
  507. 0, // 0x0C82
  508. 0, // 0x0C83
  509. 0, // 0x0C84
  510. 0, // 0x0C85
  511. 0, // 0x0C86
  512. 0, // 0x0C87
  513. 0, // 0x0C88
  514. 0, // 0x0C89
  515. 0, // 0x0C8A
  516. 0, // 0x0C8B
  517. 0, // 0x0C8C
  518. 0, // 0x0C8D
  519. 0, // 0x0C8E
  520. 0, // 0x0C8F
  521. 0, // 0x0C90
  522. 0, // 0x0C91
  523. 0, // 0x0C92
  524. 0, // 0x0C93
  525. 0, // 0x0C94
  526. 0, // 0x0C95
  527. 0, // 0x0C96
  528. 0, // 0x0C97
  529. 0, // 0x0C98
  530. 0, // 0x0C99
  531. 0, // 0x0C9A
  532. 0, // 0x0C9B
  533. 0, // 0x0C9C
  534. 0, // 0x0C9D
  535. 0, // 0x0C9E
  536. 0, // 0x0C9F
  537. 0, // 0x0CA0
  538. 0, // 0x0CA1
  539. 0, // 0x0CA2
  540. 0, // 0x0CA3
  541. 0, // 0x0CA4
  542. 0, // 0x0CA5
  543. 0, // 0x0CA6
  544. 0, // 0x0CA7
  545. 0, // 0x0CA8
  546. 0, // 0x0CA9
  547. 0, // 0x0CAA
  548. 0, // 0x0CAB
  549. 0, // 0x0CAC
  550. 0, // 0x0CAD
  551. 0, // 0x0CAE
  552. 0, // 0x0CAF
  553. 1, // GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
  554. 1, // GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
  555. 1, // GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
  556. 1, // GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
  557. 1, // GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
  558. 1, // GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
  559. 1, // GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
  560. 1, // GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
  561. 1, // GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
  562. 1, // GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
  563. 0, // 0x0CBA
  564. 0, // 0x0CBB
  565. 0, // 0x0CBC
  566. 0, // 0x0CBD
  567. 0, // 0x0CBE
  568. 0, // 0x0CBF
  569. 0, // 0x0CC0
  570. 0, // 0x0CC1
  571. 0, // 0x0CC2
  572. 0, // 0x0CC3
  573. 0, // 0x0CC4
  574. 0, // 0x0CC5
  575. 0, // 0x0CC6
  576. 0, // 0x0CC7
  577. 0, // 0x0CC8
  578. 0, // 0x0CC9
  579. 0, // 0x0CCA
  580. 0, // 0x0CCB
  581. 0, // 0x0CCC
  582. 0, // 0x0CCD
  583. 0, // 0x0CCE
  584. 0, // 0x0CCF
  585. 0, // 0x0CD0
  586. 0, // 0x0CD1
  587. 0, // 0x0CD2
  588. 0, // 0x0CD3
  589. 0, // 0x0CD4
  590. 0, // 0x0CD5
  591. 0, // 0x0CD6
  592. 0, // 0x0CD7
  593. 0, // 0x0CD8
  594. 0, // 0x0CD9
  595. 0, // 0x0CDA
  596. 0, // 0x0CDB
  597. 0, // 0x0CDC
  598. 0, // 0x0CDD
  599. 0, // 0x0CDE
  600. 0, // 0x0CDF
  601. 0, // 0x0CE0
  602. 0, // 0x0CE1
  603. 0, // 0x0CE2
  604. 0, // 0x0CE3
  605. 0, // 0x0CE4
  606. 0, // 0x0CE5
  607. 0, // 0x0CE6
  608. 0, // 0x0CE7
  609. 0, // 0x0CE8
  610. 0, // 0x0CE9
  611. 0, // 0x0CEA
  612. 0, // 0x0CEB
  613. 0, // 0x0CEC
  614. 0, // 0x0CED
  615. 0, // 0x0CEE
  616. 0, // 0x0CEF
  617. 1, // GL_UNPACK_SWAP_BYTES 0x0CF0
  618. 1, // GL_UNPACK_LSB_FIRST 0x0CF1
  619. 1, // GL_UNPACK_ROW_LENGTH 0x0CF2
  620. 1, // GL_UNPACK_SKIP_ROWS 0x0CF3
  621. 1, // GL_UNPACK_SKIP_PIXELS 0x0CF4
  622. 1, // GL_UNPACK_ALIGNMENT 0x0CF5
  623. 0, // 0x0CF6
  624. 0, // 0x0CF7
  625. 0, // 0x0CF8
  626. 0, // 0x0CF9
  627. 0, // 0x0CFA
  628. 0, // 0x0CFB
  629. 0, // 0x0CFC
  630. 0, // 0x0CFD
  631. 0, // 0x0CFE
  632. 0, // 0x0CFF
  633. 1, // GL_PACK_SWAP_BYTES 0x0D00
  634. 1, // GL_PACK_LSB_FIRST 0x0D01
  635. 1, // GL_PACK_ROW_LENGTH 0x0D02
  636. 1, // GL_PACK_SKIP_ROWS 0x0D03
  637. 1, // GL_PACK_SKIP_PIXELS 0x0D04
  638. 1, // GL_PACK_ALIGNMENT 0x0D05
  639. 0, // 0x0D06
  640. 0, // 0x0D07
  641. 0, // 0x0D08
  642. 0, // 0x0D09
  643. 0, // 0x0D0A
  644. 0, // 0x0D0B
  645. 0, // 0x0D0C
  646. 0, // 0x0D0D
  647. 0, // 0x0D0E
  648. 0, // 0x0D0F
  649. 1, // GL_MAP_COLOR 0x0D10
  650. 1, // GL_MAP_STENCIL 0x0D11
  651. 1, // GL_INDEX_SHIFT 0x0D12
  652. 1, // GL_INDEX_OFFSET 0x0D13
  653. 1, // GL_RED_SCALE 0x0D14
  654. 1, // GL_RED_BIAS 0x0D15
  655. 1, // GL_ZOOM_X 0x0D16
  656. 1, // GL_ZOOM_Y 0x0D17
  657. 1, // GL_GREEN_SCALE 0x0D18
  658. 1, // GL_GREEN_BIAS 0x0D19
  659. 1, // GL_BLUE_SCALE 0x0D1A
  660. 1, // GL_BLUE_BIAS 0x0D1B
  661. 1, // GL_ALPHA_SCALE 0x0D1C
  662. 1, // GL_ALPHA_BIAS 0x0D1D
  663. 1, // GL_DEPTH_SCALE 0x0D1E
  664. 1, // GL_DEPTH_BIAS 0x0D1F
  665. 0, // 0x0D20
  666. 0, // 0x0D21
  667. 0, // 0x0D22
  668. 0, // 0x0D23
  669. 0, // 0x0D24
  670. 0, // 0x0D25
  671. 0, // 0x0D26
  672. 0, // 0x0D27
  673. 0, // 0x0D28
  674. 0, // 0x0D29
  675. 0, // 0x0D2A
  676. 0, // 0x0D2B
  677. 0, // 0x0D2C
  678. 0, // 0x0D2D
  679. 0, // 0x0D2E
  680. 0, // 0x0D2F
  681. 1, // GL_MAX_EVAL_ORDER 0x0D30
  682. 1, // GL_MAX_LIGHTS 0x0D31
  683. 1, // GL_MAX_CLIP_PLANES 0x0D32
  684. 1, // GL_MAX_TEXTURE_SIZE 0x0D33
  685. 1, // GL_MAX_PIXEL_MAP_TABLE 0x0D34
  686. 1, // GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
  687. 1, // GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
  688. 1, // GL_MAX_NAME_STACK_DEPTH 0x0D37
  689. 1, // GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
  690. 1, // GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
  691. 2, // GL_MAX_VIEWPORT_DIMS 0x0D3A
  692. 0, // 0x0D3B
  693. 0, // 0x0D3C
  694. 0, // 0x0D3D
  695. 0, // 0x0D3E
  696. 0, // 0x0D3F
  697. 0, // 0x0D40
  698. 0, // 0x0D41
  699. 0, // 0x0D42
  700. 0, // 0x0D43
  701. 0, // 0x0D44
  702. 0, // 0x0D45
  703. 0, // 0x0D46
  704. 0, // 0x0D47
  705. 0, // 0x0D48
  706. 0, // 0x0D49
  707. 0, // 0x0D4A
  708. 0, // 0x0D4B
  709. 0, // 0x0D4C
  710. 0, // 0x0D4D
  711. 0, // 0x0D4E
  712. 0, // 0x0D4F
  713. 1, // GL_SUBPIXEL_BITS 0x0D50
  714. 1, // GL_INDEX_BITS 0x0D51
  715. 1, // GL_RED_BITS 0x0D52
  716. 1, // GL_GREEN_BITS 0x0D53
  717. 1, // GL_BLUE_BITS 0x0D54
  718. 1, // GL_ALPHA_BITS 0x0D55
  719. 1, // GL_DEPTH_BITS 0x0D56
  720. 1, // GL_STENCIL_BITS 0x0D57
  721. 1, // GL_ACCUM_RED_BITS 0x0D58
  722. 1, // GL_ACCUM_GREEN_BITS 0x0D59
  723. 1, // GL_ACCUM_BLUE_BITS 0x0D5A
  724. 1, // GL_ACCUM_ALPHA_BITS 0x0D5B
  725. 0, // 0x0D5C
  726. 0, // 0x0D5D
  727. 0, // 0x0D5E
  728. 0, // 0x0D5F
  729. 0, // 0x0D60
  730. 0, // 0x0D61
  731. 0, // 0x0D62
  732. 0, // 0x0D63
  733. 0, // 0x0D64
  734. 0, // 0x0D65
  735. 0, // 0x0D66
  736. 0, // 0x0D67
  737. 0, // 0x0D68
  738. 0, // 0x0D69
  739. 0, // 0x0D6A
  740. 0, // 0x0D6B
  741. 0, // 0x0D6C
  742. 0, // 0x0D6D
  743. 0, // 0x0D6E
  744. 0, // 0x0D6F
  745. 1, // GL_NAME_STACK_DEPTH 0x0D70
  746. 0, // 0x0D71
  747. 0, // 0x0D72
  748. 0, // 0x0D73
  749. 0, // 0x0D74
  750. 0, // 0x0D75
  751. 0, // 0x0D76
  752. 0, // 0x0D77
  753. 0, // 0x0D78
  754. 0, // 0x0D79
  755. 0, // 0x0D7A
  756. 0, // 0x0D7B
  757. 0, // 0x0D7C
  758. 0, // 0x0D7D
  759. 0, // 0x0D7E
  760. 0, // 0x0D7F
  761. 1, // GL_AUTO_NORMAL 0x0D80
  762. 0, // 0x0D81
  763. 0, // 0x0D82
  764. 0, // 0x0D83
  765. 0, // 0x0D84
  766. 0, // 0x0D85
  767. 0, // 0x0D86
  768. 0, // 0x0D87
  769. 0, // 0x0D88
  770. 0, // 0x0D89
  771. 0, // 0x0D8A
  772. 0, // 0x0D8B
  773. 0, // 0x0D8C
  774. 0, // 0x0D8D
  775. 0, // 0x0D8E
  776. 0, // 0x0D8F
  777. 1, // GL_MAP1_COLOR_4 0x0D90
  778. 1, // GL_MAP1_INDEX 0x0D91
  779. 1, // GL_MAP1_NORMAL 0x0D92
  780. 1, // GL_MAP1_TEXTURE_COORD_1 0x0D93
  781. 1, // GL_MAP1_TEXTURE_COORD_2 0x0D94
  782. 1, // GL_MAP1_TEXTURE_COORD_3 0x0D95
  783. 1, // GL_MAP1_TEXTURE_COORD_4 0x0D96
  784. 1, // GL_MAP1_VERTEX_3 0x0D97
  785. 1, // GL_MAP1_VERTEX_4 0x0D98
  786. 0, // 0x0D99
  787. 0, // 0x0D9A
  788. 0, // 0x0D9B
  789. 0, // 0x0D9C
  790. 0, // 0x0D9D
  791. 0, // 0x0D9E
  792. 0, // 0x0D9F
  793. 0, // 0x0DA0
  794. 0, // 0x0DA1
  795. 0, // 0x0DA2
  796. 0, // 0x0DA3
  797. 0, // 0x0DA4
  798. 0, // 0x0DA5
  799. 0, // 0x0DA6
  800. 0, // 0x0DA7
  801. 0, // 0x0DA8
  802. 0, // 0x0DA9
  803. 0, // 0x0DAA
  804. 0, // 0x0DAB
  805. 0, // 0x0DAC
  806. 0, // 0x0DAD
  807. 0, // 0x0DAE
  808. 0, // 0x0DAF
  809. 1, // GL_MAP2_COLOR_4 0x0DB0
  810. 1, // GL_MAP2_INDEX 0x0DB1
  811. 1, // GL_MAP2_NORMAL 0x0DB2
  812. 1, // GL_MAP2_TEXTURE_COORD_1 0x0DB3
  813. 1, // GL_MAP2_TEXTURE_COORD_2 0x0DB4
  814. 1, // GL_MAP2_TEXTURE_COORD_3 0x0DB5
  815. 1, // GL_MAP2_TEXTURE_COORD_4 0x0DB6
  816. 1, // GL_MAP2_VERTEX_3 0x0DB7
  817. 1, // GL_MAP2_VERTEX_4 0x0DB8
  818. 0, // 0x0DB9
  819. 0, // 0x0DBA
  820. 0, // 0x0DBB
  821. 0, // 0x0DBC
  822. 0, // 0x0DBD
  823. 0, // 0x0DBE
  824. 0, // 0x0DBF
  825. 0, // 0x0DC0
  826. 0, // 0x0DC1
  827. 0, // 0x0DC2
  828. 0, // 0x0DC3
  829. 0, // 0x0DC4
  830. 0, // 0x0DC5
  831. 0, // 0x0DC6
  832. 0, // 0x0DC7
  833. 0, // 0x0DC8
  834. 0, // 0x0DC9
  835. 0, // 0x0DCA
  836. 0, // 0x0DCB
  837. 0, // 0x0DCC
  838. 0, // 0x0DCD
  839. 0, // 0x0DCE
  840. 0, // 0x0DCF
  841. 2, // GL_MAP1_GRID_DOMAIN 0x0DD0
  842. 1, // GL_MAP1_GRID_SEGMENTS 0x0DD1
  843. 4, // GL_MAP2_GRID_DOMAIN 0x0DD2
  844. 2, // GL_MAP2_GRID_SEGMENTS 0x0DD3
  845. 0, // 0x0DD4
  846. 0, // 0x0DD5
  847. 0, // 0x0DD6
  848. 0, // 0x0DD7
  849. 0, // 0x0DD8
  850. 0, // 0x0DD9
  851. 0, // 0x0DDA
  852. 0, // 0x0DDB
  853. 0, // 0x0DDC
  854. 0, // 0x0DDD
  855. 0, // 0x0DDE
  856. 0, // 0x0DDF
  857. 1, // GL_TEXTURE_1D 0x0DE0
  858. 1, // GL_TEXTURE_2D 0x0DE1
  859. };
  860. GLint __glGet_size(GLenum sq)
  861. {
  862. if (RANGE(sq, GET_INDEX_MIN, GET_INDEX_MAX))
  863. return((GLint) gabGetSize[sq - GET_INDEX_MIN]);
  864. else if (RANGE(sq, GL_CLIP_PLANE0, GL_CLIP_PLANE5)
  865. || RANGE(sq, GL_LIGHT0, GL_LIGHT7))
  866. return(1);
  867. else
  868. return(0);
  869. }
  870. #endif //!_CLIENTSIDE_