Clone of mesa.
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.

dumpstate.c 69KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959
  1. /*
  2. *
  3. * From: Stephane Rehel <rehel@worldnet.fr>
  4. * Date: Mon, 31 May 1999 18:40:54 -0400
  5. * To: Paul Brian <brianp@ra.avid.com>
  6. * Subject: OpenGL State Dump Function
  7. *
  8. * Here is a function that dumps the current OpenGL state. I wrote it
  9. * some time ago.
  10. *
  11. * In the attachment:
  12. * + the code itself
  13. * + its output
  14. *
  15. * I think Mesa is wrong on some getBooleanv(). For example, GL_VERTEX_ARRAY
  16. * is queried by IsEnabled() (cf. p. 196 of the spec). But on page 193
  17. * we can read that all the boolean attribs that can be queried by IsEnabled()
  18. * can also be queried by IsEnabled().
  19. *
  20. * I had duplicated all the enums (LOCAL_*) so that the code can run on any
  21. * OpenGL version, even if an enum is not recognized.
  22. *
  23. * The code can be shipped in the public domain.
  24. *
  25. * Stephane.
  26. */
  27. /*
  28. * Stephane Rehel
  29. * Creation: February 5 1999
  30. */
  31. #include <stdio.h>
  32. #include <GL/gl.h>
  33. /***************************************************************************/
  34. enum {
  35. /* Data types */
  36. LOCAL_GL_BYTE = 0x1400,
  37. LOCAL_GL_UNSIGNED_BYTE = 0x1401,
  38. LOCAL_GL_SHORT = 0x1402,
  39. LOCAL_GL_UNSIGNED_SHORT = 0x1403,
  40. LOCAL_GL_INT = 0x1404,
  41. LOCAL_GL_UNSIGNED_INT = 0x1405,
  42. LOCAL_GL_FLOAT = 0x1406,
  43. LOCAL_GL_DOUBLE = 0x140A,
  44. LOCAL_GL_2_BYTES = 0x1407,
  45. LOCAL_GL_3_BYTES = 0x1408,
  46. LOCAL_GL_4_BYTES = 0x1409,
  47. /* Primitives */
  48. LOCAL_GL_LINES = 0x0001,
  49. LOCAL_GL_POINTS = 0x0000,
  50. LOCAL_GL_LINE_STRIP = 0x0003,
  51. LOCAL_GL_LINE_LOOP = 0x0002,
  52. LOCAL_GL_TRIANGLES = 0x0004,
  53. LOCAL_GL_TRIANGLE_STRIP = 0x0005,
  54. LOCAL_GL_TRIANGLE_FAN = 0x0006,
  55. LOCAL_GL_QUADS = 0x0007,
  56. LOCAL_GL_QUAD_STRIP = 0x0008,
  57. LOCAL_GL_POLYGON = 0x0009,
  58. LOCAL_GL_EDGE_FLAG = 0x0B43,
  59. /* Vertex Arrays */
  60. LOCAL_GL_VERTEX_ARRAY = 0x8074,
  61. LOCAL_GL_NORMAL_ARRAY = 0x8075,
  62. LOCAL_GL_COLOR_ARRAY = 0x8076,
  63. LOCAL_GL_INDEX_ARRAY = 0x8077,
  64. LOCAL_GL_TEXTURE_COORD_ARRAY = 0x8078,
  65. LOCAL_GL_EDGE_FLAG_ARRAY = 0x8079,
  66. LOCAL_GL_VERTEX_ARRAY_SIZE = 0x807A,
  67. LOCAL_GL_VERTEX_ARRAY_TYPE = 0x807B,
  68. LOCAL_GL_VERTEX_ARRAY_STRIDE = 0x807C,
  69. LOCAL_GL_NORMAL_ARRAY_TYPE = 0x807E,
  70. LOCAL_GL_NORMAL_ARRAY_STRIDE = 0x807F,
  71. LOCAL_GL_COLOR_ARRAY_SIZE = 0x8081,
  72. LOCAL_GL_COLOR_ARRAY_TYPE = 0x8082,
  73. LOCAL_GL_COLOR_ARRAY_STRIDE = 0x8083,
  74. LOCAL_GL_INDEX_ARRAY_TYPE = 0x8085,
  75. LOCAL_GL_INDEX_ARRAY_STRIDE = 0x8086,
  76. LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088,
  77. LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089,
  78. LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A,
  79. LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C,
  80. LOCAL_GL_VERTEX_ARRAY_POINTER = 0x808E,
  81. LOCAL_GL_NORMAL_ARRAY_POINTER = 0x808F,
  82. LOCAL_GL_COLOR_ARRAY_POINTER = 0x8090,
  83. LOCAL_GL_INDEX_ARRAY_POINTER = 0x8091,
  84. LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092,
  85. LOCAL_GL_EDGE_FLAG_ARRAY_POINTER = 0x8093,
  86. LOCAL_GL_V2F = 0x2A20,
  87. LOCAL_GL_V3F = 0x2A21,
  88. LOCAL_GL_C4UB_V2F = 0x2A22,
  89. LOCAL_GL_C4UB_V3F = 0x2A23,
  90. LOCAL_GL_C3F_V3F = 0x2A24,
  91. LOCAL_GL_N3F_V3F = 0x2A25,
  92. LOCAL_GL_C4F_N3F_V3F = 0x2A26,
  93. LOCAL_GL_T2F_V3F = 0x2A27,
  94. LOCAL_GL_T4F_V4F = 0x2A28,
  95. LOCAL_GL_T2F_C4UB_V3F = 0x2A29,
  96. LOCAL_GL_T2F_C3F_V3F = 0x2A2A,
  97. LOCAL_GL_T2F_N3F_V3F = 0x2A2B,
  98. LOCAL_GL_T2F_C4F_N3F_V3F = 0x2A2C,
  99. LOCAL_GL_T4F_C4F_N3F_V4F = 0x2A2D,
  100. /* Matrix Mode */
  101. LOCAL_GL_MATRIX_MODE = 0x0BA0,
  102. LOCAL_GL_MODELVIEW = 0x1700,
  103. LOCAL_GL_PROJECTION = 0x1701,
  104. LOCAL_GL_TEXTURE = 0x1702,
  105. /* Points */
  106. LOCAL_GL_POINT_SMOOTH = 0x0B10,
  107. LOCAL_GL_POINT_SIZE = 0x0B11,
  108. LOCAL_GL_POINT_SIZE_GRANULARITY = 0x0B13,
  109. LOCAL_GL_POINT_SIZE_RANGE = 0x0B12,
  110. /* Lines */
  111. LOCAL_GL_LINE_SMOOTH = 0x0B20,
  112. LOCAL_GL_LINE_STIPPLE = 0x0B24,
  113. LOCAL_GL_LINE_STIPPLE_PATTERN = 0x0B25,
  114. LOCAL_GL_LINE_STIPPLE_REPEAT = 0x0B26,
  115. LOCAL_GL_LINE_WIDTH = 0x0B21,
  116. LOCAL_GL_LINE_WIDTH_GRANULARITY = 0x0B23,
  117. LOCAL_GL_LINE_WIDTH_RANGE = 0x0B22,
  118. /* Polygons */
  119. LOCAL_GL_POINT = 0x1B00,
  120. LOCAL_GL_LINE = 0x1B01,
  121. LOCAL_GL_FILL = 0x1B02,
  122. LOCAL_GL_CCW = 0x0901,
  123. LOCAL_GL_CW = 0x0900,
  124. LOCAL_GL_FRONT = 0x0404,
  125. LOCAL_GL_BACK = 0x0405,
  126. LOCAL_GL_CULL_FACE = 0x0B44,
  127. LOCAL_GL_CULL_FACE_MODE = 0x0B45,
  128. LOCAL_GL_POLYGON_SMOOTH = 0x0B41,
  129. LOCAL_GL_POLYGON_STIPPLE = 0x0B42,
  130. LOCAL_GL_FRONT_FACE = 0x0B46,
  131. LOCAL_GL_POLYGON_MODE = 0x0B40,
  132. LOCAL_GL_POLYGON_OFFSET_FACTOR = 0x8038,
  133. LOCAL_GL_POLYGON_OFFSET_UNITS = 0x2A00,
  134. LOCAL_GL_POLYGON_OFFSET_POINT = 0x2A01,
  135. LOCAL_GL_POLYGON_OFFSET_LINE = 0x2A02,
  136. LOCAL_GL_POLYGON_OFFSET_FILL = 0x8037,
  137. /* Display Lists */
  138. LOCAL_GL_COMPILE = 0x1300,
  139. LOCAL_GL_COMPILE_AND_EXECUTE = 0x1301,
  140. LOCAL_GL_LIST_BASE = 0x0B32,
  141. LOCAL_GL_LIST_INDEX = 0x0B33,
  142. LOCAL_GL_LIST_MODE = 0x0B30,
  143. /* Depth buffer */
  144. LOCAL_GL_NEVER = 0x0200,
  145. LOCAL_GL_LESS = 0x0201,
  146. LOCAL_GL_GEQUAL = 0x0206,
  147. LOCAL_GL_LEQUAL = 0x0203,
  148. LOCAL_GL_GREATER = 0x0204,
  149. LOCAL_GL_NOTEQUAL = 0x0205,
  150. LOCAL_GL_EQUAL = 0x0202,
  151. LOCAL_GL_ALWAYS = 0x0207,
  152. LOCAL_GL_DEPTH_TEST = 0x0B71,
  153. LOCAL_GL_DEPTH_BITS = 0x0D56,
  154. LOCAL_GL_DEPTH_CLEAR_VALUE = 0x0B73,
  155. LOCAL_GL_DEPTH_FUNC = 0x0B74,
  156. LOCAL_GL_DEPTH_RANGE = 0x0B70,
  157. LOCAL_GL_DEPTH_WRITEMASK = 0x0B72,
  158. LOCAL_GL_DEPTH_COMPONENT = 0x1902,
  159. /* Lighting */
  160. LOCAL_GL_LIGHTING = 0x0B50,
  161. LOCAL_GL_LIGHT0 = 0x4000,
  162. LOCAL_GL_LIGHT1 = 0x4001,
  163. LOCAL_GL_LIGHT2 = 0x4002,
  164. LOCAL_GL_LIGHT3 = 0x4003,
  165. LOCAL_GL_LIGHT4 = 0x4004,
  166. LOCAL_GL_LIGHT5 = 0x4005,
  167. LOCAL_GL_LIGHT6 = 0x4006,
  168. LOCAL_GL_LIGHT7 = 0x4007,
  169. LOCAL_GL_SPOT_EXPONENT = 0x1205,
  170. LOCAL_GL_SPOT_CUTOFF = 0x1206,
  171. LOCAL_GL_CONSTANT_ATTENUATION = 0x1207,
  172. LOCAL_GL_LINEAR_ATTENUATION = 0x1208,
  173. LOCAL_GL_QUADRATIC_ATTENUATION = 0x1209,
  174. LOCAL_GL_AMBIENT = 0x1200,
  175. LOCAL_GL_DIFFUSE = 0x1201,
  176. LOCAL_GL_SPECULAR = 0x1202,
  177. LOCAL_GL_SHININESS = 0x1601,
  178. LOCAL_GL_EMISSION = 0x1600,
  179. LOCAL_GL_POSITION = 0x1203,
  180. LOCAL_GL_SPOT_DIRECTION = 0x1204,
  181. LOCAL_GL_AMBIENT_AND_DIFFUSE = 0x1602,
  182. LOCAL_GL_COLOR_INDEXES = 0x1603,
  183. LOCAL_GL_LIGHT_MODEL_TWO_SIDE = 0x0B52,
  184. LOCAL_GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51,
  185. LOCAL_GL_LIGHT_MODEL_AMBIENT = 0x0B53,
  186. LOCAL_GL_FRONT_AND_BACK = 0x0408,
  187. LOCAL_GL_SHADE_MODEL = 0x0B54,
  188. LOCAL_GL_FLAT = 0x1D00,
  189. LOCAL_GL_SMOOTH = 0x1D01,
  190. LOCAL_GL_COLOR_MATERIAL = 0x0B57,
  191. LOCAL_GL_COLOR_MATERIAL_FACE = 0x0B55,
  192. LOCAL_GL_COLOR_MATERIAL_PARAMETER = 0x0B56,
  193. LOCAL_GL_NORMALIZE = 0x0BA1,
  194. /* User clipping planes */
  195. LOCAL_GL_CLIP_PLANE0 = 0x3000,
  196. LOCAL_GL_CLIP_PLANE1 = 0x3001,
  197. LOCAL_GL_CLIP_PLANE2 = 0x3002,
  198. LOCAL_GL_CLIP_PLANE3 = 0x3003,
  199. LOCAL_GL_CLIP_PLANE4 = 0x3004,
  200. LOCAL_GL_CLIP_PLANE5 = 0x3005,
  201. /* Accumulation buffer */
  202. LOCAL_GL_ACCUM_RED_BITS = 0x0D58,
  203. LOCAL_GL_ACCUM_GREEN_BITS = 0x0D59,
  204. LOCAL_GL_ACCUM_BLUE_BITS = 0x0D5A,
  205. LOCAL_GL_ACCUM_ALPHA_BITS = 0x0D5B,
  206. LOCAL_GL_ACCUM_CLEAR_VALUE = 0x0B80,
  207. LOCAL_GL_ACCUM = 0x0100,
  208. LOCAL_GL_ADD = 0x0104,
  209. LOCAL_GL_LOAD = 0x0101,
  210. LOCAL_GL_MULT = 0x0103,
  211. LOCAL_GL_RETURN = 0x0102,
  212. /* Alpha testing */
  213. LOCAL_GL_ALPHA_TEST = 0x0BC0,
  214. LOCAL_GL_ALPHA_TEST_REF = 0x0BC2,
  215. LOCAL_GL_ALPHA_TEST_FUNC = 0x0BC1,
  216. /* Blending */
  217. LOCAL_GL_BLEND = 0x0BE2,
  218. LOCAL_GL_BLEND_SRC = 0x0BE1,
  219. LOCAL_GL_BLEND_DST = 0x0BE0,
  220. LOCAL_GL_ZERO = 0,
  221. LOCAL_GL_ONE = 1,
  222. LOCAL_GL_SRC_COLOR = 0x0300,
  223. LOCAL_GL_ONE_MINUS_SRC_COLOR = 0x0301,
  224. LOCAL_GL_DST_COLOR = 0x0306,
  225. LOCAL_GL_ONE_MINUS_DST_COLOR = 0x0307,
  226. LOCAL_GL_SRC_ALPHA = 0x0302,
  227. LOCAL_GL_ONE_MINUS_SRC_ALPHA = 0x0303,
  228. LOCAL_GL_DST_ALPHA = 0x0304,
  229. LOCAL_GL_ONE_MINUS_DST_ALPHA = 0x0305,
  230. LOCAL_GL_SRC_ALPHA_SATURATE = 0x0308,
  231. LOCAL_GL_CONSTANT_COLOR = 0x8001,
  232. LOCAL_GL_ONE_MINUS_CONSTANT_COLOR = 0x8002,
  233. LOCAL_GL_CONSTANT_ALPHA = 0x8003,
  234. LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
  235. /* Render Mode */
  236. LOCAL_GL_FEEDBACK = 0x1C01,
  237. LOCAL_GL_RENDER = 0x1C00,
  238. LOCAL_GL_SELECT = 0x1C02,
  239. /* Feedback */
  240. LOCAL_GL_2D = 0x0600,
  241. LOCAL_GL_3D = 0x0601,
  242. LOCAL_GL_3D_COLOR = 0x0602,
  243. LOCAL_GL_3D_COLOR_TEXTURE = 0x0603,
  244. LOCAL_GL_4D_COLOR_TEXTURE = 0x0604,
  245. LOCAL_GL_POINT_TOKEN = 0x0701,
  246. LOCAL_GL_LINE_TOKEN = 0x0702,
  247. LOCAL_GL_LINE_RESET_TOKEN = 0x0707,
  248. LOCAL_GL_POLYGON_TOKEN = 0x0703,
  249. LOCAL_GL_BITMAP_TOKEN = 0x0704,
  250. LOCAL_GL_DRAW_PIXEL_TOKEN = 0x0705,
  251. LOCAL_GL_COPY_PIXEL_TOKEN = 0x0706,
  252. LOCAL_GL_PASS_THROUGH_TOKEN = 0x0700,
  253. LOCAL_GL_FEEDBACK_BUFFER_POINTER = 0x0DF0,
  254. LOCAL_GL_FEEDBACK_BUFFER_SIZE = 0x0DF1,
  255. LOCAL_GL_FEEDBACK_BUFFER_TYPE = 0x0DF2,
  256. /* Selection */
  257. LOCAL_GL_SELECTION_BUFFER_POINTER = 0x0DF3,
  258. LOCAL_GL_SELECTION_BUFFER_SIZE = 0x0DF4,
  259. /* Fog */
  260. LOCAL_GL_FOG = 0x0B60,
  261. LOCAL_GL_FOG_MODE = 0x0B65,
  262. LOCAL_GL_FOG_DENSITY = 0x0B62,
  263. LOCAL_GL_FOG_COLOR = 0x0B66,
  264. LOCAL_GL_FOG_INDEX = 0x0B61,
  265. LOCAL_GL_FOG_START = 0x0B63,
  266. LOCAL_GL_FOG_END = 0x0B64,
  267. LOCAL_GL_LINEAR = 0x2601,
  268. LOCAL_GL_EXP = 0x0800,
  269. LOCAL_GL_EXP2 = 0x0801,
  270. /* Logic Ops */
  271. LOCAL_GL_LOGIC_OP = 0x0BF1,
  272. LOCAL_GL_INDEX_LOGIC_OP = 0x0BF1,
  273. LOCAL_GL_COLOR_LOGIC_OP = 0x0BF2,
  274. LOCAL_GL_LOGIC_OP_MODE = 0x0BF0,
  275. LOCAL_GL_CLEAR = 0x1500,
  276. LOCAL_GL_SET = 0x150F,
  277. LOCAL_GL_COPY = 0x1503,
  278. LOCAL_GL_COPY_INVERTED = 0x150C,
  279. LOCAL_GL_NOOP = 0x1505,
  280. LOCAL_GL_INVERT = 0x150A,
  281. LOCAL_GL_AND = 0x1501,
  282. LOCAL_GL_NAND = 0x150E,
  283. LOCAL_GL_OR = 0x1507,
  284. LOCAL_GL_NOR = 0x1508,
  285. LOCAL_GL_XOR = 0x1506,
  286. LOCAL_GL_EQUIV = 0x1509,
  287. LOCAL_GL_AND_REVERSE = 0x1502,
  288. LOCAL_GL_AND_INVERTED = 0x1504,
  289. LOCAL_GL_OR_REVERSE = 0x150B,
  290. LOCAL_GL_OR_INVERTED = 0x150D,
  291. /* Stencil */
  292. LOCAL_GL_STENCIL_TEST = 0x0B90,
  293. LOCAL_GL_STENCIL_WRITEMASK = 0x0B98,
  294. LOCAL_GL_STENCIL_BITS = 0x0D57,
  295. LOCAL_GL_STENCIL_FUNC = 0x0B92,
  296. LOCAL_GL_STENCIL_VALUE_MASK = 0x0B93,
  297. LOCAL_GL_STENCIL_REF = 0x0B97,
  298. LOCAL_GL_STENCIL_FAIL = 0x0B94,
  299. LOCAL_GL_STENCIL_PASS_DEPTH_PASS = 0x0B96,
  300. LOCAL_GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95,
  301. LOCAL_GL_STENCIL_CLEAR_VALUE = 0x0B91,
  302. LOCAL_GL_STENCIL_INDEX = 0x1901,
  303. LOCAL_GL_KEEP = 0x1E00,
  304. LOCAL_GL_REPLACE = 0x1E01,
  305. LOCAL_GL_INCR = 0x1E02,
  306. LOCAL_GL_DECR = 0x1E03,
  307. /* Buffers, Pixel Drawing/Reading */
  308. LOCAL_GL_NONE = 0,
  309. LOCAL_GL_LEFT = 0x0406,
  310. LOCAL_GL_RIGHT = 0x0407,
  311. /*LOCAL_GL_FRONT = 0x0404, */
  312. /*LOCAL_GL_BACK = 0x0405, */
  313. /*LOCAL_GL_FRONT_AND_BACK = 0x0408, */
  314. LOCAL_GL_FRONT_LEFT = 0x0400,
  315. LOCAL_GL_FRONT_RIGHT = 0x0401,
  316. LOCAL_GL_BACK_LEFT = 0x0402,
  317. LOCAL_GL_BACK_RIGHT = 0x0403,
  318. LOCAL_GL_AUX0 = 0x0409,
  319. LOCAL_GL_AUX1 = 0x040A,
  320. LOCAL_GL_AUX2 = 0x040B,
  321. LOCAL_GL_AUX3 = 0x040C,
  322. LOCAL_GL_COLOR_INDEX = 0x1900,
  323. LOCAL_GL_RED = 0x1903,
  324. LOCAL_GL_GREEN = 0x1904,
  325. LOCAL_GL_BLUE = 0x1905,
  326. LOCAL_GL_ALPHA = 0x1906,
  327. LOCAL_GL_LUMINANCE = 0x1909,
  328. LOCAL_GL_LUMINANCE_ALPHA = 0x190A,
  329. LOCAL_GL_ALPHA_BITS = 0x0D55,
  330. LOCAL_GL_RED_BITS = 0x0D52,
  331. LOCAL_GL_GREEN_BITS = 0x0D53,
  332. LOCAL_GL_BLUE_BITS = 0x0D54,
  333. LOCAL_GL_INDEX_BITS = 0x0D51,
  334. LOCAL_GL_SUBPIXEL_BITS = 0x0D50,
  335. LOCAL_GL_AUX_BUFFERS = 0x0C00,
  336. LOCAL_GL_READ_BUFFER = 0x0C02,
  337. LOCAL_GL_DRAW_BUFFER = 0x0C01,
  338. LOCAL_GL_DOUBLEBUFFER = 0x0C32,
  339. LOCAL_GL_STEREO = 0x0C33,
  340. LOCAL_GL_BITMAP = 0x1A00,
  341. LOCAL_GL_COLOR = 0x1800,
  342. LOCAL_GL_DEPTH = 0x1801,
  343. LOCAL_GL_STENCIL = 0x1802,
  344. LOCAL_GL_DITHER = 0x0BD0,
  345. LOCAL_GL_RGB = 0x1907,
  346. LOCAL_GL_RGBA = 0x1908,
  347. /* Implementation limits */
  348. LOCAL_GL_MAX_LIST_NESTING = 0x0B31,
  349. LOCAL_GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35,
  350. LOCAL_GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36,
  351. LOCAL_GL_MAX_NAME_STACK_DEPTH = 0x0D37,
  352. LOCAL_GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38,
  353. LOCAL_GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39,
  354. LOCAL_GL_MAX_EVAL_ORDER = 0x0D30,
  355. LOCAL_GL_MAX_LIGHTS = 0x0D31,
  356. LOCAL_GL_MAX_CLIP_PLANES = 0x0D32,
  357. LOCAL_GL_MAX_TEXTURE_SIZE = 0x0D33,
  358. LOCAL_GL_MAX_PIXEL_MAP_TABLE = 0x0D34,
  359. LOCAL_GL_MAX_VIEWPORT_DIMS = 0x0D3A,
  360. LOCAL_GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B,
  361. /* Gets */
  362. LOCAL_GL_ATTRIB_STACK_DEPTH = 0x0BB0,
  363. LOCAL_GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1,
  364. LOCAL_GL_COLOR_CLEAR_VALUE = 0x0C22,
  365. LOCAL_GL_COLOR_WRITEMASK = 0x0C23,
  366. LOCAL_GL_CURRENT_INDEX = 0x0B01,
  367. LOCAL_GL_CURRENT_COLOR = 0x0B00,
  368. LOCAL_GL_CURRENT_NORMAL = 0x0B02,
  369. LOCAL_GL_CURRENT_RASTER_COLOR = 0x0B04,
  370. LOCAL_GL_CURRENT_RASTER_DISTANCE = 0x0B09,
  371. LOCAL_GL_CURRENT_RASTER_INDEX = 0x0B05,
  372. LOCAL_GL_CURRENT_RASTER_POSITION = 0x0B07,
  373. LOCAL_GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06,
  374. LOCAL_GL_CURRENT_RASTER_POSITION_VALID = 0x0B08,
  375. LOCAL_GL_CURRENT_TEXTURE_COORDS = 0x0B03,
  376. LOCAL_GL_INDEX_CLEAR_VALUE = 0x0C20,
  377. LOCAL_GL_INDEX_MODE = 0x0C30,
  378. LOCAL_GL_INDEX_WRITEMASK = 0x0C21,
  379. LOCAL_GL_MODELVIEW_MATRIX = 0x0BA6,
  380. LOCAL_GL_MODELVIEW_STACK_DEPTH = 0x0BA3,
  381. LOCAL_GL_NAME_STACK_DEPTH = 0x0D70,
  382. LOCAL_GL_PROJECTION_MATRIX = 0x0BA7,
  383. LOCAL_GL_PROJECTION_STACK_DEPTH = 0x0BA4,
  384. LOCAL_GL_RENDER_MODE = 0x0C40,
  385. LOCAL_GL_RGBA_MODE = 0x0C31,
  386. LOCAL_GL_TEXTURE_MATRIX = 0x0BA8,
  387. LOCAL_GL_TEXTURE_STACK_DEPTH = 0x0BA5,
  388. LOCAL_GL_VIEWPORT = 0x0BA2,
  389. /* Evaluators */
  390. LOCAL_GL_AUTO_NORMAL = 0x0D80,
  391. LOCAL_GL_MAP1_COLOR_4 = 0x0D90,
  392. LOCAL_GL_MAP1_GRID_DOMAIN = 0x0DD0,
  393. LOCAL_GL_MAP1_GRID_SEGMENTS = 0x0DD1,
  394. LOCAL_GL_MAP1_INDEX = 0x0D91,
  395. LOCAL_GL_MAP1_NORMAL = 0x0D92,
  396. LOCAL_GL_MAP1_TEXTURE_COORD_1 = 0x0D93,
  397. LOCAL_GL_MAP1_TEXTURE_COORD_2 = 0x0D94,
  398. LOCAL_GL_MAP1_TEXTURE_COORD_3 = 0x0D95,
  399. LOCAL_GL_MAP1_TEXTURE_COORD_4 = 0x0D96,
  400. LOCAL_GL_MAP1_VERTEX_3 = 0x0D97,
  401. LOCAL_GL_MAP1_VERTEX_4 = 0x0D98,
  402. LOCAL_GL_MAP2_COLOR_4 = 0x0DB0,
  403. LOCAL_GL_MAP2_GRID_DOMAIN = 0x0DD2,
  404. LOCAL_GL_MAP2_GRID_SEGMENTS = 0x0DD3,
  405. LOCAL_GL_MAP2_INDEX = 0x0DB1,
  406. LOCAL_GL_MAP2_NORMAL = 0x0DB2,
  407. LOCAL_GL_MAP2_TEXTURE_COORD_1 = 0x0DB3,
  408. LOCAL_GL_MAP2_TEXTURE_COORD_2 = 0x0DB4,
  409. LOCAL_GL_MAP2_TEXTURE_COORD_3 = 0x0DB5,
  410. LOCAL_GL_MAP2_TEXTURE_COORD_4 = 0x0DB6,
  411. LOCAL_GL_MAP2_VERTEX_3 = 0x0DB7,
  412. LOCAL_GL_MAP2_VERTEX_4 = 0x0DB8,
  413. LOCAL_GL_COEFF = 0x0A00,
  414. LOCAL_GL_DOMAIN = 0x0A02,
  415. LOCAL_GL_ORDER = 0x0A01,
  416. /* Hints */
  417. LOCAL_GL_FOG_HINT = 0x0C54,
  418. LOCAL_GL_LINE_SMOOTH_HINT = 0x0C52,
  419. LOCAL_GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50,
  420. LOCAL_GL_POINT_SMOOTH_HINT = 0x0C51,
  421. LOCAL_GL_POLYGON_SMOOTH_HINT = 0x0C53,
  422. LOCAL_GL_DONT_CARE = 0x1100,
  423. LOCAL_GL_FASTEST = 0x1101,
  424. LOCAL_GL_NICEST = 0x1102,
  425. /* Scissor box */
  426. LOCAL_GL_SCISSOR_TEST = 0x0C11,
  427. LOCAL_GL_SCISSOR_BOX = 0x0C10,
  428. /* Pixel Mode / Transfer */
  429. LOCAL_GL_MAP_COLOR = 0x0D10,
  430. LOCAL_GL_MAP_STENCIL = 0x0D11,
  431. LOCAL_GL_INDEX_SHIFT = 0x0D12,
  432. LOCAL_GL_INDEX_OFFSET = 0x0D13,
  433. LOCAL_GL_RED_SCALE = 0x0D14,
  434. LOCAL_GL_RED_BIAS = 0x0D15,
  435. LOCAL_GL_GREEN_SCALE = 0x0D18,
  436. LOCAL_GL_GREEN_BIAS = 0x0D19,
  437. LOCAL_GL_BLUE_SCALE = 0x0D1A,
  438. LOCAL_GL_BLUE_BIAS = 0x0D1B,
  439. LOCAL_GL_ALPHA_SCALE = 0x0D1C,
  440. LOCAL_GL_ALPHA_BIAS = 0x0D1D,
  441. LOCAL_GL_DEPTH_SCALE = 0x0D1E,
  442. LOCAL_GL_DEPTH_BIAS = 0x0D1F,
  443. LOCAL_GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1,
  444. LOCAL_GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0,
  445. LOCAL_GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2,
  446. LOCAL_GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3,
  447. LOCAL_GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4,
  448. LOCAL_GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5,
  449. LOCAL_GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6,
  450. LOCAL_GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7,
  451. LOCAL_GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8,
  452. LOCAL_GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9,
  453. LOCAL_GL_PIXEL_MAP_S_TO_S = 0x0C71,
  454. LOCAL_GL_PIXEL_MAP_I_TO_I = 0x0C70,
  455. LOCAL_GL_PIXEL_MAP_I_TO_R = 0x0C72,
  456. LOCAL_GL_PIXEL_MAP_I_TO_G = 0x0C73,
  457. LOCAL_GL_PIXEL_MAP_I_TO_B = 0x0C74,
  458. LOCAL_GL_PIXEL_MAP_I_TO_A = 0x0C75,
  459. LOCAL_GL_PIXEL_MAP_R_TO_R = 0x0C76,
  460. LOCAL_GL_PIXEL_MAP_G_TO_G = 0x0C77,
  461. LOCAL_GL_PIXEL_MAP_B_TO_B = 0x0C78,
  462. LOCAL_GL_PIXEL_MAP_A_TO_A = 0x0C79,
  463. LOCAL_GL_PACK_ALIGNMENT = 0x0D05,
  464. LOCAL_GL_PACK_LSB_FIRST = 0x0D01,
  465. LOCAL_GL_PACK_ROW_LENGTH = 0x0D02,
  466. LOCAL_GL_PACK_SKIP_PIXELS = 0x0D04,
  467. LOCAL_GL_PACK_SKIP_ROWS = 0x0D03,
  468. LOCAL_GL_PACK_SWAP_BYTES = 0x0D00,
  469. LOCAL_GL_UNPACK_ALIGNMENT = 0x0CF5,
  470. LOCAL_GL_UNPACK_LSB_FIRST = 0x0CF1,
  471. LOCAL_GL_UNPACK_ROW_LENGTH = 0x0CF2,
  472. LOCAL_GL_UNPACK_SKIP_PIXELS = 0x0CF4,
  473. LOCAL_GL_UNPACK_SKIP_ROWS = 0x0CF3,
  474. LOCAL_GL_UNPACK_SWAP_BYTES = 0x0CF0,
  475. LOCAL_GL_ZOOM_X = 0x0D16,
  476. LOCAL_GL_ZOOM_Y = 0x0D17,
  477. /* Texture mapping */
  478. LOCAL_GL_TEXTURE_ENV = 0x2300,
  479. LOCAL_GL_TEXTURE_ENV_MODE = 0x2200,
  480. LOCAL_GL_TEXTURE_1D = 0x0DE0,
  481. LOCAL_GL_TEXTURE_2D = 0x0DE1,
  482. LOCAL_GL_TEXTURE_WRAP_S = 0x2802,
  483. LOCAL_GL_TEXTURE_WRAP_T = 0x2803,
  484. LOCAL_GL_TEXTURE_MAG_FILTER = 0x2800,
  485. LOCAL_GL_TEXTURE_MIN_FILTER = 0x2801,
  486. LOCAL_GL_TEXTURE_ENV_COLOR = 0x2201,
  487. LOCAL_GL_TEXTURE_GEN_S = 0x0C60,
  488. LOCAL_GL_TEXTURE_GEN_T = 0x0C61,
  489. LOCAL_GL_TEXTURE_GEN_MODE = 0x2500,
  490. LOCAL_GL_TEXTURE_BORDER_COLOR = 0x1004,
  491. LOCAL_GL_TEXTURE_WIDTH = 0x1000,
  492. LOCAL_GL_TEXTURE_HEIGHT = 0x1001,
  493. LOCAL_GL_TEXTURE_BORDER = 0x1005,
  494. LOCAL_GL_TEXTURE_COMPONENTS = 0x1003,
  495. LOCAL_GL_TEXTURE_RED_SIZE = 0x805C,
  496. LOCAL_GL_TEXTURE_GREEN_SIZE = 0x805D,
  497. LOCAL_GL_TEXTURE_BLUE_SIZE = 0x805E,
  498. LOCAL_GL_TEXTURE_ALPHA_SIZE = 0x805F,
  499. LOCAL_GL_TEXTURE_LUMINANCE_SIZE = 0x8060,
  500. LOCAL_GL_TEXTURE_INTENSITY_SIZE = 0x8061,
  501. LOCAL_GL_NEAREST_MIPMAP_NEAREST = 0x2700,
  502. LOCAL_GL_NEAREST_MIPMAP_LINEAR = 0x2702,
  503. LOCAL_GL_LINEAR_MIPMAP_NEAREST = 0x2701,
  504. LOCAL_GL_LINEAR_MIPMAP_LINEAR = 0x2703,
  505. LOCAL_GL_OBJECT_LINEAR = 0x2401,
  506. LOCAL_GL_OBJECT_PLANE = 0x2501,
  507. LOCAL_GL_EYE_LINEAR = 0x2400,
  508. LOCAL_GL_EYE_PLANE = 0x2502,
  509. LOCAL_GL_SPHERE_MAP = 0x2402,
  510. LOCAL_GL_DECAL = 0x2101,
  511. LOCAL_GL_MODULATE = 0x2100,
  512. LOCAL_GL_NEAREST = 0x2600,
  513. LOCAL_GL_REPEAT = 0x2901,
  514. LOCAL_GL_CLAMP = 0x2900,
  515. LOCAL_GL_S = 0x2000,
  516. LOCAL_GL_T = 0x2001,
  517. LOCAL_GL_R = 0x2002,
  518. LOCAL_GL_Q = 0x2003,
  519. LOCAL_GL_TEXTURE_GEN_R = 0x0C62,
  520. LOCAL_GL_TEXTURE_GEN_Q = 0x0C63,
  521. /* GL 1.1 texturing */
  522. LOCAL_GL_PROXY_TEXTURE_1D = 0x8063,
  523. LOCAL_GL_PROXY_TEXTURE_2D = 0x8064,
  524. LOCAL_GL_TEXTURE_PRIORITY = 0x8066,
  525. LOCAL_GL_TEXTURE_RESIDENT = 0x8067,
  526. LOCAL_GL_TEXTURE_BINDING_1D = 0x8068,
  527. LOCAL_GL_TEXTURE_BINDING_2D = 0x8069,
  528. LOCAL_GL_TEXTURE_INTERNAL_FORMAT = 0x1003,
  529. /* GL 1.2 texturing */
  530. LOCAL_GL_PACK_SKIP_IMAGES = 0x806B,
  531. LOCAL_GL_PACK_IMAGE_HEIGHT = 0x806C,
  532. LOCAL_GL_UNPACK_SKIP_IMAGES = 0x806D,
  533. LOCAL_GL_UNPACK_IMAGE_HEIGHT = 0x806E,
  534. LOCAL_GL_TEXTURE_3D = 0x806F,
  535. LOCAL_GL_PROXY_TEXTURE_3D = 0x8070,
  536. LOCAL_GL_TEXTURE_DEPTH = 0x8071,
  537. LOCAL_GL_TEXTURE_WRAP_R = 0x8072,
  538. LOCAL_GL_MAX_3D_TEXTURE_SIZE = 0x8073,
  539. LOCAL_GL_TEXTURE_BINDING_3D = 0x806A,
  540. /* Internal texture formats (GL 1.1) */
  541. LOCAL_GL_ALPHA4 = 0x803B,
  542. LOCAL_GL_ALPHA8 = 0x803C,
  543. LOCAL_GL_ALPHA12 = 0x803D,
  544. LOCAL_GL_ALPHA16 = 0x803E,
  545. LOCAL_GL_LUMINANCE4 = 0x803F,
  546. LOCAL_GL_LUMINANCE8 = 0x8040,
  547. LOCAL_GL_LUMINANCE12 = 0x8041,
  548. LOCAL_GL_LUMINANCE16 = 0x8042,
  549. LOCAL_GL_LUMINANCE4_ALPHA4 = 0x8043,
  550. LOCAL_GL_LUMINANCE6_ALPHA2 = 0x8044,
  551. LOCAL_GL_LUMINANCE8_ALPHA8 = 0x8045,
  552. LOCAL_GL_LUMINANCE12_ALPHA4 = 0x8046,
  553. LOCAL_GL_LUMINANCE12_ALPHA12 = 0x8047,
  554. LOCAL_GL_LUMINANCE16_ALPHA16 = 0x8048,
  555. LOCAL_GL_INTENSITY = 0x8049,
  556. LOCAL_GL_INTENSITY4 = 0x804A,
  557. LOCAL_GL_INTENSITY8 = 0x804B,
  558. LOCAL_GL_INTENSITY12 = 0x804C,
  559. LOCAL_GL_INTENSITY16 = 0x804D,
  560. LOCAL_GL_R3_G3_B2 = 0x2A10,
  561. LOCAL_GL_RGB4 = 0x804F,
  562. LOCAL_GL_RGB5 = 0x8050,
  563. LOCAL_GL_RGB8 = 0x8051,
  564. LOCAL_GL_RGB10 = 0x8052,
  565. LOCAL_GL_RGB12 = 0x8053,
  566. LOCAL_GL_RGB16 = 0x8054,
  567. LOCAL_GL_RGBA2 = 0x8055,
  568. LOCAL_GL_RGBA4 = 0x8056,
  569. LOCAL_GL_RGB5_A1 = 0x8057,
  570. LOCAL_GL_RGBA8 = 0x8058,
  571. LOCAL_GL_RGB10_A2 = 0x8059,
  572. LOCAL_GL_RGBA12 = 0x805A,
  573. LOCAL_GL_RGBA16 = 0x805B,
  574. /* Utility */
  575. LOCAL_GL_VENDOR = 0x1F00,
  576. LOCAL_GL_RENDERER = 0x1F01,
  577. LOCAL_GL_VERSION = 0x1F02,
  578. LOCAL_GL_EXTENSIONS = 0x1F03,
  579. /* Errors */
  580. LOCAL_GL_INVALID_VALUE = 0x0501,
  581. LOCAL_GL_INVALID_ENUM = 0x0500,
  582. LOCAL_GL_INVALID_OPERATION = 0x0502,
  583. LOCAL_GL_STACK_OVERFLOW = 0x0503,
  584. LOCAL_GL_STACK_UNDERFLOW = 0x0504,
  585. LOCAL_GL_OUT_OF_MEMORY = 0x0505,
  586. /*
  587. * Extensions
  588. */
  589. /* LOCAL_GL_EXT_blend_minmax and LOCAL_GL_EXT_blend_color */
  590. LOCAL_GL_CONSTANT_COLOR_EXT = 0x8001,
  591. LOCAL_GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002,
  592. LOCAL_GL_CONSTANT_ALPHA_EXT = 0x8003,
  593. LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004,
  594. LOCAL_GL_BLEND_EQUATION_EXT = 0x8009,
  595. LOCAL_GL_MIN_EXT = 0x8007,
  596. LOCAL_GL_MAX_EXT = 0x8008,
  597. LOCAL_GL_FUNC_ADD_EXT = 0x8006,
  598. LOCAL_GL_FUNC_SUBTRACT_EXT = 0x800A,
  599. LOCAL_GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B,
  600. LOCAL_GL_BLEND_COLOR_EXT = 0x8005,
  601. /* LOCAL_GL_EXT_polygon_offset */
  602. LOCAL_GL_POLYGON_OFFSET_EXT = 0x8037,
  603. LOCAL_GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038,
  604. LOCAL_GL_POLYGON_OFFSET_BIAS_EXT = 0x8039,
  605. /* LOCAL_GL_EXT_vertex_array */
  606. LOCAL_GL_VERTEX_ARRAY_EXT = 0x8074,
  607. LOCAL_GL_NORMAL_ARRAY_EXT = 0x8075,
  608. LOCAL_GL_COLOR_ARRAY_EXT = 0x8076,
  609. LOCAL_GL_INDEX_ARRAY_EXT = 0x8077,
  610. LOCAL_GL_TEXTURE_COORD_ARRAY_EXT = 0x8078,
  611. LOCAL_GL_EDGE_FLAG_ARRAY_EXT = 0x8079,
  612. LOCAL_GL_VERTEX_ARRAY_SIZE_EXT = 0x807A,
  613. LOCAL_GL_VERTEX_ARRAY_TYPE_EXT = 0x807B,
  614. LOCAL_GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C,
  615. LOCAL_GL_VERTEX_ARRAY_COUNT_EXT = 0x807D,
  616. LOCAL_GL_NORMAL_ARRAY_TYPE_EXT = 0x807E,
  617. LOCAL_GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F,
  618. LOCAL_GL_NORMAL_ARRAY_COUNT_EXT = 0x8080,
  619. LOCAL_GL_COLOR_ARRAY_SIZE_EXT = 0x8081,
  620. LOCAL_GL_COLOR_ARRAY_TYPE_EXT = 0x8082,
  621. LOCAL_GL_COLOR_ARRAY_STRIDE_EXT = 0x8083,
  622. LOCAL_GL_COLOR_ARRAY_COUNT_EXT = 0x8084,
  623. LOCAL_GL_INDEX_ARRAY_TYPE_EXT = 0x8085,
  624. LOCAL_GL_INDEX_ARRAY_STRIDE_EXT = 0x8086,
  625. LOCAL_GL_INDEX_ARRAY_COUNT_EXT = 0x8087,
  626. LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088,
  627. LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089,
  628. LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A,
  629. LOCAL_GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B,
  630. LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C,
  631. LOCAL_GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D,
  632. LOCAL_GL_VERTEX_ARRAY_POINTER_EXT = 0x808E,
  633. LOCAL_GL_NORMAL_ARRAY_POINTER_EXT = 0x808F,
  634. LOCAL_GL_COLOR_ARRAY_POINTER_EXT = 0x8090,
  635. LOCAL_GL_INDEX_ARRAY_POINTER_EXT = 0x8091,
  636. LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092,
  637. LOCAL_GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093,
  638. /* LOCAL_GL_EXT_texture_object */
  639. LOCAL_GL_TEXTURE_PRIORITY_EXT = 0x8066,
  640. LOCAL_GL_TEXTURE_RESIDENT_EXT = 0x8067,
  641. LOCAL_GL_TEXTURE_1D_BINDING_EXT = 0x8068,
  642. LOCAL_GL_TEXTURE_2D_BINDING_EXT = 0x8069,
  643. /* LOCAL_GL_EXT_texture3D */
  644. LOCAL_GL_PACK_SKIP_IMAGES_EXT = 0x806B,
  645. LOCAL_GL_PACK_IMAGE_HEIGHT_EXT = 0x806C,
  646. LOCAL_GL_UNPACK_SKIP_IMAGES_EXT = 0x806D,
  647. LOCAL_GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E,
  648. LOCAL_GL_TEXTURE_3D_EXT = 0x806F,
  649. LOCAL_GL_PROXY_TEXTURE_3D_EXT = 0x8070,
  650. LOCAL_GL_TEXTURE_DEPTH_EXT = 0x8071,
  651. LOCAL_GL_TEXTURE_WRAP_R_EXT = 0x8072,
  652. LOCAL_GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073,
  653. LOCAL_GL_TEXTURE_3D_BINDING_EXT = 0x806A,
  654. /* LOCAL_GL_EXT_paletted_texture */
  655. LOCAL_GL_TABLE_TOO_LARGE_EXT = 0x8031,
  656. LOCAL_GL_COLOR_TABLE_FORMAT_EXT = 0x80D8,
  657. LOCAL_GL_COLOR_TABLE_WIDTH_EXT = 0x80D9,
  658. LOCAL_GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA,
  659. LOCAL_GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB,
  660. LOCAL_GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC,
  661. LOCAL_GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD,
  662. LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE,
  663. LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF,
  664. LOCAL_GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED,
  665. LOCAL_GL_COLOR_INDEX1_EXT = 0x80E2,
  666. LOCAL_GL_COLOR_INDEX2_EXT = 0x80E3,
  667. LOCAL_GL_COLOR_INDEX4_EXT = 0x80E4,
  668. LOCAL_GL_COLOR_INDEX8_EXT = 0x80E5,
  669. LOCAL_GL_COLOR_INDEX12_EXT = 0x80E6,
  670. LOCAL_GL_COLOR_INDEX16_EXT = 0x80E7,
  671. /* LOCAL_GL_EXT_shared_texture_palette */
  672. LOCAL_GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB,
  673. /* LOCAL_GL_EXT_point_parameters */
  674. LOCAL_GL_POINT_SIZE_MIN_EXT = 0x8126,
  675. LOCAL_GL_POINT_SIZE_MAX_EXT = 0x8127,
  676. LOCAL_GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128,
  677. LOCAL_GL_DISTANCE_ATTENUATION_EXT = 0x8129,
  678. /* LOCAL_GL_EXT_rescale_normal */
  679. LOCAL_GL_RESCALE_NORMAL_EXT = 0x803A,
  680. /* LOCAL_GL_EXT_abgr */
  681. LOCAL_GL_ABGR_EXT = 0x8000,
  682. /* LOCAL_GL_SGIS_multitexture */
  683. LOCAL_GL_SELECTED_TEXTURE_SGIS = 0x835C,
  684. LOCAL_GL_SELECTED_TEXTURE_COORD_SET_SGIS = 0x835D,
  685. LOCAL_GL_MAX_TEXTURES_SGIS = 0x835E,
  686. LOCAL_GL_TEXTURE0_SGIS = 0x835F,
  687. LOCAL_GL_TEXTURE1_SGIS = 0x8360,
  688. LOCAL_GL_TEXTURE2_SGIS = 0x8361,
  689. LOCAL_GL_TEXTURE3_SGIS = 0x8362,
  690. LOCAL_GL_TEXTURE_COORD_SET_SOURCE_SGIS = 0x8363,
  691. /* LOCAL_GL_EXT_multitexture */
  692. LOCAL_GL_SELECTED_TEXTURE_EXT = 0x83C0,
  693. LOCAL_GL_SELECTED_TEXTURE_COORD_SET_EXT = 0x83C1,
  694. LOCAL_GL_SELECTED_TEXTURE_TRANSFORM_EXT = 0x83C2,
  695. LOCAL_GL_MAX_TEXTURES_EXT = 0x83C3,
  696. LOCAL_GL_MAX_TEXTURE_COORD_SETS_EXT = 0x83C4,
  697. LOCAL_GL_TEXTURE_ENV_COORD_SET_EXT = 0x83C5,
  698. LOCAL_GL_TEXTURE0_EXT = 0x83C6,
  699. LOCAL_GL_TEXTURE1_EXT = 0x83C7,
  700. LOCAL_GL_TEXTURE2_EXT = 0x83C8,
  701. LOCAL_GL_TEXTURE3_EXT = 0x83C9,
  702. /* LOCAL_GL_SGIS_texture_edge_clamp */
  703. LOCAL_GL_CLAMP_TO_EDGE_SGIS = 0x812F,
  704. /* OpenGL 1.2 */
  705. LOCAL_GL_RESCALE_NORMAL = 0x803A,
  706. LOCAL_GL_CLAMP_TO_EDGE = 0x812F,
  707. LOCAL_GL_MAX_ELEMENTS_VERTICES = 0xF0E8,
  708. LOCAL_GL_MAX_ELEMENTS_INDICES = 0xF0E9,
  709. LOCAL_GL_BGR = 0x80E0,
  710. LOCAL_GL_BGRA = 0x80E1,
  711. LOCAL_GL_UNSIGNED_BYTE_3_3_2 = 0x8032,
  712. LOCAL_GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362,
  713. LOCAL_GL_UNSIGNED_SHORT_5_6_5 = 0x8363,
  714. LOCAL_GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364,
  715. LOCAL_GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033,
  716. LOCAL_GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365,
  717. LOCAL_GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034,
  718. LOCAL_GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366,
  719. LOCAL_GL_UNSIGNED_INT_8_8_8_8 = 0x8035,
  720. LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367,
  721. LOCAL_GL_UNSIGNED_INT_10_10_10_2 = 0x8036,
  722. LOCAL_GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368,
  723. LOCAL_GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8,
  724. LOCAL_GL_SINGLE_COLOR = 0x81F9,
  725. LOCAL_GL_SEPARATE_SPECULAR_COLOR = 0x81FA,
  726. LOCAL_GL_TEXTURE_MIN_LOD = 0x813A,
  727. LOCAL_GL_TEXTURE_MAX_LOD = 0x813B,
  728. LOCAL_GL_TEXTURE_BASE_LEVEL = 0x813C,
  729. LOCAL_GL_TEXTURE_MAX_LEVEL = 0x813D
  730. };
  731. typedef struct { GLenum e; const char* name; } ENUM;
  732. #define EDEF(VAR) { (GLenum)(LOCAL_GL_##VAR), #VAR }
  733. static ENUM enums[] =
  734. {
  735. EDEF(BYTE),
  736. EDEF(UNSIGNED_BYTE),
  737. EDEF(SHORT),
  738. EDEF(UNSIGNED_SHORT),
  739. EDEF(INT),
  740. EDEF(UNSIGNED_INT),
  741. EDEF(FLOAT),
  742. EDEF(DOUBLE),
  743. EDEF(2_BYTES),
  744. EDEF(3_BYTES),
  745. EDEF(4_BYTES),
  746. /*
  747. EDEF(LINES),
  748. EDEF(POINTS),
  749. EDEF(LINE_STRIP),
  750. EDEF(LINE_LOOP),
  751. EDEF(TRIANGLES),
  752. EDEF(TRIANGLE_STRIP),
  753. EDEF(TRIANGLE_FAN),
  754. EDEF(QUADS),
  755. EDEF(QUAD_STRIP),
  756. EDEF(POLYGON),
  757. EDEF(EDGE_FLAG),
  758. */
  759. EDEF(VERTEX_ARRAY),
  760. EDEF(NORMAL_ARRAY),
  761. EDEF(COLOR_ARRAY),
  762. EDEF(INDEX_ARRAY),
  763. EDEF(TEXTURE_COORD_ARRAY),
  764. EDEF(EDGE_FLAG_ARRAY),
  765. EDEF(VERTEX_ARRAY_SIZE),
  766. EDEF(VERTEX_ARRAY_TYPE),
  767. EDEF(VERTEX_ARRAY_STRIDE),
  768. EDEF(NORMAL_ARRAY_TYPE),
  769. EDEF(NORMAL_ARRAY_STRIDE),
  770. EDEF(COLOR_ARRAY_SIZE),
  771. EDEF(COLOR_ARRAY_TYPE),
  772. EDEF(COLOR_ARRAY_STRIDE),
  773. EDEF(INDEX_ARRAY_TYPE),
  774. EDEF(INDEX_ARRAY_STRIDE),
  775. EDEF(TEXTURE_COORD_ARRAY_SIZE),
  776. EDEF(TEXTURE_COORD_ARRAY_TYPE),
  777. EDEF(TEXTURE_COORD_ARRAY_STRIDE),
  778. EDEF(EDGE_FLAG_ARRAY_STRIDE),
  779. EDEF(VERTEX_ARRAY_POINTER),
  780. EDEF(NORMAL_ARRAY_POINTER),
  781. EDEF(COLOR_ARRAY_POINTER),
  782. EDEF(INDEX_ARRAY_POINTER),
  783. EDEF(TEXTURE_COORD_ARRAY_POINTER),
  784. EDEF(EDGE_FLAG_ARRAY_POINTER),
  785. EDEF(V2F),
  786. EDEF(V3F),
  787. EDEF(C4UB_V2F),
  788. EDEF(C4UB_V3F),
  789. EDEF(C3F_V3F),
  790. EDEF(N3F_V3F),
  791. EDEF(C4F_N3F_V3F),
  792. EDEF(T2F_V3F),
  793. EDEF(T4F_V4F),
  794. EDEF(T2F_C4UB_V3F),
  795. EDEF(T2F_C3F_V3F),
  796. EDEF(T2F_N3F_V3F),
  797. EDEF(T2F_C4F_N3F_V3F),
  798. EDEF(T4F_C4F_N3F_V4F),
  799. EDEF(MATRIX_MODE),
  800. EDEF(MODELVIEW),
  801. EDEF(PROJECTION),
  802. EDEF(TEXTURE),
  803. EDEF(POINT_SMOOTH),
  804. EDEF(POINT_SIZE),
  805. EDEF(POINT_SIZE_GRANULARITY),
  806. EDEF(POINT_SIZE_RANGE),
  807. EDEF(LINE_SMOOTH),
  808. EDEF(LINE_STIPPLE),
  809. EDEF(LINE_STIPPLE_PATTERN),
  810. EDEF(LINE_STIPPLE_REPEAT),
  811. EDEF(LINE_WIDTH),
  812. EDEF(LINE_WIDTH_GRANULARITY),
  813. EDEF(LINE_WIDTH_RANGE),
  814. EDEF(POINT),
  815. EDEF(LINE),
  816. EDEF(FILL),
  817. EDEF(CCW),
  818. EDEF(CW),
  819. EDEF(FRONT),
  820. EDEF(BACK),
  821. EDEF(CULL_FACE),
  822. EDEF(CULL_FACE_MODE),
  823. EDEF(POLYGON_SMOOTH),
  824. EDEF(POLYGON_STIPPLE),
  825. EDEF(FRONT_FACE),
  826. EDEF(POLYGON_MODE),
  827. EDEF(POLYGON_OFFSET_FACTOR),
  828. EDEF(POLYGON_OFFSET_UNITS),
  829. EDEF(POLYGON_OFFSET_POINT),
  830. EDEF(POLYGON_OFFSET_LINE),
  831. EDEF(POLYGON_OFFSET_FILL),
  832. EDEF(COMPILE),
  833. EDEF(COMPILE_AND_EXECUTE),
  834. EDEF(LIST_BASE),
  835. EDEF(LIST_INDEX),
  836. EDEF(LIST_MODE),
  837. EDEF(NEVER),
  838. EDEF(LESS),
  839. EDEF(GEQUAL),
  840. EDEF(LEQUAL),
  841. EDEF(GREATER),
  842. EDEF(NOTEQUAL),
  843. EDEF(EQUAL),
  844. EDEF(ALWAYS),
  845. EDEF(DEPTH_TEST),
  846. EDEF(DEPTH_BITS),
  847. EDEF(DEPTH_CLEAR_VALUE),
  848. EDEF(DEPTH_FUNC),
  849. EDEF(DEPTH_RANGE),
  850. EDEF(DEPTH_WRITEMASK),
  851. EDEF(DEPTH_COMPONENT),
  852. EDEF(LIGHTING),
  853. EDEF(LIGHT0),
  854. EDEF(LIGHT1),
  855. EDEF(LIGHT2),
  856. EDEF(LIGHT3),
  857. EDEF(LIGHT4),
  858. EDEF(LIGHT5),
  859. EDEF(LIGHT6),
  860. EDEF(LIGHT7),
  861. EDEF(SPOT_EXPONENT),
  862. EDEF(SPOT_CUTOFF),
  863. EDEF(CONSTANT_ATTENUATION),
  864. EDEF(LINEAR_ATTENUATION),
  865. EDEF(QUADRATIC_ATTENUATION),
  866. EDEF(AMBIENT),
  867. EDEF(DIFFUSE),
  868. EDEF(SPECULAR),
  869. EDEF(SHININESS),
  870. EDEF(EMISSION),
  871. EDEF(POSITION),
  872. EDEF(SPOT_DIRECTION),
  873. EDEF(AMBIENT_AND_DIFFUSE),
  874. EDEF(COLOR_INDEXES),
  875. EDEF(LIGHT_MODEL_TWO_SIDE),
  876. EDEF(LIGHT_MODEL_LOCAL_VIEWER),
  877. EDEF(LIGHT_MODEL_AMBIENT),
  878. EDEF(FRONT_AND_BACK),
  879. EDEF(SHADE_MODEL),
  880. EDEF(FLAT),
  881. EDEF(SMOOTH),
  882. EDEF(COLOR_MATERIAL),
  883. EDEF(COLOR_MATERIAL_FACE),
  884. EDEF(COLOR_MATERIAL_PARAMETER),
  885. EDEF(NORMALIZE),
  886. EDEF(CLIP_PLANE0),
  887. EDEF(CLIP_PLANE1),
  888. EDEF(CLIP_PLANE2),
  889. EDEF(CLIP_PLANE3),
  890. EDEF(CLIP_PLANE4),
  891. EDEF(CLIP_PLANE5),
  892. EDEF(ACCUM_RED_BITS),
  893. EDEF(ACCUM_GREEN_BITS),
  894. EDEF(ACCUM_BLUE_BITS),
  895. EDEF(ACCUM_ALPHA_BITS),
  896. EDEF(ACCUM_CLEAR_VALUE),
  897. EDEF(ACCUM),
  898. EDEF(ADD),
  899. EDEF(LOAD),
  900. EDEF(MULT),
  901. EDEF(RETURN),
  902. EDEF(ALPHA_TEST),
  903. EDEF(ALPHA_TEST_REF),
  904. EDEF(ALPHA_TEST_FUNC),
  905. EDEF(BLEND),
  906. EDEF(BLEND_SRC),
  907. EDEF(BLEND_DST),
  908. EDEF(ZERO),
  909. EDEF(ONE),
  910. EDEF(SRC_COLOR),
  911. EDEF(ONE_MINUS_SRC_COLOR),
  912. EDEF(DST_COLOR),
  913. EDEF(ONE_MINUS_DST_COLOR),
  914. EDEF(SRC_ALPHA),
  915. EDEF(ONE_MINUS_SRC_ALPHA),
  916. EDEF(DST_ALPHA),
  917. EDEF(ONE_MINUS_DST_ALPHA),
  918. EDEF(SRC_ALPHA_SATURATE),
  919. EDEF(CONSTANT_COLOR),
  920. EDEF(ONE_MINUS_CONSTANT_COLOR),
  921. EDEF(CONSTANT_ALPHA),
  922. EDEF(ONE_MINUS_CONSTANT_ALPHA),
  923. EDEF(FEEDBACK),
  924. EDEF(RENDER),
  925. EDEF(SELECT),
  926. EDEF(2D),
  927. EDEF(3D),
  928. EDEF(3D_COLOR),
  929. EDEF(3D_COLOR_TEXTURE),
  930. EDEF(4D_COLOR_TEXTURE),
  931. EDEF(POINT_TOKEN),
  932. EDEF(LINE_TOKEN),
  933. EDEF(LINE_RESET_TOKEN),
  934. EDEF(POLYGON_TOKEN),
  935. EDEF(BITMAP_TOKEN),
  936. EDEF(DRAW_PIXEL_TOKEN),
  937. EDEF(COPY_PIXEL_TOKEN),
  938. EDEF(PASS_THROUGH_TOKEN),
  939. EDEF(FEEDBACK_BUFFER_POINTER),
  940. EDEF(FEEDBACK_BUFFER_SIZE),
  941. EDEF(FEEDBACK_BUFFER_TYPE),
  942. EDEF(SELECTION_BUFFER_POINTER),
  943. EDEF(SELECTION_BUFFER_SIZE),
  944. EDEF(FOG),
  945. EDEF(FOG_MODE),
  946. EDEF(FOG_DENSITY),
  947. EDEF(FOG_COLOR),
  948. EDEF(FOG_INDEX),
  949. EDEF(FOG_START),
  950. EDEF(FOG_END),
  951. EDEF(LINEAR),
  952. EDEF(EXP),
  953. EDEF(EXP2),
  954. EDEF(LOGIC_OP),
  955. EDEF(INDEX_LOGIC_OP),
  956. EDEF(COLOR_LOGIC_OP),
  957. EDEF(LOGIC_OP_MODE),
  958. EDEF(CLEAR),
  959. EDEF(SET),
  960. EDEF(COPY),
  961. EDEF(COPY_INVERTED),
  962. EDEF(NOOP),
  963. EDEF(INVERT),
  964. EDEF(AND),
  965. EDEF(NAND),
  966. EDEF(OR),
  967. EDEF(NOR),
  968. EDEF(XOR),
  969. EDEF(EQUIV),
  970. EDEF(AND_REVERSE),
  971. EDEF(AND_INVERTED),
  972. EDEF(OR_REVERSE),
  973. EDEF(OR_INVERTED),
  974. EDEF(STENCIL_TEST),
  975. EDEF(STENCIL_WRITEMASK),
  976. EDEF(STENCIL_BITS),
  977. EDEF(STENCIL_FUNC),
  978. EDEF(STENCIL_VALUE_MASK),
  979. EDEF(STENCIL_REF),
  980. EDEF(STENCIL_FAIL),
  981. EDEF(STENCIL_PASS_DEPTH_PASS),
  982. EDEF(STENCIL_PASS_DEPTH_FAIL),
  983. EDEF(STENCIL_CLEAR_VALUE),
  984. EDEF(STENCIL_INDEX),
  985. EDEF(KEEP),
  986. EDEF(REPLACE),
  987. EDEF(INCR),
  988. EDEF(DECR),
  989. EDEF(NONE),
  990. EDEF(LEFT),
  991. EDEF(RIGHT),
  992. EDEF(FRONT_LEFT),
  993. EDEF(FRONT_RIGHT),
  994. EDEF(BACK_LEFT),
  995. EDEF(BACK_RIGHT),
  996. EDEF(AUX0),
  997. EDEF(AUX1),
  998. EDEF(AUX2),
  999. EDEF(AUX3),
  1000. EDEF(COLOR_INDEX),
  1001. EDEF(RED),
  1002. EDEF(GREEN),
  1003. EDEF(BLUE),
  1004. EDEF(ALPHA),
  1005. EDEF(LUMINANCE),
  1006. EDEF(LUMINANCE_ALPHA),
  1007. EDEF(ALPHA_BITS),
  1008. EDEF(RED_BITS),
  1009. EDEF(GREEN_BITS),
  1010. EDEF(BLUE_BITS),
  1011. EDEF(INDEX_BITS),
  1012. EDEF(SUBPIXEL_BITS),
  1013. EDEF(AUX_BUFFERS),
  1014. EDEF(READ_BUFFER),
  1015. EDEF(DRAW_BUFFER),
  1016. EDEF(DOUBLEBUFFER),
  1017. EDEF(STEREO),
  1018. EDEF(BITMAP),
  1019. EDEF(COLOR),
  1020. EDEF(DEPTH),
  1021. EDEF(STENCIL),
  1022. EDEF(DITHER),
  1023. EDEF(RGB),
  1024. EDEF(RGBA),
  1025. EDEF(MAX_LIST_NESTING),
  1026. EDEF(MAX_ATTRIB_STACK_DEPTH),
  1027. EDEF(MAX_MODELVIEW_STACK_DEPTH),
  1028. EDEF(MAX_NAME_STACK_DEPTH),
  1029. EDEF(MAX_PROJECTION_STACK_DEPTH),
  1030. EDEF(MAX_TEXTURE_STACK_DEPTH),
  1031. EDEF(MAX_EVAL_ORDER),
  1032. EDEF(MAX_LIGHTS),
  1033. EDEF(MAX_CLIP_PLANES),
  1034. EDEF(MAX_TEXTURE_SIZE),
  1035. EDEF(MAX_PIXEL_MAP_TABLE),
  1036. EDEF(MAX_VIEWPORT_DIMS),
  1037. EDEF(MAX_CLIENT_ATTRIB_STACK_DEPTH),
  1038. EDEF(ATTRIB_STACK_DEPTH),
  1039. EDEF(CLIENT_ATTRIB_STACK_DEPTH),
  1040. EDEF(COLOR_CLEAR_VALUE),
  1041. EDEF(COLOR_WRITEMASK),
  1042. EDEF(CURRENT_INDEX),
  1043. EDEF(CURRENT_COLOR),
  1044. EDEF(CURRENT_NORMAL),
  1045. EDEF(CURRENT_RASTER_COLOR),
  1046. EDEF(CURRENT_RASTER_DISTANCE),
  1047. EDEF(CURRENT_RASTER_INDEX),
  1048. EDEF(CURRENT_RASTER_POSITION),
  1049. EDEF(CURRENT_RASTER_TEXTURE_COORDS),
  1050. EDEF(CURRENT_RASTER_POSITION_VALID),
  1051. EDEF(CURRENT_TEXTURE_COORDS),
  1052. EDEF(INDEX_CLEAR_VALUE),
  1053. EDEF(INDEX_MODE),
  1054. EDEF(INDEX_WRITEMASK),
  1055. EDEF(MODELVIEW_MATRIX),
  1056. EDEF(MODELVIEW_STACK_DEPTH),
  1057. EDEF(NAME_STACK_DEPTH),
  1058. EDEF(PROJECTION_MATRIX),
  1059. EDEF(PROJECTION_STACK_DEPTH),
  1060. EDEF(RENDER_MODE),
  1061. EDEF(RGBA_MODE),
  1062. EDEF(TEXTURE_MATRIX),
  1063. EDEF(TEXTURE_STACK_DEPTH),
  1064. EDEF(VIEWPORT),
  1065. EDEF(AUTO_NORMAL),
  1066. EDEF(MAP1_COLOR_4),
  1067. EDEF(MAP1_GRID_DOMAIN),
  1068. EDEF(MAP1_GRID_SEGMENTS),
  1069. EDEF(MAP1_INDEX),
  1070. EDEF(MAP1_NORMAL),
  1071. EDEF(MAP1_TEXTURE_COORD_1),
  1072. EDEF(MAP1_TEXTURE_COORD_2),
  1073. EDEF(MAP1_TEXTURE_COORD_3),
  1074. EDEF(MAP1_TEXTURE_COORD_4),
  1075. EDEF(MAP1_VERTEX_3),
  1076. EDEF(MAP1_VERTEX_4),
  1077. EDEF(MAP2_COLOR_4),
  1078. EDEF(MAP2_GRID_DOMAIN),
  1079. EDEF(MAP2_GRID_SEGMENTS),
  1080. EDEF(MAP2_INDEX),
  1081. EDEF(MAP2_NORMAL),
  1082. EDEF(MAP2_TEXTURE_COORD_1),
  1083. EDEF(MAP2_TEXTURE_COORD_2),
  1084. EDEF(MAP2_TEXTURE_COORD_3),
  1085. EDEF(MAP2_TEXTURE_COORD_4),
  1086. EDEF(MAP2_VERTEX_3),
  1087. EDEF(MAP2_VERTEX_4),
  1088. EDEF(COEFF),
  1089. EDEF(DOMAIN),
  1090. EDEF(ORDER),
  1091. EDEF(FOG_HINT),
  1092. EDEF(LINE_SMOOTH_HINT),
  1093. EDEF(PERSPECTIVE_CORRECTION_HINT),
  1094. EDEF(POINT_SMOOTH_HINT),
  1095. EDEF(POLYGON_SMOOTH_HINT),
  1096. EDEF(DONT_CARE),
  1097. EDEF(FASTEST),
  1098. EDEF(NICEST),
  1099. EDEF(SCISSOR_TEST),
  1100. EDEF(SCISSOR_BOX),
  1101. EDEF(MAP_COLOR),
  1102. EDEF(MAP_STENCIL),
  1103. EDEF(INDEX_SHIFT),
  1104. EDEF(INDEX_OFFSET),
  1105. EDEF(RED_SCALE),
  1106. EDEF(RED_BIAS),
  1107. EDEF(GREEN_SCALE),
  1108. EDEF(GREEN_BIAS),
  1109. EDEF(BLUE_SCALE),
  1110. EDEF(BLUE_BIAS),
  1111. EDEF(ALPHA_SCALE),
  1112. EDEF(ALPHA_BIAS),
  1113. EDEF(DEPTH_SCALE),
  1114. EDEF(DEPTH_BIAS),
  1115. EDEF(PIXEL_MAP_S_TO_S_SIZE),
  1116. EDEF(PIXEL_MAP_I_TO_I_SIZE),
  1117. EDEF(PIXEL_MAP_I_TO_R_SIZE),
  1118. EDEF(PIXEL_MAP_I_TO_G_SIZE),
  1119. EDEF(PIXEL_MAP_I_TO_B_SIZE),
  1120. EDEF(PIXEL_MAP_I_TO_A_SIZE),
  1121. EDEF(PIXEL_MAP_R_TO_R_SIZE),
  1122. EDEF(PIXEL_MAP_G_TO_G_SIZE),
  1123. EDEF(PIXEL_MAP_B_TO_B_SIZE),
  1124. EDEF(PIXEL_MAP_A_TO_A_SIZE),
  1125. EDEF(PIXEL_MAP_S_TO_S),
  1126. EDEF(PIXEL_MAP_I_TO_I),
  1127. EDEF(PIXEL_MAP_I_TO_R),
  1128. EDEF(PIXEL_MAP_I_TO_G),
  1129. EDEF(PIXEL_MAP_I_TO_B),
  1130. EDEF(PIXEL_MAP_I_TO_A),
  1131. EDEF(PIXEL_MAP_R_TO_R),
  1132. EDEF(PIXEL_MAP_G_TO_G),
  1133. EDEF(PIXEL_MAP_B_TO_B),
  1134. EDEF(PIXEL_MAP_A_TO_A),
  1135. EDEF(PACK_ALIGNMENT),
  1136. EDEF(PACK_LSB_FIRST),
  1137. EDEF(PACK_ROW_LENGTH),
  1138. EDEF(PACK_SKIP_PIXELS),
  1139. EDEF(PACK_SKIP_ROWS),
  1140. EDEF(PACK_SWAP_BYTES),
  1141. EDEF(UNPACK_ALIGNMENT),
  1142. EDEF(UNPACK_LSB_FIRST),
  1143. EDEF(UNPACK_ROW_LENGTH),
  1144. EDEF(UNPACK_SKIP_PIXELS),
  1145. EDEF(UNPACK_SKIP_ROWS),
  1146. EDEF(UNPACK_SWAP_BYTES),
  1147. EDEF(ZOOM_X),
  1148. EDEF(ZOOM_Y),
  1149. EDEF(TEXTURE_ENV),
  1150. EDEF(TEXTURE_ENV_MODE),
  1151. EDEF(TEXTURE_1D),
  1152. EDEF(TEXTURE_2D),
  1153. EDEF(TEXTURE_WRAP_S),
  1154. EDEF(TEXTURE_WRAP_T),
  1155. EDEF(TEXTURE_MAG_FILTER),
  1156. EDEF(TEXTURE_MIN_FILTER),
  1157. EDEF(TEXTURE_ENV_COLOR),
  1158. EDEF(TEXTURE_GEN_S),
  1159. EDEF(TEXTURE_GEN_T),
  1160. EDEF(TEXTURE_GEN_MODE),
  1161. EDEF(TEXTURE_BORDER_COLOR),
  1162. EDEF(TEXTURE_WIDTH),
  1163. EDEF(TEXTURE_HEIGHT),
  1164. EDEF(TEXTURE_BORDER),
  1165. EDEF(TEXTURE_COMPONENTS),
  1166. EDEF(TEXTURE_RED_SIZE),
  1167. EDEF(TEXTURE_GREEN_SIZE),
  1168. EDEF(TEXTURE_BLUE_SIZE),
  1169. EDEF(TEXTURE_ALPHA_SIZE),
  1170. EDEF(TEXTURE_LUMINANCE_SIZE),
  1171. EDEF(TEXTURE_INTENSITY_SIZE),
  1172. EDEF(NEAREST_MIPMAP_NEAREST),
  1173. EDEF(NEAREST_MIPMAP_LINEAR),
  1174. EDEF(LINEAR_MIPMAP_NEAREST),
  1175. EDEF(LINEAR_MIPMAP_LINEAR),
  1176. EDEF(OBJECT_LINEAR),
  1177. EDEF(OBJECT_PLANE),
  1178. EDEF(EYE_LINEAR),
  1179. EDEF(EYE_PLANE),
  1180. EDEF(SPHERE_MAP),
  1181. EDEF(DECAL),
  1182. EDEF(MODULATE),
  1183. EDEF(NEAREST),
  1184. EDEF(REPEAT),
  1185. EDEF(CLAMP),
  1186. EDEF(S),
  1187. EDEF(T),
  1188. EDEF(R),
  1189. EDEF(Q),
  1190. EDEF(TEXTURE_GEN_R),
  1191. EDEF(TEXTURE_GEN_Q),
  1192. EDEF(PROXY_TEXTURE_1D),
  1193. EDEF(PROXY_TEXTURE_2D),
  1194. EDEF(TEXTURE_PRIORITY),
  1195. EDEF(TEXTURE_RESIDENT),
  1196. EDEF(TEXTURE_BINDING_1D),
  1197. EDEF(TEXTURE_BINDING_2D),
  1198. EDEF(TEXTURE_INTERNAL_FORMAT),
  1199. EDEF(PACK_SKIP_IMAGES),
  1200. EDEF(PACK_IMAGE_HEIGHT),
  1201. EDEF(UNPACK_SKIP_IMAGES),
  1202. EDEF(UNPACK_IMAGE_HEIGHT),
  1203. EDEF(TEXTURE_3D),
  1204. EDEF(PROXY_TEXTURE_3D),
  1205. EDEF(TEXTURE_DEPTH),
  1206. EDEF(TEXTURE_WRAP_R),
  1207. EDEF(MAX_3D_TEXTURE_SIZE),
  1208. EDEF(TEXTURE_BINDING_3D),
  1209. EDEF(ALPHA4),
  1210. EDEF(ALPHA8),
  1211. EDEF(ALPHA12),
  1212. EDEF(ALPHA16),
  1213. EDEF(LUMINANCE4),
  1214. EDEF(LUMINANCE8),
  1215. EDEF(LUMINANCE12),
  1216. EDEF(LUMINANCE16),
  1217. EDEF(LUMINANCE4_ALPHA4),
  1218. EDEF(LUMINANCE6_ALPHA2),
  1219. EDEF(LUMINANCE8_ALPHA8),
  1220. EDEF(LUMINANCE12_ALPHA4),
  1221. EDEF(LUMINANCE12_ALPHA12),
  1222. EDEF(LUMINANCE16_ALPHA16),
  1223. EDEF(INTENSITY),
  1224. EDEF(INTENSITY4),
  1225. EDEF(INTENSITY8),
  1226. EDEF(INTENSITY12),
  1227. EDEF(INTENSITY16),
  1228. EDEF(R3_G3_B2),
  1229. EDEF(RGB4),
  1230. EDEF(RGB5),
  1231. EDEF(RGB8),
  1232. EDEF(RGB10),
  1233. EDEF(RGB12),
  1234. EDEF(RGB16),
  1235. EDEF(RGBA2),
  1236. EDEF(RGBA4),
  1237. EDEF(RGB5_A1),
  1238. EDEF(RGBA8),
  1239. EDEF(RGB10_A2),
  1240. EDEF(RGBA12),
  1241. EDEF(RGBA16),
  1242. EDEF(VENDOR),
  1243. EDEF(RENDERER),
  1244. EDEF(VERSION),
  1245. EDEF(EXTENSIONS),
  1246. EDEF(INVALID_VALUE),
  1247. EDEF(INVALID_ENUM),
  1248. EDEF(INVALID_OPERATION),
  1249. EDEF(STACK_OVERFLOW),
  1250. EDEF(STACK_UNDERFLOW),
  1251. EDEF(OUT_OF_MEMORY),
  1252. /* extensions */
  1253. EDEF(CONSTANT_COLOR_EXT),
  1254. EDEF(ONE_MINUS_CONSTANT_COLOR_EXT),
  1255. EDEF(CONSTANT_ALPHA_EXT),
  1256. EDEF(ONE_MINUS_CONSTANT_ALPHA_EXT),
  1257. EDEF(BLEND_EQUATION_EXT),
  1258. EDEF(MIN_EXT),
  1259. EDEF(MAX_EXT),
  1260. EDEF(FUNC_ADD_EXT),
  1261. EDEF(FUNC_SUBTRACT_EXT),
  1262. EDEF(FUNC_REVERSE_SUBTRACT_EXT),
  1263. EDEF(BLEND_COLOR_EXT),
  1264. EDEF(POLYGON_OFFSET_EXT),
  1265. EDEF(POLYGON_OFFSET_FACTOR_EXT),
  1266. EDEF(POLYGON_OFFSET_BIAS_EXT),
  1267. EDEF(VERTEX_ARRAY_EXT),
  1268. EDEF(NORMAL_ARRAY_EXT),
  1269. EDEF(COLOR_ARRAY_EXT),
  1270. EDEF(INDEX_ARRAY_EXT),
  1271. EDEF(TEXTURE_COORD_ARRAY_EXT),
  1272. EDEF(EDGE_FLAG_ARRAY_EXT),
  1273. EDEF(VERTEX_ARRAY_SIZE_EXT),
  1274. EDEF(VERTEX_ARRAY_TYPE_EXT),
  1275. EDEF(VERTEX_ARRAY_STRIDE_EXT),
  1276. EDEF(VERTEX_ARRAY_COUNT_EXT),
  1277. EDEF(NORMAL_ARRAY_TYPE_EXT),
  1278. EDEF(NORMAL_ARRAY_STRIDE_EXT),
  1279. EDEF(NORMAL_ARRAY_COUNT_EXT),
  1280. EDEF(COLOR_ARRAY_SIZE_EXT),
  1281. EDEF(COLOR_ARRAY_TYPE_EXT),
  1282. EDEF(COLOR_ARRAY_STRIDE_EXT),
  1283. EDEF(COLOR_ARRAY_COUNT_EXT),
  1284. EDEF(INDEX_ARRAY_TYPE_EXT),
  1285. EDEF(INDEX_ARRAY_STRIDE_EXT),
  1286. EDEF(INDEX_ARRAY_COUNT_EXT),
  1287. EDEF(TEXTURE_COORD_ARRAY_SIZE_EXT),
  1288. EDEF(TEXTURE_COORD_ARRAY_TYPE_EXT),
  1289. EDEF(TEXTURE_COORD_ARRAY_STRIDE_EXT),
  1290. EDEF(TEXTURE_COORD_ARRAY_COUNT_EXT),
  1291. EDEF(EDGE_FLAG_ARRAY_STRIDE_EXT),
  1292. EDEF(EDGE_FLAG_ARRAY_COUNT_EXT),
  1293. EDEF(VERTEX_ARRAY_POINTER_EXT),
  1294. EDEF(NORMAL_ARRAY_POINTER_EXT),
  1295. EDEF(COLOR_ARRAY_POINTER_EXT),
  1296. EDEF(INDEX_ARRAY_POINTER_EXT),
  1297. EDEF(TEXTURE_COORD_ARRAY_POINTER_EXT),
  1298. EDEF(EDGE_FLAG_ARRAY_POINTER_EXT),
  1299. EDEF(TEXTURE_PRIORITY_EXT),
  1300. EDEF(TEXTURE_RESIDENT_EXT),
  1301. EDEF(TEXTURE_1D_BINDING_EXT),
  1302. EDEF(TEXTURE_2D_BINDING_EXT),
  1303. EDEF(PACK_SKIP_IMAGES_EXT),
  1304. EDEF(PACK_IMAGE_HEIGHT_EXT),
  1305. EDEF(UNPACK_SKIP_IMAGES_EXT),
  1306. EDEF(UNPACK_IMAGE_HEIGHT_EXT),
  1307. EDEF(TEXTURE_3D_EXT),
  1308. EDEF(PROXY_TEXTURE_3D_EXT),
  1309. EDEF(TEXTURE_DEPTH_EXT),
  1310. EDEF(TEXTURE_WRAP_R_EXT),
  1311. EDEF(MAX_3D_TEXTURE_SIZE_EXT),
  1312. EDEF(TEXTURE_3D_BINDING_EXT),
  1313. EDEF(TABLE_TOO_LARGE_EXT),
  1314. EDEF(COLOR_TABLE_FORMAT_EXT),
  1315. EDEF(COLOR_TABLE_WIDTH_EXT),
  1316. EDEF(COLOR_TABLE_RED_SIZE_EXT),
  1317. EDEF(COLOR_TABLE_GREEN_SIZE_EXT),
  1318. EDEF(COLOR_TABLE_BLUE_SIZE_EXT),
  1319. EDEF(COLOR_TABLE_ALPHA_SIZE_EXT),
  1320. EDEF(COLOR_TABLE_LUMINANCE_SIZE_EXT),
  1321. EDEF(COLOR_TABLE_INTENSITY_SIZE_EXT),
  1322. EDEF(TEXTURE_INDEX_SIZE_EXT),
  1323. EDEF(COLOR_INDEX1_EXT),
  1324. EDEF(COLOR_INDEX2_EXT),
  1325. EDEF(COLOR_INDEX4_EXT),
  1326. EDEF(COLOR_INDEX8_EXT),
  1327. EDEF(COLOR_INDEX12_EXT),
  1328. EDEF(COLOR_INDEX16_EXT),
  1329. EDEF(SHARED_TEXTURE_PALETTE_EXT),
  1330. EDEF(POINT_SIZE_MIN_EXT),
  1331. EDEF(POINT_SIZE_MAX_EXT),
  1332. EDEF(POINT_FADE_THRESHOLD_SIZE_EXT),
  1333. EDEF(DISTANCE_ATTENUATION_EXT),
  1334. EDEF(RESCALE_NORMAL_EXT),
  1335. EDEF(ABGR_EXT),
  1336. EDEF(SELECTED_TEXTURE_SGIS),
  1337. EDEF(SELECTED_TEXTURE_COORD_SET_SGIS),
  1338. EDEF(MAX_TEXTURES_SGIS),
  1339. EDEF(TEXTURE0_SGIS),
  1340. EDEF(TEXTURE1_SGIS),
  1341. EDEF(TEXTURE2_SGIS),
  1342. EDEF(TEXTURE3_SGIS),
  1343. EDEF(TEXTURE_COORD_SET_SOURCE_SGIS),
  1344. EDEF(SELECTED_TEXTURE_EXT),
  1345. EDEF(SELECTED_TEXTURE_COORD_SET_EXT),
  1346. EDEF(SELECTED_TEXTURE_TRANSFORM_EXT),
  1347. EDEF(MAX_TEXTURES_EXT),
  1348. EDEF(MAX_TEXTURE_COORD_SETS_EXT),
  1349. EDEF(TEXTURE_ENV_COORD_SET_EXT),
  1350. EDEF(TEXTURE0_EXT),
  1351. EDEF(TEXTURE1_EXT),
  1352. EDEF(TEXTURE2_EXT),
  1353. EDEF(TEXTURE3_EXT),
  1354. EDEF(CLAMP_TO_EDGE_SGIS),
  1355. EDEF(RESCALE_NORMAL),
  1356. EDEF(CLAMP_TO_EDGE),
  1357. EDEF(MAX_ELEMENTS_VERTICES),
  1358. EDEF(MAX_ELEMENTS_INDICES),
  1359. EDEF(BGR),
  1360. EDEF(BGRA),
  1361. EDEF(UNSIGNED_BYTE_3_3_2),
  1362. EDEF(UNSIGNED_BYTE_2_3_3_REV),
  1363. EDEF(UNSIGNED_SHORT_5_6_5),
  1364. EDEF(UNSIGNED_SHORT_5_6_5_REV),
  1365. EDEF(UNSIGNED_SHORT_4_4_4_4),
  1366. EDEF(UNSIGNED_SHORT_4_4_4_4_REV),
  1367. EDEF(UNSIGNED_SHORT_5_5_5_1),
  1368. EDEF(UNSIGNED_SHORT_1_5_5_5_REV),
  1369. EDEF(UNSIGNED_INT_8_8_8_8),
  1370. EDEF(UNSIGNED_INT_8_8_8_8_REV),
  1371. EDEF(UNSIGNED_INT_10_10_10_2),
  1372. EDEF(UNSIGNED_INT_2_10_10_10_REV),
  1373. EDEF(LIGHT_MODEL_COLOR_CONTROL),
  1374. EDEF(SINGLE_COLOR),
  1375. EDEF(SEPARATE_SPECULAR_COLOR),
  1376. EDEF(TEXTURE_MIN_LOD),
  1377. EDEF(TEXTURE_MAX_LOD),
  1378. EDEF(TEXTURE_BASE_LEVEL),
  1379. EDEF(TEXTURE_MAX_LEVEL)
  1380. };
  1381. #undef EDEF
  1382. #define N_ENUMS (sizeof(enums) / sizeof(ENUM))
  1383. /***************************************************************************/
  1384. static void print_enum_name( FILE* OUT, GLenum e )
  1385. {
  1386. int i, found= 0;
  1387. for( i= 0; i < N_ENUMS; ++i )
  1388. {
  1389. if( enums[i].e == e )
  1390. {
  1391. if( found )
  1392. fprintf( OUT, "/" );
  1393. found= 1;
  1394. fprintf( OUT, "%s", enums[i].name );
  1395. }
  1396. }
  1397. if( ! found )
  1398. fprintf( OUT, "*UNKNOWN* [%04x]", (int)e );
  1399. fprintf( OUT, "\n" );
  1400. }
  1401. #define BOOL_STRING(b) (b ? "true" : "false")
  1402. #define VAR_ENUM(VAR) \
  1403. { \
  1404. GLint e= 0; \
  1405. glGetIntegerv(GL_##VAR,&e); \
  1406. fprintf( OUT, "%s: ", #VAR ); \
  1407. print_enum_name( OUT, (GLenum) e ); \
  1408. }
  1409. #define VAR_FLOAT4(VAR) \
  1410. { \
  1411. GLfloat f[4]; \
  1412. f[0]= f[1]= f[2]= f[3]= 0.0; \
  1413. glGetFloatv(GL_##VAR,f); \
  1414. fprintf( OUT, "%s: [%f %f %f %f]\n", \
  1415. #VAR, f[0], f[1], f[2], f[3] ); \
  1416. }
  1417. #define VAR_MAT_FLOAT4(VAR) \
  1418. { \
  1419. GLfloat f[4]; \
  1420. f[0]= f[1]= f[2]= f[3]= 0.0; \
  1421. glGetMaterialfv(GL_FRONT,GL_##VAR,f); \
  1422. fprintf( OUT, "FRONT_%s: [%f %f %f %f]\n", \
  1423. #VAR, f[0], f[1], f[2], f[3] ); \
  1424. glGetMaterialfv(GL_BACK,GL_##VAR,f); \
  1425. fprintf( OUT, " BACK_%s: [%f %f %f %f]\n", \
  1426. #VAR, f[0], f[1], f[2], f[3] ); \
  1427. }
  1428. #define VAR_LIGHT_FLOAT4(LIGHT,VAR) \
  1429. { \
  1430. GLfloat f[4]; \
  1431. f[0]= f[1]= f[2]= f[3]= 0.0; \
  1432. glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \
  1433. fprintf( OUT, "LIGHT%d.%s: [%f %f %f %f]\n", \
  1434. LIGHT, #VAR, f[0], f[1], f[2], f[3] ); \
  1435. }
  1436. #define VAR_LIGHT_FLOAT3(LIGHT,VAR) \
  1437. { \
  1438. GLfloat f[3]; \
  1439. f[0]= f[1]= f[2]= 0.0; \
  1440. glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \
  1441. fprintf( OUT, "LIGHT%d.%s: [%f %f %f]\n", \
  1442. LIGHT, #VAR, f[0], f[1], f[2] ); \
  1443. }
  1444. #define VAR_FLOAT3(VAR) \
  1445. { \
  1446. GLfloat f[3]; \
  1447. f[0]= f[1]= f[2]= 0.0; \
  1448. glGetFloatv(GL_##VAR,f) ; \
  1449. fprintf( OUT, "%s: [%f %f %f]\n", \
  1450. #VAR, f[0], f[1], f[2] ); \
  1451. }
  1452. #define VAR_FLOAT2(VAR) \
  1453. { \
  1454. GLfloat f[2]; \
  1455. f[0]= f[1]= 0.0; \
  1456. glGetFloatv(GL_##VAR,f); \
  1457. fprintf( OUT, "%s: [%f %f]\n", \
  1458. #VAR, f[0], f[1] ); \
  1459. }
  1460. #define VAR_COLOR(VAR) VAR_FLOAT4(VAR)
  1461. #define VAR_TEXCOORD(VAR) VAR_FLOAT4(VAR)
  1462. #define VAR_NORMAL(VAR) VAR_FLOAT3(VAR)
  1463. #define VAR_MAT_COLOR(VAR) VAR_MAT_FLOAT4(VAR)
  1464. #define VAR_LIGHT_COLOR(LIGHT,VAR) VAR_LIGHT_FLOAT4(LIGHT,VAR)
  1465. #define VAR_FLOAT(VAR) \
  1466. { \
  1467. GLfloat f= 0.0; \
  1468. glGetFloatv(GL_##VAR,&f); \
  1469. fprintf( OUT, "%s: %f\n", #VAR, f ); \
  1470. }
  1471. #define VAR_MAT_FLOAT(VAR) \
  1472. { \
  1473. GLfloat f= 0.0; \
  1474. glGetMaterialfv(GL_FRONT,GL_##VAR,&f); \
  1475. fprintf( OUT, "FRONT_%s: %f\n", #VAR, f ); \
  1476. glGetMaterialfv(GL_BACK,GL_##VAR,&f); \
  1477. fprintf( OUT, " BACK_%s: %f\n", #VAR, f ); \
  1478. }
  1479. #define VAR_LIGHT_FLOAT(LIGHT,VAR) \
  1480. { \
  1481. GLfloat f= 0.0; \
  1482. glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,&f); \
  1483. fprintf( OUT, "LIGHT%d.%s: %f\n", \
  1484. LIGHT, #VAR, f ); \
  1485. }
  1486. #define VAR_INT(VAR) \
  1487. { \
  1488. GLint i= 0; \
  1489. glGetIntegerv(GL_##VAR,&i); \
  1490. fprintf( OUT, "%s: %d\n", #VAR, (int)i ); \
  1491. }
  1492. #define VAR_INTEGER(VAR) VAR_INT(VAR)
  1493. #define VAR_INDEX(VAR) VAR_INT(VAR)
  1494. #define VAR_HEXINT(VAR) \
  1495. { \
  1496. GLint i= 0; \
  1497. glGetIntegerv(GL_##VAR,&i); \
  1498. fprintf( OUT, "%s: 0x%04x\n", #VAR, (int)i ); \
  1499. }
  1500. #define VAR_INT4(VAR) \
  1501. { \
  1502. GLint i[4]; \
  1503. i[0]= i[1]= i[2]= i[3]= 0; \
  1504. glGetIntegerv(GL_##VAR,i); \
  1505. fprintf( OUT, "%s: [%d %d %d %d]\n", \
  1506. #VAR, (int)i[0], (int)i[1], (int)i[2], (int)i[3] ); \
  1507. }
  1508. #define VAR_BOOL(VAR) \
  1509. { \
  1510. GLboolean b= 0; \
  1511. glGetBooleanv(GL_##VAR,&b); \
  1512. fprintf( OUT, "%s: %s\n", #VAR, BOOL_STRING(b) ); \
  1513. }
  1514. #define VAR_BOOL4(VAR) \
  1515. { \
  1516. GLboolean b[4]; \
  1517. b[0]= b[1]= b[2]= b[3]= 0; \
  1518. glGetBooleanv(GL_##VAR,b); \
  1519. fprintf( OUT, "%s: [%s %s %s %s]\n", \
  1520. #VAR, \
  1521. BOOL_STRING(b[0]), \
  1522. BOOL_STRING(b[1]), \
  1523. BOOL_STRING(b[2]), \
  1524. BOOL_STRING(b[3]) ); \
  1525. }
  1526. #define VAR_PTR(VAR) \
  1527. { \
  1528. GLvoid* p= 0; \
  1529. glGetPointerv(GL_##VAR,&p); \
  1530. fprintf( OUT, "%s: %p\n", #VAR, p ); \
  1531. }
  1532. #define VAR_MATRIX(VAR) \
  1533. { \
  1534. GLfloat m[16]; \
  1535. int i; \
  1536. for( i= 0; i < 16; ++i ) m[i]= 0.0; \
  1537. glGetFloatv(GL_##VAR,m); \
  1538. fprintf( OUT, \
  1539. "%s:\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f
  1540. %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n", \
  1541. #VAR, \
  1542. m[0+0*4], m[0+1*4], m[0+2*4], m[0+3*4], \
  1543. m[1+0*4], m[1+1*4], m[1+2*4], m[1+3*4], \
  1544. m[2+0*4], m[2+1*4], m[2+2*4], m[2+3*4], \
  1545. m[3+0*4], m[3+1*4], m[3+2*4], m[3+3*4] ); \
  1546. }
  1547. /***************************************************************************/
  1548. /*
  1549. #define OUT stderr
  1550. */
  1551. void dump_opengl_state( FILE* OUT )
  1552. {
  1553. int i;
  1554. GLint n_lights= 0;
  1555. glGetIntegerv( GL_MAX_LIGHTS, &n_lights );
  1556. VAR_COLOR(CURRENT_COLOR)
  1557. VAR_INDEX(CURRENT_INDEX)
  1558. VAR_TEXCOORD(CURRENT_TEXTURE_COORDS)
  1559. VAR_NORMAL(CURRENT_NORMAL)
  1560. VAR_FLOAT4(CURRENT_RASTER_POSITION)
  1561. VAR_FLOAT(CURRENT_RASTER_DISTANCE)
  1562. VAR_COLOR(CURRENT_RASTER_COLOR)
  1563. VAR_INDEX(CURRENT_RASTER_INDEX)
  1564. VAR_TEXCOORD(CURRENT_RASTER_TEXTURE_COORDS)
  1565. VAR_BOOL(CURRENT_RASTER_POSITION_VALID)
  1566. VAR_BOOL(EDGE_FLAG)
  1567. VAR_BOOL (VERTEX_ARRAY)
  1568. VAR_INTEGER(VERTEX_ARRAY_SIZE)
  1569. VAR_ENUM (VERTEX_ARRAY_TYPE)
  1570. VAR_INTEGER(VERTEX_ARRAY_STRIDE)
  1571. VAR_PTR (VERTEX_ARRAY_POINTER)
  1572. VAR_BOOL (NORMAL_ARRAY)
  1573. VAR_ENUM (NORMAL_ARRAY_TYPE)
  1574. VAR_INTEGER(NORMAL_ARRAY_STRIDE)
  1575. VAR_PTR (NORMAL_ARRAY_POINTER)
  1576. VAR_BOOL (COLOR_ARRAY)
  1577. VAR_INTEGER(COLOR_ARRAY_SIZE)
  1578. VAR_ENUM (COLOR_ARRAY_TYPE)
  1579. VAR_INTEGER(COLOR_ARRAY_STRIDE)
  1580. VAR_PTR (COLOR_ARRAY_POINTER)
  1581. VAR_BOOL (INDEX_ARRAY)
  1582. VAR_ENUM (INDEX_ARRAY_TYPE)
  1583. VAR_INTEGER(INDEX_ARRAY_STRIDE)
  1584. VAR_PTR (INDEX_ARRAY_POINTER)
  1585. VAR_BOOL (TEXTURE_COORD_ARRAY)
  1586. VAR_INTEGER(TEXTURE_COORD_ARRAY_SIZE)
  1587. VAR_ENUM (TEXTURE_COORD_ARRAY_TYPE)
  1588. VAR_INTEGER(TEXTURE_COORD_ARRAY_STRIDE)
  1589. VAR_PTR (TEXTURE_COORD_ARRAY_POINTER)
  1590. VAR_BOOL (EDGE_FLAG_ARRAY)
  1591. VAR_INTEGER(EDGE_FLAG_ARRAY_STRIDE)
  1592. VAR_PTR (EDGE_FLAG_ARRAY_POINTER)
  1593. VAR_MATRIX(MODELVIEW_MATRIX)
  1594. VAR_MATRIX(PROJECTION_MATRIX)
  1595. VAR_MATRIX(TEXTURE_MATRIX)
  1596. VAR_INT4(VIEWPORT)
  1597. VAR_FLOAT2(DEPTH_RANGE)
  1598. VAR_INT(MODELVIEW_STACK_DEPTH)
  1599. VAR_INT(PROJECTION_STACK_DEPTH)
  1600. VAR_INT(TEXTURE_STACK_DEPTH)
  1601. VAR_ENUM(MATRIX_MODE)
  1602. VAR_BOOL(NORMALIZE)
  1603. VAR_BOOL(RESCALE_NORMAL_EXT)
  1604. VAR_BOOL(CLIP_PLANE0)
  1605. VAR_BOOL(CLIP_PLANE1)
  1606. VAR_BOOL(CLIP_PLANE2)
  1607. VAR_BOOL(CLIP_PLANE3)
  1608. VAR_BOOL(CLIP_PLANE4)
  1609. VAR_BOOL(CLIP_PLANE5)
  1610. /* + glGetClipPlane() */
  1611. VAR_COLOR(FOG_COLOR)
  1612. VAR_INDEX(FOG_INDEX)
  1613. VAR_FLOAT(FOG_DENSITY)
  1614. VAR_FLOAT(FOG_START)
  1615. VAR_FLOAT(FOG_END)
  1616. VAR_ENUM(FOG_MODE)
  1617. VAR_BOOL(FOG)
  1618. VAR_ENUM(SHADE_MODEL)
  1619. VAR_BOOL(LIGHTING)
  1620. VAR_BOOL(COLOR_MATERIAL)
  1621. VAR_ENUM(COLOR_MATERIAL_PARAMETER)
  1622. VAR_ENUM(COLOR_MATERIAL_FACE)
  1623. VAR_MAT_COLOR(AMBIENT)
  1624. VAR_MAT_COLOR(DIFFUSE)
  1625. VAR_MAT_COLOR(SPECULAR)
  1626. VAR_MAT_COLOR(EMISSION)
  1627. VAR_MAT_FLOAT(SHININESS)
  1628. VAR_COLOR(LIGHT_MODEL_AMBIENT)
  1629. VAR_BOOL(LIGHT_MODEL_LOCAL_VIEWER)
  1630. VAR_BOOL(LIGHT_MODEL_TWO_SIDE)
  1631. /* VAR_ENUM(LIGHT_MODEL_COLOR_CONTROL)*/
  1632. for( i= 0; i < n_lights; ++i )
  1633. {
  1634. GLboolean b= 0;
  1635. glGetBooleanv( GL_LIGHT0 + i, &b );
  1636. fprintf( OUT, "LIGHT%d: %s\n", i, BOOL_STRING(b) );
  1637. if( ! b )
  1638. continue;
  1639. VAR_LIGHT_COLOR(i,AMBIENT)
  1640. VAR_LIGHT_COLOR(i,DIFFUSE)
  1641. VAR_LIGHT_COLOR(i,SPECULAR)
  1642. VAR_LIGHT_FLOAT4(i,POSITION)
  1643. VAR_LIGHT_FLOAT(i,CONSTANT_ATTENUATION)
  1644. VAR_LIGHT_FLOAT(i,LINEAR_ATTENUATION)
  1645. VAR_LIGHT_FLOAT(i,QUADRATIC_ATTENUATION)
  1646. VAR_LIGHT_FLOAT3(i,SPOT_DIRECTION)
  1647. VAR_LIGHT_FLOAT(i,SPOT_EXPONENT)
  1648. VAR_LIGHT_FLOAT(i,SPOT_CUTOFF)
  1649. /* COLOR_INDEXES */
  1650. }
  1651. VAR_FLOAT(POINT_SIZE)
  1652. VAR_BOOL(POINT_SMOOTH)
  1653. VAR_FLOAT(LINE_WIDTH)
  1654. VAR_BOOL(LINE_SMOOTH)
  1655. VAR_HEXINT(LINE_STIPPLE_PATTERN)
  1656. VAR_INT(LINE_STIPPLE_REPEAT)
  1657. VAR_BOOL(LINE_STIPPLE)
  1658. VAR_BOOL(CULL_FACE)
  1659. VAR_ENUM(CULL_FACE_MODE)
  1660. VAR_ENUM(FRONT_FACE)
  1661. VAR_BOOL(POLYGON_SMOOTH)
  1662. VAR_ENUM(POLYGON_MODE)
  1663. VAR_FLOAT(POLYGON_OFFSET_FACTOR)
  1664. VAR_FLOAT(POLYGON_OFFSET_UNITS)
  1665. VAR_BOOL(POLYGON_OFFSET_POINT)
  1666. VAR_BOOL(POLYGON_OFFSET_LINE)
  1667. VAR_BOOL(POLYGON_OFFSET_FILL)
  1668. /* GetPolygonStipple */
  1669. VAR_BOOL(POLYGON_STIPPLE)
  1670. VAR_BOOL(TEXTURE_1D)
  1671. VAR_BOOL(TEXTURE_2D)
  1672. /* VAR_BOOL(TEXTURE_3D)*/
  1673. VAR_INT(TEXTURE_BINDING_1D)
  1674. VAR_INT(TEXTURE_BINDING_2D)
  1675. /* VAR_INT(TEXTURE_BINDING_3D)*/
  1676. /* GetTexImage() */
  1677. /* GetTexLevelParameter() */
  1678. /* GetTexEnv() */
  1679. VAR_BOOL(TEXTURE_GEN_S)
  1680. VAR_BOOL(TEXTURE_GEN_T)
  1681. VAR_BOOL(TEXTURE_GEN_R)
  1682. VAR_BOOL(TEXTURE_GEN_Q)
  1683. /* GetTexGen() */
  1684. VAR_BOOL(SCISSOR_TEST)
  1685. VAR_INT4(SCISSOR_BOX)
  1686. VAR_BOOL(ALPHA_TEST)
  1687. VAR_ENUM(ALPHA_TEST_FUNC)
  1688. VAR_FLOAT(ALPHA_TEST_REF)
  1689. VAR_BOOL(STENCIL_TEST)
  1690. VAR_ENUM(STENCIL_FUNC)
  1691. VAR_HEXINT(STENCIL_VALUE_MASK)
  1692. VAR_INT(STENCIL_REF)
  1693. VAR_ENUM(STENCIL_FAIL)
  1694. VAR_ENUM(STENCIL_PASS_DEPTH_FAIL)
  1695. VAR_ENUM(STENCIL_PASS_DEPTH_PASS)
  1696. VAR_BOOL(DEPTH_TEST)
  1697. VAR_ENUM(DEPTH_FUNC)
  1698. VAR_BOOL(BLEND)
  1699. VAR_ENUM(BLEND_SRC)
  1700. VAR_ENUM(BLEND_DST)
  1701. VAR_BOOL(DITHER)
  1702. VAR_BOOL(LOGIC_OP) /* INDEX_LOGIC_OP */
  1703. VAR_BOOL(COLOR_LOGIC_OP)
  1704. VAR_ENUM(DRAW_BUFFER)
  1705. VAR_INT(INDEX_WRITEMASK)
  1706. VAR_BOOL4(COLOR_WRITEMASK)
  1707. VAR_BOOL(DEPTH_WRITEMASK)
  1708. VAR_HEXINT(STENCIL_WRITEMASK)
  1709. VAR_COLOR(COLOR_CLEAR_VALUE)
  1710. VAR_INDEX(INDEX_CLEAR_VALUE)
  1711. VAR_FLOAT(DEPTH_CLEAR_VALUE)
  1712. VAR_INT(STENCIL_CLEAR_VALUE)
  1713. VAR_FLOAT(ACCUM_CLEAR_VALUE)
  1714. VAR_BOOL(UNPACK_SWAP_BYTES)
  1715. VAR_BOOL(UNPACK_LSB_FIRST)
  1716. #ifdef UNPACK_IMAGE_HEIGHT
  1717. VAR_INT(UNPACK_IMAGE_HEIGHT)
  1718. #endif
  1719. #ifdef UNPACK_SKIP_IMAGES
  1720. VAR_INT(UNPACK_SKIP_IMAGES)
  1721. #endif
  1722. VAR_INT(UNPACK_ROW_LENGTH)
  1723. VAR_INT(UNPACK_SKIP_ROWS)
  1724. VAR_INT(UNPACK_SKIP_PIXELS)
  1725. VAR_INT(UNPACK_ALIGNMENT)
  1726. VAR_BOOL(PACK_SWAP_BYTES)
  1727. VAR_BOOL(PACK_LSB_FIRST)
  1728. #ifdef PACK_IMAGE_HEIGHT
  1729. VAR_INT(PACK_IMAGE_HEIGHT)
  1730. #endif
  1731. #ifdef PACK_SKIP_IMAGES
  1732. VAR_INT(PACK_SKIP_IMAGES)
  1733. #endif
  1734. VAR_INT(PACK_ROW_LENGTH)
  1735. VAR_INT(PACK_SKIP_ROWS)
  1736. VAR_INT(PACK_SKIP_PIXELS)
  1737. VAR_INT(PACK_ALIGNMENT)
  1738. VAR_BOOL(MAP_COLOR)
  1739. VAR_BOOL(MAP_STENCIL)
  1740. VAR_INT(INDEX_SHIFT)
  1741. VAR_INT(INDEX_OFFSET)
  1742. VAR_FLOAT(RED_SCALE)
  1743. VAR_FLOAT(GREEN_SCALE)
  1744. VAR_FLOAT(BLUE_SCALE)
  1745. VAR_FLOAT(ALPHA_SCALE)
  1746. VAR_FLOAT(DEPTH_SCALE)
  1747. VAR_FLOAT(RED_BIAS)
  1748. VAR_FLOAT(GREEN_BIAS)
  1749. VAR_FLOAT(BLUE_BIAS)
  1750. VAR_FLOAT(ALPHA_BIAS)
  1751. VAR_FLOAT(DEPTH_BIAS)
  1752. VAR_FLOAT(ZOOM_X)
  1753. VAR_FLOAT(ZOOM_Y)
  1754. VAR_ENUM(READ_BUFFER)
  1755. VAR_BOOL(AUTO_NORMAL)
  1756. VAR_ENUM(PERSPECTIVE_CORRECTION_HINT)
  1757. VAR_ENUM(POINT_SMOOTH_HINT)
  1758. VAR_ENUM(LINE_SMOOTH_HINT)
  1759. VAR_ENUM(POLYGON_SMOOTH_HINT)
  1760. VAR_ENUM(FOG_HINT)
  1761. VAR_INT(MAX_LIGHTS)
  1762. VAR_INT(MAX_CLIP_PLANES)
  1763. VAR_INT(MAX_MODELVIEW_STACK_DEPTH)
  1764. VAR_INT(MAX_PROJECTION_STACK_DEPTH)
  1765. VAR_INT(MAX_TEXTURE_STACK_DEPTH)
  1766. VAR_INT(SUBPIXEL_BITS)
  1767. #ifdef GL_MAX_3D_TEXTURE_SIZE
  1768. VAR_INT(MAX_3D_TEXTURE_SIZE)
  1769. #endif
  1770. VAR_INT(MAX_TEXTURE_SIZE)
  1771. VAR_INT(MAX_PIXEL_MAP_TABLE)
  1772. VAR_INT(MAX_NAME_STACK_DEPTH)
  1773. VAR_INT(MAX_LIST_NESTING)
  1774. VAR_INT(MAX_EVAL_ORDER)
  1775. VAR_INT(MAX_VIEWPORT_DIMS)
  1776. VAR_INT(MAX_ATTRIB_STACK_DEPTH)
  1777. VAR_INT(MAX_CLIENT_ATTRIB_STACK_DEPTH)
  1778. VAR_INT(AUX_BUFFERS)
  1779. VAR_BOOL(RGBA_MODE)
  1780. VAR_BOOL(INDEX_MODE)
  1781. VAR_BOOL(DOUBLEBUFFER)
  1782. VAR_BOOL(STEREO)
  1783. #ifdef GL_ALIASED_POINT_SIZE_RANGE
  1784. VAR_FLOAT2(ALIASED_POINT_SIZE_RANGE)
  1785. #endif
  1786. #ifdef GL_POINT_SIZE_RANGE
  1787. VAR_FLOAT2(POINT_SIZE_RANGE) /* SMOOTH_POINT_SIZE_RANGE */
  1788. #endif
  1789. VAR_FLOAT(POINT_SIZE_GRANULARITY) /* SMOOTH_POINT_SIZE_GRANULARITY */
  1790. #ifdef GL_ALIASED_LINE_WIDTH_RANGE
  1791. VAR_FLOAT2(ALIASED_LINE_WIDTH_RANGE)
  1792. #endif
  1793. VAR_FLOAT2(LINE_WIDTH_RANGE) /* SMOOTH_LINE_WIDTH_RANGE */
  1794. VAR_FLOAT(LINE_WIDTH_GRANULARITY) /* SMOOTH_LINE_WIDTH_GRANULARITY */
  1795. #ifdef GL_MAX_ELEMENTS_INDICES
  1796. VAR_INT(MAX_ELEMENTS_INDICES)
  1797. #endif
  1798. #ifdef GL_MAX_ELEMENTS_VERTICES
  1799. VAR_INT(MAX_ELEMENTS_VERTICES)
  1800. #endif
  1801. VAR_INT(RED_BITS)
  1802. VAR_INT(GREEN_BITS)
  1803. VAR_INT(BLUE_BITS)
  1804. VAR_INT(ALPHA_BITS)
  1805. VAR_INT(INDEX_BITS)
  1806. VAR_INT(DEPTH_BITS)
  1807. VAR_INT(STENCIL_BITS)
  1808. VAR_INT(ACCUM_RED_BITS)
  1809. VAR_INT(ACCUM_GREEN_BITS)
  1810. VAR_INT(ACCUM_BLUE_BITS)
  1811. VAR_INT(ACCUM_ALPHA_BITS)
  1812. VAR_INT(LIST_BASE)
  1813. VAR_INT(LIST_INDEX)
  1814. VAR_ENUM(LIST_MODE)
  1815. VAR_INT(ATTRIB_STACK_DEPTH)
  1816. VAR_INT(CLIENT_ATTRIB_STACK_DEPTH)
  1817. VAR_INT(NAME_STACK_DEPTH)
  1818. VAR_ENUM(RENDER_MODE)
  1819. VAR_PTR(SELECTION_BUFFER_POINTER)
  1820. VAR_INT(SELECTION_BUFFER_SIZE)
  1821. VAR_PTR(FEEDBACK_BUFFER_POINTER)
  1822. VAR_INT(FEEDBACK_BUFFER_SIZE)
  1823. VAR_ENUM(FEEDBACK_BUFFER_TYPE)
  1824. /* glGetError() */
  1825. }
  1826. /***************************************************************************/
  1827. /*#define TEST*/
  1828. #ifdef TEST
  1829. #include <GL/glut.h>
  1830. int main( int argc, char *argv[] )
  1831. {
  1832. glutInit( &argc, argv );
  1833. glutInitWindowPosition(0, 0);
  1834. glutInitWindowSize(400, 300);
  1835. glutInitDisplayMode(GLUT_RGB);
  1836. glutCreateWindow(argv[0]);
  1837. dump_opengl_state(stdout);
  1838. return 0;
  1839. }
  1840. #endif