gl.pp 92 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340
  1. {
  2. Adaption of the delphi3d.net OpenGL units to FreePascal
  3. Sebastian Guenther ([email protected]) in 2002
  4. These units are free to use
  5. }
  6. (*++ BUILD Version: 0004 // Increment this if a change has global effects
  7. Copyright (c) 1985-96, Microsoft Corporation
  8. Module Name:
  9. gl.h
  10. Abstract:
  11. Procedure declarations, constant definitions and macros for the OpenGL
  12. component.
  13. --*)
  14. {*
  15. ** Copyright 1996 Silicon Graphics, Inc.
  16. ** All Rights Reserved.
  17. **
  18. ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  19. ** the contents of this file may not be disclosed to third parties, copied or
  20. ** duplicated in any form, in whole or in part, without the prior written
  21. ** permission of Silicon Graphics, Inc.
  22. **
  23. ** RESTRICTED RIGHTS LEGEND:
  24. ** Use, duplication or disclosure by the Government is subject to restrictions
  25. ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  26. ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  27. ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  28. ** rights reserved under the Copyright Laws of the United States.
  29. *}
  30. {******************************************************************************}
  31. { Converted to Delphi by Tom Nuydens ([email protected]) }
  32. { For the latest updates, visit Delphi3D: http://www.delphi3d.net }
  33. {******************************************************************************}
  34. {$MODE Delphi}
  35. {$MACRO ON}
  36. {$IFDEF Windows}
  37. {$DEFINE extdecl := stdcall}
  38. {$ELSE}
  39. {$DEFINE extdecl := cdecl}
  40. {$IFDEF MorphOS}
  41. {$INLINE ON}
  42. {$DEFINE GL_UNIT}
  43. {$ELSE}
  44. {$LINKLIB c}
  45. {$ENDIF}
  46. {$ENDIF}
  47. unit GL;
  48. interface
  49. uses
  50. SysUtils,
  51. {$IFDEF Windows}
  52. Windows, dynlibs
  53. {$ELSE Windows}
  54. {$IFDEF MorphOS}
  55. TinyGL
  56. {$ELSE MorphOS}
  57. dynlibs
  58. {$ENDIF MorphOS}
  59. {$ENDIF Windows};
  60. {$IFNDEF MORPHOS}
  61. var
  62. LibGL: TLibHandle;
  63. {$ENDIF MORPHOS}
  64. type
  65. GLenum = Cardinal; PGLenum = ^GLenum;
  66. GLboolean = Byte; PGLboolean = ^GLboolean;
  67. GLbitfield = Cardinal; PGLbitfield = ^GLbitfield;
  68. GLbyte = ShortInt; PGLbyte = ^GLbyte;
  69. GLshort = SmallInt; PGLshort = ^GLshort;
  70. GLint = Integer; PGLint = ^GLint;
  71. GLsizei = Integer; PGLsizei = ^GLsizei;
  72. GLubyte = Byte; PGLubyte = ^GLubyte;
  73. GLushort = Word; PGLushort = ^GLushort;
  74. GLuint = Cardinal; PGLuint = ^GLuint;
  75. GLfloat = Single; PGLfloat = ^GLfloat;
  76. GLclampf = Single; PGLclampf = ^GLclampf;
  77. GLdouble = Double; PGLdouble = ^GLdouble;
  78. GLclampd = Double; PGLclampd = ^GLclampd;
  79. { GLvoid = void; } PGLvoid = Pointer;
  80. PPGLvoid = ^PGLvoid;
  81. TGLenum = GLenum;
  82. TGLboolean = GLboolean;
  83. TGLbitfield = GLbitfield;
  84. TGLbyte = GLbyte;
  85. TGLshort = GLshort;
  86. TGLint = GLint;
  87. TGLsizei = GLsizei;
  88. TGLubyte = GLubyte;
  89. TGLushort = GLushort;
  90. TGLuint = GLuint;
  91. TGLfloat = GLfloat;
  92. TGLclampf = GLclampf;
  93. TGLdouble = GLdouble;
  94. TGLclampd = GLclampd;
  95. {******************************************************************************}
  96. const
  97. // Version
  98. GL_VERSION_1_1 = 1;
  99. // AccumOp
  100. GL_ACCUM = $0100;
  101. GL_LOAD = $0101;
  102. GL_RETURN = $0102;
  103. GL_MULT = $0103;
  104. GL_ADD = $0104;
  105. // AlphaFunction
  106. GL_NEVER = $0200;
  107. GL_LESS = $0201;
  108. GL_EQUAL = $0202;
  109. GL_LEQUAL = $0203;
  110. GL_GREATER = $0204;
  111. GL_NOTEQUAL = $0205;
  112. GL_GEQUAL = $0206;
  113. GL_ALWAYS = $0207;
  114. // AttribMask
  115. GL_CURRENT_BIT = $00000001;
  116. GL_POINT_BIT = $00000002;
  117. GL_LINE_BIT = $00000004;
  118. GL_POLYGON_BIT = $00000008;
  119. GL_POLYGON_STIPPLE_BIT = $00000010;
  120. GL_PIXEL_MODE_BIT = $00000020;
  121. GL_LIGHTING_BIT = $00000040;
  122. GL_FOG_BIT = $00000080;
  123. GL_DEPTH_BUFFER_BIT = $00000100;
  124. GL_ACCUM_BUFFER_BIT = $00000200;
  125. GL_STENCIL_BUFFER_BIT = $00000400;
  126. GL_VIEWPORT_BIT = $00000800;
  127. GL_TRANSFORM_BIT = $00001000;
  128. GL_ENABLE_BIT = $00002000;
  129. GL_COLOR_BUFFER_BIT = $00004000;
  130. GL_HINT_BIT = $00008000;
  131. GL_EVAL_BIT = $00010000;
  132. GL_LIST_BIT = $00020000;
  133. GL_TEXTURE_BIT = $00040000;
  134. GL_SCISSOR_BIT = $00080000;
  135. GL_ALL_ATTRIB_BITS = $000FFFFF;
  136. // BeginMode
  137. GL_POINTS = $0000;
  138. GL_LINES = $0001;
  139. GL_LINE_LOOP = $0002;
  140. GL_LINE_STRIP = $0003;
  141. GL_TRIANGLES = $0004;
  142. GL_TRIANGLE_STRIP = $0005;
  143. GL_TRIANGLE_FAN = $0006;
  144. GL_QUADS = $0007;
  145. GL_QUAD_STRIP = $0008;
  146. GL_POLYGON = $0009;
  147. // BlendingFactorDest
  148. GL_ZERO = 0;
  149. GL_ONE = 1;
  150. GL_SRC_COLOR = $0300;
  151. GL_ONE_MINUS_SRC_COLOR = $0301;
  152. GL_SRC_ALPHA = $0302;
  153. GL_ONE_MINUS_SRC_ALPHA = $0303;
  154. GL_DST_ALPHA = $0304;
  155. GL_ONE_MINUS_DST_ALPHA = $0305;
  156. // BlendingFactorSrc
  157. // GL_ZERO
  158. // GL_ONE
  159. GL_DST_COLOR = $0306;
  160. GL_ONE_MINUS_DST_COLOR = $0307;
  161. GL_SRC_ALPHA_SATURATE = $0308;
  162. // GL_SRC_ALPHA
  163. // GL_ONE_MINUS_SRC_ALPHA
  164. // GL_DST_ALPHA
  165. // GL_ONE_MINUS_DST_ALPHA
  166. // Boolean
  167. GL_TRUE = 1;
  168. GL_FALSE = 0;
  169. // ClearBufferMask
  170. // GL_COLOR_BUFFER_BIT
  171. // GL_ACCUM_BUFFER_BIT
  172. // GL_STENCIL_BUFFER_BIT
  173. // GL_DEPTH_BUFFER_BIT
  174. // ClientArrayType
  175. // GL_VERTEX_ARRAY
  176. // GL_NORMAL_ARRAY
  177. // GL_COLOR_ARRAY
  178. // GL_INDEX_ARRAY
  179. // GL_TEXTURE_COORD_ARRAY
  180. // GL_EDGE_FLAG_ARRAY
  181. // ClipPlaneName
  182. GL_CLIP_PLANE0 = $3000;
  183. GL_CLIP_PLANE1 = $3001;
  184. GL_CLIP_PLANE2 = $3002;
  185. GL_CLIP_PLANE3 = $3003;
  186. GL_CLIP_PLANE4 = $3004;
  187. GL_CLIP_PLANE5 = $3005;
  188. // ColorMaterialFace
  189. // GL_FRONT
  190. // GL_BACK
  191. // GL_FRONT_AND_BACK
  192. // ColorMaterialParameter
  193. // GL_AMBIENT
  194. // GL_DIFFUSE
  195. // GL_SPECULAR
  196. // GL_EMISSION
  197. // GL_AMBIENT_AND_DIFFUSE
  198. // ColorPointerType
  199. // GL_BYTE
  200. // GL_UNSIGNED_BYTE
  201. // GL_SHORT
  202. // GL_UNSIGNED_SHORT
  203. // GL_INT
  204. // GL_UNSIGNED_INT
  205. // GL_FLOAT
  206. // GL_DOUBLE
  207. // CullFaceMode
  208. // GL_FRONT
  209. // GL_BACK
  210. // GL_FRONT_AND_BACK
  211. // DataType
  212. GL_BYTE = $1400;
  213. GL_UNSIGNED_BYTE = $1401;
  214. GL_SHORT = $1402;
  215. GL_UNSIGNED_SHORT = $1403;
  216. GL_INT = $1404;
  217. GL_UNSIGNED_INT = $1405;
  218. GL_FLOAT = $1406;
  219. GL_2_BYTES = $1407;
  220. GL_3_BYTES = $1408;
  221. GL_4_BYTES = $1409;
  222. GL_DOUBLE = $140A;
  223. // DepthFunction
  224. // GL_NEVER
  225. // GL_LESS
  226. // GL_EQUAL
  227. // GL_LEQUAL
  228. // GL_GREATER
  229. // GL_NOTEQUAL
  230. // GL_GEQUAL
  231. // GL_ALWAYS
  232. // DrawBufferMode
  233. GL_NONE = 0;
  234. GL_FRONT_LEFT = $0400;
  235. GL_FRONT_RIGHT = $0401;
  236. GL_BACK_LEFT = $0402;
  237. GL_BACK_RIGHT = $0403;
  238. GL_FRONT = $0404;
  239. GL_BACK = $0405;
  240. GL_LEFT = $0406;
  241. GL_RIGHT = $0407;
  242. GL_FRONT_AND_BACK = $0408;
  243. GL_AUX0 = $0409;
  244. GL_AUX1 = $040A;
  245. GL_AUX2 = $040B;
  246. GL_AUX3 = $040C;
  247. // Enable
  248. // GL_FOG
  249. // GL_LIGHTING
  250. // GL_TEXTURE_1D
  251. // GL_TEXTURE_2D
  252. // GL_LINE_STIPPLE
  253. // GL_POLYGON_STIPPLE
  254. // GL_CULL_FACE
  255. // GL_ALPHA_TEST
  256. // GL_BLEND
  257. // GL_INDEX_LOGIC_OP
  258. // GL_COLOR_LOGIC_OP
  259. // GL_DITHER
  260. // GL_STENCIL_TEST
  261. // GL_DEPTH_TEST
  262. // GL_CLIP_PLANE0
  263. // GL_CLIP_PLANE1
  264. // GL_CLIP_PLANE2
  265. // GL_CLIP_PLANE3
  266. // GL_CLIP_PLANE4
  267. // GL_CLIP_PLANE5
  268. // GL_LIGHT0
  269. // GL_LIGHT1
  270. // GL_LIGHT2
  271. // GL_LIGHT3
  272. // GL_LIGHT4
  273. // GL_LIGHT5
  274. // GL_LIGHT6
  275. // GL_LIGHT7
  276. // GL_TEXTURE_GEN_S
  277. // GL_TEXTURE_GEN_T
  278. // GL_TEXTURE_GEN_R
  279. // GL_TEXTURE_GEN_Q
  280. // GL_MAP1_VERTEX_3
  281. // GL_MAP1_VERTEX_4
  282. // GL_MAP1_COLOR_4
  283. // GL_MAP1_INDEX
  284. // GL_MAP1_NORMAL
  285. // GL_MAP1_TEXTURE_COORD_1
  286. // GL_MAP1_TEXTURE_COORD_2
  287. // GL_MAP1_TEXTURE_COORD_3
  288. // GL_MAP1_TEXTURE_COORD_4
  289. // GL_MAP2_VERTEX_3
  290. // GL_MAP2_VERTEX_4
  291. // GL_MAP2_COLOR_4
  292. // GL_MAP2_INDEX
  293. // GL_MAP2_NORMAL
  294. // GL_MAP2_TEXTURE_COORD_1
  295. // GL_MAP2_TEXTURE_COORD_2
  296. // GL_MAP2_TEXTURE_COORD_3
  297. // GL_MAP2_TEXTURE_COORD_4
  298. // GL_POINT_SMOOTH
  299. // GL_LINE_SMOOTH
  300. // GL_POLYGON_SMOOTH
  301. // GL_SCISSOR_TEST
  302. // GL_COLOR_MATERIAL
  303. // GL_NORMALIZE
  304. // GL_AUTO_NORMAL
  305. // GL_VERTEX_ARRAY
  306. // GL_NORMAL_ARRAY
  307. // GL_COLOR_ARRAY
  308. // GL_INDEX_ARRAY
  309. // GL_TEXTURE_COORD_ARRAY
  310. // GL_EDGE_FLAG_ARRAY
  311. // GL_POLYGON_OFFSET_POINT
  312. // GL_POLYGON_OFFSET_LINE
  313. // GL_POLYGON_OFFSET_FILL
  314. // ErrorCode
  315. GL_NO_ERROR = 0;
  316. GL_INVALID_ENUM = $0500;
  317. GL_INVALID_VALUE = $0501;
  318. GL_INVALID_OPERATION = $0502;
  319. GL_STACK_OVERFLOW = $0503;
  320. GL_STACK_UNDERFLOW = $0504;
  321. GL_OUT_OF_MEMORY = $0505;
  322. // FeedBackMode
  323. GL_2D = $0600;
  324. GL_3D = $0601;
  325. GL_3D_COLOR = $0602;
  326. GL_3D_COLOR_TEXTURE = $0603;
  327. GL_4D_COLOR_TEXTURE = $0604;
  328. // FeedBackToken
  329. GL_PASS_THROUGH_TOKEN = $0700;
  330. GL_POINT_TOKEN = $0701;
  331. GL_LINE_TOKEN = $0702;
  332. GL_POLYGON_TOKEN = $0703;
  333. GL_BITMAP_TOKEN = $0704;
  334. GL_DRAW_PIXEL_TOKEN = $0705;
  335. GL_COPY_PIXEL_TOKEN = $0706;
  336. GL_LINE_RESET_TOKEN = $0707;
  337. // FogMode
  338. // GL_LINEAR
  339. GL_EXP = $0800;
  340. GL_EXP2 = $0801;
  341. // FogParameter
  342. // GL_FOG_COLOR
  343. // GL_FOG_DENSITY
  344. // GL_FOG_END
  345. // GL_FOG_INDEX
  346. // GL_FOG_MODE
  347. // GL_FOG_START
  348. // FrontFaceDirection
  349. GL_CW = $0900;
  350. GL_CCW = $0901;
  351. // GetMapTarget
  352. GL_COEFF = $0A00;
  353. GL_ORDER = $0A01;
  354. GL_DOMAIN = $0A02;
  355. // GetPixelMap
  356. // GL_PIXEL_MAP_I_TO_I
  357. // GL_PIXEL_MAP_S_TO_S
  358. // GL_PIXEL_MAP_I_TO_R
  359. // GL_PIXEL_MAP_I_TO_G
  360. // GL_PIXEL_MAP_I_TO_B
  361. // GL_PIXEL_MAP_I_TO_A
  362. // GL_PIXEL_MAP_R_TO_R
  363. // GL_PIXEL_MAP_G_TO_G
  364. // GL_PIXEL_MAP_B_TO_B
  365. // GL_PIXEL_MAP_A_TO_A
  366. // GetPointerTarget
  367. // GL_VERTEX_ARRAY_POINTER
  368. // GL_NORMAL_ARRAY_POINTER
  369. // GL_COLOR_ARRAY_POINTER
  370. // GL_INDEX_ARRAY_POINTER
  371. // GL_TEXTURE_COORD_ARRAY_POINTER
  372. // GL_EDGE_FLAG_ARRAY_POINTER
  373. // GetTarget
  374. GL_CURRENT_COLOR = $0B00;
  375. GL_CURRENT_INDEX = $0B01;
  376. GL_CURRENT_NORMAL = $0B02;
  377. GL_CURRENT_TEXTURE_COORDS = $0B03;
  378. GL_CURRENT_RASTER_COLOR = $0B04;
  379. GL_CURRENT_RASTER_INDEX = $0B05;
  380. GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
  381. GL_CURRENT_RASTER_POSITION = $0B07;
  382. GL_CURRENT_RASTER_POSITION_VALID = $0B08;
  383. GL_CURRENT_RASTER_DISTANCE = $0B09;
  384. GL_POINT_SMOOTH = $0B10;
  385. GL_POINT_SIZE = $0B11;
  386. GL_POINT_SIZE_RANGE = $0B12;
  387. GL_POINT_SIZE_GRANULARITY = $0B13;
  388. GL_LINE_SMOOTH = $0B20;
  389. GL_LINE_WIDTH = $0B21;
  390. GL_LINE_WIDTH_RANGE = $0B22;
  391. GL_LINE_WIDTH_GRANULARITY = $0B23;
  392. GL_LINE_STIPPLE = $0B24;
  393. GL_LINE_STIPPLE_PATTERN = $0B25;
  394. GL_LINE_STIPPLE_REPEAT = $0B26;
  395. GL_LIST_MODE = $0B30;
  396. GL_MAX_LIST_NESTING = $0B31;
  397. GL_LIST_BASE = $0B32;
  398. GL_LIST_INDEX = $0B33;
  399. GL_POLYGON_MODE = $0B40;
  400. GL_POLYGON_SMOOTH = $0B41;
  401. GL_POLYGON_STIPPLE = $0B42;
  402. GL_EDGE_FLAG = $0B43;
  403. GL_CULL_FACE = $0B44;
  404. GL_CULL_FACE_MODE = $0B45;
  405. GL_FRONT_FACE = $0B46;
  406. GL_LIGHTING = $0B50;
  407. GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
  408. GL_LIGHT_MODEL_TWO_SIDE = $0B52;
  409. GL_LIGHT_MODEL_AMBIENT = $0B53;
  410. GL_SHADE_MODEL = $0B54;
  411. GL_COLOR_MATERIAL_FACE = $0B55;
  412. GL_COLOR_MATERIAL_PARAMETER = $0B56;
  413. GL_COLOR_MATERIAL = $0B57;
  414. GL_FOG = $0B60;
  415. GL_FOG_INDEX = $0B61;
  416. GL_FOG_DENSITY = $0B62;
  417. GL_FOG_START = $0B63;
  418. GL_FOG_END = $0B64;
  419. GL_FOG_MODE = $0B65;
  420. GL_FOG_COLOR = $0B66;
  421. GL_DEPTH_RANGE = $0B70;
  422. GL_DEPTH_TEST = $0B71;
  423. GL_DEPTH_WRITEMASK = $0B72;
  424. GL_DEPTH_CLEAR_VALUE = $0B73;
  425. GL_DEPTH_FUNC = $0B74;
  426. GL_ACCUM_CLEAR_VALUE = $0B80;
  427. GL_STENCIL_TEST = $0B90;
  428. GL_STENCIL_CLEAR_VALUE = $0B91;
  429. GL_STENCIL_FUNC = $0B92;
  430. GL_STENCIL_VALUE_MASK = $0B93;
  431. GL_STENCIL_FAIL = $0B94;
  432. GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
  433. GL_STENCIL_PASS_DEPTH_PASS = $0B96;
  434. GL_STENCIL_REF = $0B97;
  435. GL_STENCIL_WRITEMASK = $0B98;
  436. GL_MATRIX_MODE = $0BA0;
  437. GL_NORMALIZE = $0BA1;
  438. GL_VIEWPORT = $0BA2;
  439. GL_MODELVIEW_STACK_DEPTH = $0BA3;
  440. GL_PROJECTION_STACK_DEPTH = $0BA4;
  441. GL_TEXTURE_STACK_DEPTH = $0BA5;
  442. GL_MODELVIEW_MATRIX = $0BA6;
  443. GL_PROJECTION_MATRIX = $0BA7;
  444. GL_TEXTURE_MATRIX = $0BA8;
  445. GL_ATTRIB_STACK_DEPTH = $0BB0;
  446. GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
  447. GL_ALPHA_TEST = $0BC0;
  448. GL_ALPHA_TEST_FUNC = $0BC1;
  449. GL_ALPHA_TEST_REF = $0BC2;
  450. GL_DITHER = $0BD0;
  451. GL_BLEND_DST = $0BE0;
  452. GL_BLEND_SRC = $0BE1;
  453. GL_BLEND = $0BE2;
  454. GL_LOGIC_OP_MODE = $0BF0;
  455. GL_INDEX_LOGIC_OP = $0BF1;
  456. GL_COLOR_LOGIC_OP = $0BF2;
  457. GL_AUX_BUFFERS = $0C00;
  458. GL_DRAW_BUFFER = $0C01;
  459. GL_READ_BUFFER = $0C02;
  460. GL_SCISSOR_BOX = $0C10;
  461. GL_SCISSOR_TEST = $0C11;
  462. GL_INDEX_CLEAR_VALUE = $0C20;
  463. GL_INDEX_WRITEMASK = $0C21;
  464. GL_COLOR_CLEAR_VALUE = $0C22;
  465. GL_COLOR_WRITEMASK = $0C23;
  466. GL_INDEX_MODE = $0C30;
  467. GL_RGBA_MODE = $0C31;
  468. GL_DOUBLEBUFFER = $0C32;
  469. GL_STEREO = $0C33;
  470. GL_RENDER_MODE = $0C40;
  471. GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
  472. GL_POINT_SMOOTH_HINT = $0C51;
  473. GL_LINE_SMOOTH_HINT = $0C52;
  474. GL_POLYGON_SMOOTH_HINT = $0C53;
  475. GL_FOG_HINT = $0C54;
  476. GL_TEXTURE_GEN_S = $0C60;
  477. GL_TEXTURE_GEN_T = $0C61;
  478. GL_TEXTURE_GEN_R = $0C62;
  479. GL_TEXTURE_GEN_Q = $0C63;
  480. GL_PIXEL_MAP_I_TO_I = $0C70;
  481. GL_PIXEL_MAP_S_TO_S = $0C71;
  482. GL_PIXEL_MAP_I_TO_R = $0C72;
  483. GL_PIXEL_MAP_I_TO_G = $0C73;
  484. GL_PIXEL_MAP_I_TO_B = $0C74;
  485. GL_PIXEL_MAP_I_TO_A = $0C75;
  486. GL_PIXEL_MAP_R_TO_R = $0C76;
  487. GL_PIXEL_MAP_G_TO_G = $0C77;
  488. GL_PIXEL_MAP_B_TO_B = $0C78;
  489. GL_PIXEL_MAP_A_TO_A = $0C79;
  490. GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
  491. GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
  492. GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
  493. GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
  494. GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
  495. GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
  496. GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
  497. GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
  498. GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
  499. GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
  500. GL_UNPACK_SWAP_BYTES = $0CF0;
  501. GL_UNPACK_LSB_FIRST = $0CF1;
  502. GL_UNPACK_ROW_LENGTH = $0CF2;
  503. GL_UNPACK_SKIP_ROWS = $0CF3;
  504. GL_UNPACK_SKIP_PIXELS = $0CF4;
  505. GL_UNPACK_ALIGNMENT = $0CF5;
  506. GL_PACK_SWAP_BYTES = $0D00;
  507. GL_PACK_LSB_FIRST = $0D01;
  508. GL_PACK_ROW_LENGTH = $0D02;
  509. GL_PACK_SKIP_ROWS = $0D03;
  510. GL_PACK_SKIP_PIXELS = $0D04;
  511. GL_PACK_ALIGNMENT = $0D05;
  512. GL_MAP_COLOR = $0D10;
  513. GL_MAP_STENCIL = $0D11;
  514. GL_INDEX_SHIFT = $0D12;
  515. GL_INDEX_OFFSET = $0D13;
  516. GL_RED_SCALE = $0D14;
  517. GL_RED_BIAS = $0D15;
  518. GL_ZOOM_X = $0D16;
  519. GL_ZOOM_Y = $0D17;
  520. GL_GREEN_SCALE = $0D18;
  521. GL_GREEN_BIAS = $0D19;
  522. GL_BLUE_SCALE = $0D1A;
  523. GL_BLUE_BIAS = $0D1B;
  524. GL_ALPHA_SCALE = $0D1C;
  525. GL_ALPHA_BIAS = $0D1D;
  526. GL_DEPTH_SCALE = $0D1E;
  527. GL_DEPTH_BIAS = $0D1F;
  528. GL_MAX_EVAL_ORDER = $0D30;
  529. GL_MAX_LIGHTS = $0D31;
  530. GL_MAX_CLIP_PLANES = $0D32;
  531. GL_MAX_TEXTURE_SIZE = $0D33;
  532. GL_MAX_PIXEL_MAP_TABLE = $0D34;
  533. GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
  534. GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
  535. GL_MAX_NAME_STACK_DEPTH = $0D37;
  536. GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
  537. GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
  538. GL_MAX_VIEWPORT_DIMS = $0D3A;
  539. GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
  540. GL_SUBPIXEL_BITS = $0D50;
  541. GL_INDEX_BITS = $0D51;
  542. GL_RED_BITS = $0D52;
  543. GL_GREEN_BITS = $0D53;
  544. GL_BLUE_BITS = $0D54;
  545. GL_ALPHA_BITS = $0D55;
  546. GL_DEPTH_BITS = $0D56;
  547. GL_STENCIL_BITS = $0D57;
  548. GL_ACCUM_RED_BITS = $0D58;
  549. GL_ACCUM_GREEN_BITS = $0D59;
  550. GL_ACCUM_BLUE_BITS = $0D5A;
  551. GL_ACCUM_ALPHA_BITS = $0D5B;
  552. GL_NAME_STACK_DEPTH = $0D70;
  553. GL_AUTO_NORMAL = $0D80;
  554. GL_MAP1_COLOR_4 = $0D90;
  555. GL_MAP1_INDEX = $0D91;
  556. GL_MAP1_NORMAL = $0D92;
  557. GL_MAP1_TEXTURE_COORD_1 = $0D93;
  558. GL_MAP1_TEXTURE_COORD_2 = $0D94;
  559. GL_MAP1_TEXTURE_COORD_3 = $0D95;
  560. GL_MAP1_TEXTURE_COORD_4 = $0D96;
  561. GL_MAP1_VERTEX_3 = $0D97;
  562. GL_MAP1_VERTEX_4 = $0D98;
  563. GL_MAP2_COLOR_4 = $0DB0;
  564. GL_MAP2_INDEX = $0DB1;
  565. GL_MAP2_NORMAL = $0DB2;
  566. GL_MAP2_TEXTURE_COORD_1 = $0DB3;
  567. GL_MAP2_TEXTURE_COORD_2 = $0DB4;
  568. GL_MAP2_TEXTURE_COORD_3 = $0DB5;
  569. GL_MAP2_TEXTURE_COORD_4 = $0DB6;
  570. GL_MAP2_VERTEX_3 = $0DB7;
  571. GL_MAP2_VERTEX_4 = $0DB8;
  572. GL_MAP1_GRID_DOMAIN = $0DD0;
  573. GL_MAP1_GRID_SEGMENTS = $0DD1;
  574. GL_MAP2_GRID_DOMAIN = $0DD2;
  575. GL_MAP2_GRID_SEGMENTS = $0DD3;
  576. GL_TEXTURE_1D = $0DE0;
  577. GL_TEXTURE_2D = $0DE1;
  578. GL_FEEDBACK_BUFFER_POINTER = $0DF0;
  579. GL_FEEDBACK_BUFFER_SIZE = $0DF1;
  580. GL_FEEDBACK_BUFFER_TYPE = $0DF2;
  581. GL_SELECTION_BUFFER_POINTER = $0DF3;
  582. GL_SELECTION_BUFFER_SIZE = $0DF4;
  583. // GL_TEXTURE_BINDING_1D
  584. // GL_TEXTURE_BINDING_2D
  585. // GL_VERTEX_ARRAY
  586. // GL_NORMAL_ARRAY
  587. // GL_COLOR_ARRAY
  588. // GL_INDEX_ARRAY
  589. // GL_TEXTURE_COORD_ARRAY
  590. // GL_EDGE_FLAG_ARRAY
  591. // GL_VERTEX_ARRAY_SIZE
  592. // GL_VERTEX_ARRAY_TYPE
  593. // GL_VERTEX_ARRAY_STRIDE
  594. // GL_NORMAL_ARRAY_TYPE
  595. // GL_NORMAL_ARRAY_STRIDE
  596. // GL_COLOR_ARRAY_SIZE
  597. // GL_COLOR_ARRAY_TYPE
  598. // GL_COLOR_ARRAY_STRIDE
  599. // GL_INDEX_ARRAY_TYPE
  600. // GL_INDEX_ARRAY_STRIDE
  601. // GL_TEXTURE_COORD_ARRAY_SIZE
  602. // GL_TEXTURE_COORD_ARRAY_TYPE
  603. // GL_TEXTURE_COORD_ARRAY_STRIDE
  604. // GL_EDGE_FLAG_ARRAY_STRIDE
  605. // GL_POLYGON_OFFSET_FACTOR
  606. // GL_POLYGON_OFFSET_UNITS
  607. // GetTextureParameter
  608. // GL_TEXTURE_MAG_FILTER
  609. // GL_TEXTURE_MIN_FILTER
  610. // GL_TEXTURE_WRAP_S
  611. // GL_TEXTURE_WRAP_T
  612. GL_TEXTURE_WIDTH = $1000;
  613. GL_TEXTURE_HEIGHT = $1001;
  614. GL_TEXTURE_INTERNAL_FORMAT = $1003;
  615. GL_TEXTURE_BORDER_COLOR = $1004;
  616. GL_TEXTURE_BORDER = $1005;
  617. // GL_TEXTURE_RED_SIZE
  618. // GL_TEXTURE_GREEN_SIZE
  619. // GL_TEXTURE_BLUE_SIZE
  620. // GL_TEXTURE_ALPHA_SIZE
  621. // GL_TEXTURE_LUMINANCE_SIZE
  622. // GL_TEXTURE_INTENSITY_SIZE
  623. // GL_TEXTURE_PRIORITY
  624. // GL_TEXTURE_RESIDENT
  625. // HintMode
  626. GL_DONT_CARE = $1100;
  627. GL_FASTEST = $1101;
  628. GL_NICEST = $1102;
  629. // HintTarget
  630. // GL_PERSPECTIVE_CORRECTION_HINT
  631. // GL_POINT_SMOOTH_HINT
  632. // GL_LINE_SMOOTH_HINT
  633. // GL_POLYGON_SMOOTH_HINT
  634. // GL_FOG_HINT
  635. // IndexPointerType
  636. // GL_SHORT
  637. // GL_INT
  638. // GL_FLOAT
  639. // GL_DOUBLE
  640. // LightModelParameter
  641. // GL_LIGHT_MODEL_AMBIENT
  642. // GL_LIGHT_MODEL_LOCAL_VIEWER
  643. // GL_LIGHT_MODEL_TWO_SIDE
  644. // LightName
  645. GL_LIGHT0 = $4000;
  646. GL_LIGHT1 = $4001;
  647. GL_LIGHT2 = $4002;
  648. GL_LIGHT3 = $4003;
  649. GL_LIGHT4 = $4004;
  650. GL_LIGHT5 = $4005;
  651. GL_LIGHT6 = $4006;
  652. GL_LIGHT7 = $4007;
  653. // LightParameter
  654. GL_AMBIENT = $1200;
  655. GL_DIFFUSE = $1201;
  656. GL_SPECULAR = $1202;
  657. GL_POSITION = $1203;
  658. GL_SPOT_DIRECTION = $1204;
  659. GL_SPOT_EXPONENT = $1205;
  660. GL_SPOT_CUTOFF = $1206;
  661. GL_CONSTANT_ATTENUATION = $1207;
  662. GL_LINEAR_ATTENUATION = $1208;
  663. GL_QUADRATIC_ATTENUATION = $1209;
  664. // InterleavedArrays
  665. // GL_V2F
  666. // GL_V3F
  667. // GL_C4UB_V2F
  668. // GL_C4UB_V3F
  669. // GL_C3F_V3F
  670. // GL_N3F_V3F
  671. // GL_C4F_N3F_V3F
  672. // GL_T2F_V3F
  673. // GL_T4F_V4F
  674. // GL_T2F_C4UB_V3F
  675. // GL_T2F_C3F_V3F
  676. // GL_T2F_N3F_V3F
  677. // GL_T2F_C4F_N3F_V3F
  678. // GL_T4F_C4F_N3F_V4F
  679. // ListMode
  680. GL_COMPILE = $1300;
  681. GL_COMPILE_AND_EXECUTE = $1301;
  682. // ListNameType
  683. // GL_BYTE
  684. // GL_UNSIGNED_BYTE
  685. // GL_SHORT
  686. // GL_UNSIGNED_SHORT
  687. // GL_INT
  688. // GL_UNSIGNED_INT
  689. // GL_FLOAT
  690. // GL_2_BYTES
  691. // GL_3_BYTES
  692. // GL_4_BYTES
  693. // LogicOp
  694. GL_CLEAR = $1500;
  695. GL_AND = $1501;
  696. GL_AND_REVERSE = $1502;
  697. GL_COPY = $1503;
  698. GL_AND_INVERTED = $1504;
  699. GL_NOOP = $1505;
  700. GL_XOR = $1506;
  701. GL_OR = $1507;
  702. GL_NOR = $1508;
  703. GL_EQUIV = $1509;
  704. GL_INVERT = $150A;
  705. GL_OR_REVERSE = $150B;
  706. GL_COPY_INVERTED = $150C;
  707. GL_OR_INVERTED = $150D;
  708. GL_NAND = $150E;
  709. GL_SET = $150F;
  710. // MapTarget
  711. // GL_MAP1_COLOR_4
  712. // GL_MAP1_INDEX
  713. // GL_MAP1_NORMAL
  714. // GL_MAP1_TEXTURE_COORD_1
  715. // GL_MAP1_TEXTURE_COORD_2
  716. // GL_MAP1_TEXTURE_COORD_3
  717. // GL_MAP1_TEXTURE_COORD_4
  718. // GL_MAP1_VERTEX_3
  719. // GL_MAP1_VERTEX_4
  720. // GL_MAP2_COLOR_4
  721. // GL_MAP2_INDEX
  722. // GL_MAP2_NORMAL
  723. // GL_MAP2_TEXTURE_COORD_1
  724. // GL_MAP2_TEXTURE_COORD_2
  725. // GL_MAP2_TEXTURE_COORD_3
  726. // GL_MAP2_TEXTURE_COORD_4
  727. // GL_MAP2_VERTEX_3
  728. // GL_MAP2_VERTEX_4
  729. // MaterialFace
  730. // GL_FRONT
  731. // GL_BACK
  732. // GL_FRONT_AND_BACK
  733. // MaterialParameter
  734. GL_EMISSION = $1600;
  735. GL_SHININESS = $1601;
  736. GL_AMBIENT_AND_DIFFUSE = $1602;
  737. GL_COLOR_INDEXES = $1603;
  738. // GL_AMBIENT
  739. // GL_DIFFUSE
  740. // GL_SPECULAR
  741. // MatrixMode
  742. GL_MODELVIEW = $1700;
  743. GL_PROJECTION = $1701;
  744. GL_TEXTURE = $1702;
  745. // MeshMode1
  746. // GL_POINT
  747. // GL_LINE
  748. // MeshMode2
  749. // GL_POINT
  750. // GL_LINE
  751. // GL_FILL
  752. // NormalPointerType
  753. // GL_BYTE
  754. // GL_SHORT
  755. // GL_INT
  756. // GL_FLOAT
  757. // GL_DOUBLE
  758. // PixelCopyType
  759. GL_COLOR = $1800;
  760. GL_DEPTH = $1801;
  761. GL_STENCIL = $1802;
  762. // PixelFormat
  763. GL_COLOR_INDEX = $1900;
  764. GL_STENCIL_INDEX = $1901;
  765. GL_DEPTH_COMPONENT = $1902;
  766. GL_RED = $1903;
  767. GL_GREEN = $1904;
  768. GL_BLUE = $1905;
  769. GL_ALPHA = $1906;
  770. GL_RGB = $1907;
  771. GL_RGBA = $1908;
  772. GL_LUMINANCE = $1909;
  773. GL_LUMINANCE_ALPHA = $190A;
  774. // PixelMap
  775. // GL_PIXEL_MAP_I_TO_I
  776. // GL_PIXEL_MAP_S_TO_S
  777. // GL_PIXEL_MAP_I_TO_R
  778. // GL_PIXEL_MAP_I_TO_G
  779. // GL_PIXEL_MAP_I_TO_B
  780. // GL_PIXEL_MAP_I_TO_A
  781. // GL_PIXEL_MAP_R_TO_R
  782. // GL_PIXEL_MAP_G_TO_G
  783. // GL_PIXEL_MAP_B_TO_B
  784. // GL_PIXEL_MAP_A_TO_A
  785. // PixelStore
  786. // GL_UNPACK_SWAP_BYTES
  787. // GL_UNPACK_LSB_FIRST
  788. // GL_UNPACK_ROW_LENGTH
  789. // GL_UNPACK_SKIP_ROWS
  790. // GL_UNPACK_SKIP_PIXELS
  791. // GL_UNPACK_ALIGNMENT
  792. // GL_PACK_SWAP_BYTES
  793. // GL_PACK_LSB_FIRST
  794. // GL_PACK_ROW_LENGTH
  795. // GL_PACK_SKIP_ROWS
  796. // GL_PACK_SKIP_PIXELS
  797. // GL_PACK_ALIGNMENT
  798. // PixelTransfer
  799. // GL_MAP_COLOR
  800. // GL_MAP_STENCIL
  801. // GL_INDEX_SHIFT
  802. // GL_INDEX_OFFSET
  803. // GL_RED_SCALE
  804. // GL_RED_BIAS
  805. // GL_GREEN_SCALE
  806. // GL_GREEN_BIAS
  807. // GL_BLUE_SCALE
  808. // GL_BLUE_BIAS
  809. // GL_ALPHA_SCALE
  810. // GL_ALPHA_BIAS
  811. // GL_DEPTH_SCALE
  812. // GL_DEPTH_BIAS
  813. // PixelType
  814. GL_BITMAP = $1A00;
  815. // GL_BYTE
  816. // GL_UNSIGNED_BYTE
  817. // GL_SHORT
  818. // GL_UNSIGNED_SHORT
  819. // GL_INT
  820. // GL_UNSIGNED_INT
  821. // GL_FLOAT
  822. // PolygonMode
  823. GL_POINT = $1B00;
  824. GL_LINE = $1B01;
  825. GL_FILL = $1B02;
  826. // ReadBufferMode
  827. // GL_FRONT_LEFT
  828. // GL_FRONT_RIGHT
  829. // GL_BACK_LEFT
  830. // GL_BACK_RIGHT
  831. // GL_FRONT
  832. // GL_BACK
  833. // GL_LEFT
  834. // GL_RIGHT
  835. // GL_AUX0
  836. // GL_AUX1
  837. // GL_AUX2
  838. // GL_AUX3
  839. // RenderingMode
  840. GL_RENDER = $1C00;
  841. GL_FEEDBACK = $1C01;
  842. GL_SELECT = $1C02;
  843. // ShadingModel
  844. GL_FLAT = $1D00;
  845. GL_SMOOTH = $1D01;
  846. // StencilFunction
  847. // GL_NEVER
  848. // GL_LESS
  849. // GL_EQUAL
  850. // GL_LEQUAL
  851. // GL_GREATER
  852. // GL_NOTEQUAL
  853. // GL_GEQUAL
  854. // GL_ALWAYS
  855. // StencilOp
  856. // GL_ZERO
  857. GL_KEEP = $1E00;
  858. GL_REPLACE = $1E01;
  859. GL_INCR = $1E02;
  860. GL_DECR = $1E03;
  861. // GL_INVERT
  862. // StringName
  863. GL_VENDOR = $1F00;
  864. GL_RENDERER = $1F01;
  865. GL_VERSION = $1F02;
  866. GL_EXTENSIONS = $1F03;
  867. // TextureCoordName
  868. GL_S = $2000;
  869. GL_T = $2001;
  870. GL_R = $2002;
  871. GL_Q = $2003;
  872. // TexCoordPointerType
  873. // GL_SHORT
  874. // GL_INT
  875. // GL_FLOAT
  876. // GL_DOUBLE
  877. // TextureEnvMode
  878. GL_MODULATE = $2100;
  879. GL_DECAL = $2101;
  880. // GL_BLEND
  881. // GL_REPLACE
  882. // TextureEnvParameter
  883. GL_TEXTURE_ENV_MODE = $2200;
  884. GL_TEXTURE_ENV_COLOR = $2201;
  885. // TextureEnvTarget
  886. GL_TEXTURE_ENV = $2300;
  887. // TextureGenMode
  888. GL_EYE_LINEAR = $2400;
  889. GL_OBJECT_LINEAR = $2401;
  890. GL_SPHERE_MAP = $2402;
  891. // TextureGenParameter
  892. GL_TEXTURE_GEN_MODE = $2500;
  893. GL_OBJECT_PLANE = $2501;
  894. GL_EYE_PLANE = $2502;
  895. // TextureMagFilter
  896. GL_NEAREST = $2600;
  897. GL_LINEAR = $2601;
  898. // TextureMinFilter
  899. // GL_NEAREST
  900. // GL_LINEAR
  901. GL_NEAREST_MIPMAP_NEAREST = $2700;
  902. GL_LINEAR_MIPMAP_NEAREST = $2701;
  903. GL_NEAREST_MIPMAP_LINEAR = $2702;
  904. GL_LINEAR_MIPMAP_LINEAR = $2703;
  905. // TextureParameterName
  906. GL_TEXTURE_MAG_FILTER = $2800;
  907. GL_TEXTURE_MIN_FILTER = $2801;
  908. GL_TEXTURE_WRAP_S = $2802;
  909. GL_TEXTURE_WRAP_T = $2803;
  910. // GL_TEXTURE_BORDER_COLOR
  911. // GL_TEXTURE_PRIORITY
  912. // TextureTarget
  913. // GL_TEXTURE_1D
  914. // GL_TEXTURE_2D
  915. // GL_PROXY_TEXTURE_1D
  916. // GL_PROXY_TEXTURE_2D
  917. // TextureWrapMode
  918. GL_CLAMP = $2900;
  919. GL_REPEAT = $2901;
  920. // VertexPointerType
  921. // GL_SHORT
  922. // GL_INT
  923. // GL_FLOAT
  924. // GL_DOUBLE
  925. // ClientAttribMask
  926. GL_CLIENT_PIXEL_STORE_BIT = $00000001;
  927. GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
  928. GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
  929. // polygon_offset
  930. GL_POLYGON_OFFSET_FACTOR = $8038;
  931. GL_POLYGON_OFFSET_UNITS = $2A00;
  932. GL_POLYGON_OFFSET_POINT = $2A01;
  933. GL_POLYGON_OFFSET_LINE = $2A02;
  934. GL_POLYGON_OFFSET_FILL = $8037;
  935. // texture
  936. GL_ALPHA4 = $803B;
  937. GL_ALPHA8 = $803C;
  938. GL_ALPHA12 = $803D;
  939. GL_ALPHA16 = $803E;
  940. GL_LUMINANCE4 = $803F;
  941. GL_LUMINANCE8 = $8040;
  942. GL_LUMINANCE12 = $8041;
  943. GL_LUMINANCE16 = $8042;
  944. GL_LUMINANCE4_ALPHA4 = $8043;
  945. GL_LUMINANCE6_ALPHA2 = $8044;
  946. GL_LUMINANCE8_ALPHA8 = $8045;
  947. GL_LUMINANCE12_ALPHA4 = $8046;
  948. GL_LUMINANCE12_ALPHA12 = $8047;
  949. GL_LUMINANCE16_ALPHA16 = $8048;
  950. GL_INTENSITY = $8049;
  951. GL_INTENSITY4 = $804A;
  952. GL_INTENSITY8 = $804B;
  953. GL_INTENSITY12 = $804C;
  954. GL_INTENSITY16 = $804D;
  955. GL_R3_G3_B2 = $2A10;
  956. GL_RGB4 = $804F;
  957. GL_RGB5 = $8050;
  958. GL_RGB8 = $8051;
  959. GL_RGB10 = $8052;
  960. GL_RGB12 = $8053;
  961. GL_RGB16 = $8054;
  962. GL_RGBA2 = $8055;
  963. GL_RGBA4 = $8056;
  964. GL_RGB5_A1 = $8057;
  965. GL_RGBA8 = $8058;
  966. GL_RGB10_A2 = $8059;
  967. GL_RGBA12 = $805A;
  968. GL_RGBA16 = $805B;
  969. GL_TEXTURE_RED_SIZE = $805C;
  970. GL_TEXTURE_GREEN_SIZE = $805D;
  971. GL_TEXTURE_BLUE_SIZE = $805E;
  972. GL_TEXTURE_ALPHA_SIZE = $805F;
  973. GL_TEXTURE_LUMINANCE_SIZE = $8060;
  974. GL_TEXTURE_INTENSITY_SIZE = $8061;
  975. GL_PROXY_TEXTURE_1D = $8063;
  976. GL_PROXY_TEXTURE_2D = $8064;
  977. // texture_object
  978. GL_TEXTURE_PRIORITY = $8066;
  979. GL_TEXTURE_RESIDENT = $8067;
  980. GL_TEXTURE_BINDING_1D = $8068;
  981. GL_TEXTURE_BINDING_2D = $8069;
  982. // vertex_array
  983. GL_VERTEX_ARRAY = $8074;
  984. GL_NORMAL_ARRAY = $8075;
  985. GL_COLOR_ARRAY = $8076;
  986. GL_INDEX_ARRAY = $8077;
  987. GL_TEXTURE_COORD_ARRAY = $8078;
  988. GL_EDGE_FLAG_ARRAY = $8079;
  989. GL_VERTEX_ARRAY_SIZE = $807A;
  990. GL_VERTEX_ARRAY_TYPE = $807B;
  991. GL_VERTEX_ARRAY_STRIDE = $807C;
  992. GL_NORMAL_ARRAY_TYPE = $807E;
  993. GL_NORMAL_ARRAY_STRIDE = $807F;
  994. GL_COLOR_ARRAY_SIZE = $8081;
  995. GL_COLOR_ARRAY_TYPE = $8082;
  996. GL_COLOR_ARRAY_STRIDE = $8083;
  997. GL_INDEX_ARRAY_TYPE = $8085;
  998. GL_INDEX_ARRAY_STRIDE = $8086;
  999. GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
  1000. GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
  1001. GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
  1002. GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
  1003. GL_VERTEX_ARRAY_POINTER = $808E;
  1004. GL_NORMAL_ARRAY_POINTER = $808F;
  1005. GL_COLOR_ARRAY_POINTER = $8090;
  1006. GL_INDEX_ARRAY_POINTER = $8091;
  1007. GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
  1008. GL_EDGE_FLAG_ARRAY_POINTER = $8093;
  1009. GL_V2F = $2A20;
  1010. GL_V3F = $2A21;
  1011. GL_C4UB_V2F = $2A22;
  1012. GL_C4UB_V3F = $2A23;
  1013. GL_C3F_V3F = $2A24;
  1014. GL_N3F_V3F = $2A25;
  1015. GL_C4F_N3F_V3F = $2A26;
  1016. GL_T2F_V3F = $2A27;
  1017. GL_T4F_V4F = $2A28;
  1018. GL_T2F_C4UB_V3F = $2A29;
  1019. GL_T2F_C3F_V3F = $2A2A;
  1020. GL_T2F_N3F_V3F = $2A2B;
  1021. GL_T2F_C4F_N3F_V3F = $2A2C;
  1022. GL_T4F_C4F_N3F_V4F = $2A2D;
  1023. // Extensions
  1024. GL_EXT_vertex_array = 1;
  1025. GL_WIN_swap_hint = 1;
  1026. GL_EXT_bgra = 1;
  1027. GL_EXT_paletted_texture = 1;
  1028. // EXT_vertex_array
  1029. GL_VERTEX_ARRAY_EXT = $8074;
  1030. GL_NORMAL_ARRAY_EXT = $8075;
  1031. GL_COLOR_ARRAY_EXT = $8076;
  1032. GL_INDEX_ARRAY_EXT = $8077;
  1033. GL_TEXTURE_COORD_ARRAY_EXT = $8078;
  1034. GL_EDGE_FLAG_ARRAY_EXT = $8079;
  1035. GL_VERTEX_ARRAY_SIZE_EXT = $807A;
  1036. GL_VERTEX_ARRAY_TYPE_EXT = $807B;
  1037. GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
  1038. GL_VERTEX_ARRAY_COUNT_EXT = $807D;
  1039. GL_NORMAL_ARRAY_TYPE_EXT = $807E;
  1040. GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
  1041. GL_NORMAL_ARRAY_COUNT_EXT = $8080;
  1042. GL_COLOR_ARRAY_SIZE_EXT = $8081;
  1043. GL_COLOR_ARRAY_TYPE_EXT = $8082;
  1044. GL_COLOR_ARRAY_STRIDE_EXT = $8083;
  1045. GL_COLOR_ARRAY_COUNT_EXT = $8084;
  1046. GL_INDEX_ARRAY_TYPE_EXT = $8085;
  1047. GL_INDEX_ARRAY_STRIDE_EXT = $8086;
  1048. GL_INDEX_ARRAY_COUNT_EXT = $8087;
  1049. GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
  1050. GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
  1051. GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
  1052. GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
  1053. GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
  1054. GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
  1055. GL_VERTEX_ARRAY_POINTER_EXT = $808E;
  1056. GL_NORMAL_ARRAY_POINTER_EXT = $808F;
  1057. GL_COLOR_ARRAY_POINTER_EXT = $8090;
  1058. GL_INDEX_ARRAY_POINTER_EXT = $8091;
  1059. GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
  1060. GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
  1061. GL_DOUBLE_EXT = GL_DOUBLE;
  1062. // EXT_bgra
  1063. GL_BGR_EXT = $80E0;
  1064. GL_BGRA_EXT = $80E1;
  1065. // EXT_paletted_texture
  1066. // These must match the GL_COLOR_TABLE_*_SGI enumerants
  1067. GL_COLOR_TABLE_FORMAT_EXT = $80D8;
  1068. GL_COLOR_TABLE_WIDTH_EXT = $80D9;
  1069. GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
  1070. GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
  1071. GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
  1072. GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
  1073. GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
  1074. GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
  1075. GL_COLOR_INDEX1_EXT = $80E2;
  1076. GL_COLOR_INDEX2_EXT = $80E3;
  1077. GL_COLOR_INDEX4_EXT = $80E4;
  1078. GL_COLOR_INDEX8_EXT = $80E5;
  1079. GL_COLOR_INDEX12_EXT = $80E6;
  1080. GL_COLOR_INDEX16_EXT = $80E7;
  1081. // For compatibility with OpenGL v1.0
  1082. GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
  1083. GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
  1084. {******************************************************************************}
  1085. {$IFDEF MORPHOS}
  1086. { MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
  1087. { systems, so its headers are included here. }
  1088. {$INCLUDE tinyglh.inc}
  1089. {$ELSE MORPHOS}
  1090. var
  1091. glAccum: procedure(op: GLenum; value: GLfloat); extdecl;
  1092. glAlphaFunc: procedure(func: GLenum; ref: GLclampf); extdecl;
  1093. glAreTexturesResident: function (n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; extdecl;
  1094. glArrayElement: procedure(i: GLint); extdecl;
  1095. glBegin: procedure(mode: GLenum); extdecl;
  1096. glBindTexture: procedure(target: GLenum; texture: GLuint); extdecl;
  1097. glBitmap: procedure (width, height: GLsizei; xorig, yorig: GLfloat; xmove, ymove: GLfloat; const bitmap: PGLubyte); extdecl;
  1098. glBlendFunc: procedure(sfactor, dfactor: GLenum); extdecl;
  1099. glCallList: procedure(list: GLuint); extdecl;
  1100. glCallLists: procedure(n: GLsizei; atype: GLenum; const lists: Pointer); extdecl;
  1101. glClear: procedure(mask: GLbitfield); extdecl;
  1102. glClearAccum: procedure(red, green, blue, alpha: GLfloat); extdecl;
  1103. glClearColor: procedure(red, green, blue, alpha: GLclampf); extdecl;
  1104. glClearDepth: procedure(depth: GLclampd); extdecl;
  1105. glClearIndex: procedure(c: GLfloat); extdecl;
  1106. glClearStencil: procedure(s: GLint); extdecl;
  1107. glClipPlane: procedure(plane: GLenum; const equation: PGLdouble); extdecl;
  1108. glColor3b: procedure(red, green, blue: GLbyte); extdecl;
  1109. glColor3bv: procedure(const v: PGLbyte); extdecl;
  1110. glColor3d: procedure(red, green, blue: GLdouble); extdecl;
  1111. glColor3dv: procedure(const v: PGLdouble); extdecl;
  1112. glColor3f: procedure(red, green, blue: GLfloat); extdecl;
  1113. glColor3fv: procedure(const v: PGLfloat); extdecl;
  1114. glColor3i: procedure(red, green, blue: GLint); extdecl;
  1115. glColor3iv: procedure(const v: PGLint); extdecl;
  1116. glColor3s: procedure(red, green, blue: GLshort); extdecl;
  1117. glColor3sv: procedure(const v: PGLshort); extdecl;
  1118. glColor3ub: procedure(red, green, blue: GLubyte); extdecl;
  1119. glColor3ubv: procedure(const v: PGLubyte); extdecl;
  1120. glColor3ui: procedure(red, green, blue: GLuint); extdecl;
  1121. glColor3uiv: procedure(const v: PGLuint); extdecl;
  1122. glColor3us: procedure(red, green, blue: GLushort); extdecl;
  1123. glColor3usv: procedure(const v: PGLushort); extdecl;
  1124. glColor4b: procedure(red, green, blue, alpha: GLbyte); extdecl;
  1125. glColor4bv: procedure(const v: PGLbyte); extdecl;
  1126. glColor4d: procedure(red, green, blue, alpha: GLdouble); extdecl;
  1127. glColor4dv: procedure(const v: PGLdouble); extdecl;
  1128. glColor4f: procedure(red, green, blue, alpha: GLfloat); extdecl;
  1129. glColor4fv: procedure(const v: PGLfloat); extdecl;
  1130. glColor4i: procedure(red, green, blue, alpha: GLint); extdecl;
  1131. glColor4iv: procedure(const v: PGLint); extdecl;
  1132. glColor4s: procedure(red, green, blue, alpha: GLshort); extdecl;
  1133. glColor4sv: procedure(const v: PGLshort); extdecl;
  1134. glColor4ub: procedure(red, green, blue, alpha: GLubyte); extdecl;
  1135. glColor4ubv: procedure(const v: PGLubyte); extdecl;
  1136. glColor4ui: procedure(red, green, blue, alpha: GLuint); extdecl;
  1137. glColor4uiv: procedure(const v: PGLuint); extdecl;
  1138. glColor4us: procedure(red, green, blue, alpha: GLushort); extdecl;
  1139. glColor4usv: procedure(const v: PGLushort); extdecl;
  1140. glColorMask: procedure(red, green, blue, alpha: GLboolean); extdecl;
  1141. glColorMaterial: procedure(face, mode: GLenum); extdecl;
  1142. glColorPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1143. glCopyPixels: procedure(x, y: GLint; width, height: GLsizei; atype: GLenum); extdecl;
  1144. glCopyTexImage1D: procedure (target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width: GLsizei; border: GLint); extdecl;
  1145. glCopyTexImage2D: procedure(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); extdecl;
  1146. glCopyTexSubImage1D: procedure(target: GLenum; level, xoffset, x, y: GLint; width: GLsizei); extdecl;
  1147. glCopyTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset, x, y: GLint; width, height: GLsizei); extdecl;
  1148. glCullFace: procedure(mode: GLenum); extdecl;
  1149. glDeleteLists: procedure(list: GLuint; range: GLsizei); extdecl;
  1150. glDeleteTextures: procedure(n: GLsizei; const textures: PGLuint); extdecl;
  1151. glDepthFunc: procedure(func: GLenum); extdecl;
  1152. glDepthMask: procedure(flag: GLboolean); extdecl;
  1153. glDepthRange: procedure(zNear, zFar: GLclampd); extdecl;
  1154. glDisable: procedure(cap: GLenum); extdecl;
  1155. glDisableClientState: procedure(aarray: GLenum); extdecl;
  1156. glDrawArrays: procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
  1157. glDrawBuffer: procedure(mode: GLenum); extdecl;
  1158. glDrawElements: procedure(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); extdecl;
  1159. glDrawPixels: procedure(width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
  1160. glEdgeFlag: procedure(flag: GLboolean); extdecl;
  1161. glEdgeFlagPointer: procedure(stride: GLsizei; const pointer: Pointer); extdecl;
  1162. glEdgeFlagv: procedure(const flag: PGLboolean); extdecl;
  1163. glEnable: procedure(cap: GLenum); extdecl;
  1164. glEnableClientState: procedure(aarray: GLenum); extdecl;
  1165. glEnd: procedure; extdecl;
  1166. glEndList: procedure; extdecl;
  1167. glEvalCoord1d: procedure(u: GLdouble); extdecl;
  1168. glEvalCoord1dv: procedure(const u: PGLdouble); extdecl;
  1169. glEvalCoord1f: procedure(u: GLfloat); extdecl;
  1170. glEvalCoord1fv: procedure(const u: PGLfloat); extdecl;
  1171. glEvalCoord2d: procedure(u, v: GLdouble); extdecl;
  1172. glEvalCoord2dv: procedure(const u: PGLdouble); extdecl;
  1173. glEvalCoord2f: procedure(u, v: GLfloat); extdecl;
  1174. glEvalCoord2fv: procedure(const u: PGLfloat); extdecl;
  1175. glEvalMesh1: procedure(mode: GLenum; i1, i2: GLint); extdecl;
  1176. glEvalMesh2: procedure(mode: GLenum; i1, i2, j1, j2: GLint); extdecl;
  1177. glEvalPoint1: procedure(i: GLint); extdecl;
  1178. glEvalPoint2: procedure(i, j: GLint); extdecl;
  1179. glFeedbackBuffer: procedure(size: GLsizei; atype: GLenum; buffer: PGLfloat); extdecl;
  1180. glFinish: procedure; extdecl;
  1181. glFlush: procedure; extdecl;
  1182. glFogf: procedure(pname: GLenum; param: GLfloat); extdecl;
  1183. glFogfv: procedure(pname: GLenum; const params: PGLfloat); extdecl;
  1184. glFogi: procedure(pname: GLenum; param: GLint); extdecl;
  1185. glFogiv: procedure(pname: GLenum; const params: PGLint); extdecl;
  1186. glFrontFace: procedure(mode: GLenum); extdecl;
  1187. glFrustum: procedure(left, right, bottom, top, zNear, zFar: GLdouble); extdecl;
  1188. glGenLists: function(range: GLsizei): GLuint; extdecl;
  1189. glGenTextures: procedure(n: GLsizei; textures: PGLuint); extdecl;
  1190. glGetBooleanv: procedure(pname: GLenum; params: PGLboolean); extdecl;
  1191. glGetClipPlane: procedure(plane: GLenum; equation: PGLdouble); extdecl;
  1192. glGetDoublev: procedure(pname: GLenum; params: PGLdouble); extdecl;
  1193. glGetError: function: GLenum; extdecl;
  1194. glGetFloatv: procedure(pname: GLenum; params: PGLfloat); extdecl;
  1195. glGetIntegerv: procedure(pname: GLenum; params: PGLint); extdecl;
  1196. glGetLightfv: procedure(light, pname: GLenum; params: PGLfloat); extdecl;
  1197. glGetLightiv: procedure(light, pname: GLenum; params: PGLint); extdecl;
  1198. glGetMapdv: procedure(target, query: GLenum; v: PGLdouble); extdecl;
  1199. glGetMapfv: procedure(target, query: GLenum; v: PGLfloat); extdecl;
  1200. glGetMapiv: procedure(target, query: GLenum; v: PGLint); extdecl;
  1201. glGetMaterialfv: procedure(face, pname: GLenum; params: PGLfloat); extdecl;
  1202. glGetMaterialiv: procedure(face, pname: GLenum; params: PGLint); extdecl;
  1203. glGetPixelMapfv: procedure(map: GLenum; values: PGLfloat); extdecl;
  1204. glGetPixelMapuiv: procedure(map: GLenum; values: PGLuint); extdecl;
  1205. glGetPixelMapusv: procedure(map: GLenum; values: PGLushort); extdecl;
  1206. glGetPointerv: procedure(pname: GLenum; params: Pointer); extdecl;
  1207. glGetPolygonStipple: procedure(mask: PGLubyte); extdecl;
  1208. glGetString: function(name: GLenum): PChar; extdecl;
  1209. glGetTexEnvfv: procedure(target, pname: GLenum; params: PGLfloat); extdecl;
  1210. glGetTexEnviv: procedure(target, pname: GLenum; params: PGLint); extdecl;
  1211. glGetTexGendv: procedure(coord, pname: GLenum; params: PGLdouble); extdecl;
  1212. glGetTexGenfv: procedure(coord, pname: GLenum; params: PGLfloat); extdecl;
  1213. glGetTexGeniv: procedure(coord, pname: GLenum; params: PGLint); extdecl;
  1214. glGetTexImage: procedure(target: GLenum; level: GLint; format: GLenum; atype: GLenum; pixels: Pointer); extdecl;
  1215. glGetTexLevelParameterfv: procedure(target: GLenum; level: GLint; pname: GLenum; params: Pointer); extdecl;
  1216. glGetTexLevelParameteriv: procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); extdecl;
  1217. glGetTexParameterfv: procedure(target, pname: GLenum; params: PGLfloat); extdecl;
  1218. glGetTexParameteriv: procedure(target, pname: GLenum; params: PGLint); extdecl;
  1219. glHint: procedure(target, mode: GLenum); extdecl;
  1220. glIndexMask: procedure(mask: GLuint); extdecl;
  1221. glIndexPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1222. glIndexd: procedure(c: GLdouble); extdecl;
  1223. glIndexdv: procedure(const c: PGLdouble); extdecl;
  1224. glIndexf: procedure(c: GLfloat); extdecl;
  1225. glIndexfv: procedure(const c: PGLfloat); extdecl;
  1226. glIndexi: procedure(c: GLint); extdecl;
  1227. glIndexiv: procedure(const c: PGLint); extdecl;
  1228. glIndexs: procedure(c: GLshort); extdecl;
  1229. glIndexsv: procedure(const c: PGLshort); extdecl;
  1230. glIndexub: procedure(c: GLubyte); extdecl;
  1231. glIndexubv: procedure(const c: PGLubyte); extdecl;
  1232. glInitNames: procedure; extdecl;
  1233. glInterleavedArrays: procedure(format: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1234. glIsEnabled: function(cap: GLenum): GLboolean; extdecl;
  1235. glIsList: function(list: GLuint): GLboolean; extdecl;
  1236. glIsTexture: function(texture: GLuint): GLboolean; extdecl;
  1237. glLightModelf: procedure(pname: GLenum; param: GLfloat); extdecl;
  1238. glLightModelfv: procedure(pname: GLenum; const params: PGLfloat); extdecl;
  1239. glLightModeli: procedure(pname: GLenum; param: GLint); extdecl;
  1240. glLightModeliv: procedure(pname: GLenum; const params: PGLint); extdecl;
  1241. glLightf: procedure(light, pname: GLenum; param: GLfloat); extdecl;
  1242. glLightfv: procedure(light, pname: GLenum; const params: PGLfloat); extdecl;
  1243. glLighti: procedure(light, pname: GLenum; param: GLint); extdecl;
  1244. glLightiv: procedure(light, pname: GLenum; const params: PGLint); extdecl;
  1245. glLineStipple: procedure(factor: GLint; pattern: GLushort); extdecl;
  1246. glLineWidth: procedure(width: GLfloat); extdecl;
  1247. glListBase: procedure(base: GLuint); extdecl;
  1248. glLoadIdentity: procedure; extdecl;
  1249. glLoadMatrixd: procedure(const m: PGLdouble); extdecl;
  1250. glLoadMatrixf: procedure(const m: PGLfloat); extdecl;
  1251. glLoadName: procedure(name: GLuint); extdecl;
  1252. glLogicOp: procedure(opcode: GLenum); extdecl;
  1253. glMap1d: procedure(target: GLenum; u1, u2: GLdouble; stride, order: GLint; const points: PGLdouble); extdecl;
  1254. glMap1f: procedure(target: GLenum; u1, u2: GLfloat; stride, order: GLint; const points: PGLfloat); extdecl;
  1255. glMap2d: procedure(target: GLenum; u1, u2: GLdouble; ustride, uorder: GLint; v1, v2: GLdouble; vstride, vorder: GLint; const points: PGLdouble); extdecl;
  1256. glMap2f: procedure(target: GLenum; u1, u2: GLfloat; ustride, uorder: GLint; v1, v2: GLfloat; vstride, vorder: GLint; const points: PGLfloat); extdecl;
  1257. glMapGrid1d: procedure(un: GLint; u1, u2: GLdouble); extdecl;
  1258. glMapGrid1f: procedure(un: GLint; u1, u2: GLfloat); extdecl;
  1259. glMapGrid2d: procedure(un: GLint; u1, u2: GLdouble; vn: GLint; v1, v2: GLdouble); extdecl;
  1260. glMapGrid2f: procedure(un: GLint; u1, u2: GLfloat; vn: GLint; v1, v2: GLfloat); extdecl;
  1261. glMaterialf: procedure(face, pname: GLenum; param: GLfloat); extdecl;
  1262. glMaterialfv: procedure(face, pname: GLenum; const params: PGLfloat); extdecl;
  1263. glMateriali: procedure(face, pname: GLenum; param: GLint); extdecl;
  1264. glMaterialiv: procedure(face, pname: GLenum; const params: PGLint); extdecl;
  1265. glMatrixMode: procedure(mode: GLenum); extdecl;
  1266. glMultMatrixd: procedure(const m: PGLdouble); extdecl;
  1267. glMultMatrixf: procedure(const m: PGLfloat); extdecl;
  1268. glNewList: procedure(list: GLuint; mode: GLenum); extdecl;
  1269. glNormal3b: procedure(nx, ny, nz: GLbyte); extdecl;
  1270. glNormal3bv: procedure(const v: PGLbyte); extdecl;
  1271. glNormal3d: procedure(nx, ny, nz: GLdouble); extdecl;
  1272. glNormal3dv: procedure(const v: PGLdouble); extdecl;
  1273. glNormal3f: procedure(nx, ny, nz: GLfloat); extdecl;
  1274. glNormal3fv: procedure(const v: PGLfloat); extdecl;
  1275. glNormal3i: procedure(nx, ny, nz: GLint); extdecl;
  1276. glNormal3iv: procedure(const v: PGLint); extdecl;
  1277. glNormal3s: procedure(nx, ny, nz: GLshort); extdecl;
  1278. glNormal3sv: procedure(const v: PGLshort); extdecl;
  1279. glNormalPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1280. glOrtho: procedure(left, right, bottom, top, zNear, zFar: GLdouble); extdecl;
  1281. glPassThrough: procedure(token: GLfloat); extdecl;
  1282. glPixelMapfv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); extdecl;
  1283. glPixelMapuiv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); extdecl;
  1284. glPixelMapusv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); extdecl;
  1285. glPixelStoref: procedure(pname: GLenum; param: GLfloat); extdecl;
  1286. glPixelStorei: procedure(pname: GLenum; param: GLint); extdecl;
  1287. glPixelTransferf: procedure(pname: GLenum; param: GLfloat); extdecl;
  1288. glPixelTransferi: procedure(pname: GLenum; param: GLint); extdecl;
  1289. glPixelZoom: procedure(xfactor, yfactor: GLfloat); extdecl;
  1290. glPointSize: procedure(size: GLfloat); extdecl;
  1291. glPolygonMode: procedure(face, mode: GLenum); extdecl;
  1292. glPolygonOffset: procedure(factor, units: GLfloat); extdecl;
  1293. glPolygonStipple: procedure(const mask: PGLubyte); extdecl;
  1294. glPopAttrib: procedure; extdecl;
  1295. glPopClientAttrib: procedure; extdecl;
  1296. glPopMatrix: procedure; extdecl;
  1297. glPopName: procedure; extdecl;
  1298. glPrioritizeTextures: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); extdecl;
  1299. glPushAttrib: procedure(mask: GLbitfield); extdecl;
  1300. glPushClientAttrib: procedure(mask: GLbitfield); extdecl;
  1301. glPushMatrix: procedure; extdecl;
  1302. glPushName: procedure(name: GLuint); extdecl;
  1303. glRasterPos2d: procedure(x, y: GLdouble); extdecl;
  1304. glRasterPos2dv: procedure(const v: PGLdouble); extdecl;
  1305. glRasterPos2f: procedure(x, y: GLfloat); extdecl;
  1306. glRasterPos2fv: procedure(const v: PGLfloat); extdecl;
  1307. glRasterPos2i: procedure(x, y: GLint); extdecl;
  1308. glRasterPos2iv: procedure(const v: PGLint); extdecl;
  1309. glRasterPos2s: procedure(x, y: GLshort); extdecl;
  1310. glRasterPos2sv: procedure(const v: PGLshort); extdecl;
  1311. glRasterPos3d: procedure(x, y, z: GLdouble); extdecl;
  1312. glRasterPos3dv: procedure(const v: PGLdouble); extdecl;
  1313. glRasterPos3f: procedure(x, y, z: GLfloat); extdecl;
  1314. glRasterPos3fv: procedure(const v: PGLfloat); extdecl;
  1315. glRasterPos3i: procedure(x, y, z: GLint); extdecl;
  1316. glRasterPos3iv: procedure(const v: PGLint); extdecl;
  1317. glRasterPos3s: procedure(x, y, z: GLshort); extdecl;
  1318. glRasterPos3sv: procedure(const v: PGLshort); extdecl;
  1319. glRasterPos4d: procedure(x, y, z, w: GLdouble); extdecl;
  1320. glRasterPos4dv: procedure(const v: PGLdouble); extdecl;
  1321. glRasterPos4f: procedure(x, y, z, w: GLfloat); extdecl;
  1322. glRasterPos4fv: procedure(const v: PGLfloat); extdecl;
  1323. glRasterPos4i: procedure(x, y, z, w: GLint); extdecl;
  1324. glRasterPos4iv: procedure(const v: PGLint); extdecl;
  1325. glRasterPos4s: procedure(x, y, z, w: GLshort); extdecl;
  1326. glRasterPos4sv: procedure(const v: PGLshort); extdecl;
  1327. glReadBuffer: procedure(mode: GLenum); extdecl;
  1328. glReadPixels: procedure(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); extdecl;
  1329. glRectd: procedure(x1, y1, x2, y2: GLdouble); extdecl;
  1330. glRectdv: procedure(const v1: PGLdouble; const v2: PGLdouble); extdecl;
  1331. glRectf: procedure(x1, y1, x2, y2: GLfloat); extdecl;
  1332. glRectfv: procedure(const v1: PGLfloat; const v2: PGLfloat); extdecl;
  1333. glRecti: procedure(x1, y1, x2, y2: GLint); extdecl;
  1334. glRectiv: procedure(const v1: PGLint; const v2: PGLint); extdecl;
  1335. glRects: procedure(x1, y1, x2, y2: GLshort); extdecl;
  1336. glRectsv: procedure(const v1: PGLshort; const v2: PGLshort); extdecl;
  1337. glRenderMode: function(mode: GLint): GLint; extdecl;
  1338. glRotated: procedure(angle, x, y, z: GLdouble); extdecl;
  1339. glRotatef: procedure(angle, x, y, z: GLfloat); extdecl;
  1340. glScaled: procedure(x, y, z: GLdouble); extdecl;
  1341. glScalef: procedure(x, y, z: GLfloat); extdecl;
  1342. glScissor: procedure(x, y: GLint; width, height: GLsizei); extdecl;
  1343. glSelectBuffer: procedure(size: GLsizei; buffer: PGLuint); extdecl;
  1344. glShadeModel: procedure(mode: GLenum); extdecl;
  1345. glStencilFunc: procedure(func: GLenum; ref: GLint; mask: GLuint); extdecl;
  1346. glStencilMask: procedure(mask: GLuint); extdecl;
  1347. glStencilOp: procedure(fail, zfail, zpass: GLenum); extdecl;
  1348. glTexCoord1d: procedure(s: GLdouble); extdecl;
  1349. glTexCoord1dv: procedure(const v: PGLdouble); extdecl;
  1350. glTexCoord1f: procedure(s: GLfloat); extdecl;
  1351. glTexCoord1fv: procedure(const v: PGLfloat); extdecl;
  1352. glTexCoord1i: procedure(s: GLint); extdecl;
  1353. glTexCoord1iv: procedure(const v: PGLint); extdecl;
  1354. glTexCoord1s: procedure(s: GLshort); extdecl;
  1355. glTexCoord1sv: procedure(const v: PGLshort); extdecl;
  1356. glTexCoord2d: procedure(s, t: GLdouble); extdecl;
  1357. glTexCoord2dv: procedure(const v: PGLdouble); extdecl;
  1358. glTexCoord2f: procedure(s, t: GLfloat); extdecl;
  1359. glTexCoord2fv: procedure(const v: PGLfloat); extdecl;
  1360. glTexCoord2i: procedure(s, t: GLint); extdecl;
  1361. glTexCoord2iv: procedure(const v: PGLint); extdecl;
  1362. glTexCoord2s: procedure(s, t: GLshort); extdecl;
  1363. glTexCoord2sv: procedure(const v: PGLshort); extdecl;
  1364. glTexCoord3d: procedure(s, t, r: GLdouble); extdecl;
  1365. glTexCoord3dv: procedure(const v: PGLdouble); extdecl;
  1366. glTexCoord3f: procedure(s, t, r: GLfloat); extdecl;
  1367. glTexCoord3fv: procedure(const v: PGLfloat); extdecl;
  1368. glTexCoord3i: procedure(s, t, r: GLint); extdecl;
  1369. glTexCoord3iv: procedure(const v: PGLint); extdecl;
  1370. glTexCoord3s: procedure(s, t, r: GLshort); extdecl;
  1371. glTexCoord3sv: procedure(const v: PGLshort); extdecl;
  1372. glTexCoord4d: procedure(s, t, r, q: GLdouble); extdecl;
  1373. glTexCoord4dv: procedure(const v: PGLdouble); extdecl;
  1374. glTexCoord4f: procedure(s, t, r, q: GLfloat); extdecl;
  1375. glTexCoord4fv: procedure(const v: PGLfloat); extdecl;
  1376. glTexCoord4i: procedure(s, t, r, q: GLint); extdecl;
  1377. glTexCoord4iv: procedure(const v: PGLint); extdecl;
  1378. glTexCoord4s: procedure(s, t, r, q: GLshort); extdecl;
  1379. glTexCoord4sv: procedure(const v: PGLshort); extdecl;
  1380. glTexCoordPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1381. glTexEnvf: procedure(target: GLenum; pname: GLenum; param: GLfloat); extdecl;
  1382. glTexEnvfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
  1383. glTexEnvi: procedure(target: GLenum; pname: GLenum; param: GLint); extdecl;
  1384. glTexEnviv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
  1385. glTexGend: procedure(coord: GLenum; pname: GLenum; param: GLdouble); extdecl;
  1386. glTexGendv: procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); extdecl;
  1387. glTexGenf: procedure(coord: GLenum; pname: GLenum; param: GLfloat); extdecl;
  1388. glTexGenfv: procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
  1389. glTexGeni: procedure(coord: GLenum; pname: GLenum; param: GLint); extdecl;
  1390. glTexGeniv: procedure(coord: GLenum; pname: GLenum; const params: PGLint); extdecl;
  1391. glTexImage1D: procedure(target: GLenum; level, internalformat: GLint; width: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); extdecl;
  1392. glTexImage2D: procedure(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); extdecl;
  1393. glTexParameterf: procedure(target: GLenum; pname: GLenum; param: GLfloat); extdecl;
  1394. glTexParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
  1395. glTexParameteri: procedure(target: GLenum; pname: GLenum; param: GLint); extdecl;
  1396. glTexParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
  1397. glTexSubImage1D: procedure(target: GLenum; level, xoffset: GLint; width: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
  1398. glTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset: GLint; width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
  1399. glTranslated: procedure(x, y, z: GLdouble); extdecl;
  1400. glTranslatef: procedure(x, y, z: GLfloat); extdecl;
  1401. glVertex2d: procedure(x, y: GLdouble); extdecl;
  1402. glVertex2dv: procedure(const v: PGLdouble); extdecl;
  1403. glVertex2f: procedure(x, y: GLfloat); extdecl;
  1404. glVertex2fv: procedure(const v: PGLfloat); extdecl;
  1405. glVertex2i: procedure(x, y: GLint); extdecl;
  1406. glVertex2iv: procedure(const v: PGLint); extdecl;
  1407. glVertex2s: procedure(x, y: GLshort); extdecl;
  1408. glVertex2sv: procedure(const v: PGLshort); extdecl;
  1409. glVertex3d: procedure(x, y, z: GLdouble); extdecl;
  1410. glVertex3dv: procedure(const v: PGLdouble); extdecl;
  1411. glVertex3f: procedure(x, y, z: GLfloat); extdecl;
  1412. glVertex3fv: procedure(const v: PGLfloat); extdecl;
  1413. glVertex3i: procedure(x, y, z: GLint); extdecl;
  1414. glVertex3iv: procedure(const v: PGLint); extdecl;
  1415. glVertex3s: procedure(x, y, z: GLshort); extdecl;
  1416. glVertex3sv: procedure(const v: PGLshort); extdecl;
  1417. glVertex4d: procedure(x, y, z, w: GLdouble); extdecl;
  1418. glVertex4dv: procedure(const v: PGLdouble); extdecl;
  1419. glVertex4f: procedure(x, y, z, w: GLfloat); extdecl;
  1420. glVertex4fv: procedure(const v: PGLfloat); extdecl;
  1421. glVertex4i: procedure(x, y, z, w: GLint); extdecl;
  1422. glVertex4iv: procedure(const v: PGLint); extdecl;
  1423. glVertex4s: procedure(x, y, z, w: GLshort); extdecl;
  1424. glVertex4sv: procedure(const v: PGLshort); extdecl;
  1425. glVertexPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
  1426. glViewport: procedure(x, y: GLint; width, height: GLsizei); extdecl;
  1427. {$IFDEF Windows}
  1428. ChoosePixelFormat: function(DC: HDC; p2: PPixelFormatDescriptor): Integer; extdecl;
  1429. {$ENDIF}
  1430. {$ENDIF MORPHOS}
  1431. type
  1432. // EXT_vertex_array
  1433. PFNGLARRAYELEMENTEXTPROC = procedure(i: GLint); extdecl;
  1434. PFNGLDRAWARRAYSEXTPROC = procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
  1435. PFNGLVERTEXPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
  1436. stride, count: GLsizei; const pointer: Pointer); extdecl;
  1437. PFNGLNORMALPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
  1438. const pointer: Pointer); extdecl;
  1439. PFNGLCOLORPOINTEREXTPROC = procedure(size: GLint; atype: GLenum; stride, count: GLsizei;
  1440. const pointer: Pointer); extdecl;
  1441. PFNGLINDEXPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
  1442. const pointer: Pointer); extdecl;
  1443. PFNGLTEXCOORDPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
  1444. stride, count: GLsizei; const pointer: Pointer); extdecl;
  1445. PFNGLEDGEFLAGPOINTEREXTPROC = procedure(stride, count: GLsizei;
  1446. const pointer: PGLboolean); extdecl;
  1447. PFNGLGETPOINTERVEXTPROC = procedure(pname: GLenum; params: Pointer); extdecl;
  1448. PFNGLARRAYELEMENTARRAYEXTPROC = procedure(mode: GLenum; count: GLsizei;
  1449. const pi: Pointer); extdecl;
  1450. // WIN_swap_hint
  1451. PFNGLADDSWAPHINTRECTWINPROC = procedure(x, y: GLint; width, height: GLsizei); extdecl;
  1452. // EXT_paletted_texture
  1453. PFNGLCOLORTABLEEXTPROC = procedure(target, internalFormat: GLenum; width: GLsizei;
  1454. format, atype: GLenum; const data: Pointer); extdecl;
  1455. PFNGLCOLORSUBTABLEEXTPROC = procedure(target: GLenum; start, count: GLsizei;
  1456. format, atype: GLenum; const data: Pointer); extdecl;
  1457. PFNGLGETCOLORTABLEEXTPROC = procedure(target, format, atype: GLenum; data: Pointer); extdecl;
  1458. PFNGLGETCOLORTABLEPARAMETERIVEXTPROC = procedure(target, pname: GLenum; params: PGLint); extdecl;
  1459. PFNGLGETCOLORTABLEPARAMETERFVEXTPROC = procedure(target, pname: GLenum; params: PGLfloat); extdecl;
  1460. procedure LoadOpenGL(const dll: String);
  1461. procedure FreeOpenGL;
  1462. implementation
  1463. {$ifdef windows}
  1464. function WinChoosePixelFormat(DC: HDC; p2: PPixelFormatDescriptor): Integer; extdecl; external 'gdi32' name 'ChoosePixelFormat';
  1465. {$endif}
  1466. {$IFDEF MORPHOS}
  1467. { MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
  1468. { systems, so its functions are included here. }
  1469. {$INCLUDE tinygl.inc}
  1470. {$ENDIF MORPHOS}
  1471. procedure FreeOpenGL;
  1472. begin
  1473. {$IFDEF MORPHOS}
  1474. // MorphOS's GL will closed down by TinyGL unit, nothing is needed here.
  1475. {$ELSE MORPHOS}
  1476. @glAccum := nil;
  1477. @glAlphaFunc := nil;
  1478. @glAreTexturesResident := nil;
  1479. @glArrayElement := nil;
  1480. @glBegin := nil;
  1481. @glBindTexture := nil;
  1482. @glBitmap := nil;
  1483. @glBlendFunc := nil;
  1484. @glCallList := nil;
  1485. @glCallLists := nil;
  1486. @glClear := nil;
  1487. @glClearAccum := nil;
  1488. @glClearColor := nil;
  1489. @glClearDepth := nil;
  1490. @glClearIndex := nil;
  1491. @glClearStencil := nil;
  1492. @glClipPlane := nil;
  1493. @glColor3b := nil;
  1494. @glColor3bv := nil;
  1495. @glColor3d := nil;
  1496. @glColor3dv := nil;
  1497. @glColor3f := nil;
  1498. @glColor3fv := nil;
  1499. @glColor3i := nil;
  1500. @glColor3iv := nil;
  1501. @glColor3s := nil;
  1502. @glColor3sv := nil;
  1503. @glColor3ub := nil;
  1504. @glColor3ubv := nil;
  1505. @glColor3ui := nil;
  1506. @glColor3uiv := nil;
  1507. @glColor3us := nil;
  1508. @glColor3usv := nil;
  1509. @glColor4b := nil;
  1510. @glColor4bv := nil;
  1511. @glColor4d := nil;
  1512. @glColor4dv := nil;
  1513. @glColor4f := nil;
  1514. @glColor4fv := nil;
  1515. @glColor4i := nil;
  1516. @glColor4iv := nil;
  1517. @glColor4s := nil;
  1518. @glColor4sv := nil;
  1519. @glColor4ub := nil;
  1520. @glColor4ubv := nil;
  1521. @glColor4ui := nil;
  1522. @glColor4uiv := nil;
  1523. @glColor4us := nil;
  1524. @glColor4usv := nil;
  1525. @glColorMask := nil;
  1526. @glColorMaterial := nil;
  1527. @glColorPointer := nil;
  1528. @glCopyPixels := nil;
  1529. @glCopyTexImage1D := nil;
  1530. @glCopyTexImage2D := nil;
  1531. @glCopyTexSubImage1D := nil;
  1532. @glCopyTexSubImage2D := nil;
  1533. @glCullFace := nil;
  1534. @glDeleteLists := nil;
  1535. @glDeleteTextures := nil;
  1536. @glDepthFunc := nil;
  1537. @glDepthMask := nil;
  1538. @glDepthRange := nil;
  1539. @glDisable := nil;
  1540. @glDisableClientState := nil;
  1541. @glDrawArrays := nil;
  1542. @glDrawBuffer := nil;
  1543. @glDrawElements := nil;
  1544. @glDrawPixels := nil;
  1545. @glEdgeFlag := nil;
  1546. @glEdgeFlagPointer := nil;
  1547. @glEdgeFlagv := nil;
  1548. @glEnable := nil;
  1549. @glEnableClientState := nil;
  1550. @glEnd := nil;
  1551. @glEndList := nil;
  1552. @glEvalCoord1d := nil;
  1553. @glEvalCoord1dv := nil;
  1554. @glEvalCoord1f := nil;
  1555. @glEvalCoord1fv := nil;
  1556. @glEvalCoord2d := nil;
  1557. @glEvalCoord2dv := nil;
  1558. @glEvalCoord2f := nil;
  1559. @glEvalCoord2fv := nil;
  1560. @glEvalMesh1 := nil;
  1561. @glEvalMesh2 := nil;
  1562. @glEvalPoint1 := nil;
  1563. @glEvalPoint2 := nil;
  1564. @glFeedbackBuffer := nil;
  1565. @glFinish := nil;
  1566. @glFlush := nil;
  1567. @glFogf := nil;
  1568. @glFogfv := nil;
  1569. @glFogi := nil;
  1570. @glFogiv := nil;
  1571. @glFrontFace := nil;
  1572. @glFrustum := nil;
  1573. @glGenLists := nil;
  1574. @glGenTextures := nil;
  1575. @glGetBooleanv := nil;
  1576. @glGetClipPlane := nil;
  1577. @glGetDoublev := nil;
  1578. @glGetError := nil;
  1579. @glGetFloatv := nil;
  1580. @glGetIntegerv := nil;
  1581. @glGetLightfv := nil;
  1582. @glGetLightiv := nil;
  1583. @glGetMapdv := nil;
  1584. @glGetMapfv := nil;
  1585. @glGetMapiv := nil;
  1586. @glGetMaterialfv := nil;
  1587. @glGetMaterialiv := nil;
  1588. @glGetPixelMapfv := nil;
  1589. @glGetPixelMapuiv := nil;
  1590. @glGetPixelMapusv := nil;
  1591. @glGetPointerv := nil;
  1592. @glGetPolygonStipple := nil;
  1593. @glGetString := nil;
  1594. @glGetTexEnvfv := nil;
  1595. @glGetTexEnviv := nil;
  1596. @glGetTexGendv := nil;
  1597. @glGetTexGenfv := nil;
  1598. @glGetTexGeniv := nil;
  1599. @glGetTexImage := nil;
  1600. @glGetTexLevelParameterfv := nil;
  1601. @glGetTexLevelParameteriv := nil;
  1602. @glGetTexParameterfv := nil;
  1603. @glGetTexParameteriv := nil;
  1604. @glHint := nil;
  1605. @glIndexMask := nil;
  1606. @glIndexPointer := nil;
  1607. @glIndexd := nil;
  1608. @glIndexdv := nil;
  1609. @glIndexf := nil;
  1610. @glIndexfv := nil;
  1611. @glIndexi := nil;
  1612. @glIndexiv := nil;
  1613. @glIndexs := nil;
  1614. @glIndexsv := nil;
  1615. @glIndexub := nil;
  1616. @glIndexubv := nil;
  1617. @glInitNames := nil;
  1618. @glInterleavedArrays := nil;
  1619. @glIsEnabled := nil;
  1620. @glIsList := nil;
  1621. @glIsTexture := nil;
  1622. @glLightModelf := nil;
  1623. @glLightModelfv := nil;
  1624. @glLightModeli := nil;
  1625. @glLightModeliv := nil;
  1626. @glLightf := nil;
  1627. @glLightfv := nil;
  1628. @glLighti := nil;
  1629. @glLightiv := nil;
  1630. @glLineStipple := nil;
  1631. @glLineWidth := nil;
  1632. @glListBase := nil;
  1633. @glLoadIdentity := nil;
  1634. @glLoadMatrixd := nil;
  1635. @glLoadMatrixf := nil;
  1636. @glLoadName := nil;
  1637. @glLogicOp := nil;
  1638. @glMap1d := nil;
  1639. @glMap1f := nil;
  1640. @glMap2d := nil;
  1641. @glMap2f := nil;
  1642. @glMapGrid1d := nil;
  1643. @glMapGrid1f := nil;
  1644. @glMapGrid2d := nil;
  1645. @glMapGrid2f := nil;
  1646. @glMaterialf := nil;
  1647. @glMaterialfv := nil;
  1648. @glMateriali := nil;
  1649. @glMaterialiv := nil;
  1650. @glMatrixMode := nil;
  1651. @glMultMatrixd := nil;
  1652. @glMultMatrixf := nil;
  1653. @glNewList := nil;
  1654. @glNormal3b := nil;
  1655. @glNormal3bv := nil;
  1656. @glNormal3d := nil;
  1657. @glNormal3dv := nil;
  1658. @glNormal3f := nil;
  1659. @glNormal3fv := nil;
  1660. @glNormal3i := nil;
  1661. @glNormal3iv := nil;
  1662. @glNormal3s := nil;
  1663. @glNormal3sv := nil;
  1664. @glNormalPointer := nil;
  1665. @glOrtho := nil;
  1666. @glPassThrough := nil;
  1667. @glPixelMapfv := nil;
  1668. @glPixelMapuiv := nil;
  1669. @glPixelMapusv := nil;
  1670. @glPixelStoref := nil;
  1671. @glPixelStorei := nil;
  1672. @glPixelTransferf := nil;
  1673. @glPixelTransferi := nil;
  1674. @glPixelZoom := nil;
  1675. @glPointSize := nil;
  1676. @glPolygonMode := nil;
  1677. @glPolygonOffset := nil;
  1678. @glPolygonStipple := nil;
  1679. @glPopAttrib := nil;
  1680. @glPopClientAttrib := nil;
  1681. @glPopMatrix := nil;
  1682. @glPopName := nil;
  1683. @glPrioritizeTextures := nil;
  1684. @glPushAttrib := nil;
  1685. @glPushClientAttrib := nil;
  1686. @glPushMatrix := nil;
  1687. @glPushName := nil;
  1688. @glRasterPos2d := nil;
  1689. @glRasterPos2dv := nil;
  1690. @glRasterPos2f := nil;
  1691. @glRasterPos2fv := nil;
  1692. @glRasterPos2i := nil;
  1693. @glRasterPos2iv := nil;
  1694. @glRasterPos2s := nil;
  1695. @glRasterPos2sv := nil;
  1696. @glRasterPos3d := nil;
  1697. @glRasterPos3dv := nil;
  1698. @glRasterPos3f := nil;
  1699. @glRasterPos3fv := nil;
  1700. @glRasterPos3i := nil;
  1701. @glRasterPos3iv := nil;
  1702. @glRasterPos3s := nil;
  1703. @glRasterPos3sv := nil;
  1704. @glRasterPos4d := nil;
  1705. @glRasterPos4dv := nil;
  1706. @glRasterPos4f := nil;
  1707. @glRasterPos4fv := nil;
  1708. @glRasterPos4i := nil;
  1709. @glRasterPos4iv := nil;
  1710. @glRasterPos4s := nil;
  1711. @glRasterPos4sv := nil;
  1712. @glReadBuffer := nil;
  1713. @glReadPixels := nil;
  1714. @glRectd := nil;
  1715. @glRectdv := nil;
  1716. @glRectf := nil;
  1717. @glRectfv := nil;
  1718. @glRecti := nil;
  1719. @glRectiv := nil;
  1720. @glRects := nil;
  1721. @glRectsv := nil;
  1722. @glRenderMode := nil;
  1723. @glRotated := nil;
  1724. @glRotatef := nil;
  1725. @glScaled := nil;
  1726. @glScalef := nil;
  1727. @glScissor := nil;
  1728. @glSelectBuffer := nil;
  1729. @glShadeModel := nil;
  1730. @glStencilFunc := nil;
  1731. @glStencilMask := nil;
  1732. @glStencilOp := nil;
  1733. @glTexCoord1d := nil;
  1734. @glTexCoord1dv := nil;
  1735. @glTexCoord1f := nil;
  1736. @glTexCoord1fv := nil;
  1737. @glTexCoord1i := nil;
  1738. @glTexCoord1iv := nil;
  1739. @glTexCoord1s := nil;
  1740. @glTexCoord1sv := nil;
  1741. @glTexCoord2d := nil;
  1742. @glTexCoord2dv := nil;
  1743. @glTexCoord2f := nil;
  1744. @glTexCoord2fv := nil;
  1745. @glTexCoord2i := nil;
  1746. @glTexCoord2iv := nil;
  1747. @glTexCoord2s := nil;
  1748. @glTexCoord2sv := nil;
  1749. @glTexCoord3d := nil;
  1750. @glTexCoord3dv := nil;
  1751. @glTexCoord3f := nil;
  1752. @glTexCoord3fv := nil;
  1753. @glTexCoord3i := nil;
  1754. @glTexCoord3iv := nil;
  1755. @glTexCoord3s := nil;
  1756. @glTexCoord3sv := nil;
  1757. @glTexCoord4d := nil;
  1758. @glTexCoord4dv := nil;
  1759. @glTexCoord4f := nil;
  1760. @glTexCoord4fv := nil;
  1761. @glTexCoord4i := nil;
  1762. @glTexCoord4iv := nil;
  1763. @glTexCoord4s := nil;
  1764. @glTexCoord4sv := nil;
  1765. @glTexCoordPointer := nil;
  1766. @glTexEnvf := nil;
  1767. @glTexEnvfv := nil;
  1768. @glTexEnvi := nil;
  1769. @glTexEnviv := nil;
  1770. @glTexGend := nil;
  1771. @glTexGendv := nil;
  1772. @glTexGenf := nil;
  1773. @glTexGenfv := nil;
  1774. @glTexGeni := nil;
  1775. @glTexGeniv := nil;
  1776. @glTexImage1D := nil;
  1777. @glTexImage2D := nil;
  1778. @glTexParameterf := nil;
  1779. @glTexParameterfv := nil;
  1780. @glTexParameteri := nil;
  1781. @glTexParameteriv := nil;
  1782. @glTexSubImage1D := nil;
  1783. @glTexSubImage2D := nil;
  1784. @glTranslated := nil;
  1785. @glTranslatef := nil;
  1786. @glVertex2d := nil;
  1787. @glVertex2dv := nil;
  1788. @glVertex2f := nil;
  1789. @glVertex2fv := nil;
  1790. @glVertex2i := nil;
  1791. @glVertex2iv := nil;
  1792. @glVertex2s := nil;
  1793. @glVertex2sv := nil;
  1794. @glVertex3d := nil;
  1795. @glVertex3dv := nil;
  1796. @glVertex3f := nil;
  1797. @glVertex3fv := nil;
  1798. @glVertex3i := nil;
  1799. @glVertex3iv := nil;
  1800. @glVertex3s := nil;
  1801. @glVertex3sv := nil;
  1802. @glVertex4d := nil;
  1803. @glVertex4dv := nil;
  1804. @glVertex4f := nil;
  1805. @glVertex4fv := nil;
  1806. @glVertex4i := nil;
  1807. @glVertex4iv := nil;
  1808. @glVertex4s := nil;
  1809. @glVertex4sv := nil;
  1810. @glVertexPointer := nil;
  1811. @glViewport := nil;
  1812. {$IFDEF Windows}
  1813. @ChoosePixelFormat := nil;
  1814. {$ENDIF}
  1815. if (LibGL <> 0) then
  1816. FreeLibrary(LibGL);
  1817. {$ENDIF MORPHOS}
  1818. end;
  1819. procedure LoadOpenGL(const dll: String);
  1820. {$IFDEF MORPHOS}
  1821. begin
  1822. // MorphOS's GL has own initialization in TinyGL unit, nothing is needed here.
  1823. end;
  1824. {$ELSE MORPHOS}
  1825. var
  1826. MethodName: string = '';
  1827. function GetGLProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
  1828. begin
  1829. MethodName:=ProcName;
  1830. Result:=GetProcAddress(Lib, ProcName);
  1831. end;
  1832. begin
  1833. FreeOpenGL;
  1834. LibGL := LoadLibrary(PChar(dll));
  1835. if LibGL = 0 then raise Exception.Create('Could not load OpenGL from ' + dll);
  1836. try
  1837. @glAccum := GetGLProcAddress(LibGL, 'glAccum');
  1838. @glAlphaFunc := GetGLProcAddress(LibGL, 'glAlphaFunc');
  1839. @glAreTexturesResident := GetGLProcAddress(LibGL, 'glAreTexturesResident');
  1840. @glArrayElement := GetGLProcAddress(LibGL, 'glArrayElement');
  1841. @glBegin := GetGLProcAddress(LibGL, 'glBegin');
  1842. @glBindTexture := GetGLProcAddress(LibGL, 'glBindTexture');
  1843. @glBitmap := GetGLProcAddress(LibGL, 'glBitmap');
  1844. @glBlendFunc := GetGLProcAddress(LibGL, 'glBlendFunc');
  1845. @glCallList := GetGLProcAddress(LibGL, 'glCallList');
  1846. @glCallLists := GetGLProcAddress(LibGL, 'glCallLists');
  1847. @glClear := GetGLProcAddress(LibGL, 'glClear');
  1848. @glClearAccum := GetGLProcAddress(LibGL, 'glClearAccum');
  1849. @glClearColor := GetGLProcAddress(LibGL, 'glClearColor');
  1850. @glClearDepth := GetGLProcAddress(LibGL, 'glClearDepth');
  1851. @glClearIndex := GetGLProcAddress(LibGL, 'glClearIndex');
  1852. @glClearStencil := GetGLProcAddress(LibGL, 'glClearStencil');
  1853. @glClipPlane := GetGLProcAddress(LibGL, 'glClipPlane');
  1854. @glColor3b := GetGLProcAddress(LibGL, 'glColor3b');
  1855. @glColor3bv := GetGLProcAddress(LibGL, 'glColor3bv');
  1856. @glColor3d := GetGLProcAddress(LibGL, 'glColor3d');
  1857. @glColor3dv := GetGLProcAddress(LibGL, 'glColor3dv');
  1858. @glColor3f := GetGLProcAddress(LibGL, 'glColor3f');
  1859. @glColor3fv := GetGLProcAddress(LibGL, 'glColor3fv');
  1860. @glColor3i := GetGLProcAddress(LibGL, 'glColor3i');
  1861. @glColor3iv := GetGLProcAddress(LibGL, 'glColor3iv');
  1862. @glColor3s := GetGLProcAddress(LibGL, 'glColor3s');
  1863. @glColor3sv := GetGLProcAddress(LibGL, 'glColor3sv');
  1864. @glColor3ub := GetGLProcAddress(LibGL, 'glColor3ub');
  1865. @glColor3ubv := GetGLProcAddress(LibGL, 'glColor3ubv');
  1866. @glColor3ui := GetGLProcAddress(LibGL, 'glColor3ui');
  1867. @glColor3uiv := GetGLProcAddress(LibGL, 'glColor3uiv');
  1868. @glColor3us := GetGLProcAddress(LibGL, 'glColor3us');
  1869. @glColor3usv := GetGLProcAddress(LibGL, 'glColor3usv');
  1870. @glColor4b := GetGLProcAddress(LibGL, 'glColor4b');
  1871. @glColor4bv := GetGLProcAddress(LibGL, 'glColor4bv');
  1872. @glColor4d := GetGLProcAddress(LibGL, 'glColor4d');
  1873. @glColor4dv := GetGLProcAddress(LibGL, 'glColor4dv');
  1874. @glColor4f := GetGLProcAddress(LibGL, 'glColor4f');
  1875. @glColor4fv := GetGLProcAddress(LibGL, 'glColor4fv');
  1876. @glColor4i := GetGLProcAddress(LibGL, 'glColor4i');
  1877. @glColor4iv := GetGLProcAddress(LibGL, 'glColor4iv');
  1878. @glColor4s := GetGLProcAddress(LibGL, 'glColor4s');
  1879. @glColor4sv := GetGLProcAddress(LibGL, 'glColor4sv');
  1880. @glColor4ub := GetGLProcAddress(LibGL, 'glColor4ub');
  1881. @glColor4ubv := GetGLProcAddress(LibGL, 'glColor4ubv');
  1882. @glColor4ui := GetGLProcAddress(LibGL, 'glColor4ui');
  1883. @glColor4uiv := GetGLProcAddress(LibGL, 'glColor4uiv');
  1884. @glColor4us := GetGLProcAddress(LibGL, 'glColor4us');
  1885. @glColor4usv := GetGLProcAddress(LibGL, 'glColor4usv');
  1886. @glColorMask := GetGLProcAddress(LibGL, 'glColorMask');
  1887. @glColorMaterial := GetGLProcAddress(LibGL, 'glColorMaterial');
  1888. @glColorPointer := GetGLProcAddress(LibGL, 'glColorPointer');
  1889. @glCopyPixels := GetGLProcAddress(LibGL, 'glCopyPixels');
  1890. @glCopyTexImage1D := GetGLProcAddress(LibGL, 'glCopyTexImage1D');
  1891. @glCopyTexImage2D := GetGLProcAddress(LibGL, 'glCopyTexImage2D');
  1892. @glCopyTexSubImage1D := GetGLProcAddress(LibGL, 'glCopyTexSubImage1D');
  1893. @glCopyTexSubImage2D := GetGLProcAddress(LibGL, 'glCopyTexSubImage2D');
  1894. @glCullFace := GetGLProcAddress(LibGL, 'glCullFace');
  1895. @glDeleteLists := GetGLProcAddress(LibGL, 'glDeleteLists');
  1896. @glDeleteTextures := GetGLProcAddress(LibGL, 'glDeleteTextures');
  1897. @glDepthFunc := GetGLProcAddress(LibGL, 'glDepthFunc');
  1898. @glDepthMask := GetGLProcAddress(LibGL, 'glDepthMask');
  1899. @glDepthRange := GetGLProcAddress(LibGL, 'glDepthRange');
  1900. @glDisable := GetGLProcAddress(LibGL, 'glDisable');
  1901. @glDisableClientState := GetGLProcAddress(LibGL, 'glDisableClientState');
  1902. @glDrawArrays := GetGLProcAddress(LibGL, 'glDrawArrays');
  1903. @glDrawBuffer := GetGLProcAddress(LibGL, 'glDrawBuffer');
  1904. @glDrawElements := GetGLProcAddress(LibGL, 'glDrawElements');
  1905. @glDrawPixels := GetGLProcAddress(LibGL, 'glDrawPixels');
  1906. @glEdgeFlag := GetGLProcAddress(LibGL, 'glEdgeFlag');
  1907. @glEdgeFlagPointer := GetGLProcAddress(LibGL, 'glEdgeFlagPointer');
  1908. @glEdgeFlagv := GetGLProcAddress(LibGL, 'glEdgeFlagv');
  1909. @glEnable := GetGLProcAddress(LibGL, 'glEnable');
  1910. @glEnableClientState := GetGLProcAddress(LibGL, 'glEnableClientState');
  1911. @glEnd := GetGLProcAddress(LibGL, 'glEnd');
  1912. @glEndList := GetGLProcAddress(LibGL, 'glEndList');
  1913. @glEvalCoord1d := GetGLProcAddress(LibGL, 'glEvalCoord1d');
  1914. @glEvalCoord1dv := GetGLProcAddress(LibGL, 'glEvalCoord1dv');
  1915. @glEvalCoord1f := GetGLProcAddress(LibGL, 'glEvalCoord1f');
  1916. @glEvalCoord1fv := GetGLProcAddress(LibGL, 'glEvalCoord1fv');
  1917. @glEvalCoord2d := GetGLProcAddress(LibGL, 'glEvalCoord2d');
  1918. @glEvalCoord2dv := GetGLProcAddress(LibGL, 'glEvalCoord2dv');
  1919. @glEvalCoord2f := GetGLProcAddress(LibGL, 'glEvalCoord2f');
  1920. @glEvalCoord2fv := GetGLProcAddress(LibGL, 'glEvalCoord2fv');
  1921. @glEvalMesh1 := GetGLProcAddress(LibGL, 'glEvalMesh1');
  1922. @glEvalMesh2 := GetGLProcAddress(LibGL, 'glEvalMesh2');
  1923. @glEvalPoint1 := GetGLProcAddress(LibGL, 'glEvalPoint1');
  1924. @glEvalPoint2 := GetGLProcAddress(LibGL, 'glEvalPoint2');
  1925. @glFeedbackBuffer := GetGLProcAddress(LibGL, 'glFeedbackBuffer');
  1926. @glFinish := GetGLProcAddress(LibGL, 'glFinish');
  1927. @glFlush := GetGLProcAddress(LibGL, 'glFlush');
  1928. @glFogf := GetGLProcAddress(LibGL, 'glFogf');
  1929. @glFogfv := GetGLProcAddress(LibGL, 'glFogfv');
  1930. @glFogi := GetGLProcAddress(LibGL, 'glFogi');
  1931. @glFogiv := GetGLProcAddress(LibGL, 'glFogiv');
  1932. @glFrontFace := GetGLProcAddress(LibGL, 'glFrontFace');
  1933. @glFrustum := GetGLProcAddress(LibGL, 'glFrustum');
  1934. @glGenLists := GetGLProcAddress(LibGL, 'glGenLists');
  1935. @glGenTextures := GetGLProcAddress(LibGL, 'glGenTextures');
  1936. @glGetBooleanv := GetGLProcAddress(LibGL, 'glGetBooleanv');
  1937. @glGetClipPlane := GetGLProcAddress(LibGL, 'glGetClipPlane');
  1938. @glGetDoublev := GetGLProcAddress(LibGL, 'glGetDoublev');
  1939. @glGetError := GetGLProcAddress(LibGL, 'glGetError');
  1940. @glGetFloatv := GetGLProcAddress(LibGL, 'glGetFloatv');
  1941. @glGetIntegerv := GetGLProcAddress(LibGL, 'glGetIntegerv');
  1942. @glGetLightfv := GetGLProcAddress(LibGL, 'glGetLightfv');
  1943. @glGetLightiv := GetGLProcAddress(LibGL, 'glGetLightiv');
  1944. @glGetMapdv := GetGLProcAddress(LibGL, 'glGetMapdv');
  1945. @glGetMapfv := GetGLProcAddress(LibGL, 'glGetMapfv');
  1946. @glGetMapiv := GetGLProcAddress(LibGL, 'glGetMapiv');
  1947. @glGetMaterialfv := GetGLProcAddress(LibGL, 'glGetMaterialfv');
  1948. @glGetMaterialiv := GetGLProcAddress(LibGL, 'glGetMaterialiv');
  1949. @glGetPixelMapfv := GetGLProcAddress(LibGL, 'glGetPixelMapfv');
  1950. @glGetPixelMapuiv := GetGLProcAddress(LibGL, 'glGetPixelMapuiv');
  1951. @glGetPixelMapusv := GetGLProcAddress(LibGL, 'glGetPixelMapusv');
  1952. @glGetPointerv := GetGLProcAddress(LibGL, 'glGetPointerv');
  1953. @glGetPolygonStipple := GetGLProcAddress(LibGL, 'glGetPolygonStipple');
  1954. @glGetString := GetGLProcAddress(LibGL, 'glGetString');
  1955. @glGetTexEnvfv := GetGLProcAddress(LibGL, 'glGetTexEnvfv');
  1956. @glGetTexEnviv := GetGLProcAddress(LibGL, 'glGetTexEnviv');
  1957. @glGetTexGendv := GetGLProcAddress(LibGL, 'glGetTexGendv');
  1958. @glGetTexGenfv := GetGLProcAddress(LibGL, 'glGetTexGenfv');
  1959. @glGetTexGeniv := GetGLProcAddress(LibGL, 'glGetTexGeniv');
  1960. @glGetTexImage := GetGLProcAddress(LibGL, 'glGetTexImage');
  1961. @glGetTexLevelParameterfv := GetGLProcAddress(LibGL, 'glGetTexLevelParameterfv');
  1962. @glGetTexLevelParameteriv := GetGLProcAddress(LibGL, 'glGetTexLevelParameteriv');
  1963. @glGetTexParameterfv := GetGLProcAddress(LibGL, 'glGetTexParameterfv');
  1964. @glGetTexParameteriv := GetGLProcAddress(LibGL, 'glGetTexParameteriv');
  1965. @glHint := GetGLProcAddress(LibGL, 'glHint');
  1966. @glIndexMask := GetGLProcAddress(LibGL, 'glIndexMask');
  1967. @glIndexPointer := GetGLProcAddress(LibGL, 'glIndexPointer');
  1968. @glIndexd := GetGLProcAddress(LibGL, 'glIndexd');
  1969. @glIndexdv := GetGLProcAddress(LibGL, 'glIndexdv');
  1970. @glIndexf := GetGLProcAddress(LibGL, 'glIndexf');
  1971. @glIndexfv := GetGLProcAddress(LibGL, 'glIndexfv');
  1972. @glIndexi := GetGLProcAddress(LibGL, 'glIndexi');
  1973. @glIndexiv := GetGLProcAddress(LibGL, 'glIndexiv');
  1974. @glIndexs := GetGLProcAddress(LibGL, 'glIndexs');
  1975. @glIndexsv := GetGLProcAddress(LibGL, 'glIndexsv');
  1976. @glIndexub := GetGLProcAddress(LibGL, 'glIndexub');
  1977. @glIndexubv := GetGLProcAddress(LibGL, 'glIndexubv');
  1978. @glInitNames := GetGLProcAddress(LibGL, 'glInitNames');
  1979. @glInterleavedArrays := GetGLProcAddress(LibGL, 'glInterleavedArrays');
  1980. @glIsEnabled := GetGLProcAddress(LibGL, 'glIsEnabled');
  1981. @glIsList := GetGLProcAddress(LibGL, 'glIsList');
  1982. @glIsTexture := GetGLProcAddress(LibGL, 'glIsTexture');
  1983. @glLightModelf := GetGLProcAddress(LibGL, 'glLightModelf');
  1984. @glLightModelfv := GetGLProcAddress(LibGL, 'glLightModelfv');
  1985. @glLightModeli := GetGLProcAddress(LibGL, 'glLightModeli');
  1986. @glLightModeliv := GetGLProcAddress(LibGL, 'glLightModeliv');
  1987. @glLightf := GetGLProcAddress(LibGL, 'glLightf');
  1988. @glLightfv := GetGLProcAddress(LibGL, 'glLightfv');
  1989. @glLighti := GetGLProcAddress(LibGL, 'glLighti');
  1990. @glLightiv := GetGLProcAddress(LibGL, 'glLightiv');
  1991. @glLineStipple := GetGLProcAddress(LibGL, 'glLineStipple');
  1992. @glLineWidth := GetGLProcAddress(LibGL, 'glLineWidth');
  1993. @glListBase := GetGLProcAddress(LibGL, 'glListBase');
  1994. @glLoadIdentity := GetGLProcAddress(LibGL, 'glLoadIdentity');
  1995. @glLoadMatrixd := GetGLProcAddress(LibGL, 'glLoadMatrixd');
  1996. @glLoadMatrixf := GetGLProcAddress(LibGL, 'glLoadMatrixf');
  1997. @glLoadName := GetGLProcAddress(LibGL, 'glLoadName');
  1998. @glLogicOp := GetGLProcAddress(LibGL, 'glLogicOp');
  1999. @glMap1d := GetGLProcAddress(LibGL, 'glMap1d');
  2000. @glMap1f := GetGLProcAddress(LibGL, 'glMap1f');
  2001. @glMap2d := GetGLProcAddress(LibGL, 'glMap2d');
  2002. @glMap2f := GetGLProcAddress(LibGL, 'glMap2f');
  2003. @glMapGrid1d := GetGLProcAddress(LibGL, 'glMapGrid1d');
  2004. @glMapGrid1f := GetGLProcAddress(LibGL, 'glMapGrid1f');
  2005. @glMapGrid2d := GetGLProcAddress(LibGL, 'glMapGrid2d');
  2006. @glMapGrid2f := GetGLProcAddress(LibGL, 'glMapGrid2f');
  2007. @glMaterialf := GetGLProcAddress(LibGL, 'glMaterialf');
  2008. @glMaterialfv := GetGLProcAddress(LibGL, 'glMaterialfv');
  2009. @glMateriali := GetGLProcAddress(LibGL, 'glMateriali');
  2010. @glMaterialiv := GetGLProcAddress(LibGL, 'glMaterialiv');
  2011. @glMatrixMode := GetGLProcAddress(LibGL, 'glMatrixMode');
  2012. @glMultMatrixd := GetGLProcAddress(LibGL, 'glMultMatrixd');
  2013. @glMultMatrixf := GetGLProcAddress(LibGL, 'glMultMatrixf');
  2014. @glNewList := GetGLProcAddress(LibGL, 'glNewList');
  2015. @glNormal3b := GetGLProcAddress(LibGL, 'glNormal3b');
  2016. @glNormal3bv := GetGLProcAddress(LibGL, 'glNormal3bv');
  2017. @glNormal3d := GetGLProcAddress(LibGL, 'glNormal3d');
  2018. @glNormal3dv := GetGLProcAddress(LibGL, 'glNormal3dv');
  2019. @glNormal3f := GetGLProcAddress(LibGL, 'glNormal3f');
  2020. @glNormal3fv := GetGLProcAddress(LibGL, 'glNormal3fv');
  2021. @glNormal3i := GetGLProcAddress(LibGL, 'glNormal3i');
  2022. @glNormal3iv := GetGLProcAddress(LibGL, 'glNormal3iv');
  2023. @glNormal3s := GetGLProcAddress(LibGL, 'glNormal3s');
  2024. @glNormal3sv := GetGLProcAddress(LibGL, 'glNormal3sv');
  2025. @glNormalPointer := GetGLProcAddress(LibGL, 'glNormalPointer');
  2026. @glOrtho := GetGLProcAddress(LibGL, 'glOrtho');
  2027. @glPassThrough := GetGLProcAddress(LibGL, 'glPassThrough');
  2028. @glPixelMapfv := GetGLProcAddress(LibGL, 'glPixelMapfv');
  2029. @glPixelMapuiv := GetGLProcAddress(LibGL, 'glPixelMapuiv');
  2030. @glPixelMapusv := GetGLProcAddress(LibGL, 'glPixelMapusv');
  2031. @glPixelStoref := GetGLProcAddress(LibGL, 'glPixelStoref');
  2032. @glPixelStorei := GetGLProcAddress(LibGL, 'glPixelStorei');
  2033. @glPixelTransferf := GetGLProcAddress(LibGL, 'glPixelTransferf');
  2034. @glPixelTransferi := GetGLProcAddress(LibGL, 'glPixelTransferi');
  2035. @glPixelZoom := GetGLProcAddress(LibGL, 'glPixelZoom');
  2036. @glPointSize := GetGLProcAddress(LibGL, 'glPointSize');
  2037. @glPolygonMode := GetGLProcAddress(LibGL, 'glPolygonMode');
  2038. @glPolygonOffset := GetGLProcAddress(LibGL, 'glPolygonOffset');
  2039. @glPolygonStipple := GetGLProcAddress(LibGL, 'glPolygonStipple');
  2040. @glPopAttrib := GetGLProcAddress(LibGL, 'glPopAttrib');
  2041. @glPopClientAttrib := GetGLProcAddress(LibGL, 'glPopClientAttrib');
  2042. @glPopMatrix := GetGLProcAddress(LibGL, 'glPopMatrix');
  2043. @glPopName := GetGLProcAddress(LibGL, 'glPopName');
  2044. @glPrioritizeTextures := GetGLProcAddress(LibGL, 'glPrioritizeTextures');
  2045. @glPushAttrib := GetGLProcAddress(LibGL, 'glPushAttrib');
  2046. @glPushClientAttrib := GetGLProcAddress(LibGL, 'glPushClientAttrib');
  2047. @glPushMatrix := GetGLProcAddress(LibGL, 'glPushMatrix');
  2048. @glPushName := GetGLProcAddress(LibGL, 'glPushName');
  2049. @glRasterPos2d := GetGLProcAddress(LibGL, 'glRasterPos2d');
  2050. @glRasterPos2dv := GetGLProcAddress(LibGL, 'glRasterPos2dv');
  2051. @glRasterPos2f := GetGLProcAddress(LibGL, 'glRasterPos2f');
  2052. @glRasterPos2fv := GetGLProcAddress(LibGL, 'glRasterPos2fv');
  2053. @glRasterPos2i := GetGLProcAddress(LibGL, 'glRasterPos2i');
  2054. @glRasterPos2iv := GetGLProcAddress(LibGL, 'glRasterPos2iv');
  2055. @glRasterPos2s := GetGLProcAddress(LibGL, 'glRasterPos2s');
  2056. @glRasterPos2sv := GetGLProcAddress(LibGL, 'glRasterPos2sv');
  2057. @glRasterPos3d := GetGLProcAddress(LibGL, 'glRasterPos3d');
  2058. @glRasterPos3dv := GetGLProcAddress(LibGL, 'glRasterPos3dv');
  2059. @glRasterPos3f := GetGLProcAddress(LibGL, 'glRasterPos3f');
  2060. @glRasterPos3fv := GetGLProcAddress(LibGL, 'glRasterPos3fv');
  2061. @glRasterPos3i := GetGLProcAddress(LibGL, 'glRasterPos3i');
  2062. @glRasterPos3iv := GetGLProcAddress(LibGL, 'glRasterPos3iv');
  2063. @glRasterPos3s := GetGLProcAddress(LibGL, 'glRasterPos3s');
  2064. @glRasterPos3sv := GetGLProcAddress(LibGL, 'glRasterPos3sv');
  2065. @glRasterPos4d := GetGLProcAddress(LibGL, 'glRasterPos4d');
  2066. @glRasterPos4dv := GetGLProcAddress(LibGL, 'glRasterPos4dv');
  2067. @glRasterPos4f := GetGLProcAddress(LibGL, 'glRasterPos4f');
  2068. @glRasterPos4fv := GetGLProcAddress(LibGL, 'glRasterPos4fv');
  2069. @glRasterPos4i := GetGLProcAddress(LibGL, 'glRasterPos4i');
  2070. @glRasterPos4iv := GetGLProcAddress(LibGL, 'glRasterPos4iv');
  2071. @glRasterPos4s := GetGLProcAddress(LibGL, 'glRasterPos4s');
  2072. @glRasterPos4sv := GetGLProcAddress(LibGL, 'glRasterPos4sv');
  2073. @glReadBuffer := GetGLProcAddress(LibGL, 'glReadBuffer');
  2074. @glReadPixels := GetGLProcAddress(LibGL, 'glReadPixels');
  2075. @glRectd := GetGLProcAddress(LibGL, 'glRectd');
  2076. @glRectdv := GetGLProcAddress(LibGL, 'glRectdv');
  2077. @glRectf := GetGLProcAddress(LibGL, 'glRectf');
  2078. @glRectfv := GetGLProcAddress(LibGL, 'glRectfv');
  2079. @glRecti := GetGLProcAddress(LibGL, 'glRecti');
  2080. @glRectiv := GetGLProcAddress(LibGL, 'glRectiv');
  2081. @glRects := GetGLProcAddress(LibGL, 'glRects');
  2082. @glRectsv := GetGLProcAddress(LibGL, 'glRectsv');
  2083. @glRenderMode := GetGLProcAddress(LibGL, 'glRenderMode');
  2084. @glRotated := GetGLProcAddress(LibGL, 'glRotated');
  2085. @glRotatef := GetGLProcAddress(LibGL, 'glRotatef');
  2086. @glScaled := GetGLProcAddress(LibGL, 'glScaled');
  2087. @glScalef := GetGLProcAddress(LibGL, 'glScalef');
  2088. @glScissor := GetGLProcAddress(LibGL, 'glScissor');
  2089. @glSelectBuffer := GetGLProcAddress(LibGL, 'glSelectBuffer');
  2090. @glShadeModel := GetGLProcAddress(LibGL, 'glShadeModel');
  2091. @glStencilFunc := GetGLProcAddress(LibGL, 'glStencilFunc');
  2092. @glStencilMask := GetGLProcAddress(LibGL, 'glStencilMask');
  2093. @glStencilOp := GetGLProcAddress(LibGL, 'glStencilOp');
  2094. @glTexCoord1d := GetGLProcAddress(LibGL, 'glTexCoord1d');
  2095. @glTexCoord1dv := GetGLProcAddress(LibGL, 'glTexCoord1dv');
  2096. @glTexCoord1f := GetGLProcAddress(LibGL, 'glTexCoord1f');
  2097. @glTexCoord1fv := GetGLProcAddress(LibGL, 'glTexCoord1fv');
  2098. @glTexCoord1i := GetGLProcAddress(LibGL, 'glTexCoord1i');
  2099. @glTexCoord1iv := GetGLProcAddress(LibGL, 'glTexCoord1iv');
  2100. @glTexCoord1s := GetGLProcAddress(LibGL, 'glTexCoord1s');
  2101. @glTexCoord1sv := GetGLProcAddress(LibGL, 'glTexCoord1sv');
  2102. @glTexCoord2d := GetGLProcAddress(LibGL, 'glTexCoord2d');
  2103. @glTexCoord2dv := GetGLProcAddress(LibGL, 'glTexCoord2dv');
  2104. @glTexCoord2f := GetGLProcAddress(LibGL, 'glTexCoord2f');
  2105. @glTexCoord2fv := GetGLProcAddress(LibGL, 'glTexCoord2fv');
  2106. @glTexCoord2i := GetGLProcAddress(LibGL, 'glTexCoord2i');
  2107. @glTexCoord2iv := GetGLProcAddress(LibGL, 'glTexCoord2iv');
  2108. @glTexCoord2s := GetGLProcAddress(LibGL, 'glTexCoord2s');
  2109. @glTexCoord2sv := GetGLProcAddress(LibGL, 'glTexCoord2sv');
  2110. @glTexCoord3d := GetGLProcAddress(LibGL, 'glTexCoord3d');
  2111. @glTexCoord3dv := GetGLProcAddress(LibGL, 'glTexCoord3dv');
  2112. @glTexCoord3f := GetGLProcAddress(LibGL, 'glTexCoord3f');
  2113. @glTexCoord3fv := GetGLProcAddress(LibGL, 'glTexCoord3fv');
  2114. @glTexCoord3i := GetGLProcAddress(LibGL, 'glTexCoord3i');
  2115. @glTexCoord3iv := GetGLProcAddress(LibGL, 'glTexCoord3iv');
  2116. @glTexCoord3s := GetGLProcAddress(LibGL, 'glTexCoord3s');
  2117. @glTexCoord3sv := GetGLProcAddress(LibGL, 'glTexCoord3sv');
  2118. @glTexCoord4d := GetGLProcAddress(LibGL, 'glTexCoord4d');
  2119. @glTexCoord4dv := GetGLProcAddress(LibGL, 'glTexCoord4dv');
  2120. @glTexCoord4f := GetGLProcAddress(LibGL, 'glTexCoord4f');
  2121. @glTexCoord4fv := GetGLProcAddress(LibGL, 'glTexCoord4fv');
  2122. @glTexCoord4i := GetGLProcAddress(LibGL, 'glTexCoord4i');
  2123. @glTexCoord4iv := GetGLProcAddress(LibGL, 'glTexCoord4iv');
  2124. @glTexCoord4s := GetGLProcAddress(LibGL, 'glTexCoord4s');
  2125. @glTexCoord4sv := GetGLProcAddress(LibGL, 'glTexCoord4sv');
  2126. @glTexCoordPointer := GetGLProcAddress(LibGL, 'glTexCoordPointer');
  2127. @glTexEnvf := GetGLProcAddress(LibGL, 'glTexEnvf');
  2128. @glTexEnvfv := GetGLProcAddress(LibGL, 'glTexEnvfv');
  2129. @glTexEnvi := GetGLProcAddress(LibGL, 'glTexEnvi');
  2130. @glTexEnviv := GetGLProcAddress(LibGL, 'glTexEnviv');
  2131. @glTexGend := GetGLProcAddress(LibGL, 'glTexGend');
  2132. @glTexGendv := GetGLProcAddress(LibGL, 'glTexGendv');
  2133. @glTexGenf := GetGLProcAddress(LibGL, 'glTexGenf');
  2134. @glTexGenfv := GetGLProcAddress(LibGL, 'glTexGenfv');
  2135. @glTexGeni := GetGLProcAddress(LibGL, 'glTexGeni');
  2136. @glTexGeniv := GetGLProcAddress(LibGL, 'glTexGeniv');
  2137. @glTexImage1D := GetGLProcAddress(LibGL, 'glTexImage1D');
  2138. @glTexImage2D := GetGLProcAddress(LibGL, 'glTexImage2D');
  2139. @glTexParameterf := GetGLProcAddress(LibGL, 'glTexParameterf');
  2140. @glTexParameterfv := GetGLProcAddress(LibGL, 'glTexParameterfv');
  2141. @glTexParameteri := GetGLProcAddress(LibGL, 'glTexParameteri');
  2142. @glTexParameteriv := GetGLProcAddress(LibGL, 'glTexParameteriv');
  2143. @glTexSubImage1D := GetGLProcAddress(LibGL, 'glTexSubImage1D');
  2144. @glTexSubImage2D := GetGLProcAddress(LibGL, 'glTexSubImage2D');
  2145. @glTranslated := GetGLProcAddress(LibGL, 'glTranslated');
  2146. @glTranslatef := GetGLProcAddress(LibGL, 'glTranslatef');
  2147. @glVertex2d := GetGLProcAddress(LibGL, 'glVertex2d');
  2148. @glVertex2dv := GetGLProcAddress(LibGL, 'glVertex2dv');
  2149. @glVertex2f := GetGLProcAddress(LibGL, 'glVertex2f');
  2150. @glVertex2fv := GetGLProcAddress(LibGL, 'glVertex2fv');
  2151. @glVertex2i := GetGLProcAddress(LibGL, 'glVertex2i');
  2152. @glVertex2iv := GetGLProcAddress(LibGL, 'glVertex2iv');
  2153. @glVertex2s := GetGLProcAddress(LibGL, 'glVertex2s');
  2154. @glVertex2sv := GetGLProcAddress(LibGL, 'glVertex2sv');
  2155. @glVertex3d := GetGLProcAddress(LibGL, 'glVertex3d');
  2156. @glVertex3dv := GetGLProcAddress(LibGL, 'glVertex3dv');
  2157. @glVertex3f := GetGLProcAddress(LibGL, 'glVertex3f');
  2158. @glVertex3fv := GetGLProcAddress(LibGL, 'glVertex3fv');
  2159. @glVertex3i := GetGLProcAddress(LibGL, 'glVertex3i');
  2160. @glVertex3iv := GetGLProcAddress(LibGL, 'glVertex3iv');
  2161. @glVertex3s := GetGLProcAddress(LibGL, 'glVertex3s');
  2162. @glVertex3sv := GetGLProcAddress(LibGL, 'glVertex3sv');
  2163. @glVertex4d := GetGLProcAddress(LibGL, 'glVertex4d');
  2164. @glVertex4dv := GetGLProcAddress(LibGL, 'glVertex4dv');
  2165. @glVertex4f := GetGLProcAddress(LibGL, 'glVertex4f');
  2166. @glVertex4fv := GetGLProcAddress(LibGL, 'glVertex4fv');
  2167. @glVertex4i := GetGLProcAddress(LibGL, 'glVertex4i');
  2168. @glVertex4iv := GetGLProcAddress(LibGL, 'glVertex4iv');
  2169. @glVertex4s := GetGLProcAddress(LibGL, 'glVertex4s');
  2170. @glVertex4sv := GetGLProcAddress(LibGL, 'glVertex4sv');
  2171. @glVertexPointer := GetGLProcAddress(LibGL, 'glVertexPointer');
  2172. @glViewport := GetGLProcAddress(LibGL, 'glViewport');
  2173. except
  2174. raise Exception.Create('Failed loading ' + MethodName +' from ' + dll);
  2175. end;
  2176. {$IFDEF Windows}
  2177. try
  2178. @ChoosePixelFormat := GetGLProcAddress(LibGL, 'ChoosePixelFormat');
  2179. if not Assigned(ChoosePixelFormat) then
  2180. @ChoosePixelFormat := @WinChoosePixelFormat;
  2181. except
  2182. raise Exception.Create('Unable to select pixel format');
  2183. end;
  2184. {$ENDIF}
  2185. end;
  2186. {$ENDIF MORPHOS}
  2187. initialization
  2188. { according to bug 7570, this is necessary on all x86 platforms,
  2189. maybe we've to fix the sse control word as well }
  2190. {$ifdef x86}
  2191. Set8087CW($133F);
  2192. {$endif x86}
  2193. {$IFDEF Windows}
  2194. LoadOpenGL('opengl32.dll');
  2195. {$ELSE}
  2196. {$ifdef darwin}
  2197. LoadOpenGL('/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib');
  2198. {$ELSE}
  2199. {$IFDEF MorphOS}
  2200. InitTinyGLLibrary;
  2201. {$ELSE}
  2202. LoadOpenGL('libGL.so.1');
  2203. {$ENDIF}
  2204. {$endif}
  2205. {$ENDIF}
  2206. finalization
  2207. FreeOpenGL;
  2208. end.