glapi.c 137 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962
  1. // This file was generated automatically by "glapi2go" and contains functions to
  2. // open the platform's OpenGL dll/shared library and to load all OpenGL function
  3. // pointers for an specified OpenGL version described by the header file "glcorearb.h",
  4. // from "https://www.khronos.org/registry/OpenGL/api/GL/glcorearb.h".
  5. //
  6. // As Go cgo cannot call directly to C pointers it also creates C function wrappers
  7. // for all loaded OpenGL pointers.
  8. // The code was heavily based on "https://github.com/skaslev/gl3w"
  9. #include <stdlib.h>
  10. #include <stdio.h>
  11. #include "glapi.h"
  12. //
  13. // OpenGL function loader for Windows
  14. //
  15. #ifdef _WIN32
  16. #define WIN32_LEAN_AND_MEAN 1
  17. #include <windows.h>
  18. #undef near
  19. #undef far
  20. static HMODULE libgl;
  21. // open_libgl opens the OpenGL dll for Windows
  22. static int open_libgl(void) {
  23. libgl = LoadLibraryA("opengl32.dll");
  24. if (libgl == NULL) {
  25. return -1;
  26. }
  27. return 0;
  28. }
  29. // close_libgl closes the OpenGL dll object for Windows
  30. static void close_libgl(void) {
  31. FreeLibrary(libgl);
  32. }
  33. // get_proc gets the pointer for an OpenGL function for Windows
  34. static void* get_proc(const char *proc) {
  35. void* res;
  36. res = (void*)wglGetProcAddress(proc);
  37. if (!res) {
  38. res = (void*)GetProcAddress(libgl, proc);
  39. }
  40. return res;
  41. }
  42. //
  43. // OpenGL function loader for Mac OS
  44. //
  45. #elif defined(__APPLE__) || defined(__APPLE_CC__)
  46. #include <Carbon/Carbon.h>
  47. CFBundleRef bundle;
  48. CFURLRef bundleURL;
  49. // open_libgl opens the OpenGL shared object for OSX
  50. static void open_libgl(void) {
  51. bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
  52. CFSTR("/System/Library/Frameworks/OpenGL.framework"),
  53. kCFURLPOSIXPathStyle, true);
  54. bundle = CFBundleCreate(kCFAllocatorDefault, bundleURL);
  55. assert(bundle != NULL);
  56. }
  57. // close_libgl closes the OpenGL shared object object for OSX
  58. static void close_libgl(void) {
  59. CFRelease(bundle);
  60. CFRelease(bundleURL);
  61. }
  62. // get_proc gets the pointer for an OpenGL function for OSX
  63. static void* get_proc(const char *proc) {
  64. void* res;
  65. CFStringRef procname = CFStringCreateWithCString(kCFAllocatorDefault, proc,
  66. kCFStringEncodingASCII);
  67. *(void **)(&res) = CFBundleGetFunctionPointerForName(bundle, procname);
  68. CFRelease(procname);
  69. return res;
  70. }
  71. //
  72. // OpenGL function loader for Linux, Unix*
  73. //
  74. #else
  75. #include <dlfcn.h>
  76. #include <GL/glx.h>
  77. static void *libgl;
  78. static PFNGLXGETPROCADDRESSPROC glx_get_proc_address;
  79. // open_libgl opens the OpenGL shared object for Linux/Freebsd
  80. static int open_libgl(void) {
  81. libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_GLOBAL);
  82. if (libgl == NULL) {
  83. return -1;
  84. }
  85. *(void **)(&glx_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB");
  86. if (glx_get_proc_address == NULL) {
  87. return -1;
  88. }
  89. return 0;
  90. }
  91. // close_libgl closes the OpenGL shared object for Linux/Freebsd
  92. static void close_libgl(void) {
  93. dlclose(libgl);
  94. }
  95. // get_proc gets the pointer for an OpenGL function for Linux/Freebsd
  96. static void* get_proc(const char *proc) {
  97. void* res;
  98. res = glx_get_proc_address((const GLubyte *)proc);
  99. if (!res) {
  100. *(void **)(&res) = dlsym(libgl, proc);
  101. }
  102. return res;
  103. }
  104. #endif
  105. // Internal global flag to check error from OpenGL functions
  106. static int checkError = 1;
  107. // Declaration of internal function for loading OpenGL function pointers
  108. static void load_procs();
  109. //
  110. // glapiLoad() tries to load functions addresses from the OpenGL library
  111. //
  112. int glapiLoad(void) {
  113. int res = open_libgl();
  114. if (res != 0) {
  115. return res;
  116. }
  117. load_procs();
  118. close_libgl();
  119. return 0;
  120. }
  121. //
  122. // glapiCheckError sets the state of the internal flag which determines
  123. // if error checking must be done for OpenGL calls
  124. //
  125. void glapiCheckError(int check) {
  126. checkError = check;
  127. }
  128. // Internal function to abort process when error
  129. static void panic(GLenum err, const char* fname) {
  130. printf("\nGLAPI Error: %d calling: %s\n", err, fname);
  131. exit(1);
  132. }
  133. //
  134. // Definitions of function pointers variables
  135. //
  136. static PFNGLCULLFACEPROC pglCullFace;
  137. static PFNGLFRONTFACEPROC pglFrontFace;
  138. static PFNGLHINTPROC pglHint;
  139. static PFNGLLINEWIDTHPROC pglLineWidth;
  140. static PFNGLPOINTSIZEPROC pglPointSize;
  141. static PFNGLPOLYGONMODEPROC pglPolygonMode;
  142. static PFNGLSCISSORPROC pglScissor;
  143. static PFNGLTEXPARAMETERFPROC pglTexParameterf;
  144. static PFNGLTEXPARAMETERFVPROC pglTexParameterfv;
  145. static PFNGLTEXPARAMETERIPROC pglTexParameteri;
  146. static PFNGLTEXPARAMETERIVPROC pglTexParameteriv;
  147. static PFNGLTEXIMAGE1DPROC pglTexImage1D;
  148. static PFNGLTEXIMAGE2DPROC pglTexImage2D;
  149. static PFNGLDRAWBUFFERPROC pglDrawBuffer;
  150. static PFNGLCLEARPROC pglClear;
  151. static PFNGLCLEARCOLORPROC pglClearColor;
  152. static PFNGLCLEARSTENCILPROC pglClearStencil;
  153. static PFNGLCLEARDEPTHPROC pglClearDepth;
  154. static PFNGLSTENCILMASKPROC pglStencilMask;
  155. static PFNGLCOLORMASKPROC pglColorMask;
  156. static PFNGLDEPTHMASKPROC pglDepthMask;
  157. static PFNGLDISABLEPROC pglDisable;
  158. static PFNGLENABLEPROC pglEnable;
  159. static PFNGLFINISHPROC pglFinish;
  160. static PFNGLFLUSHPROC pglFlush;
  161. static PFNGLBLENDFUNCPROC pglBlendFunc;
  162. static PFNGLLOGICOPPROC pglLogicOp;
  163. static PFNGLSTENCILFUNCPROC pglStencilFunc;
  164. static PFNGLSTENCILOPPROC pglStencilOp;
  165. static PFNGLDEPTHFUNCPROC pglDepthFunc;
  166. static PFNGLPIXELSTOREFPROC pglPixelStoref;
  167. static PFNGLPIXELSTOREIPROC pglPixelStorei;
  168. static PFNGLREADBUFFERPROC pglReadBuffer;
  169. static PFNGLREADPIXELSPROC pglReadPixels;
  170. static PFNGLGETBOOLEANVPROC pglGetBooleanv;
  171. static PFNGLGETDOUBLEVPROC pglGetDoublev;
  172. static PFNGLGETERRORPROC pglGetError;
  173. static PFNGLGETFLOATVPROC pglGetFloatv;
  174. static PFNGLGETINTEGERVPROC pglGetIntegerv;
  175. static PFNGLGETTEXIMAGEPROC pglGetTexImage;
  176. static PFNGLGETTEXPARAMETERFVPROC pglGetTexParameterfv;
  177. static PFNGLGETTEXPARAMETERIVPROC pglGetTexParameteriv;
  178. static PFNGLGETTEXLEVELPARAMETERFVPROC pglGetTexLevelParameterfv;
  179. static PFNGLGETTEXLEVELPARAMETERIVPROC pglGetTexLevelParameteriv;
  180. static PFNGLISENABLEDPROC pglIsEnabled;
  181. static PFNGLDEPTHRANGEPROC pglDepthRange;
  182. static PFNGLVIEWPORTPROC pglViewport;
  183. static PFNGLDRAWARRAYSPROC pglDrawArrays;
  184. static PFNGLDRAWELEMENTSPROC pglDrawElements;
  185. static PFNGLGETPOINTERVPROC pglGetPointerv;
  186. static PFNGLPOLYGONOFFSETPROC pglPolygonOffset;
  187. static PFNGLCOPYTEXIMAGE1DPROC pglCopyTexImage1D;
  188. static PFNGLCOPYTEXIMAGE2DPROC pglCopyTexImage2D;
  189. static PFNGLCOPYTEXSUBIMAGE1DPROC pglCopyTexSubImage1D;
  190. static PFNGLCOPYTEXSUBIMAGE2DPROC pglCopyTexSubImage2D;
  191. static PFNGLTEXSUBIMAGE1DPROC pglTexSubImage1D;
  192. static PFNGLTEXSUBIMAGE2DPROC pglTexSubImage2D;
  193. static PFNGLBINDTEXTUREPROC pglBindTexture;
  194. static PFNGLDELETETEXTURESPROC pglDeleteTextures;
  195. static PFNGLGENTEXTURESPROC pglGenTextures;
  196. static PFNGLISTEXTUREPROC pglIsTexture;
  197. static PFNGLDRAWRANGEELEMENTSPROC pglDrawRangeElements;
  198. static PFNGLTEXIMAGE3DPROC pglTexImage3D;
  199. static PFNGLTEXSUBIMAGE3DPROC pglTexSubImage3D;
  200. static PFNGLCOPYTEXSUBIMAGE3DPROC pglCopyTexSubImage3D;
  201. static PFNGLACTIVETEXTUREPROC pglActiveTexture;
  202. static PFNGLSAMPLECOVERAGEPROC pglSampleCoverage;
  203. static PFNGLCOMPRESSEDTEXIMAGE3DPROC pglCompressedTexImage3D;
  204. static PFNGLCOMPRESSEDTEXIMAGE2DPROC pglCompressedTexImage2D;
  205. static PFNGLCOMPRESSEDTEXIMAGE1DPROC pglCompressedTexImage1D;
  206. static PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC pglCompressedTexSubImage3D;
  207. static PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC pglCompressedTexSubImage2D;
  208. static PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC pglCompressedTexSubImage1D;
  209. static PFNGLGETCOMPRESSEDTEXIMAGEPROC pglGetCompressedTexImage;
  210. static PFNGLBLENDFUNCSEPARATEPROC pglBlendFuncSeparate;
  211. static PFNGLMULTIDRAWARRAYSPROC pglMultiDrawArrays;
  212. static PFNGLMULTIDRAWELEMENTSPROC pglMultiDrawElements;
  213. static PFNGLPOINTPARAMETERFPROC pglPointParameterf;
  214. static PFNGLPOINTPARAMETERFVPROC pglPointParameterfv;
  215. static PFNGLPOINTPARAMETERIPROC pglPointParameteri;
  216. static PFNGLPOINTPARAMETERIVPROC pglPointParameteriv;
  217. static PFNGLBLENDCOLORPROC pglBlendColor;
  218. static PFNGLBLENDEQUATIONPROC pglBlendEquation;
  219. static PFNGLGENQUERIESPROC pglGenQueries;
  220. static PFNGLDELETEQUERIESPROC pglDeleteQueries;
  221. static PFNGLISQUERYPROC pglIsQuery;
  222. static PFNGLBEGINQUERYPROC pglBeginQuery;
  223. static PFNGLENDQUERYPROC pglEndQuery;
  224. static PFNGLGETQUERYIVPROC pglGetQueryiv;
  225. static PFNGLGETQUERYOBJECTIVPROC pglGetQueryObjectiv;
  226. static PFNGLGETQUERYOBJECTUIVPROC pglGetQueryObjectuiv;
  227. static PFNGLBINDBUFFERPROC pglBindBuffer;
  228. static PFNGLDELETEBUFFERSPROC pglDeleteBuffers;
  229. static PFNGLGENBUFFERSPROC pglGenBuffers;
  230. static PFNGLISBUFFERPROC pglIsBuffer;
  231. static PFNGLBUFFERDATAPROC pglBufferData;
  232. static PFNGLBUFFERSUBDATAPROC pglBufferSubData;
  233. static PFNGLGETBUFFERSUBDATAPROC pglGetBufferSubData;
  234. static PFNGLUNMAPBUFFERPROC pglUnmapBuffer;
  235. static PFNGLGETBUFFERPARAMETERIVPROC pglGetBufferParameteriv;
  236. static PFNGLGETBUFFERPOINTERVPROC pglGetBufferPointerv;
  237. static PFNGLBLENDEQUATIONSEPARATEPROC pglBlendEquationSeparate;
  238. static PFNGLDRAWBUFFERSPROC pglDrawBuffers;
  239. static PFNGLSTENCILOPSEPARATEPROC pglStencilOpSeparate;
  240. static PFNGLSTENCILFUNCSEPARATEPROC pglStencilFuncSeparate;
  241. static PFNGLSTENCILMASKSEPARATEPROC pglStencilMaskSeparate;
  242. static PFNGLATTACHSHADERPROC pglAttachShader;
  243. static PFNGLBINDATTRIBLOCATIONPROC pglBindAttribLocation;
  244. static PFNGLCOMPILESHADERPROC pglCompileShader;
  245. static PFNGLCREATEPROGRAMPROC pglCreateProgram;
  246. static PFNGLCREATESHADERPROC pglCreateShader;
  247. static PFNGLDELETEPROGRAMPROC pglDeleteProgram;
  248. static PFNGLDELETESHADERPROC pglDeleteShader;
  249. static PFNGLDETACHSHADERPROC pglDetachShader;
  250. static PFNGLDISABLEVERTEXATTRIBARRAYPROC pglDisableVertexAttribArray;
  251. static PFNGLENABLEVERTEXATTRIBARRAYPROC pglEnableVertexAttribArray;
  252. static PFNGLGETACTIVEATTRIBPROC pglGetActiveAttrib;
  253. static PFNGLGETACTIVEUNIFORMPROC pglGetActiveUniform;
  254. static PFNGLGETATTACHEDSHADERSPROC pglGetAttachedShaders;
  255. static PFNGLGETATTRIBLOCATIONPROC pglGetAttribLocation;
  256. static PFNGLGETPROGRAMIVPROC pglGetProgramiv;
  257. static PFNGLGETPROGRAMINFOLOGPROC pglGetProgramInfoLog;
  258. static PFNGLGETSHADERIVPROC pglGetShaderiv;
  259. static PFNGLGETSHADERINFOLOGPROC pglGetShaderInfoLog;
  260. static PFNGLGETSHADERSOURCEPROC pglGetShaderSource;
  261. static PFNGLGETUNIFORMLOCATIONPROC pglGetUniformLocation;
  262. static PFNGLGETUNIFORMFVPROC pglGetUniformfv;
  263. static PFNGLGETUNIFORMIVPROC pglGetUniformiv;
  264. static PFNGLGETVERTEXATTRIBDVPROC pglGetVertexAttribdv;
  265. static PFNGLGETVERTEXATTRIBFVPROC pglGetVertexAttribfv;
  266. static PFNGLGETVERTEXATTRIBIVPROC pglGetVertexAttribiv;
  267. static PFNGLGETVERTEXATTRIBPOINTERVPROC pglGetVertexAttribPointerv;
  268. static PFNGLISPROGRAMPROC pglIsProgram;
  269. static PFNGLISSHADERPROC pglIsShader;
  270. static PFNGLLINKPROGRAMPROC pglLinkProgram;
  271. static PFNGLSHADERSOURCEPROC pglShaderSource;
  272. static PFNGLUSEPROGRAMPROC pglUseProgram;
  273. static PFNGLUNIFORM1FPROC pglUniform1f;
  274. static PFNGLUNIFORM2FPROC pglUniform2f;
  275. static PFNGLUNIFORM3FPROC pglUniform3f;
  276. static PFNGLUNIFORM4FPROC pglUniform4f;
  277. static PFNGLUNIFORM1IPROC pglUniform1i;
  278. static PFNGLUNIFORM2IPROC pglUniform2i;
  279. static PFNGLUNIFORM3IPROC pglUniform3i;
  280. static PFNGLUNIFORM4IPROC pglUniform4i;
  281. static PFNGLUNIFORM1FVPROC pglUniform1fv;
  282. static PFNGLUNIFORM2FVPROC pglUniform2fv;
  283. static PFNGLUNIFORM3FVPROC pglUniform3fv;
  284. static PFNGLUNIFORM4FVPROC pglUniform4fv;
  285. static PFNGLUNIFORM1IVPROC pglUniform1iv;
  286. static PFNGLUNIFORM2IVPROC pglUniform2iv;
  287. static PFNGLUNIFORM3IVPROC pglUniform3iv;
  288. static PFNGLUNIFORM4IVPROC pglUniform4iv;
  289. static PFNGLUNIFORMMATRIX2FVPROC pglUniformMatrix2fv;
  290. static PFNGLUNIFORMMATRIX3FVPROC pglUniformMatrix3fv;
  291. static PFNGLUNIFORMMATRIX4FVPROC pglUniformMatrix4fv;
  292. static PFNGLVALIDATEPROGRAMPROC pglValidateProgram;
  293. static PFNGLVERTEXATTRIB1DPROC pglVertexAttrib1d;
  294. static PFNGLVERTEXATTRIB1DVPROC pglVertexAttrib1dv;
  295. static PFNGLVERTEXATTRIB1FPROC pglVertexAttrib1f;
  296. static PFNGLVERTEXATTRIB1FVPROC pglVertexAttrib1fv;
  297. static PFNGLVERTEXATTRIB1SPROC pglVertexAttrib1s;
  298. static PFNGLVERTEXATTRIB1SVPROC pglVertexAttrib1sv;
  299. static PFNGLVERTEXATTRIB2DPROC pglVertexAttrib2d;
  300. static PFNGLVERTEXATTRIB2DVPROC pglVertexAttrib2dv;
  301. static PFNGLVERTEXATTRIB2FPROC pglVertexAttrib2f;
  302. static PFNGLVERTEXATTRIB2FVPROC pglVertexAttrib2fv;
  303. static PFNGLVERTEXATTRIB2SPROC pglVertexAttrib2s;
  304. static PFNGLVERTEXATTRIB2SVPROC pglVertexAttrib2sv;
  305. static PFNGLVERTEXATTRIB3DPROC pglVertexAttrib3d;
  306. static PFNGLVERTEXATTRIB3DVPROC pglVertexAttrib3dv;
  307. static PFNGLVERTEXATTRIB3FPROC pglVertexAttrib3f;
  308. static PFNGLVERTEXATTRIB3FVPROC pglVertexAttrib3fv;
  309. static PFNGLVERTEXATTRIB3SPROC pglVertexAttrib3s;
  310. static PFNGLVERTEXATTRIB3SVPROC pglVertexAttrib3sv;
  311. static PFNGLVERTEXATTRIB4NBVPROC pglVertexAttrib4Nbv;
  312. static PFNGLVERTEXATTRIB4NIVPROC pglVertexAttrib4Niv;
  313. static PFNGLVERTEXATTRIB4NSVPROC pglVertexAttrib4Nsv;
  314. static PFNGLVERTEXATTRIB4NUBPROC pglVertexAttrib4Nub;
  315. static PFNGLVERTEXATTRIB4NUBVPROC pglVertexAttrib4Nubv;
  316. static PFNGLVERTEXATTRIB4NUIVPROC pglVertexAttrib4Nuiv;
  317. static PFNGLVERTEXATTRIB4NUSVPROC pglVertexAttrib4Nusv;
  318. static PFNGLVERTEXATTRIB4BVPROC pglVertexAttrib4bv;
  319. static PFNGLVERTEXATTRIB4DPROC pglVertexAttrib4d;
  320. static PFNGLVERTEXATTRIB4DVPROC pglVertexAttrib4dv;
  321. static PFNGLVERTEXATTRIB4FPROC pglVertexAttrib4f;
  322. static PFNGLVERTEXATTRIB4FVPROC pglVertexAttrib4fv;
  323. static PFNGLVERTEXATTRIB4IVPROC pglVertexAttrib4iv;
  324. static PFNGLVERTEXATTRIB4SPROC pglVertexAttrib4s;
  325. static PFNGLVERTEXATTRIB4SVPROC pglVertexAttrib4sv;
  326. static PFNGLVERTEXATTRIB4UBVPROC pglVertexAttrib4ubv;
  327. static PFNGLVERTEXATTRIB4UIVPROC pglVertexAttrib4uiv;
  328. static PFNGLVERTEXATTRIB4USVPROC pglVertexAttrib4usv;
  329. static PFNGLVERTEXATTRIBPOINTERPROC pglVertexAttribPointer;
  330. static PFNGLUNIFORMMATRIX2X3FVPROC pglUniformMatrix2x3fv;
  331. static PFNGLUNIFORMMATRIX3X2FVPROC pglUniformMatrix3x2fv;
  332. static PFNGLUNIFORMMATRIX2X4FVPROC pglUniformMatrix2x4fv;
  333. static PFNGLUNIFORMMATRIX4X2FVPROC pglUniformMatrix4x2fv;
  334. static PFNGLUNIFORMMATRIX3X4FVPROC pglUniformMatrix3x4fv;
  335. static PFNGLUNIFORMMATRIX4X3FVPROC pglUniformMatrix4x3fv;
  336. static PFNGLCOLORMASKIPROC pglColorMaski;
  337. static PFNGLGETBOOLEANI_VPROC pglGetBooleani_v;
  338. static PFNGLGETINTEGERI_VPROC pglGetIntegeri_v;
  339. static PFNGLENABLEIPROC pglEnablei;
  340. static PFNGLDISABLEIPROC pglDisablei;
  341. static PFNGLISENABLEDIPROC pglIsEnabledi;
  342. static PFNGLBEGINTRANSFORMFEEDBACKPROC pglBeginTransformFeedback;
  343. static PFNGLENDTRANSFORMFEEDBACKPROC pglEndTransformFeedback;
  344. static PFNGLBINDBUFFERRANGEPROC pglBindBufferRange;
  345. static PFNGLBINDBUFFERBASEPROC pglBindBufferBase;
  346. static PFNGLTRANSFORMFEEDBACKVARYINGSPROC pglTransformFeedbackVaryings;
  347. static PFNGLGETTRANSFORMFEEDBACKVARYINGPROC pglGetTransformFeedbackVarying;
  348. static PFNGLCLAMPCOLORPROC pglClampColor;
  349. static PFNGLBEGINCONDITIONALRENDERPROC pglBeginConditionalRender;
  350. static PFNGLENDCONDITIONALRENDERPROC pglEndConditionalRender;
  351. static PFNGLVERTEXATTRIBIPOINTERPROC pglVertexAttribIPointer;
  352. static PFNGLGETVERTEXATTRIBIIVPROC pglGetVertexAttribIiv;
  353. static PFNGLGETVERTEXATTRIBIUIVPROC pglGetVertexAttribIuiv;
  354. static PFNGLVERTEXATTRIBI1IPROC pglVertexAttribI1i;
  355. static PFNGLVERTEXATTRIBI2IPROC pglVertexAttribI2i;
  356. static PFNGLVERTEXATTRIBI3IPROC pglVertexAttribI3i;
  357. static PFNGLVERTEXATTRIBI4IPROC pglVertexAttribI4i;
  358. static PFNGLVERTEXATTRIBI1UIPROC pglVertexAttribI1ui;
  359. static PFNGLVERTEXATTRIBI2UIPROC pglVertexAttribI2ui;
  360. static PFNGLVERTEXATTRIBI3UIPROC pglVertexAttribI3ui;
  361. static PFNGLVERTEXATTRIBI4UIPROC pglVertexAttribI4ui;
  362. static PFNGLVERTEXATTRIBI1IVPROC pglVertexAttribI1iv;
  363. static PFNGLVERTEXATTRIBI2IVPROC pglVertexAttribI2iv;
  364. static PFNGLVERTEXATTRIBI3IVPROC pglVertexAttribI3iv;
  365. static PFNGLVERTEXATTRIBI4IVPROC pglVertexAttribI4iv;
  366. static PFNGLVERTEXATTRIBI1UIVPROC pglVertexAttribI1uiv;
  367. static PFNGLVERTEXATTRIBI2UIVPROC pglVertexAttribI2uiv;
  368. static PFNGLVERTEXATTRIBI3UIVPROC pglVertexAttribI3uiv;
  369. static PFNGLVERTEXATTRIBI4UIVPROC pglVertexAttribI4uiv;
  370. static PFNGLVERTEXATTRIBI4BVPROC pglVertexAttribI4bv;
  371. static PFNGLVERTEXATTRIBI4SVPROC pglVertexAttribI4sv;
  372. static PFNGLVERTEXATTRIBI4UBVPROC pglVertexAttribI4ubv;
  373. static PFNGLVERTEXATTRIBI4USVPROC pglVertexAttribI4usv;
  374. static PFNGLGETUNIFORMUIVPROC pglGetUniformuiv;
  375. static PFNGLBINDFRAGDATALOCATIONPROC pglBindFragDataLocation;
  376. static PFNGLGETFRAGDATALOCATIONPROC pglGetFragDataLocation;
  377. static PFNGLUNIFORM1UIPROC pglUniform1ui;
  378. static PFNGLUNIFORM2UIPROC pglUniform2ui;
  379. static PFNGLUNIFORM3UIPROC pglUniform3ui;
  380. static PFNGLUNIFORM4UIPROC pglUniform4ui;
  381. static PFNGLUNIFORM1UIVPROC pglUniform1uiv;
  382. static PFNGLUNIFORM2UIVPROC pglUniform2uiv;
  383. static PFNGLUNIFORM3UIVPROC pglUniform3uiv;
  384. static PFNGLUNIFORM4UIVPROC pglUniform4uiv;
  385. static PFNGLTEXPARAMETERIIVPROC pglTexParameterIiv;
  386. static PFNGLTEXPARAMETERIUIVPROC pglTexParameterIuiv;
  387. static PFNGLGETTEXPARAMETERIIVPROC pglGetTexParameterIiv;
  388. static PFNGLGETTEXPARAMETERIUIVPROC pglGetTexParameterIuiv;
  389. static PFNGLCLEARBUFFERIVPROC pglClearBufferiv;
  390. static PFNGLCLEARBUFFERUIVPROC pglClearBufferuiv;
  391. static PFNGLCLEARBUFFERFVPROC pglClearBufferfv;
  392. static PFNGLCLEARBUFFERFIPROC pglClearBufferfi;
  393. static PFNGLISRENDERBUFFERPROC pglIsRenderbuffer;
  394. static PFNGLBINDRENDERBUFFERPROC pglBindRenderbuffer;
  395. static PFNGLDELETERENDERBUFFERSPROC pglDeleteRenderbuffers;
  396. static PFNGLGENRENDERBUFFERSPROC pglGenRenderbuffers;
  397. static PFNGLRENDERBUFFERSTORAGEPROC pglRenderbufferStorage;
  398. static PFNGLGETRENDERBUFFERPARAMETERIVPROC pglGetRenderbufferParameteriv;
  399. static PFNGLISFRAMEBUFFERPROC pglIsFramebuffer;
  400. static PFNGLBINDFRAMEBUFFERPROC pglBindFramebuffer;
  401. static PFNGLDELETEFRAMEBUFFERSPROC pglDeleteFramebuffers;
  402. static PFNGLGENFRAMEBUFFERSPROC pglGenFramebuffers;
  403. static PFNGLCHECKFRAMEBUFFERSTATUSPROC pglCheckFramebufferStatus;
  404. static PFNGLFRAMEBUFFERTEXTURE1DPROC pglFramebufferTexture1D;
  405. static PFNGLFRAMEBUFFERTEXTURE2DPROC pglFramebufferTexture2D;
  406. static PFNGLFRAMEBUFFERTEXTURE3DPROC pglFramebufferTexture3D;
  407. static PFNGLFRAMEBUFFERRENDERBUFFERPROC pglFramebufferRenderbuffer;
  408. static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC pglGetFramebufferAttachmentParameteriv;
  409. static PFNGLGENERATEMIPMAPPROC pglGenerateMipmap;
  410. static PFNGLBLITFRAMEBUFFERPROC pglBlitFramebuffer;
  411. static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC pglRenderbufferStorageMultisample;
  412. static PFNGLFRAMEBUFFERTEXTURELAYERPROC pglFramebufferTextureLayer;
  413. static PFNGLFLUSHMAPPEDBUFFERRANGEPROC pglFlushMappedBufferRange;
  414. static PFNGLBINDVERTEXARRAYPROC pglBindVertexArray;
  415. static PFNGLDELETEVERTEXARRAYSPROC pglDeleteVertexArrays;
  416. static PFNGLGENVERTEXARRAYSPROC pglGenVertexArrays;
  417. static PFNGLISVERTEXARRAYPROC pglIsVertexArray;
  418. static PFNGLDRAWARRAYSINSTANCEDPROC pglDrawArraysInstanced;
  419. static PFNGLDRAWELEMENTSINSTANCEDPROC pglDrawElementsInstanced;
  420. static PFNGLTEXBUFFERPROC pglTexBuffer;
  421. static PFNGLPRIMITIVERESTARTINDEXPROC pglPrimitiveRestartIndex;
  422. static PFNGLCOPYBUFFERSUBDATAPROC pglCopyBufferSubData;
  423. static PFNGLGETUNIFORMINDICESPROC pglGetUniformIndices;
  424. static PFNGLGETACTIVEUNIFORMSIVPROC pglGetActiveUniformsiv;
  425. static PFNGLGETACTIVEUNIFORMNAMEPROC pglGetActiveUniformName;
  426. static PFNGLGETUNIFORMBLOCKINDEXPROC pglGetUniformBlockIndex;
  427. static PFNGLGETACTIVEUNIFORMBLOCKIVPROC pglGetActiveUniformBlockiv;
  428. static PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC pglGetActiveUniformBlockName;
  429. static PFNGLUNIFORMBLOCKBINDINGPROC pglUniformBlockBinding;
  430. static PFNGLDRAWELEMENTSBASEVERTEXPROC pglDrawElementsBaseVertex;
  431. static PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC pglDrawRangeElementsBaseVertex;
  432. static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC pglDrawElementsInstancedBaseVertex;
  433. static PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC pglMultiDrawElementsBaseVertex;
  434. static PFNGLPROVOKINGVERTEXPROC pglProvokingVertex;
  435. static PFNGLFENCESYNCPROC pglFenceSync;
  436. static PFNGLISSYNCPROC pglIsSync;
  437. static PFNGLDELETESYNCPROC pglDeleteSync;
  438. static PFNGLCLIENTWAITSYNCPROC pglClientWaitSync;
  439. static PFNGLWAITSYNCPROC pglWaitSync;
  440. static PFNGLGETINTEGER64VPROC pglGetInteger64v;
  441. static PFNGLGETSYNCIVPROC pglGetSynciv;
  442. static PFNGLGETINTEGER64I_VPROC pglGetInteger64i_v;
  443. static PFNGLGETBUFFERPARAMETERI64VPROC pglGetBufferParameteri64v;
  444. static PFNGLFRAMEBUFFERTEXTUREPROC pglFramebufferTexture;
  445. static PFNGLTEXIMAGE2DMULTISAMPLEPROC pglTexImage2DMultisample;
  446. static PFNGLTEXIMAGE3DMULTISAMPLEPROC pglTexImage3DMultisample;
  447. static PFNGLGETMULTISAMPLEFVPROC pglGetMultisamplefv;
  448. static PFNGLSAMPLEMASKIPROC pglSampleMaski;
  449. static PFNGLBINDFRAGDATALOCATIONINDEXEDPROC pglBindFragDataLocationIndexed;
  450. static PFNGLGETFRAGDATAINDEXPROC pglGetFragDataIndex;
  451. static PFNGLGENSAMPLERSPROC pglGenSamplers;
  452. static PFNGLDELETESAMPLERSPROC pglDeleteSamplers;
  453. static PFNGLISSAMPLERPROC pglIsSampler;
  454. static PFNGLBINDSAMPLERPROC pglBindSampler;
  455. static PFNGLSAMPLERPARAMETERIPROC pglSamplerParameteri;
  456. static PFNGLSAMPLERPARAMETERIVPROC pglSamplerParameteriv;
  457. static PFNGLSAMPLERPARAMETERFPROC pglSamplerParameterf;
  458. static PFNGLSAMPLERPARAMETERFVPROC pglSamplerParameterfv;
  459. static PFNGLSAMPLERPARAMETERIIVPROC pglSamplerParameterIiv;
  460. static PFNGLSAMPLERPARAMETERIUIVPROC pglSamplerParameterIuiv;
  461. static PFNGLGETSAMPLERPARAMETERIVPROC pglGetSamplerParameteriv;
  462. static PFNGLGETSAMPLERPARAMETERIIVPROC pglGetSamplerParameterIiv;
  463. static PFNGLGETSAMPLERPARAMETERFVPROC pglGetSamplerParameterfv;
  464. static PFNGLGETSAMPLERPARAMETERIUIVPROC pglGetSamplerParameterIuiv;
  465. static PFNGLQUERYCOUNTERPROC pglQueryCounter;
  466. static PFNGLGETQUERYOBJECTI64VPROC pglGetQueryObjecti64v;
  467. static PFNGLGETQUERYOBJECTUI64VPROC pglGetQueryObjectui64v;
  468. static PFNGLVERTEXATTRIBDIVISORPROC pglVertexAttribDivisor;
  469. static PFNGLVERTEXATTRIBP1UIPROC pglVertexAttribP1ui;
  470. static PFNGLVERTEXATTRIBP1UIVPROC pglVertexAttribP1uiv;
  471. static PFNGLVERTEXATTRIBP2UIPROC pglVertexAttribP2ui;
  472. static PFNGLVERTEXATTRIBP2UIVPROC pglVertexAttribP2uiv;
  473. static PFNGLVERTEXATTRIBP3UIPROC pglVertexAttribP3ui;
  474. static PFNGLVERTEXATTRIBP3UIVPROC pglVertexAttribP3uiv;
  475. static PFNGLVERTEXATTRIBP4UIPROC pglVertexAttribP4ui;
  476. static PFNGLVERTEXATTRIBP4UIVPROC pglVertexAttribP4uiv;
  477. //
  478. // load_procs loads all gl functions addresses into the pointers
  479. //
  480. static void load_procs() {
  481. pglCullFace = (PFNGLCULLFACEPROC)get_proc("glCullFace");
  482. pglFrontFace = (PFNGLFRONTFACEPROC)get_proc("glFrontFace");
  483. pglHint = (PFNGLHINTPROC)get_proc("glHint");
  484. pglLineWidth = (PFNGLLINEWIDTHPROC)get_proc("glLineWidth");
  485. pglPointSize = (PFNGLPOINTSIZEPROC)get_proc("glPointSize");
  486. pglPolygonMode = (PFNGLPOLYGONMODEPROC)get_proc("glPolygonMode");
  487. pglScissor = (PFNGLSCISSORPROC)get_proc("glScissor");
  488. pglTexParameterf = (PFNGLTEXPARAMETERFPROC)get_proc("glTexParameterf");
  489. pglTexParameterfv = (PFNGLTEXPARAMETERFVPROC)get_proc("glTexParameterfv");
  490. pglTexParameteri = (PFNGLTEXPARAMETERIPROC)get_proc("glTexParameteri");
  491. pglTexParameteriv = (PFNGLTEXPARAMETERIVPROC)get_proc("glTexParameteriv");
  492. pglTexImage1D = (PFNGLTEXIMAGE1DPROC)get_proc("glTexImage1D");
  493. pglTexImage2D = (PFNGLTEXIMAGE2DPROC)get_proc("glTexImage2D");
  494. pglDrawBuffer = (PFNGLDRAWBUFFERPROC)get_proc("glDrawBuffer");
  495. pglClear = (PFNGLCLEARPROC)get_proc("glClear");
  496. pglClearColor = (PFNGLCLEARCOLORPROC)get_proc("glClearColor");
  497. pglClearStencil = (PFNGLCLEARSTENCILPROC)get_proc("glClearStencil");
  498. pglClearDepth = (PFNGLCLEARDEPTHPROC)get_proc("glClearDepth");
  499. pglStencilMask = (PFNGLSTENCILMASKPROC)get_proc("glStencilMask");
  500. pglColorMask = (PFNGLCOLORMASKPROC)get_proc("glColorMask");
  501. pglDepthMask = (PFNGLDEPTHMASKPROC)get_proc("glDepthMask");
  502. pglDisable = (PFNGLDISABLEPROC)get_proc("glDisable");
  503. pglEnable = (PFNGLENABLEPROC)get_proc("glEnable");
  504. pglFinish = (PFNGLFINISHPROC)get_proc("glFinish");
  505. pglFlush = (PFNGLFLUSHPROC)get_proc("glFlush");
  506. pglBlendFunc = (PFNGLBLENDFUNCPROC)get_proc("glBlendFunc");
  507. pglLogicOp = (PFNGLLOGICOPPROC)get_proc("glLogicOp");
  508. pglStencilFunc = (PFNGLSTENCILFUNCPROC)get_proc("glStencilFunc");
  509. pglStencilOp = (PFNGLSTENCILOPPROC)get_proc("glStencilOp");
  510. pglDepthFunc = (PFNGLDEPTHFUNCPROC)get_proc("glDepthFunc");
  511. pglPixelStoref = (PFNGLPIXELSTOREFPROC)get_proc("glPixelStoref");
  512. pglPixelStorei = (PFNGLPIXELSTOREIPROC)get_proc("glPixelStorei");
  513. pglReadBuffer = (PFNGLREADBUFFERPROC)get_proc("glReadBuffer");
  514. pglReadPixels = (PFNGLREADPIXELSPROC)get_proc("glReadPixels");
  515. pglGetBooleanv = (PFNGLGETBOOLEANVPROC)get_proc("glGetBooleanv");
  516. pglGetDoublev = (PFNGLGETDOUBLEVPROC)get_proc("glGetDoublev");
  517. pglGetError = (PFNGLGETERRORPROC)get_proc("glGetError");
  518. pglGetFloatv = (PFNGLGETFLOATVPROC)get_proc("glGetFloatv");
  519. pglGetIntegerv = (PFNGLGETINTEGERVPROC)get_proc("glGetIntegerv");
  520. pglGetTexImage = (PFNGLGETTEXIMAGEPROC)get_proc("glGetTexImage");
  521. pglGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)get_proc("glGetTexParameterfv");
  522. pglGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)get_proc("glGetTexParameteriv");
  523. pglGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)get_proc("glGetTexLevelParameterfv");
  524. pglGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)get_proc("glGetTexLevelParameteriv");
  525. pglIsEnabled = (PFNGLISENABLEDPROC)get_proc("glIsEnabled");
  526. pglDepthRange = (PFNGLDEPTHRANGEPROC)get_proc("glDepthRange");
  527. pglViewport = (PFNGLVIEWPORTPROC)get_proc("glViewport");
  528. pglDrawArrays = (PFNGLDRAWARRAYSPROC)get_proc("glDrawArrays");
  529. pglDrawElements = (PFNGLDRAWELEMENTSPROC)get_proc("glDrawElements");
  530. pglGetPointerv = (PFNGLGETPOINTERVPROC)get_proc("glGetPointerv");
  531. pglPolygonOffset = (PFNGLPOLYGONOFFSETPROC)get_proc("glPolygonOffset");
  532. pglCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)get_proc("glCopyTexImage1D");
  533. pglCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)get_proc("glCopyTexImage2D");
  534. pglCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)get_proc("glCopyTexSubImage1D");
  535. pglCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)get_proc("glCopyTexSubImage2D");
  536. pglTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)get_proc("glTexSubImage1D");
  537. pglTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)get_proc("glTexSubImage2D");
  538. pglBindTexture = (PFNGLBINDTEXTUREPROC)get_proc("glBindTexture");
  539. pglDeleteTextures = (PFNGLDELETETEXTURESPROC)get_proc("glDeleteTextures");
  540. pglGenTextures = (PFNGLGENTEXTURESPROC)get_proc("glGenTextures");
  541. pglIsTexture = (PFNGLISTEXTUREPROC)get_proc("glIsTexture");
  542. pglDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)get_proc("glDrawRangeElements");
  543. pglTexImage3D = (PFNGLTEXIMAGE3DPROC)get_proc("glTexImage3D");
  544. pglTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)get_proc("glTexSubImage3D");
  545. pglCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)get_proc("glCopyTexSubImage3D");
  546. pglActiveTexture = (PFNGLACTIVETEXTUREPROC)get_proc("glActiveTexture");
  547. pglSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)get_proc("glSampleCoverage");
  548. pglCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)get_proc("glCompressedTexImage3D");
  549. pglCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)get_proc("glCompressedTexImage2D");
  550. pglCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)get_proc("glCompressedTexImage1D");
  551. pglCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)get_proc("glCompressedTexSubImage3D");
  552. pglCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)get_proc("glCompressedTexSubImage2D");
  553. pglCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)get_proc("glCompressedTexSubImage1D");
  554. pglGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)get_proc("glGetCompressedTexImage");
  555. pglBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)get_proc("glBlendFuncSeparate");
  556. pglMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)get_proc("glMultiDrawArrays");
  557. pglMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)get_proc("glMultiDrawElements");
  558. pglPointParameterf = (PFNGLPOINTPARAMETERFPROC)get_proc("glPointParameterf");
  559. pglPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)get_proc("glPointParameterfv");
  560. pglPointParameteri = (PFNGLPOINTPARAMETERIPROC)get_proc("glPointParameteri");
  561. pglPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)get_proc("glPointParameteriv");
  562. pglBlendColor = (PFNGLBLENDCOLORPROC)get_proc("glBlendColor");
  563. pglBlendEquation = (PFNGLBLENDEQUATIONPROC)get_proc("glBlendEquation");
  564. pglGenQueries = (PFNGLGENQUERIESPROC)get_proc("glGenQueries");
  565. pglDeleteQueries = (PFNGLDELETEQUERIESPROC)get_proc("glDeleteQueries");
  566. pglIsQuery = (PFNGLISQUERYPROC)get_proc("glIsQuery");
  567. pglBeginQuery = (PFNGLBEGINQUERYPROC)get_proc("glBeginQuery");
  568. pglEndQuery = (PFNGLENDQUERYPROC)get_proc("glEndQuery");
  569. pglGetQueryiv = (PFNGLGETQUERYIVPROC)get_proc("glGetQueryiv");
  570. pglGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)get_proc("glGetQueryObjectiv");
  571. pglGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)get_proc("glGetQueryObjectuiv");
  572. pglBindBuffer = (PFNGLBINDBUFFERPROC)get_proc("glBindBuffer");
  573. pglDeleteBuffers = (PFNGLDELETEBUFFERSPROC)get_proc("glDeleteBuffers");
  574. pglGenBuffers = (PFNGLGENBUFFERSPROC)get_proc("glGenBuffers");
  575. pglIsBuffer = (PFNGLISBUFFERPROC)get_proc("glIsBuffer");
  576. pglBufferData = (PFNGLBUFFERDATAPROC)get_proc("glBufferData");
  577. pglBufferSubData = (PFNGLBUFFERSUBDATAPROC)get_proc("glBufferSubData");
  578. pglGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)get_proc("glGetBufferSubData");
  579. pglUnmapBuffer = (PFNGLUNMAPBUFFERPROC)get_proc("glUnmapBuffer");
  580. pglGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)get_proc("glGetBufferParameteriv");
  581. pglGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)get_proc("glGetBufferPointerv");
  582. pglBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)get_proc("glBlendEquationSeparate");
  583. pglDrawBuffers = (PFNGLDRAWBUFFERSPROC)get_proc("glDrawBuffers");
  584. pglStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)get_proc("glStencilOpSeparate");
  585. pglStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)get_proc("glStencilFuncSeparate");
  586. pglStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)get_proc("glStencilMaskSeparate");
  587. pglAttachShader = (PFNGLATTACHSHADERPROC)get_proc("glAttachShader");
  588. pglBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)get_proc("glBindAttribLocation");
  589. pglCompileShader = (PFNGLCOMPILESHADERPROC)get_proc("glCompileShader");
  590. pglCreateProgram = (PFNGLCREATEPROGRAMPROC)get_proc("glCreateProgram");
  591. pglCreateShader = (PFNGLCREATESHADERPROC)get_proc("glCreateShader");
  592. pglDeleteProgram = (PFNGLDELETEPROGRAMPROC)get_proc("glDeleteProgram");
  593. pglDeleteShader = (PFNGLDELETESHADERPROC)get_proc("glDeleteShader");
  594. pglDetachShader = (PFNGLDETACHSHADERPROC)get_proc("glDetachShader");
  595. pglDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)get_proc("glDisableVertexAttribArray");
  596. pglEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)get_proc("glEnableVertexAttribArray");
  597. pglGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)get_proc("glGetActiveAttrib");
  598. pglGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)get_proc("glGetActiveUniform");
  599. pglGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)get_proc("glGetAttachedShaders");
  600. pglGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)get_proc("glGetAttribLocation");
  601. pglGetProgramiv = (PFNGLGETPROGRAMIVPROC)get_proc("glGetProgramiv");
  602. pglGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)get_proc("glGetProgramInfoLog");
  603. pglGetShaderiv = (PFNGLGETSHADERIVPROC)get_proc("glGetShaderiv");
  604. pglGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)get_proc("glGetShaderInfoLog");
  605. pglGetShaderSource = (PFNGLGETSHADERSOURCEPROC)get_proc("glGetShaderSource");
  606. pglGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)get_proc("glGetUniformLocation");
  607. pglGetUniformfv = (PFNGLGETUNIFORMFVPROC)get_proc("glGetUniformfv");
  608. pglGetUniformiv = (PFNGLGETUNIFORMIVPROC)get_proc("glGetUniformiv");
  609. pglGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)get_proc("glGetVertexAttribdv");
  610. pglGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)get_proc("glGetVertexAttribfv");
  611. pglGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)get_proc("glGetVertexAttribiv");
  612. pglGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)get_proc("glGetVertexAttribPointerv");
  613. pglIsProgram = (PFNGLISPROGRAMPROC)get_proc("glIsProgram");
  614. pglIsShader = (PFNGLISSHADERPROC)get_proc("glIsShader");
  615. pglLinkProgram = (PFNGLLINKPROGRAMPROC)get_proc("glLinkProgram");
  616. pglShaderSource = (PFNGLSHADERSOURCEPROC)get_proc("glShaderSource");
  617. pglUseProgram = (PFNGLUSEPROGRAMPROC)get_proc("glUseProgram");
  618. pglUniform1f = (PFNGLUNIFORM1FPROC)get_proc("glUniform1f");
  619. pglUniform2f = (PFNGLUNIFORM2FPROC)get_proc("glUniform2f");
  620. pglUniform3f = (PFNGLUNIFORM3FPROC)get_proc("glUniform3f");
  621. pglUniform4f = (PFNGLUNIFORM4FPROC)get_proc("glUniform4f");
  622. pglUniform1i = (PFNGLUNIFORM1IPROC)get_proc("glUniform1i");
  623. pglUniform2i = (PFNGLUNIFORM2IPROC)get_proc("glUniform2i");
  624. pglUniform3i = (PFNGLUNIFORM3IPROC)get_proc("glUniform3i");
  625. pglUniform4i = (PFNGLUNIFORM4IPROC)get_proc("glUniform4i");
  626. pglUniform1fv = (PFNGLUNIFORM1FVPROC)get_proc("glUniform1fv");
  627. pglUniform2fv = (PFNGLUNIFORM2FVPROC)get_proc("glUniform2fv");
  628. pglUniform3fv = (PFNGLUNIFORM3FVPROC)get_proc("glUniform3fv");
  629. pglUniform4fv = (PFNGLUNIFORM4FVPROC)get_proc("glUniform4fv");
  630. pglUniform1iv = (PFNGLUNIFORM1IVPROC)get_proc("glUniform1iv");
  631. pglUniform2iv = (PFNGLUNIFORM2IVPROC)get_proc("glUniform2iv");
  632. pglUniform3iv = (PFNGLUNIFORM3IVPROC)get_proc("glUniform3iv");
  633. pglUniform4iv = (PFNGLUNIFORM4IVPROC)get_proc("glUniform4iv");
  634. pglUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)get_proc("glUniformMatrix2fv");
  635. pglUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)get_proc("glUniformMatrix3fv");
  636. pglUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)get_proc("glUniformMatrix4fv");
  637. pglValidateProgram = (PFNGLVALIDATEPROGRAMPROC)get_proc("glValidateProgram");
  638. pglVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)get_proc("glVertexAttrib1d");
  639. pglVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)get_proc("glVertexAttrib1dv");
  640. pglVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)get_proc("glVertexAttrib1f");
  641. pglVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)get_proc("glVertexAttrib1fv");
  642. pglVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)get_proc("glVertexAttrib1s");
  643. pglVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)get_proc("glVertexAttrib1sv");
  644. pglVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)get_proc("glVertexAttrib2d");
  645. pglVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)get_proc("glVertexAttrib2dv");
  646. pglVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)get_proc("glVertexAttrib2f");
  647. pglVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)get_proc("glVertexAttrib2fv");
  648. pglVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)get_proc("glVertexAttrib2s");
  649. pglVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)get_proc("glVertexAttrib2sv");
  650. pglVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)get_proc("glVertexAttrib3d");
  651. pglVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)get_proc("glVertexAttrib3dv");
  652. pglVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)get_proc("glVertexAttrib3f");
  653. pglVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)get_proc("glVertexAttrib3fv");
  654. pglVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)get_proc("glVertexAttrib3s");
  655. pglVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)get_proc("glVertexAttrib3sv");
  656. pglVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)get_proc("glVertexAttrib4Nbv");
  657. pglVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)get_proc("glVertexAttrib4Niv");
  658. pglVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)get_proc("glVertexAttrib4Nsv");
  659. pglVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)get_proc("glVertexAttrib4Nub");
  660. pglVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)get_proc("glVertexAttrib4Nubv");
  661. pglVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)get_proc("glVertexAttrib4Nuiv");
  662. pglVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)get_proc("glVertexAttrib4Nusv");
  663. pglVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)get_proc("glVertexAttrib4bv");
  664. pglVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)get_proc("glVertexAttrib4d");
  665. pglVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)get_proc("glVertexAttrib4dv");
  666. pglVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)get_proc("glVertexAttrib4f");
  667. pglVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)get_proc("glVertexAttrib4fv");
  668. pglVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)get_proc("glVertexAttrib4iv");
  669. pglVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)get_proc("glVertexAttrib4s");
  670. pglVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)get_proc("glVertexAttrib4sv");
  671. pglVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)get_proc("glVertexAttrib4ubv");
  672. pglVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)get_proc("glVertexAttrib4uiv");
  673. pglVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)get_proc("glVertexAttrib4usv");
  674. pglVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)get_proc("glVertexAttribPointer");
  675. pglUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)get_proc("glUniformMatrix2x3fv");
  676. pglUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)get_proc("glUniformMatrix3x2fv");
  677. pglUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)get_proc("glUniformMatrix2x4fv");
  678. pglUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)get_proc("glUniformMatrix4x2fv");
  679. pglUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)get_proc("glUniformMatrix3x4fv");
  680. pglUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)get_proc("glUniformMatrix4x3fv");
  681. pglColorMaski = (PFNGLCOLORMASKIPROC)get_proc("glColorMaski");
  682. pglGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)get_proc("glGetBooleani_v");
  683. pglGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)get_proc("glGetIntegeri_v");
  684. pglEnablei = (PFNGLENABLEIPROC)get_proc("glEnablei");
  685. pglDisablei = (PFNGLDISABLEIPROC)get_proc("glDisablei");
  686. pglIsEnabledi = (PFNGLISENABLEDIPROC)get_proc("glIsEnabledi");
  687. pglBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)get_proc("glBeginTransformFeedback");
  688. pglEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)get_proc("glEndTransformFeedback");
  689. pglBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)get_proc("glBindBufferRange");
  690. pglBindBufferBase = (PFNGLBINDBUFFERBASEPROC)get_proc("glBindBufferBase");
  691. pglTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)get_proc("glTransformFeedbackVaryings");
  692. pglGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)get_proc("glGetTransformFeedbackVarying");
  693. pglClampColor = (PFNGLCLAMPCOLORPROC)get_proc("glClampColor");
  694. pglBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)get_proc("glBeginConditionalRender");
  695. pglEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)get_proc("glEndConditionalRender");
  696. pglVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)get_proc("glVertexAttribIPointer");
  697. pglGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)get_proc("glGetVertexAttribIiv");
  698. pglGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)get_proc("glGetVertexAttribIuiv");
  699. pglVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)get_proc("glVertexAttribI1i");
  700. pglVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)get_proc("glVertexAttribI2i");
  701. pglVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)get_proc("glVertexAttribI3i");
  702. pglVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)get_proc("glVertexAttribI4i");
  703. pglVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)get_proc("glVertexAttribI1ui");
  704. pglVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)get_proc("glVertexAttribI2ui");
  705. pglVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)get_proc("glVertexAttribI3ui");
  706. pglVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)get_proc("glVertexAttribI4ui");
  707. pglVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)get_proc("glVertexAttribI1iv");
  708. pglVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)get_proc("glVertexAttribI2iv");
  709. pglVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)get_proc("glVertexAttribI3iv");
  710. pglVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)get_proc("glVertexAttribI4iv");
  711. pglVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)get_proc("glVertexAttribI1uiv");
  712. pglVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)get_proc("glVertexAttribI2uiv");
  713. pglVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)get_proc("glVertexAttribI3uiv");
  714. pglVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)get_proc("glVertexAttribI4uiv");
  715. pglVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)get_proc("glVertexAttribI4bv");
  716. pglVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)get_proc("glVertexAttribI4sv");
  717. pglVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)get_proc("glVertexAttribI4ubv");
  718. pglVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)get_proc("glVertexAttribI4usv");
  719. pglGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)get_proc("glGetUniformuiv");
  720. pglBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)get_proc("glBindFragDataLocation");
  721. pglGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)get_proc("glGetFragDataLocation");
  722. pglUniform1ui = (PFNGLUNIFORM1UIPROC)get_proc("glUniform1ui");
  723. pglUniform2ui = (PFNGLUNIFORM2UIPROC)get_proc("glUniform2ui");
  724. pglUniform3ui = (PFNGLUNIFORM3UIPROC)get_proc("glUniform3ui");
  725. pglUniform4ui = (PFNGLUNIFORM4UIPROC)get_proc("glUniform4ui");
  726. pglUniform1uiv = (PFNGLUNIFORM1UIVPROC)get_proc("glUniform1uiv");
  727. pglUniform2uiv = (PFNGLUNIFORM2UIVPROC)get_proc("glUniform2uiv");
  728. pglUniform3uiv = (PFNGLUNIFORM3UIVPROC)get_proc("glUniform3uiv");
  729. pglUniform4uiv = (PFNGLUNIFORM4UIVPROC)get_proc("glUniform4uiv");
  730. pglTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)get_proc("glTexParameterIiv");
  731. pglTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)get_proc("glTexParameterIuiv");
  732. pglGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)get_proc("glGetTexParameterIiv");
  733. pglGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)get_proc("glGetTexParameterIuiv");
  734. pglClearBufferiv = (PFNGLCLEARBUFFERIVPROC)get_proc("glClearBufferiv");
  735. pglClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)get_proc("glClearBufferuiv");
  736. pglClearBufferfv = (PFNGLCLEARBUFFERFVPROC)get_proc("glClearBufferfv");
  737. pglClearBufferfi = (PFNGLCLEARBUFFERFIPROC)get_proc("glClearBufferfi");
  738. pglIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)get_proc("glIsRenderbuffer");
  739. pglBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)get_proc("glBindRenderbuffer");
  740. pglDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)get_proc("glDeleteRenderbuffers");
  741. pglGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)get_proc("glGenRenderbuffers");
  742. pglRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)get_proc("glRenderbufferStorage");
  743. pglGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)get_proc("glGetRenderbufferParameteriv");
  744. pglIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)get_proc("glIsFramebuffer");
  745. pglBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)get_proc("glBindFramebuffer");
  746. pglDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)get_proc("glDeleteFramebuffers");
  747. pglGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)get_proc("glGenFramebuffers");
  748. pglCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)get_proc("glCheckFramebufferStatus");
  749. pglFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)get_proc("glFramebufferTexture1D");
  750. pglFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)get_proc("glFramebufferTexture2D");
  751. pglFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)get_proc("glFramebufferTexture3D");
  752. pglFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)get_proc("glFramebufferRenderbuffer");
  753. pglGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)get_proc("glGetFramebufferAttachmentParameteriv");
  754. pglGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)get_proc("glGenerateMipmap");
  755. pglBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)get_proc("glBlitFramebuffer");
  756. pglRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)get_proc("glRenderbufferStorageMultisample");
  757. pglFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)get_proc("glFramebufferTextureLayer");
  758. pglFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)get_proc("glFlushMappedBufferRange");
  759. pglBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)get_proc("glBindVertexArray");
  760. pglDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)get_proc("glDeleteVertexArrays");
  761. pglGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)get_proc("glGenVertexArrays");
  762. pglIsVertexArray = (PFNGLISVERTEXARRAYPROC)get_proc("glIsVertexArray");
  763. pglDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)get_proc("glDrawArraysInstanced");
  764. pglDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)get_proc("glDrawElementsInstanced");
  765. pglTexBuffer = (PFNGLTEXBUFFERPROC)get_proc("glTexBuffer");
  766. pglPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)get_proc("glPrimitiveRestartIndex");
  767. pglCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)get_proc("glCopyBufferSubData");
  768. pglGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)get_proc("glGetUniformIndices");
  769. pglGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)get_proc("glGetActiveUniformsiv");
  770. pglGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)get_proc("glGetActiveUniformName");
  771. pglGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)get_proc("glGetUniformBlockIndex");
  772. pglGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)get_proc("glGetActiveUniformBlockiv");
  773. pglGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)get_proc("glGetActiveUniformBlockName");
  774. pglUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)get_proc("glUniformBlockBinding");
  775. pglDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)get_proc("glDrawElementsBaseVertex");
  776. pglDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)get_proc("glDrawRangeElementsBaseVertex");
  777. pglDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)get_proc("glDrawElementsInstancedBaseVertex");
  778. pglMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)get_proc("glMultiDrawElementsBaseVertex");
  779. pglProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)get_proc("glProvokingVertex");
  780. pglFenceSync = (PFNGLFENCESYNCPROC)get_proc("glFenceSync");
  781. pglIsSync = (PFNGLISSYNCPROC)get_proc("glIsSync");
  782. pglDeleteSync = (PFNGLDELETESYNCPROC)get_proc("glDeleteSync");
  783. pglClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)get_proc("glClientWaitSync");
  784. pglWaitSync = (PFNGLWAITSYNCPROC)get_proc("glWaitSync");
  785. pglGetInteger64v = (PFNGLGETINTEGER64VPROC)get_proc("glGetInteger64v");
  786. pglGetSynciv = (PFNGLGETSYNCIVPROC)get_proc("glGetSynciv");
  787. pglGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)get_proc("glGetInteger64i_v");
  788. pglGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)get_proc("glGetBufferParameteri64v");
  789. pglFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)get_proc("glFramebufferTexture");
  790. pglTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)get_proc("glTexImage2DMultisample");
  791. pglTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)get_proc("glTexImage3DMultisample");
  792. pglGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)get_proc("glGetMultisamplefv");
  793. pglSampleMaski = (PFNGLSAMPLEMASKIPROC)get_proc("glSampleMaski");
  794. pglBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)get_proc("glBindFragDataLocationIndexed");
  795. pglGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)get_proc("glGetFragDataIndex");
  796. pglGenSamplers = (PFNGLGENSAMPLERSPROC)get_proc("glGenSamplers");
  797. pglDeleteSamplers = (PFNGLDELETESAMPLERSPROC)get_proc("glDeleteSamplers");
  798. pglIsSampler = (PFNGLISSAMPLERPROC)get_proc("glIsSampler");
  799. pglBindSampler = (PFNGLBINDSAMPLERPROC)get_proc("glBindSampler");
  800. pglSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)get_proc("glSamplerParameteri");
  801. pglSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)get_proc("glSamplerParameteriv");
  802. pglSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)get_proc("glSamplerParameterf");
  803. pglSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)get_proc("glSamplerParameterfv");
  804. pglSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)get_proc("glSamplerParameterIiv");
  805. pglSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)get_proc("glSamplerParameterIuiv");
  806. pglGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)get_proc("glGetSamplerParameteriv");
  807. pglGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)get_proc("glGetSamplerParameterIiv");
  808. pglGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)get_proc("glGetSamplerParameterfv");
  809. pglGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)get_proc("glGetSamplerParameterIuiv");
  810. pglQueryCounter = (PFNGLQUERYCOUNTERPROC)get_proc("glQueryCounter");
  811. pglGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)get_proc("glGetQueryObjecti64v");
  812. pglGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)get_proc("glGetQueryObjectui64v");
  813. pglVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)get_proc("glVertexAttribDivisor");
  814. pglVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)get_proc("glVertexAttribP1ui");
  815. pglVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)get_proc("glVertexAttribP1uiv");
  816. pglVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)get_proc("glVertexAttribP2ui");
  817. pglVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)get_proc("glVertexAttribP2uiv");
  818. pglVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)get_proc("glVertexAttribP3ui");
  819. pglVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)get_proc("glVertexAttribP3uiv");
  820. pglVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)get_proc("glVertexAttribP4ui");
  821. pglVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)get_proc("glVertexAttribP4uiv");
  822. }
  823. //
  824. // Definitions of C wrapper functions for all OpenGL loaded pointers
  825. // which call the pointer and optionally cals glGetError() to check
  826. // for OpenGL errors.
  827. //
  828. void glCullFace (GLenum mode) {
  829. pglCullFace(mode);
  830. if (checkError) {
  831. GLenum err = pglGetError();
  832. if (err != GL_NO_ERROR) {
  833. panic(err, "glCullFace");
  834. }
  835. }
  836. }
  837. void glFrontFace (GLenum mode) {
  838. pglFrontFace(mode);
  839. if (checkError) {
  840. GLenum err = pglGetError();
  841. if (err != GL_NO_ERROR) {
  842. panic(err, "glFrontFace");
  843. }
  844. }
  845. }
  846. void glHint (GLenum target, GLenum mode) {
  847. pglHint(target, mode);
  848. if (checkError) {
  849. GLenum err = pglGetError();
  850. if (err != GL_NO_ERROR) {
  851. panic(err, "glHint");
  852. }
  853. }
  854. }
  855. void glLineWidth (GLfloat width) {
  856. pglLineWidth(width);
  857. if (checkError) {
  858. GLenum err = pglGetError();
  859. if (err != GL_NO_ERROR) {
  860. panic(err, "glLineWidth");
  861. }
  862. }
  863. }
  864. void glPointSize (GLfloat size) {
  865. pglPointSize(size);
  866. if (checkError) {
  867. GLenum err = pglGetError();
  868. if (err != GL_NO_ERROR) {
  869. panic(err, "glPointSize");
  870. }
  871. }
  872. }
  873. void glPolygonMode (GLenum face, GLenum mode) {
  874. pglPolygonMode(face, mode);
  875. if (checkError) {
  876. GLenum err = pglGetError();
  877. if (err != GL_NO_ERROR) {
  878. panic(err, "glPolygonMode");
  879. }
  880. }
  881. }
  882. void glScissor (GLint x, GLint y, GLsizei width, GLsizei height) {
  883. pglScissor(x, y, width, height);
  884. if (checkError) {
  885. GLenum err = pglGetError();
  886. if (err != GL_NO_ERROR) {
  887. panic(err, "glScissor");
  888. }
  889. }
  890. }
  891. void glTexParameterf (GLenum target, GLenum pname, GLfloat param) {
  892. pglTexParameterf(target, pname, param);
  893. if (checkError) {
  894. GLenum err = pglGetError();
  895. if (err != GL_NO_ERROR) {
  896. panic(err, "glTexParameterf");
  897. }
  898. }
  899. }
  900. void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params) {
  901. pglTexParameterfv(target, pname, params);
  902. if (checkError) {
  903. GLenum err = pglGetError();
  904. if (err != GL_NO_ERROR) {
  905. panic(err, "glTexParameterfv");
  906. }
  907. }
  908. }
  909. void glTexParameteri (GLenum target, GLenum pname, GLint param) {
  910. pglTexParameteri(target, pname, param);
  911. if (checkError) {
  912. GLenum err = pglGetError();
  913. if (err != GL_NO_ERROR) {
  914. panic(err, "glTexParameteri");
  915. }
  916. }
  917. }
  918. void glTexParameteriv (GLenum target, GLenum pname, const GLint *params) {
  919. pglTexParameteriv(target, pname, params);
  920. if (checkError) {
  921. GLenum err = pglGetError();
  922. if (err != GL_NO_ERROR) {
  923. panic(err, "glTexParameteriv");
  924. }
  925. }
  926. }
  927. void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels) {
  928. pglTexImage1D(target, level, internalformat, width, border, format, type, pixels);
  929. if (checkError) {
  930. GLenum err = pglGetError();
  931. if (err != GL_NO_ERROR) {
  932. panic(err, "glTexImage1D");
  933. }
  934. }
  935. }
  936. void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels) {
  937. pglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
  938. if (checkError) {
  939. GLenum err = pglGetError();
  940. if (err != GL_NO_ERROR) {
  941. panic(err, "glTexImage2D");
  942. }
  943. }
  944. }
  945. void glDrawBuffer (GLenum buf) {
  946. pglDrawBuffer(buf);
  947. if (checkError) {
  948. GLenum err = pglGetError();
  949. if (err != GL_NO_ERROR) {
  950. panic(err, "glDrawBuffer");
  951. }
  952. }
  953. }
  954. void glClear (GLbitfield mask) {
  955. pglClear(mask);
  956. if (checkError) {
  957. GLenum err = pglGetError();
  958. if (err != GL_NO_ERROR) {
  959. panic(err, "glClear");
  960. }
  961. }
  962. }
  963. void glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
  964. pglClearColor(red, green, blue, alpha);
  965. if (checkError) {
  966. GLenum err = pglGetError();
  967. if (err != GL_NO_ERROR) {
  968. panic(err, "glClearColor");
  969. }
  970. }
  971. }
  972. void glClearStencil (GLint s) {
  973. pglClearStencil(s);
  974. if (checkError) {
  975. GLenum err = pglGetError();
  976. if (err != GL_NO_ERROR) {
  977. panic(err, "glClearStencil");
  978. }
  979. }
  980. }
  981. void glClearDepth (GLdouble depth) {
  982. pglClearDepth(depth);
  983. if (checkError) {
  984. GLenum err = pglGetError();
  985. if (err != GL_NO_ERROR) {
  986. panic(err, "glClearDepth");
  987. }
  988. }
  989. }
  990. void glStencilMask (GLuint mask) {
  991. pglStencilMask(mask);
  992. if (checkError) {
  993. GLenum err = pglGetError();
  994. if (err != GL_NO_ERROR) {
  995. panic(err, "glStencilMask");
  996. }
  997. }
  998. }
  999. void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
  1000. pglColorMask(red, green, blue, alpha);
  1001. if (checkError) {
  1002. GLenum err = pglGetError();
  1003. if (err != GL_NO_ERROR) {
  1004. panic(err, "glColorMask");
  1005. }
  1006. }
  1007. }
  1008. void glDepthMask (GLboolean flag) {
  1009. pglDepthMask(flag);
  1010. if (checkError) {
  1011. GLenum err = pglGetError();
  1012. if (err != GL_NO_ERROR) {
  1013. panic(err, "glDepthMask");
  1014. }
  1015. }
  1016. }
  1017. void glDisable (GLenum cap) {
  1018. pglDisable(cap);
  1019. if (checkError) {
  1020. GLenum err = pglGetError();
  1021. if (err != GL_NO_ERROR) {
  1022. panic(err, "glDisable");
  1023. }
  1024. }
  1025. }
  1026. void glEnable (GLenum cap) {
  1027. pglEnable(cap);
  1028. if (checkError) {
  1029. GLenum err = pglGetError();
  1030. if (err != GL_NO_ERROR) {
  1031. panic(err, "glEnable");
  1032. }
  1033. }
  1034. }
  1035. void glFinish (void) {
  1036. pglFinish();
  1037. if (checkError) {
  1038. GLenum err = pglGetError();
  1039. if (err != GL_NO_ERROR) {
  1040. panic(err, "glFinish");
  1041. }
  1042. }
  1043. }
  1044. void glFlush (void) {
  1045. pglFlush();
  1046. if (checkError) {
  1047. GLenum err = pglGetError();
  1048. if (err != GL_NO_ERROR) {
  1049. panic(err, "glFlush");
  1050. }
  1051. }
  1052. }
  1053. void glBlendFunc (GLenum sfactor, GLenum dfactor) {
  1054. pglBlendFunc(sfactor, dfactor);
  1055. if (checkError) {
  1056. GLenum err = pglGetError();
  1057. if (err != GL_NO_ERROR) {
  1058. panic(err, "glBlendFunc");
  1059. }
  1060. }
  1061. }
  1062. void glLogicOp (GLenum opcode) {
  1063. pglLogicOp(opcode);
  1064. if (checkError) {
  1065. GLenum err = pglGetError();
  1066. if (err != GL_NO_ERROR) {
  1067. panic(err, "glLogicOp");
  1068. }
  1069. }
  1070. }
  1071. void glStencilFunc (GLenum func, GLint ref, GLuint mask) {
  1072. pglStencilFunc(func, ref, mask);
  1073. if (checkError) {
  1074. GLenum err = pglGetError();
  1075. if (err != GL_NO_ERROR) {
  1076. panic(err, "glStencilFunc");
  1077. }
  1078. }
  1079. }
  1080. void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass) {
  1081. pglStencilOp(fail, zfail, zpass);
  1082. if (checkError) {
  1083. GLenum err = pglGetError();
  1084. if (err != GL_NO_ERROR) {
  1085. panic(err, "glStencilOp");
  1086. }
  1087. }
  1088. }
  1089. void glDepthFunc (GLenum func) {
  1090. pglDepthFunc(func);
  1091. if (checkError) {
  1092. GLenum err = pglGetError();
  1093. if (err != GL_NO_ERROR) {
  1094. panic(err, "glDepthFunc");
  1095. }
  1096. }
  1097. }
  1098. void glPixelStoref (GLenum pname, GLfloat param) {
  1099. pglPixelStoref(pname, param);
  1100. if (checkError) {
  1101. GLenum err = pglGetError();
  1102. if (err != GL_NO_ERROR) {
  1103. panic(err, "glPixelStoref");
  1104. }
  1105. }
  1106. }
  1107. void glPixelStorei (GLenum pname, GLint param) {
  1108. pglPixelStorei(pname, param);
  1109. if (checkError) {
  1110. GLenum err = pglGetError();
  1111. if (err != GL_NO_ERROR) {
  1112. panic(err, "glPixelStorei");
  1113. }
  1114. }
  1115. }
  1116. void glReadBuffer (GLenum src) {
  1117. pglReadBuffer(src);
  1118. if (checkError) {
  1119. GLenum err = pglGetError();
  1120. if (err != GL_NO_ERROR) {
  1121. panic(err, "glReadBuffer");
  1122. }
  1123. }
  1124. }
  1125. void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) {
  1126. pglReadPixels(x, y, width, height, format, type, pixels);
  1127. if (checkError) {
  1128. GLenum err = pglGetError();
  1129. if (err != GL_NO_ERROR) {
  1130. panic(err, "glReadPixels");
  1131. }
  1132. }
  1133. }
  1134. void glGetBooleanv (GLenum pname, GLboolean *data) {
  1135. pglGetBooleanv(pname, data);
  1136. if (checkError) {
  1137. GLenum err = pglGetError();
  1138. if (err != GL_NO_ERROR) {
  1139. panic(err, "glGetBooleanv");
  1140. }
  1141. }
  1142. }
  1143. void glGetDoublev (GLenum pname, GLdouble *data) {
  1144. pglGetDoublev(pname, data);
  1145. if (checkError) {
  1146. GLenum err = pglGetError();
  1147. if (err != GL_NO_ERROR) {
  1148. panic(err, "glGetDoublev");
  1149. }
  1150. }
  1151. }
  1152. GLenum glGetError (void) {
  1153. GLenum res = pglGetError();
  1154. if (checkError) {
  1155. GLenum err = pglGetError();
  1156. if (err != GL_NO_ERROR) {
  1157. panic(err, "glGetError");
  1158. }
  1159. }
  1160. return res;
  1161. }
  1162. void glGetFloatv (GLenum pname, GLfloat *data) {
  1163. pglGetFloatv(pname, data);
  1164. if (checkError) {
  1165. GLenum err = pglGetError();
  1166. if (err != GL_NO_ERROR) {
  1167. panic(err, "glGetFloatv");
  1168. }
  1169. }
  1170. }
  1171. void glGetIntegerv (GLenum pname, GLint *data) {
  1172. pglGetIntegerv(pname, data);
  1173. if (checkError) {
  1174. GLenum err = pglGetError();
  1175. if (err != GL_NO_ERROR) {
  1176. panic(err, "glGetIntegerv");
  1177. }
  1178. }
  1179. }
  1180. void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels) {
  1181. pglGetTexImage(target, level, format, type, pixels);
  1182. if (checkError) {
  1183. GLenum err = pglGetError();
  1184. if (err != GL_NO_ERROR) {
  1185. panic(err, "glGetTexImage");
  1186. }
  1187. }
  1188. }
  1189. void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params) {
  1190. pglGetTexParameterfv(target, pname, params);
  1191. if (checkError) {
  1192. GLenum err = pglGetError();
  1193. if (err != GL_NO_ERROR) {
  1194. panic(err, "glGetTexParameterfv");
  1195. }
  1196. }
  1197. }
  1198. void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params) {
  1199. pglGetTexParameteriv(target, pname, params);
  1200. if (checkError) {
  1201. GLenum err = pglGetError();
  1202. if (err != GL_NO_ERROR) {
  1203. panic(err, "glGetTexParameteriv");
  1204. }
  1205. }
  1206. }
  1207. void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params) {
  1208. pglGetTexLevelParameterfv(target, level, pname, params);
  1209. if (checkError) {
  1210. GLenum err = pglGetError();
  1211. if (err != GL_NO_ERROR) {
  1212. panic(err, "glGetTexLevelParameterfv");
  1213. }
  1214. }
  1215. }
  1216. void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params) {
  1217. pglGetTexLevelParameteriv(target, level, pname, params);
  1218. if (checkError) {
  1219. GLenum err = pglGetError();
  1220. if (err != GL_NO_ERROR) {
  1221. panic(err, "glGetTexLevelParameteriv");
  1222. }
  1223. }
  1224. }
  1225. GLboolean glIsEnabled (GLenum cap) {
  1226. GLboolean res = pglIsEnabled(cap);
  1227. if (checkError) {
  1228. GLenum err = pglGetError();
  1229. if (err != GL_NO_ERROR) {
  1230. panic(err, "glIsEnabled");
  1231. }
  1232. }
  1233. return res;
  1234. }
  1235. void glDepthRange (GLdouble near, GLdouble far) {
  1236. pglDepthRange(near, far);
  1237. if (checkError) {
  1238. GLenum err = pglGetError();
  1239. if (err != GL_NO_ERROR) {
  1240. panic(err, "glDepthRange");
  1241. }
  1242. }
  1243. }
  1244. void glViewport (GLint x, GLint y, GLsizei width, GLsizei height) {
  1245. pglViewport(x, y, width, height);
  1246. if (checkError) {
  1247. GLenum err = pglGetError();
  1248. if (err != GL_NO_ERROR) {
  1249. panic(err, "glViewport");
  1250. }
  1251. }
  1252. }
  1253. void glDrawArrays (GLenum mode, GLint first, GLsizei count) {
  1254. pglDrawArrays(mode, first, count);
  1255. if (checkError) {
  1256. GLenum err = pglGetError();
  1257. if (err != GL_NO_ERROR) {
  1258. panic(err, "glDrawArrays");
  1259. }
  1260. }
  1261. }
  1262. void glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices) {
  1263. pglDrawElements(mode, count, type, indices);
  1264. if (checkError) {
  1265. GLenum err = pglGetError();
  1266. if (err != GL_NO_ERROR) {
  1267. panic(err, "glDrawElements");
  1268. }
  1269. }
  1270. }
  1271. void glGetPointerv (GLenum pname, void **params) {
  1272. pglGetPointerv(pname, params);
  1273. if (checkError) {
  1274. GLenum err = pglGetError();
  1275. if (err != GL_NO_ERROR) {
  1276. panic(err, "glGetPointerv");
  1277. }
  1278. }
  1279. }
  1280. void glPolygonOffset (GLfloat factor, GLfloat units) {
  1281. pglPolygonOffset(factor, units);
  1282. if (checkError) {
  1283. GLenum err = pglGetError();
  1284. if (err != GL_NO_ERROR) {
  1285. panic(err, "glPolygonOffset");
  1286. }
  1287. }
  1288. }
  1289. void glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
  1290. pglCopyTexImage1D(target, level, internalformat, x, y, width, border);
  1291. if (checkError) {
  1292. GLenum err = pglGetError();
  1293. if (err != GL_NO_ERROR) {
  1294. panic(err, "glCopyTexImage1D");
  1295. }
  1296. }
  1297. }
  1298. void glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
  1299. pglCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
  1300. if (checkError) {
  1301. GLenum err = pglGetError();
  1302. if (err != GL_NO_ERROR) {
  1303. panic(err, "glCopyTexImage2D");
  1304. }
  1305. }
  1306. }
  1307. void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
  1308. pglCopyTexSubImage1D(target, level, xoffset, x, y, width);
  1309. if (checkError) {
  1310. GLenum err = pglGetError();
  1311. if (err != GL_NO_ERROR) {
  1312. panic(err, "glCopyTexSubImage1D");
  1313. }
  1314. }
  1315. }
  1316. void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
  1317. pglCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
  1318. if (checkError) {
  1319. GLenum err = pglGetError();
  1320. if (err != GL_NO_ERROR) {
  1321. panic(err, "glCopyTexSubImage2D");
  1322. }
  1323. }
  1324. }
  1325. void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels) {
  1326. pglTexSubImage1D(target, level, xoffset, width, format, type, pixels);
  1327. if (checkError) {
  1328. GLenum err = pglGetError();
  1329. if (err != GL_NO_ERROR) {
  1330. panic(err, "glTexSubImage1D");
  1331. }
  1332. }
  1333. }
  1334. void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) {
  1335. pglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
  1336. if (checkError) {
  1337. GLenum err = pglGetError();
  1338. if (err != GL_NO_ERROR) {
  1339. panic(err, "glTexSubImage2D");
  1340. }
  1341. }
  1342. }
  1343. void glBindTexture (GLenum target, GLuint texture) {
  1344. pglBindTexture(target, texture);
  1345. if (checkError) {
  1346. GLenum err = pglGetError();
  1347. if (err != GL_NO_ERROR) {
  1348. panic(err, "glBindTexture");
  1349. }
  1350. }
  1351. }
  1352. void glDeleteTextures (GLsizei n, const GLuint *textures) {
  1353. pglDeleteTextures(n, textures);
  1354. if (checkError) {
  1355. GLenum err = pglGetError();
  1356. if (err != GL_NO_ERROR) {
  1357. panic(err, "glDeleteTextures");
  1358. }
  1359. }
  1360. }
  1361. void glGenTextures (GLsizei n, GLuint *textures) {
  1362. pglGenTextures(n, textures);
  1363. if (checkError) {
  1364. GLenum err = pglGetError();
  1365. if (err != GL_NO_ERROR) {
  1366. panic(err, "glGenTextures");
  1367. }
  1368. }
  1369. }
  1370. GLboolean glIsTexture (GLuint texture) {
  1371. GLboolean res = pglIsTexture(texture);
  1372. if (checkError) {
  1373. GLenum err = pglGetError();
  1374. if (err != GL_NO_ERROR) {
  1375. panic(err, "glIsTexture");
  1376. }
  1377. }
  1378. return res;
  1379. }
  1380. void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices) {
  1381. pglDrawRangeElements(mode, start, end, count, type, indices);
  1382. if (checkError) {
  1383. GLenum err = pglGetError();
  1384. if (err != GL_NO_ERROR) {
  1385. panic(err, "glDrawRangeElements");
  1386. }
  1387. }
  1388. }
  1389. void glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels) {
  1390. pglTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
  1391. if (checkError) {
  1392. GLenum err = pglGetError();
  1393. if (err != GL_NO_ERROR) {
  1394. panic(err, "glTexImage3D");
  1395. }
  1396. }
  1397. }
  1398. void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels) {
  1399. pglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
  1400. if (checkError) {
  1401. GLenum err = pglGetError();
  1402. if (err != GL_NO_ERROR) {
  1403. panic(err, "glTexSubImage3D");
  1404. }
  1405. }
  1406. }
  1407. void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
  1408. pglCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
  1409. if (checkError) {
  1410. GLenum err = pglGetError();
  1411. if (err != GL_NO_ERROR) {
  1412. panic(err, "glCopyTexSubImage3D");
  1413. }
  1414. }
  1415. }
  1416. void glActiveTexture (GLenum texture) {
  1417. pglActiveTexture(texture);
  1418. if (checkError) {
  1419. GLenum err = pglGetError();
  1420. if (err != GL_NO_ERROR) {
  1421. panic(err, "glActiveTexture");
  1422. }
  1423. }
  1424. }
  1425. void glSampleCoverage (GLfloat value, GLboolean invert) {
  1426. pglSampleCoverage(value, invert);
  1427. if (checkError) {
  1428. GLenum err = pglGetError();
  1429. if (err != GL_NO_ERROR) {
  1430. panic(err, "glSampleCoverage");
  1431. }
  1432. }
  1433. }
  1434. void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data) {
  1435. pglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
  1436. if (checkError) {
  1437. GLenum err = pglGetError();
  1438. if (err != GL_NO_ERROR) {
  1439. panic(err, "glCompressedTexImage3D");
  1440. }
  1441. }
  1442. }
  1443. void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) {
  1444. pglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
  1445. if (checkError) {
  1446. GLenum err = pglGetError();
  1447. if (err != GL_NO_ERROR) {
  1448. panic(err, "glCompressedTexImage2D");
  1449. }
  1450. }
  1451. }
  1452. void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data) {
  1453. pglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
  1454. if (checkError) {
  1455. GLenum err = pglGetError();
  1456. if (err != GL_NO_ERROR) {
  1457. panic(err, "glCompressedTexImage1D");
  1458. }
  1459. }
  1460. }
  1461. void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data) {
  1462. pglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
  1463. if (checkError) {
  1464. GLenum err = pglGetError();
  1465. if (err != GL_NO_ERROR) {
  1466. panic(err, "glCompressedTexSubImage3D");
  1467. }
  1468. }
  1469. }
  1470. void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) {
  1471. pglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
  1472. if (checkError) {
  1473. GLenum err = pglGetError();
  1474. if (err != GL_NO_ERROR) {
  1475. panic(err, "glCompressedTexSubImage2D");
  1476. }
  1477. }
  1478. }
  1479. void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data) {
  1480. pglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
  1481. if (checkError) {
  1482. GLenum err = pglGetError();
  1483. if (err != GL_NO_ERROR) {
  1484. panic(err, "glCompressedTexSubImage1D");
  1485. }
  1486. }
  1487. }
  1488. void glGetCompressedTexImage (GLenum target, GLint level, void *img) {
  1489. pglGetCompressedTexImage(target, level, img);
  1490. if (checkError) {
  1491. GLenum err = pglGetError();
  1492. if (err != GL_NO_ERROR) {
  1493. panic(err, "glGetCompressedTexImage");
  1494. }
  1495. }
  1496. }
  1497. void glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
  1498. pglBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
  1499. if (checkError) {
  1500. GLenum err = pglGetError();
  1501. if (err != GL_NO_ERROR) {
  1502. panic(err, "glBlendFuncSeparate");
  1503. }
  1504. }
  1505. }
  1506. void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount) {
  1507. pglMultiDrawArrays(mode, first, count, drawcount);
  1508. if (checkError) {
  1509. GLenum err = pglGetError();
  1510. if (err != GL_NO_ERROR) {
  1511. panic(err, "glMultiDrawArrays");
  1512. }
  1513. }
  1514. }
  1515. void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount) {
  1516. pglMultiDrawElements(mode, count, type, indices, drawcount);
  1517. if (checkError) {
  1518. GLenum err = pglGetError();
  1519. if (err != GL_NO_ERROR) {
  1520. panic(err, "glMultiDrawElements");
  1521. }
  1522. }
  1523. }
  1524. void glPointParameterf (GLenum pname, GLfloat param) {
  1525. pglPointParameterf(pname, param);
  1526. if (checkError) {
  1527. GLenum err = pglGetError();
  1528. if (err != GL_NO_ERROR) {
  1529. panic(err, "glPointParameterf");
  1530. }
  1531. }
  1532. }
  1533. void glPointParameterfv (GLenum pname, const GLfloat *params) {
  1534. pglPointParameterfv(pname, params);
  1535. if (checkError) {
  1536. GLenum err = pglGetError();
  1537. if (err != GL_NO_ERROR) {
  1538. panic(err, "glPointParameterfv");
  1539. }
  1540. }
  1541. }
  1542. void glPointParameteri (GLenum pname, GLint param) {
  1543. pglPointParameteri(pname, param);
  1544. if (checkError) {
  1545. GLenum err = pglGetError();
  1546. if (err != GL_NO_ERROR) {
  1547. panic(err, "glPointParameteri");
  1548. }
  1549. }
  1550. }
  1551. void glPointParameteriv (GLenum pname, const GLint *params) {
  1552. pglPointParameteriv(pname, params);
  1553. if (checkError) {
  1554. GLenum err = pglGetError();
  1555. if (err != GL_NO_ERROR) {
  1556. panic(err, "glPointParameteriv");
  1557. }
  1558. }
  1559. }
  1560. void glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
  1561. pglBlendColor(red, green, blue, alpha);
  1562. if (checkError) {
  1563. GLenum err = pglGetError();
  1564. if (err != GL_NO_ERROR) {
  1565. panic(err, "glBlendColor");
  1566. }
  1567. }
  1568. }
  1569. void glBlendEquation (GLenum mode) {
  1570. pglBlendEquation(mode);
  1571. if (checkError) {
  1572. GLenum err = pglGetError();
  1573. if (err != GL_NO_ERROR) {
  1574. panic(err, "glBlendEquation");
  1575. }
  1576. }
  1577. }
  1578. void glGenQueries (GLsizei n, GLuint *ids) {
  1579. pglGenQueries(n, ids);
  1580. if (checkError) {
  1581. GLenum err = pglGetError();
  1582. if (err != GL_NO_ERROR) {
  1583. panic(err, "glGenQueries");
  1584. }
  1585. }
  1586. }
  1587. void glDeleteQueries (GLsizei n, const GLuint *ids) {
  1588. pglDeleteQueries(n, ids);
  1589. if (checkError) {
  1590. GLenum err = pglGetError();
  1591. if (err != GL_NO_ERROR) {
  1592. panic(err, "glDeleteQueries");
  1593. }
  1594. }
  1595. }
  1596. GLboolean glIsQuery (GLuint id) {
  1597. GLboolean res = pglIsQuery(id);
  1598. if (checkError) {
  1599. GLenum err = pglGetError();
  1600. if (err != GL_NO_ERROR) {
  1601. panic(err, "glIsQuery");
  1602. }
  1603. }
  1604. return res;
  1605. }
  1606. void glBeginQuery (GLenum target, GLuint id) {
  1607. pglBeginQuery(target, id);
  1608. if (checkError) {
  1609. GLenum err = pglGetError();
  1610. if (err != GL_NO_ERROR) {
  1611. panic(err, "glBeginQuery");
  1612. }
  1613. }
  1614. }
  1615. void glEndQuery (GLenum target) {
  1616. pglEndQuery(target);
  1617. if (checkError) {
  1618. GLenum err = pglGetError();
  1619. if (err != GL_NO_ERROR) {
  1620. panic(err, "glEndQuery");
  1621. }
  1622. }
  1623. }
  1624. void glGetQueryiv (GLenum target, GLenum pname, GLint *params) {
  1625. pglGetQueryiv(target, pname, params);
  1626. if (checkError) {
  1627. GLenum err = pglGetError();
  1628. if (err != GL_NO_ERROR) {
  1629. panic(err, "glGetQueryiv");
  1630. }
  1631. }
  1632. }
  1633. void glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params) {
  1634. pglGetQueryObjectiv(id, pname, params);
  1635. if (checkError) {
  1636. GLenum err = pglGetError();
  1637. if (err != GL_NO_ERROR) {
  1638. panic(err, "glGetQueryObjectiv");
  1639. }
  1640. }
  1641. }
  1642. void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params) {
  1643. pglGetQueryObjectuiv(id, pname, params);
  1644. if (checkError) {
  1645. GLenum err = pglGetError();
  1646. if (err != GL_NO_ERROR) {
  1647. panic(err, "glGetQueryObjectuiv");
  1648. }
  1649. }
  1650. }
  1651. void glBindBuffer (GLenum target, GLuint buffer) {
  1652. pglBindBuffer(target, buffer);
  1653. if (checkError) {
  1654. GLenum err = pglGetError();
  1655. if (err != GL_NO_ERROR) {
  1656. panic(err, "glBindBuffer");
  1657. }
  1658. }
  1659. }
  1660. void glDeleteBuffers (GLsizei n, const GLuint *buffers) {
  1661. pglDeleteBuffers(n, buffers);
  1662. if (checkError) {
  1663. GLenum err = pglGetError();
  1664. if (err != GL_NO_ERROR) {
  1665. panic(err, "glDeleteBuffers");
  1666. }
  1667. }
  1668. }
  1669. void glGenBuffers (GLsizei n, GLuint *buffers) {
  1670. pglGenBuffers(n, buffers);
  1671. if (checkError) {
  1672. GLenum err = pglGetError();
  1673. if (err != GL_NO_ERROR) {
  1674. panic(err, "glGenBuffers");
  1675. }
  1676. }
  1677. }
  1678. GLboolean glIsBuffer (GLuint buffer) {
  1679. GLboolean res = pglIsBuffer(buffer);
  1680. if (checkError) {
  1681. GLenum err = pglGetError();
  1682. if (err != GL_NO_ERROR) {
  1683. panic(err, "glIsBuffer");
  1684. }
  1685. }
  1686. return res;
  1687. }
  1688. void glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage) {
  1689. pglBufferData(target, size, data, usage);
  1690. if (checkError) {
  1691. GLenum err = pglGetError();
  1692. if (err != GL_NO_ERROR) {
  1693. panic(err, "glBufferData");
  1694. }
  1695. }
  1696. }
  1697. void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data) {
  1698. pglBufferSubData(target, offset, size, data);
  1699. if (checkError) {
  1700. GLenum err = pglGetError();
  1701. if (err != GL_NO_ERROR) {
  1702. panic(err, "glBufferSubData");
  1703. }
  1704. }
  1705. }
  1706. void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data) {
  1707. pglGetBufferSubData(target, offset, size, data);
  1708. if (checkError) {
  1709. GLenum err = pglGetError();
  1710. if (err != GL_NO_ERROR) {
  1711. panic(err, "glGetBufferSubData");
  1712. }
  1713. }
  1714. }
  1715. GLboolean glUnmapBuffer (GLenum target) {
  1716. GLboolean res = pglUnmapBuffer(target);
  1717. if (checkError) {
  1718. GLenum err = pglGetError();
  1719. if (err != GL_NO_ERROR) {
  1720. panic(err, "glUnmapBuffer");
  1721. }
  1722. }
  1723. return res;
  1724. }
  1725. void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params) {
  1726. pglGetBufferParameteriv(target, pname, params);
  1727. if (checkError) {
  1728. GLenum err = pglGetError();
  1729. if (err != GL_NO_ERROR) {
  1730. panic(err, "glGetBufferParameteriv");
  1731. }
  1732. }
  1733. }
  1734. void glGetBufferPointerv (GLenum target, GLenum pname, void **params) {
  1735. pglGetBufferPointerv(target, pname, params);
  1736. if (checkError) {
  1737. GLenum err = pglGetError();
  1738. if (err != GL_NO_ERROR) {
  1739. panic(err, "glGetBufferPointerv");
  1740. }
  1741. }
  1742. }
  1743. void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) {
  1744. pglBlendEquationSeparate(modeRGB, modeAlpha);
  1745. if (checkError) {
  1746. GLenum err = pglGetError();
  1747. if (err != GL_NO_ERROR) {
  1748. panic(err, "glBlendEquationSeparate");
  1749. }
  1750. }
  1751. }
  1752. void glDrawBuffers (GLsizei n, const GLenum *bufs) {
  1753. pglDrawBuffers(n, bufs);
  1754. if (checkError) {
  1755. GLenum err = pglGetError();
  1756. if (err != GL_NO_ERROR) {
  1757. panic(err, "glDrawBuffers");
  1758. }
  1759. }
  1760. }
  1761. void glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {
  1762. pglStencilOpSeparate(face, sfail, dpfail, dppass);
  1763. if (checkError) {
  1764. GLenum err = pglGetError();
  1765. if (err != GL_NO_ERROR) {
  1766. panic(err, "glStencilOpSeparate");
  1767. }
  1768. }
  1769. }
  1770. void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask) {
  1771. pglStencilFuncSeparate(face, func, ref, mask);
  1772. if (checkError) {
  1773. GLenum err = pglGetError();
  1774. if (err != GL_NO_ERROR) {
  1775. panic(err, "glStencilFuncSeparate");
  1776. }
  1777. }
  1778. }
  1779. void glStencilMaskSeparate (GLenum face, GLuint mask) {
  1780. pglStencilMaskSeparate(face, mask);
  1781. if (checkError) {
  1782. GLenum err = pglGetError();
  1783. if (err != GL_NO_ERROR) {
  1784. panic(err, "glStencilMaskSeparate");
  1785. }
  1786. }
  1787. }
  1788. void glAttachShader (GLuint program, GLuint shader) {
  1789. pglAttachShader(program, shader);
  1790. if (checkError) {
  1791. GLenum err = pglGetError();
  1792. if (err != GL_NO_ERROR) {
  1793. panic(err, "glAttachShader");
  1794. }
  1795. }
  1796. }
  1797. void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name) {
  1798. pglBindAttribLocation(program, index, name);
  1799. if (checkError) {
  1800. GLenum err = pglGetError();
  1801. if (err != GL_NO_ERROR) {
  1802. panic(err, "glBindAttribLocation");
  1803. }
  1804. }
  1805. }
  1806. void glCompileShader (GLuint shader) {
  1807. pglCompileShader(shader);
  1808. if (checkError) {
  1809. GLenum err = pglGetError();
  1810. if (err != GL_NO_ERROR) {
  1811. panic(err, "glCompileShader");
  1812. }
  1813. }
  1814. }
  1815. GLuint glCreateProgram (void) {
  1816. GLuint res = pglCreateProgram();
  1817. if (checkError) {
  1818. GLenum err = pglGetError();
  1819. if (err != GL_NO_ERROR) {
  1820. panic(err, "glCreateProgram");
  1821. }
  1822. }
  1823. return res;
  1824. }
  1825. GLuint glCreateShader (GLenum type) {
  1826. GLuint res = pglCreateShader(type);
  1827. if (checkError) {
  1828. GLenum err = pglGetError();
  1829. if (err != GL_NO_ERROR) {
  1830. panic(err, "glCreateShader");
  1831. }
  1832. }
  1833. return res;
  1834. }
  1835. void glDeleteProgram (GLuint program) {
  1836. pglDeleteProgram(program);
  1837. if (checkError) {
  1838. GLenum err = pglGetError();
  1839. if (err != GL_NO_ERROR) {
  1840. panic(err, "glDeleteProgram");
  1841. }
  1842. }
  1843. }
  1844. void glDeleteShader (GLuint shader) {
  1845. pglDeleteShader(shader);
  1846. if (checkError) {
  1847. GLenum err = pglGetError();
  1848. if (err != GL_NO_ERROR) {
  1849. panic(err, "glDeleteShader");
  1850. }
  1851. }
  1852. }
  1853. void glDetachShader (GLuint program, GLuint shader) {
  1854. pglDetachShader(program, shader);
  1855. if (checkError) {
  1856. GLenum err = pglGetError();
  1857. if (err != GL_NO_ERROR) {
  1858. panic(err, "glDetachShader");
  1859. }
  1860. }
  1861. }
  1862. void glDisableVertexAttribArray (GLuint index) {
  1863. pglDisableVertexAttribArray(index);
  1864. if (checkError) {
  1865. GLenum err = pglGetError();
  1866. if (err != GL_NO_ERROR) {
  1867. panic(err, "glDisableVertexAttribArray");
  1868. }
  1869. }
  1870. }
  1871. void glEnableVertexAttribArray (GLuint index) {
  1872. pglEnableVertexAttribArray(index);
  1873. if (checkError) {
  1874. GLenum err = pglGetError();
  1875. if (err != GL_NO_ERROR) {
  1876. panic(err, "glEnableVertexAttribArray");
  1877. }
  1878. }
  1879. }
  1880. void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) {
  1881. pglGetActiveAttrib(program, index, bufSize, length, size, type, name);
  1882. if (checkError) {
  1883. GLenum err = pglGetError();
  1884. if (err != GL_NO_ERROR) {
  1885. panic(err, "glGetActiveAttrib");
  1886. }
  1887. }
  1888. }
  1889. void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) {
  1890. pglGetActiveUniform(program, index, bufSize, length, size, type, name);
  1891. if (checkError) {
  1892. GLenum err = pglGetError();
  1893. if (err != GL_NO_ERROR) {
  1894. panic(err, "glGetActiveUniform");
  1895. }
  1896. }
  1897. }
  1898. void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders) {
  1899. pglGetAttachedShaders(program, maxCount, count, shaders);
  1900. if (checkError) {
  1901. GLenum err = pglGetError();
  1902. if (err != GL_NO_ERROR) {
  1903. panic(err, "glGetAttachedShaders");
  1904. }
  1905. }
  1906. }
  1907. GLint glGetAttribLocation (GLuint program, const GLchar *name) {
  1908. GLint res = pglGetAttribLocation(program, name);
  1909. if (checkError) {
  1910. GLenum err = pglGetError();
  1911. if (err != GL_NO_ERROR) {
  1912. panic(err, "glGetAttribLocation");
  1913. }
  1914. }
  1915. return res;
  1916. }
  1917. void glGetProgramiv (GLuint program, GLenum pname, GLint *params) {
  1918. pglGetProgramiv(program, pname, params);
  1919. if (checkError) {
  1920. GLenum err = pglGetError();
  1921. if (err != GL_NO_ERROR) {
  1922. panic(err, "glGetProgramiv");
  1923. }
  1924. }
  1925. }
  1926. void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
  1927. pglGetProgramInfoLog(program, bufSize, length, infoLog);
  1928. if (checkError) {
  1929. GLenum err = pglGetError();
  1930. if (err != GL_NO_ERROR) {
  1931. panic(err, "glGetProgramInfoLog");
  1932. }
  1933. }
  1934. }
  1935. void glGetShaderiv (GLuint shader, GLenum pname, GLint *params) {
  1936. pglGetShaderiv(shader, pname, params);
  1937. if (checkError) {
  1938. GLenum err = pglGetError();
  1939. if (err != GL_NO_ERROR) {
  1940. panic(err, "glGetShaderiv");
  1941. }
  1942. }
  1943. }
  1944. void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
  1945. pglGetShaderInfoLog(shader, bufSize, length, infoLog);
  1946. if (checkError) {
  1947. GLenum err = pglGetError();
  1948. if (err != GL_NO_ERROR) {
  1949. panic(err, "glGetShaderInfoLog");
  1950. }
  1951. }
  1952. }
  1953. void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source) {
  1954. pglGetShaderSource(shader, bufSize, length, source);
  1955. if (checkError) {
  1956. GLenum err = pglGetError();
  1957. if (err != GL_NO_ERROR) {
  1958. panic(err, "glGetShaderSource");
  1959. }
  1960. }
  1961. }
  1962. GLint glGetUniformLocation (GLuint program, const GLchar *name) {
  1963. GLint res = pglGetUniformLocation(program, name);
  1964. if (checkError) {
  1965. GLenum err = pglGetError();
  1966. if (err != GL_NO_ERROR) {
  1967. panic(err, "glGetUniformLocation");
  1968. }
  1969. }
  1970. return res;
  1971. }
  1972. void glGetUniformfv (GLuint program, GLint location, GLfloat *params) {
  1973. pglGetUniformfv(program, location, params);
  1974. if (checkError) {
  1975. GLenum err = pglGetError();
  1976. if (err != GL_NO_ERROR) {
  1977. panic(err, "glGetUniformfv");
  1978. }
  1979. }
  1980. }
  1981. void glGetUniformiv (GLuint program, GLint location, GLint *params) {
  1982. pglGetUniformiv(program, location, params);
  1983. if (checkError) {
  1984. GLenum err = pglGetError();
  1985. if (err != GL_NO_ERROR) {
  1986. panic(err, "glGetUniformiv");
  1987. }
  1988. }
  1989. }
  1990. void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params) {
  1991. pglGetVertexAttribdv(index, pname, params);
  1992. if (checkError) {
  1993. GLenum err = pglGetError();
  1994. if (err != GL_NO_ERROR) {
  1995. panic(err, "glGetVertexAttribdv");
  1996. }
  1997. }
  1998. }
  1999. void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params) {
  2000. pglGetVertexAttribfv(index, pname, params);
  2001. if (checkError) {
  2002. GLenum err = pglGetError();
  2003. if (err != GL_NO_ERROR) {
  2004. panic(err, "glGetVertexAttribfv");
  2005. }
  2006. }
  2007. }
  2008. void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params) {
  2009. pglGetVertexAttribiv(index, pname, params);
  2010. if (checkError) {
  2011. GLenum err = pglGetError();
  2012. if (err != GL_NO_ERROR) {
  2013. panic(err, "glGetVertexAttribiv");
  2014. }
  2015. }
  2016. }
  2017. void glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer) {
  2018. pglGetVertexAttribPointerv(index, pname, pointer);
  2019. if (checkError) {
  2020. GLenum err = pglGetError();
  2021. if (err != GL_NO_ERROR) {
  2022. panic(err, "glGetVertexAttribPointerv");
  2023. }
  2024. }
  2025. }
  2026. GLboolean glIsProgram (GLuint program) {
  2027. GLboolean res = pglIsProgram(program);
  2028. if (checkError) {
  2029. GLenum err = pglGetError();
  2030. if (err != GL_NO_ERROR) {
  2031. panic(err, "glIsProgram");
  2032. }
  2033. }
  2034. return res;
  2035. }
  2036. GLboolean glIsShader (GLuint shader) {
  2037. GLboolean res = pglIsShader(shader);
  2038. if (checkError) {
  2039. GLenum err = pglGetError();
  2040. if (err != GL_NO_ERROR) {
  2041. panic(err, "glIsShader");
  2042. }
  2043. }
  2044. return res;
  2045. }
  2046. void glLinkProgram (GLuint program) {
  2047. pglLinkProgram(program);
  2048. if (checkError) {
  2049. GLenum err = pglGetError();
  2050. if (err != GL_NO_ERROR) {
  2051. panic(err, "glLinkProgram");
  2052. }
  2053. }
  2054. }
  2055. void glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length) {
  2056. pglShaderSource(shader, count, string, length);
  2057. if (checkError) {
  2058. GLenum err = pglGetError();
  2059. if (err != GL_NO_ERROR) {
  2060. panic(err, "glShaderSource");
  2061. }
  2062. }
  2063. }
  2064. void glUseProgram (GLuint program) {
  2065. pglUseProgram(program);
  2066. if (checkError) {
  2067. GLenum err = pglGetError();
  2068. if (err != GL_NO_ERROR) {
  2069. panic(err, "glUseProgram");
  2070. }
  2071. }
  2072. }
  2073. void glUniform1f (GLint location, GLfloat v0) {
  2074. pglUniform1f(location, v0);
  2075. if (checkError) {
  2076. GLenum err = pglGetError();
  2077. if (err != GL_NO_ERROR) {
  2078. panic(err, "glUniform1f");
  2079. }
  2080. }
  2081. }
  2082. void glUniform2f (GLint location, GLfloat v0, GLfloat v1) {
  2083. pglUniform2f(location, v0, v1);
  2084. if (checkError) {
  2085. GLenum err = pglGetError();
  2086. if (err != GL_NO_ERROR) {
  2087. panic(err, "glUniform2f");
  2088. }
  2089. }
  2090. }
  2091. void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
  2092. pglUniform3f(location, v0, v1, v2);
  2093. if (checkError) {
  2094. GLenum err = pglGetError();
  2095. if (err != GL_NO_ERROR) {
  2096. panic(err, "glUniform3f");
  2097. }
  2098. }
  2099. }
  2100. void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
  2101. pglUniform4f(location, v0, v1, v2, v3);
  2102. if (checkError) {
  2103. GLenum err = pglGetError();
  2104. if (err != GL_NO_ERROR) {
  2105. panic(err, "glUniform4f");
  2106. }
  2107. }
  2108. }
  2109. void glUniform1i (GLint location, GLint v0) {
  2110. pglUniform1i(location, v0);
  2111. if (checkError) {
  2112. GLenum err = pglGetError();
  2113. if (err != GL_NO_ERROR) {
  2114. panic(err, "glUniform1i");
  2115. }
  2116. }
  2117. }
  2118. void glUniform2i (GLint location, GLint v0, GLint v1) {
  2119. pglUniform2i(location, v0, v1);
  2120. if (checkError) {
  2121. GLenum err = pglGetError();
  2122. if (err != GL_NO_ERROR) {
  2123. panic(err, "glUniform2i");
  2124. }
  2125. }
  2126. }
  2127. void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2) {
  2128. pglUniform3i(location, v0, v1, v2);
  2129. if (checkError) {
  2130. GLenum err = pglGetError();
  2131. if (err != GL_NO_ERROR) {
  2132. panic(err, "glUniform3i");
  2133. }
  2134. }
  2135. }
  2136. void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
  2137. pglUniform4i(location, v0, v1, v2, v3);
  2138. if (checkError) {
  2139. GLenum err = pglGetError();
  2140. if (err != GL_NO_ERROR) {
  2141. panic(err, "glUniform4i");
  2142. }
  2143. }
  2144. }
  2145. void glUniform1fv (GLint location, GLsizei count, const GLfloat *value) {
  2146. pglUniform1fv(location, count, value);
  2147. if (checkError) {
  2148. GLenum err = pglGetError();
  2149. if (err != GL_NO_ERROR) {
  2150. panic(err, "glUniform1fv");
  2151. }
  2152. }
  2153. }
  2154. void glUniform2fv (GLint location, GLsizei count, const GLfloat *value) {
  2155. pglUniform2fv(location, count, value);
  2156. if (checkError) {
  2157. GLenum err = pglGetError();
  2158. if (err != GL_NO_ERROR) {
  2159. panic(err, "glUniform2fv");
  2160. }
  2161. }
  2162. }
  2163. void glUniform3fv (GLint location, GLsizei count, const GLfloat *value) {
  2164. pglUniform3fv(location, count, value);
  2165. if (checkError) {
  2166. GLenum err = pglGetError();
  2167. if (err != GL_NO_ERROR) {
  2168. panic(err, "glUniform3fv");
  2169. }
  2170. }
  2171. }
  2172. void glUniform4fv (GLint location, GLsizei count, const GLfloat *value) {
  2173. pglUniform4fv(location, count, value);
  2174. if (checkError) {
  2175. GLenum err = pglGetError();
  2176. if (err != GL_NO_ERROR) {
  2177. panic(err, "glUniform4fv");
  2178. }
  2179. }
  2180. }
  2181. void glUniform1iv (GLint location, GLsizei count, const GLint *value) {
  2182. pglUniform1iv(location, count, value);
  2183. if (checkError) {
  2184. GLenum err = pglGetError();
  2185. if (err != GL_NO_ERROR) {
  2186. panic(err, "glUniform1iv");
  2187. }
  2188. }
  2189. }
  2190. void glUniform2iv (GLint location, GLsizei count, const GLint *value) {
  2191. pglUniform2iv(location, count, value);
  2192. if (checkError) {
  2193. GLenum err = pglGetError();
  2194. if (err != GL_NO_ERROR) {
  2195. panic(err, "glUniform2iv");
  2196. }
  2197. }
  2198. }
  2199. void glUniform3iv (GLint location, GLsizei count, const GLint *value) {
  2200. pglUniform3iv(location, count, value);
  2201. if (checkError) {
  2202. GLenum err = pglGetError();
  2203. if (err != GL_NO_ERROR) {
  2204. panic(err, "glUniform3iv");
  2205. }
  2206. }
  2207. }
  2208. void glUniform4iv (GLint location, GLsizei count, const GLint *value) {
  2209. pglUniform4iv(location, count, value);
  2210. if (checkError) {
  2211. GLenum err = pglGetError();
  2212. if (err != GL_NO_ERROR) {
  2213. panic(err, "glUniform4iv");
  2214. }
  2215. }
  2216. }
  2217. void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2218. pglUniformMatrix2fv(location, count, transpose, value);
  2219. if (checkError) {
  2220. GLenum err = pglGetError();
  2221. if (err != GL_NO_ERROR) {
  2222. panic(err, "glUniformMatrix2fv");
  2223. }
  2224. }
  2225. }
  2226. void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2227. pglUniformMatrix3fv(location, count, transpose, value);
  2228. if (checkError) {
  2229. GLenum err = pglGetError();
  2230. if (err != GL_NO_ERROR) {
  2231. panic(err, "glUniformMatrix3fv");
  2232. }
  2233. }
  2234. }
  2235. void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2236. pglUniformMatrix4fv(location, count, transpose, value);
  2237. if (checkError) {
  2238. GLenum err = pglGetError();
  2239. if (err != GL_NO_ERROR) {
  2240. panic(err, "glUniformMatrix4fv");
  2241. }
  2242. }
  2243. }
  2244. void glValidateProgram (GLuint program) {
  2245. pglValidateProgram(program);
  2246. if (checkError) {
  2247. GLenum err = pglGetError();
  2248. if (err != GL_NO_ERROR) {
  2249. panic(err, "glValidateProgram");
  2250. }
  2251. }
  2252. }
  2253. void glVertexAttrib1d (GLuint index, GLdouble x) {
  2254. pglVertexAttrib1d(index, x);
  2255. if (checkError) {
  2256. GLenum err = pglGetError();
  2257. if (err != GL_NO_ERROR) {
  2258. panic(err, "glVertexAttrib1d");
  2259. }
  2260. }
  2261. }
  2262. void glVertexAttrib1dv (GLuint index, const GLdouble *v) {
  2263. pglVertexAttrib1dv(index, v);
  2264. if (checkError) {
  2265. GLenum err = pglGetError();
  2266. if (err != GL_NO_ERROR) {
  2267. panic(err, "glVertexAttrib1dv");
  2268. }
  2269. }
  2270. }
  2271. void glVertexAttrib1f (GLuint index, GLfloat x) {
  2272. pglVertexAttrib1f(index, x);
  2273. if (checkError) {
  2274. GLenum err = pglGetError();
  2275. if (err != GL_NO_ERROR) {
  2276. panic(err, "glVertexAttrib1f");
  2277. }
  2278. }
  2279. }
  2280. void glVertexAttrib1fv (GLuint index, const GLfloat *v) {
  2281. pglVertexAttrib1fv(index, v);
  2282. if (checkError) {
  2283. GLenum err = pglGetError();
  2284. if (err != GL_NO_ERROR) {
  2285. panic(err, "glVertexAttrib1fv");
  2286. }
  2287. }
  2288. }
  2289. void glVertexAttrib1s (GLuint index, GLshort x) {
  2290. pglVertexAttrib1s(index, x);
  2291. if (checkError) {
  2292. GLenum err = pglGetError();
  2293. if (err != GL_NO_ERROR) {
  2294. panic(err, "glVertexAttrib1s");
  2295. }
  2296. }
  2297. }
  2298. void glVertexAttrib1sv (GLuint index, const GLshort *v) {
  2299. pglVertexAttrib1sv(index, v);
  2300. if (checkError) {
  2301. GLenum err = pglGetError();
  2302. if (err != GL_NO_ERROR) {
  2303. panic(err, "glVertexAttrib1sv");
  2304. }
  2305. }
  2306. }
  2307. void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y) {
  2308. pglVertexAttrib2d(index, x, y);
  2309. if (checkError) {
  2310. GLenum err = pglGetError();
  2311. if (err != GL_NO_ERROR) {
  2312. panic(err, "glVertexAttrib2d");
  2313. }
  2314. }
  2315. }
  2316. void glVertexAttrib2dv (GLuint index, const GLdouble *v) {
  2317. pglVertexAttrib2dv(index, v);
  2318. if (checkError) {
  2319. GLenum err = pglGetError();
  2320. if (err != GL_NO_ERROR) {
  2321. panic(err, "glVertexAttrib2dv");
  2322. }
  2323. }
  2324. }
  2325. void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y) {
  2326. pglVertexAttrib2f(index, x, y);
  2327. if (checkError) {
  2328. GLenum err = pglGetError();
  2329. if (err != GL_NO_ERROR) {
  2330. panic(err, "glVertexAttrib2f");
  2331. }
  2332. }
  2333. }
  2334. void glVertexAttrib2fv (GLuint index, const GLfloat *v) {
  2335. pglVertexAttrib2fv(index, v);
  2336. if (checkError) {
  2337. GLenum err = pglGetError();
  2338. if (err != GL_NO_ERROR) {
  2339. panic(err, "glVertexAttrib2fv");
  2340. }
  2341. }
  2342. }
  2343. void glVertexAttrib2s (GLuint index, GLshort x, GLshort y) {
  2344. pglVertexAttrib2s(index, x, y);
  2345. if (checkError) {
  2346. GLenum err = pglGetError();
  2347. if (err != GL_NO_ERROR) {
  2348. panic(err, "glVertexAttrib2s");
  2349. }
  2350. }
  2351. }
  2352. void glVertexAttrib2sv (GLuint index, const GLshort *v) {
  2353. pglVertexAttrib2sv(index, v);
  2354. if (checkError) {
  2355. GLenum err = pglGetError();
  2356. if (err != GL_NO_ERROR) {
  2357. panic(err, "glVertexAttrib2sv");
  2358. }
  2359. }
  2360. }
  2361. void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z) {
  2362. pglVertexAttrib3d(index, x, y, z);
  2363. if (checkError) {
  2364. GLenum err = pglGetError();
  2365. if (err != GL_NO_ERROR) {
  2366. panic(err, "glVertexAttrib3d");
  2367. }
  2368. }
  2369. }
  2370. void glVertexAttrib3dv (GLuint index, const GLdouble *v) {
  2371. pglVertexAttrib3dv(index, v);
  2372. if (checkError) {
  2373. GLenum err = pglGetError();
  2374. if (err != GL_NO_ERROR) {
  2375. panic(err, "glVertexAttrib3dv");
  2376. }
  2377. }
  2378. }
  2379. void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z) {
  2380. pglVertexAttrib3f(index, x, y, z);
  2381. if (checkError) {
  2382. GLenum err = pglGetError();
  2383. if (err != GL_NO_ERROR) {
  2384. panic(err, "glVertexAttrib3f");
  2385. }
  2386. }
  2387. }
  2388. void glVertexAttrib3fv (GLuint index, const GLfloat *v) {
  2389. pglVertexAttrib3fv(index, v);
  2390. if (checkError) {
  2391. GLenum err = pglGetError();
  2392. if (err != GL_NO_ERROR) {
  2393. panic(err, "glVertexAttrib3fv");
  2394. }
  2395. }
  2396. }
  2397. void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z) {
  2398. pglVertexAttrib3s(index, x, y, z);
  2399. if (checkError) {
  2400. GLenum err = pglGetError();
  2401. if (err != GL_NO_ERROR) {
  2402. panic(err, "glVertexAttrib3s");
  2403. }
  2404. }
  2405. }
  2406. void glVertexAttrib3sv (GLuint index, const GLshort *v) {
  2407. pglVertexAttrib3sv(index, v);
  2408. if (checkError) {
  2409. GLenum err = pglGetError();
  2410. if (err != GL_NO_ERROR) {
  2411. panic(err, "glVertexAttrib3sv");
  2412. }
  2413. }
  2414. }
  2415. void glVertexAttrib4Nbv (GLuint index, const GLbyte *v) {
  2416. pglVertexAttrib4Nbv(index, v);
  2417. if (checkError) {
  2418. GLenum err = pglGetError();
  2419. if (err != GL_NO_ERROR) {
  2420. panic(err, "glVertexAttrib4Nbv");
  2421. }
  2422. }
  2423. }
  2424. void glVertexAttrib4Niv (GLuint index, const GLint *v) {
  2425. pglVertexAttrib4Niv(index, v);
  2426. if (checkError) {
  2427. GLenum err = pglGetError();
  2428. if (err != GL_NO_ERROR) {
  2429. panic(err, "glVertexAttrib4Niv");
  2430. }
  2431. }
  2432. }
  2433. void glVertexAttrib4Nsv (GLuint index, const GLshort *v) {
  2434. pglVertexAttrib4Nsv(index, v);
  2435. if (checkError) {
  2436. GLenum err = pglGetError();
  2437. if (err != GL_NO_ERROR) {
  2438. panic(err, "glVertexAttrib4Nsv");
  2439. }
  2440. }
  2441. }
  2442. void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
  2443. pglVertexAttrib4Nub(index, x, y, z, w);
  2444. if (checkError) {
  2445. GLenum err = pglGetError();
  2446. if (err != GL_NO_ERROR) {
  2447. panic(err, "glVertexAttrib4Nub");
  2448. }
  2449. }
  2450. }
  2451. void glVertexAttrib4Nubv (GLuint index, const GLubyte *v) {
  2452. pglVertexAttrib4Nubv(index, v);
  2453. if (checkError) {
  2454. GLenum err = pglGetError();
  2455. if (err != GL_NO_ERROR) {
  2456. panic(err, "glVertexAttrib4Nubv");
  2457. }
  2458. }
  2459. }
  2460. void glVertexAttrib4Nuiv (GLuint index, const GLuint *v) {
  2461. pglVertexAttrib4Nuiv(index, v);
  2462. if (checkError) {
  2463. GLenum err = pglGetError();
  2464. if (err != GL_NO_ERROR) {
  2465. panic(err, "glVertexAttrib4Nuiv");
  2466. }
  2467. }
  2468. }
  2469. void glVertexAttrib4Nusv (GLuint index, const GLushort *v) {
  2470. pglVertexAttrib4Nusv(index, v);
  2471. if (checkError) {
  2472. GLenum err = pglGetError();
  2473. if (err != GL_NO_ERROR) {
  2474. panic(err, "glVertexAttrib4Nusv");
  2475. }
  2476. }
  2477. }
  2478. void glVertexAttrib4bv (GLuint index, const GLbyte *v) {
  2479. pglVertexAttrib4bv(index, v);
  2480. if (checkError) {
  2481. GLenum err = pglGetError();
  2482. if (err != GL_NO_ERROR) {
  2483. panic(err, "glVertexAttrib4bv");
  2484. }
  2485. }
  2486. }
  2487. void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
  2488. pglVertexAttrib4d(index, x, y, z, w);
  2489. if (checkError) {
  2490. GLenum err = pglGetError();
  2491. if (err != GL_NO_ERROR) {
  2492. panic(err, "glVertexAttrib4d");
  2493. }
  2494. }
  2495. }
  2496. void glVertexAttrib4dv (GLuint index, const GLdouble *v) {
  2497. pglVertexAttrib4dv(index, v);
  2498. if (checkError) {
  2499. GLenum err = pglGetError();
  2500. if (err != GL_NO_ERROR) {
  2501. panic(err, "glVertexAttrib4dv");
  2502. }
  2503. }
  2504. }
  2505. void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
  2506. pglVertexAttrib4f(index, x, y, z, w);
  2507. if (checkError) {
  2508. GLenum err = pglGetError();
  2509. if (err != GL_NO_ERROR) {
  2510. panic(err, "glVertexAttrib4f");
  2511. }
  2512. }
  2513. }
  2514. void glVertexAttrib4fv (GLuint index, const GLfloat *v) {
  2515. pglVertexAttrib4fv(index, v);
  2516. if (checkError) {
  2517. GLenum err = pglGetError();
  2518. if (err != GL_NO_ERROR) {
  2519. panic(err, "glVertexAttrib4fv");
  2520. }
  2521. }
  2522. }
  2523. void glVertexAttrib4iv (GLuint index, const GLint *v) {
  2524. pglVertexAttrib4iv(index, v);
  2525. if (checkError) {
  2526. GLenum err = pglGetError();
  2527. if (err != GL_NO_ERROR) {
  2528. panic(err, "glVertexAttrib4iv");
  2529. }
  2530. }
  2531. }
  2532. void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) {
  2533. pglVertexAttrib4s(index, x, y, z, w);
  2534. if (checkError) {
  2535. GLenum err = pglGetError();
  2536. if (err != GL_NO_ERROR) {
  2537. panic(err, "glVertexAttrib4s");
  2538. }
  2539. }
  2540. }
  2541. void glVertexAttrib4sv (GLuint index, const GLshort *v) {
  2542. pglVertexAttrib4sv(index, v);
  2543. if (checkError) {
  2544. GLenum err = pglGetError();
  2545. if (err != GL_NO_ERROR) {
  2546. panic(err, "glVertexAttrib4sv");
  2547. }
  2548. }
  2549. }
  2550. void glVertexAttrib4ubv (GLuint index, const GLubyte *v) {
  2551. pglVertexAttrib4ubv(index, v);
  2552. if (checkError) {
  2553. GLenum err = pglGetError();
  2554. if (err != GL_NO_ERROR) {
  2555. panic(err, "glVertexAttrib4ubv");
  2556. }
  2557. }
  2558. }
  2559. void glVertexAttrib4uiv (GLuint index, const GLuint *v) {
  2560. pglVertexAttrib4uiv(index, v);
  2561. if (checkError) {
  2562. GLenum err = pglGetError();
  2563. if (err != GL_NO_ERROR) {
  2564. panic(err, "glVertexAttrib4uiv");
  2565. }
  2566. }
  2567. }
  2568. void glVertexAttrib4usv (GLuint index, const GLushort *v) {
  2569. pglVertexAttrib4usv(index, v);
  2570. if (checkError) {
  2571. GLenum err = pglGetError();
  2572. if (err != GL_NO_ERROR) {
  2573. panic(err, "glVertexAttrib4usv");
  2574. }
  2575. }
  2576. }
  2577. void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) {
  2578. pglVertexAttribPointer(index, size, type, normalized, stride, pointer);
  2579. if (checkError) {
  2580. GLenum err = pglGetError();
  2581. if (err != GL_NO_ERROR) {
  2582. panic(err, "glVertexAttribPointer");
  2583. }
  2584. }
  2585. }
  2586. void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2587. pglUniformMatrix2x3fv(location, count, transpose, value);
  2588. if (checkError) {
  2589. GLenum err = pglGetError();
  2590. if (err != GL_NO_ERROR) {
  2591. panic(err, "glUniformMatrix2x3fv");
  2592. }
  2593. }
  2594. }
  2595. void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2596. pglUniformMatrix3x2fv(location, count, transpose, value);
  2597. if (checkError) {
  2598. GLenum err = pglGetError();
  2599. if (err != GL_NO_ERROR) {
  2600. panic(err, "glUniformMatrix3x2fv");
  2601. }
  2602. }
  2603. }
  2604. void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2605. pglUniformMatrix2x4fv(location, count, transpose, value);
  2606. if (checkError) {
  2607. GLenum err = pglGetError();
  2608. if (err != GL_NO_ERROR) {
  2609. panic(err, "glUniformMatrix2x4fv");
  2610. }
  2611. }
  2612. }
  2613. void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2614. pglUniformMatrix4x2fv(location, count, transpose, value);
  2615. if (checkError) {
  2616. GLenum err = pglGetError();
  2617. if (err != GL_NO_ERROR) {
  2618. panic(err, "glUniformMatrix4x2fv");
  2619. }
  2620. }
  2621. }
  2622. void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2623. pglUniformMatrix3x4fv(location, count, transpose, value);
  2624. if (checkError) {
  2625. GLenum err = pglGetError();
  2626. if (err != GL_NO_ERROR) {
  2627. panic(err, "glUniformMatrix3x4fv");
  2628. }
  2629. }
  2630. }
  2631. void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
  2632. pglUniformMatrix4x3fv(location, count, transpose, value);
  2633. if (checkError) {
  2634. GLenum err = pglGetError();
  2635. if (err != GL_NO_ERROR) {
  2636. panic(err, "glUniformMatrix4x3fv");
  2637. }
  2638. }
  2639. }
  2640. void glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
  2641. pglColorMaski(index, r, g, b, a);
  2642. if (checkError) {
  2643. GLenum err = pglGetError();
  2644. if (err != GL_NO_ERROR) {
  2645. panic(err, "glColorMaski");
  2646. }
  2647. }
  2648. }
  2649. void glGetBooleani_v (GLenum target, GLuint index, GLboolean *data) {
  2650. pglGetBooleani_v(target, index, data);
  2651. if (checkError) {
  2652. GLenum err = pglGetError();
  2653. if (err != GL_NO_ERROR) {
  2654. panic(err, "glGetBooleani_v");
  2655. }
  2656. }
  2657. }
  2658. void glGetIntegeri_v (GLenum target, GLuint index, GLint *data) {
  2659. pglGetIntegeri_v(target, index, data);
  2660. if (checkError) {
  2661. GLenum err = pglGetError();
  2662. if (err != GL_NO_ERROR) {
  2663. panic(err, "glGetIntegeri_v");
  2664. }
  2665. }
  2666. }
  2667. void glEnablei (GLenum target, GLuint index) {
  2668. pglEnablei(target, index);
  2669. if (checkError) {
  2670. GLenum err = pglGetError();
  2671. if (err != GL_NO_ERROR) {
  2672. panic(err, "glEnablei");
  2673. }
  2674. }
  2675. }
  2676. void glDisablei (GLenum target, GLuint index) {
  2677. pglDisablei(target, index);
  2678. if (checkError) {
  2679. GLenum err = pglGetError();
  2680. if (err != GL_NO_ERROR) {
  2681. panic(err, "glDisablei");
  2682. }
  2683. }
  2684. }
  2685. GLboolean glIsEnabledi (GLenum target, GLuint index) {
  2686. GLboolean res = pglIsEnabledi(target, index);
  2687. if (checkError) {
  2688. GLenum err = pglGetError();
  2689. if (err != GL_NO_ERROR) {
  2690. panic(err, "glIsEnabledi");
  2691. }
  2692. }
  2693. return res;
  2694. }
  2695. void glBeginTransformFeedback (GLenum primitiveMode) {
  2696. pglBeginTransformFeedback(primitiveMode);
  2697. if (checkError) {
  2698. GLenum err = pglGetError();
  2699. if (err != GL_NO_ERROR) {
  2700. panic(err, "glBeginTransformFeedback");
  2701. }
  2702. }
  2703. }
  2704. void glEndTransformFeedback (void) {
  2705. pglEndTransformFeedback();
  2706. if (checkError) {
  2707. GLenum err = pglGetError();
  2708. if (err != GL_NO_ERROR) {
  2709. panic(err, "glEndTransformFeedback");
  2710. }
  2711. }
  2712. }
  2713. void glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
  2714. pglBindBufferRange(target, index, buffer, offset, size);
  2715. if (checkError) {
  2716. GLenum err = pglGetError();
  2717. if (err != GL_NO_ERROR) {
  2718. panic(err, "glBindBufferRange");
  2719. }
  2720. }
  2721. }
  2722. void glBindBufferBase (GLenum target, GLuint index, GLuint buffer) {
  2723. pglBindBufferBase(target, index, buffer);
  2724. if (checkError) {
  2725. GLenum err = pglGetError();
  2726. if (err != GL_NO_ERROR) {
  2727. panic(err, "glBindBufferBase");
  2728. }
  2729. }
  2730. }
  2731. void glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode) {
  2732. pglTransformFeedbackVaryings(program, count, varyings, bufferMode);
  2733. if (checkError) {
  2734. GLenum err = pglGetError();
  2735. if (err != GL_NO_ERROR) {
  2736. panic(err, "glTransformFeedbackVaryings");
  2737. }
  2738. }
  2739. }
  2740. void glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name) {
  2741. pglGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
  2742. if (checkError) {
  2743. GLenum err = pglGetError();
  2744. if (err != GL_NO_ERROR) {
  2745. panic(err, "glGetTransformFeedbackVarying");
  2746. }
  2747. }
  2748. }
  2749. void glClampColor (GLenum target, GLenum clamp) {
  2750. pglClampColor(target, clamp);
  2751. if (checkError) {
  2752. GLenum err = pglGetError();
  2753. if (err != GL_NO_ERROR) {
  2754. panic(err, "glClampColor");
  2755. }
  2756. }
  2757. }
  2758. void glBeginConditionalRender (GLuint id, GLenum mode) {
  2759. pglBeginConditionalRender(id, mode);
  2760. if (checkError) {
  2761. GLenum err = pglGetError();
  2762. if (err != GL_NO_ERROR) {
  2763. panic(err, "glBeginConditionalRender");
  2764. }
  2765. }
  2766. }
  2767. void glEndConditionalRender (void) {
  2768. pglEndConditionalRender();
  2769. if (checkError) {
  2770. GLenum err = pglGetError();
  2771. if (err != GL_NO_ERROR) {
  2772. panic(err, "glEndConditionalRender");
  2773. }
  2774. }
  2775. }
  2776. void glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer) {
  2777. pglVertexAttribIPointer(index, size, type, stride, pointer);
  2778. if (checkError) {
  2779. GLenum err = pglGetError();
  2780. if (err != GL_NO_ERROR) {
  2781. panic(err, "glVertexAttribIPointer");
  2782. }
  2783. }
  2784. }
  2785. void glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params) {
  2786. pglGetVertexAttribIiv(index, pname, params);
  2787. if (checkError) {
  2788. GLenum err = pglGetError();
  2789. if (err != GL_NO_ERROR) {
  2790. panic(err, "glGetVertexAttribIiv");
  2791. }
  2792. }
  2793. }
  2794. void glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params) {
  2795. pglGetVertexAttribIuiv(index, pname, params);
  2796. if (checkError) {
  2797. GLenum err = pglGetError();
  2798. if (err != GL_NO_ERROR) {
  2799. panic(err, "glGetVertexAttribIuiv");
  2800. }
  2801. }
  2802. }
  2803. void glVertexAttribI1i (GLuint index, GLint x) {
  2804. pglVertexAttribI1i(index, x);
  2805. if (checkError) {
  2806. GLenum err = pglGetError();
  2807. if (err != GL_NO_ERROR) {
  2808. panic(err, "glVertexAttribI1i");
  2809. }
  2810. }
  2811. }
  2812. void glVertexAttribI2i (GLuint index, GLint x, GLint y) {
  2813. pglVertexAttribI2i(index, x, y);
  2814. if (checkError) {
  2815. GLenum err = pglGetError();
  2816. if (err != GL_NO_ERROR) {
  2817. panic(err, "glVertexAttribI2i");
  2818. }
  2819. }
  2820. }
  2821. void glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z) {
  2822. pglVertexAttribI3i(index, x, y, z);
  2823. if (checkError) {
  2824. GLenum err = pglGetError();
  2825. if (err != GL_NO_ERROR) {
  2826. panic(err, "glVertexAttribI3i");
  2827. }
  2828. }
  2829. }
  2830. void glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w) {
  2831. pglVertexAttribI4i(index, x, y, z, w);
  2832. if (checkError) {
  2833. GLenum err = pglGetError();
  2834. if (err != GL_NO_ERROR) {
  2835. panic(err, "glVertexAttribI4i");
  2836. }
  2837. }
  2838. }
  2839. void glVertexAttribI1ui (GLuint index, GLuint x) {
  2840. pglVertexAttribI1ui(index, x);
  2841. if (checkError) {
  2842. GLenum err = pglGetError();
  2843. if (err != GL_NO_ERROR) {
  2844. panic(err, "glVertexAttribI1ui");
  2845. }
  2846. }
  2847. }
  2848. void glVertexAttribI2ui (GLuint index, GLuint x, GLuint y) {
  2849. pglVertexAttribI2ui(index, x, y);
  2850. if (checkError) {
  2851. GLenum err = pglGetError();
  2852. if (err != GL_NO_ERROR) {
  2853. panic(err, "glVertexAttribI2ui");
  2854. }
  2855. }
  2856. }
  2857. void glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z) {
  2858. pglVertexAttribI3ui(index, x, y, z);
  2859. if (checkError) {
  2860. GLenum err = pglGetError();
  2861. if (err != GL_NO_ERROR) {
  2862. panic(err, "glVertexAttribI3ui");
  2863. }
  2864. }
  2865. }
  2866. void glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
  2867. pglVertexAttribI4ui(index, x, y, z, w);
  2868. if (checkError) {
  2869. GLenum err = pglGetError();
  2870. if (err != GL_NO_ERROR) {
  2871. panic(err, "glVertexAttribI4ui");
  2872. }
  2873. }
  2874. }
  2875. void glVertexAttribI1iv (GLuint index, const GLint *v) {
  2876. pglVertexAttribI1iv(index, v);
  2877. if (checkError) {
  2878. GLenum err = pglGetError();
  2879. if (err != GL_NO_ERROR) {
  2880. panic(err, "glVertexAttribI1iv");
  2881. }
  2882. }
  2883. }
  2884. void glVertexAttribI2iv (GLuint index, const GLint *v) {
  2885. pglVertexAttribI2iv(index, v);
  2886. if (checkError) {
  2887. GLenum err = pglGetError();
  2888. if (err != GL_NO_ERROR) {
  2889. panic(err, "glVertexAttribI2iv");
  2890. }
  2891. }
  2892. }
  2893. void glVertexAttribI3iv (GLuint index, const GLint *v) {
  2894. pglVertexAttribI3iv(index, v);
  2895. if (checkError) {
  2896. GLenum err = pglGetError();
  2897. if (err != GL_NO_ERROR) {
  2898. panic(err, "glVertexAttribI3iv");
  2899. }
  2900. }
  2901. }
  2902. void glVertexAttribI4iv (GLuint index, const GLint *v) {
  2903. pglVertexAttribI4iv(index, v);
  2904. if (checkError) {
  2905. GLenum err = pglGetError();
  2906. if (err != GL_NO_ERROR) {
  2907. panic(err, "glVertexAttribI4iv");
  2908. }
  2909. }
  2910. }
  2911. void glVertexAttribI1uiv (GLuint index, const GLuint *v) {
  2912. pglVertexAttribI1uiv(index, v);
  2913. if (checkError) {
  2914. GLenum err = pglGetError();
  2915. if (err != GL_NO_ERROR) {
  2916. panic(err, "glVertexAttribI1uiv");
  2917. }
  2918. }
  2919. }
  2920. void glVertexAttribI2uiv (GLuint index, const GLuint *v) {
  2921. pglVertexAttribI2uiv(index, v);
  2922. if (checkError) {
  2923. GLenum err = pglGetError();
  2924. if (err != GL_NO_ERROR) {
  2925. panic(err, "glVertexAttribI2uiv");
  2926. }
  2927. }
  2928. }
  2929. void glVertexAttribI3uiv (GLuint index, const GLuint *v) {
  2930. pglVertexAttribI3uiv(index, v);
  2931. if (checkError) {
  2932. GLenum err = pglGetError();
  2933. if (err != GL_NO_ERROR) {
  2934. panic(err, "glVertexAttribI3uiv");
  2935. }
  2936. }
  2937. }
  2938. void glVertexAttribI4uiv (GLuint index, const GLuint *v) {
  2939. pglVertexAttribI4uiv(index, v);
  2940. if (checkError) {
  2941. GLenum err = pglGetError();
  2942. if (err != GL_NO_ERROR) {
  2943. panic(err, "glVertexAttribI4uiv");
  2944. }
  2945. }
  2946. }
  2947. void glVertexAttribI4bv (GLuint index, const GLbyte *v) {
  2948. pglVertexAttribI4bv(index, v);
  2949. if (checkError) {
  2950. GLenum err = pglGetError();
  2951. if (err != GL_NO_ERROR) {
  2952. panic(err, "glVertexAttribI4bv");
  2953. }
  2954. }
  2955. }
  2956. void glVertexAttribI4sv (GLuint index, const GLshort *v) {
  2957. pglVertexAttribI4sv(index, v);
  2958. if (checkError) {
  2959. GLenum err = pglGetError();
  2960. if (err != GL_NO_ERROR) {
  2961. panic(err, "glVertexAttribI4sv");
  2962. }
  2963. }
  2964. }
  2965. void glVertexAttribI4ubv (GLuint index, const GLubyte *v) {
  2966. pglVertexAttribI4ubv(index, v);
  2967. if (checkError) {
  2968. GLenum err = pglGetError();
  2969. if (err != GL_NO_ERROR) {
  2970. panic(err, "glVertexAttribI4ubv");
  2971. }
  2972. }
  2973. }
  2974. void glVertexAttribI4usv (GLuint index, const GLushort *v) {
  2975. pglVertexAttribI4usv(index, v);
  2976. if (checkError) {
  2977. GLenum err = pglGetError();
  2978. if (err != GL_NO_ERROR) {
  2979. panic(err, "glVertexAttribI4usv");
  2980. }
  2981. }
  2982. }
  2983. void glGetUniformuiv (GLuint program, GLint location, GLuint *params) {
  2984. pglGetUniformuiv(program, location, params);
  2985. if (checkError) {
  2986. GLenum err = pglGetError();
  2987. if (err != GL_NO_ERROR) {
  2988. panic(err, "glGetUniformuiv");
  2989. }
  2990. }
  2991. }
  2992. void glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name) {
  2993. pglBindFragDataLocation(program, color, name);
  2994. if (checkError) {
  2995. GLenum err = pglGetError();
  2996. if (err != GL_NO_ERROR) {
  2997. panic(err, "glBindFragDataLocation");
  2998. }
  2999. }
  3000. }
  3001. GLint glGetFragDataLocation (GLuint program, const GLchar *name) {
  3002. GLint res = pglGetFragDataLocation(program, name);
  3003. if (checkError) {
  3004. GLenum err = pglGetError();
  3005. if (err != GL_NO_ERROR) {
  3006. panic(err, "glGetFragDataLocation");
  3007. }
  3008. }
  3009. return res;
  3010. }
  3011. void glUniform1ui (GLint location, GLuint v0) {
  3012. pglUniform1ui(location, v0);
  3013. if (checkError) {
  3014. GLenum err = pglGetError();
  3015. if (err != GL_NO_ERROR) {
  3016. panic(err, "glUniform1ui");
  3017. }
  3018. }
  3019. }
  3020. void glUniform2ui (GLint location, GLuint v0, GLuint v1) {
  3021. pglUniform2ui(location, v0, v1);
  3022. if (checkError) {
  3023. GLenum err = pglGetError();
  3024. if (err != GL_NO_ERROR) {
  3025. panic(err, "glUniform2ui");
  3026. }
  3027. }
  3028. }
  3029. void glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2) {
  3030. pglUniform3ui(location, v0, v1, v2);
  3031. if (checkError) {
  3032. GLenum err = pglGetError();
  3033. if (err != GL_NO_ERROR) {
  3034. panic(err, "glUniform3ui");
  3035. }
  3036. }
  3037. }
  3038. void glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
  3039. pglUniform4ui(location, v0, v1, v2, v3);
  3040. if (checkError) {
  3041. GLenum err = pglGetError();
  3042. if (err != GL_NO_ERROR) {
  3043. panic(err, "glUniform4ui");
  3044. }
  3045. }
  3046. }
  3047. void glUniform1uiv (GLint location, GLsizei count, const GLuint *value) {
  3048. pglUniform1uiv(location, count, value);
  3049. if (checkError) {
  3050. GLenum err = pglGetError();
  3051. if (err != GL_NO_ERROR) {
  3052. panic(err, "glUniform1uiv");
  3053. }
  3054. }
  3055. }
  3056. void glUniform2uiv (GLint location, GLsizei count, const GLuint *value) {
  3057. pglUniform2uiv(location, count, value);
  3058. if (checkError) {
  3059. GLenum err = pglGetError();
  3060. if (err != GL_NO_ERROR) {
  3061. panic(err, "glUniform2uiv");
  3062. }
  3063. }
  3064. }
  3065. void glUniform3uiv (GLint location, GLsizei count, const GLuint *value) {
  3066. pglUniform3uiv(location, count, value);
  3067. if (checkError) {
  3068. GLenum err = pglGetError();
  3069. if (err != GL_NO_ERROR) {
  3070. panic(err, "glUniform3uiv");
  3071. }
  3072. }
  3073. }
  3074. void glUniform4uiv (GLint location, GLsizei count, const GLuint *value) {
  3075. pglUniform4uiv(location, count, value);
  3076. if (checkError) {
  3077. GLenum err = pglGetError();
  3078. if (err != GL_NO_ERROR) {
  3079. panic(err, "glUniform4uiv");
  3080. }
  3081. }
  3082. }
  3083. void glTexParameterIiv (GLenum target, GLenum pname, const GLint *params) {
  3084. pglTexParameterIiv(target, pname, params);
  3085. if (checkError) {
  3086. GLenum err = pglGetError();
  3087. if (err != GL_NO_ERROR) {
  3088. panic(err, "glTexParameterIiv");
  3089. }
  3090. }
  3091. }
  3092. void glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params) {
  3093. pglTexParameterIuiv(target, pname, params);
  3094. if (checkError) {
  3095. GLenum err = pglGetError();
  3096. if (err != GL_NO_ERROR) {
  3097. panic(err, "glTexParameterIuiv");
  3098. }
  3099. }
  3100. }
  3101. void glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params) {
  3102. pglGetTexParameterIiv(target, pname, params);
  3103. if (checkError) {
  3104. GLenum err = pglGetError();
  3105. if (err != GL_NO_ERROR) {
  3106. panic(err, "glGetTexParameterIiv");
  3107. }
  3108. }
  3109. }
  3110. void glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params) {
  3111. pglGetTexParameterIuiv(target, pname, params);
  3112. if (checkError) {
  3113. GLenum err = pglGetError();
  3114. if (err != GL_NO_ERROR) {
  3115. panic(err, "glGetTexParameterIuiv");
  3116. }
  3117. }
  3118. }
  3119. void glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value) {
  3120. pglClearBufferiv(buffer, drawbuffer, value);
  3121. if (checkError) {
  3122. GLenum err = pglGetError();
  3123. if (err != GL_NO_ERROR) {
  3124. panic(err, "glClearBufferiv");
  3125. }
  3126. }
  3127. }
  3128. void glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value) {
  3129. pglClearBufferuiv(buffer, drawbuffer, value);
  3130. if (checkError) {
  3131. GLenum err = pglGetError();
  3132. if (err != GL_NO_ERROR) {
  3133. panic(err, "glClearBufferuiv");
  3134. }
  3135. }
  3136. }
  3137. void glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value) {
  3138. pglClearBufferfv(buffer, drawbuffer, value);
  3139. if (checkError) {
  3140. GLenum err = pglGetError();
  3141. if (err != GL_NO_ERROR) {
  3142. panic(err, "glClearBufferfv");
  3143. }
  3144. }
  3145. }
  3146. void glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
  3147. pglClearBufferfi(buffer, drawbuffer, depth, stencil);
  3148. if (checkError) {
  3149. GLenum err = pglGetError();
  3150. if (err != GL_NO_ERROR) {
  3151. panic(err, "glClearBufferfi");
  3152. }
  3153. }
  3154. }
  3155. GLboolean glIsRenderbuffer (GLuint renderbuffer) {
  3156. GLboolean res = pglIsRenderbuffer(renderbuffer);
  3157. if (checkError) {
  3158. GLenum err = pglGetError();
  3159. if (err != GL_NO_ERROR) {
  3160. panic(err, "glIsRenderbuffer");
  3161. }
  3162. }
  3163. return res;
  3164. }
  3165. void glBindRenderbuffer (GLenum target, GLuint renderbuffer) {
  3166. pglBindRenderbuffer(target, renderbuffer);
  3167. if (checkError) {
  3168. GLenum err = pglGetError();
  3169. if (err != GL_NO_ERROR) {
  3170. panic(err, "glBindRenderbuffer");
  3171. }
  3172. }
  3173. }
  3174. void glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers) {
  3175. pglDeleteRenderbuffers(n, renderbuffers);
  3176. if (checkError) {
  3177. GLenum err = pglGetError();
  3178. if (err != GL_NO_ERROR) {
  3179. panic(err, "glDeleteRenderbuffers");
  3180. }
  3181. }
  3182. }
  3183. void glGenRenderbuffers (GLsizei n, GLuint *renderbuffers) {
  3184. pglGenRenderbuffers(n, renderbuffers);
  3185. if (checkError) {
  3186. GLenum err = pglGetError();
  3187. if (err != GL_NO_ERROR) {
  3188. panic(err, "glGenRenderbuffers");
  3189. }
  3190. }
  3191. }
  3192. void glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
  3193. pglRenderbufferStorage(target, internalformat, width, height);
  3194. if (checkError) {
  3195. GLenum err = pglGetError();
  3196. if (err != GL_NO_ERROR) {
  3197. panic(err, "glRenderbufferStorage");
  3198. }
  3199. }
  3200. }
  3201. void glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params) {
  3202. pglGetRenderbufferParameteriv(target, pname, params);
  3203. if (checkError) {
  3204. GLenum err = pglGetError();
  3205. if (err != GL_NO_ERROR) {
  3206. panic(err, "glGetRenderbufferParameteriv");
  3207. }
  3208. }
  3209. }
  3210. GLboolean glIsFramebuffer (GLuint framebuffer) {
  3211. GLboolean res = pglIsFramebuffer(framebuffer);
  3212. if (checkError) {
  3213. GLenum err = pglGetError();
  3214. if (err != GL_NO_ERROR) {
  3215. panic(err, "glIsFramebuffer");
  3216. }
  3217. }
  3218. return res;
  3219. }
  3220. void glBindFramebuffer (GLenum target, GLuint framebuffer) {
  3221. pglBindFramebuffer(target, framebuffer);
  3222. if (checkError) {
  3223. GLenum err = pglGetError();
  3224. if (err != GL_NO_ERROR) {
  3225. panic(err, "glBindFramebuffer");
  3226. }
  3227. }
  3228. }
  3229. void glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers) {
  3230. pglDeleteFramebuffers(n, framebuffers);
  3231. if (checkError) {
  3232. GLenum err = pglGetError();
  3233. if (err != GL_NO_ERROR) {
  3234. panic(err, "glDeleteFramebuffers");
  3235. }
  3236. }
  3237. }
  3238. void glGenFramebuffers (GLsizei n, GLuint *framebuffers) {
  3239. pglGenFramebuffers(n, framebuffers);
  3240. if (checkError) {
  3241. GLenum err = pglGetError();
  3242. if (err != GL_NO_ERROR) {
  3243. panic(err, "glGenFramebuffers");
  3244. }
  3245. }
  3246. }
  3247. GLenum glCheckFramebufferStatus (GLenum target) {
  3248. GLenum res = pglCheckFramebufferStatus(target);
  3249. if (checkError) {
  3250. GLenum err = pglGetError();
  3251. if (err != GL_NO_ERROR) {
  3252. panic(err, "glCheckFramebufferStatus");
  3253. }
  3254. }
  3255. return res;
  3256. }
  3257. void glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
  3258. pglFramebufferTexture1D(target, attachment, textarget, texture, level);
  3259. if (checkError) {
  3260. GLenum err = pglGetError();
  3261. if (err != GL_NO_ERROR) {
  3262. panic(err, "glFramebufferTexture1D");
  3263. }
  3264. }
  3265. }
  3266. void glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
  3267. pglFramebufferTexture2D(target, attachment, textarget, texture, level);
  3268. if (checkError) {
  3269. GLenum err = pglGetError();
  3270. if (err != GL_NO_ERROR) {
  3271. panic(err, "glFramebufferTexture2D");
  3272. }
  3273. }
  3274. }
  3275. void glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
  3276. pglFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
  3277. if (checkError) {
  3278. GLenum err = pglGetError();
  3279. if (err != GL_NO_ERROR) {
  3280. panic(err, "glFramebufferTexture3D");
  3281. }
  3282. }
  3283. }
  3284. void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
  3285. pglFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
  3286. if (checkError) {
  3287. GLenum err = pglGetError();
  3288. if (err != GL_NO_ERROR) {
  3289. panic(err, "glFramebufferRenderbuffer");
  3290. }
  3291. }
  3292. }
  3293. void glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params) {
  3294. pglGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
  3295. if (checkError) {
  3296. GLenum err = pglGetError();
  3297. if (err != GL_NO_ERROR) {
  3298. panic(err, "glGetFramebufferAttachmentParameteriv");
  3299. }
  3300. }
  3301. }
  3302. void glGenerateMipmap (GLenum target) {
  3303. pglGenerateMipmap(target);
  3304. if (checkError) {
  3305. GLenum err = pglGetError();
  3306. if (err != GL_NO_ERROR) {
  3307. panic(err, "glGenerateMipmap");
  3308. }
  3309. }
  3310. }
  3311. void glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
  3312. pglBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
  3313. if (checkError) {
  3314. GLenum err = pglGetError();
  3315. if (err != GL_NO_ERROR) {
  3316. panic(err, "glBlitFramebuffer");
  3317. }
  3318. }
  3319. }
  3320. void glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
  3321. pglRenderbufferStorageMultisample(target, samples, internalformat, width, height);
  3322. if (checkError) {
  3323. GLenum err = pglGetError();
  3324. if (err != GL_NO_ERROR) {
  3325. panic(err, "glRenderbufferStorageMultisample");
  3326. }
  3327. }
  3328. }
  3329. void glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
  3330. pglFramebufferTextureLayer(target, attachment, texture, level, layer);
  3331. if (checkError) {
  3332. GLenum err = pglGetError();
  3333. if (err != GL_NO_ERROR) {
  3334. panic(err, "glFramebufferTextureLayer");
  3335. }
  3336. }
  3337. }
  3338. void glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length) {
  3339. pglFlushMappedBufferRange(target, offset, length);
  3340. if (checkError) {
  3341. GLenum err = pglGetError();
  3342. if (err != GL_NO_ERROR) {
  3343. panic(err, "glFlushMappedBufferRange");
  3344. }
  3345. }
  3346. }
  3347. void glBindVertexArray (GLuint array) {
  3348. pglBindVertexArray(array);
  3349. if (checkError) {
  3350. GLenum err = pglGetError();
  3351. if (err != GL_NO_ERROR) {
  3352. panic(err, "glBindVertexArray");
  3353. }
  3354. }
  3355. }
  3356. void glDeleteVertexArrays (GLsizei n, const GLuint *arrays) {
  3357. pglDeleteVertexArrays(n, arrays);
  3358. if (checkError) {
  3359. GLenum err = pglGetError();
  3360. if (err != GL_NO_ERROR) {
  3361. panic(err, "glDeleteVertexArrays");
  3362. }
  3363. }
  3364. }
  3365. void glGenVertexArrays (GLsizei n, GLuint *arrays) {
  3366. pglGenVertexArrays(n, arrays);
  3367. if (checkError) {
  3368. GLenum err = pglGetError();
  3369. if (err != GL_NO_ERROR) {
  3370. panic(err, "glGenVertexArrays");
  3371. }
  3372. }
  3373. }
  3374. GLboolean glIsVertexArray (GLuint array) {
  3375. GLboolean res = pglIsVertexArray(array);
  3376. if (checkError) {
  3377. GLenum err = pglGetError();
  3378. if (err != GL_NO_ERROR) {
  3379. panic(err, "glIsVertexArray");
  3380. }
  3381. }
  3382. return res;
  3383. }
  3384. void glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
  3385. pglDrawArraysInstanced(mode, first, count, instancecount);
  3386. if (checkError) {
  3387. GLenum err = pglGetError();
  3388. if (err != GL_NO_ERROR) {
  3389. panic(err, "glDrawArraysInstanced");
  3390. }
  3391. }
  3392. }
  3393. void glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount) {
  3394. pglDrawElementsInstanced(mode, count, type, indices, instancecount);
  3395. if (checkError) {
  3396. GLenum err = pglGetError();
  3397. if (err != GL_NO_ERROR) {
  3398. panic(err, "glDrawElementsInstanced");
  3399. }
  3400. }
  3401. }
  3402. void glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer) {
  3403. pglTexBuffer(target, internalformat, buffer);
  3404. if (checkError) {
  3405. GLenum err = pglGetError();
  3406. if (err != GL_NO_ERROR) {
  3407. panic(err, "glTexBuffer");
  3408. }
  3409. }
  3410. }
  3411. void glPrimitiveRestartIndex (GLuint index) {
  3412. pglPrimitiveRestartIndex(index);
  3413. if (checkError) {
  3414. GLenum err = pglGetError();
  3415. if (err != GL_NO_ERROR) {
  3416. panic(err, "glPrimitiveRestartIndex");
  3417. }
  3418. }
  3419. }
  3420. void glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
  3421. pglCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
  3422. if (checkError) {
  3423. GLenum err = pglGetError();
  3424. if (err != GL_NO_ERROR) {
  3425. panic(err, "glCopyBufferSubData");
  3426. }
  3427. }
  3428. }
  3429. void glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices) {
  3430. pglGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
  3431. if (checkError) {
  3432. GLenum err = pglGetError();
  3433. if (err != GL_NO_ERROR) {
  3434. panic(err, "glGetUniformIndices");
  3435. }
  3436. }
  3437. }
  3438. void glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params) {
  3439. pglGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
  3440. if (checkError) {
  3441. GLenum err = pglGetError();
  3442. if (err != GL_NO_ERROR) {
  3443. panic(err, "glGetActiveUniformsiv");
  3444. }
  3445. }
  3446. }
  3447. void glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName) {
  3448. pglGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
  3449. if (checkError) {
  3450. GLenum err = pglGetError();
  3451. if (err != GL_NO_ERROR) {
  3452. panic(err, "glGetActiveUniformName");
  3453. }
  3454. }
  3455. }
  3456. GLuint glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName) {
  3457. GLuint res = pglGetUniformBlockIndex(program, uniformBlockName);
  3458. if (checkError) {
  3459. GLenum err = pglGetError();
  3460. if (err != GL_NO_ERROR) {
  3461. panic(err, "glGetUniformBlockIndex");
  3462. }
  3463. }
  3464. return res;
  3465. }
  3466. void glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params) {
  3467. pglGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
  3468. if (checkError) {
  3469. GLenum err = pglGetError();
  3470. if (err != GL_NO_ERROR) {
  3471. panic(err, "glGetActiveUniformBlockiv");
  3472. }
  3473. }
  3474. }
  3475. void glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName) {
  3476. pglGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
  3477. if (checkError) {
  3478. GLenum err = pglGetError();
  3479. if (err != GL_NO_ERROR) {
  3480. panic(err, "glGetActiveUniformBlockName");
  3481. }
  3482. }
  3483. }
  3484. void glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) {
  3485. pglUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
  3486. if (checkError) {
  3487. GLenum err = pglGetError();
  3488. if (err != GL_NO_ERROR) {
  3489. panic(err, "glUniformBlockBinding");
  3490. }
  3491. }
  3492. }
  3493. void glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex) {
  3494. pglDrawElementsBaseVertex(mode, count, type, indices, basevertex);
  3495. if (checkError) {
  3496. GLenum err = pglGetError();
  3497. if (err != GL_NO_ERROR) {
  3498. panic(err, "glDrawElementsBaseVertex");
  3499. }
  3500. }
  3501. }
  3502. void glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex) {
  3503. pglDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
  3504. if (checkError) {
  3505. GLenum err = pglGetError();
  3506. if (err != GL_NO_ERROR) {
  3507. panic(err, "glDrawRangeElementsBaseVertex");
  3508. }
  3509. }
  3510. }
  3511. void glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex) {
  3512. pglDrawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
  3513. if (checkError) {
  3514. GLenum err = pglGetError();
  3515. if (err != GL_NO_ERROR) {
  3516. panic(err, "glDrawElementsInstancedBaseVertex");
  3517. }
  3518. }
  3519. }
  3520. void glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex) {
  3521. pglMultiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex);
  3522. if (checkError) {
  3523. GLenum err = pglGetError();
  3524. if (err != GL_NO_ERROR) {
  3525. panic(err, "glMultiDrawElementsBaseVertex");
  3526. }
  3527. }
  3528. }
  3529. void glProvokingVertex (GLenum mode) {
  3530. pglProvokingVertex(mode);
  3531. if (checkError) {
  3532. GLenum err = pglGetError();
  3533. if (err != GL_NO_ERROR) {
  3534. panic(err, "glProvokingVertex");
  3535. }
  3536. }
  3537. }
  3538. GLsync glFenceSync (GLenum condition, GLbitfield flags) {
  3539. GLsync res = pglFenceSync(condition, flags);
  3540. if (checkError) {
  3541. GLenum err = pglGetError();
  3542. if (err != GL_NO_ERROR) {
  3543. panic(err, "glFenceSync");
  3544. }
  3545. }
  3546. return res;
  3547. }
  3548. GLboolean glIsSync (GLsync sync) {
  3549. GLboolean res = pglIsSync(sync);
  3550. if (checkError) {
  3551. GLenum err = pglGetError();
  3552. if (err != GL_NO_ERROR) {
  3553. panic(err, "glIsSync");
  3554. }
  3555. }
  3556. return res;
  3557. }
  3558. void glDeleteSync (GLsync sync) {
  3559. pglDeleteSync(sync);
  3560. if (checkError) {
  3561. GLenum err = pglGetError();
  3562. if (err != GL_NO_ERROR) {
  3563. panic(err, "glDeleteSync");
  3564. }
  3565. }
  3566. }
  3567. GLenum glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) {
  3568. GLenum res = pglClientWaitSync(sync, flags, timeout);
  3569. if (checkError) {
  3570. GLenum err = pglGetError();
  3571. if (err != GL_NO_ERROR) {
  3572. panic(err, "glClientWaitSync");
  3573. }
  3574. }
  3575. return res;
  3576. }
  3577. void glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) {
  3578. pglWaitSync(sync, flags, timeout);
  3579. if (checkError) {
  3580. GLenum err = pglGetError();
  3581. if (err != GL_NO_ERROR) {
  3582. panic(err, "glWaitSync");
  3583. }
  3584. }
  3585. }
  3586. void glGetInteger64v (GLenum pname, GLint64 *data) {
  3587. pglGetInteger64v(pname, data);
  3588. if (checkError) {
  3589. GLenum err = pglGetError();
  3590. if (err != GL_NO_ERROR) {
  3591. panic(err, "glGetInteger64v");
  3592. }
  3593. }
  3594. }
  3595. void glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values) {
  3596. pglGetSynciv(sync, pname, bufSize, length, values);
  3597. if (checkError) {
  3598. GLenum err = pglGetError();
  3599. if (err != GL_NO_ERROR) {
  3600. panic(err, "glGetSynciv");
  3601. }
  3602. }
  3603. }
  3604. void glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data) {
  3605. pglGetInteger64i_v(target, index, data);
  3606. if (checkError) {
  3607. GLenum err = pglGetError();
  3608. if (err != GL_NO_ERROR) {
  3609. panic(err, "glGetInteger64i_v");
  3610. }
  3611. }
  3612. }
  3613. void glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params) {
  3614. pglGetBufferParameteri64v(target, pname, params);
  3615. if (checkError) {
  3616. GLenum err = pglGetError();
  3617. if (err != GL_NO_ERROR) {
  3618. panic(err, "glGetBufferParameteri64v");
  3619. }
  3620. }
  3621. }
  3622. void glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level) {
  3623. pglFramebufferTexture(target, attachment, texture, level);
  3624. if (checkError) {
  3625. GLenum err = pglGetError();
  3626. if (err != GL_NO_ERROR) {
  3627. panic(err, "glFramebufferTexture");
  3628. }
  3629. }
  3630. }
  3631. void glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
  3632. pglTexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
  3633. if (checkError) {
  3634. GLenum err = pglGetError();
  3635. if (err != GL_NO_ERROR) {
  3636. panic(err, "glTexImage2DMultisample");
  3637. }
  3638. }
  3639. }
  3640. void glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
  3641. pglTexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
  3642. if (checkError) {
  3643. GLenum err = pglGetError();
  3644. if (err != GL_NO_ERROR) {
  3645. panic(err, "glTexImage3DMultisample");
  3646. }
  3647. }
  3648. }
  3649. void glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val) {
  3650. pglGetMultisamplefv(pname, index, val);
  3651. if (checkError) {
  3652. GLenum err = pglGetError();
  3653. if (err != GL_NO_ERROR) {
  3654. panic(err, "glGetMultisamplefv");
  3655. }
  3656. }
  3657. }
  3658. void glSampleMaski (GLuint maskNumber, GLbitfield mask) {
  3659. pglSampleMaski(maskNumber, mask);
  3660. if (checkError) {
  3661. GLenum err = pglGetError();
  3662. if (err != GL_NO_ERROR) {
  3663. panic(err, "glSampleMaski");
  3664. }
  3665. }
  3666. }
  3667. void glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name) {
  3668. pglBindFragDataLocationIndexed(program, colorNumber, index, name);
  3669. if (checkError) {
  3670. GLenum err = pglGetError();
  3671. if (err != GL_NO_ERROR) {
  3672. panic(err, "glBindFragDataLocationIndexed");
  3673. }
  3674. }
  3675. }
  3676. GLint glGetFragDataIndex (GLuint program, const GLchar *name) {
  3677. GLint res = pglGetFragDataIndex(program, name);
  3678. if (checkError) {
  3679. GLenum err = pglGetError();
  3680. if (err != GL_NO_ERROR) {
  3681. panic(err, "glGetFragDataIndex");
  3682. }
  3683. }
  3684. return res;
  3685. }
  3686. void glGenSamplers (GLsizei count, GLuint *samplers) {
  3687. pglGenSamplers(count, samplers);
  3688. if (checkError) {
  3689. GLenum err = pglGetError();
  3690. if (err != GL_NO_ERROR) {
  3691. panic(err, "glGenSamplers");
  3692. }
  3693. }
  3694. }
  3695. void glDeleteSamplers (GLsizei count, const GLuint *samplers) {
  3696. pglDeleteSamplers(count, samplers);
  3697. if (checkError) {
  3698. GLenum err = pglGetError();
  3699. if (err != GL_NO_ERROR) {
  3700. panic(err, "glDeleteSamplers");
  3701. }
  3702. }
  3703. }
  3704. GLboolean glIsSampler (GLuint sampler) {
  3705. GLboolean res = pglIsSampler(sampler);
  3706. if (checkError) {
  3707. GLenum err = pglGetError();
  3708. if (err != GL_NO_ERROR) {
  3709. panic(err, "glIsSampler");
  3710. }
  3711. }
  3712. return res;
  3713. }
  3714. void glBindSampler (GLuint unit, GLuint sampler) {
  3715. pglBindSampler(unit, sampler);
  3716. if (checkError) {
  3717. GLenum err = pglGetError();
  3718. if (err != GL_NO_ERROR) {
  3719. panic(err, "glBindSampler");
  3720. }
  3721. }
  3722. }
  3723. void glSamplerParameteri (GLuint sampler, GLenum pname, GLint param) {
  3724. pglSamplerParameteri(sampler, pname, param);
  3725. if (checkError) {
  3726. GLenum err = pglGetError();
  3727. if (err != GL_NO_ERROR) {
  3728. panic(err, "glSamplerParameteri");
  3729. }
  3730. }
  3731. }
  3732. void glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param) {
  3733. pglSamplerParameteriv(sampler, pname, param);
  3734. if (checkError) {
  3735. GLenum err = pglGetError();
  3736. if (err != GL_NO_ERROR) {
  3737. panic(err, "glSamplerParameteriv");
  3738. }
  3739. }
  3740. }
  3741. void glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param) {
  3742. pglSamplerParameterf(sampler, pname, param);
  3743. if (checkError) {
  3744. GLenum err = pglGetError();
  3745. if (err != GL_NO_ERROR) {
  3746. panic(err, "glSamplerParameterf");
  3747. }
  3748. }
  3749. }
  3750. void glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param) {
  3751. pglSamplerParameterfv(sampler, pname, param);
  3752. if (checkError) {
  3753. GLenum err = pglGetError();
  3754. if (err != GL_NO_ERROR) {
  3755. panic(err, "glSamplerParameterfv");
  3756. }
  3757. }
  3758. }
  3759. void glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param) {
  3760. pglSamplerParameterIiv(sampler, pname, param);
  3761. if (checkError) {
  3762. GLenum err = pglGetError();
  3763. if (err != GL_NO_ERROR) {
  3764. panic(err, "glSamplerParameterIiv");
  3765. }
  3766. }
  3767. }
  3768. void glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param) {
  3769. pglSamplerParameterIuiv(sampler, pname, param);
  3770. if (checkError) {
  3771. GLenum err = pglGetError();
  3772. if (err != GL_NO_ERROR) {
  3773. panic(err, "glSamplerParameterIuiv");
  3774. }
  3775. }
  3776. }
  3777. void glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params) {
  3778. pglGetSamplerParameteriv(sampler, pname, params);
  3779. if (checkError) {
  3780. GLenum err = pglGetError();
  3781. if (err != GL_NO_ERROR) {
  3782. panic(err, "glGetSamplerParameteriv");
  3783. }
  3784. }
  3785. }
  3786. void glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params) {
  3787. pglGetSamplerParameterIiv(sampler, pname, params);
  3788. if (checkError) {
  3789. GLenum err = pglGetError();
  3790. if (err != GL_NO_ERROR) {
  3791. panic(err, "glGetSamplerParameterIiv");
  3792. }
  3793. }
  3794. }
  3795. void glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params) {
  3796. pglGetSamplerParameterfv(sampler, pname, params);
  3797. if (checkError) {
  3798. GLenum err = pglGetError();
  3799. if (err != GL_NO_ERROR) {
  3800. panic(err, "glGetSamplerParameterfv");
  3801. }
  3802. }
  3803. }
  3804. void glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params) {
  3805. pglGetSamplerParameterIuiv(sampler, pname, params);
  3806. if (checkError) {
  3807. GLenum err = pglGetError();
  3808. if (err != GL_NO_ERROR) {
  3809. panic(err, "glGetSamplerParameterIuiv");
  3810. }
  3811. }
  3812. }
  3813. void glQueryCounter (GLuint id, GLenum target) {
  3814. pglQueryCounter(id, target);
  3815. if (checkError) {
  3816. GLenum err = pglGetError();
  3817. if (err != GL_NO_ERROR) {
  3818. panic(err, "glQueryCounter");
  3819. }
  3820. }
  3821. }
  3822. void glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params) {
  3823. pglGetQueryObjecti64v(id, pname, params);
  3824. if (checkError) {
  3825. GLenum err = pglGetError();
  3826. if (err != GL_NO_ERROR) {
  3827. panic(err, "glGetQueryObjecti64v");
  3828. }
  3829. }
  3830. }
  3831. void glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params) {
  3832. pglGetQueryObjectui64v(id, pname, params);
  3833. if (checkError) {
  3834. GLenum err = pglGetError();
  3835. if (err != GL_NO_ERROR) {
  3836. panic(err, "glGetQueryObjectui64v");
  3837. }
  3838. }
  3839. }
  3840. void glVertexAttribDivisor (GLuint index, GLuint divisor) {
  3841. pglVertexAttribDivisor(index, divisor);
  3842. if (checkError) {
  3843. GLenum err = pglGetError();
  3844. if (err != GL_NO_ERROR) {
  3845. panic(err, "glVertexAttribDivisor");
  3846. }
  3847. }
  3848. }
  3849. void glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) {
  3850. pglVertexAttribP1ui(index, type, normalized, value);
  3851. if (checkError) {
  3852. GLenum err = pglGetError();
  3853. if (err != GL_NO_ERROR) {
  3854. panic(err, "glVertexAttribP1ui");
  3855. }
  3856. }
  3857. }
  3858. void glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value) {
  3859. pglVertexAttribP1uiv(index, type, normalized, value);
  3860. if (checkError) {
  3861. GLenum err = pglGetError();
  3862. if (err != GL_NO_ERROR) {
  3863. panic(err, "glVertexAttribP1uiv");
  3864. }
  3865. }
  3866. }
  3867. void glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) {
  3868. pglVertexAttribP2ui(index, type, normalized, value);
  3869. if (checkError) {
  3870. GLenum err = pglGetError();
  3871. if (err != GL_NO_ERROR) {
  3872. panic(err, "glVertexAttribP2ui");
  3873. }
  3874. }
  3875. }
  3876. void glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value) {
  3877. pglVertexAttribP2uiv(index, type, normalized, value);
  3878. if (checkError) {
  3879. GLenum err = pglGetError();
  3880. if (err != GL_NO_ERROR) {
  3881. panic(err, "glVertexAttribP2uiv");
  3882. }
  3883. }
  3884. }
  3885. void glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) {
  3886. pglVertexAttribP3ui(index, type, normalized, value);
  3887. if (checkError) {
  3888. GLenum err = pglGetError();
  3889. if (err != GL_NO_ERROR) {
  3890. panic(err, "glVertexAttribP3ui");
  3891. }
  3892. }
  3893. }
  3894. void glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value) {
  3895. pglVertexAttribP3uiv(index, type, normalized, value);
  3896. if (checkError) {
  3897. GLenum err = pglGetError();
  3898. if (err != GL_NO_ERROR) {
  3899. panic(err, "glVertexAttribP3uiv");
  3900. }
  3901. }
  3902. }
  3903. void glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) {
  3904. pglVertexAttribP4ui(index, type, normalized, value);
  3905. if (checkError) {
  3906. GLenum err = pglGetError();
  3907. if (err != GL_NO_ERROR) {
  3908. panic(err, "glVertexAttribP4ui");
  3909. }
  3910. }
  3911. }
  3912. void glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value) {
  3913. pglVertexAttribP4uiv(index, type, normalized, value);
  3914. if (checkError) {
  3915. GLenum err = pglGetError();
  3916. if (err != GL_NO_ERROR) {
  3917. panic(err, "glVertexAttribP4uiv");
  3918. }
  3919. }
  3920. }