CAPI_GLE_GL.h 279 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833
  1. /************************************************************************************
  2. Filename : CAPI_GLE_GL.h
  3. Content : GL extensions declarations.
  4. Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
  5. Licensed under the Oculus VR Rift SDK License Version 3.2 (the "License");
  6. you may not use the Oculus VR Rift SDK except in compliance with the License,
  7. which is provided at the time of installation or download, or which
  8. otherwise accompanies this software in either electronic or hard copy form.
  9. You may obtain a copy of the License at
  10. http://www.oculusvr.com/licenses/LICENSE-3.2
  11. Unless required by applicable law or agreed to in writing, the Oculus VR SDK
  12. distributed under the License is distributed on an "AS IS" BASIS,
  13. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. See the License for the specific language governing permissions and
  15. limitations under the License.
  16. ************************************************************************************/
  17. #ifndef OVR_CAPI_GLE_GL_h
  18. #define OVR_CAPI_GLE_GL_h
  19. #include <stddef.h>
  20. // Windows headers
  21. // <wingdi.h> Windows-specific OpenGL 1.1 interfaces. Long ago this was <GL/wgl.h>.
  22. // <GL/gl.h> OpenGL 1.1 interface.
  23. // <GL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces. Not provided by Microsoft.
  24. // <GL/wglext.h> Windows-specific extension interfaces. Not provided by Microsoft.
  25. // <GL/glcorearb.h> OpenGL core profile and ARB extension interfaces. Doesn't include interfaces found only in the compatibility profile. Overlaps with gl.h and glext.h.
  26. //
  27. // Mac headers
  28. // <OpenGL/gl.h> OpenGL 1.1 interface.
  29. // <OpenGL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces.
  30. // <OpenGL/gl3.h> Includes only interfaces supported in a core OpenGL 3.1 implementations plus a few related extensions.
  31. // <OpenGL/gl3ext.h> Includes extensions supported in a core OpenGL 3.1 implementation.
  32. // <OpenGL/OpenGL.h> Apple-specific OpenGL interfaces.
  33. // <OpenGL/NSOpenGL.h> Apple-specific OpenGL interfaces.
  34. //
  35. // Linux headers
  36. // <GL/gl.h> OpenGL 1.1 interface.
  37. // <GL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces.
  38. // <GL/glx.h> X Windows-specific OpenGL interfaces.
  39. // <GL/glxext.h> X Windows 1.3+ API and GLX extension interfaces.
  40. // <GL/glcorearb.h> OpenGL core profile and ARB extension interfaces. Doesn't include interfaces found only in the compatibility profile. Overlaps with gl.h and glext.h.
  41. #if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H)
  42. #error gl.h should be included after this, not before.
  43. #endif
  44. #if defined(__gl2_h_)
  45. #error gl2.h should be included after this, not before.
  46. #endif
  47. #if defined(__gltypes_h_)
  48. #error gltypes.h should be included after this, not before.
  49. #endif
  50. #if defined(__glext_h_) || defined(__GLEXT_H_)
  51. #error glext.h should be included after this, not before.
  52. #endif
  53. // Prevent other GL versions from being included in the future.
  54. // We do not disable Microsoft's wingdi.h and redeclare its functions. That's a big header that includes many other things.
  55. // We do not currently disable Apple's OpenGL/OpenGL.h, though we could if we replicated its declarations in this header file.
  56. #define __gl_h_ // Disable future #includes of Apple's <OpenGL/gl.h>
  57. #define __GL_H__ // Disable future #includes of Microsoft's <GL/gl.h>
  58. #define __X_GL_H // etc.
  59. #define __gl2_h_
  60. #define __gltypes_h_
  61. #define __glext_h_
  62. #define __GLEXT_H_
  63. // GLE platform identification
  64. #if defined(_WIN32)
  65. #define GLE_WGL_ENABLED 1 // WGL interface
  66. #elif defined(__ANDROID__)
  67. #define GLE_EGL_ENABLED 1 // EGL interface
  68. #elif defined(__IPHONE__)
  69. #define GLE_EAGL_ENABLED 1 // EAGL interface
  70. #elif defined(__APPLE__)
  71. #define GLE_CGL_ENABLED 1 // CGL interface
  72. #else
  73. #define GLE_GLX_ENABLED 1 // GLX interface
  74. #endif
  75. // GLAPI / GLAPIENTRY
  76. //
  77. // GLAPI is a wrapper for Microsoft __declspec(dllimport).
  78. // GLAPIENTRY is the calling convention (__stdcall under Microsoft).
  79. //
  80. #if defined(GLE_WGL_ENABLED)
  81. #include "Kernel/OVR_Win32_IncludeWindows.h"
  82. #ifndef WINGDIAPI // Normally defined via windows.h
  83. #define WINGDIAPI __declspec(dllimport)
  84. #define GLE_WINGDIAPI_DEFINED // We define this so that we can know to undefine WINGDIAPI at the end of this file.
  85. #endif
  86. #if !defined(GLAPI)
  87. #if defined(__MINGW32__) || defined(__CYGWIN__)
  88. #define GLAPI extern
  89. #else
  90. #define GLAPI WINGDIAPI
  91. #endif
  92. #endif
  93. #if !defined(GLAPIENTRY)
  94. #define GLAPIENTRY __stdcall
  95. #endif
  96. #else
  97. #include <stdint.h>
  98. #define GLAPI extern
  99. #define GLAPIENTRY /* empty */
  100. #endif
  101. // GLE_CLASS_EXPORT
  102. // Possibly maps to Microsoft __declspec(dllexport) or nothing on other platforms.
  103. #define GLE_CLASS_EXPORT // Currently defined to nothing. Could be defined to a dll export type.
  104. // GLE_HOOKING_ENABLED
  105. // When enabled, we intercept all OpenGL calls and do any useful internal processing before or after the call.
  106. // An example use case for this is to intercept OpenGL errors on platforms that don't support the OpenGL
  107. // debug functionality (e.g. KHR_Debug).
  108. #if !defined(GLE_WGL_ENABLED) && !defined(GLE_GLX_ENABLED) && defined(OVR_BUILD_DEBUG) // Windows and Unix don't need it because they have OpenGL debug extension support (e.g. KHR_Debug).
  109. #define GLE_HOOKING_ENABLED 1
  110. #endif
  111. // When using hooking, we map all OpenGL function usage to our member functions that end with _Hook.
  112. // These member hook functions will internally call the actual OpenGL functions after doing some internal processing.
  113. #if defined(GLE_HOOKING_ENABLED)
  114. #define GLEGetCurrentFunction(x) OVR::GLEContext::GetCurrentContext()->x##_Hook
  115. #define GLEGetCurrentVariable(x) OVR::GLEContext::GetCurrentContext()->x
  116. #else
  117. #define GLEGetCurrentFunction(x) OVR::GLEContext::GetCurrentContext()->x##_Impl
  118. #define GLEGetCurrentVariable(x) OVR::GLEContext::GetCurrentContext()->x
  119. #endif
  120. // GLE_CURRENT_FUNCTION
  121. // Used by hooking in debug builds.
  122. #if defined(OVR_BUILD_DEBUG)
  123. #define GLE_CURRENT_FUNCTION __FUNCTION__
  124. #else
  125. #define GLE_CURRENT_FUNCTION NULL
  126. #endif
  127. // GLE_WHOLE_VERSION
  128. // Returns the major+minor version of the current GLEContext.
  129. // Example usage:
  130. // if(GLE_WHOLE_VERSION() >= 302) // If OpenGL 3.2 or later...
  131. // ...
  132. #define GLE_WHOLE_VERSION() OVR::GLEContext::GetCurrentContext()->WholeVersion()
  133. #ifdef __cplusplus
  134. extern "C" {
  135. #endif
  136. // OpenGL 1.1 declarations are present in all versions of gl.h, including Microsoft's.
  137. // You don't need to dynamically link to these functions on any platform and can just assume
  138. // they are present. A number of these functions have been deprecated by OpenGL v3+, and
  139. // if an OpenGL v3+ core profile is enabled then usage of the deprecated functions is an error.
  140. #ifndef GL_VERSION_1_1
  141. #define GL_VERSION_1_1 1
  142. typedef unsigned int GLenum;
  143. typedef unsigned int GLbitfield;
  144. typedef unsigned int GLuint;
  145. typedef int GLint;
  146. typedef int GLsizei;
  147. typedef unsigned char GLboolean;
  148. typedef signed char GLbyte;
  149. typedef short GLshort;
  150. typedef unsigned char GLubyte;
  151. typedef unsigned short GLushort;
  152. typedef unsigned long GLulong;
  153. typedef float GLfloat;
  154. typedef float GLclampf;
  155. typedef double GLdouble;
  156. typedef double GLclampd;
  157. typedef void GLvoid;
  158. typedef int64_t GLint64EXT;
  159. typedef uint64_t GLuint64EXT;
  160. typedef GLint64EXT GLint64;
  161. typedef GLuint64EXT GLuint64;
  162. typedef struct __GLsync *GLsync;
  163. typedef char GLchar;
  164. #define GL_ZERO 0
  165. #define GL_FALSE 0
  166. #define GL_LOGIC_OP 0x0BF1
  167. #define GL_NONE 0
  168. #define GL_TEXTURE_COMPONENTS 0x1003
  169. #define GL_NO_ERROR 0
  170. #define GL_POINTS 0x0000
  171. #define GL_CURRENT_BIT 0x00000001
  172. #define GL_TRUE 1
  173. #define GL_ONE 1
  174. #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
  175. #define GL_LINES 0x0001
  176. #define GL_LINE_LOOP 0x0002
  177. #define GL_POINT_BIT 0x00000002
  178. #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
  179. #define GL_LINE_STRIP 0x0003
  180. #define GL_LINE_BIT 0x00000004
  181. #define GL_TRIANGLES 0x0004
  182. #define GL_TRIANGLE_STRIP 0x0005
  183. #define GL_TRIANGLE_FAN 0x0006
  184. #define GL_QUADS 0x0007
  185. #define GL_QUAD_STRIP 0x0008
  186. #define GL_POLYGON_BIT 0x00000008
  187. #define GL_POLYGON 0x0009
  188. #define GL_POLYGON_STIPPLE_BIT 0x00000010
  189. #define GL_PIXEL_MODE_BIT 0x00000020
  190. #define GL_LIGHTING_BIT 0x00000040
  191. #define GL_FOG_BIT 0x00000080
  192. #define GL_DEPTH_BUFFER_BIT 0x00000100
  193. #define GL_ACCUM 0x0100
  194. #define GL_LOAD 0x0101
  195. #define GL_RETURN 0x0102
  196. #define GL_MULT 0x0103
  197. #define GL_ADD 0x0104
  198. #define GL_NEVER 0x0200
  199. #define GL_ACCUM_BUFFER_BIT 0x00000200
  200. #define GL_LESS 0x0201
  201. #define GL_EQUAL 0x0202
  202. #define GL_LEQUAL 0x0203
  203. #define GL_GREATER 0x0204
  204. #define GL_NOTEQUAL 0x0205
  205. #define GL_GEQUAL 0x0206
  206. #define GL_ALWAYS 0x0207
  207. #define GL_SRC_COLOR 0x0300
  208. #define GL_ONE_MINUS_SRC_COLOR 0x0301
  209. #define GL_SRC_ALPHA 0x0302
  210. #define GL_ONE_MINUS_SRC_ALPHA 0x0303
  211. #define GL_DST_ALPHA 0x0304
  212. #define GL_ONE_MINUS_DST_ALPHA 0x0305
  213. #define GL_DST_COLOR 0x0306
  214. #define GL_ONE_MINUS_DST_COLOR 0x0307
  215. #define GL_SRC_ALPHA_SATURATE 0x0308
  216. #define GL_STENCIL_BUFFER_BIT 0x00000400
  217. #define GL_FRONT_LEFT 0x0400
  218. #define GL_FRONT_RIGHT 0x0401
  219. #define GL_BACK_LEFT 0x0402
  220. #define GL_BACK_RIGHT 0x0403
  221. #define GL_FRONT 0x0404
  222. #define GL_BACK 0x0405
  223. #define GL_LEFT 0x0406
  224. #define GL_RIGHT 0x0407
  225. #define GL_FRONT_AND_BACK 0x0408
  226. #define GL_AUX0 0x0409
  227. #define GL_AUX1 0x040A
  228. #define GL_AUX2 0x040B
  229. #define GL_AUX3 0x040C
  230. #define GL_INVALID_ENUM 0x0500
  231. #define GL_INVALID_VALUE 0x0501
  232. #define GL_INVALID_OPERATION 0x0502
  233. #define GL_STACK_OVERFLOW 0x0503
  234. #define GL_STACK_UNDERFLOW 0x0504
  235. #define GL_OUT_OF_MEMORY 0x0505
  236. #define GL_2D 0x0600
  237. #define GL_3D 0x0601
  238. #define GL_3D_COLOR 0x0602
  239. #define GL_3D_COLOR_TEXTURE 0x0603
  240. #define GL_4D_COLOR_TEXTURE 0x0604
  241. #define GL_PASS_THROUGH_TOKEN 0x0700
  242. #define GL_POINT_TOKEN 0x0701
  243. #define GL_LINE_TOKEN 0x0702
  244. #define GL_POLYGON_TOKEN 0x0703
  245. #define GL_BITMAP_TOKEN 0x0704
  246. #define GL_DRAW_PIXEL_TOKEN 0x0705
  247. #define GL_COPY_PIXEL_TOKEN 0x0706
  248. #define GL_LINE_RESET_TOKEN 0x0707
  249. #define GL_EXP 0x0800
  250. #define GL_VIEWPORT_BIT 0x00000800
  251. #define GL_EXP2 0x0801
  252. #define GL_CW 0x0900
  253. #define GL_CCW 0x0901
  254. #define GL_COEFF 0x0A00
  255. #define GL_ORDER 0x0A01
  256. #define GL_DOMAIN 0x0A02
  257. #define GL_CURRENT_COLOR 0x0B00
  258. #define GL_CURRENT_INDEX 0x0B01
  259. #define GL_CURRENT_NORMAL 0x0B02
  260. #define GL_CURRENT_TEXTURE_COORDS 0x0B03
  261. #define GL_CURRENT_RASTER_COLOR 0x0B04
  262. #define GL_CURRENT_RASTER_INDEX 0x0B05
  263. #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
  264. #define GL_CURRENT_RASTER_POSITION 0x0B07
  265. #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
  266. #define GL_CURRENT_RASTER_DISTANCE 0x0B09
  267. #define GL_POINT_SMOOTH 0x0B10
  268. #define GL_POINT_SIZE 0x0B11
  269. #define GL_POINT_SIZE_RANGE 0x0B12
  270. #define GL_POINT_SIZE_GRANULARITY 0x0B13
  271. #define GL_LINE_SMOOTH 0x0B20
  272. #define GL_LINE_WIDTH 0x0B21
  273. #define GL_LINE_WIDTH_RANGE 0x0B22
  274. #define GL_LINE_WIDTH_GRANULARITY 0x0B23
  275. #define GL_LINE_STIPPLE 0x0B24
  276. #define GL_LINE_STIPPLE_PATTERN 0x0B25
  277. #define GL_LINE_STIPPLE_REPEAT 0x0B26
  278. #define GL_LIST_MODE 0x0B30
  279. #define GL_MAX_LIST_NESTING 0x0B31
  280. #define GL_LIST_BASE 0x0B32
  281. #define GL_LIST_INDEX 0x0B33
  282. #define GL_POLYGON_MODE 0x0B40
  283. #define GL_POLYGON_SMOOTH 0x0B41
  284. #define GL_POLYGON_STIPPLE 0x0B42
  285. #define GL_EDGE_FLAG 0x0B43
  286. #define GL_CULL_FACE 0x0B44
  287. #define GL_CULL_FACE_MODE 0x0B45
  288. #define GL_FRONT_FACE 0x0B46
  289. #define GL_LIGHTING 0x0B50
  290. #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
  291. #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
  292. #define GL_LIGHT_MODEL_AMBIENT 0x0B53
  293. #define GL_SHADE_MODEL 0x0B54
  294. #define GL_COLOR_MATERIAL_FACE 0x0B55
  295. #define GL_COLOR_MATERIAL_PARAMETER 0x0B56
  296. #define GL_COLOR_MATERIAL 0x0B57
  297. #define GL_FOG 0x0B60
  298. #define GL_FOG_INDEX 0x0B61
  299. #define GL_FOG_DENSITY 0x0B62
  300. #define GL_FOG_START 0x0B63
  301. #define GL_FOG_END 0x0B64
  302. #define GL_FOG_MODE 0x0B65
  303. #define GL_FOG_COLOR 0x0B66
  304. #define GL_DEPTH_RANGE 0x0B70
  305. #define GL_DEPTH_TEST 0x0B71
  306. #define GL_DEPTH_WRITEMASK 0x0B72
  307. #define GL_DEPTH_CLEAR_VALUE 0x0B73
  308. #define GL_DEPTH_FUNC 0x0B74
  309. #define GL_ACCUM_CLEAR_VALUE 0x0B80
  310. #define GL_STENCIL_TEST 0x0B90
  311. #define GL_STENCIL_CLEAR_VALUE 0x0B91
  312. #define GL_STENCIL_FUNC 0x0B92
  313. #define GL_STENCIL_VALUE_MASK 0x0B93
  314. #define GL_STENCIL_FAIL 0x0B94
  315. #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
  316. #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
  317. #define GL_STENCIL_REF 0x0B97
  318. #define GL_STENCIL_WRITEMASK 0x0B98
  319. #define GL_MATRIX_MODE 0x0BA0
  320. #define GL_NORMALIZE 0x0BA1
  321. #define GL_VIEWPORT 0x0BA2
  322. #define GL_MODELVIEW_STACK_DEPTH 0x0BA3
  323. #define GL_PROJECTION_STACK_DEPTH 0x0BA4
  324. #define GL_TEXTURE_STACK_DEPTH 0x0BA5
  325. #define GL_MODELVIEW_MATRIX 0x0BA6
  326. #define GL_PROJECTION_MATRIX 0x0BA7
  327. #define GL_TEXTURE_MATRIX 0x0BA8
  328. #define GL_ATTRIB_STACK_DEPTH 0x0BB0
  329. #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
  330. #define GL_ALPHA_TEST 0x0BC0
  331. #define GL_ALPHA_TEST_FUNC 0x0BC1
  332. #define GL_ALPHA_TEST_REF 0x0BC2
  333. #define GL_DITHER 0x0BD0
  334. #define GL_BLEND_DST 0x0BE0
  335. #define GL_BLEND_SRC 0x0BE1
  336. #define GL_BLEND 0x0BE2
  337. #define GL_LOGIC_OP_MODE 0x0BF0
  338. #define GL_INDEX_LOGIC_OP 0x0BF1
  339. #define GL_COLOR_LOGIC_OP 0x0BF2
  340. #define GL_AUX_BUFFERS 0x0C00
  341. #define GL_DRAW_BUFFER 0x0C01
  342. #define GL_READ_BUFFER 0x0C02
  343. #define GL_SCISSOR_BOX 0x0C10
  344. #define GL_SCISSOR_TEST 0x0C11
  345. #define GL_INDEX_CLEAR_VALUE 0x0C20
  346. #define GL_INDEX_WRITEMASK 0x0C21
  347. #define GL_COLOR_CLEAR_VALUE 0x0C22
  348. #define GL_COLOR_WRITEMASK 0x0C23
  349. #define GL_INDEX_MODE 0x0C30
  350. #define GL_RGBA_MODE 0x0C31
  351. #define GL_DOUBLEBUFFER 0x0C32
  352. #define GL_STEREO 0x0C33
  353. #define GL_RENDER_MODE 0x0C40
  354. #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
  355. #define GL_POINT_SMOOTH_HINT 0x0C51
  356. #define GL_LINE_SMOOTH_HINT 0x0C52
  357. #define GL_POLYGON_SMOOTH_HINT 0x0C53
  358. #define GL_FOG_HINT 0x0C54
  359. #define GL_TEXTURE_GEN_S 0x0C60
  360. #define GL_TEXTURE_GEN_T 0x0C61
  361. #define GL_TEXTURE_GEN_R 0x0C62
  362. #define GL_TEXTURE_GEN_Q 0x0C63
  363. #define GL_PIXEL_MAP_I_TO_I 0x0C70
  364. #define GL_PIXEL_MAP_S_TO_S 0x0C71
  365. #define GL_PIXEL_MAP_I_TO_R 0x0C72
  366. #define GL_PIXEL_MAP_I_TO_G 0x0C73
  367. #define GL_PIXEL_MAP_I_TO_B 0x0C74
  368. #define GL_PIXEL_MAP_I_TO_A 0x0C75
  369. #define GL_PIXEL_MAP_R_TO_R 0x0C76
  370. #define GL_PIXEL_MAP_G_TO_G 0x0C77
  371. #define GL_PIXEL_MAP_B_TO_B 0x0C78
  372. #define GL_PIXEL_MAP_A_TO_A 0x0C79
  373. #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
  374. #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
  375. #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
  376. #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
  377. #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
  378. #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
  379. #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
  380. #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
  381. #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
  382. #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
  383. #define GL_UNPACK_SWAP_BYTES 0x0CF0
  384. #define GL_UNPACK_LSB_FIRST 0x0CF1
  385. #define GL_UNPACK_ROW_LENGTH 0x0CF2
  386. #define GL_UNPACK_SKIP_ROWS 0x0CF3
  387. #define GL_UNPACK_SKIP_PIXELS 0x0CF4
  388. #define GL_UNPACK_ALIGNMENT 0x0CF5
  389. #define GL_PACK_SWAP_BYTES 0x0D00
  390. #define GL_PACK_LSB_FIRST 0x0D01
  391. #define GL_PACK_ROW_LENGTH 0x0D02
  392. #define GL_PACK_SKIP_ROWS 0x0D03
  393. #define GL_PACK_SKIP_PIXELS 0x0D04
  394. #define GL_PACK_ALIGNMENT 0x0D05
  395. #define GL_MAP_COLOR 0x0D10
  396. #define GL_MAP_STENCIL 0x0D11
  397. #define GL_INDEX_SHIFT 0x0D12
  398. #define GL_INDEX_OFFSET 0x0D13
  399. #define GL_RED_SCALE 0x0D14
  400. #define GL_RED_BIAS 0x0D15
  401. #define GL_ZOOM_X 0x0D16
  402. #define GL_ZOOM_Y 0x0D17
  403. #define GL_GREEN_SCALE 0x0D18
  404. #define GL_GREEN_BIAS 0x0D19
  405. #define GL_BLUE_SCALE 0x0D1A
  406. #define GL_BLUE_BIAS 0x0D1B
  407. #define GL_ALPHA_SCALE 0x0D1C
  408. #define GL_ALPHA_BIAS 0x0D1D
  409. #define GL_DEPTH_SCALE 0x0D1E
  410. #define GL_DEPTH_BIAS 0x0D1F
  411. #define GL_MAX_EVAL_ORDER 0x0D30
  412. #define GL_MAX_LIGHTS 0x0D31
  413. #define GL_MAX_CLIP_PLANES 0x0D32
  414. #define GL_MAX_TEXTURE_SIZE 0x0D33
  415. #define GL_MAX_PIXEL_MAP_TABLE 0x0D34
  416. #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
  417. #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
  418. #define GL_MAX_NAME_STACK_DEPTH 0x0D37
  419. #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
  420. #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
  421. #define GL_MAX_VIEWPORT_DIMS 0x0D3A
  422. #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
  423. #define GL_SUBPIXEL_BITS 0x0D50
  424. #define GL_INDEX_BITS 0x0D51
  425. #define GL_RED_BITS 0x0D52
  426. #define GL_GREEN_BITS 0x0D53
  427. #define GL_BLUE_BITS 0x0D54
  428. #define GL_ALPHA_BITS 0x0D55
  429. #define GL_DEPTH_BITS 0x0D56
  430. #define GL_STENCIL_BITS 0x0D57
  431. #define GL_ACCUM_RED_BITS 0x0D58
  432. #define GL_ACCUM_GREEN_BITS 0x0D59
  433. #define GL_ACCUM_BLUE_BITS 0x0D5A
  434. #define GL_ACCUM_ALPHA_BITS 0x0D5B
  435. #define GL_NAME_STACK_DEPTH 0x0D70
  436. #define GL_AUTO_NORMAL 0x0D80
  437. #define GL_MAP1_COLOR_4 0x0D90
  438. #define GL_MAP1_INDEX 0x0D91
  439. #define GL_MAP1_NORMAL 0x0D92
  440. #define GL_MAP1_TEXTURE_COORD_1 0x0D93
  441. #define GL_MAP1_TEXTURE_COORD_2 0x0D94
  442. #define GL_MAP1_TEXTURE_COORD_3 0x0D95
  443. #define GL_MAP1_TEXTURE_COORD_4 0x0D96
  444. #define GL_MAP1_VERTEX_3 0x0D97
  445. #define GL_MAP1_VERTEX_4 0x0D98
  446. #define GL_MAP2_COLOR_4 0x0DB0
  447. #define GL_MAP2_INDEX 0x0DB1
  448. #define GL_MAP2_NORMAL 0x0DB2
  449. #define GL_MAP2_TEXTURE_COORD_1 0x0DB3
  450. #define GL_MAP2_TEXTURE_COORD_2 0x0DB4
  451. #define GL_MAP2_TEXTURE_COORD_3 0x0DB5
  452. #define GL_MAP2_TEXTURE_COORD_4 0x0DB6
  453. #define GL_MAP2_VERTEX_3 0x0DB7
  454. #define GL_MAP2_VERTEX_4 0x0DB8
  455. #define GL_MAP1_GRID_DOMAIN 0x0DD0
  456. #define GL_MAP1_GRID_SEGMENTS 0x0DD1
  457. #define GL_MAP2_GRID_DOMAIN 0x0DD2
  458. #define GL_MAP2_GRID_SEGMENTS 0x0DD3
  459. #define GL_TEXTURE_1D 0x0DE0
  460. #define GL_TEXTURE_2D 0x0DE1
  461. #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
  462. #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
  463. #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
  464. #define GL_SELECTION_BUFFER_POINTER 0x0DF3
  465. #define GL_SELECTION_BUFFER_SIZE 0x0DF4
  466. #define GL_TEXTURE_WIDTH 0x1000
  467. #define GL_TRANSFORM_BIT 0x00001000
  468. #define GL_TEXTURE_HEIGHT 0x1001
  469. #define GL_TEXTURE_INTERNAL_FORMAT 0x1003
  470. #define GL_TEXTURE_BORDER_COLOR 0x1004
  471. #define GL_TEXTURE_BORDER 0x1005
  472. #define GL_DONT_CARE 0x1100
  473. #define GL_FASTEST 0x1101
  474. #define GL_NICEST 0x1102
  475. #define GL_AMBIENT 0x1200
  476. #define GL_DIFFUSE 0x1201
  477. #define GL_SPECULAR 0x1202
  478. #define GL_POSITION 0x1203
  479. #define GL_SPOT_DIRECTION 0x1204
  480. #define GL_SPOT_EXPONENT 0x1205
  481. #define GL_SPOT_CUTOFF 0x1206
  482. #define GL_CONSTANT_ATTENUATION 0x1207
  483. #define GL_LINEAR_ATTENUATION 0x1208
  484. #define GL_QUADRATIC_ATTENUATION 0x1209
  485. #define GL_COMPILE 0x1300
  486. #define GL_COMPILE_AND_EXECUTE 0x1301
  487. #define GL_BYTE 0x1400
  488. #define GL_UNSIGNED_BYTE 0x1401
  489. #define GL_SHORT 0x1402
  490. #define GL_UNSIGNED_SHORT 0x1403
  491. #define GL_INT 0x1404
  492. #define GL_UNSIGNED_INT 0x1405
  493. #define GL_FLOAT 0x1406
  494. #define GL_2_BYTES 0x1407
  495. #define GL_3_BYTES 0x1408
  496. #define GL_4_BYTES 0x1409
  497. #define GL_DOUBLE 0x140A
  498. #define GL_CLEAR 0x1500
  499. #define GL_AND 0x1501
  500. #define GL_AND_REVERSE 0x1502
  501. #define GL_COPY 0x1503
  502. #define GL_AND_INVERTED 0x1504
  503. #define GL_NOOP 0x1505
  504. #define GL_XOR 0x1506
  505. #define GL_OR 0x1507
  506. #define GL_NOR 0x1508
  507. #define GL_EQUIV 0x1509
  508. #define GL_INVERT 0x150A
  509. #define GL_OR_REVERSE 0x150B
  510. #define GL_COPY_INVERTED 0x150C
  511. #define GL_OR_INVERTED 0x150D
  512. #define GL_NAND 0x150E
  513. #define GL_SET 0x150F
  514. #define GL_EMISSION 0x1600
  515. #define GL_SHININESS 0x1601
  516. #define GL_AMBIENT_AND_DIFFUSE 0x1602
  517. #define GL_COLOR_INDEXES 0x1603
  518. #define GL_MODELVIEW 0x1700
  519. #define GL_PROJECTION 0x1701
  520. #define GL_TEXTURE 0x1702
  521. #define GL_COLOR 0x1800
  522. #define GL_DEPTH 0x1801
  523. #define GL_STENCIL 0x1802
  524. #define GL_COLOR_INDEX 0x1900
  525. #define GL_STENCIL_INDEX 0x1901
  526. #define GL_DEPTH_COMPONENT 0x1902
  527. #define GL_RED 0x1903
  528. #define GL_GREEN 0x1904
  529. #define GL_BLUE 0x1905
  530. #define GL_ALPHA 0x1906
  531. #define GL_RGB 0x1907
  532. #define GL_RGBA 0x1908
  533. #define GL_LUMINANCE 0x1909
  534. #define GL_LUMINANCE_ALPHA 0x190A
  535. #define GL_BITMAP 0x1A00
  536. #define GL_POINT 0x1B00
  537. #define GL_LINE 0x1B01
  538. #define GL_FILL 0x1B02
  539. #define GL_RENDER 0x1C00
  540. #define GL_FEEDBACK 0x1C01
  541. #define GL_SELECT 0x1C02
  542. #define GL_FLAT 0x1D00
  543. #define GL_SMOOTH 0x1D01
  544. #define GL_KEEP 0x1E00
  545. #define GL_REPLACE 0x1E01
  546. #define GL_INCR 0x1E02
  547. #define GL_DECR 0x1E03
  548. #define GL_VENDOR 0x1F00
  549. #define GL_RENDERER 0x1F01
  550. #define GL_VERSION 0x1F02
  551. #define GL_EXTENSIONS 0x1F03
  552. #define GL_S 0x2000
  553. #define GL_ENABLE_BIT 0x00002000
  554. #define GL_T 0x2001
  555. #define GL_R 0x2002
  556. #define GL_Q 0x2003
  557. #define GL_MODULATE 0x2100
  558. #define GL_DECAL 0x2101
  559. #define GL_TEXTURE_ENV_MODE 0x2200
  560. #define GL_TEXTURE_ENV_COLOR 0x2201
  561. #define GL_TEXTURE_ENV 0x2300
  562. #define GL_EYE_LINEAR 0x2400
  563. #define GL_OBJECT_LINEAR 0x2401
  564. #define GL_SPHERE_MAP 0x2402
  565. #define GL_TEXTURE_GEN_MODE 0x2500
  566. #define GL_OBJECT_PLANE 0x2501
  567. #define GL_EYE_PLANE 0x2502
  568. #define GL_NEAREST 0x2600
  569. #define GL_LINEAR 0x2601
  570. #define GL_NEAREST_MIPMAP_NEAREST 0x2700
  571. #define GL_LINEAR_MIPMAP_NEAREST 0x2701
  572. #define GL_NEAREST_MIPMAP_LINEAR 0x2702
  573. #define GL_LINEAR_MIPMAP_LINEAR 0x2703
  574. #define GL_TEXTURE_MAG_FILTER 0x2800
  575. #define GL_TEXTURE_MIN_FILTER 0x2801
  576. #define GL_TEXTURE_WRAP_S 0x2802
  577. #define GL_TEXTURE_WRAP_T 0x2803
  578. #define GL_CLAMP 0x2900
  579. #define GL_REPEAT 0x2901
  580. #define GL_POLYGON_OFFSET_UNITS 0x2A00
  581. #define GL_POLYGON_OFFSET_POINT 0x2A01
  582. #define GL_POLYGON_OFFSET_LINE 0x2A02
  583. #define GL_R3_G3_B2 0x2A10
  584. #define GL_V2F 0x2A20
  585. #define GL_V3F 0x2A21
  586. #define GL_C4UB_V2F 0x2A22
  587. #define GL_C4UB_V3F 0x2A23
  588. #define GL_C3F_V3F 0x2A24
  589. #define GL_N3F_V3F 0x2A25
  590. #define GL_C4F_N3F_V3F 0x2A26
  591. #define GL_T2F_V3F 0x2A27
  592. #define GL_T4F_V4F 0x2A28
  593. #define GL_T2F_C4UB_V3F 0x2A29
  594. #define GL_T2F_C3F_V3F 0x2A2A
  595. #define GL_T2F_N3F_V3F 0x2A2B
  596. #define GL_T2F_C4F_N3F_V3F 0x2A2C
  597. #define GL_T4F_C4F_N3F_V4F 0x2A2D
  598. #define GL_CLIP_PLANE0 0x3000
  599. #define GL_CLIP_PLANE1 0x3001
  600. #define GL_CLIP_PLANE2 0x3002
  601. #define GL_CLIP_PLANE3 0x3003
  602. #define GL_CLIP_PLANE4 0x3004
  603. #define GL_CLIP_PLANE5 0x3005
  604. #define GL_LIGHT0 0x4000
  605. #define GL_COLOR_BUFFER_BIT 0x00004000
  606. #define GL_LIGHT1 0x4001
  607. #define GL_LIGHT2 0x4002
  608. #define GL_LIGHT3 0x4003
  609. #define GL_LIGHT4 0x4004
  610. #define GL_LIGHT5 0x4005
  611. #define GL_LIGHT6 0x4006
  612. #define GL_LIGHT7 0x4007
  613. #define GL_HINT_BIT 0x00008000
  614. #define GL_POLYGON_OFFSET_FILL 0x8037
  615. #define GL_POLYGON_OFFSET_FACTOR 0x8038
  616. #define GL_ALPHA4 0x803B
  617. #define GL_ALPHA8 0x803C
  618. #define GL_ALPHA12 0x803D
  619. #define GL_ALPHA16 0x803E
  620. #define GL_LUMINANCE4 0x803F
  621. #define GL_LUMINANCE8 0x8040
  622. #define GL_LUMINANCE12 0x8041
  623. #define GL_LUMINANCE16 0x8042
  624. #define GL_LUMINANCE4_ALPHA4 0x8043
  625. #define GL_LUMINANCE6_ALPHA2 0x8044
  626. #define GL_LUMINANCE8_ALPHA8 0x8045
  627. #define GL_LUMINANCE12_ALPHA4 0x8046
  628. #define GL_LUMINANCE12_ALPHA12 0x8047
  629. #define GL_LUMINANCE16_ALPHA16 0x8048
  630. #define GL_INTENSITY 0x8049
  631. #define GL_INTENSITY4 0x804A
  632. #define GL_INTENSITY8 0x804B
  633. #define GL_INTENSITY12 0x804C
  634. #define GL_INTENSITY16 0x804D
  635. #define GL_RGB4 0x804F
  636. #define GL_RGB5 0x8050
  637. #define GL_RGB8 0x8051
  638. #define GL_RGB10 0x8052
  639. #define GL_RGB12 0x8053
  640. #define GL_RGB16 0x8054
  641. #define GL_RGBA2 0x8055
  642. #define GL_RGBA4 0x8056
  643. #define GL_RGB5_A1 0x8057
  644. #define GL_RGBA8 0x8058
  645. #define GL_RGB10_A2 0x8059
  646. #define GL_RGBA12 0x805A
  647. #define GL_RGBA16 0x805B
  648. #define GL_TEXTURE_RED_SIZE 0x805C
  649. #define GL_TEXTURE_GREEN_SIZE 0x805D
  650. #define GL_TEXTURE_BLUE_SIZE 0x805E
  651. #define GL_TEXTURE_ALPHA_SIZE 0x805F
  652. #define GL_TEXTURE_LUMINANCE_SIZE 0x8060
  653. #define GL_TEXTURE_INTENSITY_SIZE 0x8061
  654. #define GL_PROXY_TEXTURE_1D 0x8063
  655. #define GL_PROXY_TEXTURE_2D 0x8064
  656. #define GL_TEXTURE_PRIORITY 0x8066
  657. #define GL_TEXTURE_RESIDENT 0x8067
  658. #define GL_TEXTURE_BINDING_1D 0x8068
  659. #define GL_TEXTURE_BINDING_2D 0x8069
  660. #define GL_VERTEX_ARRAY 0x8074
  661. #define GL_NORMAL_ARRAY 0x8075
  662. #define GL_COLOR_ARRAY 0x8076
  663. #define GL_INDEX_ARRAY 0x8077
  664. #define GL_TEXTURE_COORD_ARRAY 0x8078
  665. #define GL_EDGE_FLAG_ARRAY 0x8079
  666. #define GL_VERTEX_ARRAY_SIZE 0x807A
  667. #define GL_VERTEX_ARRAY_TYPE 0x807B
  668. #define GL_VERTEX_ARRAY_STRIDE 0x807C
  669. #define GL_NORMAL_ARRAY_TYPE 0x807E
  670. #define GL_NORMAL_ARRAY_STRIDE 0x807F
  671. #define GL_COLOR_ARRAY_SIZE 0x8081
  672. #define GL_COLOR_ARRAY_TYPE 0x8082
  673. #define GL_COLOR_ARRAY_STRIDE 0x8083
  674. #define GL_INDEX_ARRAY_TYPE 0x8085
  675. #define GL_INDEX_ARRAY_STRIDE 0x8086
  676. #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
  677. #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
  678. #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
  679. #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
  680. #define GL_VERTEX_ARRAY_POINTER 0x808E
  681. #define GL_NORMAL_ARRAY_POINTER 0x808F
  682. #define GL_COLOR_ARRAY_POINTER 0x8090
  683. #define GL_INDEX_ARRAY_POINTER 0x8091
  684. #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
  685. #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
  686. #define GL_COLOR_INDEX1_EXT 0x80E2
  687. #define GL_COLOR_INDEX2_EXT 0x80E3
  688. #define GL_COLOR_INDEX4_EXT 0x80E4
  689. #define GL_COLOR_INDEX8_EXT 0x80E5
  690. #define GL_COLOR_INDEX12_EXT 0x80E6
  691. #define GL_COLOR_INDEX16_EXT 0x80E7
  692. #define GL_EVAL_BIT 0x00010000
  693. #define GL_LIST_BIT 0x00020000
  694. #define GL_TEXTURE_BIT 0x00040000
  695. #define GL_SCISSOR_BIT 0x00080000
  696. #define GL_ALL_ATTRIB_BITS 0x000fffff
  697. #define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
  698. #if defined(GLE_HOOKING_ENABLED)
  699. // In this case we map these functions to internal versions instead of the standard versions.
  700. #define glAccum(...) GLEGetCurrentFunction(glAccum)(__VA_ARGS__)
  701. #define glAlphaFunc(...) GLEGetCurrentFunction(glAlphaFunc)(__VA_ARGS__)
  702. #define glAreTexturesResident(...) GLEGetCurrentFunction(glAreTexturesResident)(__VA_ARGS__)
  703. #define glArrayElement(...) GLEGetCurrentFunction(glArrayElement)(__VA_ARGS__)
  704. #define glBegin(...) GLEGetCurrentFunction(glBegin)(__VA_ARGS__)
  705. #define glBindTexture(...) GLEGetCurrentFunction(glBindTexture)(__VA_ARGS__)
  706. #define glBitmap(...) GLEGetCurrentFunction(glBitmap)(__VA_ARGS__)
  707. #define glBlendFunc(...) GLEGetCurrentFunction(glBlendFunc)(__VA_ARGS__)
  708. #define glCallList(...) GLEGetCurrentFunction(glCallList)(__VA_ARGS__)
  709. #define glCallLists(...) GLEGetCurrentFunction(glCallLists)(__VA_ARGS__)
  710. #define glClear(...) GLEGetCurrentFunction(glClear)(__VA_ARGS__)
  711. #define glClearAccum(...) GLEGetCurrentFunction(glClearAccum)(__VA_ARGS__)
  712. #define glClearColor(...) GLEGetCurrentFunction(glClearColor)(__VA_ARGS__)
  713. #define glClearDepth(...) GLEGetCurrentFunction(glClearDepth)(__VA_ARGS__)
  714. #define glClearIndex(...) GLEGetCurrentFunction(glClearIndex)(__VA_ARGS__)
  715. #define glClearStencil(...) GLEGetCurrentFunction(glClearStencil)(__VA_ARGS__)
  716. #define glClipPlane(...) GLEGetCurrentFunction(glClipPlane)(__VA_ARGS__)
  717. #define glColor3b(...) GLEGetCurrentFunction(glColor3b)(__VA_ARGS__)
  718. #define glColor3bv(...) GLEGetCurrentFunction(glColor3bv)(__VA_ARGS__)
  719. #define glColor3d(...) GLEGetCurrentFunction(glColor3d)(__VA_ARGS__)
  720. #define glColor3dv(...) GLEGetCurrentFunction(glColor3dv)(__VA_ARGS__)
  721. #define glColor3f(...) GLEGetCurrentFunction(glColor3f)(__VA_ARGS__)
  722. #define glColor3fv(...) GLEGetCurrentFunction(glColor3fv)(__VA_ARGS__)
  723. #define glColor3i(...) GLEGetCurrentFunction(glColor3i)(__VA_ARGS__)
  724. #define glColor3iv(...) GLEGetCurrentFunction(glColor3iv)(__VA_ARGS__)
  725. #define glColor3s(...) GLEGetCurrentFunction(glColor3s)(__VA_ARGS__)
  726. #define glColor3sv(...) GLEGetCurrentFunction(glColor3sv)(__VA_ARGS__)
  727. #define glColor3ub(...) GLEGetCurrentFunction(glColor3ub)(__VA_ARGS__)
  728. #define glColor3ubv(...) GLEGetCurrentFunction(glColor3ubv)(__VA_ARGS__)
  729. #define glColor3ui(...) GLEGetCurrentFunction(glColor3ui)(__VA_ARGS__)
  730. #define glColor3uiv(...) GLEGetCurrentFunction(glColor3uiv)(__VA_ARGS__)
  731. #define glColor3us(...) GLEGetCurrentFunction(glColor3us)(__VA_ARGS__)
  732. #define glColor3usv(...) GLEGetCurrentFunction(glColor3usv)(__VA_ARGS__)
  733. #define glColor4b(...) GLEGetCurrentFunction(glColor4b)(__VA_ARGS__)
  734. #define glColor4bv(...) GLEGetCurrentFunction(glColor4bv)(__VA_ARGS__)
  735. #define glColor4d(...) GLEGetCurrentFunction(glColor4d)(__VA_ARGS__)
  736. #define glColor4dv(...) GLEGetCurrentFunction(glColor4dv)(__VA_ARGS__)
  737. #define glColor4f(...) GLEGetCurrentFunction(glColor4f)(__VA_ARGS__)
  738. #define glColor4fv(...) GLEGetCurrentFunction(glColor4fv)(__VA_ARGS__)
  739. #define glColor4i(...) GLEGetCurrentFunction(glColor4i)(__VA_ARGS__)
  740. #define glColor4iv(...) GLEGetCurrentFunction(glColor4iv)(__VA_ARGS__)
  741. #define glColor4s(...) GLEGetCurrentFunction(glColor4s)(__VA_ARGS__)
  742. #define glColor4sv(...) GLEGetCurrentFunction(glColor4sv)(__VA_ARGS__)
  743. #define glColor4ub(...) GLEGetCurrentFunction(glColor4ub)(__VA_ARGS__)
  744. #define glColor4ubv(...) GLEGetCurrentFunction(glColor4ubv)(__VA_ARGS__)
  745. #define glColor4ui(...) GLEGetCurrentFunction(glColor4ui)(__VA_ARGS__)
  746. #define glColor4uiv(...) GLEGetCurrentFunction(glColor4uiv)(__VA_ARGS__)
  747. #define glColor4us(...) GLEGetCurrentFunction(glColor4us)(__VA_ARGS__)
  748. #define glColor4usv(...) GLEGetCurrentFunction(glColor4usv)(__VA_ARGS__)
  749. #define glColorMask(...) GLEGetCurrentFunction(glColorMask)(__VA_ARGS__)
  750. #define glColorMaterial(...) GLEGetCurrentFunction(glColorMaterial)(__VA_ARGS__)
  751. #define glColorPointer(...) GLEGetCurrentFunction(glColorPointer)(__VA_ARGS__)
  752. #define glCopyPixels(...) GLEGetCurrentFunction(glCopyPixels)(__VA_ARGS__)
  753. #define glCopyTexImage1D(...) GLEGetCurrentFunction(glCopyTexImage1D)(__VA_ARGS__)
  754. #define glCopyTexImage2D(...) GLEGetCurrentFunction(glCopyTexImage2D)(__VA_ARGS__)
  755. #define glCopyTexSubImage1D(...) GLEGetCurrentFunction(glCopyTexSubImage1D)(__VA_ARGS__)
  756. #define glCopyTexSubImage2D(...) GLEGetCurrentFunction(glCopyTexSubImage2D)(__VA_ARGS__)
  757. #define glCullFace(...) GLEGetCurrentFunction(glCullFace)(__VA_ARGS__)
  758. #define glDeleteLists(...) GLEGetCurrentFunction(glDeleteLists)(__VA_ARGS__)
  759. #define glDeleteTextures(...) GLEGetCurrentFunction(glDeleteTextures)(__VA_ARGS__)
  760. #define glDepthFunc(...) GLEGetCurrentFunction(glDepthFunc)(__VA_ARGS__)
  761. #define glDepthMask(...) GLEGetCurrentFunction(glDepthMask)(__VA_ARGS__)
  762. #define glDepthRange(...) GLEGetCurrentFunction(glDepthRange)(__VA_ARGS__)
  763. #define glDisable(...) GLEGetCurrentFunction(glDisable)(__VA_ARGS__)
  764. #define glDisableClientState(...) GLEGetCurrentFunction(glDisableClientState)(__VA_ARGS__)
  765. #define glDrawArrays(...) GLEGetCurrentFunction(glDrawArrays)(__VA_ARGS__)
  766. #define glDrawBuffer(...) GLEGetCurrentFunction(glDrawBuffer)(__VA_ARGS__)
  767. #define glDrawElements(...) GLEGetCurrentFunction(glDrawElements)(__VA_ARGS__)
  768. #define glDrawPixels(...) GLEGetCurrentFunction(glDrawPixels)(__VA_ARGS__)
  769. #define glEdgeFlag(...) GLEGetCurrentFunction(glEdgeFlag)(__VA_ARGS__)
  770. #define glEdgeFlagPointer(...) GLEGetCurrentFunction(glEdgeFlagPointer)(__VA_ARGS__)
  771. #define glEdgeFlagv(...) GLEGetCurrentFunction(glEdgeFlagv)(__VA_ARGS__)
  772. #define glEnable(...) GLEGetCurrentFunction(glEnable)(__VA_ARGS__)
  773. #define glEnableClientState(...) GLEGetCurrentFunction(glEnableClientState)(__VA_ARGS__)
  774. #define glEnd() GLEGetCurrentFunction(glEnd)()
  775. #define glEndList() GLEGetCurrentFunction(glEndList)(_)
  776. #define glEvalCoord1d(...) GLEGetCurrentFunction(glEvalCoord1d)(__VA_ARGS__)
  777. #define glEvalCoord1dv(...) GLEGetCurrentFunction(glEvalCoord1dv)(__VA_ARGS__)
  778. #define glEvalCoord1f(...) GLEGetCurrentFunction(glEvalCoord1f)(__VA_ARGS__)
  779. #define glEvalCoord1fv(...) GLEGetCurrentFunction(glEvalCoord1fv)(__VA_ARGS__)
  780. #define glEvalCoord2d(...) GLEGetCurrentFunction(glEvalCoord2d)(__VA_ARGS__)
  781. #define glEvalCoord2dv(...) GLEGetCurrentFunction(glEvalCoord2dv)(__VA_ARGS__)
  782. #define glEvalCoord2f(...) GLEGetCurrentFunction(glEvalCoord2f)(__VA_ARGS__)
  783. #define glEvalCoord2fv(...) GLEGetCurrentFunction(glEvalCoord2fv)(__VA_ARGS__)
  784. #define glEvalMesh1(...) GLEGetCurrentFunction(glEvalMesh1)(__VA_ARGS__)
  785. #define glEvalMesh2(...) GLEGetCurrentFunction(glEvalMesh2)(__VA_ARGS__)
  786. #define glEvalPoint1(...) GLEGetCurrentFunction(glEvalPoint1)(__VA_ARGS__)
  787. #define glEvalPoint2(...) GLEGetCurrentFunction(glEvalPoint2)(__VA_ARGS__)
  788. #define glFeedbackBuffer(...) GLEGetCurrentFunction(glFeedbackBuffer)(__VA_ARGS__)
  789. #define glFinish() GLEGetCurrentFunction(glFinish)()
  790. #define glFlush() GLEGetCurrentFunction(glFlush)()
  791. #define glFogf(...) GLEGetCurrentFunction(glFogf)(__VA_ARGS__)
  792. #define glFogfv(...) GLEGetCurrentFunction(glFogfv)(__VA_ARGS__)
  793. #define glFogi(...) GLEGetCurrentFunction(glFogi)(__VA_ARGS__)
  794. #define glFogiv(...) GLEGetCurrentFunction(glFogiv)(__VA_ARGS__)
  795. #define glFrontFace(...) GLEGetCurrentFunction(glFrontFace)(__VA_ARGS__)
  796. #define glFrustum(...) GLEGetCurrentFunction(glFrustum)(__VA_ARGS__)
  797. #define glGenLists(...) GLEGetCurrentFunction(glGenLists)(__VA_ARGS__)
  798. #define glGenTextures(...) GLEGetCurrentFunction(glGenTextures)(__VA_ARGS__)
  799. #define glGetBooleanv(...) GLEGetCurrentFunction(glGetBooleanv)(__VA_ARGS__)
  800. #define glGetClipPlane(...) GLEGetCurrentFunction(glGetClipPlane)(__VA_ARGS__)
  801. #define glGetDoublev(...) GLEGetCurrentFunction(glGetDoublev)(__VA_ARGS__)
  802. #define glGetError() GLEGetCurrentFunction(glGetError)()
  803. #define glGetFloatv(...) GLEGetCurrentFunction(glGetFloatv)(__VA_ARGS__)
  804. #define glGetIntegerv(...) GLEGetCurrentFunction(glGetIntegerv)(__VA_ARGS__)
  805. #define glGetLightfv(...) GLEGetCurrentFunction(glGetLightfv)(__VA_ARGS__)
  806. #define glGetLightiv(...) GLEGetCurrentFunction(glGetLightiv)(__VA_ARGS__)
  807. #define glGetMapdv(...) GLEGetCurrentFunction(glGetMapdv)(__VA_ARGS__)
  808. #define glGetMapfv(...) GLEGetCurrentFunction(glGetMapfv)(__VA_ARGS__)
  809. #define glGetMapiv(...) GLEGetCurrentFunction(glGetMapiv)(__VA_ARGS__)
  810. #define glGetMaterialfv(...) GLEGetCurrentFunction(glGetMaterialfv)(__VA_ARGS__)
  811. #define glGetMaterialiv(...) GLEGetCurrentFunction(glGetMaterialiv)(__VA_ARGS__)
  812. #define glGetPixelMapfv(...) GLEGetCurrentFunction(glGetPixelMapfv)(__VA_ARGS__)
  813. #define glGetPixelMapuiv(...) GLEGetCurrentFunction(glGetPixelMapuiv)(__VA_ARGS__)
  814. #define glGetPixelMapusv(...) GLEGetCurrentFunction(glGetPixelMapusv)(__VA_ARGS__)
  815. #define glGetPointerv(...) GLEGetCurrentFunction(glGetPointerv)(__VA_ARGS__)
  816. #define glGetPolygonStipple(...) GLEGetCurrentFunction(glGetPolygonStipple)(__VA_ARGS__)
  817. #define glGetString(...) GLEGetCurrentFunction(glGetString)(__VA_ARGS__)
  818. #define glGetTexEnvfv(...) GLEGetCurrentFunction(glGetTexEnvfv)(__VA_ARGS__)
  819. #define glGetTexEnviv(...) GLEGetCurrentFunction(glGetTexEnviv)(__VA_ARGS__)
  820. #define glGetTexGendv(...) GLEGetCurrentFunction(glGetTexGendv)(__VA_ARGS__)
  821. #define glGetTexGenfv(...) GLEGetCurrentFunction(glGetTexGenfv)(__VA_ARGS__)
  822. #define glGetTexGeniv(...) GLEGetCurrentFunction(glGetTexGeniv)(__VA_ARGS__)
  823. #define glGetTexImage(...) GLEGetCurrentFunction(glGetTexImage)(__VA_ARGS__)
  824. #define glGetTexLevelParameterfv(...) GLEGetCurrentFunction(glGetTexLevelParameterfv)(__VA_ARGS__)
  825. #define glGetTexLevelParameteriv(...) GLEGetCurrentFunction(glGetTexLevelParameteriv)(__VA_ARGS__)
  826. #define glGetTexParameterfv(...) GLEGetCurrentFunction(glGetTexParameterfv)(__VA_ARGS__)
  827. #define glGetTexParameteriv(...) GLEGetCurrentFunction(glGetTexParameteriv)(__VA_ARGS__)
  828. #define glHint(...) GLEGetCurrentFunction(glHint)(__VA_ARGS__)
  829. #define glIndexMask(...) GLEGetCurrentFunction(glIndexMask)(__VA_ARGS__)
  830. #define glIndexPointer(...) GLEGetCurrentFunction(glIndexPointer)(__VA_ARGS__)
  831. #define glIndexd(...) GLEGetCurrentFunction(glIndexd)(__VA_ARGS__)
  832. #define glIndexdv(...) GLEGetCurrentFunction(glIndexdv)(__VA_ARGS__)
  833. #define glIndexf(...) GLEGetCurrentFunction(glIndexf)(__VA_ARGS__)
  834. #define glIndexfv(...) GLEGetCurrentFunction(glIndexfv)(__VA_ARGS__)
  835. #define glIndexi(...) GLEGetCurrentFunction(glIndexi)(__VA_ARGS__)
  836. #define glIndexiv(...) GLEGetCurrentFunction(glIndexiv)(__VA_ARGS__)
  837. #define glIndexs(...) GLEGetCurrentFunction(glIndexs)(__VA_ARGS__)
  838. #define glIndexsv(...) GLEGetCurrentFunction(glIndexsv)(__VA_ARGS__)
  839. #define glIndexub(...) GLEGetCurrentFunction(glIndexub)(__VA_ARGS__)
  840. #define glIndexubv(...) GLEGetCurrentFunction(glIndexubv)(__VA_ARGS__)
  841. #define glInitNames() GLEGetCurrentFunction(glInitNames)()
  842. #define glInterleavedArrays(...) GLEGetCurrentFunction(glInterleavedArrays)(__VA_ARGS__)
  843. #define glIsEnabled(...) GLEGetCurrentFunction(glIsEnabled)(__VA_ARGS__)
  844. #define glIsList(...) GLEGetCurrentFunction(glIsList)(__VA_ARGS__)
  845. #define glIsTexture(...) GLEGetCurrentFunction(glIsTexture)(__VA_ARGS__)
  846. #define glLightModelf(...) GLEGetCurrentFunction(glLightModelf)(__VA_ARGS__)
  847. #define glLightModelfv(...) GLEGetCurrentFunction(glLightModelfv)(__VA_ARGS__)
  848. #define glLightModeli(...) GLEGetCurrentFunction(glLightModeli)(__VA_ARGS__)
  849. #define glLightModeliv(...) GLEGetCurrentFunction(glLightModeliv)(__VA_ARGS__)
  850. #define glLightf(...) GLEGetCurrentFunction(glLightf)(__VA_ARGS__)
  851. #define glLightfv(...) GLEGetCurrentFunction(glLightfv)(__VA_ARGS__)
  852. #define glLighti(...) GLEGetCurrentFunction(glLighti)(__VA_ARGS__)
  853. #define glLightiv(...) GLEGetCurrentFunction(glLightiv)(__VA_ARGS__)
  854. #define glLineStipple(...) GLEGetCurrentFunction(glLineStipple)(__VA_ARGS__)
  855. #define glLineWidth(...) GLEGetCurrentFunction(glLineWidth)(__VA_ARGS__)
  856. #define glListBase(...) GLEGetCurrentFunction(glListBase)(__VA_ARGS__)
  857. #define glLoadIdentity() GLEGetCurrentFunction(glLoadIdentity)()
  858. #define glLoadMatrixd(...) GLEGetCurrentFunction(glLoadMatrixd)(__VA_ARGS__)
  859. #define glLoadMatrixf(...) GLEGetCurrentFunction(glLoadMatrixf)(__VA_ARGS__)
  860. #define glLoadName(...) GLEGetCurrentFunction(glLoadName)(__VA_ARGS__)
  861. #define glLogicOp(...) GLEGetCurrentFunction(glLogicOp)(__VA_ARGS__)
  862. #define glMap1d(...) GLEGetCurrentFunction(glMap1d)(__VA_ARGS__)
  863. #define glMap1f(...) GLEGetCurrentFunction(glMap1f)(__VA_ARGS__)
  864. #define glMap2d(...) GLEGetCurrentFunction(glMap2d)(__VA_ARGS__)
  865. #define glMap2f(...) GLEGetCurrentFunction(glMap2f)(__VA_ARGS__)
  866. #define glMapGrid1d(...) GLEGetCurrentFunction(glMapGrid1d)(__VA_ARGS__)
  867. #define glMapGrid1f(...) GLEGetCurrentFunction(glMapGrid1f)(__VA_ARGS__)
  868. #define glMapGrid2d(...) GLEGetCurrentFunction(glMapGrid2d)(__VA_ARGS__)
  869. #define glMapGrid2f(...) GLEGetCurrentFunction(glMapGrid2f)(__VA_ARGS__)
  870. #define glMaterialf(...) GLEGetCurrentFunction(glMaterialf)(__VA_ARGS__)
  871. #define glMaterialfv(...) GLEGetCurrentFunction(glMaterialfv)(__VA_ARGS__)
  872. #define glMateriali(...) GLEGetCurrentFunction(glMateriali)(__VA_ARGS__)
  873. #define glMaterialiv(...) GLEGetCurrentFunction(glMaterialiv)(__VA_ARGS__)
  874. #define glMatrixMode(...) GLEGetCurrentFunction(glMatrixMode)(__VA_ARGS__)
  875. #define glMultMatrixd(...) GLEGetCurrentFunction(glMultMatrixd)(__VA_ARGS__)
  876. #define glMultMatrixf(...) GLEGetCurrentFunction(glMultMatrixf)(__VA_ARGS__)
  877. #define glNewList(...) GLEGetCurrentFunction(glNewList)(__VA_ARGS__)
  878. #define glNormal3b(...) GLEGetCurrentFunction(glNormal3b)(__VA_ARGS__)
  879. #define glNormal3bv(...) GLEGetCurrentFunction(glNormal3bv)(__VA_ARGS__)
  880. #define glNormal3d(...) GLEGetCurrentFunction(glNormal3d)(__VA_ARGS__)
  881. #define glNormal3dv(...) GLEGetCurrentFunction(glNormal3dv)(__VA_ARGS__)
  882. #define glNormal3f(...) GLEGetCurrentFunction(glNormal3f)(__VA_ARGS__)
  883. #define glNormal3fv(...) GLEGetCurrentFunction(glNormal3fv)(__VA_ARGS__)
  884. #define glNormal3i(...) GLEGetCurrentFunction(glNormal3i)(__VA_ARGS__)
  885. #define glNormal3iv(...) GLEGetCurrentFunction(glNormal3iv)(__VA_ARGS__)
  886. #define glNormal3s(...) GLEGetCurrentFunction(glNormal3s)(__VA_ARGS__)
  887. #define glNormal3sv(...) GLEGetCurrentFunction(glNormal3sv)(__VA_ARGS__)
  888. #define glNormalPointer(...) GLEGetCurrentFunction(glNormalPointer)(__VA_ARGS__)
  889. #define glOrtho(...) GLEGetCurrentFunction(glOrtho)(__VA_ARGS__)
  890. #define glPassThrough(...) GLEGetCurrentFunction(glPassThrough)(__VA_ARGS__)
  891. #define glPixelMapfv(...) GLEGetCurrentFunction(glPixelMapfv)(__VA_ARGS__)
  892. #define glPixelMapuiv(...) GLEGetCurrentFunction(glPixelMapuiv)(__VA_ARGS__)
  893. #define glPixelMapusv(...) GLEGetCurrentFunction(glPixelMapusv)(__VA_ARGS__)
  894. #define glPixelStoref(...) GLEGetCurrentFunction(glPixelStoref)(__VA_ARGS__)
  895. #define glPixelStorei(...) GLEGetCurrentFunction(glPixelStorei)(__VA_ARGS__)
  896. #define glPixelTransferf(...) GLEGetCurrentFunction(glPixelTransferf)(__VA_ARGS__)
  897. #define glPixelTransferi(...) GLEGetCurrentFunction(glPixelTransferi)(__VA_ARGS__)
  898. #define glPixelZoom(...) GLEGetCurrentFunction(glPixelZoom)(__VA_ARGS__)
  899. #define glPointSize(...) GLEGetCurrentFunction(glPointSize)(__VA_ARGS__)
  900. #define glPolygonMode(...) GLEGetCurrentFunction(glPolygonMode)(__VA_ARGS__)
  901. #define glPolygonOffset(...) GLEGetCurrentFunction(glPolygonOffset)(__VA_ARGS__)
  902. #define glPolygonStipple(...) GLEGetCurrentFunction(glPolygonStipple)(__VA_ARGS__)
  903. #define glPopAttrib() GLEGetCurrentFunction(glPopAttrib)()
  904. #define glPopClientAttrib() GLEGetCurrentFunction(glPopClientAttrib)()
  905. #define glPopMatrix() GLEGetCurrentFunction(glPopMatrix)()
  906. #define glPopName() GLEGetCurrentFunction(glPopName)()
  907. #define glPrioritizeTextures(...) GLEGetCurrentFunction(glPrioritizeTextures)(__VA_ARGS__)
  908. #define glPushAttrib(...) GLEGetCurrentFunction(glPushAttrib)(__VA_ARGS__)
  909. #define glPushClientAttrib(...) GLEGetCurrentFunction(glPushClientAttrib)(__VA_ARGS__)
  910. #define glPushMatrix() GLEGetCurrentFunction(glPushMatrix)()
  911. #define glPushName(...) GLEGetCurrentFunction(glPushName)(__VA_ARGS__)
  912. #define glRasterPos2d(...) GLEGetCurrentFunction(glRasterPos2d)(__VA_ARGS__)
  913. #define glRasterPos2dv(...) GLEGetCurrentFunction(glRasterPos2dv)(__VA_ARGS__)
  914. #define glRasterPos2f(...) GLEGetCurrentFunction(glRasterPos2f)(__VA_ARGS__)
  915. #define glRasterPos2fv(...) GLEGetCurrentFunction(glRasterPos2fv)(__VA_ARGS__)
  916. #define glRasterPos2i(...) GLEGetCurrentFunction(glRasterPos2i)(__VA_ARGS__)
  917. #define glRasterPos2iv(...) GLEGetCurrentFunction(glRasterPos2iv)(__VA_ARGS__)
  918. #define glRasterPos2s(...) GLEGetCurrentFunction(glRasterPos2s)(__VA_ARGS__)
  919. #define glRasterPos2sv(...) GLEGetCurrentFunction(glRasterPos2sv)(__VA_ARGS__)
  920. #define glRasterPos3d(...) GLEGetCurrentFunction(glRasterPos3d)(__VA_ARGS__)
  921. #define glRasterPos3dv(...) GLEGetCurrentFunction(glRasterPos3dv)(__VA_ARGS__)
  922. #define glRasterPos3f(...) GLEGetCurrentFunction(glRasterPos3f)(__VA_ARGS__)
  923. #define glRasterPos3fv(...) GLEGetCurrentFunction(glRasterPos3fv)(__VA_ARGS__)
  924. #define glRasterPos3i(...) GLEGetCurrentFunction(glRasterPos3i)(__VA_ARGS__)
  925. #define glRasterPos3iv(...) GLEGetCurrentFunction(glRasterPos3iv)(__VA_ARGS__)
  926. #define glRasterPos3s(...) GLEGetCurrentFunction(glRasterPos3s)(__VA_ARGS__)
  927. #define glRasterPos3sv(...) GLEGetCurrentFunction(glRasterPos3sv)(__VA_ARGS__)
  928. #define glRasterPos4d(...) GLEGetCurrentFunction(glRasterPos4d)(__VA_ARGS__)
  929. #define glRasterPos4dv(...) GLEGetCurrentFunction(glRasterPos4dv)(__VA_ARGS__)
  930. #define glRasterPos4f(...) GLEGetCurrentFunction(glRasterPos4f)(__VA_ARGS__)
  931. #define glRasterPos4fv(...) GLEGetCurrentFunction(glRasterPos4fv)(__VA_ARGS__)
  932. #define glRasterPos4i(...) GLEGetCurrentFunction(glRasterPos4i)(__VA_ARGS__)
  933. #define glRasterPos4iv(...) GLEGetCurrentFunction(glRasterPos4iv)(__VA_ARGS__)
  934. #define glRasterPos4s(...) GLEGetCurrentFunction(glRasterPos4s)(__VA_ARGS__)
  935. #define glRasterPos4sv(...) GLEGetCurrentFunction(glRasterPos4sv)(__VA_ARGS__)
  936. #define glReadBuffer(...) GLEGetCurrentFunction(glReadBuffer)(__VA_ARGS__)
  937. #define glReadPixels(...) GLEGetCurrentFunction(glReadPixels)(__VA_ARGS__)
  938. #define glRectd(...) GLEGetCurrentFunction(glRectd)(__VA_ARGS__)
  939. #define glRectdv(...) GLEGetCurrentFunction(glRectdv)(__VA_ARGS__)
  940. #define glRectf(...) GLEGetCurrentFunction(glRectf)(__VA_ARGS__)
  941. #define glRectfv(...) GLEGetCurrentFunction(glRectfv)(__VA_ARGS__)
  942. #define glRecti(...) GLEGetCurrentFunction(glRecti)(__VA_ARGS__)
  943. #define glRectiv(...) GLEGetCurrentFunction(glRectiv)(__VA_ARGS__)
  944. #define glRects(...) GLEGetCurrentFunction(glRects)(__VA_ARGS__)
  945. #define glRectsv(...) GLEGetCurrentFunction(glRectsv)(__VA_ARGS__)
  946. #define glRenderMode(...) GLEGetCurrentFunction(glRenderMode)(__VA_ARGS__)
  947. #define glRotated(...) GLEGetCurrentFunction(glRotated)(__VA_ARGS__)
  948. #define glRotatef(...) GLEGetCurrentFunction(glRotatef)(__VA_ARGS__)
  949. #define glScaled(...) GLEGetCurrentFunction(glScaled)(__VA_ARGS__)
  950. #define glScalef(...) GLEGetCurrentFunction(glScalef)(__VA_ARGS__)
  951. #define glScissor(...) GLEGetCurrentFunction(glScissor)(__VA_ARGS__)
  952. #define glSelectBuffer(...) GLEGetCurrentFunction(glSelectBuffer)(__VA_ARGS__)
  953. #define glShadeModel(...) GLEGetCurrentFunction(glShadeModel)(__VA_ARGS__)
  954. #define glStencilFunc(...) GLEGetCurrentFunction(glStencilFunc)(__VA_ARGS__)
  955. #define glStencilMask(...) GLEGetCurrentFunction(glStencilMask)(__VA_ARGS__)
  956. #define glStencilOp(...) GLEGetCurrentFunction(glStencilOp)(__VA_ARGS__)
  957. #define glTexCoord1d(...) GLEGetCurrentFunction(glTexCoord1d)(__VA_ARGS__)
  958. #define glTexCoord1dv(...) GLEGetCurrentFunction(glTexCoord1dv)(__VA_ARGS__)
  959. #define glTexCoord1f(...) GLEGetCurrentFunction(glTexCoord1f)(__VA_ARGS__)
  960. #define glTexCoord1fv(...) GLEGetCurrentFunction(glTexCoord1fv)(__VA_ARGS__)
  961. #define glTexCoord1i(...) GLEGetCurrentFunction(glTexCoord1i)(__VA_ARGS__)
  962. #define glTexCoord1iv(...) GLEGetCurrentFunction(glTexCoord1iv)(__VA_ARGS__)
  963. #define glTexCoord1s(...) GLEGetCurrentFunction(glTexCoord1s)(__VA_ARGS__)
  964. #define glTexCoord1sv(...) GLEGetCurrentFunction(glTexCoord1sv)(__VA_ARGS__)
  965. #define glTexCoord2d(...) GLEGetCurrentFunction(glTexCoord2d)(__VA_ARGS__)
  966. #define glTexCoord2dv(...) GLEGetCurrentFunction(glTexCoord2dv)(__VA_ARGS__)
  967. #define glTexCoord2f(...) GLEGetCurrentFunction(glTexCoord2f)(__VA_ARGS__)
  968. #define glTexCoord2fv(...) GLEGetCurrentFunction(glTexCoord2fv)(__VA_ARGS__)
  969. #define glTexCoord2i(...) GLEGetCurrentFunction(glTexCoord2i)(__VA_ARGS__)
  970. #define glTexCoord2iv(...) GLEGetCurrentFunction(glTexCoord2iv)(__VA_ARGS__)
  971. #define glTexCoord2s(...) GLEGetCurrentFunction(glTexCoord2s)(__VA_ARGS__)
  972. #define glTexCoord2sv(...) GLEGetCurrentFunction(glTexCoord2sv)(__VA_ARGS__)
  973. #define glTexCoord3d(...) GLEGetCurrentFunction(glTexCoord3d)(__VA_ARGS__)
  974. #define glTexCoord3dv(...) GLEGetCurrentFunction(glTexCoord3dv)(__VA_ARGS__)
  975. #define glTexCoord3f(...) GLEGetCurrentFunction(glTexCoord3f)(__VA_ARGS__)
  976. #define glTexCoord3fv(...) GLEGetCurrentFunction(glTexCoord3fv)(__VA_ARGS__)
  977. #define glTexCoord3i(...) GLEGetCurrentFunction(glTexCoord3i)(__VA_ARGS__)
  978. #define glTexCoord3iv(...) GLEGetCurrentFunction(glTexCoord3iv)(__VA_ARGS__)
  979. #define glTexCoord3s(...) GLEGetCurrentFunction(glTexCoord3s)(__VA_ARGS__)
  980. #define glTexCoord3sv(...) GLEGetCurrentFunction(glTexCoord3sv)(__VA_ARGS__)
  981. #define glTexCoord4d(...) GLEGetCurrentFunction(glTexCoord4d)(__VA_ARGS__)
  982. #define glTexCoord4dv(...) GLEGetCurrentFunction(glTexCoord4dv)(__VA_ARGS__)
  983. #define glTexCoord4f(...) GLEGetCurrentFunction(glTexCoord4f)(__VA_ARGS__)
  984. #define glTexCoord4fv(...) GLEGetCurrentFunction(glTexCoord4fv)(__VA_ARGS__)
  985. #define glTexCoord4i(...) GLEGetCurrentFunction(glTexCoord4i)(__VA_ARGS__)
  986. #define glTexCoord4iv(...) GLEGetCurrentFunction(glTexCoord4iv)(__VA_ARGS__)
  987. #define glTexCoord4s(...) GLEGetCurrentFunction(glTexCoord4s)(__VA_ARGS__)
  988. #define glTexCoord4sv(...) GLEGetCurrentFunction(glTexCoord4sv)(__VA_ARGS__)
  989. #define glTexCoordPointer(...) GLEGetCurrentFunction(glTexCoordPointer)(__VA_ARGS__)
  990. #define glTexEnvf(...) GLEGetCurrentFunction(glTexEnvf)(__VA_ARGS__)
  991. #define glTexEnvfv(...) GLEGetCurrentFunction(glTexEnvfv)(__VA_ARGS__)
  992. #define glTexEnvi(...) GLEGetCurrentFunction(glTexEnvi)(__VA_ARGS__)
  993. #define glTexEnviv(...) GLEGetCurrentFunction(glTexEnviv)(__VA_ARGS__)
  994. #define glTexGend(...) GLEGetCurrentFunction(glTexGend)(__VA_ARGS__)
  995. #define glTexGendv(...) GLEGetCurrentFunction(glTexGendv)(__VA_ARGS__)
  996. #define glTexGenf(...) GLEGetCurrentFunction(glTexGenf)(__VA_ARGS__)
  997. #define glTexGenfv(...) GLEGetCurrentFunction(glTexGenfv)(__VA_ARGS__)
  998. #define glTexGeni(...) GLEGetCurrentFunction(glTexGeni)(__VA_ARGS__)
  999. #define glTexGeniv(...) GLEGetCurrentFunction(glTexGeniv)(__VA_ARGS__)
  1000. #define glTexImage1D(...) GLEGetCurrentFunction(glTexImage1D)(__VA_ARGS__)
  1001. #define glTexImage2D(...) GLEGetCurrentFunction(glTexImage2D)(__VA_ARGS__)
  1002. #define glTexParameterf(...) GLEGetCurrentFunction(glTexParameterf)(__VA_ARGS__)
  1003. #define glTexParameterfv(...) GLEGetCurrentFunction(glTexParameterfv)(__VA_ARGS__)
  1004. #define glTexParameteri(...) GLEGetCurrentFunction(glTexParameteri)(__VA_ARGS__)
  1005. #define glTexParameteriv(...) GLEGetCurrentFunction(glTexParameteriv)(__VA_ARGS__)
  1006. #define glTexSubImage1D(...) GLEGetCurrentFunction(glTexSubImage1D)(__VA_ARGS__)
  1007. #define glTexSubImage2D(...) GLEGetCurrentFunction(glTexSubImage2D)(__VA_ARGS__)
  1008. #define glTranslated(...) GLEGetCurrentFunction(glTranslated)(__VA_ARGS__)
  1009. #define glTranslatef(...) GLEGetCurrentFunction(glTranslatef)(__VA_ARGS__)
  1010. #define glVertex2d(...) GLEGetCurrentFunction(glVertex2d)(__VA_ARGS__)
  1011. #define glVertex2dv(...) GLEGetCurrentFunction(glVertex2dv)(__VA_ARGS__)
  1012. #define glVertex2f(...) GLEGetCurrentFunction(glVertex2f)(__VA_ARGS__)
  1013. #define glVertex2fv(...) GLEGetCurrentFunction(glVertex2fv)(__VA_ARGS__)
  1014. #define glVertex2i(...) GLEGetCurrentFunction(glVertex2i)(__VA_ARGS__)
  1015. #define glVertex2iv(...) GLEGetCurrentFunction(glVertex2iv)(__VA_ARGS__)
  1016. #define glVertex2s(...) GLEGetCurrentFunction(glVertex2s)(__VA_ARGS__)
  1017. #define glVertex2sv(...) GLEGetCurrentFunction(glVertex2sv)(__VA_ARGS__)
  1018. #define glVertex3d(...) GLEGetCurrentFunction(glVertex3d)(__VA_ARGS__)
  1019. #define glVertex3dv(...) GLEGetCurrentFunction(glVertex3dv)(__VA_ARGS__)
  1020. #define glVertex3f(...) GLEGetCurrentFunction(glVertex3f)(__VA_ARGS__)
  1021. #define glVertex3fv(...) GLEGetCurrentFunction(glVertex3fv)(__VA_ARGS__)
  1022. #define glVertex3i(...) GLEGetCurrentFunction(glVertex3i)(__VA_ARGS__)
  1023. #define glVertex3iv(...) GLEGetCurrentFunction(glVertex3iv)(__VA_ARGS__)
  1024. #define glVertex3s(...) GLEGetCurrentFunction(glVertex3s)(__VA_ARGS__)
  1025. #define glVertex3sv(...) GLEGetCurrentFunction(glVertex3sv)(__VA_ARGS__)
  1026. #define glVertex4d(...) GLEGetCurrentFunction(glVertex4d)(__VA_ARGS__)
  1027. #define glVertex4dv(...) GLEGetCurrentFunction(glVertex4dv)(__VA_ARGS__)
  1028. #define glVertex4f(...) GLEGetCurrentFunction(glVertex4f)(__VA_ARGS__)
  1029. #define glVertex4fv(...) GLEGetCurrentFunction(glVertex4fv)(__VA_ARGS__)
  1030. #define glVertex4i(...) GLEGetCurrentFunction(glVertex4i)(__VA_ARGS__)
  1031. #define glVertex4iv(...) GLEGetCurrentFunction(glVertex4iv)(__VA_ARGS__)
  1032. #define glVertex4s(...) GLEGetCurrentFunction(glVertex4s)(__VA_ARGS__)
  1033. #define glVertex4sv(...) GLEGetCurrentFunction(glVertex4sv)(__VA_ARGS__)
  1034. #define glVertexPointer(...) GLEGetCurrentFunction(glVertexPointer)(__VA_ARGS__)
  1035. #define glViewport(...) GLEGetCurrentFunction(glViewport)(__VA_ARGS__)
  1036. #else
  1037. // There is no need to typedef OpenGL 1.1 function types because they are present in all
  1038. // OpenGL implementations and don't need to be treated dynamically like extensions.
  1039. GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
  1040. GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
  1041. GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
  1042. GLAPI void GLAPIENTRY glArrayElement (GLint i);
  1043. GLAPI void GLAPIENTRY glBegin (GLenum mode);
  1044. GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
  1045. GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
  1046. GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
  1047. GLAPI void GLAPIENTRY glCallList (GLuint list);
  1048. GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
  1049. GLAPI void GLAPIENTRY glClear (GLbitfield mask);
  1050. GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  1051. GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  1052. GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
  1053. GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
  1054. GLAPI void GLAPIENTRY glClearStencil (GLint s);
  1055. GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
  1056. GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
  1057. GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
  1058. GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
  1059. GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
  1060. GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
  1061. GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
  1062. GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
  1063. GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
  1064. GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
  1065. GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
  1066. GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
  1067. GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
  1068. GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
  1069. GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
  1070. GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
  1071. GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
  1072. GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
  1073. GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
  1074. GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
  1075. GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
  1076. GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  1077. GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
  1078. GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
  1079. GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
  1080. GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
  1081. GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
  1082. GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
  1083. GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
  1084. GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
  1085. GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
  1086. GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
  1087. GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
  1088. GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
  1089. GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
  1090. GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
  1091. GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
  1092. GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
  1093. GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
  1094. GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
  1095. GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  1096. GLAPI void GLAPIENTRY glCullFace (GLenum mode);
  1097. GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
  1098. GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
  1099. GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
  1100. GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
  1101. GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
  1102. GLAPI void GLAPIENTRY glDisable (GLenum cap);
  1103. GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
  1104. GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
  1105. GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
  1106. GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
  1107. GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
  1108. GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
  1109. GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
  1110. GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
  1111. GLAPI void GLAPIENTRY glEnable (GLenum cap);
  1112. GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
  1113. GLAPI void GLAPIENTRY glEnd (void);
  1114. GLAPI void GLAPIENTRY glEndList (void);
  1115. GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
  1116. GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
  1117. GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
  1118. GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
  1119. GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
  1120. GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
  1121. GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
  1122. GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
  1123. GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
  1124. GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
  1125. GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
  1126. GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
  1127. GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
  1128. GLAPI void GLAPIENTRY glFinish (void);
  1129. GLAPI void GLAPIENTRY glFlush (void);
  1130. GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
  1131. GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
  1132. GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
  1133. GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
  1134. GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
  1135. GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  1136. GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
  1137. GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
  1138. GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
  1139. GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
  1140. GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
  1141. GLAPI GLenum GLAPIENTRY glGetError (void);
  1142. GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
  1143. GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
  1144. GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
  1145. GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
  1146. GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
  1147. GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
  1148. GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
  1149. GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
  1150. GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
  1151. GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
  1152. GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
  1153. GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
  1154. GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
  1155. GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
  1156. GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
  1157. GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
  1158. GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
  1159. GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
  1160. GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
  1161. GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
  1162. GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
  1163. GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
  1164. GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
  1165. GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
  1166. GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
  1167. GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
  1168. GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
  1169. GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
  1170. GLAPI void GLAPIENTRY glIndexd (GLdouble c);
  1171. GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
  1172. GLAPI void GLAPIENTRY glIndexf (GLfloat c);
  1173. GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
  1174. GLAPI void GLAPIENTRY glIndexi (GLint c);
  1175. GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
  1176. GLAPI void GLAPIENTRY glIndexs (GLshort c);
  1177. GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
  1178. GLAPI void GLAPIENTRY glIndexub (GLubyte c);
  1179. GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
  1180. GLAPI void GLAPIENTRY glInitNames (void);
  1181. GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
  1182. GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
  1183. GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
  1184. GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
  1185. GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
  1186. GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
  1187. GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
  1188. GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
  1189. GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
  1190. GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
  1191. GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
  1192. GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
  1193. GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
  1194. GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
  1195. GLAPI void GLAPIENTRY glListBase (GLuint base);
  1196. GLAPI void GLAPIENTRY glLoadIdentity (void);
  1197. GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
  1198. GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
  1199. GLAPI void GLAPIENTRY glLoadName (GLuint name);
  1200. GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
  1201. GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
  1202. GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
  1203. GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
  1204. GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
  1205. GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
  1206. GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
  1207. GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
  1208. GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
  1209. GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
  1210. GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
  1211. GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
  1212. GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
  1213. GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
  1214. GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
  1215. GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
  1216. GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
  1217. GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
  1218. GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
  1219. GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
  1220. GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
  1221. GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
  1222. GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
  1223. GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
  1224. GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
  1225. GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
  1226. GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
  1227. GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
  1228. GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  1229. GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
  1230. GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
  1231. GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
  1232. GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
  1233. GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
  1234. GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
  1235. GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
  1236. GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
  1237. GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
  1238. GLAPI void GLAPIENTRY glPointSize (GLfloat size);
  1239. GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
  1240. GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
  1241. GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
  1242. GLAPI void GLAPIENTRY glPopAttrib (void);
  1243. GLAPI void GLAPIENTRY glPopClientAttrib (void);
  1244. GLAPI void GLAPIENTRY glPopMatrix (void);
  1245. GLAPI void GLAPIENTRY glPopName (void);
  1246. GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
  1247. GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
  1248. GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
  1249. GLAPI void GLAPIENTRY glPushMatrix (void);
  1250. GLAPI void GLAPIENTRY glPushName (GLuint name);
  1251. GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
  1252. GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
  1253. GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
  1254. GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
  1255. GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
  1256. GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
  1257. GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
  1258. GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
  1259. GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
  1260. GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
  1261. GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
  1262. GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
  1263. GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
  1264. GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
  1265. GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
  1266. GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
  1267. GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  1268. GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
  1269. GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  1270. GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
  1271. GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
  1272. GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
  1273. GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
  1274. GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
  1275. GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
  1276. GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
  1277. GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
  1278. GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
  1279. GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
  1280. GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
  1281. GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
  1282. GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
  1283. GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
  1284. GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
  1285. GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
  1286. GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
  1287. GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
  1288. GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
  1289. GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
  1290. GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
  1291. GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
  1292. GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
  1293. GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
  1294. GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
  1295. GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
  1296. GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
  1297. GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
  1298. GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
  1299. GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
  1300. GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
  1301. GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
  1302. GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
  1303. GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
  1304. GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
  1305. GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
  1306. GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
  1307. GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
  1308. GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
  1309. GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
  1310. GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
  1311. GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
  1312. GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
  1313. GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
  1314. GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
  1315. GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
  1316. GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
  1317. GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
  1318. GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
  1319. GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
  1320. GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
  1321. GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
  1322. GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
  1323. GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
  1324. GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
  1325. GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
  1326. GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
  1327. GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
  1328. GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
  1329. GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
  1330. GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
  1331. GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
  1332. GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
  1333. GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
  1334. GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
  1335. GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
  1336. GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
  1337. GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
  1338. GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
  1339. GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
  1340. GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
  1341. GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
  1342. GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
  1343. GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
  1344. GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
  1345. GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
  1346. GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
  1347. GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
  1348. GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
  1349. GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
  1350. GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
  1351. GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
  1352. GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
  1353. GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
  1354. GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
  1355. GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
  1356. GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
  1357. GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
  1358. GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
  1359. GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
  1360. GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
  1361. GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
  1362. GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
  1363. GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
  1364. GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
  1365. GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  1366. GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
  1367. GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  1368. GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
  1369. GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
  1370. GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
  1371. GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
  1372. GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
  1373. GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
  1374. GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
  1375. #endif // GLE_HOOKING_ENABLED
  1376. #endif // GL_VERSION_1_1
  1377. // OpenGL 1.2+ functions are not declared in Microsoft's gl.h
  1378. #ifndef GL_VERSION_1_2
  1379. #define GL_VERSION_1_2 1
  1380. #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
  1381. #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
  1382. #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
  1383. #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
  1384. #define GL_UNSIGNED_BYTE_3_3_2 0x8032
  1385. #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
  1386. #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
  1387. #define GL_UNSIGNED_INT_8_8_8_8 0x8035
  1388. #define GL_UNSIGNED_INT_10_10_10_2 0x8036
  1389. #define GL_RESCALE_NORMAL 0x803A
  1390. #define GL_TEXTURE_BINDING_3D 0x806A
  1391. #define GL_PACK_SKIP_IMAGES 0x806B
  1392. #define GL_PACK_IMAGE_HEIGHT 0x806C
  1393. #define GL_UNPACK_SKIP_IMAGES 0x806D
  1394. #define GL_UNPACK_IMAGE_HEIGHT 0x806E
  1395. #define GL_TEXTURE_3D 0x806F
  1396. #define GL_PROXY_TEXTURE_3D 0x8070
  1397. #define GL_TEXTURE_DEPTH 0x8071
  1398. #define GL_TEXTURE_WRAP_R 0x8072
  1399. #define GL_MAX_3D_TEXTURE_SIZE 0x8073
  1400. #define GL_BGR 0x80E0
  1401. #define GL_BGRA 0x80E1
  1402. #define GL_MAX_ELEMENTS_VERTICES 0x80E8
  1403. #define GL_MAX_ELEMENTS_INDICES 0x80E9
  1404. #define GL_CLAMP_TO_EDGE 0x812F
  1405. #define GL_TEXTURE_MIN_LOD 0x813A
  1406. #define GL_TEXTURE_MAX_LOD 0x813B
  1407. #define GL_TEXTURE_BASE_LEVEL 0x813C
  1408. #define GL_TEXTURE_MAX_LEVEL 0x813D
  1409. #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
  1410. #define GL_SINGLE_COLOR 0x81F9
  1411. #define GL_SEPARATE_SPECULAR_COLOR 0x81FA
  1412. #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
  1413. #define GL_UNSIGNED_SHORT_5_6_5 0x8363
  1414. #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
  1415. #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
  1416. #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
  1417. #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
  1418. #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
  1419. #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
  1420. typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  1421. typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
  1422. typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
  1423. typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
  1424. #define glCopyTexSubImage3D GLEGetCurrentFunction(glCopyTexSubImage3D)
  1425. #define glDrawRangeElements GLEGetCurrentFunction(glDrawRangeElements)
  1426. #define glTexImage3D GLEGetCurrentFunction(glTexImage3D)
  1427. #define glTexSubImage3D GLEGetCurrentFunction(glTexSubImage3D)
  1428. // OpenGL 2.1 deprecated functions
  1429. /*
  1430. typedef void (GLAPIENTRY PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  1431. typedef void (GLAPIENTRY PFNGLBLENDEQUATIONPROC) (GLenum mode);
  1432. typedef void (GLAPIENTRY PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
  1433. typedef void (GLAPIENTRY PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
  1434. typedef void (GLAPIENTRY PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
  1435. typedef void (GLAPIENTRY PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
  1436. typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
  1437. typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
  1438. typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
  1439. typedef void (GLAPIENTRY PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
  1440. typedef void (GLAPIENTRY PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
  1441. typedef void (GLAPIENTRY PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
  1442. typedef void (GLAPIENTRY PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
  1443. typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
  1444. typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
  1445. typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
  1446. typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
  1447. typedef void (GLAPIENTRY PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
  1448. typedef void (GLAPIENTRY PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
  1449. typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
  1450. typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
  1451. typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
  1452. typedef void (GLAPIENTRY PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
  1453. typedef void (GLAPIENTRY PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
  1454. typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
  1455. typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
  1456. typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
  1457. typedef void (GLAPIENTRY PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
  1458. typedef void (GLAPIENTRY PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
  1459. typedef void (GLAPIENTRY PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
  1460. typedef void (GLAPIENTRY PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
  1461. typedef void (GLAPIENTRY PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
  1462. typedef void (GLAPIENTRY PFNGLRESETHISTOGRAMPROC) (GLenum target);
  1463. typedef void (GLAPIENTRY PFNGLRESETMINMAXPROC) (GLenum target);
  1464. */
  1465. #endif // GL_VERSION_1_2
  1466. #ifndef GL_VERSION_1_3
  1467. #define GL_VERSION_1_3 1
  1468. #define GL_MULTISAMPLE 0x809D
  1469. #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
  1470. #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
  1471. #define GL_SAMPLE_COVERAGE 0x80A0
  1472. #define GL_SAMPLE_BUFFERS 0x80A8
  1473. #define GL_SAMPLES 0x80A9
  1474. #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
  1475. #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
  1476. #define GL_CLAMP_TO_BORDER 0x812D
  1477. #define GL_TEXTURE0 0x84C0
  1478. #define GL_TEXTURE1 0x84C1
  1479. #define GL_TEXTURE2 0x84C2
  1480. #define GL_TEXTURE3 0x84C3
  1481. #define GL_TEXTURE4 0x84C4
  1482. #define GL_TEXTURE5 0x84C5
  1483. #define GL_TEXTURE6 0x84C6
  1484. #define GL_TEXTURE7 0x84C7
  1485. #define GL_TEXTURE8 0x84C8
  1486. #define GL_TEXTURE9 0x84C9
  1487. #define GL_TEXTURE10 0x84CA
  1488. #define GL_TEXTURE11 0x84CB
  1489. #define GL_TEXTURE12 0x84CC
  1490. #define GL_TEXTURE13 0x84CD
  1491. #define GL_TEXTURE14 0x84CE
  1492. #define GL_TEXTURE15 0x84CF
  1493. #define GL_TEXTURE16 0x84D0
  1494. #define GL_TEXTURE17 0x84D1
  1495. #define GL_TEXTURE18 0x84D2
  1496. #define GL_TEXTURE19 0x84D3
  1497. #define GL_TEXTURE20 0x84D4
  1498. #define GL_TEXTURE21 0x84D5
  1499. #define GL_TEXTURE22 0x84D6
  1500. #define GL_TEXTURE23 0x84D7
  1501. #define GL_TEXTURE24 0x84D8
  1502. #define GL_TEXTURE25 0x84D9
  1503. #define GL_TEXTURE26 0x84DA
  1504. #define GL_TEXTURE27 0x84DB
  1505. #define GL_TEXTURE28 0x84DC
  1506. #define GL_TEXTURE29 0x84DD
  1507. #define GL_TEXTURE30 0x84DE
  1508. #define GL_TEXTURE31 0x84DF
  1509. #define GL_ACTIVE_TEXTURE 0x84E0
  1510. #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
  1511. #define GL_MAX_TEXTURE_UNITS 0x84E2
  1512. #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
  1513. #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
  1514. #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
  1515. #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
  1516. #define GL_SUBTRACT 0x84E7
  1517. #define GL_COMPRESSED_ALPHA 0x84E9
  1518. #define GL_COMPRESSED_LUMINANCE 0x84EA
  1519. #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
  1520. #define GL_COMPRESSED_INTENSITY 0x84EC
  1521. #define GL_COMPRESSED_RGB 0x84ED
  1522. #define GL_COMPRESSED_RGBA 0x84EE
  1523. #define GL_TEXTURE_COMPRESSION_HINT 0x84EF
  1524. #define GL_NORMAL_MAP 0x8511
  1525. #define GL_REFLECTION_MAP 0x8512
  1526. #define GL_TEXTURE_CUBE_MAP 0x8513
  1527. #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
  1528. #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
  1529. #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
  1530. #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
  1531. #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
  1532. #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
  1533. #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
  1534. #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
  1535. #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
  1536. #define GL_COMBINE 0x8570
  1537. #define GL_COMBINE_RGB 0x8571
  1538. #define GL_COMBINE_ALPHA 0x8572
  1539. #define GL_RGB_SCALE 0x8573
  1540. #define GL_ADD_SIGNED 0x8574
  1541. #define GL_INTERPOLATE 0x8575
  1542. #define GL_CONSTANT 0x8576
  1543. #define GL_PRIMARY_COLOR 0x8577
  1544. #define GL_PREVIOUS 0x8578
  1545. #define GL_SOURCE0_RGB 0x8580
  1546. #define GL_SOURCE1_RGB 0x8581
  1547. #define GL_SOURCE2_RGB 0x8582
  1548. #define GL_SOURCE0_ALPHA 0x8588
  1549. #define GL_SOURCE1_ALPHA 0x8589
  1550. #define GL_SOURCE2_ALPHA 0x858A
  1551. #define GL_OPERAND0_RGB 0x8590
  1552. #define GL_OPERAND1_RGB 0x8591
  1553. #define GL_OPERAND2_RGB 0x8592
  1554. #define GL_OPERAND0_ALPHA 0x8598
  1555. #define GL_OPERAND1_ALPHA 0x8599
  1556. #define GL_OPERAND2_ALPHA 0x859A
  1557. #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
  1558. #define GL_TEXTURE_COMPRESSED 0x86A1
  1559. #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
  1560. #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
  1561. #define GL_DOT3_RGB 0x86AE
  1562. #define GL_DOT3_RGBA 0x86AF
  1563. #define GL_MULTISAMPLE_BIT 0x20000000
  1564. typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
  1565. typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
  1566. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
  1567. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
  1568. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
  1569. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
  1570. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
  1571. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
  1572. typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img);
  1573. typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
  1574. typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
  1575. typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
  1576. typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
  1577. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
  1578. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
  1579. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
  1580. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
  1581. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
  1582. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
  1583. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
  1584. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
  1585. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
  1586. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
  1587. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
  1588. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
  1589. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
  1590. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
  1591. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
  1592. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
  1593. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
  1594. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
  1595. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
  1596. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
  1597. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
  1598. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
  1599. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
  1600. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
  1601. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
  1602. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
  1603. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
  1604. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
  1605. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
  1606. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
  1607. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
  1608. typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
  1609. typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
  1610. #define glActiveTexture GLEGetCurrentFunction(glActiveTexture)
  1611. #define glClientActiveTexture GLEGetCurrentFunction(glClientActiveTexture)
  1612. #define glCompressedTexImage1D GLEGetCurrentFunction(glCompressedTexImage1D)
  1613. #define glCompressedTexImage2D GLEGetCurrentFunction(glCompressedTexImage2D)
  1614. #define glCompressedTexImage3D GLEGetCurrentFunction(glCompressedTexImage3D)
  1615. #define glCompressedTexSubImage1D GLEGetCurrentFunction(glCompressedTexSubImage1D)
  1616. #define glCompressedTexSubImage2D GLEGetCurrentFunction(glCompressedTexSubImage2D)
  1617. #define glCompressedTexSubImage3D GLEGetCurrentFunction(glCompressedTexSubImage3D)
  1618. #define glGetCompressedTexImage GLEGetCurrentFunction(glGetCompressedTexImage)
  1619. #define glLoadTransposeMatrixd GLEGetCurrentFunction(glLoadTransposeMatrixd)
  1620. #define glLoadTransposeMatrixf GLEGetCurrentFunction(glLoadTransposeMatrixf)
  1621. #define glMultTransposeMatrixd GLEGetCurrentFunction(glMultTransposeMatrixd)
  1622. #define glMultTransposeMatrixf GLEGetCurrentFunction(glMultTransposeMatrixf)
  1623. #define glMultiTexCoord1d GLEGetCurrentFunction(glMultiTexCoord1d)
  1624. #define glMultiTexCoord1dv GLEGetCurrentFunction(glMultiTexCoord1dv)
  1625. #define glMultiTexCoord1f GLEGetCurrentFunction(glMultiTexCoord1f)
  1626. #define glMultiTexCoord1fv GLEGetCurrentFunction(glMultiTexCoord1fv)
  1627. #define glMultiTexCoord1i GLEGetCurrentFunction(glMultiTexCoord1i)
  1628. #define glMultiTexCoord1iv GLEGetCurrentFunction(glMultiTexCoord1iv)
  1629. #define glMultiTexCoord1s GLEGetCurrentFunction(glMultiTexCoord1s)
  1630. #define glMultiTexCoord1sv GLEGetCurrentFunction(glMultiTexCoord1sv)
  1631. #define glMultiTexCoord2d GLEGetCurrentFunction(glMultiTexCoord2d)
  1632. #define glMultiTexCoord2dv GLEGetCurrentFunction(glMultiTexCoord2dv)
  1633. #define glMultiTexCoord2f GLEGetCurrentFunction(glMultiTexCoord2f)
  1634. #define glMultiTexCoord2fv GLEGetCurrentFunction(glMultiTexCoord2fv)
  1635. #define glMultiTexCoord2i GLEGetCurrentFunction(glMultiTexCoord2i)
  1636. #define glMultiTexCoord2iv GLEGetCurrentFunction(glMultiTexCoord2iv)
  1637. #define glMultiTexCoord2s GLEGetCurrentFunction(glMultiTexCoord2s)
  1638. #define glMultiTexCoord2sv GLEGetCurrentFunction(glMultiTexCoord2sv)
  1639. #define glMultiTexCoord3d GLEGetCurrentFunction(glMultiTexCoord3d)
  1640. #define glMultiTexCoord3dv GLEGetCurrentFunction(glMultiTexCoord3dv)
  1641. #define glMultiTexCoord3f GLEGetCurrentFunction(glMultiTexCoord3f)
  1642. #define glMultiTexCoord3fv GLEGetCurrentFunction(glMultiTexCoord3fv)
  1643. #define glMultiTexCoord3i GLEGetCurrentFunction(glMultiTexCoord3i)
  1644. #define glMultiTexCoord3iv GLEGetCurrentFunction(glMultiTexCoord3iv)
  1645. #define glMultiTexCoord3s GLEGetCurrentFunction(glMultiTexCoord3s)
  1646. #define glMultiTexCoord3sv GLEGetCurrentFunction(glMultiTexCoord3sv)
  1647. #define glMultiTexCoord4d GLEGetCurrentFunction(glMultiTexCoord4d)
  1648. #define glMultiTexCoord4dv GLEGetCurrentFunction(glMultiTexCoord4dv)
  1649. #define glMultiTexCoord4f GLEGetCurrentFunction(glMultiTexCoord4f)
  1650. #define glMultiTexCoord4fv GLEGetCurrentFunction(glMultiTexCoord4fv)
  1651. #define glMultiTexCoord4i GLEGetCurrentFunction(glMultiTexCoord4i)
  1652. #define glMultiTexCoord4iv GLEGetCurrentFunction(glMultiTexCoord4iv)
  1653. #define glMultiTexCoord4s GLEGetCurrentFunction(glMultiTexCoord4s)
  1654. #define glMultiTexCoord4sv GLEGetCurrentFunction(glMultiTexCoord4sv)
  1655. #define glSampleCoverage GLEGetCurrentFunction(glSampleCoverage)
  1656. #endif // GL_VERSION_1_3
  1657. #ifndef GL_VERSION_1_4
  1658. #define GL_VERSION_1_4 1
  1659. #define GL_BLEND_DST_RGB 0x80C8
  1660. #define GL_BLEND_SRC_RGB 0x80C9
  1661. #define GL_BLEND_DST_ALPHA 0x80CA
  1662. #define GL_BLEND_SRC_ALPHA 0x80CB
  1663. #define GL_POINT_SIZE_MIN 0x8126
  1664. #define GL_POINT_SIZE_MAX 0x8127
  1665. #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
  1666. #define GL_POINT_DISTANCE_ATTENUATION 0x8129
  1667. #define GL_GENERATE_MIPMAP 0x8191
  1668. #define GL_GENERATE_MIPMAP_HINT 0x8192
  1669. #define GL_DEPTH_COMPONENT16 0x81A5
  1670. #define GL_DEPTH_COMPONENT24 0x81A6
  1671. #define GL_DEPTH_COMPONENT32 0x81A7
  1672. #define GL_MIRRORED_REPEAT 0x8370
  1673. #define GL_FOG_COORDINATE_SOURCE 0x8450
  1674. #define GL_FOG_COORDINATE 0x8451
  1675. #define GL_FRAGMENT_DEPTH 0x8452
  1676. #define GL_CURRENT_FOG_COORDINATE 0x8453
  1677. #define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
  1678. #define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
  1679. #define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
  1680. #define GL_FOG_COORDINATE_ARRAY 0x8457
  1681. #define GL_COLOR_SUM 0x8458
  1682. #define GL_CURRENT_SECONDARY_COLOR 0x8459
  1683. #define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
  1684. #define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
  1685. #define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
  1686. #define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
  1687. #define GL_SECONDARY_COLOR_ARRAY 0x845E
  1688. #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
  1689. #define GL_TEXTURE_FILTER_CONTROL 0x8500
  1690. #define GL_TEXTURE_LOD_BIAS 0x8501
  1691. #define GL_INCR_WRAP 0x8507
  1692. #define GL_DECR_WRAP 0x8508
  1693. #define GL_TEXTURE_DEPTH_SIZE 0x884A
  1694. #define GL_DEPTH_TEXTURE_MODE 0x884B
  1695. #define GL_TEXTURE_COMPARE_MODE 0x884C
  1696. #define GL_TEXTURE_COMPARE_FUNC 0x884D
  1697. #define GL_COMPARE_R_TO_TEXTURE 0x884E
  1698. typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  1699. typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
  1700. typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
  1701. typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
  1702. typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord);
  1703. typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
  1704. typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord);
  1705. typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
  1706. typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
  1707. typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount);
  1708. typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
  1709. typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
  1710. typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
  1711. typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
  1712. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
  1713. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
  1714. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
  1715. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
  1716. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
  1717. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
  1718. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
  1719. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
  1720. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
  1721. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
  1722. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
  1723. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
  1724. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
  1725. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
  1726. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
  1727. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
  1728. typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
  1729. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
  1730. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p);
  1731. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
  1732. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p);
  1733. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
  1734. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p);
  1735. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
  1736. typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p);
  1737. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
  1738. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p);
  1739. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
  1740. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p);
  1741. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
  1742. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p);
  1743. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
  1744. typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p);
  1745. #define glBlendColor GLEGetCurrentFunction(glBlendColor)
  1746. #define glBlendEquation GLEGetCurrentFunction(glBlendEquation)
  1747. #define glBlendFuncSeparate GLEGetCurrentFunction(glBlendFuncSeparate)
  1748. #define glFogCoordPointer GLEGetCurrentFunction(glFogCoordPointer)
  1749. #define glFogCoordd GLEGetCurrentFunction(glFogCoordd)
  1750. #define glFogCoorddv GLEGetCurrentFunction(glFogCoorddv)
  1751. #define glFogCoordf GLEGetCurrentFunction(glFogCoordf)
  1752. #define glFogCoordfv GLEGetCurrentFunction(glFogCoordfv)
  1753. #define glMultiDrawArrays GLEGetCurrentFunction(glMultiDrawArrays)
  1754. #define glMultiDrawElements GLEGetCurrentFunction(glMultiDrawElements)
  1755. #define glPointParameterf GLEGetCurrentFunction(glPointParameterf)
  1756. #define glPointParameterfv GLEGetCurrentFunction(glPointParameterfv)
  1757. #define glPointParameteri GLEGetCurrentFunction(glPointParameteri)
  1758. #define glPointParameteriv GLEGetCurrentFunction(glPointParameteriv)
  1759. #define glSecondaryColor3b GLEGetCurrentFunction(glSecondaryColor3b)
  1760. #define glSecondaryColor3bv GLEGetCurrentFunction(glSecondaryColor3bv)
  1761. #define glSecondaryColor3d GLEGetCurrentFunction(glSecondaryColor3d)
  1762. #define glSecondaryColor3dv GLEGetCurrentFunction(glSecondaryColor3dv)
  1763. #define glSecondaryColor3f GLEGetCurrentFunction(glSecondaryColor3f)
  1764. #define glSecondaryColor3fv GLEGetCurrentFunction(glSecondaryColor3fv)
  1765. #define glSecondaryColor3i GLEGetCurrentFunction(glSecondaryColor3i)
  1766. #define glSecondaryColor3iv GLEGetCurrentFunction(glSecondaryColor3iv)
  1767. #define glSecondaryColor3s GLEGetCurrentFunction(glSecondaryColor3s)
  1768. #define glSecondaryColor3sv GLEGetCurrentFunction(glSecondaryColor3sv)
  1769. #define glSecondaryColor3ub GLEGetCurrentFunction(glSecondaryColor3ub)
  1770. #define glSecondaryColor3ubv GLEGetCurrentFunction(glSecondaryColor3ubv)
  1771. #define glSecondaryColor3ui GLEGetCurrentFunction(glSecondaryColor3ui)
  1772. #define glSecondaryColor3uiv GLEGetCurrentFunction(glSecondaryColor3uiv)
  1773. #define glSecondaryColor3us GLEGetCurrentFunction(glSecondaryColor3us)
  1774. #define glSecondaryColor3usv GLEGetCurrentFunction(glSecondaryColor3usv)
  1775. #define glSecondaryColorPointer GLEGetCurrentFunction(glSecondaryColorPointer)
  1776. #define glWindowPos2d GLEGetCurrentFunction(glWindowPos2d)
  1777. #define glWindowPos2dv GLEGetCurrentFunction(glWindowPos2dv)
  1778. #define glWindowPos2f GLEGetCurrentFunction(glWindowPos2f)
  1779. #define glWindowPos2fv GLEGetCurrentFunction(glWindowPos2fv)
  1780. #define glWindowPos2i GLEGetCurrentFunction(glWindowPos2i)
  1781. #define glWindowPos2iv GLEGetCurrentFunction(glWindowPos2iv)
  1782. #define glWindowPos2s GLEGetCurrentFunction(glWindowPos2s)
  1783. #define glWindowPos2sv GLEGetCurrentFunction(glWindowPos2sv)
  1784. #define glWindowPos3d GLEGetCurrentFunction(glWindowPos3d)
  1785. #define glWindowPos3dv GLEGetCurrentFunction(glWindowPos3dv)
  1786. #define glWindowPos3f GLEGetCurrentFunction(glWindowPos3f)
  1787. #define glWindowPos3fv GLEGetCurrentFunction(glWindowPos3fv)
  1788. #define glWindowPos3i GLEGetCurrentFunction(glWindowPos3i)
  1789. #define glWindowPos3iv GLEGetCurrentFunction(glWindowPos3iv)
  1790. #define glWindowPos3s GLEGetCurrentFunction(glWindowPos3s)
  1791. #define glWindowPos3sv GLEGetCurrentFunction(glWindowPos3sv)
  1792. #endif // GL_VERSION_1_4
  1793. #ifndef GL_VERSION_1_5
  1794. #define GL_VERSION_1_5 1
  1795. #define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
  1796. #define GL_FOG_COORD GL_FOG_COORDINATE
  1797. #define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
  1798. #define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
  1799. #define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
  1800. #define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
  1801. #define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
  1802. #define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
  1803. #define GL_SRC0_ALPHA GL_SOURCE0_ALPHA
  1804. #define GL_SRC0_RGB GL_SOURCE0_RGB
  1805. #define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
  1806. #define GL_SRC1_RGB GL_SOURCE1_RGB
  1807. #define GL_SRC2_ALPHA GL_SOURCE2_ALPHA
  1808. #define GL_SRC2_RGB GL_SOURCE2_RGB
  1809. #define GL_BUFFER_SIZE 0x8764
  1810. #define GL_BUFFER_USAGE 0x8765
  1811. #define GL_QUERY_COUNTER_BITS 0x8864
  1812. #define GL_CURRENT_QUERY 0x8865
  1813. #define GL_QUERY_RESULT 0x8866
  1814. #define GL_QUERY_RESULT_AVAILABLE 0x8867
  1815. #define GL_ARRAY_BUFFER 0x8892
  1816. #define GL_ELEMENT_ARRAY_BUFFER 0x8893
  1817. #define GL_ARRAY_BUFFER_BINDING 0x8894
  1818. #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
  1819. #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
  1820. #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
  1821. #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
  1822. #define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
  1823. #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
  1824. #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
  1825. #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
  1826. #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
  1827. #define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
  1828. #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
  1829. #define GL_READ_ONLY 0x88B8
  1830. #define GL_WRITE_ONLY 0x88B9
  1831. #define GL_READ_WRITE 0x88BA
  1832. #define GL_BUFFER_ACCESS 0x88BB
  1833. #define GL_BUFFER_MAPPED 0x88BC
  1834. #define GL_BUFFER_MAP_POINTER 0x88BD
  1835. #define GL_STREAM_DRAW 0x88E0
  1836. #define GL_STREAM_READ 0x88E1
  1837. #define GL_STREAM_COPY 0x88E2
  1838. #define GL_STATIC_DRAW 0x88E4
  1839. #define GL_STATIC_READ 0x88E5
  1840. #define GL_STATIC_COPY 0x88E6
  1841. #define GL_DYNAMIC_DRAW 0x88E8
  1842. #define GL_DYNAMIC_READ 0x88E9
  1843. #define GL_DYNAMIC_COPY 0x88EA
  1844. #define GL_SAMPLES_PASSED 0x8914
  1845. typedef ptrdiff_t GLintptr;
  1846. typedef ptrdiff_t GLsizeiptr;
  1847. typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
  1848. typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
  1849. typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
  1850. typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
  1851. typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers);
  1852. typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids);
  1853. typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target);
  1854. typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
  1855. typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids);
  1856. typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
  1857. typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params);
  1858. typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data);
  1859. typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params);
  1860. typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
  1861. typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params);
  1862. typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer);
  1863. typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id);
  1864. typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
  1865. typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target);
  1866. #define glBeginQuery GLEGetCurrentFunction(glBeginQuery)
  1867. #define glBindBuffer GLEGetCurrentFunction(glBindBuffer)
  1868. #define glBufferData GLEGetCurrentFunction(glBufferData)
  1869. #define glBufferSubData GLEGetCurrentFunction(glBufferSubData)
  1870. #define glDeleteBuffers GLEGetCurrentFunction(glDeleteBuffers)
  1871. #define glDeleteQueries GLEGetCurrentFunction(glDeleteQueries)
  1872. #define glEndQuery GLEGetCurrentFunction(glEndQuery)
  1873. #define glGenBuffers GLEGetCurrentFunction(glGenBuffers)
  1874. #define glGenQueries GLEGetCurrentFunction(glGenQueries)
  1875. #define glGetBufferParameteriv GLEGetCurrentFunction(glGetBufferParameteriv)
  1876. #define glGetBufferPointerv GLEGetCurrentFunction(glGetBufferPointerv)
  1877. #define glGetBufferSubData GLEGetCurrentFunction(glGetBufferSubData)
  1878. #define glGetQueryObjectiv GLEGetCurrentFunction(glGetQueryObjectiv)
  1879. #define glGetQueryObjectuiv GLEGetCurrentFunction(glGetQueryObjectuiv)
  1880. #define glGetQueryiv GLEGetCurrentFunction(glGetQueryiv)
  1881. #define glIsBuffer GLEGetCurrentFunction(glIsBuffer)
  1882. #define glIsQuery GLEGetCurrentFunction(glIsQuery)
  1883. #define glMapBuffer GLEGetCurrentFunction(glMapBuffer)
  1884. #define glUnmapBuffer GLEGetCurrentFunction(glUnmapBuffer)
  1885. #endif // GL_VERSION_1_5
  1886. #ifndef GL_VERSION_2_0
  1887. #define GL_VERSION_2_0 1
  1888. #define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
  1889. #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
  1890. #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
  1891. #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
  1892. #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
  1893. #define GL_CURRENT_VERTEX_ATTRIB 0x8626
  1894. #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
  1895. #define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
  1896. #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
  1897. #define GL_STENCIL_BACK_FUNC 0x8800
  1898. #define GL_STENCIL_BACK_FAIL 0x8801
  1899. #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
  1900. #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
  1901. #define GL_MAX_DRAW_BUFFERS 0x8824
  1902. #define GL_DRAW_BUFFER0 0x8825
  1903. #define GL_DRAW_BUFFER1 0x8826
  1904. #define GL_DRAW_BUFFER2 0x8827
  1905. #define GL_DRAW_BUFFER3 0x8828
  1906. #define GL_DRAW_BUFFER4 0x8829
  1907. #define GL_DRAW_BUFFER5 0x882A
  1908. #define GL_DRAW_BUFFER6 0x882B
  1909. #define GL_DRAW_BUFFER7 0x882C
  1910. #define GL_DRAW_BUFFER8 0x882D
  1911. #define GL_DRAW_BUFFER9 0x882E
  1912. #define GL_DRAW_BUFFER10 0x882F
  1913. #define GL_DRAW_BUFFER11 0x8830
  1914. #define GL_DRAW_BUFFER12 0x8831
  1915. #define GL_DRAW_BUFFER13 0x8832
  1916. #define GL_DRAW_BUFFER14 0x8833
  1917. #define GL_DRAW_BUFFER15 0x8834
  1918. #define GL_BLEND_EQUATION_ALPHA 0x883D
  1919. #define GL_POINT_SPRITE 0x8861
  1920. #define GL_COORD_REPLACE 0x8862
  1921. #define GL_MAX_VERTEX_ATTRIBS 0x8869
  1922. #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
  1923. #define GL_MAX_TEXTURE_COORDS 0x8871
  1924. #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
  1925. #define GL_FRAGMENT_SHADER 0x8B30
  1926. #define GL_VERTEX_SHADER 0x8B31
  1927. #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
  1928. #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
  1929. #define GL_MAX_VARYING_FLOATS 0x8B4B
  1930. #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
  1931. #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
  1932. #define GL_SHADER_TYPE 0x8B4F
  1933. #define GL_FLOAT_VEC2 0x8B50
  1934. #define GL_FLOAT_VEC3 0x8B51
  1935. #define GL_FLOAT_VEC4 0x8B52
  1936. #define GL_INT_VEC2 0x8B53
  1937. #define GL_INT_VEC3 0x8B54
  1938. #define GL_INT_VEC4 0x8B55
  1939. #define GL_BOOL 0x8B56
  1940. #define GL_BOOL_VEC2 0x8B57
  1941. #define GL_BOOL_VEC3 0x8B58
  1942. #define GL_BOOL_VEC4 0x8B59
  1943. #define GL_FLOAT_MAT2 0x8B5A
  1944. #define GL_FLOAT_MAT3 0x8B5B
  1945. #define GL_FLOAT_MAT4 0x8B5C
  1946. #define GL_SAMPLER_1D 0x8B5D
  1947. #define GL_SAMPLER_2D 0x8B5E
  1948. #define GL_SAMPLER_3D 0x8B5F
  1949. #define GL_SAMPLER_CUBE 0x8B60
  1950. #define GL_SAMPLER_1D_SHADOW 0x8B61
  1951. #define GL_SAMPLER_2D_SHADOW 0x8B62
  1952. #define GL_DELETE_STATUS 0x8B80
  1953. #define GL_COMPILE_STATUS 0x8B81
  1954. #define GL_LINK_STATUS 0x8B82
  1955. #define GL_VALIDATE_STATUS 0x8B83
  1956. #define GL_INFO_LOG_LENGTH 0x8B84
  1957. #define GL_ATTACHED_SHADERS 0x8B85
  1958. #define GL_ACTIVE_UNIFORMS 0x8B86
  1959. #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
  1960. #define GL_SHADER_SOURCE_LENGTH 0x8B88
  1961. #define GL_ACTIVE_ATTRIBUTES 0x8B89
  1962. #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
  1963. #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
  1964. #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
  1965. #define GL_CURRENT_PROGRAM 0x8B8D
  1966. #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
  1967. #define GL_LOWER_LEFT 0x8CA1
  1968. #define GL_UPPER_LEFT 0x8CA2
  1969. #define GL_STENCIL_BACK_REF 0x8CA3
  1970. #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
  1971. #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
  1972. typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
  1973. typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name);
  1974. typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
  1975. typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader);
  1976. typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void);
  1977. typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type);
  1978. typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program);
  1979. typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader);
  1980. typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
  1981. typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
  1982. typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs);
  1983. typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
  1984. typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
  1985. typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
  1986. typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
  1987. typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name);
  1988. typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
  1989. typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param);
  1990. typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
  1991. typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source);
  1992. typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param);
  1993. typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name);
  1994. typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params);
  1995. typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params);
  1996. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer);
  1997. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params);
  1998. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params);
  1999. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params);
  2000. typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program);
  2001. typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader);
  2002. typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program);
  2003. typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length);
  2004. typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
  2005. typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
  2006. typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
  2007. typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
  2008. typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value);
  2009. typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
  2010. typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value);
  2011. typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
  2012. typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value);
  2013. typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
  2014. typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value);
  2015. typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
  2016. typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value);
  2017. typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
  2018. typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value);
  2019. typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
  2020. typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value);
  2021. typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
  2022. typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value);
  2023. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  2024. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  2025. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  2026. typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program);
  2027. typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
  2028. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
  2029. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v);
  2030. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
  2031. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v);
  2032. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
  2033. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v);
  2034. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
  2035. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v);
  2036. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
  2037. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v);
  2038. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
  2039. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v);
  2040. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
  2041. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v);
  2042. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
  2043. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v);
  2044. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
  2045. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v);
  2046. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v);
  2047. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v);
  2048. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v);
  2049. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
  2050. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v);
  2051. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v);
  2052. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v);
  2053. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v);
  2054. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  2055. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v);
  2056. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  2057. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v);
  2058. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v);
  2059. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
  2060. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v);
  2061. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v);
  2062. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v);
  2063. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v);
  2064. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
  2065. #define glAttachShader GLEGetCurrentFunction(glAttachShader)
  2066. #define glBindAttribLocation GLEGetCurrentFunction(glBindAttribLocation)
  2067. #define glBlendEquationSeparate GLEGetCurrentFunction(glBlendEquationSeparate)
  2068. #define glCompileShader GLEGetCurrentFunction(glCompileShader)
  2069. #define glCreateProgram GLEGetCurrentFunction(glCreateProgram)
  2070. #define glCreateShader GLEGetCurrentFunction(glCreateShader)
  2071. #define glDeleteProgram GLEGetCurrentFunction(glDeleteProgram)
  2072. #define glDeleteShader GLEGetCurrentFunction(glDeleteShader)
  2073. #define glDetachShader GLEGetCurrentFunction(glDetachShader)
  2074. #define glDisableVertexAttribArray GLEGetCurrentFunction(glDisableVertexAttribArray)
  2075. #define glDrawBuffers GLEGetCurrentFunction(glDrawBuffers)
  2076. #define glEnableVertexAttribArray GLEGetCurrentFunction(glEnableVertexAttribArray)
  2077. #define glGetActiveAttrib GLEGetCurrentFunction(glGetActiveAttrib)
  2078. #define glGetActiveUniform GLEGetCurrentFunction(glGetActiveUniform)
  2079. #define glGetAttachedShaders GLEGetCurrentFunction(glGetAttachedShaders)
  2080. #define glGetAttribLocation GLEGetCurrentFunction(glGetAttribLocation)
  2081. #define glGetProgramInfoLog GLEGetCurrentFunction(glGetProgramInfoLog)
  2082. #define glGetProgramiv GLEGetCurrentFunction(glGetProgramiv)
  2083. #define glGetShaderInfoLog GLEGetCurrentFunction(glGetShaderInfoLog)
  2084. #define glGetShaderSource GLEGetCurrentFunction(glGetShaderSource)
  2085. #define glGetShaderiv GLEGetCurrentFunction(glGetShaderiv)
  2086. #define glGetUniformLocation GLEGetCurrentFunction(glGetUniformLocation)
  2087. #define glGetUniformfv GLEGetCurrentFunction(glGetUniformfv)
  2088. #define glGetUniformiv GLEGetCurrentFunction(glGetUniformiv)
  2089. #define glGetVertexAttribPointerv GLEGetCurrentFunction(glGetVertexAttribPointerv)
  2090. #define glGetVertexAttribdv GLEGetCurrentFunction(glGetVertexAttribdv)
  2091. #define glGetVertexAttribfv GLEGetCurrentFunction(glGetVertexAttribfv)
  2092. #define glGetVertexAttribiv GLEGetCurrentFunction(glGetVertexAttribiv)
  2093. #define glIsProgram GLEGetCurrentFunction(glIsProgram)
  2094. #define glIsShader GLEGetCurrentFunction(glIsShader)
  2095. #define glLinkProgram GLEGetCurrentFunction(glLinkProgram)
  2096. #define glShaderSource GLEGetCurrentFunction(glShaderSource)
  2097. #define glStencilFuncSeparate GLEGetCurrentFunction(glStencilFuncSeparate)
  2098. #define glStencilMaskSeparate GLEGetCurrentFunction(glStencilMaskSeparate)
  2099. #define glStencilOpSeparate GLEGetCurrentFunction(glStencilOpSeparate)
  2100. #define glUniform1f GLEGetCurrentFunction(glUniform1f)
  2101. #define glUniform1fv GLEGetCurrentFunction(glUniform1fv)
  2102. #define glUniform1i GLEGetCurrentFunction(glUniform1i)
  2103. #define glUniform1iv GLEGetCurrentFunction(glUniform1iv)
  2104. #define glUniform2f GLEGetCurrentFunction(glUniform2f)
  2105. #define glUniform2fv GLEGetCurrentFunction(glUniform2fv)
  2106. #define glUniform2i GLEGetCurrentFunction(glUniform2i)
  2107. #define glUniform2iv GLEGetCurrentFunction(glUniform2iv)
  2108. #define glUniform3f GLEGetCurrentFunction(glUniform3f)
  2109. #define glUniform3fv GLEGetCurrentFunction(glUniform3fv)
  2110. #define glUniform3i GLEGetCurrentFunction(glUniform3i)
  2111. #define glUniform3iv GLEGetCurrentFunction(glUniform3iv)
  2112. #define glUniform4f GLEGetCurrentFunction(glUniform4f)
  2113. #define glUniform4fv GLEGetCurrentFunction(glUniform4fv)
  2114. #define glUniform4i GLEGetCurrentFunction(glUniform4i)
  2115. #define glUniform4iv GLEGetCurrentFunction(glUniform4iv)
  2116. #define glUniformMatrix2fv GLEGetCurrentFunction(glUniformMatrix2fv)
  2117. #define glUniformMatrix3fv GLEGetCurrentFunction(glUniformMatrix3fv)
  2118. #define glUniformMatrix4fv GLEGetCurrentFunction(glUniformMatrix4fv)
  2119. #define glUseProgram GLEGetCurrentFunction(glUseProgram)
  2120. #define glValidateProgram GLEGetCurrentFunction(glValidateProgram)
  2121. #define glVertexAttrib1d GLEGetCurrentFunction(glVertexAttrib1d)
  2122. #define glVertexAttrib1dv GLEGetCurrentFunction(glVertexAttrib1dv)
  2123. #define glVertexAttrib1f GLEGetCurrentFunction(glVertexAttrib1f)
  2124. #define glVertexAttrib1fv GLEGetCurrentFunction(glVertexAttrib1fv)
  2125. #define glVertexAttrib1s GLEGetCurrentFunction(glVertexAttrib1s)
  2126. #define glVertexAttrib1sv GLEGetCurrentFunction(glVertexAttrib1sv)
  2127. #define glVertexAttrib2d GLEGetCurrentFunction(glVertexAttrib2d)
  2128. #define glVertexAttrib2dv GLEGetCurrentFunction(glVertexAttrib2dv)
  2129. #define glVertexAttrib2f GLEGetCurrentFunction(glVertexAttrib2f)
  2130. #define glVertexAttrib2fv GLEGetCurrentFunction(glVertexAttrib2fv)
  2131. #define glVertexAttrib2s GLEGetCurrentFunction(glVertexAttrib2s)
  2132. #define glVertexAttrib2sv GLEGetCurrentFunction(glVertexAttrib2sv)
  2133. #define glVertexAttrib3d GLEGetCurrentFunction(glVertexAttrib3d)
  2134. #define glVertexAttrib3dv GLEGetCurrentFunction(glVertexAttrib3dv)
  2135. #define glVertexAttrib3f GLEGetCurrentFunction(glVertexAttrib3f)
  2136. #define glVertexAttrib3fv GLEGetCurrentFunction(glVertexAttrib3fv)
  2137. #define glVertexAttrib3s GLEGetCurrentFunction(glVertexAttrib3s)
  2138. #define glVertexAttrib3sv GLEGetCurrentFunction(glVertexAttrib3sv)
  2139. #define glVertexAttrib4Nbv GLEGetCurrentFunction(glVertexAttrib4Nbv)
  2140. #define glVertexAttrib4Niv GLEGetCurrentFunction(glVertexAttrib4Niv)
  2141. #define glVertexAttrib4Nsv GLEGetCurrentFunction(glVertexAttrib4Nsv)
  2142. #define glVertexAttrib4Nub GLEGetCurrentFunction(glVertexAttrib4Nub)
  2143. #define glVertexAttrib4Nubv GLEGetCurrentFunction(glVertexAttrib4Nubv)
  2144. #define glVertexAttrib4Nuiv GLEGetCurrentFunction(glVertexAttrib4Nuiv)
  2145. #define glVertexAttrib4Nusv GLEGetCurrentFunction(glVertexAttrib4Nusv)
  2146. #define glVertexAttrib4bv GLEGetCurrentFunction(glVertexAttrib4bv)
  2147. #define glVertexAttrib4d GLEGetCurrentFunction(glVertexAttrib4d)
  2148. #define glVertexAttrib4dv GLEGetCurrentFunction(glVertexAttrib4dv)
  2149. #define glVertexAttrib4f GLEGetCurrentFunction(glVertexAttrib4f)
  2150. #define glVertexAttrib4fv GLEGetCurrentFunction(glVertexAttrib4fv)
  2151. #define glVertexAttrib4iv GLEGetCurrentFunction(glVertexAttrib4iv)
  2152. #define glVertexAttrib4s GLEGetCurrentFunction(glVertexAttrib4s)
  2153. #define glVertexAttrib4sv GLEGetCurrentFunction(glVertexAttrib4sv)
  2154. #define glVertexAttrib4ubv GLEGetCurrentFunction(glVertexAttrib4ubv)
  2155. #define glVertexAttrib4uiv GLEGetCurrentFunction(glVertexAttrib4uiv)
  2156. #define glVertexAttrib4usv GLEGetCurrentFunction(glVertexAttrib4usv)
  2157. #define glVertexAttribPointer GLEGetCurrentFunction(glVertexAttribPointer)
  2158. #endif // GL_VERSION_2_0
  2159. #ifndef GL_VERSION_2_1
  2160. #define GL_VERSION_2_1 1
  2161. #define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
  2162. #define GL_PIXEL_PACK_BUFFER 0x88EB
  2163. #define GL_PIXEL_UNPACK_BUFFER 0x88EC
  2164. #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
  2165. #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
  2166. #define GL_FLOAT_MAT2x3 0x8B65
  2167. #define GL_FLOAT_MAT2x4 0x8B66
  2168. #define GL_FLOAT_MAT3x2 0x8B67
  2169. #define GL_FLOAT_MAT3x4 0x8B68
  2170. #define GL_FLOAT_MAT4x2 0x8B69
  2171. #define GL_FLOAT_MAT4x3 0x8B6A
  2172. #define GL_SRGB 0x8C40
  2173. #define GL_SRGB8 0x8C41
  2174. #define GL_SRGB_ALPHA 0x8C42
  2175. #define GL_SRGB8_ALPHA8 0x8C43
  2176. #define GL_SLUMINANCE_ALPHA 0x8C44
  2177. #define GL_SLUMINANCE8_ALPHA8 0x8C45
  2178. #define GL_SLUMINANCE 0x8C46
  2179. #define GL_SLUMINANCE8 0x8C47
  2180. #define GL_COMPRESSED_SRGB 0x8C48
  2181. #define GL_COMPRESSED_SRGB_ALPHA 0x8C49
  2182. #define GL_COMPRESSED_SLUMINANCE 0x8C4A
  2183. #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
  2184. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2185. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2186. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2187. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2188. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2189. typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  2190. #define glUniformMatrix2x3fv GLEGetCurrentFunction(glUniformMatrix2x3fv)
  2191. #define glUniformMatrix2x4fv GLEGetCurrentFunction(glUniformMatrix2x4fv)
  2192. #define glUniformMatrix3x2fv GLEGetCurrentFunction(glUniformMatrix3x2fv)
  2193. #define glUniformMatrix3x4fv GLEGetCurrentFunction(glUniformMatrix3x4fv)
  2194. #define glUniformMatrix4x2fv GLEGetCurrentFunction(glUniformMatrix4x2fv)
  2195. #define glUniformMatrix4x3fv GLEGetCurrentFunction(glUniformMatrix4x3fv)
  2196. #endif // GL_VERSION_2_1
  2197. #ifndef GL_VERSION_3_0
  2198. #define GL_VERSION_3_0 1
  2199. #define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0
  2200. #define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1
  2201. #define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2
  2202. #define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3
  2203. #define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4
  2204. #define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5
  2205. #define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB
  2206. #define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES
  2207. #define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS
  2208. #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
  2209. #define GL_MAJOR_VERSION 0x821B
  2210. #define GL_MINOR_VERSION 0x821C
  2211. #define GL_NUM_EXTENSIONS 0x821D
  2212. #define GL_CONTEXT_FLAGS 0x821E
  2213. #define GL_DEPTH_BUFFER 0x8223
  2214. #define GL_STENCIL_BUFFER 0x8224
  2215. #define GL_RGBA32F 0x8814
  2216. #define GL_RGB32F 0x8815
  2217. #define GL_RGBA16F 0x881A
  2218. #define GL_RGB16F 0x881B
  2219. #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
  2220. #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
  2221. #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
  2222. #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
  2223. #define GL_CLAMP_VERTEX_COLOR 0x891A
  2224. #define GL_CLAMP_FRAGMENT_COLOR 0x891B
  2225. #define GL_CLAMP_READ_COLOR 0x891C
  2226. #define GL_FIXED_ONLY 0x891D
  2227. #define GL_TEXTURE_RED_TYPE 0x8C10
  2228. #define GL_TEXTURE_GREEN_TYPE 0x8C11
  2229. #define GL_TEXTURE_BLUE_TYPE 0x8C12
  2230. #define GL_TEXTURE_ALPHA_TYPE 0x8C13
  2231. #define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
  2232. #define GL_TEXTURE_INTENSITY_TYPE 0x8C15
  2233. #define GL_TEXTURE_DEPTH_TYPE 0x8C16
  2234. #define GL_TEXTURE_1D_ARRAY 0x8C18
  2235. #define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
  2236. #define GL_TEXTURE_2D_ARRAY 0x8C1A
  2237. #define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
  2238. #define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
  2239. #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
  2240. #define GL_R11F_G11F_B10F 0x8C3A
  2241. #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
  2242. #define GL_RGB9_E5 0x8C3D
  2243. #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
  2244. #define GL_TEXTURE_SHARED_SIZE 0x8C3F
  2245. #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
  2246. #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
  2247. #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
  2248. #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
  2249. #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
  2250. #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
  2251. #define GL_PRIMITIVES_GENERATED 0x8C87
  2252. #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
  2253. #define GL_RASTERIZER_DISCARD 0x8C89
  2254. #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
  2255. #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
  2256. #define GL_INTERLEAVED_ATTRIBS 0x8C8C
  2257. #define GL_SEPARATE_ATTRIBS 0x8C8D
  2258. #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
  2259. #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
  2260. #define GL_RGBA32UI 0x8D70
  2261. #define GL_RGB32UI 0x8D71
  2262. #define GL_RGBA16UI 0x8D76
  2263. #define GL_RGB16UI 0x8D77
  2264. #define GL_RGBA8UI 0x8D7C
  2265. #define GL_RGB8UI 0x8D7D
  2266. #define GL_RGBA32I 0x8D82
  2267. #define GL_RGB32I 0x8D83
  2268. #define GL_RGBA16I 0x8D88
  2269. #define GL_RGB16I 0x8D89
  2270. #define GL_RGBA8I 0x8D8E
  2271. #define GL_RGB8I 0x8D8F
  2272. #define GL_RED_INTEGER 0x8D94
  2273. #define GL_GREEN_INTEGER 0x8D95
  2274. #define GL_BLUE_INTEGER 0x8D96
  2275. #define GL_ALPHA_INTEGER 0x8D97
  2276. #define GL_RGB_INTEGER 0x8D98
  2277. #define GL_RGBA_INTEGER 0x8D99
  2278. #define GL_BGR_INTEGER 0x8D9A
  2279. #define GL_BGRA_INTEGER 0x8D9B
  2280. #define GL_SAMPLER_1D_ARRAY 0x8DC0
  2281. #define GL_SAMPLER_2D_ARRAY 0x8DC1
  2282. #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
  2283. #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
  2284. #define GL_SAMPLER_CUBE_SHADOW 0x8DC5
  2285. #define GL_UNSIGNED_INT_VEC2 0x8DC6
  2286. #define GL_UNSIGNED_INT_VEC3 0x8DC7
  2287. #define GL_UNSIGNED_INT_VEC4 0x8DC8
  2288. #define GL_INT_SAMPLER_1D 0x8DC9
  2289. #define GL_INT_SAMPLER_2D 0x8DCA
  2290. #define GL_INT_SAMPLER_3D 0x8DCB
  2291. #define GL_INT_SAMPLER_CUBE 0x8DCC
  2292. #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
  2293. #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
  2294. #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
  2295. #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
  2296. #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
  2297. #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
  2298. #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
  2299. #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
  2300. #define GL_QUERY_WAIT 0x8E13
  2301. #define GL_QUERY_NO_WAIT 0x8E14
  2302. #define GL_QUERY_BY_REGION_WAIT 0x8E15
  2303. #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
  2304. typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
  2305. typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
  2306. typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name);
  2307. typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
  2308. typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
  2309. typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value);
  2310. typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value);
  2311. typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value);
  2312. typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
  2313. typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index);
  2314. typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index);
  2315. typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void);
  2316. typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
  2317. typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
  2318. typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
  2319. typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data);
  2320. typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data);
  2321. typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name);
  2322. typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
  2323. typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params);
  2324. typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params);
  2325. typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
  2326. typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params);
  2327. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params);
  2328. typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params);
  2329. typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index);
  2330. typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params);
  2331. typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params);
  2332. typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
  2333. typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
  2334. typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value);
  2335. typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
  2336. typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value);
  2337. typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
  2338. typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value);
  2339. typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
  2340. typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value);
  2341. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0);
  2342. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0);
  2343. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0);
  2344. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0);
  2345. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1);
  2346. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0);
  2347. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1);
  2348. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0);
  2349. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2);
  2350. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0);
  2351. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2);
  2352. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0);
  2353. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0);
  2354. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
  2355. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0);
  2356. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0);
  2357. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0);
  2358. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
  2359. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0);
  2360. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0);
  2361. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer);
  2362. #define glBeginConditionalRender GLEGetCurrentFunction(glBeginConditionalRender)
  2363. #define glBeginTransformFeedback GLEGetCurrentFunction(glBeginTransformFeedback)
  2364. #define glBindFragDataLocation GLEGetCurrentFunction(glBindFragDataLocation)
  2365. #define glClampColor GLEGetCurrentFunction(glClampColor)
  2366. #define glClearBufferfi GLEGetCurrentFunction(glClearBufferfi)
  2367. #define glClearBufferfv GLEGetCurrentFunction(glClearBufferfv)
  2368. #define glClearBufferiv GLEGetCurrentFunction(glClearBufferiv)
  2369. #define glClearBufferuiv GLEGetCurrentFunction(glClearBufferuiv)
  2370. #define glColorMaski GLEGetCurrentFunction(glColorMaski)
  2371. #define glDisablei GLEGetCurrentFunction(glDisablei)
  2372. #define glEnablei GLEGetCurrentFunction(glEnablei)
  2373. #define glEndConditionalRender GLEGetCurrentFunction(glEndConditionalRender)
  2374. #define glEndTransformFeedback GLEGetCurrentFunction(glEndTransformFeedback)
  2375. #define glGetBooleani_v GLEGetCurrentFunction(glGetBooleani_v)
  2376. #define glGetIntegeri_v GLEGetCurrentFunction(glGetIntegeri_v)
  2377. #define glGetFragDataLocation GLEGetCurrentFunction(glGetFragDataLocation)
  2378. #define glGetStringi GLEGetCurrentFunction(glGetStringi)
  2379. #define glGetTexParameterIiv GLEGetCurrentFunction(glGetTexParameterIiv)
  2380. #define glGetTexParameterIuiv GLEGetCurrentFunction(glGetTexParameterIuiv)
  2381. #define glGetTransformFeedbackVarying GLEGetCurrentFunction(glGetTransformFeedbackVarying)
  2382. #define glGetUniformuiv GLEGetCurrentFunction(glGetUniformuiv)
  2383. #define glGetVertexAttribIiv GLEGetCurrentFunction(glGetVertexAttribIiv)
  2384. #define glGetVertexAttribIuiv GLEGetCurrentFunction(glGetVertexAttribIuiv)
  2385. #define glIsEnabledi GLEGetCurrentFunction(glIsEnabledi)
  2386. #define glTexParameterIiv GLEGetCurrentFunction(glTexParameterIiv)
  2387. #define glTexParameterIuiv GLEGetCurrentFunction(glTexParameterIuiv)
  2388. #define glTransformFeedbackVaryings GLEGetCurrentFunction(glTransformFeedbackVaryings)
  2389. #define glUniform1ui GLEGetCurrentFunction(glUniform1ui)
  2390. #define glUniform1uiv GLEGetCurrentFunction(glUniform1uiv)
  2391. #define glUniform2ui GLEGetCurrentFunction(glUniform2ui)
  2392. #define glUniform2uiv GLEGetCurrentFunction(glUniform2uiv)
  2393. #define glUniform3ui GLEGetCurrentFunction(glUniform3ui)
  2394. #define glUniform3uiv GLEGetCurrentFunction(glUniform3uiv)
  2395. #define glUniform4ui GLEGetCurrentFunction(glUniform4ui)
  2396. #define glUniform4uiv GLEGetCurrentFunction(glUniform4uiv)
  2397. #define glVertexAttribI1i GLEGetCurrentFunction(glVertexAttribI1i)
  2398. #define glVertexAttribI1iv GLEGetCurrentFunction(glVertexAttribI1iv)
  2399. #define glVertexAttribI1ui GLEGetCurrentFunction(glVertexAttribI1ui)
  2400. #define glVertexAttribI1uiv GLEGetCurrentFunction(glVertexAttribI1uiv)
  2401. #define glVertexAttribI2i GLEGetCurrentFunction(glVertexAttribI2i)
  2402. #define glVertexAttribI2iv GLEGetCurrentFunction(glVertexAttribI2iv)
  2403. #define glVertexAttribI2ui GLEGetCurrentFunction(glVertexAttribI2ui)
  2404. #define glVertexAttribI2uiv GLEGetCurrentFunction(glVertexAttribI2uiv)
  2405. #define glVertexAttribI3i GLEGetCurrentFunction(glVertexAttribI3i)
  2406. #define glVertexAttribI3iv GLEGetCurrentFunction(glVertexAttribI3iv)
  2407. #define glVertexAttribI3ui GLEGetCurrentFunction(glVertexAttribI3ui)
  2408. #define glVertexAttribI3uiv GLEGetCurrentFunction(glVertexAttribI3uiv)
  2409. #define glVertexAttribI4bv GLEGetCurrentFunction(glVertexAttribI4bv)
  2410. #define glVertexAttribI4i GLEGetCurrentFunction(glVertexAttribI4i)
  2411. #define glVertexAttribI4iv GLEGetCurrentFunction(glVertexAttribI4iv)
  2412. #define glVertexAttribI4sv GLEGetCurrentFunction(glVertexAttribI4sv)
  2413. #define glVertexAttribI4ubv GLEGetCurrentFunction(glVertexAttribI4ubv)
  2414. #define glVertexAttribI4ui GLEGetCurrentFunction(glVertexAttribI4ui)
  2415. #define glVertexAttribI4uiv GLEGetCurrentFunction(glVertexAttribI4uiv)
  2416. #define glVertexAttribI4usv GLEGetCurrentFunction(glVertexAttribI4usv)
  2417. #define glVertexAttribIPointer GLEGetCurrentFunction(glVertexAttribIPointer)
  2418. #endif // GL_VERSION_3_0
  2419. #ifndef GL_VERSION_3_1
  2420. #define GL_VERSION_3_1 1
  2421. #define GL_TEXTURE_RECTANGLE 0x84F5
  2422. #define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
  2423. #define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
  2424. #define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
  2425. #define GL_SAMPLER_2D_RECT 0x8B63
  2426. #define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
  2427. #define GL_TEXTURE_BUFFER 0x8C2A
  2428. #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
  2429. #define GL_TEXTURE_BINDING_BUFFER 0x8C2C
  2430. #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
  2431. #define GL_TEXTURE_BUFFER_FORMAT 0x8C2E
  2432. #define GL_SAMPLER_BUFFER 0x8DC2
  2433. #define GL_INT_SAMPLER_2D_RECT 0x8DCD
  2434. #define GL_INT_SAMPLER_BUFFER 0x8DD0
  2435. #define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
  2436. #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
  2437. #define GL_RED_SNORM 0x8F90
  2438. #define GL_RG_SNORM 0x8F91
  2439. #define GL_RGB_SNORM 0x8F92
  2440. #define GL_RGBA_SNORM 0x8F93
  2441. #define GL_R8_SNORM 0x8F94
  2442. #define GL_RG8_SNORM 0x8F95
  2443. #define GL_RGB8_SNORM 0x8F96
  2444. #define GL_RGBA8_SNORM 0x8F97
  2445. #define GL_R16_SNORM 0x8F98
  2446. #define GL_RG16_SNORM 0x8F99
  2447. #define GL_RGB16_SNORM 0x8F9A
  2448. #define GL_RGBA16_SNORM 0x8F9B
  2449. #define GL_SIGNED_NORMALIZED 0x8F9C
  2450. #define GL_PRIMITIVE_RESTART 0x8F9D
  2451. #define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
  2452. #define GL_BUFFER_ACCESS_FLAGS 0x911F
  2453. #define GL_BUFFER_MAP_LENGTH 0x9120
  2454. #define GL_BUFFER_MAP_OFFSET 0x9121
  2455. typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
  2456. typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
  2457. typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer);
  2458. typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer);
  2459. #define glDrawArraysInstanced GLEGetCurrentFunction(glDrawArraysInstanced)
  2460. #define glDrawElementsInstanced GLEGetCurrentFunction(glDrawElementsInstanced)
  2461. #define glPrimitiveRestartIndex GLEGetCurrentFunction(glPrimitiveRestartIndex)
  2462. #define glTexBuffer GLEGetCurrentFunction(glTexBuffer)
  2463. #endif // GL_VERSION_3_1
  2464. #ifndef GL_VERSION_3_2
  2465. #define GL_VERSION_3_2 1
  2466. #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
  2467. #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
  2468. #define GL_LINES_ADJACENCY 0x000A
  2469. #define GL_LINE_STRIP_ADJACENCY 0x000B
  2470. #define GL_TRIANGLES_ADJACENCY 0x000C
  2471. #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
  2472. #define GL_PROGRAM_POINT_SIZE 0x8642
  2473. #define GL_GEOMETRY_VERTICES_OUT 0x8916
  2474. #define GL_GEOMETRY_INPUT_TYPE 0x8917
  2475. #define GL_GEOMETRY_OUTPUT_TYPE 0x8918
  2476. #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
  2477. #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
  2478. #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
  2479. #define GL_GEOMETRY_SHADER 0x8DD9
  2480. #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
  2481. #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
  2482. #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
  2483. #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
  2484. #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
  2485. #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
  2486. #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
  2487. #define GL_CONTEXT_PROFILE_MASK 0x9126
  2488. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
  2489. typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data);
  2490. typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data);
  2491. #define glFramebufferTexture GLEGetCurrentFunction(glFramebufferTexture)
  2492. #define glGetBufferParameteri64v GLEGetCurrentFunction(glGetBufferParameteri64v)
  2493. #define glGetInteger64i_v GLEGetCurrentFunction(glGetInteger64i_v)
  2494. #endif // GL_VERSION_3_2
  2495. #ifndef GL_VERSION_3_3
  2496. #define GL_VERSION_3_3 1
  2497. #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
  2498. #define GL_RGB10_A2UI 0x906F
  2499. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
  2500. #define glVertexAttribDivisor GLEGetCurrentFunction(glVertexAttribDivisor)
  2501. #endif
  2502. #ifndef GL_VERSION_4_0
  2503. #define GL_VERSION_4_0 1
  2504. #define GL_SAMPLE_SHADING 0x8C36
  2505. #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
  2506. #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
  2507. #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
  2508. #define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F
  2509. #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
  2510. #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
  2511. #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
  2512. #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
  2513. #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
  2514. #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
  2515. #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
  2516. typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
  2517. typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
  2518. typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
  2519. typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
  2520. typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
  2521. #define glBlendEquationSeparatei GLEGetCurrentFunction(glBlendEquationSeparatei)
  2522. #define glBlendEquationi GLEGetCurrentFunction(glBlendEquationi)
  2523. #define glBlendFuncSeparatei GLEGetCurrentFunction(glBlendFuncSeparatei)
  2524. #define glBlendFunci GLEGetCurrentFunction(glBlendFunci)
  2525. #define glMinSampleShading GLEGetCurrentFunction(glMinSampleShading)
  2526. #endif // GL_VERSION_4_0
  2527. #ifndef GL_VERSION_4_1
  2528. #define GL_VERSION_4_1 1
  2529. // Empty
  2530. #endif
  2531. #ifndef GL_VERSION_4_2
  2532. #define GL_VERSION_4_2 1
  2533. #define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
  2534. #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
  2535. #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
  2536. #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
  2537. #endif
  2538. #ifndef GL_VERSION_4_3
  2539. #define GL_VERSION_4_3 1
  2540. #define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
  2541. #define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
  2542. #endif
  2543. #ifndef GL_VERSION_4_4
  2544. #define GL_VERSION_4_4 1
  2545. #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
  2546. #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
  2547. #define GL_TEXTURE_BUFFER_BINDING 0x8C2A
  2548. #endif
  2549. #ifndef GL_VERSION_4_5
  2550. #define GL_VERSION_4_5 1
  2551. // Empty
  2552. #endif
  2553. #ifndef GL_AMD_debug_output
  2554. #define GL_AMD_debug_output 1
  2555. #define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
  2556. #define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
  2557. #define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
  2558. #define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
  2559. #define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
  2560. #define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
  2561. #define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
  2562. #define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
  2563. #define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
  2564. #define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
  2565. #define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
  2566. #define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
  2567. #define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
  2568. #define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
  2569. typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam);
  2570. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
  2571. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
  2572. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf);
  2573. typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message);
  2574. #define glDebugMessageCallbackAMD GLEGetCurrentFunction(glDebugMessageCallbackAMD)
  2575. #define glDebugMessageEnableAMD GLEGetCurrentFunction(glDebugMessageEnableAMD)
  2576. #define glDebugMessageInsertAMD GLEGetCurrentFunction(glDebugMessageInsertAMD)
  2577. #define glGetDebugMessageLogAMD GLEGetCurrentFunction(glGetDebugMessageLogAMD)
  2578. #define GLE_AMD_debug_output GLEGetCurrentVariable(gle_AMD_debug_output)
  2579. #endif // GL_AMD_debug_output
  2580. /* Disabled until needed
  2581. #ifndef GL_AMD_performance_monitor
  2582. #define GL_AMD_performance_monitor 1
  2583. #define GL_COUNTER_TYPE_AMD 0x8BC0
  2584. #define GL_COUNTER_RANGE_AMD 0x8BC1
  2585. #define GL_UNSIGNED_INT64_AMD 0x8BC2
  2586. #define GL_PERCENTAGE_AMD 0x8BC3
  2587. #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
  2588. #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
  2589. #define GL_PERFMON_RESULT_AMD 0x8BC6
  2590. typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
  2591. typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
  2592. typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
  2593. typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
  2594. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten);
  2595. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
  2596. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString);
  2597. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
  2598. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString);
  2599. typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups);
  2600. typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
  2601. #define glBeginPerfMonitorAMD GLEGetCurrentFunction(glBeginPerfMonitorAMD)
  2602. #define glDeletePerfMonitorsAMD GLEGetCurrentFunction(glDeletePerfMonitorsAMD)
  2603. #define glEndPerfMonitorAMD GLEGetCurrentFunction(glEndPerfMonitorAMD)
  2604. #define glGenPerfMonitorsAMD GLEGetCurrentFunction(glGenPerfMonitorsAMD)
  2605. #define glGetPerfMonitorCounterDataAMD GLEGetCurrentFunction(glGetPerfMonitorCounterDataAMD)
  2606. #define glGetPerfMonitorCounterInfoAMD GLEGetCurrentFunction(glGetPerfMonitorCounterInfoAMD)
  2607. #define glGetPerfMonitorCounterStringAMD GLEGetCurrentFunction(glGetPerfMonitorCounterStringAMD)
  2608. #define glGetPerfMonitorCountersAMD GLEGetCurrentFunction(glGetPerfMonitorCountersAMD)
  2609. #define glGetPerfMonitorGroupStringAMD GLEGetCurrentFunction(glGetPerfMonitorGroupStringAMD)
  2610. #define glGetPerfMonitorGroupsAMD GLEGetCurrentFunction(glGetPerfMonitorGroupsAMD)
  2611. #define glSelectPerfMonitorCountersAMD GLEGetCurrentFunction(glSelectPerfMonitorCountersAMD)
  2612. #define GLE_AMD_performance_monitor GLEGetCurrentVariable(gle_AMD_performance_monitor)
  2613. #endif // GL_AMD_performance_monitor
  2614. */
  2615. #if defined(GLE_CGL_ENABLED)
  2616. #ifndef GL_APPLE_aux_depth_stencil
  2617. #define GL_APPLE_aux_depth_stencil 1
  2618. #define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14g
  2619. #define GLE_APPLE_aux_depth_stencil GLEGetCurrentVariable(gle_APPLE_aux_depth_stencil)
  2620. #endif
  2621. #ifndef GL_APPLE_client_storage
  2622. #define GL_APPLE_client_storage 1
  2623. #define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
  2624. #define GLE_APPLE_client_storage GLEGetCurrentVariable(gle_APPLE_client_storage)
  2625. #endif
  2626. #ifndef GL_APPLE_element_array
  2627. #define GL_APPLE_element_array 1
  2628. #define GL_ELEMENT_ARRAY_APPLE 0x8A0C
  2629. #define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
  2630. #define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
  2631. typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
  2632. typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
  2633. typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer);
  2634. typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
  2635. typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount);
  2636. #define glDrawElementArrayAPPLE GLEGetCurrentFunction(glDrawElementArrayAPPLE)
  2637. #define glDrawRangeElementArrayAPPLE GLEGetCurrentFunction(glDrawRangeElementArrayAPPLE)
  2638. #define glElementPointerAPPLE GLEGetCurrentFunction(glElementPointerAPPLE)
  2639. #define glMultiDrawElementArrayAPPLE GLEGetCurrentFunction(glMultiDrawElementArrayAPPLE)
  2640. #define glMultiDrawRangeElementArrayAPPLE GLEGetCurrentFunction(glMultiDrawRangeElementArrayAPPLE)
  2641. #define GLE_APPLE_element_array GLEGetCurrentVariable(gle_APPLE_element_array)
  2642. #endif
  2643. #ifndef GL_APPLE_fence
  2644. #define GL_APPLE_fence 1
  2645. #define GL_DRAW_PIXELS_APPLE 0x8A0A
  2646. #define GL_FENCE_APPLE 0x8A0B
  2647. typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences);
  2648. typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
  2649. typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
  2650. typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences);
  2651. typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence);
  2652. typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
  2653. typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
  2654. typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
  2655. #define glDeleteFencesAPPLE GLEGetCurrentFunction(glDeleteFencesAPPLE)
  2656. #define glFinishFenceAPPLE GLEGetCurrentFunction(glFinishFenceAPPLE)
  2657. #define glFinishObjectAPPLE GLEGetCurrentFunction(glFinishObjectAPPLE)
  2658. #define glGenFencesAPPLE GLEGetCurrentFunction(glGenFencesAPPLE)
  2659. #define glIsFenceAPPLE GLEGetCurrentFunction(glIsFenceAPPLE)
  2660. #define glSetFenceAPPLE GLEGetCurrentFunction(glSetFenceAPPLE)
  2661. #define glTestFenceAPPLE GLEGetCurrentFunction(glTestFenceAPPLE)
  2662. #define glTestObjectAPPLE GLEGetCurrentFunction(glTestObjectAPPLE)
  2663. #define GLE_APPLE_fence GLEGetCurrentVariable(gle_APPLE_fence)
  2664. #endif
  2665. #ifndef GL_APPLE_float_pixels
  2666. #define GL_APPLE_float_pixels 1
  2667. #define GL_HALF_APPLE 0x140B
  2668. #define GL_RGBA_FLOAT32_APPLE 0x8814
  2669. #define GL_RGB_FLOAT32_APPLE 0x8815
  2670. #define GL_ALPHA_FLOAT32_APPLE 0x8816
  2671. #define GL_INTENSITY_FLOAT32_APPLE 0x8817
  2672. #define GL_LUMINANCE_FLOAT32_APPLE 0x8818
  2673. #define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
  2674. #define GL_RGBA_FLOAT16_APPLE 0x881A
  2675. #define GL_RGB_FLOAT16_APPLE 0x881B
  2676. #define GL_ALPHA_FLOAT16_APPLE 0x881C
  2677. #define GL_INTENSITY_FLOAT16_APPLE 0x881D
  2678. #define GL_LUMINANCE_FLOAT16_APPLE 0x881E
  2679. #define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
  2680. #define GL_COLOR_FLOAT_APPLE 0x8A0F
  2681. #define GLE_APPLE_float_pixels GLEGetCurrentVariable(gle_APPLE_float_pixels)
  2682. #endif
  2683. #ifndef GL_APPLE_flush_buffer_range
  2684. #define GL_APPLE_flush_buffer_range 1
  2685. #define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
  2686. #define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
  2687. typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
  2688. typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
  2689. #define glBufferParameteriAPPLE GLEGetCurrentFunction(glBufferParameteriAPPLE)
  2690. #define glFlushMappedBufferRangeAPPLE GLEGetCurrentFunction(glFlushMappedBufferRangeAPPLE)
  2691. #define GLE_APPLE_flush_buffer_range GLEGetCurrentVariable(gle_APPLE_flush_buffer_range)
  2692. #endif
  2693. #ifndef GL_APPLE_object_purgeable
  2694. #define GL_APPLE_object_purgeable 1
  2695. #define GL_BUFFER_OBJECT_APPLE 0x85B3
  2696. #define GL_RELEASED_APPLE 0x8A19
  2697. #define GL_VOLATILE_APPLE 0x8A1A
  2698. #define GL_RETAINED_APPLE 0x8A1B
  2699. #define GL_UNDEFINED_APPLE 0x8A1C
  2700. #define GL_PURGEABLE_APPLE 0x8A1D
  2701. typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params);
  2702. typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
  2703. typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
  2704. #define glGetObjectParameterivAPPLE GLEGetCurrentFunction(glGetObjectParameterivAPPLE)
  2705. #define glObjectPurgeableAPPLE GLEGetCurrentFunction(glObjectPurgeableAPPLE)
  2706. #define glObjectUnpurgeableAPPLE GLEGetCurrentFunction(glObjectUnpurgeableAPPLE)
  2707. #define GLE_APPLE_object_purgeable GLEGetCurrentVariable(gle_APPLE_object_purgeable)
  2708. #endif
  2709. #ifndef GL_APPLE_pixel_buffer
  2710. #define GL_APPLE_pixel_buffer 1
  2711. #define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
  2712. #define GLE_APPLE_pixel_buffer GLEGetCurrentVariable(gle_APPLE_pixel_buffer)
  2713. #endif
  2714. #ifndef GL_APPLE_rgb_422
  2715. #define GL_APPLE_rgb_422 1
  2716. #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
  2717. #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
  2718. #define GL_RGB_422_APPLE 0x8A1F
  2719. #define GL_RGB_RAW_422_APPLE 0x8A51
  2720. #define GLE_APPLE_rgb_422 GLEGetCurrentVariable(gle_APPLE_rgb_422)
  2721. #endif
  2722. #ifndef GL_APPLE_row_bytes
  2723. #define GL_APPLE_row_bytes 1
  2724. #define GL_PACK_ROW_BYTES_APPLE 0x8A15
  2725. #define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
  2726. #define GLE_APPLE_row_bytes GLEGetCurrentVariable(gle_APPLE_row_bytes)
  2727. #endif
  2728. #ifndef GL_APPLE_specular_vector
  2729. #define GL_APPLE_specular_vector 1
  2730. #define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
  2731. #define GLE_APPLE_specular_vector GLEGetCurrentVariable(gle_APPLE_specular_vector)
  2732. #endif
  2733. #ifndef GL_APPLE_texture_range
  2734. #define GL_APPLE_texture_range 1
  2735. #define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
  2736. #define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
  2737. #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
  2738. #define GL_STORAGE_PRIVATE_APPLE 0x85BD
  2739. #define GL_STORAGE_CACHED_APPLE 0x85BE
  2740. #define GL_STORAGE_SHARED_APPLE 0x85BF
  2741. typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params);
  2742. typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer);
  2743. #define glGetTexParameterPointervAPPLE GLEGetCurrentFunction(glGetTexParameterPointervAPPLE)
  2744. #define glTextureRangeAPPLE GLEGetCurrentFunction(glTextureRangeAPPLE)
  2745. #define GLE_APPLE_texture_range GLEGetCurrentVariable(gle_APPLE_texture_range)
  2746. #endif
  2747. #ifndef GL_APPLE_transform_hint
  2748. #define GL_APPLE_transform_hint 1
  2749. #define GL_TRANSFORM_HINT_APPLE 0x85B1
  2750. #define GLE_APPLE_transform_hint GLEGetCurrentVariable(gle_APPLE_transform_hint)
  2751. #endif
  2752. #ifndef GL_APPLE_vertex_array_object
  2753. #define GL_APPLE_vertex_array_object 1
  2754. // This has been superceded by GL_ARB_vertex_array_object, though if you are using Apple
  2755. // OpenGL prior to 3.x then only this interface will be available. However, we have made
  2756. // it so that glBindVertexArray maps to glBindVertexArrayApple when only the latter is present,
  2757. // thus allowing you to write cleaner code. You can always just call glBindVertexArray instead
  2758. // of glBindVertexArrayAPPLE, etc.
  2759. #define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
  2760. typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
  2761. typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
  2762. typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); // It's not clear whether arrays needs to be const or not.
  2763. typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
  2764. #define glBindVertexArrayAPPLE GLEGetCurrentFunction(glBindVertexArrayAPPLE)
  2765. #define glDeleteVertexArraysAPPLE GLEGetCurrentFunction(glDeleteVertexArraysAPPLE)
  2766. #define glGenVertexArraysAPPLE GLEGetCurrentFunction(glGenVertexArraysAPPLE)
  2767. #define glIsVertexArrayAPPLE GLEGetCurrentFunction(glIsVertexArrayAPPLE)
  2768. #define GLE_APPLE_vertex_array_object GLEGetCurrentVariable(gle_APPLE_vertex_array_object)
  2769. #endif
  2770. #ifndef GL_APPLE_vertex_array_range
  2771. #define GL_APPLE_vertex_array_range 1
  2772. #define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
  2773. #define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
  2774. #define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
  2775. #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520
  2776. #define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
  2777. #define GL_STORAGE_CLIENT_APPLE 0x85B4
  2778. #define GL_STORAGE_CACHED_APPLE 0x85BE
  2779. #define GL_STORAGE_SHARED_APPLE 0x85BF
  2780. typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
  2781. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
  2782. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
  2783. #define glFlushVertexArrayRangeAPPLE GLEGetCurrentFunction(glFlushVertexArrayRangeAPPLE)
  2784. #define glVertexArrayParameteriAPPLE GLEGetCurrentFunction(glVertexArrayParameteriAPPLE)
  2785. #define glVertexArrayRangeAPPLE GLEGetCurrentFunction(glVertexArrayRangeAPPLE)
  2786. #define GLE_APPLE_vertex_array_range GLEGetCurrentVariable(gle_APPLE_vertex_array_range)
  2787. #endif
  2788. #ifndef GL_APPLE_vertex_program_evaluators
  2789. #define GL_APPLE_vertex_program_evaluators 1
  2790. #define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
  2791. #define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
  2792. #define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
  2793. #define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
  2794. #define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
  2795. #define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
  2796. #define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
  2797. #define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
  2798. #define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
  2799. #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
  2800. typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
  2801. typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
  2802. typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
  2803. typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
  2804. typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
  2805. typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
  2806. typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
  2807. #define glDisableVertexAttribAPPLE GLEGetCurrentFunction(glDisableVertexAttribAPPLE)
  2808. #define glEnableVertexAttribAPPLE GLEGetCurrentFunction(glEnableVertexAttribAPPLE)
  2809. #define glIsVertexAttribEnabledAPPLE GLEGetCurrentFunction(glIsVertexAttribEnabledAPPLE)
  2810. #define glMapVertexAttrib1dAPPLE GLEGetCurrentFunction(glMapVertexAttrib1dAPPLE)
  2811. #define glMapVertexAttrib1fAPPLE GLEGetCurrentFunction(glMapVertexAttrib1fAPPLE)
  2812. #define glMapVertexAttrib2dAPPLE GLEGetCurrentFunction(glMapVertexAttrib2dAPPLE)
  2813. #define glMapVertexAttrib2fAPPLE GLEGetCurrentFunction(glMapVertexAttrib2fAPPLE)
  2814. #define GLE_APPLE_vertex_program_evaluators GLEGetCurrentVariable(gle_APPLE_vertex_program_evaluators)
  2815. #endif
  2816. #endif // GLE_CGL_ENABLED
  2817. #ifndef GL_ARB_copy_buffer
  2818. #define GL_ARB_copy_buffer 1
  2819. #define GL_COPY_READ_BUFFER 0x8F36
  2820. #define GL_COPY_WRITE_BUFFER 0x8F37
  2821. typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
  2822. #define glCopyBufferSubData GLEGetCurrentFunction(glCopyBufferSubData)
  2823. #define GLE_ARB_copy_buffer GLEGetCurrentVariable(gle_ARB_copy_buffer)
  2824. #endif
  2825. #ifndef GL_ARB_debug_output
  2826. #define GL_ARB_debug_output 1
  2827. #define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
  2828. #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
  2829. #define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
  2830. #define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
  2831. #define GL_DEBUG_SOURCE_API_ARB 0x8246
  2832. #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
  2833. #define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
  2834. #define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
  2835. #define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
  2836. #define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
  2837. #define GL_DEBUG_TYPE_ERROR_ARB 0x824C
  2838. #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
  2839. #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
  2840. #define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
  2841. #define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
  2842. #define GL_DEBUG_TYPE_OTHER_ARB 0x8251
  2843. #define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
  2844. #define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
  2845. #define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
  2846. #define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
  2847. #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
  2848. #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
  2849. typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
  2850. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
  2851. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
  2852. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
  2853. typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
  2854. #define glDebugMessageCallbackARB GLEGetCurrentFunction(glDebugMessageCallbackARB)
  2855. #define glDebugMessageControlARB GLEGetCurrentFunction(glDebugMessageControlARB)
  2856. #define glDebugMessageInsertARB GLEGetCurrentFunction(glDebugMessageInsertARB)
  2857. #define glGetDebugMessageLogARB GLEGetCurrentFunction(glGetDebugMessageLogARB)
  2858. #define GLE_ARB_debug_output GLEGetCurrentVariable(gle_ARB_debug_output)
  2859. #endif // GL_ARB_debug_output
  2860. #ifndef GL_ARB_depth_buffer_float
  2861. #define GL_ARB_depth_buffer_float 1
  2862. // Supercededs GL_NV_depth_buffer_float
  2863. #define GL_DEPTH_COMPONENT32F 0x8CAC
  2864. #define GL_DEPTH32F_STENCIL8 0x8CAD
  2865. #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
  2866. #define GLE_ARB_depth_buffer_float GLEGetCurrentVariable(gle_ARB_depth_buffer_float)
  2867. #endif
  2868. /* Disabled until needed
  2869. #ifndef GL_ARB_direct_state_access
  2870. #define GL_ARB_direct_state_access 1
  2871. #define GL_TEXTURE_TARGET 0x1006
  2872. #define GL_QUERY_TARGET 0x82EA
  2873. #define GL_TEXTURE_BINDING 0x82EB
  2874. typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
  2875. typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  2876. typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
  2877. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
  2878. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
  2879. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil);
  2880. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value);
  2881. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value);
  2882. typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value);
  2883. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
  2884. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
  2885. typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
  2886. typedef void (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
  2887. typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
  2888. typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  2889. typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  2890. typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers);
  2891. typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
  2892. typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
  2893. typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids);
  2894. typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
  2895. typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers);
  2896. typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures);
  2897. typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
  2898. typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
  2899. typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
  2900. typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
  2901. typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
  2902. typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
  2903. typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
  2904. typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params);
  2905. typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params);
  2906. typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params);
  2907. typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
  2908. typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
  2909. typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param);
  2910. typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
  2911. typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
  2912. typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params);
  2913. typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params);
  2914. typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params);
  2915. typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params);
  2916. typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params);
  2917. typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params);
  2918. typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param);
  2919. typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param);
  2920. typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param);
  2921. typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param);
  2922. typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
  2923. typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param);
  2924. typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments);
  2925. typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
  2926. typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
  2927. typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
  2928. typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
  2929. typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
  2930. typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
  2931. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode);
  2932. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
  2933. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
  2934. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode);
  2935. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
  2936. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
  2937. typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
  2938. typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
  2939. typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  2940. typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
  2941. typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
  2942. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params);
  2943. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params);
  2944. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
  2945. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param);
  2946. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
  2947. typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param);
  2948. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
  2949. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  2950. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
  2951. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  2952. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
  2953. typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
  2954. typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
  2955. typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
  2956. typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
  2957. typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
  2958. typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
  2959. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
  2960. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
  2961. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  2962. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  2963. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
  2964. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
  2965. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
  2966. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
  2967. #define glBindTextureUnit GLEGetCurrentFunction(glBindTextureUnit)
  2968. #define glBlitNamedFramebuffer GLEGetCurrentFunction(glBlitNamedFramebuffer)
  2969. #define glCheckNamedFramebufferStatus GLEGetCurrentFunction(glCheckNamedFramebufferStatus)
  2970. #define glClearNamedBufferData GLEGetCurrentFunction(glClearNamedBufferData)
  2971. #define glClearNamedBufferSubData GLEGetCurrentFunction(glClearNamedBufferSubData)
  2972. #define glClearNamedFramebufferfi GLEGetCurrentFunction(glClearNamedFramebufferfi)
  2973. #define glClearNamedFramebufferfv GLEGetCurrentFunction(glClearNamedFramebufferfv)
  2974. #define glClearNamedFramebufferiv GLEGetCurrentFunction(glClearNamedFramebufferiv)
  2975. #define glClearNamedFramebufferuiv GLEGetCurrentFunction(glClearNamedFramebufferuiv)
  2976. #define glCompressedTextureSubImage1D GLEGetCurrentFunction(glCompressedTextureSubImage1D)
  2977. #define glCompressedTextureSubImage2D GLEGetCurrentFunction(glCompressedTextureSubImage2D)
  2978. #define glCompressedTextureSubImage3D GLEGetCurrentFunction(glCompressedTextureSubImage3D)
  2979. #define glCopyNamedBufferSubData GLEGetCurrentFunction(glCopyNamedBufferSubData)
  2980. #define glCopyTextureSubImage1D GLEGetCurrentFunction(glCopyTextureSubImage1D)
  2981. #define glCopyTextureSubImage2D GLEGetCurrentFunction(glCopyTextureSubImage2D)
  2982. #define glCopyTextureSubImage3D GLEGetCurrentFunction(glCopyTextureSubImage3D)
  2983. #define glCreateBuffers GLEGetCurrentFunction(glCreateBuffers)
  2984. #define glCreateFramebuffers GLEGetCurrentFunction(glCreateFramebuffers)
  2985. #define glCreateProgramPipelines GLEGetCurrentFunction(glCreateProgramPipelines)
  2986. #define glCreateQueries GLEGetCurrentFunction(glCreateQueries)
  2987. #define glCreateRenderbuffers GLEGetCurrentFunction(glCreateRenderbuffers)
  2988. #define glCreateSamplers GLEGetCurrentFunction(glCreateSamplers)
  2989. #define glCreateTextures GLEGetCurrentFunction(glCreateTextures)
  2990. #define glCreateTransformFeedbacks GLEGetCurrentFunction(glCreateTransformFeedbacks)
  2991. #define glCreateVertexArrays GLEGetCurrentFunction(glCreateVertexArrays)
  2992. #define glDisableVertexArrayAttrib GLEGetCurrentFunction(glDisableVertexArrayAttrib)
  2993. #define glEnableVertexArrayAttrib GLEGetCurrentFunction(glEnableVertexArrayAttrib)
  2994. #define glFlushMappedNamedBufferRange GLEGetCurrentFunction(glFlushMappedNamedBufferRange)
  2995. #define glGenerateTextureMipmap GLEGetCurrentFunction(glGenerateTextureMipmap)
  2996. #define glGetCompressedTextureImage GLEGetCurrentFunction(glGetCompressedTextureImage)
  2997. #define glGetNamedBufferParameteri64v GLEGetCurrentFunction(glGetNamedBufferParameteri64v)
  2998. #define glGetNamedBufferParameteriv GLEGetCurrentFunction(glGetNamedBufferParameteriv)
  2999. #define glGetNamedBufferPointerv GLEGetCurrentFunction(glGetNamedBufferPointerv)
  3000. #define glGetNamedBufferSubData GLEGetCurrentFunction(glGetNamedBufferSubData)
  3001. #define glGetNamedFramebufferAttachmentParameteriv GLEGetCurrentFunction(glGetNamedFramebufferAttachmentParameteriv)
  3002. #define glGetNamedFramebufferParameteriv GLEGetCurrentFunction(glGetNamedFramebufferParameteriv)
  3003. #define glGetNamedRenderbufferParameteriv GLEGetCurrentFunction(glGetNamedRenderbufferParameteriv)
  3004. #define glGetTextureImage GLEGetCurrentFunction(glGetTextureImage)
  3005. #define glGetTextureLevelParameterfv GLEGetCurrentFunction(glGetTextureLevelParameterfv)
  3006. #define glGetTextureLevelParameteriv GLEGetCurrentFunction(glGetTextureLevelParameteriv)
  3007. #define glGetTextureParameterIiv GLEGetCurrentFunction(glGetTextureParameterIiv)
  3008. #define glGetTextureParameterIuiv GLEGetCurrentFunction(glGetTextureParameterIuiv)
  3009. #define glGetTextureParameterfv GLEGetCurrentFunction(glGetTextureParameterfv)
  3010. #define glGetTextureParameteriv GLEGetCurrentFunction(glGetTextureParameteriv)
  3011. #define glGetTransformFeedbacki64_v GLEGetCurrentFunction(glGetTransformFeedbacki64_v)
  3012. #define glGetTransformFeedbacki_v GLEGetCurrentFunction(glGetTransformFeedbacki_v)
  3013. #define glGetTransformFeedbackiv GLEGetCurrentFunction(glGetTransformFeedbackiv)
  3014. #define glGetVertexArrayIndexed64iv GLEGetCurrentFunction(glGetVertexArrayIndexed64iv)
  3015. #define glGetVertexArrayIndexediv GLEGetCurrentFunction(glGetVertexArrayIndexediv)
  3016. #define glGetVertexArrayiv GLEGetCurrentFunction(glGetVertexArrayiv)
  3017. #define glInvalidateNamedFramebufferData GLEGetCurrentFunction(glInvalidateNamedFramebufferData)
  3018. #define glInvalidateNamedFramebufferSubData GLEGetCurrentFunction(glInvalidateNamedFramebufferSubData)
  3019. #define glMapNamedBuffer GLEGetCurrentFunction(glMapNamedBuffer)
  3020. #define glMapNamedBufferRange GLEGetCurrentFunction(glMapNamedBufferRange)
  3021. #define glNamedBufferData GLEGetCurrentFunction(glNamedBufferData)
  3022. #define glNamedBufferStorage GLEGetCurrentFunction(glNamedBufferStorage)
  3023. #define glNamedBufferSubData GLEGetCurrentFunction(glNamedBufferSubData)
  3024. #define glNamedFramebufferDrawBuffer GLEGetCurrentFunction(glNamedFramebufferDrawBuffer)
  3025. #define glNamedFramebufferDrawBuffers GLEGetCurrentFunction(glNamedFramebufferDrawBuffers)
  3026. #define glNamedFramebufferParameteri GLEGetCurrentFunction(glNamedFramebufferParameteri)
  3027. #define glNamedFramebufferReadBuffer GLEGetCurrentFunction(glNamedFramebufferReadBuffer)
  3028. #define glNamedFramebufferRenderbuffer GLEGetCurrentFunction(glNamedFramebufferRenderbuffer)
  3029. #define glNamedFramebufferTexture GLEGetCurrentFunction(glNamedFramebufferTexture)
  3030. #define glNamedFramebufferTextureLayer GLEGetCurrentFunction(glNamedFramebufferTextureLayer)
  3031. #define glNamedRenderbufferStorage GLEGetCurrentFunction(glNamedRenderbufferStorage)
  3032. #define glNamedRenderbufferStorageMultisample GLEGetCurrentFunction(glNamedRenderbufferStorageMultisample)
  3033. #define glTextureBuffer GLEGetCurrentFunction(glTextureBuffer)
  3034. #define glTextureBufferRange GLEGetCurrentFunction(glTextureBufferRange)
  3035. #define glTextureParameterIiv GLEGetCurrentFunction(glTextureParameterIiv)
  3036. #define glTextureParameterIuiv GLEGetCurrentFunction(glTextureParameterIuiv)
  3037. #define glTextureParameterf GLEGetCurrentFunction(glTextureParameterf)
  3038. #define glTextureParameterfv GLEGetCurrentFunction(glTextureParameterfv)
  3039. #define glTextureParameteri GLEGetCurrentFunction(glTextureParameteri)
  3040. #define glTextureParameteriv GLEGetCurrentFunction(glTextureParameteriv)
  3041. #define glTextureStorage1D GLEGetCurrentFunction(glTextureStorage1D)
  3042. #define glTextureStorage2D GLEGetCurrentFunction(glTextureStorage2D)
  3043. #define glTextureStorage2DMultisample GLEGetCurrentFunction(glTextureStorage2DMultisample)
  3044. #define glTextureStorage3D GLEGetCurrentFunction(glTextureStorage3D)
  3045. #define glTextureStorage3DMultisample GLEGetCurrentFunction(glTextureStorage3DMultisample)
  3046. #define glTextureSubImage1D GLEGetCurrentFunction(glTextureSubImage1D)
  3047. #define glTextureSubImage2D GLEGetCurrentFunction(glTextureSubImage2D)
  3048. #define glTextureSubImage3D GLEGetCurrentFunction(glTextureSubImage3D)
  3049. #define glTransformFeedbackBufferBase GLEGetCurrentFunction(glTransformFeedbackBufferBase)
  3050. #define glTransformFeedbackBufferRange GLEGetCurrentFunction(glTransformFeedbackBufferRange)
  3051. #define glUnmapNamedBuffer GLEGetCurrentFunction(glUnmapNamedBuffer)
  3052. #define glVertexArrayAttribBinding GLEGetCurrentFunction(glVertexArrayAttribBinding)
  3053. #define glVertexArrayAttribFormat GLEGetCurrentFunction(glVertexArrayAttribFormat)
  3054. #define glVertexArrayAttribIFormat GLEGetCurrentFunction(glVertexArrayAttribIFormat)
  3055. #define glVertexArrayAttribLFormat GLEGetCurrentFunction(glVertexArrayAttribLFormat)
  3056. #define glVertexArrayBindingDivisor GLEGetCurrentFunction(glVertexArrayBindingDivisor)
  3057. #define glVertexArrayElementBuffer GLEGetCurrentFunction(glVertexArrayElementBuffer)
  3058. #define glVertexArrayVertexBuffer GLEGetCurrentFunction(glVertexArrayVertexBuffer)
  3059. #define glVertexArrayVertexBuffers GLEGetCurrentFunction(glVertexArrayVertexBuffers)
  3060. #define GLE_ARB_direct_state_access GLEGetCurrentVariable(gle_ARB_direct_state_access)
  3061. #endif // GL_ARB_direct_state_access */
  3062. #ifndef GL_ARB_ES2_compatibility
  3063. #define GL_ARB_ES2_compatibility 1
  3064. // This is for OpenGL ES compatibility.
  3065. #define GL_FIXED 0x140C
  3066. #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
  3067. #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
  3068. #define GL_RGB565 0x8D62
  3069. #define GL_LOW_FLOAT 0x8DF0
  3070. #define GL_MEDIUM_FLOAT 0x8DF1
  3071. #define GL_HIGH_FLOAT 0x8DF2
  3072. #define GL_LOW_INT 0x8DF3
  3073. #define GL_MEDIUM_INT 0x8DF4
  3074. #define GL_HIGH_INT 0x8DF5
  3075. #define GL_SHADER_BINARY_FORMATS 0x8DF8
  3076. #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
  3077. #define GL_SHADER_COMPILER 0x8DFA
  3078. #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
  3079. #define GL_MAX_VARYING_VECTORS 0x8DFC
  3080. #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
  3081. typedef int GLfixed;
  3082. typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d);
  3083. typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
  3084. typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision);
  3085. typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void);
  3086. typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length);
  3087. #define glClearDepthf GLEGetCurrentFunction(glClearDepthf)
  3088. #define glDepthRangef GLEGetCurrentFunction(glDepthRangef)
  3089. #define glGetShaderPrecisionFormat GLEGetCurrentFunction(glGetShaderPrecisionFormat)
  3090. #define glReleaseShaderCompiler GLEGetCurrentFunction(glReleaseShaderCompiler)
  3091. #define glShaderBinary GLEGetCurrentFunction(glShaderBinary)
  3092. #define GLE_ARB_ES2_compatibility GLEGetCurrentVariable(gle_ARB_ES2_compatibility)
  3093. #endif
  3094. #ifndef GL_ARB_framebuffer_object
  3095. #define GL_ARB_framebuffer_object 1
  3096. // GL_ARB_framebuffer_object is part of the OpenGL 4.4 core profile.
  3097. #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
  3098. #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
  3099. #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
  3100. #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
  3101. #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
  3102. #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
  3103. #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
  3104. #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
  3105. #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
  3106. #define GL_FRAMEBUFFER_DEFAULT 0x8218
  3107. #define GL_FRAMEBUFFER_UNDEFINED 0x8219
  3108. #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
  3109. #define GL_INDEX 0x8222
  3110. #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
  3111. #define GL_DEPTH_STENCIL 0x84F9
  3112. #define GL_UNSIGNED_INT_24_8 0x84FA
  3113. #define GL_DEPTH24_STENCIL8 0x88F0
  3114. #define GL_TEXTURE_STENCIL_SIZE 0x88F1
  3115. #define GL_UNSIGNED_NORMALIZED 0x8C17
  3116. #define GL_SRGB 0x8C40
  3117. #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
  3118. #define GL_FRAMEBUFFER_BINDING 0x8CA6
  3119. #define GL_RENDERBUFFER_BINDING 0x8CA7
  3120. #define GL_READ_FRAMEBUFFER 0x8CA8
  3121. #define GL_DRAW_FRAMEBUFFER 0x8CA9
  3122. #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
  3123. #define GL_RENDERBUFFER_SAMPLES 0x8CAB
  3124. #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
  3125. #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
  3126. #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
  3127. #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
  3128. #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
  3129. #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
  3130. #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
  3131. #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
  3132. #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
  3133. #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
  3134. #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
  3135. #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
  3136. #define GL_COLOR_ATTACHMENT0 0x8CE0
  3137. #define GL_COLOR_ATTACHMENT1 0x8CE1
  3138. #define GL_COLOR_ATTACHMENT2 0x8CE2
  3139. #define GL_COLOR_ATTACHMENT3 0x8CE3
  3140. #define GL_COLOR_ATTACHMENT4 0x8CE4
  3141. #define GL_COLOR_ATTACHMENT5 0x8CE5
  3142. #define GL_COLOR_ATTACHMENT6 0x8CE6
  3143. #define GL_COLOR_ATTACHMENT7 0x8CE7
  3144. #define GL_COLOR_ATTACHMENT8 0x8CE8
  3145. #define GL_COLOR_ATTACHMENT9 0x8CE9
  3146. #define GL_COLOR_ATTACHMENT10 0x8CEA
  3147. #define GL_COLOR_ATTACHMENT11 0x8CEB
  3148. #define GL_COLOR_ATTACHMENT12 0x8CEC
  3149. #define GL_COLOR_ATTACHMENT13 0x8CED
  3150. #define GL_COLOR_ATTACHMENT14 0x8CEE
  3151. #define GL_COLOR_ATTACHMENT15 0x8CEF
  3152. #define GL_DEPTH_ATTACHMENT 0x8D00
  3153. #define GL_STENCIL_ATTACHMENT 0x8D20
  3154. #define GL_FRAMEBUFFER 0x8D40
  3155. #define GL_RENDERBUFFER 0x8D41
  3156. #define GL_RENDERBUFFER_WIDTH 0x8D42
  3157. #define GL_RENDERBUFFER_HEIGHT 0x8D43
  3158. #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
  3159. #define GL_STENCIL_INDEX1 0x8D46
  3160. #define GL_STENCIL_INDEX4 0x8D47
  3161. #define GL_STENCIL_INDEX8 0x8D48
  3162. #define GL_STENCIL_INDEX16 0x8D49
  3163. #define GL_RENDERBUFFER_RED_SIZE 0x8D50
  3164. #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
  3165. #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
  3166. #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
  3167. #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
  3168. #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
  3169. #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
  3170. #define GL_MAX_SAMPLES 0x8D57
  3171. typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
  3172. typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
  3173. typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  3174. typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
  3175. typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers);
  3176. typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers);
  3177. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
  3178. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
  3179. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
  3180. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
  3181. typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer);
  3182. typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
  3183. typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
  3184. typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target);
  3185. typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
  3186. typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
  3187. typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
  3188. typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
  3189. typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
  3190. typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  3191. #define glBindFramebuffer GLEGetCurrentFunction(glBindFramebuffer)
  3192. #define glBindRenderbuffer GLEGetCurrentFunction(glBindRenderbuffer)
  3193. #define glBlitFramebuffer GLEGetCurrentFunction(glBlitFramebuffer)
  3194. #define glCheckFramebufferStatus GLEGetCurrentFunction(glCheckFramebufferStatus)
  3195. #define glDeleteFramebuffers GLEGetCurrentFunction(glDeleteFramebuffers)
  3196. #define glDeleteRenderbuffers GLEGetCurrentFunction(glDeleteRenderbuffers)
  3197. #define glFramebufferRenderbuffer GLEGetCurrentFunction(glFramebufferRenderbuffer)
  3198. #define glFramebufferTexture1D GLEGetCurrentFunction(glFramebufferTexture1D)
  3199. #define glFramebufferTexture2D GLEGetCurrentFunction(glFramebufferTexture2D)
  3200. #define glFramebufferTexture3D GLEGetCurrentFunction(glFramebufferTexture3D)
  3201. #define glFramebufferTextureLayer GLEGetCurrentFunction(glFramebufferTextureLayer)
  3202. #define glGenFramebuffers GLEGetCurrentFunction(glGenFramebuffers)
  3203. #define glGenRenderbuffers GLEGetCurrentFunction(glGenRenderbuffers)
  3204. #define glGenerateMipmap GLEGetCurrentFunction(glGenerateMipmap)
  3205. #define glGetFramebufferAttachmentParameteriv GLEGetCurrentFunction(glGetFramebufferAttachmentParameteriv)
  3206. #define glGetRenderbufferParameteriv GLEGetCurrentFunction(glGetRenderbufferParameteriv)
  3207. #define glIsFramebuffer GLEGetCurrentFunction(glIsFramebuffer)
  3208. #define glIsRenderbuffer GLEGetCurrentFunction(glIsRenderbuffer)
  3209. #define glRenderbufferStorage GLEGetCurrentFunction(glRenderbufferStorage)
  3210. #define glRenderbufferStorageMultisample GLEGetCurrentFunction(glRenderbufferStorageMultisample)
  3211. #define GLE_ARB_framebuffer_object GLEGetCurrentVariable(gle_ARB_framebuffer_object)
  3212. #endif // GL_ARB_framebuffer_object
  3213. #ifndef GL_ARB_framebuffer_sRGB
  3214. #define GL_ARB_framebuffer_sRGB 1
  3215. // GL_ARB_framebuffer_sRGB is part of the OpenGL 4.4 core profile.
  3216. #define GL_FRAMEBUFFER_SRGB 0x8DB9
  3217. #define GLE_ARB_framebuffer_sRGB GLEGetCurrentVariable(gle_ARB_framebuffer_sRGB)
  3218. #endif
  3219. #ifndef GL_ARB_texture_multisample
  3220. #define GL_ARB_texture_multisample 1
  3221. #define GL_SAMPLE_POSITION 0x8E50
  3222. #define GL_SAMPLE_MASK 0x8E51
  3223. #define GL_SAMPLE_MASK_VALUE 0x8E52
  3224. #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
  3225. #define GL_TEXTURE_2D_MULTISAMPLE 0x9100
  3226. #define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
  3227. #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
  3228. #define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
  3229. #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
  3230. #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
  3231. #define GL_TEXTURE_SAMPLES 0x9106
  3232. #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
  3233. #define GL_SAMPLER_2D_MULTISAMPLE 0x9108
  3234. #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
  3235. #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
  3236. #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
  3237. #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
  3238. #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
  3239. #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
  3240. #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
  3241. #define GL_MAX_INTEGER_SAMPLES 0x9110
  3242. typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val);
  3243. typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
  3244. typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
  3245. typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
  3246. #define glGetMultisamplefv GLEGetCurrentFunction(glGetMultisamplefv)
  3247. #define glSampleMaski GLEGetCurrentFunction(glSampleMaski)
  3248. #define glTexImage2DMultisample GLEGetCurrentFunction(glTexImage2DMultisample)
  3249. #define glTexImage3DMultisample GLEGetCurrentFunction(glTexImage3DMultisample)
  3250. #define GLE_ARB_texture_multisample GLEGetCurrentVariable(gle_ARB_texture_multisample)
  3251. #endif // GL_ARB_texture_multisample
  3252. #ifndef GL_ARB_texture_non_power_of_two
  3253. #define GL_ARB_texture_non_power_of_two 1
  3254. #define GLE_ARB_texture_non_power_of_two GLEGetCurrentVariable(gle_ARB_texture_non_power_of_two)
  3255. #endif
  3256. #ifndef GL_ARB_texture_rectangle
  3257. #define GL_ARB_texture_rectangle 1
  3258. // texture_rectangle was added to the OpenGL 3.1 core profile and so this extension is not needed
  3259. // unless using an earlier version of OpenGL.
  3260. // There are also the GL_EXT_texture_rectangle and GL_NV_texture_rectangle extensions. Apple reports
  3261. // the preseence of GL_EXT_texture_rectangle but not GL_ARB_texture_rectangle or GL_NV_texture_rectangle.
  3262. // You should check for GL_ARB_texture_rectangle instead of these other two.
  3263. #define GL_TEXTURE_RECTANGLE_ARB 0x84F5
  3264. #define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
  3265. #define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
  3266. #define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
  3267. #define GL_SAMPLER_2D_RECT_ARB 0x8B63
  3268. #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
  3269. #define GLE_ARB_texture_rectangle GLEGetCurrentVariable(gle_ARB_texture_rectangle)
  3270. #endif
  3271. #ifndef GL_ARB_texture_storage
  3272. #define GL_ARB_texture_storage 1
  3273. #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
  3274. typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  3275. typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  3276. typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  3277. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  3278. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  3279. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  3280. #define glTexStorage1D GLEGetCurrentFunction(glTexStorage1D)
  3281. #define glTexStorage2D GLEGetCurrentFunction(glTexStorage2D)
  3282. #define glTexStorage3D GLEGetCurrentFunction(glTexStorage3D)
  3283. #define glTextureStorage1DEXT GLEGetCurrentFunction(glTextureStorage1DEXT)
  3284. #define glTextureStorage2DEXT GLEGetCurrentFunction(glTextureStorage2DEXT)
  3285. #define glTextureStorage3DEXT GLEGetCurrentFunction(glTextureStorage3DEXT)
  3286. #define GLE_ARB_texture_storage GLEGetCurrentVariable(gle_ARB_texture_storage)
  3287. #endif
  3288. #ifndef GL_ARB_texture_storage_multisample
  3289. #define GL_ARB_texture_storage_multisample 1
  3290. typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
  3291. typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
  3292. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
  3293. typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
  3294. #define glTexStorage2DMultisample GLEGetCurrentFunction(glTexStorage2DMultisample)
  3295. #define glTexStorage3DMultisample GLEGetCurrentFunction(glTexStorage3DMultisample)
  3296. #define glTextureStorage2DMultisampleEXT GLEGetCurrentFunction(glTextureStorage2DMultisampleEXT)
  3297. #define glTextureStorage3DMultisampleEXT GLEGetCurrentFunction(glTextureStorage3DMultisampleEXT)
  3298. #define GLE_ARB_texture_storage_multisample GLEGetCurrentVariable(gle_ARB_texture_storage_multisample)
  3299. #endif
  3300. #ifndef GL_ARB_timer_query
  3301. #define GL_ARB_timer_query 1
  3302. #define GL_TIME_ELAPSED 0x88BF
  3303. #define GL_TIMESTAMP 0x8E28
  3304. typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params);
  3305. typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params);
  3306. typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
  3307. #define glGetQueryObjecti64v GLEGetCurrentFunction(glGetQueryObjecti64v)
  3308. #define glGetQueryObjectui64v GLEGetCurrentFunction(glGetQueryObjectui64v)
  3309. #define glQueryCounter GLEGetCurrentFunction(glQueryCounter)
  3310. #define GLE_ARB_timer_query GLEGetCurrentVariable(gle_ARB_timer_query)
  3311. #endif
  3312. #ifndef GL_ARB_vertex_array_object
  3313. #define GL_ARB_vertex_array_object 1
  3314. #define GL_VERTEX_ARRAY_BINDING 0x85B5
  3315. typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
  3316. typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays);
  3317. typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
  3318. typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array);
  3319. #define glBindVertexArray GLEGetCurrentFunction(glBindVertexArray)
  3320. #define glDeleteVertexArrays GLEGetCurrentFunction(glDeleteVertexArrays)
  3321. #define glGenVertexArrays GLEGetCurrentFunction(glGenVertexArrays)
  3322. #define glIsVertexArray GLEGetCurrentFunction(glIsVertexArray)
  3323. #define GLE_ARB_vertex_array_object GLEGetCurrentVariable(gle_ARB_vertex_array_object)
  3324. #endif
  3325. /* Disabled until needed
  3326. #ifndef GL_ARB_vertex_attrib_binding
  3327. #define GL_ARB_vertex_attrib_binding 1
  3328. #define GL_VERTEX_ATTRIB_BINDING 0x82D4
  3329. #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
  3330. #define GL_VERTEX_BINDING_DIVISOR 0x82D6
  3331. #define GL_VERTEX_BINDING_OFFSET 0x82D7
  3332. #define GL_VERTEX_BINDING_STRIDE 0x82D8
  3333. #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
  3334. #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
  3335. #define GL_VERTEX_BINDING_BUFFER 0x8F4F
  3336. typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
  3337. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
  3338. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
  3339. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
  3340. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  3341. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  3342. typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
  3343. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
  3344. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
  3345. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  3346. typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
  3347. typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
  3348. #define glBindVertexBuffer GLEGetCurrentFunction(glBindVertexBuffer)
  3349. #define glVertexArrayBindVertexBufferEXT GLEGetCurrentFunction(glVertexArrayBindVertexBufferEXT)
  3350. #define glVertexArrayVertexAttribBindingEXT GLEGetCurrentFunction(glVertexArrayVertexAttribBindingEXT)
  3351. #define glVertexArrayVertexAttribFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribFormatEXT)
  3352. #define glVertexArrayVertexAttribIFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribIFormatEXT)
  3353. #define glVertexArrayVertexAttribLFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribLFormatEXT)
  3354. #define glVertexArrayVertexBindingDivisorEXT GLEGetCurrentFunction(glVertexArrayVertexBindingDivisorEXT)
  3355. #define glVertexAttribBinding GLEGetCurrentFunction(glVertexAttribBinding)
  3356. #define glVertexAttribFormat GLEGetCurrentFunction(glVertexAttribFormat)
  3357. #define glVertexAttribIFormat GLEGetCurrentFunction(glVertexAttribIFormat)
  3358. #define glVertexAttribLFormat GLEGetCurrentFunction(glVertexAttribLFormat)
  3359. #define glVertexBindingDivisor GLEGetCurrentFunction(glVertexBindingDivisor)
  3360. #define GLE_ARB_vertex_attrib_binding GLEGetCurrentVariable(gle_ARB_vertex_attrib_binding)
  3361. #endif
  3362. */
  3363. #ifndef GL_EXT_draw_buffers2
  3364. #define GL_EXT_draw_buffers2 1
  3365. typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
  3366. typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
  3367. typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
  3368. typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data);
  3369. typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data);
  3370. typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
  3371. #define glColorMaskIndexedEXT GLEGetCurrentFunction(glColorMaskIndexedEXT)
  3372. #define glDisableIndexedEXT GLEGetCurrentFunction(glDisableIndexedEXT)
  3373. #define glEnableIndexedEXT GLEGetCurrentFunction(glEnableIndexedEXT)
  3374. #define glGetBooleanIndexedvEXT GLEGetCurrentFunction(glGetBooleanIndexedvEXT)
  3375. #define glGetIntegerIndexedvEXT GLEGetCurrentFunction(glGetIntegerIndexedvEXT)
  3376. #define glIsEnabledIndexedEXT GLEGetCurrentFunction(glIsEnabledIndexedEXT)
  3377. #define GLE_EXT_draw_buffers2 GLEGetCurrentVariable(gle_EXT_draw_buffers2)
  3378. #endif
  3379. #ifndef GL_EXT_texture_compression_s3tc
  3380. #define GL_EXT_texture_compression_s3tc 1
  3381. #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
  3382. #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
  3383. #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
  3384. #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
  3385. #define GLE_EXT_texture_compression_s3tc GLEGetCurrentVariable(gle_EXT_texture_compression_s3tc)
  3386. #endif
  3387. #ifndef GL_EXT_texture_filter_anisotropic
  3388. #define GL_EXT_texture_filter_anisotropic 1
  3389. #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
  3390. #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
  3391. #define GLE_EXT_texture_filter_anisotropic GLEGetCurrentVariable(gle_EXT_texture_filter_anisotropic)
  3392. #endif
  3393. #ifndef GL_EXT_texture_sRGB
  3394. #define GL_EXT_texture_sRGB 1
  3395. #define GL_SRGB_EXT 0x8C40
  3396. #define GL_SRGB8_EXT 0x8C41
  3397. #define GL_SRGB_ALPHA_EXT 0x8C42
  3398. #define GL_SRGB8_ALPHA8_EXT 0x8C43
  3399. #define GL_SLUMINANCE_ALPHA_EXT 0x8C44
  3400. #define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
  3401. #define GL_SLUMINANCE_EXT 0x8C46
  3402. #define GL_SLUMINANCE8_EXT 0x8C47
  3403. #define GL_COMPRESSED_SRGB_EXT 0x8C48
  3404. #define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
  3405. #define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
  3406. #define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
  3407. #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
  3408. #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
  3409. #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
  3410. #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
  3411. #define GLE_EXT_texture_sRGB GLEGetCurrentVariable(gle_EXT_texture_sRGB)
  3412. #endif
  3413. /* Disabled until needed
  3414. #ifndef GL_KHR_context_flush_control
  3415. #define GL_KHR_context_flush_control 1
  3416. #define GLE_KHR_context_flush_control GLEGetCurrentVariable(gle_KHR_context_flush_control)
  3417. #endif
  3418. */
  3419. #ifndef GL_KHR_debug
  3420. #define GL_KHR_debug 1
  3421. #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
  3422. #define GL_STACK_OVERFLOW 0x0503
  3423. #define GL_STACK_UNDERFLOW 0x0504
  3424. #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
  3425. #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
  3426. #define GL_DEBUG_CALLBACK_FUNCTION 0x8244
  3427. #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
  3428. #define GL_DEBUG_SOURCE_API 0x8246
  3429. #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
  3430. #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
  3431. #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
  3432. #define GL_DEBUG_SOURCE_APPLICATION 0x824A
  3433. #define GL_DEBUG_SOURCE_OTHER 0x824B
  3434. #define GL_DEBUG_TYPE_ERROR 0x824C
  3435. #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
  3436. #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
  3437. #define GL_DEBUG_TYPE_PORTABILITY 0x824F
  3438. #define GL_DEBUG_TYPE_PERFORMANCE 0x8250
  3439. #define GL_DEBUG_TYPE_OTHER 0x8251
  3440. #define GL_DEBUG_TYPE_MARKER 0x8268
  3441. #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
  3442. #define GL_DEBUG_TYPE_POP_GROUP 0x826A
  3443. #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
  3444. #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
  3445. #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
  3446. #define GL_BUFFER 0x82E0
  3447. #define GL_SHADER 0x82E1
  3448. #define GL_PROGRAM 0x82E2
  3449. #define GL_QUERY 0x82E3
  3450. #define GL_PROGRAM_PIPELINE 0x82E4
  3451. #define GL_SAMPLER 0x82E6
  3452. #define GL_DISPLAY_LIST 0x82E7
  3453. #define GL_MAX_LABEL_LENGTH 0x82E8
  3454. #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
  3455. #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
  3456. #define GL_DEBUG_LOGGED_MESSAGES 0x9145
  3457. #define GL_DEBUG_SEVERITY_HIGH 0x9146
  3458. #define GL_DEBUG_SEVERITY_MEDIUM 0x9147
  3459. #define GL_DEBUG_SEVERITY_LOW 0x9148
  3460. #define GL_DEBUG_OUTPUT 0x92E0
  3461. typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
  3462. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
  3463. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
  3464. typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
  3465. typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
  3466. typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
  3467. typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
  3468. typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
  3469. typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar* label);
  3470. typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void);
  3471. typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
  3472. #define glDebugMessageCallback GLEGetCurrentFunction(glDebugMessageCallback)
  3473. #define glDebugMessageControl GLEGetCurrentFunction(glDebugMessageControl)
  3474. #define glDebugMessageInsert GLEGetCurrentFunction(glDebugMessageInsert)
  3475. #define glGetDebugMessageLog GLEGetCurrentFunction(glGetDebugMessageLog)
  3476. #define glGetObjectLabel GLEGetCurrentFunction(glGetObjectLabel)
  3477. #define glGetObjectPtrLabel GLEGetCurrentFunction(glGetObjectPtrLabel)
  3478. #define glObjectLabel GLEGetCurrentFunction(glObjectLabel)
  3479. #define glObjectPtrLabel GLEGetCurrentFunction(glObjectPtrLabel)
  3480. #define glPopDebugGroup GLEGetCurrentFunction(glPopDebugGroup)
  3481. #define glPushDebugGroup GLEGetCurrentFunction(glPushDebugGroup)
  3482. #define GLE_KHR_debug GLEGetCurrentVariable(gle_KHR_debug)
  3483. #endif // GL_KHR_debug
  3484. #ifndef GL_KHR_robust_buffer_access_behavior
  3485. #define GL_KHR_robust_buffer_access_behavior 1
  3486. #define GLE_KHR_robust_buffer_access_behavior GLEGetCurrentVariable(gle_KHR_robust_buffer_access_behavior)
  3487. #endif
  3488. /* Disabled until needed
  3489. #ifndef GL_KHR_robustness
  3490. #define GL_KHR_robustness 1
  3491. #define GL_CONTEXT_LOST 0x0507
  3492. #define GL_LOSE_CONTEXT_ON_RESET 0x8252
  3493. #define GL_GUILTY_CONTEXT_RESET 0x8253
  3494. #define GL_INNOCENT_CONTEXT_RESET 0x8254
  3495. #define GL_UNKNOWN_CONTEXT_RESET 0x8255
  3496. #define GL_RESET_NOTIFICATION_STRATEGY 0x8256
  3497. #define GL_NO_RESET_NOTIFICATION 0x8261
  3498. #define GL_CONTEXT_ROBUST_ACCESS 0x90F3
  3499. typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
  3500. typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
  3501. typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
  3502. typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
  3503. #define glGetnUniformfv GLEGetCurrentFunction(glGetnUniformfv)
  3504. #define glGetnUniformiv GLEGetCurrentFunction(glGetnUniformiv)
  3505. #define glGetnUniformuiv GLEGetCurrentFunction(glGetnUniformuiv)
  3506. #define glReadnPixels GLEGetCurrentFunction(glReadnPixels)
  3507. #define GLE_KHR_robustness GLEGetCurrentVariable(gle_KHR_robustness)
  3508. #endif // GL_KHR_robustness
  3509. */
  3510. #ifndef GL_WIN_swap_hint
  3511. #define GL_WIN_swap_hint 1
  3512. typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
  3513. #define glAddSwapHintRectWIN GLEGetCurrentFunction(glAddSwapHintRectWIN)
  3514. #define GLE_WIN_swap_hint GLEGetCurrentVariable(gle_WIN_swap_hint)
  3515. #endif
  3516. /************************************************************************************
  3517. Windows-specific (WGL) functionality
  3518. ************************************************************************************/
  3519. #if defined(GLE_WGL_ENABLED)
  3520. #ifdef __wglext_h_
  3521. #error wglext.h was included before this header. This header needs to be inlcuded instead of or at least before wglext.h
  3522. #endif
  3523. #define __wglext_h_ // Prevent wglext.h from having any future effect if it's #included.
  3524. // Declare shared types and structs from wglext.h
  3525. DECLARE_HANDLE(HPBUFFERARB); // This type is used by a couple extensions.
  3526. // WGL functions from <wingdi.h>
  3527. #if 0 // defined(GLE_HOOKING_ENABLED) We currently don't hook these.
  3528. #define wglCopyContext(...) GLEGetCurrentFunction(wglCopyContext)(__VA_ARGS__)
  3529. #define wglCreateContext(...) GLEGetCurrentFunction(wglCreateContext)(__VA_ARGS__)
  3530. #define wglCreateLayerContext(...) GLEGetCurrentFunction(wglCreateLayerContext)(__VA_ARGS__)
  3531. #define wglDeleteContext(...) GLEGetCurrentFunction(wglDeleteContext)(__VA_ARGS__)
  3532. #define wglGetCurrentContext(...) GLEGetCurrentFunction(wglGetCurrentContext)(__VA_ARGS__)
  3533. #define wglGetCurrentDC(...) GLEGetCurrentFunction(wglGetCurrentDC)(__VA_ARGS__)
  3534. #define wglGetProcAddress(...) GLEGetCurrentFunction(wglGetProcAddress)(__VA_ARGS__)
  3535. #define wglMakeCurrent(...) GLEGetCurrentFunction(wglMakeCurrent)(__VA_ARGS__)
  3536. #define wglShareLists(...) GLEGetCurrentFunction(wglShareLists)(__VA_ARGS__)
  3537. #define wglUseFontBitmapsA(...) GLEGetCurrentFunction(wglUseFontBitmapsA)(__VA_ARGS__)
  3538. #define wglUseFontBitmapsW(...) GLEGetCurrentFunction(wglUseFontBitmapsW)(__VA_ARGS__)
  3539. #define wglUseFontOutlinesA(...) GLEGetCurrentFunction(wglUseFontOutlinesA)(__VA_ARGS__)
  3540. #define wglUseFontOutlinesW(...) GLEGetCurrentFunction(wglUseFontOutlinesW)(__VA_ARGS__)
  3541. #define wglDescribeLayerPlane(...) GLEGetCurrentFunction(wglDescribeLayerPlane)(__VA_ARGS__)
  3542. #define wglSetLayerPaletteEntries(...) GLEGetCurrentFunction(wglSetLayerPaletteEntries)(__VA_ARGS__)
  3543. #define wglGetLayerPaletteEntries(...) GLEGetCurrentFunction(wglGetLayerPaletteEntries)(__VA_ARGS__)
  3544. #define wglRealizeLayerPalette(...) GLEGetCurrentFunction(wglRealizeLayerPalette)(__VA_ARGS__)
  3545. #define wglSwapLayerBuffers(...) GLEGetCurrentFunction(wglSwapLayerBuffers)(__VA_ARGS__)
  3546. #define wglSwapMultipleBuffers(...) GLEGetCurrentFunction(wglSwapMultipleBuffers)(__VA_ARGS__)
  3547. #else
  3548. // The following functions are directly declared in Microsoft's <wingdi.h> without associated typedefs, and are exported from Opengl32.dll.
  3549. // We can link to them directly through Opengl32.lib/dll (same as OpenGL 1.1 functions) or we can dynamically link them from OpenGL32.dll at runtime.
  3550. typedef BOOL (WINAPI * PFNWGLCOPYCONTEXTPROC)(HGLRC, HGLRC, UINT);
  3551. typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTPROC)(HDC);
  3552. typedef HGLRC (WINAPI * PFNWGLCREATELAYERCONTEXTPROC)(HDC, int);
  3553. typedef BOOL (WINAPI * PFNWGLDELETECONTEXTPROC)(HGLRC);
  3554. typedef HGLRC (WINAPI * PFNWGLGETCURRENTCONTEXTPROC)(VOID);
  3555. typedef HDC (WINAPI * PFNWGLGETCURRENTDCPROC)(VOID);
  3556. typedef PROC (WINAPI * PFNWGLGETPROCADDRESSPROC)(LPCSTR);
  3557. typedef BOOL (WINAPI * PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
  3558. typedef BOOL (WINAPI * PFNWGLSHARELISTSPROC)(HGLRC, HGLRC);
  3559. typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD);
  3560. typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSWPROC)(HDC, DWORD, DWORD, DWORD);
  3561. typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESAPROC)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
  3562. typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESWPROC)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
  3563. typedef BOOL (WINAPI * PFNWGLDESCRIBELAYERPLANEPROC)(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
  3564. typedef int (WINAPI * PFNWGLSETLAYERPALETTEENTRIESPROC)(HDC, int, int, int, CONST COLORREF *);
  3565. typedef int (WINAPI * PFNWGLGETLAYERPALETTEENTRIESPROC)(HDC, int, int, int, COLORREF *);
  3566. typedef BOOL (WINAPI * PFNWGLREALIZELAYERPALETTEPROC)(HDC, int, BOOL);
  3567. typedef BOOL (WINAPI * PFNWGLSWAPLAYERBUFFERSPROC)(HDC, UINT);
  3568. typedef DWORD (WINAPI * PFNWGLSWAPMULTIPLEBUFFERSPROC)(UINT, CONST WGLSWAP *);
  3569. #if 0
  3570. #define wglCopyContext OVR::GLEContext::GetCurrentContext()->wglCopyContext_Impl
  3571. #define wglCreateContext OVR::GLEContext::GetCurrentContext()->wglCreateContext_Impl
  3572. #define wglCreateLayerContext OVR::GLEContext::GetCurrentContext()->wglCreateLayerContext_Impl
  3573. #define wglDeleteContext OVR::GLEContext::GetCurrentContext()->wglDeleteContext_Impl
  3574. #define wglGetCurrentContext OVR::GLEContext::GetCurrentContext()->wglGetCurrentContext_Impl
  3575. #define wglGetCurrentDC OVR::GLEContext::GetCurrentContext()->wglGetCurrentDC_Impl
  3576. #define wglGetProcAddress OVR::GLEContext::GetCurrentContext()->wglGetProcAddress_Impl
  3577. #define wglMakeCurrent OVR::GLEContext::GetCurrentContext()->wglMakeCurrent_Impl
  3578. #define wglShareLists OVR::GLEContext::GetCurrentContext()->wglShareLists_Impl
  3579. #define wglUseFontBitmapsA OVR::GLEContext::GetCurrentContext()->wglUseFontBitmapsA_Impl
  3580. #define wglUseFontBitmapsW OVR::GLEContext::GetCurrentContext()->wglUseFontBitmapsW_Impl
  3581. #define wglUseFontOutlinesA OVR::GLEContext::GetCurrentContext()->wglUseFontOutlinesA_Impl
  3582. #define wglUseFontOutlinesW OVR::GLEContext::GetCurrentContext()->wglUseFontOutlinesW_Impl
  3583. #define wglDescribeLayerPlane OVR::GLEContext::GetCurrentContext()->wglDescribeLayerPlane_Impl
  3584. #define wglSetLayerPaletteEntries OVR::GLEContext::GetCurrentContext()->wglSetLayerPaletteEntries_Impl
  3585. #define wglGetLayerPaletteEntries OVR::GLEContext::GetCurrentContext()->wglGetLayerPaletteEntries_Impl
  3586. #define wglRealizeLayerPalette OVR::GLEContext::GetCurrentContext()->wglRealizeLayerPalette_Impl
  3587. #define wglSwapLayerBuffers OVR::GLEContext::GetCurrentContext()->wglSwapLayerBuffers_Impl
  3588. #define wglSwapMultipleBuffers OVR::GLEContext::GetCurrentContext()->wglSwapMultipleBuffers_Impl
  3589. #endif
  3590. #endif
  3591. // Note: In order to detect the WGL extensions' availability, we need to call wglGetExtensionsStringARB or
  3592. // wglGetExtensionsStringEXT instead of glGetString(GL_EXTENSIONS).
  3593. #ifndef WGL_ARB_buffer_region
  3594. #define WGL_ARB_buffer_region 1
  3595. #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
  3596. #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
  3597. #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
  3598. #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
  3599. typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
  3600. typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
  3601. typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
  3602. typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
  3603. #define wglCreateBufferRegionARB GLEGetCurrentFunction(wglCreateBufferRegionARB)
  3604. #define wglDeleteBufferRegionARB GLEGetCurrentFunction(wglDeleteBufferRegionARB)
  3605. #define wglSaveBufferRegionARB GLEGetCurrentFunction(wglSaveBufferRegionARB)
  3606. #define wglRestoreBufferRegionARB GLEGetCurrentFunction(wglRestoreBufferRegionARB)
  3607. #define GLE_WGL_ARB_buffer_region GLEGetCurrentVariable(gle_WGL_ARB_buffer_region)
  3608. #endif
  3609. #ifndef WGL_ARB_extensions_string
  3610. #define WGL_ARB_extensions_string 1
  3611. typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
  3612. #define wglGetExtensionsStringARB GLEGetCurrentFunction(wglGetExtensionsStringARB)
  3613. #define GLE_WGL_ARB_extensions_string GLEGetCurrentVariable(gle_WGL_ARB_extensions_string)
  3614. #endif
  3615. #ifndef WGL_ARB_pixel_format
  3616. #define WGL_ARB_pixel_format 1
  3617. #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
  3618. #define WGL_DRAW_TO_WINDOW_ARB 0x2001
  3619. #define WGL_DRAW_TO_BITMAP_ARB 0x2002
  3620. #define WGL_ACCELERATION_ARB 0x2003
  3621. #define WGL_NEED_PALETTE_ARB 0x2004
  3622. #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
  3623. #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
  3624. #define WGL_SWAP_METHOD_ARB 0x2007
  3625. #define WGL_NUMBER_OVERLAYS_ARB 0x2008
  3626. #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
  3627. #define WGL_TRANSPARENT_ARB 0x200A
  3628. #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
  3629. #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
  3630. #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
  3631. #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
  3632. #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
  3633. #define WGL_SHARE_DEPTH_ARB 0x200C
  3634. #define WGL_SHARE_STENCIL_ARB 0x200D
  3635. #define WGL_SHARE_ACCUM_ARB 0x200E
  3636. #define WGL_SUPPORT_GDI_ARB 0x200F
  3637. #define WGL_SUPPORT_OPENGL_ARB 0x2010
  3638. #define WGL_DOUBLE_BUFFER_ARB 0x2011
  3639. #define WGL_STEREO_ARB 0x2012
  3640. #define WGL_PIXEL_TYPE_ARB 0x2013
  3641. #define WGL_COLOR_BITS_ARB 0x2014
  3642. #define WGL_RED_BITS_ARB 0x2015
  3643. #define WGL_RED_SHIFT_ARB 0x2016
  3644. #define WGL_GREEN_BITS_ARB 0x2017
  3645. #define WGL_GREEN_SHIFT_ARB 0x2018
  3646. #define WGL_BLUE_BITS_ARB 0x2019
  3647. #define WGL_BLUE_SHIFT_ARB 0x201A
  3648. #define WGL_ALPHA_BITS_ARB 0x201B
  3649. #define WGL_ALPHA_SHIFT_ARB 0x201C
  3650. #define WGL_ACCUM_BITS_ARB 0x201D
  3651. #define WGL_ACCUM_RED_BITS_ARB 0x201E
  3652. #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
  3653. #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
  3654. #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
  3655. #define WGL_DEPTH_BITS_ARB 0x2022
  3656. #define WGL_STENCIL_BITS_ARB 0x2023
  3657. #define WGL_AUX_BUFFERS_ARB 0x2024
  3658. #define WGL_NO_ACCELERATION_ARB 0x2025
  3659. #define WGL_GENERIC_ACCELERATION_ARB 0x2026
  3660. #define WGL_FULL_ACCELERATION_ARB 0x2027
  3661. #define WGL_SWAP_EXCHANGE_ARB 0x2028
  3662. #define WGL_SWAP_COPY_ARB 0x2029
  3663. #define WGL_SWAP_UNDEFINED_ARB 0x202A
  3664. #define WGL_TYPE_RGBA_ARB 0x202B
  3665. #define WGL_TYPE_COLORINDEX_ARB 0x202C
  3666. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
  3667. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
  3668. typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
  3669. #define wglGetPixelFormatAttribivARB GLEGetCurrentFunction(wglGetPixelFormatAttribivARB)
  3670. #define wglGetPixelFormatAttribfvARB GLEGetCurrentFunction(wglGetPixelFormatAttribfvARB)
  3671. #define wglChoosePixelFormatARB GLEGetCurrentFunction(wglChoosePixelFormatARB)
  3672. #define GLE_WGL_ARB_pixel_format GLEGetCurrentVariable(gle_WGL_ARB_pixel_format)
  3673. #endif
  3674. #ifndef WGL_ARB_make_current_read
  3675. #define WGL_ARB_make_current_read 1
  3676. #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
  3677. #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
  3678. typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
  3679. typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
  3680. #define wglMakeContextCurrentARB GLEGetCurrentFunction(wglMakeContextCurrentARB)
  3681. #define wglGetCurrentReadDCARB GLEGetCurrentFunction(wglGetCurrentReadDCARB)
  3682. #define GLE_WGL_ARB_make_current_read GLEGetCurrentVariable(gle_WGL_ARB_make_current_read)
  3683. #endif
  3684. #ifndef WGL_ARB_pbuffer
  3685. #define WGL_ARB_pbuffer 1
  3686. #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
  3687. #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
  3688. #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
  3689. #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
  3690. #define WGL_PBUFFER_LARGEST_ARB 0x2033
  3691. #define WGL_PBUFFER_WIDTH_ARB 0x2034
  3692. #define WGL_PBUFFER_HEIGHT_ARB 0x2035
  3693. typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
  3694. typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
  3695. typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
  3696. typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
  3697. typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
  3698. #define wglCreatePbufferARB GLEGetCurrentFunction(wglCreatePbufferARB)
  3699. #define wglGetPbufferDCARB GLEGetCurrentFunction(wglGetPbufferDCARB)
  3700. #define wglReleasePbufferDCARB GLEGetCurrentFunction(wglReleasePbufferDCARB)
  3701. #define wglDestroyPbufferARB GLEGetCurrentFunction(wglDestroyPbufferARB)
  3702. #define wglQueryPbufferARB GLEGetCurrentFunction(wglQueryPbufferARB)
  3703. #define GLE_WGL_ARB_pbuffer GLEGetCurrentVariable(gle_WGL_ARB_pbuffer)
  3704. #endif
  3705. #ifndef WGL_ARB_render_texture
  3706. #define WGL_ARB_render_texture 1
  3707. #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
  3708. #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
  3709. #define WGL_TEXTURE_FORMAT_ARB 0x2072
  3710. #define WGL_TEXTURE_TARGET_ARB 0x2073
  3711. #define WGL_MIPMAP_TEXTURE_ARB 0x2074
  3712. #define WGL_TEXTURE_RGB_ARB 0x2075
  3713. #define WGL_TEXTURE_RGBA_ARB 0x2076
  3714. #define WGL_NO_TEXTURE_ARB 0x2077
  3715. #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
  3716. #define WGL_TEXTURE_1D_ARB 0x2079
  3717. #define WGL_TEXTURE_2D_ARB 0x207A
  3718. #define WGL_MIPMAP_LEVEL_ARB 0x207B
  3719. #define WGL_CUBE_MAP_FACE_ARB 0x207C
  3720. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
  3721. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
  3722. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
  3723. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
  3724. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
  3725. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
  3726. #define WGL_FRONT_LEFT_ARB 0x2083
  3727. #define WGL_FRONT_RIGHT_ARB 0x2084
  3728. #define WGL_BACK_LEFT_ARB 0x2085
  3729. #define WGL_BACK_RIGHT_ARB 0x2086
  3730. #define WGL_AUX0_ARB 0x2087
  3731. #define WGL_AUX1_ARB 0x2088
  3732. #define WGL_AUX2_ARB 0x2089
  3733. #define WGL_AUX3_ARB 0x208A
  3734. #define WGL_AUX4_ARB 0x208B
  3735. #define WGL_AUX5_ARB 0x208C
  3736. #define WGL_AUX6_ARB 0x208D
  3737. #define WGL_AUX7_ARB 0x208E
  3738. #define WGL_AUX8_ARB 0x208F
  3739. #define WGL_AUX9_ARB 0x2090
  3740. typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  3741. typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  3742. typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
  3743. #define wglBindTexImageARB GLEGetCurrentFunction(wglBindTexImageARB)
  3744. #define wglReleaseTexImageARB GLEGetCurrentFunction(wglReleaseTexImageARB)
  3745. #define wglSetPbufferAttribARB GLEGetCurrentFunction(wglSetPbufferAttribARB)
  3746. #define GLE_WGL_ARB_render_texture GLEGetCurrentVariable(gle_WGL_ARB_render_texture)
  3747. #endif
  3748. #ifndef WGL_ARB_pixel_format_float
  3749. #define WGL_ARB_pixel_format_float 1
  3750. #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
  3751. #define GLE_WGL_ARB_pixel_format_float GLEGetCurrentVariable(gle_WGL_ARB_pixel_format_float)
  3752. #endif
  3753. #ifndef WGL_ARB_framebuffer_sRGB
  3754. #define WGL_ARB_framebuffer_sRGB 1
  3755. // There is also the WGL_EXT_framebuffer_sRGB extension, which is the
  3756. // same as this. So use this one instead of that for checking.
  3757. #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
  3758. #define GLE_WGL_ARB_framebuffer_sRGB GLEGetCurrentVariable(gle_WGL_ARB_framebuffer_sRGB)
  3759. #endif
  3760. #ifndef WGL_NV_present_video
  3761. #define WGL_NV_present_video 1
  3762. DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
  3763. typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
  3764. typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
  3765. typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
  3766. #define wglEnumerateVideoDevicesNV GLEGetCurrentFunction(wglEnumerateVideoDevicesNV)
  3767. #define wglBindVideoDeviceNV GLEGetCurrentFunction(wglBindVideoDeviceNV)
  3768. #define wglQueryCurrentContextNV GLEGetCurrentFunction(wglQueryCurrentContextNV)
  3769. #define GLE_WGL_NV_present_video GLEGetCurrentVariable(gle_WGL_NV_present_video)
  3770. #endif
  3771. #ifndef WGL_ARB_create_context
  3772. #define WGL_ARB_create_context 1
  3773. #define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
  3774. #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
  3775. #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
  3776. #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
  3777. #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
  3778. #define WGL_CONTEXT_FLAGS_ARB 0x2094
  3779. #define ERROR_INVALID_VERSION_ARB 0x2095
  3780. typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
  3781. #define wglCreateContextAttribsARB GLEGetCurrentFunction(wglCreateContextAttribsARB)
  3782. #define GLE_WGL_ARB_create_context GLEGetCurrentVariable(gle_WGL_ARB_create_context)
  3783. #endif
  3784. #ifndef WGL_ARB_create_context_profile
  3785. #define WGL_ARB_create_context_profile 1
  3786. #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
  3787. #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
  3788. #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
  3789. #define ERROR_INVALID_PROFILE_ARB 0x2096
  3790. #define GLE_WGL_ARB_create_context_profile GLEGetCurrentVariable(gle_WGL_ARB_create_context_profile)
  3791. #endif
  3792. #ifndef WGL_ARB_create_context_robustness
  3793. #define WGL_ARB_create_context_robustness 1
  3794. #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
  3795. #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
  3796. #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
  3797. #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
  3798. #define GLE_WGL_ARB_create_context_robustness GLEGetCurrentVariable(gle_WGL_ARB_create_context_robustness)
  3799. #endif
  3800. #ifndef WGL_ATI_render_texture_rectangle
  3801. #define WGL_ATI_render_texture_rectangle 1
  3802. #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
  3803. #define GLE_WGL_ATI_render_texture_rectangle GLEGetCurrentVariable(gle_WGL_ATI_render_texture_rectangle)
  3804. #endif
  3805. #ifndef WGL_EXT_extensions_string
  3806. #define WGL_EXT_extensions_string 1
  3807. typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
  3808. #define wglGetExtensionsStringEXT GLEGetCurrentFunction(wglGetExtensionsStringEXT)
  3809. #define GLE_WGL_EXT_extensions_string GLEGetCurrentVariable(gle_WGL_EXT_extensions_string)
  3810. #endif
  3811. #ifndef WGL_NV_render_texture_rectangle
  3812. #define WGL_NV_render_texture_rectangle 1
  3813. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
  3814. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
  3815. #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
  3816. #define GLE_WGL_NV_render_texture_rectangle GLEGetCurrentVariable(gle_WGL_NV_render_texture_rectangle)
  3817. #endif
  3818. #ifndef WGL_EXT_swap_control
  3819. #define WGL_EXT_swap_control 1
  3820. typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
  3821. typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
  3822. #define wglGetSwapIntervalEXT GLEGetCurrentFunction(wglGetSwapIntervalEXT)
  3823. #define wglSwapIntervalEXT GLEGetCurrentFunction(wglSwapIntervalEXT)
  3824. #define GLE_WGL_EXT_swap_control GLEGetCurrentVariable(gle_WGL_EXT_swap_control)
  3825. #endif
  3826. #ifndef WGL_OML_sync_control
  3827. #define WGL_OML_sync_control 1
  3828. typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
  3829. typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
  3830. typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
  3831. typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
  3832. typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
  3833. typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
  3834. #define wglGetSyncValuesOML GLEGetCurrentFunction(wglGetSyncValuesOML)
  3835. #define wglGetMscRateOML GLEGetCurrentFunction(wglGetMscRateOML)
  3836. #define wglSwapBuffersMscOML GLEGetCurrentFunction(wglSwapBuffersMscOML)
  3837. #define wglSwapLayerBuffersMscOML GLEGetCurrentFunction(wglSwapLayerBuffersMscOML)
  3838. #define wglWaitForMscOML GLEGetCurrentFunction(wglWaitForMscOML)
  3839. #define wglWaitForSbcOML GLEGetCurrentFunction(wglWaitForSbcOML)
  3840. #define GLE_WGL_OML_sync_control GLEGetCurrentVariable(gle_WGL_OML_sync_control)
  3841. #endif
  3842. #ifndef WGL_NV_video_output
  3843. #define WGL_NV_video_output 1
  3844. DECLARE_HANDLE(HPVIDEODEV);
  3845. typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
  3846. typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
  3847. typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
  3848. typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
  3849. typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
  3850. typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
  3851. #define wglGetVideoDeviceNV GLEGetCurrentFunction(wglGetVideoDeviceNV)
  3852. #define wglReleaseVideoDeviceNV GLEGetCurrentFunction(wglReleaseVideoDeviceNV)
  3853. #define wglBindVideoImageNV GLEGetCurrentFunction(wglBindVideoImageNV)
  3854. #define wglReleaseVideoImageNV GLEGetCurrentFunction(wglReleaseVideoImageNV)
  3855. #define wglSendPbufferToVideoNV GLEGetCurrentFunction(wglSendPbufferToVideoNV)
  3856. #define wglGetVideoInfoNV GLEGetCurrentFunction(wglGetVideoInfoNV)
  3857. #define GLE_WGL_NV_video_output GLEGetCurrentVariable(gle_WGL_NV_video_output)
  3858. #endif
  3859. #ifndef WGL_NV_swap_group
  3860. #define WGL_NV_swap_group 1
  3861. typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
  3862. typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
  3863. typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
  3864. typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
  3865. typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
  3866. typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
  3867. #define wglJoinSwapGroupNV GLEGetCurrentFunction(wglJoinSwapGroupNV)
  3868. #define wglBindSwapBarrierNV GLEGetCurrentFunction(wglBindSwapBarrierNV)
  3869. #define wglQuerySwapGroupNV GLEGetCurrentFunction(wglQuerySwapGroupNV)
  3870. #define wglQueryMaxSwapGroupsNV GLEGetCurrentFunction(wglQueryMaxSwapGroupsNV)
  3871. #define wglQueryFrameCountNV GLEGetCurrentFunction(wglQueryFrameCountNV)
  3872. #define wglResetFrameCountNV GLEGetCurrentFunction(wglResetFrameCountNV)
  3873. #define GLE_WGL_NV_swap_group GLEGetCurrentVariable(gle_WGL_NV_swap_group)
  3874. #endif
  3875. #ifndef WGL_NV_video_capture
  3876. #define WGL_NV_video_capture 1
  3877. #define WGL_UNIQUE_ID_NV 0x20CE
  3878. #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
  3879. typedef struct _GPU_DEVICE {
  3880. DWORD cb;
  3881. CHAR DeviceName[32];
  3882. CHAR DeviceString[128];
  3883. DWORD Flags;
  3884. RECT rcVirtualScreen;
  3885. } GPU_DEVICE, *PGPU_DEVICE;
  3886. DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
  3887. typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
  3888. typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
  3889. typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
  3890. typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
  3891. typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
  3892. #define wglBindVideoCaptureDeviceNV GLEGetCurrentFunction(wglBindVideoCaptureDeviceNV)
  3893. #define wglEnumerateVideoCaptureDevicesNV GLEGetCurrentFunction(wglEnumerateVideoCaptureDevicesNV)
  3894. #define wglLockVideoCaptureDeviceNV GLEGetCurrentFunction(wglLockVideoCaptureDeviceNV)
  3895. #define wglQueryVideoCaptureDeviceNV GLEGetCurrentFunction(wglQueryVideoCaptureDeviceNV)
  3896. #define wglReleaseVideoCaptureDeviceNV GLEGetCurrentFunction(wglReleaseVideoCaptureDeviceNV)
  3897. #define GLE_WGL_NV_video_capture GLEGetCurrentVariable(gle_WGL_NV_video_capture)
  3898. #endif
  3899. #ifndef WGL_NV_copy_image
  3900. #define WGL_NV_copy_image 1
  3901. typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
  3902. #define wglCopyImageSubDataNV GLEGetCurrentFunction(wglCopyImageSubDataNV)
  3903. #define GLE_WGL_NV_copy_image GLEGetCurrentVariable(gle_WGL_NV_copy_image)
  3904. #endif
  3905. #ifndef WGL_NV_DX_interop
  3906. #define WGL_NV_DX_interop 1
  3907. // Note that modern AMD drivers support this NVidia extension.
  3908. #define WGL_ACCESS_READ_ONLY_NV 0x0000
  3909. #define WGL_ACCESS_READ_WRITE_NV 0x0001
  3910. #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
  3911. typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
  3912. typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
  3913. typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
  3914. typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice);
  3915. typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access);
  3916. typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle);
  3917. typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
  3918. typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
  3919. #define wglDXCloseDeviceNV GLEGetCurrentFunction(wglDXCloseDeviceNV)
  3920. #define wglDXLockObjectsNV GLEGetCurrentFunction(wglDXLockObjectsNV)
  3921. #define wglDXObjectAccessNV GLEGetCurrentFunction(wglDXObjectAccessNV)
  3922. #define wglDXOpenDeviceNV GLEGetCurrentFunction(wglDXOpenDeviceNV)
  3923. #define wglDXRegisterObjectNV GLEGetCurrentFunction(wglDXRegisterObjectNV)
  3924. #define wglDXSetResourceShareHandleNV GLEGetCurrentFunction(wglDXSetResourceShareHandleNV)
  3925. #define wglDXUnlockObjectsNV GLEGetCurrentFunction(wglDXUnlockObjectsNV)
  3926. #define wglDXUnregisterObjectNV GLEGetCurrentFunction(wglDXUnregisterObjectNV)
  3927. #define GLE_WGL_NV_DX_interop GLEGetCurrentVariable(gle_WGL_NV_DX_interop)
  3928. #endif
  3929. #ifndef WGL_NV_DX_interop2
  3930. #define WGL_NV_DX_interop2 1
  3931. // This is an update to WGL_NV_DX_interop to support DX10/DX11.
  3932. // https://www.opengl.org/registry/specs/NV/DX_interop2.txt
  3933. #define GLE_WGL_NV_DX_interop2 GLEGetCurrentVariable(gle_WGL_NV_DX_interop2)
  3934. #endif
  3935. #endif // GLE_WGL_ENABLED
  3936. /************************************************************************************
  3937. Apple-specific (CGL) functionality
  3938. ************************************************************************************/
  3939. #if defined(GLE_CGL_ENABLED)
  3940. // We don't currently disable Apple's OpenGL/OpenGL.h and replicate its declarations here.
  3941. // We might want to do that if we intended to support hooking its functions here like we do for wgl functions.
  3942. #include <OpenGL/OpenGL.h>
  3943. #endif
  3944. /************************************************************************************
  3945. Unix-specific (GLX) functionality
  3946. ************************************************************************************/
  3947. #if defined(GLE_GLX_ENABLED)
  3948. #ifdef __glxext_h_
  3949. #error glxext.h was included before this header. This header needs to be inlcuded instead of or at least before glxext.h
  3950. #endif
  3951. #define __glxext_h_
  3952. #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
  3953. #error glx.h was included before this header. This header needs to be inlcuded instead of or at least before glx.h
  3954. #endif
  3955. #define GLX_H
  3956. #define __GLX_glx_h__
  3957. #define __glx_h__
  3958. // FIXME: Including These Raw Causes Major Conflicts!
  3959. #include <X11/Xlib.h>
  3960. #include <X11/Xutil.h>
  3961. #include <X11/Xmd.h>
  3962. // GLX version 1.0 functions are assumed to always be present.
  3963. #ifndef GLX_VERSION_1_0
  3964. #define GLX_VERSION_1_0 1
  3965. #define GLX_USE_GL 1
  3966. #define GLX_BUFFER_SIZE 2
  3967. #define GLX_LEVEL 3
  3968. #define GLX_RGBA 4
  3969. #define GLX_DOUBLEBUFFER 5
  3970. #define GLX_STEREO 6
  3971. #define GLX_AUX_BUFFERS 7
  3972. #define GLX_RED_SIZE 8
  3973. #define GLX_GREEN_SIZE 9
  3974. #define GLX_BLUE_SIZE 10
  3975. #define GLX_ALPHA_SIZE 11
  3976. #define GLX_DEPTH_SIZE 12
  3977. #define GLX_STENCIL_SIZE 13
  3978. #define GLX_ACCUM_RED_SIZE 14
  3979. #define GLX_ACCUM_GREEN_SIZE 15
  3980. #define GLX_ACCUM_BLUE_SIZE 16
  3981. #define GLX_ACCUM_ALPHA_SIZE 17
  3982. #define GLX_BAD_SCREEN 1
  3983. #define GLX_BAD_ATTRIBUTE 2
  3984. #define GLX_NO_EXTENSION 3
  3985. #define GLX_BAD_VISUAL 4
  3986. #define GLX_BAD_CONTEXT 5
  3987. #define GLX_BAD_VALUE 6
  3988. #define GLX_BAD_ENUM 7
  3989. typedef XID GLXDrawable;
  3990. typedef XID GLXPixmap;
  3991. typedef unsigned int GLXVideoDeviceNV;
  3992. typedef struct __GLXcontextRec *GLXContext;
  3993. // GLE_HOOKING_ENABLED
  3994. // We don't currently support hooking the following GLX 1.0 functions like we do with the analagous windows wgl functions.
  3995. // However, we can do this if needed. We would just have something like this:
  3996. // #define glXQueryExtension(...) GLEGetCurrentFunction(glXQueryExtension)(__VA_ARGS__)
  3997. // plus a member function like:
  3998. // Bool glXQueryExtension_Hook(Display*, int*, int*);
  3999. // See wglCopyContext for an example.
  4000. extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
  4001. extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
  4002. extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
  4003. extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
  4004. extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
  4005. extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
  4006. extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
  4007. extern void glXDestroyContext (Display *dpy, GLXContext ctx);
  4008. extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
  4009. extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
  4010. extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
  4011. extern GLXContext glXGetCurrentContext (void);
  4012. extern GLXDrawable glXGetCurrentDrawable (void);
  4013. extern void glXWaitGL (void);
  4014. extern void glXWaitX (void);
  4015. extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
  4016. extern void glXUseXFont (Font font, int first, int count, int listBase);
  4017. #endif // GLX_VERSION_1_0
  4018. #ifndef GLX_VERSION_1_1
  4019. #define GLX_VERSION_1_1
  4020. #define GLX_VENDOR 0x1
  4021. #define GLX_VERSION 0x2
  4022. #define GLX_EXTENSIONS 0x3
  4023. // These function pointers are assumed to always be present.
  4024. extern const char* glXQueryExtensionsString (Display *dpy, int screen);
  4025. extern const char* glXGetClientString (Display *dpy, int name);
  4026. extern const char* glXQueryServerString (Display *dpy, int screen, int name);
  4027. #endif
  4028. #ifndef GLX_VERSION_1_2
  4029. #define GLX_VERSION_1_2 1
  4030. typedef Display* (* PFNGLXGETCURRENTDISPLAYPROC) (void);
  4031. #define glXGetCurrentDisplay GLEGetCurrentFunction(glXGetCurrentDisplay)
  4032. #endif
  4033. #ifndef GLX_VERSION_1_3
  4034. #define GLX_VERSION_1_3 1
  4035. #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
  4036. #define GLX_RGBA_BIT 0x00000001
  4037. #define GLX_WINDOW_BIT 0x00000001
  4038. #define GLX_COLOR_INDEX_BIT 0x00000002
  4039. #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
  4040. #define GLX_PIXMAP_BIT 0x00000002
  4041. #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
  4042. #define GLX_PBUFFER_BIT 0x00000004
  4043. #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
  4044. #define GLX_AUX_BUFFERS_BIT 0x00000010
  4045. #define GLX_CONFIG_CAVEAT 0x20
  4046. #define GLX_DEPTH_BUFFER_BIT 0x00000020
  4047. #define GLX_X_VISUAL_TYPE 0x22
  4048. #define GLX_TRANSPARENT_TYPE 0x23
  4049. #define GLX_TRANSPARENT_INDEX_VALUE 0x24
  4050. #define GLX_TRANSPARENT_RED_VALUE 0x25
  4051. #define GLX_TRANSPARENT_GREEN_VALUE 0x26
  4052. #define GLX_TRANSPARENT_BLUE_VALUE 0x27
  4053. #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
  4054. #define GLX_STENCIL_BUFFER_BIT 0x00000040
  4055. #define GLX_ACCUM_BUFFER_BIT 0x00000080
  4056. #define GLX_NONE 0x8000
  4057. #define GLX_SLOW_CONFIG 0x8001
  4058. #define GLX_TRUE_COLOR 0x8002
  4059. #define GLX_DIRECT_COLOR 0x8003
  4060. #define GLX_PSEUDO_COLOR 0x8004
  4061. #define GLX_STATIC_COLOR 0x8005
  4062. #define GLX_GRAY_SCALE 0x8006
  4063. #define GLX_STATIC_GRAY 0x8007
  4064. #define GLX_TRANSPARENT_RGB 0x8008
  4065. #define GLX_TRANSPARENT_INDEX 0x8009
  4066. #define GLX_VISUAL_ID 0x800B
  4067. #define GLX_SCREEN 0x800C
  4068. #define GLX_NON_CONFORMANT_CONFIG 0x800D
  4069. #define GLX_DRAWABLE_TYPE 0x8010
  4070. #define GLX_RENDER_TYPE 0x8011
  4071. #define GLX_X_RENDERABLE 0x8012
  4072. #define GLX_FBCONFIG_ID 0x8013
  4073. #define GLX_RGBA_TYPE 0x8014
  4074. #define GLX_COLOR_INDEX_TYPE 0x8015
  4075. #define GLX_MAX_PBUFFER_WIDTH 0x8016
  4076. #define GLX_MAX_PBUFFER_HEIGHT 0x8017
  4077. #define GLX_MAX_PBUFFER_PIXELS 0x8018
  4078. #define GLX_PRESERVED_CONTENTS 0x801B
  4079. #define GLX_LARGEST_PBUFFER 0x801C
  4080. #define GLX_WIDTH 0x801D
  4081. #define GLX_HEIGHT 0x801E
  4082. #define GLX_EVENT_MASK 0x801F
  4083. #define GLX_DAMAGED 0x8020
  4084. #define GLX_SAVED 0x8021
  4085. #define GLX_WINDOW 0x8022
  4086. #define GLX_PBUFFER 0x8023
  4087. #define GLX_PBUFFER_HEIGHT 0x8040
  4088. #define GLX_PBUFFER_WIDTH 0x8041
  4089. #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
  4090. #define GLX_DONT_CARE 0xFFFFFFFF
  4091. typedef XID GLXFBConfigID;
  4092. typedef XID GLXPbuffer;
  4093. typedef XID GLXWindow;
  4094. typedef struct __GLXFBConfigRec *GLXFBConfig;
  4095. typedef struct {
  4096. int event_type;
  4097. int draw_type;
  4098. unsigned long serial;
  4099. Bool send_event;
  4100. Display *display;
  4101. GLXDrawable drawable;
  4102. unsigned int buffer_mask;
  4103. unsigned int aux_buffer;
  4104. int x, y;
  4105. int width, height;
  4106. int count;
  4107. } GLXPbufferClobberEvent;
  4108. typedef union __GLXEvent {
  4109. GLXPbufferClobberEvent glxpbufferclobber;
  4110. long pad[24];
  4111. } GLXEvent;
  4112. typedef GLXFBConfig* (* PFNGLXCHOOSEFBCONFIGPROC) (::Display *dpy, int screen, const int *attrib_list, int *nelements);
  4113. typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (::Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
  4114. typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (::Display *dpy, GLXFBConfig config, const int *attrib_list);
  4115. typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (::Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
  4116. typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (::Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
  4117. typedef void (* PFNGLXDESTROYPBUFFERPROC) (::Display *dpy, GLXPbuffer pbuf);
  4118. typedef void (* PFNGLXDESTROYPIXMAPPROC) (::Display *dpy, GLXPixmap pixmap);
  4119. typedef void (* PFNGLXDESTROYWINDOWPROC) (::Display *dpy, GLXWindow win);
  4120. typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
  4121. typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (::Display *dpy, GLXFBConfig config, int attribute, int *value);
  4122. typedef GLXFBConfig* (* PFNGLXGETFBCONFIGSPROC) (::Display *dpy, int screen, int *nelements);
  4123. typedef void (* PFNGLXGETSELECTEDEVENTPROC) (::Display *dpy, GLXDrawable draw, unsigned long *event_mask);
  4124. typedef XVisualInfo* (* PFNGLXGETVISUALFROMFBCONFIGPROC) (::Display *dpy, GLXFBConfig config);
  4125. typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (::Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
  4126. typedef int (* PFNGLXQUERYCONTEXTPROC) (::Display *dpy, GLXContext ctx, int attribute, int *value);
  4127. typedef void (* PFNGLXQUERYDRAWABLEPROC) (::Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
  4128. typedef void (* PFNGLXSELECTEVENTPROC) (::Display *dpy, GLXDrawable draw, unsigned long event_mask);
  4129. #define glXChooseFBConfig GLEGetCurrentFunction(glXChooseFBConfig)
  4130. #define glXCreateNewContext GLEGetCurrentFunction(glXCreateNewContext)
  4131. #define glXCreatePbuffer GLEGetCurrentFunction(glXCreatePbuffer)
  4132. #define glXCreatePixmap GLEGetCurrentFunction(glXCreatePixmap)
  4133. #define glXCreateWindow GLEGetCurrentFunction(glXCreateWindow)
  4134. #define glXDestroyPbuffer GLEGetCurrentFunction(glXDestroyPbuffer)
  4135. #define glXDestroyPixmap GLEGetCurrentFunction(glXDestroyPixmap)
  4136. #define glXDestroyWindow GLEGetCurrentFunction(glXDestroyWindow)
  4137. #define glXGetCurrentReadDrawable GLEGetCurrentFunction(glXGetCurrentReadDrawable)
  4138. #define glXGetFBConfigAttrib GLEGetCurrentFunction(glXGetFBConfigAttrib)
  4139. #define glXGetFBConfigs GLEGetCurrentFunction(glXGetFBConfigs)
  4140. #define glXGetSelectedEvent GLEGetCurrentFunction(glXGetSelectedEvent)
  4141. #define glXGetVisualFromFBConfig GLEGetCurrentFunction(glXGetVisualFromFBConfig)
  4142. #define glXMakeContextCurrent GLEGetCurrentFunction(glXMakeContextCurrent)
  4143. #define glXQueryContext GLEGetCurrentFunction(glXQueryContext)
  4144. #define glXQueryDrawable GLEGetCurrentFunction(glXQueryDrawable)
  4145. #define glXSelectEvent GLEGetCurrentFunction(glXSelectEvent)
  4146. #endif // GLX_VERSION_1_3
  4147. #ifndef GLX_VERSION_1_4
  4148. #define GLX_VERSION_1_4 1
  4149. #define GLX_SAMPLE_BUFFERS 100000
  4150. #define GLX_SAMPLES 100001
  4151. // This was glXGetProcAddressARB in GLX versions prior to v1.4.
  4152. // This function pointer is assumed to always be present.
  4153. extern void (* glXGetProcAddress(const GLubyte *procName)) ();
  4154. // For backward compatibility
  4155. extern void (* glXGetProcAddressARB(const GLubyte *procName)) ();
  4156. #endif
  4157. #ifndef GLX_ARB_create_context
  4158. #define GLX_ARB_create_context 1
  4159. #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
  4160. #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
  4161. #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
  4162. #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
  4163. #define GLX_CONTEXT_FLAGS_ARB 0x2094
  4164. typedef GLXContext (* PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
  4165. #define glXCreateContextAttribsARB GLEGetCurrentFunction(glXCreateContextAttribsARB)
  4166. #define GLE_GLX_ARB_create_context GLEGetCurrentVariable(gle_GLX_ARB_create_context)
  4167. #endif
  4168. #ifndef GLX_ARB_create_context_profile
  4169. #define GLX_ARB_create_context_profile 1
  4170. #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
  4171. #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
  4172. #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
  4173. #define GLE_GLX_ARB_create_context_profile GLEGetCurrentVariable(gle_GLX_ARB_create_context_profile)
  4174. #endif
  4175. #ifndef GLX_ARB_create_context_robustness
  4176. #define GLX_ARB_create_context_robustness 1
  4177. #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
  4178. #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
  4179. #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
  4180. #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
  4181. #define GLE_GLX_ARB_create_context_robustness GLEGetCurrentVariable(gle_GLX_ARB_create_context_robustness)
  4182. #endif
  4183. // Note: In order to detect the GLX extensions' availability, we need to call glXQueryExtensionsString instead of glGetString(GL_EXTENSIONS).
  4184. #ifndef GLX_EXT_swap_control
  4185. #define GLX_EXT_swap_control 1
  4186. #define GLX_SWAP_INTERVAL_EXT 0x20F1
  4187. #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
  4188. typedef void (* PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval);
  4189. #define glXSwapIntervalEXT GLEGetCurrentFunction(glXSwapIntervalEXT)
  4190. #define GLE_GLX_EXT_swap_control GLEGetCurrentVariable(gle_GLX_EXT_swap_control)
  4191. #endif
  4192. #ifndef GLX_OML_sync_control
  4193. #define GLX_OML_sync_control 1
  4194. typedef Bool (* PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
  4195. typedef Bool (* PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
  4196. typedef int64_t (* PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
  4197. typedef Bool (* PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
  4198. typedef Bool (* PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
  4199. #define glXGetMscRateOML GLEGetCurrentFunction(glXGetMscRateOML)
  4200. #define glXGetSyncValuesOML GLEGetCurrentFunction(glXGetSyncValuesOML)
  4201. #define glXSwapBuffersMscOML GLEGetCurrentFunction(glXSwapBuffersMscOML)
  4202. #define glXWaitForMscOML GLEGetCurrentFunction(glXWaitForMscOML)
  4203. #define glXWaitForSbcOML GLEGetCurrentFunction(glXWaitForSbcOML)
  4204. #define GLE_GLX_OML_sync_control GLEGetCurrentVariable(gle_GLX_OML_sync_control)
  4205. #endif
  4206. #ifndef GLX_MESA_swap_control
  4207. #define GLX_MESA_swap_control 1
  4208. // GLX_MESA_swap_control has the same functionality as GLX_EXT_swap_control but with a different interface, so we have an independent entry for it here.
  4209. typedef int (* PFNGLXGETSWAPINTERVALMESAPROC) (void);
  4210. typedef int (* PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval);
  4211. #define glXGetSwapIntervalMESA GLEGetCurrentFunction(glXGetSwapIntervalMESA)
  4212. #define glXSwapIntervalMESA GLEGetCurrentFunction(glXSwapIntervalMESA)
  4213. #define GLE_MESA_swap_control GLEGetCurrentVariable(gle_MESA_swap_control)
  4214. #endif
  4215. #endif // GLE_GLX_ENABLED
  4216. // Undo some defines, because the user may include <Windows.h> after including this header.
  4217. #if defined(GLE_WINGDIAPI_DEFINED)
  4218. #undef WINGDIAPI
  4219. #endif
  4220. #ifdef __cplusplus
  4221. } // extern "C"
  4222. #endif
  4223. #endif // OVR_CAPI_GLE_GL_h