glapi.c 137 KB

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