CAPI_GLE.cpp 311 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988
  1. /************************************************************************************
  2. Filename : Render_GLE.cpp
  3. Content : OpenGL Extensions support. Implements a stripped down glew-like
  4. interface with some additional functionality.
  5. Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
  6. Licensed under the Apache License, Version 2.0 (the "License");
  7. you may not use this file except in compliance with the License.
  8. You may obtain a copy of the License at
  9. http://www.apache.org/licenses/LICENSE-2.0
  10. Unless required by applicable law or agreed to in writing, software
  11. distributed under the License is distributed on an "AS IS" BASIS,
  12. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. See the License for the specific language governing permissions and
  14. limitations under the License.
  15. ************************************************************************************/
  16. #include "CAPI_GLE.h"
  17. #include "Kernel/OVR_Log.h"
  18. #if defined(OVR_OS_WIN32)
  19. #include "Kernel/OVR_Win32_IncludeWindows.h"
  20. #endif // OVR_OS_WIN32
  21. #include <string.h>
  22. #ifdef OVR_BUILD_DEBUG
  23. #include "Kernel/OVR_String.h"
  24. #endif // OVR_BUILD_DEBUG
  25. #if defined(_WIN32)
  26. #pragma comment(lib, "opengl32.lib")
  27. #elif defined(__APPLE__)
  28. #include <stdlib.h>
  29. #include <string.h>
  30. #include <AvailabilityMacros.h>
  31. #include <dlfcn.h>
  32. #endif
  33. //namespace OVR
  34. //{
  35. // OVRTypeof
  36. // Acts the same as the C++11 decltype expression, though with reduced requirements.
  37. #if !defined(OVRTypeof)
  38. #if defined(_MSC_VER)
  39. #define OVRTypeof(x) decltype(x) // VS2010+ unilaterally supports decltype
  40. #else
  41. #define OVRTypeof(x) __typeof__(x) // Other compilers support decltype, but usually not unless C++11 support is present and explicitly enabled.
  42. #endif
  43. #endif
  44. // GLELoadProc
  45. // Macro which implements dynamically looking up and assigning an OpenGL function.
  46. //
  47. // Example usage:
  48. // GLELoadProc(glCopyTexSubImage3D, glCopyTexSubImage3D);
  49. // Expands to:
  50. // gleCopyTexSubImage3D = (OVRTypeof(gleCopyTexSubImage3D)) GLEGetProcAddress("glCopyTexSubImage3D");
  51. #define GLELoadProc(var, name) var = (OVRTypeof(var))GLEGetProcAddress(#name)
  52. // Disable some #defines, as we need to call these functions directly.
  53. #if defined(GLE_HOOKING_ENABLED)
  54. #if defined(_WIN32)
  55. #undef wglGetProcAddress
  56. extern "C" { GLAPI PROC GLAPIENTRY wglGetProcAddress(LPCSTR lpszProc); }
  57. #endif
  58. #undef glGetString
  59. extern "C" { GLAPI const GLubyte * GLAPIENTRY glGetString(GLenum name); }
  60. #endif
  61. // Generic OpenGL GetProcAddress function interface. Maps to platform-specific functionality
  62. // internally. On Windows this is equivalent to wglGetProcAddress as opposed to global GetProcAddress.
  63. void* OVR::GLEGetProcAddress(const char* name)
  64. {
  65. #if defined(_WIN32)
  66. return wglGetProcAddress(name);
  67. #elif defined(__APPLE__)
  68. // Requires the OS 10.3 SDK or later.
  69. static void* dlImage = NULL;
  70. void* addr = nullptr;
  71. if(!dlImage)
  72. dlImage = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
  73. if(dlImage)
  74. addr = dlsym(dlImage, name);
  75. return addr;
  76. #elif defined(__ANDROID__)
  77. return eglGetProcAddress(name);
  78. #else
  79. // This was glXGetProcAddressARB in GLX versions prior to v1.4, but that was ten years ago.
  80. return (void*)glXGetProcAddress((const GLubyte*)name);
  81. #endif
  82. }
  83. // Current context functionality
  84. static OVR::GLEContext* GLECurrentContext = NULL;
  85. OVR::GLEContext* OVR::GLEContext::GetCurrentContext()
  86. {
  87. return GLECurrentContext;
  88. }
  89. void OVR::GLEContext::SetCurrentContext(OVR::GLEContext* p)
  90. {
  91. GLECurrentContext = p;
  92. }
  93. OVR::GLEContext::GLEContext()
  94. : MajorVersion(0)
  95. , MinorVersion(0)
  96. , WholeVersion(0)
  97. , IsGLES(false)
  98. , IsCoreProfile(false)
  99. , EnableHookGetError(true)
  100. , PlatformMajorVersion(0)
  101. , PlatformMinorVersion(0)
  102. , PlatformWholeVersion(0)
  103. {
  104. // The following sequence is not thread-safe. Two threads could set the context to this at the same time.
  105. if(GetCurrentContext() == NULL)
  106. SetCurrentContext(this);
  107. }
  108. OVR::GLEContext::~GLEContext()
  109. {
  110. // Currently empty
  111. }
  112. void OVR::GLEContext::Init()
  113. {
  114. PlatformInit();
  115. if(!IsInitialized())
  116. {
  117. InitVersion();
  118. InitExtensionLoad();
  119. InitExtensionSupport();
  120. }
  121. }
  122. bool OVR::GLEContext::IsInitialized() const
  123. {
  124. return (MajorVersion != 0);
  125. }
  126. void OVR::GLEContext::Shutdown()
  127. {
  128. // This memset is valid only if this class has no virtual functions (similar to concept of POD).
  129. // We cannot assert this because restrictions prevent us from using C++11 type traits here.
  130. memset(this, 0, sizeof(GLEContext));
  131. }
  132. void OVR::GLEContext::PlatformInit()
  133. {
  134. if(!IsPlatformInitialized())
  135. {
  136. InitPlatformExtensionLoad();
  137. InitPlatformExtensionSupport();
  138. InitPlatformVersion();
  139. }
  140. }
  141. bool OVR::GLEContext::IsPlatformInitialized() const
  142. {
  143. return (PlatformMajorVersion != 0);
  144. }
  145. void OVR::GLEContext::InitVersion()
  146. {
  147. const char* version = (const char*)glGetString(GL_VERSION);
  148. int fields = 0, major = 0, minor = 0;
  149. bool isGLES = false;
  150. OVR_ASSERT(version);
  151. if (version)
  152. {
  153. OVR_DEBUG_LOG(("GL_VERSION: %s", (const char*)version));
  154. // Skip all leading non-digits before reading %d.
  155. // Example GL_VERSION strings:
  156. // "1.5 ATI-1.4.18"
  157. // "OpenGL ES-CM 3.2"
  158. OVR_DISABLE_MSVC_WARNING(4996) // "scanf may be unsafe"
  159. fields = sscanf(version, isdigit(*version) ? "%d.%d" : "%*[^0-9]%d.%d", &major, &minor);
  160. isGLES = (strstr(version, "OpenGL ES") != NULL);
  161. OVR_RESTORE_MSVC_WARNING()
  162. }
  163. else
  164. {
  165. LogText("Warning: GL_VERSION was NULL\n");
  166. }
  167. // If two fields were not found,
  168. if (fields != 2)
  169. {
  170. static_assert(sizeof(major) == sizeof(GLint), "type mis-match");
  171. glGetIntegerv(GL_MAJOR_VERSION, &major);
  172. glGetIntegerv(GL_MINOR_VERSION, &minor);
  173. }
  174. // Write version data
  175. MajorVersion = major;
  176. MinorVersion = minor;
  177. WholeVersion = (major * 100) + minor;
  178. GLint profileMask = 0;
  179. if(WholeVersion >= 302)
  180. {
  181. // Older NVidia drivers have a bug with this on at least Windows.
  182. // https://www.opengl.org/discussion_boards/showthread.php/171380-NVIDIA-drivers-not-returning-the-right-profile-mas
  183. // A workaround could be to check for the GL_ARB_compatibility extension, which indicates if OpenGL is in compatibility mode,
  184. // and if not then we are in core profile mode. On Apple another solution would be to use NSOpeNGLPixelFormat
  185. // NSOpenGLView::pixelFormat to get the core profile attribute.
  186. glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &profileMask);
  187. }
  188. IsCoreProfile = (profileMask == GL_CONTEXT_CORE_PROFILE_BIT); // There's also GL_CONTEXT_COMPATIBILITY_PROFILE_BIT
  189. IsGLES = isGLES;
  190. }
  191. void OVR::GLEContext::InitExtensionLoad()
  192. {
  193. // GL_VERSION_1_1
  194. // We don't load these but rather link to them directly.
  195. // GL_VERSION_1_2
  196. GLELoadProc(glCopyTexSubImage3D_Impl, glCopyTexSubImage3D); // This expands to a get proc address call (e.g. wglGetProcAddress on Windows).
  197. GLELoadProc(glDrawRangeElements_Impl, glDrawRangeElements);
  198. GLELoadProc(glTexImage3D_Impl, glTexImage3D);
  199. GLELoadProc(glTexSubImage3D_Impl, glTexSubImage3D);
  200. // GL_VERSION_1_3
  201. GLELoadProc(glActiveTexture_Impl, glActiveTexture);
  202. GLELoadProc(glClientActiveTexture_Impl, glClientActiveTexture);
  203. GLELoadProc(glCompressedTexImage1D_Impl, glCompressedTexImage1D);
  204. GLELoadProc(glCompressedTexImage2D_Impl, glCompressedTexImage2D);
  205. GLELoadProc(glCompressedTexImage3D_Impl, glCompressedTexImage3D);
  206. GLELoadProc(glCompressedTexSubImage1D_Impl, glCompressedTexSubImage1D);
  207. GLELoadProc(glCompressedTexSubImage2D_Impl, glCompressedTexSubImage2D);
  208. GLELoadProc(glCompressedTexSubImage3D_Impl, glCompressedTexSubImage3D);
  209. GLELoadProc(glGetCompressedTexImage_Impl, glGetCompressedTexImage);
  210. GLELoadProc(glLoadTransposeMatrixd_Impl, glLoadTransposeMatrixd);
  211. GLELoadProc(glLoadTransposeMatrixf_Impl, glLoadTransposeMatrixf);
  212. GLELoadProc(glMultTransposeMatrixd_Impl, glMultTransposeMatrixd);
  213. GLELoadProc(glMultTransposeMatrixf_Impl, glMultTransposeMatrixf);
  214. GLELoadProc(glMultiTexCoord1d_Impl, glMultiTexCoord1d);
  215. GLELoadProc(glMultiTexCoord1dv_Impl, glMultiTexCoord1dv);
  216. GLELoadProc(glMultiTexCoord1f_Impl, glMultiTexCoord1f);
  217. GLELoadProc(glMultiTexCoord1fv_Impl, glMultiTexCoord1fv);
  218. GLELoadProc(glMultiTexCoord1i_Impl, glMultiTexCoord1i);
  219. GLELoadProc(glMultiTexCoord1iv_Impl, glMultiTexCoord1iv);
  220. GLELoadProc(glMultiTexCoord1s_Impl, glMultiTexCoord1s);
  221. GLELoadProc(glMultiTexCoord1sv_Impl, glMultiTexCoord1sv);
  222. GLELoadProc(glMultiTexCoord2d_Impl, glMultiTexCoord2d);
  223. GLELoadProc(glMultiTexCoord2dv_Impl, glMultiTexCoord2dv);
  224. GLELoadProc(glMultiTexCoord2f_Impl, glMultiTexCoord2f);
  225. GLELoadProc(glMultiTexCoord2fv_Impl, glMultiTexCoord2fv);
  226. GLELoadProc(glMultiTexCoord2i_Impl, glMultiTexCoord2i);
  227. GLELoadProc(glMultiTexCoord2iv_Impl, glMultiTexCoord2iv);
  228. GLELoadProc(glMultiTexCoord2s_Impl, glMultiTexCoord2s);
  229. GLELoadProc(glMultiTexCoord2sv_Impl, glMultiTexCoord2sv);
  230. GLELoadProc(glMultiTexCoord3d_Impl, glMultiTexCoord3d);
  231. GLELoadProc(glMultiTexCoord3dv_Impl, glMultiTexCoord3dv);
  232. GLELoadProc(glMultiTexCoord3f_Impl, glMultiTexCoord3f);
  233. GLELoadProc(glMultiTexCoord3fv_Impl, glMultiTexCoord3fv);
  234. GLELoadProc(glMultiTexCoord3i_Impl, glMultiTexCoord3i);
  235. GLELoadProc(glMultiTexCoord3iv_Impl, glMultiTexCoord3iv);
  236. GLELoadProc(glMultiTexCoord3s_Impl, glMultiTexCoord3s);
  237. GLELoadProc(glMultiTexCoord3sv_Impl, glMultiTexCoord3sv);
  238. GLELoadProc(glMultiTexCoord4d_Impl, glMultiTexCoord4d);
  239. GLELoadProc(glMultiTexCoord4dv_Impl, glMultiTexCoord4dv);
  240. GLELoadProc(glMultiTexCoord4f_Impl, glMultiTexCoord4f);
  241. GLELoadProc(glMultiTexCoord4fv_Impl, glMultiTexCoord4fv);
  242. GLELoadProc(glMultiTexCoord4i_Impl, glMultiTexCoord4i);
  243. GLELoadProc(glMultiTexCoord4iv_Impl, glMultiTexCoord4iv);
  244. GLELoadProc(glMultiTexCoord4s_Impl, glMultiTexCoord4s);
  245. GLELoadProc(glMultiTexCoord4sv_Impl, glMultiTexCoord4sv);
  246. GLELoadProc(glSampleCoverage_Impl, glSampleCoverage);
  247. // GL_VERSION_1_4
  248. GLELoadProc(glBlendColor_Impl, glBlendColor);
  249. GLELoadProc(glBlendEquation_Impl, glBlendEquation);
  250. GLELoadProc(glBlendFuncSeparate_Impl, glBlendFuncSeparate);
  251. GLELoadProc(glFogCoordPointer_Impl, glFogCoordPointer);
  252. GLELoadProc(glFogCoordd_Impl, glFogCoordd);
  253. GLELoadProc(glFogCoorddv_Impl, glFogCoorddv);
  254. GLELoadProc(glFogCoordf_Impl, glFogCoordf);
  255. GLELoadProc(glFogCoordfv_Impl, glFogCoordfv);
  256. GLELoadProc(glMultiDrawArrays_Impl, glMultiDrawArrays);
  257. GLELoadProc(glMultiDrawElements_Impl, glMultiDrawElements);
  258. GLELoadProc(glPointParameterf_Impl, glPointParameterf);
  259. GLELoadProc(glPointParameterfv_Impl, glPointParameterfv);
  260. GLELoadProc(glPointParameteri_Impl, glPointParameteri);
  261. GLELoadProc(glPointParameteriv_Impl, glPointParameteriv);
  262. GLELoadProc(glSecondaryColor3b_Impl, glSecondaryColor3b);
  263. GLELoadProc(glSecondaryColor3bv_Impl, glSecondaryColor3bv);
  264. GLELoadProc(glSecondaryColor3d_Impl, glSecondaryColor3d);
  265. GLELoadProc(glSecondaryColor3dv_Impl, glSecondaryColor3dv);
  266. GLELoadProc(glSecondaryColor3f_Impl, glSecondaryColor3f);
  267. GLELoadProc(glSecondaryColor3fv_Impl, glSecondaryColor3fv);
  268. GLELoadProc(glSecondaryColor3i_Impl, glSecondaryColor3i);
  269. GLELoadProc(glSecondaryColor3iv_Impl, glSecondaryColor3iv);
  270. GLELoadProc(glSecondaryColor3s_Impl, glSecondaryColor3s);
  271. GLELoadProc(glSecondaryColor3sv_Impl, glSecondaryColor3sv);
  272. GLELoadProc(glSecondaryColor3ub_Impl, glSecondaryColor3ub);
  273. GLELoadProc(glSecondaryColor3ubv_Impl, glSecondaryColor3ubv);
  274. GLELoadProc(glSecondaryColor3ui_Impl, glSecondaryColor3ui);
  275. GLELoadProc(glSecondaryColor3uiv_Impl, glSecondaryColor3uiv);
  276. GLELoadProc(glSecondaryColor3us_Impl, glSecondaryColor3us);
  277. GLELoadProc(glSecondaryColor3usv_Impl, glSecondaryColor3usv);
  278. GLELoadProc(glSecondaryColorPointer_Impl, glSecondaryColorPointer);
  279. GLELoadProc(glWindowPos2d_Impl, glWindowPos2d);
  280. GLELoadProc(glWindowPos2dv_Impl, glWindowPos2dv);
  281. GLELoadProc(glWindowPos2f_Impl, glWindowPos2f);
  282. GLELoadProc(glWindowPos2fv_Impl, glWindowPos2fv);
  283. GLELoadProc(glWindowPos2i_Impl, glWindowPos2i);
  284. GLELoadProc(glWindowPos2iv_Impl, glWindowPos2iv);
  285. GLELoadProc(glWindowPos2s_Impl, glWindowPos2s);
  286. GLELoadProc(glWindowPos2sv_Impl, glWindowPos2sv);
  287. GLELoadProc(glWindowPos3d_Impl, glWindowPos3d);
  288. GLELoadProc(glWindowPos3dv_Impl, glWindowPos3dv);
  289. GLELoadProc(glWindowPos3f_Impl, glWindowPos3f);
  290. GLELoadProc(glWindowPos3fv_Impl, glWindowPos3fv);
  291. GLELoadProc(glWindowPos3i_Impl, glWindowPos3i);
  292. GLELoadProc(glWindowPos3iv_Impl, glWindowPos3iv);
  293. GLELoadProc(glWindowPos3s_Impl, glWindowPos3s);
  294. GLELoadProc(glWindowPos3sv_Impl, glWindowPos3sv);
  295. // GL_VERSION_1_5
  296. GLELoadProc(glBeginQuery_Impl, glBeginQuery);
  297. GLELoadProc(glBindBuffer_Impl, glBindBuffer);
  298. GLELoadProc(glBufferData_Impl, glBufferData);
  299. GLELoadProc(glBufferSubData_Impl, glBufferSubData);
  300. GLELoadProc(glDeleteBuffers_Impl, glDeleteBuffers);
  301. GLELoadProc(glDeleteQueries_Impl, glDeleteQueries);
  302. GLELoadProc(glEndQuery_Impl, glEndQuery);
  303. GLELoadProc(glGenBuffers_Impl, glGenBuffers);
  304. GLELoadProc(glGenQueries_Impl, glGenQueries);
  305. GLELoadProc(glGetBufferParameteriv_Impl, glGetBufferParameteriv);
  306. GLELoadProc(glGetBufferPointerv_Impl, glGetBufferPointerv);
  307. GLELoadProc(glGetBufferSubData_Impl, glGetBufferSubData);
  308. GLELoadProc(glGetQueryObjectiv_Impl, glGetQueryObjectiv);
  309. GLELoadProc(glGetQueryObjectuiv_Impl, glGetQueryObjectuiv);
  310. GLELoadProc(glGetQueryiv_Impl, glGetQueryiv);
  311. GLELoadProc(glIsBuffer_Impl, glIsBuffer);
  312. GLELoadProc(glIsQuery_Impl, glIsQuery);
  313. GLELoadProc(glMapBuffer_Impl, glMapBuffer);
  314. GLELoadProc(glUnmapBuffer_Impl, glUnmapBuffer);
  315. // GL_VERSION_2_0
  316. GLELoadProc(glAttachShader_Impl, glAttachShader);
  317. GLELoadProc(glBindAttribLocation_Impl, glBindAttribLocation);
  318. GLELoadProc(glBlendEquationSeparate_Impl, glBlendEquationSeparate);
  319. GLELoadProc(glCompileShader_Impl, glCompileShader);
  320. GLELoadProc(glCreateProgram_Impl, glCreateProgram);
  321. GLELoadProc(glCreateShader_Impl, glCreateShader);
  322. GLELoadProc(glDeleteProgram_Impl, glDeleteProgram);
  323. GLELoadProc(glDeleteShader_Impl, glDeleteShader);
  324. GLELoadProc(glDetachShader_Impl, glDetachShader);
  325. GLELoadProc(glDisableVertexAttribArray_Impl, glDisableVertexAttribArray);
  326. GLELoadProc(glDrawBuffers_Impl, glDrawBuffers);
  327. GLELoadProc(glEnableVertexAttribArray_Impl, glEnableVertexAttribArray);
  328. GLELoadProc(glGetActiveAttrib_Impl, glGetActiveAttrib);
  329. GLELoadProc(glGetActiveUniform_Impl, glGetActiveUniform);
  330. GLELoadProc(glGetAttachedShaders_Impl, glGetAttachedShaders);
  331. GLELoadProc(glGetAttribLocation_Impl, glGetAttribLocation);
  332. GLELoadProc(glGetProgramInfoLog_Impl, glGetProgramInfoLog);
  333. GLELoadProc(glGetProgramiv_Impl, glGetProgramiv);
  334. GLELoadProc(glGetShaderInfoLog_Impl, glGetShaderInfoLog);
  335. GLELoadProc(glGetShaderSource_Impl, glGetShaderSource);
  336. GLELoadProc(glGetShaderiv_Impl, glGetShaderiv);
  337. GLELoadProc(glGetUniformLocation_Impl, glGetUniformLocation);
  338. GLELoadProc(glGetUniformfv_Impl, glGetUniformfv);
  339. GLELoadProc(glGetUniformiv_Impl, glGetUniformiv);
  340. GLELoadProc(glGetVertexAttribPointerv_Impl, glGetVertexAttribPointerv);
  341. GLELoadProc(glGetVertexAttribdv_Impl, glGetVertexAttribdv);
  342. GLELoadProc(glGetVertexAttribfv_Impl, glGetVertexAttribfv);
  343. GLELoadProc(glGetVertexAttribiv_Impl, glGetVertexAttribiv);
  344. GLELoadProc(glIsProgram_Impl, glIsProgram);
  345. GLELoadProc(glIsShader_Impl, glIsShader);
  346. GLELoadProc(glLinkProgram_Impl, glLinkProgram);
  347. GLELoadProc(glShaderSource_Impl, glShaderSource);
  348. GLELoadProc(glStencilFuncSeparate_Impl, glStencilFuncSeparate);
  349. GLELoadProc(glStencilMaskSeparate_Impl, glStencilMaskSeparate);
  350. GLELoadProc(glStencilOpSeparate_Impl, glStencilOpSeparate);
  351. GLELoadProc(glUniform1f_Impl, glUniform1f);
  352. GLELoadProc(glUniform1fv_Impl, glUniform1fv);
  353. GLELoadProc(glUniform1i_Impl, glUniform1i);
  354. GLELoadProc(glUniform1iv_Impl, glUniform1iv);
  355. GLELoadProc(glUniform2f_Impl, glUniform2f);
  356. GLELoadProc(glUniform2fv_Impl, glUniform2fv);
  357. GLELoadProc(glUniform2i_Impl, glUniform2i);
  358. GLELoadProc(glUniform2iv_Impl, glUniform2iv);
  359. GLELoadProc(glUniform3f_Impl, glUniform3f);
  360. GLELoadProc(glUniform3fv_Impl, glUniform3fv);
  361. GLELoadProc(glUniform3i_Impl, glUniform3i);
  362. GLELoadProc(glUniform3iv_Impl, glUniform3iv);
  363. GLELoadProc(glUniform4f_Impl, glUniform4f);
  364. GLELoadProc(glUniform4fv_Impl, glUniform4fv);
  365. GLELoadProc(glUniform4i_Impl, glUniform4i);
  366. GLELoadProc(glUniform4iv_Impl, glUniform4iv);
  367. GLELoadProc(glUniformMatrix2fv_Impl, glUniformMatrix2fv);
  368. GLELoadProc(glUniformMatrix3fv_Impl, glUniformMatrix3fv);
  369. GLELoadProc(glUniformMatrix4fv_Impl, glUniformMatrix4fv);
  370. GLELoadProc(glUseProgram_Impl, glUseProgram);
  371. GLELoadProc(glValidateProgram_Impl, glValidateProgram);
  372. GLELoadProc(glVertexAttrib1d_Impl, glVertexAttrib1d);
  373. GLELoadProc(glVertexAttrib1dv_Impl, glVertexAttrib1dv);
  374. GLELoadProc(glVertexAttrib1f_Impl, glVertexAttrib1f);
  375. GLELoadProc(glVertexAttrib1fv_Impl, glVertexAttrib1fv);
  376. GLELoadProc(glVertexAttrib1s_Impl, glVertexAttrib1s);
  377. GLELoadProc(glVertexAttrib1sv_Impl, glVertexAttrib1sv);
  378. GLELoadProc(glVertexAttrib2d_Impl, glVertexAttrib2d);
  379. GLELoadProc(glVertexAttrib2dv_Impl, glVertexAttrib2dv);
  380. GLELoadProc(glVertexAttrib2f_Impl, glVertexAttrib2f);
  381. GLELoadProc(glVertexAttrib2fv_Impl, glVertexAttrib2fv);
  382. GLELoadProc(glVertexAttrib2s_Impl, glVertexAttrib2s);
  383. GLELoadProc(glVertexAttrib2sv_Impl, glVertexAttrib2sv);
  384. GLELoadProc(glVertexAttrib3d_Impl, glVertexAttrib3d);
  385. GLELoadProc(glVertexAttrib3dv_Impl, glVertexAttrib3dv);
  386. GLELoadProc(glVertexAttrib3f_Impl, glVertexAttrib3f);
  387. GLELoadProc(glVertexAttrib3fv_Impl, glVertexAttrib3fv);
  388. GLELoadProc(glVertexAttrib3s_Impl, glVertexAttrib3s);
  389. GLELoadProc(glVertexAttrib3sv_Impl, glVertexAttrib3sv);
  390. GLELoadProc(glVertexAttrib4Nbv_Impl, glVertexAttrib4Nbv);
  391. GLELoadProc(glVertexAttrib4Niv_Impl, glVertexAttrib4Niv);
  392. GLELoadProc(glVertexAttrib4Nsv_Impl, glVertexAttrib4Nsv);
  393. GLELoadProc(glVertexAttrib4Nub_Impl, glVertexAttrib4Nub);
  394. GLELoadProc(glVertexAttrib4Nubv_Impl, glVertexAttrib4Nubv);
  395. GLELoadProc(glVertexAttrib4Nuiv_Impl, glVertexAttrib4Nuiv);
  396. GLELoadProc(glVertexAttrib4Nusv_Impl, glVertexAttrib4Nusv);
  397. GLELoadProc(glVertexAttrib4bv_Impl, glVertexAttrib4bv);
  398. GLELoadProc(glVertexAttrib4d_Impl, glVertexAttrib4d);
  399. GLELoadProc(glVertexAttrib4dv_Impl, glVertexAttrib4dv);
  400. GLELoadProc(glVertexAttrib4f_Impl, glVertexAttrib4f);
  401. GLELoadProc(glVertexAttrib4fv_Impl, glVertexAttrib4fv);
  402. GLELoadProc(glVertexAttrib4iv_Impl, glVertexAttrib4iv);
  403. GLELoadProc(glVertexAttrib4s_Impl, glVertexAttrib4s);
  404. GLELoadProc(glVertexAttrib4sv_Impl, glVertexAttrib4sv);
  405. GLELoadProc(glVertexAttrib4ubv_Impl, glVertexAttrib4ubv);
  406. GLELoadProc(glVertexAttrib4uiv_Impl, glVertexAttrib4uiv);
  407. GLELoadProc(glVertexAttrib4usv_Impl, glVertexAttrib4usv);
  408. GLELoadProc(glVertexAttribPointer_Impl, glVertexAttribPointer);
  409. // GL_VERSION_2_1
  410. GLELoadProc(glUniformMatrix2x3fv_Impl, glUniformMatrix2x3fv);
  411. GLELoadProc(glUniformMatrix2x4fv_Impl, glUniformMatrix2x4fv);
  412. GLELoadProc(glUniformMatrix3x2fv_Impl, glUniformMatrix3x2fv);
  413. GLELoadProc(glUniformMatrix3x4fv_Impl, glUniformMatrix3x4fv);
  414. GLELoadProc(glUniformMatrix4x2fv_Impl, glUniformMatrix4x2fv);
  415. GLELoadProc(glUniformMatrix4x3fv_Impl, glUniformMatrix4x3fv);
  416. // GL_VERSION_3_0
  417. GLELoadProc(glBeginConditionalRender_Impl, glBeginConditionalRender);
  418. GLELoadProc(glBeginTransformFeedback_Impl, glBeginTransformFeedback);
  419. GLELoadProc(glBindFragDataLocation_Impl, glBindFragDataLocation);
  420. GLELoadProc(glClampColor_Impl, glClampColor);
  421. GLELoadProc(glClearBufferfi_Impl, glClearBufferfi);
  422. GLELoadProc(glClearBufferfv_Impl, glClearBufferfv);
  423. GLELoadProc(glClearBufferiv_Impl, glClearBufferiv);
  424. GLELoadProc(glClearBufferuiv_Impl, glClearBufferuiv);
  425. GLELoadProc(glColorMaski_Impl, glColorMaski);
  426. GLELoadProc(glDisablei_Impl, glDisablei);
  427. GLELoadProc(glEnablei_Impl, glEnablei);
  428. GLELoadProc(glEndConditionalRender_Impl, glEndConditionalRender);
  429. GLELoadProc(glEndTransformFeedback_Impl, glEndTransformFeedback);
  430. GLELoadProc(glBindBufferRange_Impl, glBindBufferRange);
  431. GLELoadProc(glBindBufferBase_Impl, glBindBufferBase);
  432. GLELoadProc(glGetBooleani_v_Impl, glGetBooleani_v);
  433. GLELoadProc(glGetIntegeri_v_Impl, glGetIntegeri_v);
  434. GLELoadProc(glGetFragDataLocation_Impl, glGetFragDataLocation);
  435. GLELoadProc(glGetStringi_Impl, glGetStringi);
  436. GLELoadProc(glGetTexParameterIiv_Impl, glGetTexParameterIiv);
  437. GLELoadProc(glGetTexParameterIuiv_Impl, glGetTexParameterIuiv);
  438. GLELoadProc(glGetTransformFeedbackVarying_Impl, glGetTransformFeedbackVarying);
  439. GLELoadProc(glGetUniformuiv_Impl, glGetUniformuiv);
  440. GLELoadProc(glGetVertexAttribIiv_Impl, glGetVertexAttribIiv);
  441. GLELoadProc(glGetVertexAttribIuiv_Impl, glGetVertexAttribIuiv);
  442. GLELoadProc(glIsEnabledi_Impl, glIsEnabledi);
  443. GLELoadProc(glTexParameterIiv_Impl, glTexParameterIiv);
  444. GLELoadProc(glTexParameterIuiv_Impl, glTexParameterIuiv);
  445. GLELoadProc(glTransformFeedbackVaryings_Impl, glTransformFeedbackVaryings);
  446. GLELoadProc(glUniform1ui_Impl, glUniform1ui);
  447. GLELoadProc(glUniform1uiv_Impl, glUniform1uiv);
  448. GLELoadProc(glUniform2ui_Impl, glUniform2ui);
  449. GLELoadProc(glUniform2uiv_Impl, glUniform2uiv);
  450. GLELoadProc(glUniform3ui_Impl, glUniform3ui);
  451. GLELoadProc(glUniform3uiv_Impl, glUniform3uiv);
  452. GLELoadProc(glUniform4ui_Impl, glUniform4ui);
  453. GLELoadProc(glUniform4uiv_Impl, glUniform4uiv);
  454. GLELoadProc(glVertexAttribI1i_Impl, glVertexAttribI1i);
  455. GLELoadProc(glVertexAttribI1iv_Impl, glVertexAttribI1iv);
  456. GLELoadProc(glVertexAttribI1ui_Impl, glVertexAttribI1ui);
  457. GLELoadProc(glVertexAttribI1uiv_Impl, glVertexAttribI1uiv);
  458. GLELoadProc(glVertexAttribI2i_Impl, glVertexAttribI2i);
  459. GLELoadProc(glVertexAttribI2iv_Impl, glVertexAttribI2iv);
  460. GLELoadProc(glVertexAttribI2ui_Impl, glVertexAttribI2ui);
  461. GLELoadProc(glVertexAttribI2uiv_Impl, glVertexAttribI2uiv);
  462. GLELoadProc(glVertexAttribI3i_Impl, glVertexAttribI3i);
  463. GLELoadProc(glVertexAttribI3iv_Impl, glVertexAttribI3iv);
  464. GLELoadProc(glVertexAttribI3ui_Impl, glVertexAttribI3ui);
  465. GLELoadProc(glVertexAttribI3uiv_Impl, glVertexAttribI3uiv);
  466. GLELoadProc(glVertexAttribI4bv_Impl, glVertexAttribI4bv);
  467. GLELoadProc(glVertexAttribI4i_Impl, glVertexAttribI4i);
  468. GLELoadProc(glVertexAttribI4iv_Impl, glVertexAttribI4iv);
  469. GLELoadProc(glVertexAttribI4sv_Impl, glVertexAttribI4sv);
  470. GLELoadProc(glVertexAttribI4ubv_Impl, glVertexAttribI4ubv);
  471. GLELoadProc(glVertexAttribI4ui_Impl, glVertexAttribI4ui);
  472. GLELoadProc(glVertexAttribI4uiv_Impl, glVertexAttribI4uiv);
  473. GLELoadProc(glVertexAttribI4usv_Impl, glVertexAttribI4usv);
  474. GLELoadProc(glVertexAttribIPointer_Impl, glVertexAttribIPointer);
  475. // GL_VERSION_3_1
  476. GLELoadProc(glDrawArraysInstanced_Impl, glDrawArraysInstanced);
  477. GLELoadProc(glDrawElementsInstanced_Impl, glDrawElementsInstanced);
  478. GLELoadProc(glPrimitiveRestartIndex_Impl, glPrimitiveRestartIndex);
  479. GLELoadProc(glTexBuffer_Impl, glTexBuffer);
  480. // GL_VERSION_3_2
  481. GLELoadProc(glFramebufferTexture_Impl, glFramebufferTexture);
  482. GLELoadProc(glGetBufferParameteri64v_Impl, glGetBufferParameteri64v);
  483. GLELoadProc(glGetInteger64i_v_Impl, glGetInteger64i_v);
  484. // GL_VERSION_3_3
  485. GLELoadProc(glVertexAttribDivisor_Impl, glVertexAttribDivisor);
  486. // GL_VERSION_4_0
  487. GLELoadProc(glBlendEquationSeparatei_Impl, glBlendEquationSeparatei);
  488. GLELoadProc(glBlendEquationi_Impl, glBlendEquationi);
  489. GLELoadProc(glBlendFuncSeparatei_Impl, glBlendFuncSeparatei);
  490. GLELoadProc(glBlendFunci_Impl, glBlendFunci);
  491. GLELoadProc(glMinSampleShading_Impl, glMinSampleShading);
  492. // GL_AMD_debug_output
  493. GLELoadProc(glDebugMessageCallbackAMD_Impl, glDebugMessageCallbackAMD);
  494. GLELoadProc(glDebugMessageEnableAMD_Impl, glDebugMessageEnableAMD);
  495. GLELoadProc(glDebugMessageInsertAMD_Impl, glDebugMessageInsertAMD);
  496. GLELoadProc(glGetDebugMessageLogAMD_Impl, glGetDebugMessageLogAMD);
  497. #if defined(GLE_CGL_ENABLED)
  498. // GL_APPLE_element_array
  499. GLELoadProc(glDrawElementArrayAPPLE_Impl, glDrawElementArrayAPPLE);
  500. GLELoadProc(glDrawRangeElementArrayAPPLE_Impl, glDrawRangeElementArrayAPPLE);
  501. GLELoadProc(glElementPointerAPPLE_Impl, glElementPointerAPPLE);
  502. GLELoadProc(glMultiDrawElementArrayAPPLE_Impl, glMultiDrawElementArrayAPPLE);
  503. GLELoadProc(glMultiDrawRangeElementArrayAPPLE_Impl, glMultiDrawRangeElementArrayAPPLE);
  504. // GL_APPLE_fence
  505. GLELoadProc(glDeleteFencesAPPLE_Impl, glDeleteFencesAPPLE);
  506. GLELoadProc(glFinishFenceAPPLE_Impl, glFinishFenceAPPLE);
  507. GLELoadProc(glFinishObjectAPPLE_Impl, glFinishObjectAPPLE);
  508. GLELoadProc(glGenFencesAPPLE_Impl, glGenFencesAPPLE);
  509. GLELoadProc(glIsFenceAPPLE_Impl, glIsFenceAPPLE);
  510. GLELoadProc(glSetFenceAPPLE_Impl, glSetFenceAPPLE);
  511. GLELoadProc(glTestFenceAPPLE_Impl, glTestFenceAPPLE);
  512. GLELoadProc(glTestObjectAPPLE_Impl, glTestObjectAPPLE);
  513. // GL_APPLE_flush_buffer_range
  514. GLELoadProc(glBufferParameteriAPPLE_Impl, glMultiDrawRangeElementArrayAPPLE);
  515. GLELoadProc(glFlushMappedBufferRangeAPPLE_Impl, glFlushMappedBufferRangeAPPLE);
  516. // GL_APPLE_object_purgeable
  517. GLELoadProc(glGetObjectParameterivAPPLE_Impl, glGetObjectParameterivAPPLE);
  518. GLELoadProc(glObjectPurgeableAPPLE_Impl, glObjectPurgeableAPPLE);
  519. GLELoadProc(glObjectUnpurgeableAPPLE_Impl, glObjectUnpurgeableAPPLE);
  520. // GL_APPLE_texture_range
  521. GLELoadProc(glGetTexParameterPointervAPPLE_Impl, glGetTexParameterPointervAPPLE);
  522. GLELoadProc(glTextureRangeAPPLE_Impl, glTextureRangeAPPLE);
  523. // GL_APPLE_vertex_array_object
  524. GLELoadProc(glBindVertexArrayAPPLE_Impl, glBindVertexArrayAPPLE);
  525. GLELoadProc(glDeleteVertexArraysAPPLE_Impl, glDeleteVertexArraysAPPLE);
  526. GLELoadProc(glGenVertexArraysAPPLE_Impl, glGenVertexArraysAPPLE);
  527. GLELoadProc(glIsVertexArrayAPPLE_Impl, glIsVertexArrayAPPLE);
  528. // GL_APPLE_vertex_array_range
  529. GLELoadProc(glFlushVertexArrayRangeAPPLE_Impl, glFlushVertexArrayRangeAPPLE);
  530. GLELoadProc(glVertexArrayParameteriAPPLE_Impl, glVertexArrayParameteriAPPLE);
  531. GLELoadProc(glVertexArrayRangeAPPLE_Impl, glVertexArrayRangeAPPLE);
  532. // GL_APPLE_vertex_program_evaluators
  533. GLELoadProc(glDisableVertexAttribAPPLE_Impl, glDisableVertexAttribAPPLE);
  534. GLELoadProc(glEnableVertexAttribAPPLE_Impl, glEnableVertexAttribAPPLE);
  535. GLELoadProc(glIsVertexAttribEnabledAPPLE_Impl, glIsVertexAttribEnabledAPPLE);
  536. GLELoadProc(glMapVertexAttrib1dAPPLE_Impl, glMapVertexAttrib1dAPPLE);
  537. GLELoadProc(glMapVertexAttrib1fAPPLE_Impl, glMapVertexAttrib1fAPPLE);
  538. GLELoadProc(glMapVertexAttrib2dAPPLE_Impl, glMapVertexAttrib2dAPPLE);
  539. GLELoadProc(glMapVertexAttrib2fAPPLE_Impl, glMapVertexAttrib2fAPPLE);
  540. #endif // GLE_CGL_ENABLED
  541. // GL_ARB_copy_buffer
  542. GLELoadProc(glCopyBufferSubData_Impl, glCopyBufferSubData);
  543. // GL_ARB_debug_output
  544. GLELoadProc(glDebugMessageCallbackARB_Impl, glDebugMessageCallbackARB);
  545. GLELoadProc(glDebugMessageControlARB_Impl, glDebugMessageControlARB);
  546. GLELoadProc(glDebugMessageInsertARB_Impl, glDebugMessageInsertARB);
  547. GLELoadProc(glGetDebugMessageLogARB_Impl, glGetDebugMessageLogARB);
  548. // GL_ARB_ES2_compatibility
  549. GLELoadProc(glClearDepthf_Impl, glClearDepthf);
  550. GLELoadProc(glDepthRangef_Impl, glDepthRangef);
  551. GLELoadProc(glGetShaderPrecisionFormat_Impl, glGetShaderPrecisionFormat);
  552. GLELoadProc(glReleaseShaderCompiler_Impl, glReleaseShaderCompiler);
  553. GLELoadProc(glShaderBinary_Impl, glShaderBinary);
  554. // GL_ARB_framebuffer_object
  555. GLELoadProc(glBindFramebuffer_Impl, glBindFramebuffer);
  556. GLELoadProc(glBindRenderbuffer_Impl, glBindRenderbuffer);
  557. GLELoadProc(glBlitFramebuffer_Impl, glBlitFramebuffer);
  558. GLELoadProc(glCheckFramebufferStatus_Impl, glCheckFramebufferStatus);
  559. GLELoadProc(glDeleteFramebuffers_Impl, glDeleteFramebuffers);
  560. GLELoadProc(glDeleteRenderbuffers_Impl, glDeleteRenderbuffers);
  561. GLELoadProc(glFramebufferRenderbuffer_Impl, glFramebufferRenderbuffer);
  562. GLELoadProc(glFramebufferTexture1D_Impl, glFramebufferTexture1D);
  563. GLELoadProc(glFramebufferTexture2D_Impl, glFramebufferTexture2D);
  564. GLELoadProc(glFramebufferTexture3D_Impl, glFramebufferTexture3D);
  565. GLELoadProc(glFramebufferTextureLayer_Impl, glFramebufferTextureLayer);
  566. GLELoadProc(glGenFramebuffers_Impl, glGenFramebuffers);
  567. GLELoadProc(glGenRenderbuffers_Impl, glGenRenderbuffers);
  568. GLELoadProc(glGenerateMipmap_Impl, glGenerateMipmap);
  569. GLELoadProc(glGetFramebufferAttachmentParameteriv_Impl, glGetFramebufferAttachmentParameteriv);
  570. GLELoadProc(glGetRenderbufferParameteriv_Impl, glGetRenderbufferParameteriv);
  571. GLELoadProc(glIsFramebuffer_Impl, glIsFramebuffer);
  572. GLELoadProc(glIsRenderbuffer_Impl, glIsRenderbuffer);
  573. GLELoadProc(glRenderbufferStorage_Impl, glRenderbufferStorage);
  574. GLELoadProc(glRenderbufferStorageMultisample_Impl, glRenderbufferStorageMultisample);
  575. if(!glBindFramebuffer_Impl) // This will rarely if ever be the case in practice with modern computers and drivers.
  576. {
  577. // See if we can map GL_EXT_framebuffer_object to GL_ARB_framebuffer_object. The former is basically a subset of the latter, but we use only that subset.
  578. GLELoadProc(glBindFramebuffer_Impl, glBindFramebufferEXT);
  579. GLELoadProc(glBindRenderbuffer_Impl, glBindRenderbufferEXT);
  580. //GLELoadProc(glBlitFramebuffer_Impl, glBlitFramebufferEXT (nonexistent));
  581. GLELoadProc(glCheckFramebufferStatus_Impl, glCheckFramebufferStatusEXT);
  582. GLELoadProc(glDeleteFramebuffers_Impl, glDeleteFramebuffersEXT);
  583. GLELoadProc(glDeleteRenderbuffers_Impl, glDeleteRenderbuffersEXT);
  584. GLELoadProc(glFramebufferRenderbuffer_Impl, glFramebufferRenderbufferEXT);
  585. GLELoadProc(glFramebufferTexture1D_Impl, glFramebufferTexture1DEXT);
  586. GLELoadProc(glFramebufferTexture2D_Impl, glFramebufferTexture2DEXT);
  587. GLELoadProc(glFramebufferTexture3D_Impl, glFramebufferTexture3DEXT);
  588. //GLELoadProc(glFramebufferTextureLayer_Impl, glFramebufferTextureLayerEXT (nonexistent));
  589. GLELoadProc(glGenFramebuffers_Impl, glGenFramebuffersEXT);
  590. GLELoadProc(glGenRenderbuffers_Impl, glGenRenderbuffersEXT);
  591. GLELoadProc(glGenerateMipmap_Impl, glGenerateMipmapEXT);
  592. GLELoadProc(glGetFramebufferAttachmentParameteriv_Impl, glGetFramebufferAttachmentParameterivEXT);
  593. GLELoadProc(glGetRenderbufferParameteriv_Impl, glGetRenderbufferParameterivEXT);
  594. GLELoadProc(glIsFramebuffer_Impl, glIsFramebufferEXT);
  595. GLELoadProc(glIsRenderbuffer_Impl, glIsRenderbufferEXT);
  596. GLELoadProc(glRenderbufferStorage_Impl, glRenderbufferStorageEXT);
  597. //GLELoadProc(glRenderbufferStorageMultisample_Impl, glRenderbufferStorageMultisampleEXT (nonexistent));
  598. }
  599. // GL_ARB_texture_multisample
  600. GLELoadProc(glGetMultisamplefv_Impl, glGetMultisamplefv);
  601. GLELoadProc(glSampleMaski_Impl, glSampleMaski);
  602. GLELoadProc(glTexImage2DMultisample_Impl, glTexImage2DMultisample);
  603. GLELoadProc(glTexImage3DMultisample_Impl, glTexImage3DMultisample);
  604. // GL_ARB_texture_storage
  605. GLELoadProc(glTexStorage1D_Impl, glTexStorage1D);
  606. GLELoadProc(glTexStorage2D_Impl, glTexStorage2D);
  607. GLELoadProc(glTexStorage3D_Impl, glTexStorage3D);
  608. GLELoadProc(glTextureStorage1DEXT_Impl, glTextureStorage1DEXT);
  609. GLELoadProc(glTextureStorage2DEXT_Impl, glTextureStorage2DEXT);
  610. GLELoadProc(glTextureStorage3DEXT_Impl, glTextureStorage3DEXT);
  611. // GL_ARB_texture_storage_multisample
  612. GLELoadProc(glTexStorage2DMultisample_Impl, glTexStorage2DMultisample);
  613. GLELoadProc(glTexStorage3DMultisample_Impl, glTexStorage3DMultisample);
  614. GLELoadProc(glTextureStorage2DMultisampleEXT_Impl, glTextureStorage2DMultisampleEXT);
  615. GLELoadProc(glTextureStorage3DMultisampleEXT_Impl, glTextureStorage3DMultisampleEXT);
  616. // GL_ARB_timer_query
  617. GLELoadProc(glGetQueryObjecti64v_Impl, glGetQueryObjecti64v);
  618. GLELoadProc(glGetQueryObjectui64v_Impl, glGetQueryObjectui64v);
  619. GLELoadProc(glQueryCounter_Impl, glQueryCounter);
  620. // GL_ARB_vertex_array_object
  621. GLELoadProc(glBindVertexArray_Impl, glBindVertexArray);
  622. GLELoadProc(glDeleteVertexArrays_Impl, glDeleteVertexArrays);
  623. GLELoadProc(glGenVertexArrays_Impl, glGenVertexArrays);
  624. GLELoadProc(glIsVertexArray_Impl, glIsVertexArray);
  625. #if defined(GLE_CGL_ENABLED) // Apple OpenGL...
  626. if(WholeVersion < 302) // It turns out that Apple OpenGL versions prior to 3.2 have glBindVertexArray, etc. but they silently fail by default. So always use the APPLE version.
  627. {
  628. glBindVertexArray_Impl = glBindVertexArrayAPPLE_Impl;
  629. glDeleteVertexArrays_Impl = glDeleteVertexArraysAPPLE_Impl;
  630. glGenVertexArrays_Impl = (OVRTypeof(glGenVertexArrays_Impl)) glGenVertexArraysAPPLE_Impl; // There is a const cast of the arrays argument here due to a slight difference in the Apple behavior. For our purposes it should be OK.
  631. glIsVertexArray_Impl = glIsVertexArrayAPPLE_Impl;
  632. if(glBindVertexArray_Impl)
  633. gle_ARB_vertex_array_object = true; // We are routing the APPLE version through our version, with the assumption that we use the ARB version the same as we would use the APPLE version.
  634. }
  635. #endif
  636. // GL_EXT_draw_buffers2
  637. GLELoadProc(glColorMaskIndexedEXT_Impl, glColorMaskIndexedEXT);
  638. GLELoadProc(glDisableIndexedEXT_Impl, glDisableIndexedEXT);
  639. GLELoadProc(glEnableIndexedEXT_Impl, glEnableIndexedEXT);
  640. GLELoadProc(glGetBooleanIndexedvEXT_Impl, glGetBooleanIndexedvEXT);
  641. GLELoadProc(glGetIntegerIndexedvEXT_Impl, glGetIntegerIndexedvEXT);
  642. GLELoadProc(glIsEnabledIndexedEXT_Impl, glIsEnabledIndexedEXT);
  643. // GL_KHR_debug
  644. GLELoadProc(glDebugMessageCallback_Impl, glDebugMessageCallback);
  645. GLELoadProc(glDebugMessageControl_Impl, glDebugMessageControl);
  646. GLELoadProc(glDebugMessageInsert_Impl, glDebugMessageInsert);
  647. GLELoadProc(glGetDebugMessageLog_Impl, glGetDebugMessageLog);
  648. GLELoadProc(glGetObjectLabel_Impl, glGetObjectLabel);
  649. GLELoadProc(glGetObjectPtrLabel_Impl, glGetObjectPtrLabel);
  650. GLELoadProc(glObjectLabel_Impl, glObjectLabel);
  651. GLELoadProc(glObjectPtrLabel_Impl, glObjectPtrLabel);
  652. GLELoadProc(glPopDebugGroup_Impl, glPopDebugGroup);
  653. GLELoadProc(glPushDebugGroup_Impl, glPushDebugGroup);
  654. // GL_WIN_swap_hint
  655. GLELoadProc(glAddSwapHintRectWIN_Impl, glAddSwapHintRectWIN);
  656. }
  657. OVR_DISABLE_MSVC_WARNING(4510 4512 4610) // default constructor could not be generated,
  658. struct ValueStringPair
  659. {
  660. bool& IsPresent;
  661. const char* ExtensionName;
  662. };
  663. // Helper function for InitExtensionSupport.
  664. static void CheckExtensions(ValueStringPair* pValueStringPairArray, size_t arrayCount, const char* extensions)
  665. {
  666. // We search the extesion list string for each of the individual extensions we are interested in.
  667. // We do this by walking over the string and comparing each entry in turn to our array of entries of interest.
  668. // Example string (with patholigical extra spaces): " ext1 ext2 ext3 "
  669. char extension[64];
  670. const char* p = extensions; // p points to the beginning of the current word
  671. const char* pEnd; // pEnd points to one-past the last character of the current word. It is where the trailing '\0' of the string would be.
  672. while(*p)
  673. {
  674. while(*p == ' ') // Find the next word begin.
  675. ++p;
  676. pEnd = p;
  677. while((*pEnd != '\0') && (*pEnd != ' ')) // Find the next word end.
  678. ++pEnd;
  679. if(((pEnd - p) > 0) && ((size_t)(pEnd - p) < OVR_ARRAY_COUNT(extension)))
  680. {
  681. memcpy(extension, p, pEnd - p); // To consider: Revise this code to directly read from p/pEnd instead of doing a memcpy.
  682. extension[pEnd - p] = '\0';
  683. for(size_t i = 0; i < arrayCount; i++) // For each extension we are interested in...
  684. {
  685. ValueStringPair& vsp = pValueStringPairArray[i];
  686. if(strcmp(extension, vsp.ExtensionName) == 0) // case-sensitive compare
  687. pValueStringPairArray[i].IsPresent = true;
  688. }
  689. }
  690. p = pEnd;
  691. }
  692. }
  693. void OVR::GLEContext::InitExtensionSupport()
  694. {
  695. // It may be better in the long run to use a member STL map<const char*, bool>.
  696. // It would make this loading code cleaner, though it would make lookups slower.
  697. ValueStringPair vspArray[] =
  698. {
  699. { gle_AMD_debug_output, "GL_AMD_debug_output" },
  700. #if defined(GLE_CGL_ENABLED)
  701. { gle_APPLE_aux_depth_stencil, "GL_APPLE_aux_depth_stencil" },
  702. { gle_APPLE_client_storage, "GL_APPLE_client_storage" },
  703. { gle_APPLE_element_array, "GL_APPLE_element_array" },
  704. { gle_APPLE_fence, "GL_APPLE_fence" },
  705. { gle_APPLE_float_pixels, "GL_APPLE_float_pixels" },
  706. { gle_APPLE_flush_buffer_range, "GL_APPLE_flush_buffer_range" },
  707. { gle_APPLE_object_purgeable, "GL_APPLE_object_purgeable" },
  708. { gle_APPLE_pixel_buffer, "GL_APPLE_pixel_buffer" },
  709. { gle_APPLE_rgb_422, "GL_APPLE_rgb_422" },
  710. { gle_APPLE_row_bytes, "GL_APPLE_row_bytes" },
  711. { gle_APPLE_specular_vector, "GL_APPLE_specular_vector" },
  712. { gle_APPLE_texture_range, "GL_APPLE_texture_range" },
  713. { gle_APPLE_transform_hint, "GL_APPLE_transform_hint" },
  714. { gle_APPLE_vertex_array_object, "GL_APPLE_vertex_array_object" },
  715. { gle_APPLE_vertex_array_range, "GL_APPLE_vertex_array_range" },
  716. { gle_APPLE_vertex_program_evaluators, "GL_APPLE_vertex_program_evaluators" },
  717. { gle_APPLE_ycbcr_422, "GL_APPLE_ycbcr_422" },
  718. #endif
  719. { gle_ARB_copy_buffer, "GL_ARB_copy_buffer" },
  720. { gle_ARB_debug_output, "GL_ARB_debug_output" },
  721. { gle_ARB_depth_buffer_float, "GL_ARB_depth_buffer_float" },
  722. { gle_ARB_ES2_compatibility, "GL_ARB_ES2_compatibility" },
  723. { gle_ARB_framebuffer_object, "GL_ARB_framebuffer_object" },
  724. { gle_ARB_framebuffer_object, "GL_EXT_framebuffer_object" }, // We map glBindFramebuffer, etc. to glBindFramebufferEXT, etc. if necessary
  725. { gle_ARB_framebuffer_sRGB, "GL_ARB_framebuffer_sRGB" },
  726. { gle_ARB_texture_multisample, "GL_ARB_texture_multisample" },
  727. { gle_ARB_texture_non_power_of_two, "GL_ARB_texture_non_power_of_two" },
  728. { gle_ARB_texture_rectangle, "GL_ARB_texture_rectangle" },
  729. { gle_ARB_texture_rectangle, "GL_EXT_texture_rectangle" }, // We also check for GL_EXT_texture_rectangle and GL_NV_texture_rectangle.
  730. { gle_ARB_texture_rectangle, "GL_NV_texture_rectangle" },
  731. { gle_ARB_texture_storage, "GL_ARB_texture_storage" },
  732. { gle_ARB_texture_storage_multisample, "GL_ARB_texture_storage_multisample" },
  733. { gle_ARB_timer_query, "GL_ARB_timer_query" },
  734. { gle_ARB_vertex_array_object, "GL_ARB_vertex_array_object" },
  735. { gle_EXT_draw_buffers2, "GL_EXT_draw_buffers2" },
  736. { gle_EXT_texture_compression_s3tc, "GL_EXT_texture_compression_s3tc" },
  737. { gle_EXT_texture_filter_anisotropic, "GL_EXT_texture_filter_anisotropic" },
  738. { gle_EXT_texture_sRGB, "GL_EXT_texture_sRGB" },
  739. { gle_KHR_debug, "GL_KHR_debug" },
  740. { gle_WIN_swap_hint, "GL_WIN_swap_hint" }
  741. // Windows WGL, Unix GLX, and Apple CGL extensions are handled below, as they require different calls from glGetString(GL_EXTENSIONS).
  742. };
  743. // We cannot use glGetString(GL_EXTENSIONS) when an OpenGL core profile is active,
  744. // as it's deprecated in favor of using OpenGL 3+ glGetStringi.
  745. const char* extensions = (MajorVersion < 3) ? (const char*)glGetString(GL_EXTENSIONS) : "";
  746. if (extensions && *extensions) // If we have a space-delimited extension string to search for individual extensions...
  747. {
  748. OVR_DEBUG_LOG(("GL_EXTENSIONS: %s", (const char*)extensions));
  749. CheckExtensions(vspArray, OVR_ARRAY_COUNT(vspArray), extensions); // Call our shared helper function for this.
  750. }
  751. else
  752. {
  753. if(MajorVersion >= 3) // If glGetIntegerv(GL_NUM_EXTENSIONS, ...) is supported...
  754. {
  755. // In this case we need to match an array of individual extensions against an array of
  756. // externsions provided by glGetStringi. This is an O(n^2) operation, but at least we
  757. // are doing this only once on startup. There are a few tricks we can employ to speed
  758. // up the logic below, but they may not be worth much.
  759. GLint extensionCount = 0;
  760. glGetIntegerv(GL_NUM_EXTENSIONS, &extensionCount);
  761. GLenum err = glGetError();
  762. if(err == 0)
  763. {
  764. #ifdef OVR_BUILD_DEBUG
  765. OVR::StringBuffer extensionsStr;
  766. #endif
  767. for(GLint e = 0; e != extensionCount; ++e) // For each extension supported...
  768. {
  769. const char* extension = (const char*)glGetStringi(GL_EXTENSIONS, (GLuint)e);
  770. if(extension) // glGetStringi returns NULL upon error.
  771. {
  772. #ifdef OVR_BUILD_DEBUG
  773. extensionsStr.AppendFormat(" %s", extension);
  774. #endif
  775. for(size_t i = 0; i < OVR_ARRAY_COUNT(vspArray); i++) // For each extension we are interested in...
  776. {
  777. ValueStringPair& vsp = vspArray[i];
  778. if(strcmp(extension, vsp.ExtensionName) == 0) // case-sensitive compare
  779. vspArray[i].IsPresent = true;
  780. }
  781. }
  782. else
  783. break;
  784. }
  785. OVR_DEBUG_LOG(("GL_EXTENSIONS: %s", extensionsStr.ToCStr()));
  786. }
  787. }
  788. // Else we have a problem: no means to read the extensions was successful.
  789. }
  790. #if defined(GLE_CGL_ENABLED)
  791. // The following are built into Apple OpenGL 3.2+ (declared in <OpenGL/gl3.h>) and not identified as extensions.
  792. // On other platforms (e.g. Windows) these are identified as extensions and are detected above.
  793. if(WholeVersion >= 302)
  794. {
  795. gle_ARB_copy_buffer = true;
  796. gle_ARB_depth_buffer_float = true;
  797. gle_ARB_framebuffer_object = true;
  798. gle_ARB_framebuffer_sRGB = true;
  799. gle_ARB_texture_multisample = true;
  800. gle_ARB_texture_non_power_of_two = true;
  801. gle_ARB_texture_rectangle = true;
  802. gle_ARB_vertex_array_object = true;
  803. }
  804. #endif
  805. } // GLEContext::InitExtensionSupport()
  806. void OVR::GLEContext::InitPlatformVersion()
  807. {
  808. #if defined(GLE_GLX_ENABLED)
  809. const char* pGLXVersion = glXGetClientString(glXGetCurrentDisplay(), GLX_VERSION); // To do: Use a better mechanism to get the desired display.
  810. sscanf(pGLXVersion, "%d.%d", &PlatformMajorVersion, &PlatformMinorVersion);
  811. #elif defined(GLE_EGL_ENABLED)
  812. const char* pEGLVersion = eglQueryString(eglGetDisplay(EGL_DEFAULT_DISPLAY), EGL_VERSION);
  813. sscanf(pEGLVersion, "%d.%d", &PlatformMajorVersion, &PlatformMinorVersion);
  814. #else
  815. PlatformMajorVersion = 1;
  816. PlatformMinorVersion = 0;
  817. PlatformWholeVersion = 100;
  818. #endif
  819. }
  820. void OVR::GLEContext::InitPlatformExtensionLoad()
  821. {
  822. #if defined(GLE_WGL_ENABLED)
  823. // WGL
  824. // We don't load these as function pointers but rather statically link to them.
  825. // These need to be loaded via LoadLibrary instead of wglLoadLibrary.
  826. #if 0
  827. HINSTANCE hOpenGL = LoadLibraryW(L"Opengl32.dll");
  828. if(hOpenGL)
  829. {
  830. wglCopyContext_Impl = (OVRTypeof(wglCopyContext_Impl)) GetProcAddress(hOpenGL, "wglCopyContext");
  831. wglCreateContext_Impl = (OVRTypeof(wglCreateContext_Impl)) GetProcAddress(hOpenGL, "wglCreateContext");
  832. wglCreateLayerContext_Impl = (OVRTypeof(wglCreateLayerContext_Impl)) GetProcAddress(hOpenGL, "wglCreateLayerContext");
  833. wglDeleteContext_Impl = (OVRTypeof(wglDeleteContext_Impl)) GetProcAddress(hOpenGL, "wglDeleteContext");
  834. wglGetCurrentContext_Impl = (OVRTypeof(wglGetCurrentContext_Impl)) GetProcAddress(hOpenGL, "wglGetCurrentContext");
  835. wglGetCurrentDC_Impl = (OVRTypeof(wglGetCurrentDC_Impl)) GetProcAddress(hOpenGL, "wglGetCurrentDC");
  836. wglGetProcAddress_Impl = (OVRTypeof(wglGetProcAddress_Impl)) GetProcAddress(hOpenGL, "wglGetProcAddress");
  837. wglMakeCurrent_Impl = (OVRTypeof(wglMakeCurrent_Impl)) GetProcAddress(hOpenGL, "wglMakeCurrent");
  838. wglShareLists_Impl = (OVRTypeof(wglShareLists_Impl)) GetProcAddress(hOpenGL, "wglShareLists");
  839. wglUseFontBitmapsA_Impl = (OVRTypeof(wglUseFontBitmapsA_Impl)) GetProcAddress(hOpenGL, "wglUseFontBitmapsA");
  840. wglUseFontBitmapsW_Impl = (OVRTypeof(wglUseFontBitmapsW_Impl)) GetProcAddress(hOpenGL, "wglUseFontBitmapsW");
  841. wglUseFontOutlinesA_Impl = (OVRTypeof(wglUseFontOutlinesA_Impl)) GetProcAddress(hOpenGL, "wglUseFontOutlinesA");
  842. wglUseFontOutlinesW_Impl = (OVRTypeof(wglUseFontOutlinesW_Impl)) GetProcAddress(hOpenGL, "wglUseFontOutlinesW");
  843. wglDescribeLayerPlane_Impl = (OVRTypeof(wglDescribeLayerPlane_Impl)) GetProcAddress(hOpenGL, "wglDescribeLayerPlane");
  844. wglSetLayerPaletteEntries_Impl = (OVRTypeof(wglSetLayerPaletteEntries_Impl)) GetProcAddress(hOpenGL, "wglSetLayerPaletteEntries");
  845. wglGetLayerPaletteEntries_Impl = (OVRTypeof(wglGetLayerPaletteEntries_Impl)) GetProcAddress(hOpenGL, "wglGetLayerPaletteEntries");
  846. wglRealizeLayerPalette_Impl = (OVRTypeof(wglRealizeLayerPalette_Impl)) GetProcAddress(hOpenGL, "wglRealizeLayerPalette");
  847. wglSwapLayerBuffers_Impl = (OVRTypeof(wglSwapLayerBuffers_Impl)) GetProcAddress(hOpenGL, "wglSwapLayerBuffers");
  848. wglSwapMultipleBuffers_Impl = (OVRTypeof(wglSwapMultipleBuffers_Impl)) GetProcAddress(hOpenGL, "wglSwapMultipleBuffers");
  849. FreeLibrary(hOpenGL);
  850. }
  851. #endif
  852. // WGL_ARB_buffer_region
  853. GLELoadProc(wglCreateBufferRegionARB_Impl, wglCreateBufferRegionARB);
  854. GLELoadProc(wglDeleteBufferRegionARB_Impl, wglDeleteBufferRegionARB);
  855. GLELoadProc(wglSaveBufferRegionARB_Impl, wglSaveBufferRegionARB);
  856. GLELoadProc(wglRestoreBufferRegionARB_Impl, wglRestoreBufferRegionARB);
  857. // WGL_ARB_extensions_string
  858. GLELoadProc(wglGetExtensionsStringARB_Impl, wglGetExtensionsStringARB);
  859. // WGL_ARB_pixel_format
  860. GLELoadProc(wglGetPixelFormatAttribivARB_Impl, wglGetPixelFormatAttribivARB);
  861. GLELoadProc(wglGetPixelFormatAttribfvARB_Impl, wglGetPixelFormatAttribfvARB);
  862. GLELoadProc(wglChoosePixelFormatARB_Impl, wglChoosePixelFormatARB);
  863. // WGL_ARB_make_current_read
  864. GLELoadProc(wglMakeContextCurrentARB_Impl, wglMakeContextCurrentARB);
  865. GLELoadProc(wglGetCurrentReadDCARB_Impl, wglGetCurrentReadDCARB);
  866. // WGL_ARB_pbuffer
  867. GLELoadProc(wglCreatePbufferARB_Impl, wglCreatePbufferARB);
  868. GLELoadProc(wglGetPbufferDCARB_Impl, wglGetPbufferDCARB);
  869. GLELoadProc(wglReleasePbufferDCARB_Impl, wglReleasePbufferDCARB);
  870. GLELoadProc(wglDestroyPbufferARB_Impl, wglDestroyPbufferARB);
  871. GLELoadProc(wglQueryPbufferARB_Impl, wglQueryPbufferARB);
  872. // WGL_ARB_render_texture
  873. GLELoadProc(wglBindTexImageARB_Impl, wglBindTexImageARB);
  874. GLELoadProc(wglReleaseTexImageARB_Impl, wglReleaseTexImageARB);
  875. GLELoadProc(wglSetPbufferAttribARB_Impl, wglSetPbufferAttribARB);
  876. // WGL_NV_present_video
  877. GLELoadProc(wglEnumerateVideoDevicesNV_Impl, wglEnumerateVideoDevicesNV);
  878. GLELoadProc(wglBindVideoDeviceNV_Impl, wglBindVideoDeviceNV);
  879. GLELoadProc(wglQueryCurrentContextNV_Impl, wglQueryCurrentContextNV);
  880. // WGL_ARB_create_context
  881. GLELoadProc(wglCreateContextAttribsARB_Impl, wglCreateContextAttribsARB);
  882. // WGL_EXT_extensions_string
  883. GLELoadProc(wglGetExtensionsStringEXT_Impl, wglGetExtensionsStringEXT);
  884. // WGL_EXT_swap_control
  885. GLELoadProc(wglGetSwapIntervalEXT_Impl, wglGetSwapIntervalEXT);
  886. GLELoadProc(wglSwapIntervalEXT_Impl, wglSwapIntervalEXT);
  887. // WGL_OML_sync_control
  888. GLELoadProc(wglGetSyncValuesOML_Impl, wglGetSyncValuesOML);
  889. GLELoadProc(wglGetMscRateOML_Impl, wglGetMscRateOML);
  890. GLELoadProc(wglSwapBuffersMscOML_Impl, wglSwapBuffersMscOML);
  891. GLELoadProc(wglSwapLayerBuffersMscOML_Impl, wglSwapLayerBuffersMscOML);
  892. GLELoadProc(wglWaitForMscOML_Impl, wglWaitForMscOML);
  893. GLELoadProc(wglWaitForSbcOML_Impl, wglWaitForSbcOML);
  894. // WGL_NV_video_output
  895. GLELoadProc(wglGetVideoDeviceNV_Impl, wglGetVideoDeviceNV);
  896. GLELoadProc(wglReleaseVideoDeviceNV_Impl, wglReleaseVideoDeviceNV);
  897. GLELoadProc(wglBindVideoImageNV_Impl, wglBindVideoImageNV);
  898. GLELoadProc(wglReleaseVideoImageNV_Impl, wglReleaseVideoImageNV);
  899. GLELoadProc(wglSendPbufferToVideoNV_Impl, wglSendPbufferToVideoNV);
  900. GLELoadProc(wglGetVideoInfoNV_Impl, wglGetVideoInfoNV);
  901. // WGL_NV_swap_group
  902. GLELoadProc(wglJoinSwapGroupNV_Impl, wglJoinSwapGroupNV);
  903. GLELoadProc(wglBindSwapBarrierNV_Impl, wglBindSwapBarrierNV);
  904. GLELoadProc(wglQuerySwapGroupNV_Impl, wglQuerySwapGroupNV);
  905. GLELoadProc(wglQueryMaxSwapGroupsNV_Impl, wglQueryMaxSwapGroupsNV);
  906. GLELoadProc(wglQueryFrameCountNV_Impl, wglQueryFrameCountNV);
  907. GLELoadProc(wglResetFrameCountNV_Impl, wglResetFrameCountNV);
  908. // WGL_NV_video_capture
  909. GLELoadProc(wglBindVideoCaptureDeviceNV_Impl, wglBindVideoCaptureDeviceNV);
  910. GLELoadProc(wglEnumerateVideoCaptureDevicesNV_Impl, wglEnumerateVideoCaptureDevicesNV);
  911. GLELoadProc(wglLockVideoCaptureDeviceNV_Impl, wglLockVideoCaptureDeviceNV);
  912. GLELoadProc(wglQueryVideoCaptureDeviceNV_Impl, wglQueryVideoCaptureDeviceNV);
  913. GLELoadProc(wglReleaseVideoCaptureDeviceNV_Impl, wglReleaseVideoCaptureDeviceNV);
  914. // WGL_NV_copy_image
  915. GLELoadProc(wglCopyImageSubDataNV_Impl, wglCopyImageSubDataNV);
  916. // WGL_NV_DX_interop
  917. GLELoadProc(wglDXCloseDeviceNV_Impl, wglDXCloseDeviceNV);
  918. GLELoadProc(wglDXLockObjectsNV_Impl, wglDXLockObjectsNV);
  919. GLELoadProc(wglDXObjectAccessNV_Impl, wglDXObjectAccessNV);
  920. GLELoadProc(wglDXOpenDeviceNV_Impl, wglDXOpenDeviceNV);
  921. GLELoadProc(wglDXRegisterObjectNV_Impl, wglDXRegisterObjectNV);
  922. GLELoadProc(wglDXSetResourceShareHandleNV_Impl, wglDXSetResourceShareHandleNV);
  923. GLELoadProc(wglDXUnlockObjectsNV_Impl, wglDXUnlockObjectsNV);
  924. GLELoadProc(wglDXUnregisterObjectNV_Impl, wglDXUnregisterObjectNV);
  925. #elif defined(GLE_GLX_ENABLED)
  926. // GLX_VERSION_1_1
  927. // We don't create any pointers_Impl, because we assume these functions are always present.
  928. // GLX_VERSION_1_2
  929. GLELoadProc(glXGetCurrentDisplay_Impl, glXGetCurrentDisplay);
  930. // GLX_VERSION_1_3
  931. GLELoadProc(glXChooseFBConfig_Impl, glXChooseFBConfig);
  932. GLELoadProc(glXCreateNewContext_Impl, glXCreateNewContext);
  933. GLELoadProc(glXCreatePbuffer_Impl, glXCreatePbuffer);
  934. GLELoadProc(glXCreatePixmap_Impl, glXCreatePixmap);
  935. GLELoadProc(glXCreateWindow_Impl, glXCreateWindow);
  936. GLELoadProc(glXDestroyPbuffer_Impl, glXDestroyPbuffer);
  937. GLELoadProc(glXDestroyPixmap_Impl, glXDestroyPixmap);
  938. GLELoadProc(glXDestroyWindow_Impl, glXDestroyWindow);
  939. GLELoadProc(glXGetCurrentReadDrawable_Impl, glXGetCurrentReadDrawable);
  940. GLELoadProc(glXGetFBConfigAttrib_Impl, glXGetFBConfigAttrib);
  941. GLELoadProc(glXGetFBConfigs_Impl, glXGetFBConfigs);
  942. GLELoadProc(glXGetSelectedEvent_Impl, glXGetSelectedEvent);
  943. GLELoadProc(glXGetVisualFromFBConfig_Impl, glXGetVisualFromFBConfig);
  944. GLELoadProc(glXMakeContextCurrent_Impl, glXMakeContextCurrent);
  945. GLELoadProc(glXQueryContext_Impl, glXQueryContext);
  946. GLELoadProc(glXQueryDrawable_Impl, glXQueryDrawable);
  947. GLELoadProc(glXSelectEvent_Impl, glXSelectEvent);
  948. // GLX_VERSION_1_4
  949. // Nothing to declare
  950. // GLX_ARB_create_context
  951. GLELoadProc(glXCreateContextAttribsARB_Impl, glXCreateContextAttribsARB);
  952. // GLX_EXT_swap_control
  953. GLELoadProc(glXSwapIntervalEXT_Impl, glXSwapIntervalEXT);
  954. // GLX_OML_sync_control
  955. GLELoadProc(glXGetMscRateOML_Impl, glXGetMscRateOML);
  956. GLELoadProc(glXGetSyncValuesOML_Impl, glXGetSyncValuesOML);
  957. GLELoadProc(glXGetSyncValuesOML_Impl, glXSwapBuffersMscOML);
  958. GLELoadProc(glXSwapBuffersMscOML_Impl, glXSwapBuffersMscOML);
  959. GLELoadProc(glXWaitForSbcOML_Impl, glXWaitForSbcOML);
  960. // GLX_MESA_swap_control
  961. GLELoadProc(glXGetSwapIntervalMESA_Impl, glXGetSwapIntervalMESA);
  962. GLELoadProc(glXSwapIntervalMESA_Impl, glXSwapIntervalMESA);
  963. #endif
  964. }
  965. void OVR::GLEContext::InitPlatformExtensionSupport()
  966. {
  967. #if defined(GLE_WGL_ENABLED)
  968. // We need to use wglGetExtensionsStringARB or wglGetExtensionsStringEXT as opposed to above with glGetString(GL_EXTENSIONS).
  969. ValueStringPair vspWGLArray[] =
  970. {
  971. { gle_WGL_ARB_buffer_region, "WGL_ARB_buffer_region" }
  972. ,{ gle_WGL_ARB_create_context, "WGL_ARB_create_context" }
  973. ,{ gle_WGL_ARB_create_context_profile, "WGL_ARB_create_context_profile" }
  974. ,{ gle_WGL_ARB_create_context_robustness, "WGL_ARB_create_context_robustness" }
  975. ,{ gle_WGL_ARB_extensions_string, "WGL_ARB_extensions_string" }
  976. ,{ gle_WGL_ARB_framebuffer_sRGB, "WGL_ARB_framebuffer_sRGB" }
  977. ,{ gle_WGL_ARB_framebuffer_sRGB, "WGL_EXT_framebuffer_sRGB" } // We map the EXT to the ARB.
  978. ,{ gle_WGL_ARB_make_current_read, "WGL_ARB_make_current_read" }
  979. ,{ gle_WGL_ARB_pbuffer, "WGL_ARB_pbuffer" }
  980. ,{ gle_WGL_ARB_pixel_format, "WGL_ARB_pixel_format" }
  981. ,{ gle_WGL_ARB_pixel_format_float, "WGL_ARB_pixel_format_float" }
  982. ,{ gle_WGL_ARB_render_texture, "WGL_ARB_render_texture" }
  983. ,{ gle_WGL_ATI_render_texture_rectangle, "WGL_ATI_render_texture_rectangle" }
  984. ,{ gle_WGL_EXT_extensions_string, "WGL_EXT_extensions_string" }
  985. ,{ gle_WGL_EXT_swap_control, "WGL_EXT_swap_control" }
  986. ,{ gle_WGL_NV_copy_image, "WGL_NV_copy_image" }
  987. ,{ gle_WGL_NV_DX_interop, "WGL_NV_DX_interop" }
  988. ,{ gle_WGL_NV_DX_interop2, "WGL_NV_DX_interop2" }
  989. ,{ gle_WGL_NV_present_video, "WGL_NV_present_video" }
  990. ,{ gle_WGL_NV_render_texture_rectangle, "WGL_NV_render_texture_rectangle" }
  991. ,{ gle_WGL_NV_swap_group, "WGL_NV_swap_group" }
  992. ,{ gle_WGL_NV_video_capture, "WGL_NV_video_capture" }
  993. ,{ gle_WGL_NV_video_output, "WGL_NV_video_output" }
  994. ,{ gle_WGL_OML_sync_control, "WGL_OML_sync_control" }
  995. };
  996. const char* extensions = NULL;
  997. if(wglGetExtensionsStringARB_Impl)
  998. extensions = wglGetExtensionsStringARB_Impl(wglGetCurrentDC()); // To do: Use a better mechanism to get the desired HDC.
  999. else if(wglGetExtensionsStringEXT_Impl)
  1000. extensions = wglGetExtensionsStringEXT_Impl();
  1001. if (extensions && *extensions)
  1002. {
  1003. OVR_DEBUG_LOG(("WGL_EXTENSIONS: %s", (const char*)extensions));
  1004. CheckExtensions(vspWGLArray, OVR_ARRAY_COUNT(vspWGLArray), extensions);
  1005. }
  1006. #elif defined(GLE_GLX_ENABLED)
  1007. ValueStringPair vspGLXArray[] =
  1008. {
  1009. { gle_GLX_ARB_create_context, "GLX_ARB_create_context" }
  1010. ,{ gle_GLX_ARB_create_context_profile, "GLX_ARB_create_context_profile" }
  1011. ,{ gle_GLX_ARB_create_context_robustness, "GLX_ARB_create_context_robustness" }
  1012. ,{ gle_GLX_EXT_swap_control, "GLX_EXT_swap_control" }
  1013. ,{ gle_GLX_OML_sync_control, "GLX_OML_sync_control" }
  1014. ,{ gle_MESA_swap_control, "GLX_MESA_swap_control" }
  1015. };
  1016. const char* extensions = glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); // To do: Use a better mechanism to get the desired display.
  1017. if (extensions && *extensions)
  1018. {
  1019. OVR_DEBUG_LOG(("GLX_EXTENSIONS: %s", (const char*)extensions));
  1020. CheckExtensions(vspGLXArray, OVR_ARRAY_COUNT(vspGLXArray), extensions);
  1021. }
  1022. #endif
  1023. }
  1024. #if defined(GLE_HOOKING_ENABLED)
  1025. #undef glGetError
  1026. extern "C" { GLAPI GLenum GLAPIENTRY glGetError(); }
  1027. // Disabled until such time as it might be useful to enable for debug purposes.
  1028. //void OVR::GLEContext::PreHook(const char* functionName)
  1029. //{
  1030. // if(EnableHookGetError)
  1031. // {
  1032. // int err = glGetError();
  1033. //
  1034. // for(int i = 0; (i < 6) && (err != GL_NO_ERROR); i++) // 6 is an arbitrary cap to prevent infinite looping which would occur if the current GL context is invalid.
  1035. // {
  1036. // OVR_DEBUG_LOG(("GL Error prior to hook: %d (%#x) from %s", err, err, functionName ? functionName : "OpenGL")); OVR_UNUSED(functionName);
  1037. // err = glGetError();
  1038. // }
  1039. // }
  1040. //}
  1041. void OVR::GLEContext::PostHook(const char* functionName)
  1042. {
  1043. if(EnableHookGetError)
  1044. {
  1045. // OpenGL Standard regarding error state: To allow for distributed implementations, there may be several error flags. If any single error flag has recorded an error, the value of that flag
  1046. // is returned and that flag is reset to GL_NO_ERROR when glGetError is called. If more than one flag has recorded an error, glGetError returns and
  1047. // clears an arbitrary error flag value. Thus, glGetError should always be called in a loop, until it returns GL_NO_ERROR, if all error flags are to be reset.
  1048. int err = glGetError();
  1049. for(int i = 0; (i < 6) && (err != GL_NO_ERROR); i++) // 6 is an arbitrary cap to prevent infinite looping which would occur if the current GL context is invalid.
  1050. {
  1051. OVR_DEBUG_LOG(("GL Error: %d (%#x) from %s", err, err, functionName ? functionName : "OpenGL")); OVR_UNUSED(functionName);
  1052. err = glGetError();
  1053. }
  1054. }
  1055. }
  1056. // OpenGL 1.1 link-based functions
  1057. #undef glAccum // Undefine the macro from our header so that we can directly call the real version of this function.
  1058. extern "C" { GLAPI void GLAPIENTRY glAccum(GLenum op, GLfloat value); }
  1059. void OVR::GLEContext::glAccum_Hook(GLenum op, GLfloat value)
  1060. {
  1061. glAccum(op, value);
  1062. PostHook(GLE_CURRENT_FUNCTION);
  1063. }
  1064. #undef glAlphaFunc
  1065. extern "C" { GLAPI void GLAPIENTRY glAlphaFunc(GLenum func, GLclampf ref); }
  1066. void OVR::GLEContext::glAlphaFunc_Hook(GLenum func, GLclampf ref)
  1067. {
  1068. glAlphaFunc(func, ref);
  1069. PostHook(GLE_CURRENT_FUNCTION);
  1070. }
  1071. #undef glAreTexturesResident
  1072. extern "C" { GLAPI GLboolean GLAPIENTRY glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); }
  1073. GLboolean OVR::GLEContext::glAreTexturesResident_Hook(GLsizei n, const GLuint *textures, GLboolean *residences)
  1074. {
  1075. GLboolean b = glAreTexturesResident(n, textures, residences);
  1076. PostHook(GLE_CURRENT_FUNCTION);
  1077. return b;
  1078. }
  1079. #undef glArrayElement
  1080. extern "C" { GLAPI void GLAPIENTRY glArrayElement(GLint i); }
  1081. void OVR::GLEContext::glArrayElement_Hook(GLint i)
  1082. {
  1083. glArrayElement(i);
  1084. PostHook(GLE_CURRENT_FUNCTION);
  1085. }
  1086. #undef glBegin
  1087. extern "C" { GLAPI void GLAPIENTRY glBegin(GLenum mode); }
  1088. void OVR::GLEContext::glBegin_Hook(GLenum mode)
  1089. {
  1090. glBegin(mode);
  1091. PostHook(GLE_CURRENT_FUNCTION);
  1092. }
  1093. #undef glBindTexture
  1094. extern "C" { GLAPI void GLAPIENTRY glBindTexture(GLenum target, GLuint texture); }
  1095. void OVR::GLEContext::glBindTexture_Hook(GLenum target, GLuint texture)
  1096. {
  1097. glBindTexture(target, texture);
  1098. PostHook(GLE_CURRENT_FUNCTION);
  1099. }
  1100. #undef glBitmap
  1101. extern "C" { GLAPI void GLAPIENTRY glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); }
  1102. void OVR::GLEContext::glBitmap_Hook(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
  1103. {
  1104. glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
  1105. PostHook(GLE_CURRENT_FUNCTION);
  1106. }
  1107. #undef glBlendFunc
  1108. extern "C" { GLAPI void GLAPIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor); }
  1109. void OVR::GLEContext::glBlendFunc_Hook(GLenum sfactor, GLenum dfactor)
  1110. {
  1111. glBlendFunc(sfactor, dfactor);
  1112. PostHook(GLE_CURRENT_FUNCTION);
  1113. }
  1114. #undef glCallList
  1115. extern "C" { GLAPI void GLAPIENTRY glCallList(GLuint list); }
  1116. void OVR::GLEContext::glCallList_Hook(GLuint list)
  1117. {
  1118. glCallList(list);
  1119. PostHook(GLE_CURRENT_FUNCTION);
  1120. }
  1121. #undef glCallLists
  1122. extern "C" { GLAPI void GLAPIENTRY glCallLists(GLsizei n, GLenum type, const void *lists); }
  1123. void OVR::GLEContext::glCallLists_Hook(GLsizei n, GLenum type, const void *lists)
  1124. {
  1125. glCallLists(n, type, lists);
  1126. PostHook(GLE_CURRENT_FUNCTION);
  1127. }
  1128. #undef glClear
  1129. extern "C" { GLAPI void GLAPIENTRY glClear(GLbitfield mask); }
  1130. void OVR::GLEContext::glClear_Hook(GLbitfield mask)
  1131. {
  1132. glClear(mask);
  1133. PostHook(GLE_CURRENT_FUNCTION);
  1134. }
  1135. #undef glClearAccum
  1136. extern "C" { GLAPI void GLAPIENTRY glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); }
  1137. void OVR::GLEContext::glClearAccum_Hook(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
  1138. {
  1139. glClearAccum(red, green, blue, alpha);
  1140. PostHook(GLE_CURRENT_FUNCTION);
  1141. }
  1142. #undef glClearColor
  1143. extern "C" { GLAPI void GLAPIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); }
  1144. void OVR::GLEContext::glClearColor_Hook(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
  1145. {
  1146. glClearColor(red, green, blue, alpha);
  1147. PostHook(GLE_CURRENT_FUNCTION);
  1148. }
  1149. #undef glClearDepth
  1150. extern "C" { GLAPI void GLAPIENTRY glClearDepth(GLclampd depth); }
  1151. void OVR::GLEContext::glClearDepth_Hook(GLclampd depth)
  1152. {
  1153. glClearDepth(depth);
  1154. PostHook(GLE_CURRENT_FUNCTION);
  1155. }
  1156. #undef glClearIndex
  1157. extern "C" { GLAPI void GLAPIENTRY glClearIndex(GLfloat c); }
  1158. void OVR::GLEContext::glClearIndex_Hook(GLfloat c)
  1159. {
  1160. glClearIndex(c);
  1161. PostHook(GLE_CURRENT_FUNCTION);
  1162. }
  1163. #undef glClearStencil
  1164. extern "C" { GLAPI void GLAPIENTRY glClearStencil(GLint s); }
  1165. void OVR::GLEContext::glClearStencil_Hook(GLint s)
  1166. {
  1167. glClearStencil(s);
  1168. PostHook(GLE_CURRENT_FUNCTION);
  1169. }
  1170. #undef glClipPlane
  1171. extern "C" { GLAPI void GLAPIENTRY glClipPlane(GLenum plane, const GLdouble *equation); }
  1172. void OVR::GLEContext::glClipPlane_Hook(GLenum plane, const GLdouble *equation)
  1173. {
  1174. glClipPlane(plane, equation);
  1175. PostHook(GLE_CURRENT_FUNCTION);
  1176. }
  1177. #undef glColor3b
  1178. extern "C" { GLAPI void GLAPIENTRY glColor3b(GLbyte red, GLbyte green, GLbyte blue); }
  1179. void OVR::GLEContext::glColor3b_Hook(GLbyte red, GLbyte green, GLbyte blue)
  1180. {
  1181. glColor3b(red, green, blue);
  1182. PostHook(GLE_CURRENT_FUNCTION);
  1183. }
  1184. #undef glColor3bv
  1185. extern "C" { GLAPI void GLAPIENTRY glColor3bv(const GLbyte *v); }
  1186. void OVR::GLEContext::glColor3bv_Hook(const GLbyte *v)
  1187. {
  1188. glColor3bv(v);
  1189. PostHook(GLE_CURRENT_FUNCTION);
  1190. }
  1191. #undef glColor3d
  1192. extern "C" { GLAPI void GLAPIENTRY glColor3d(GLdouble red, GLdouble green, GLdouble blue); }
  1193. void OVR::GLEContext::glColor3d_Hook(GLdouble red, GLdouble green, GLdouble blue)
  1194. {
  1195. glColor3d(red, green, blue);
  1196. PostHook(GLE_CURRENT_FUNCTION);
  1197. }
  1198. #undef glColor3dv
  1199. extern "C" { GLAPI void GLAPIENTRY glColor3dv(const GLdouble *v); }
  1200. void OVR::GLEContext::glColor3dv_Hook(const GLdouble *v)
  1201. {
  1202. glColor3dv(v);
  1203. PostHook(GLE_CURRENT_FUNCTION);
  1204. }
  1205. #undef glColor3f
  1206. extern "C" { GLAPI void GLAPIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue); }
  1207. void OVR::GLEContext::glColor3f_Hook(GLfloat red, GLfloat green, GLfloat blue)
  1208. {
  1209. glColor3f(red, green, blue);
  1210. PostHook(GLE_CURRENT_FUNCTION);
  1211. }
  1212. #undef glColor3fv
  1213. extern "C" { GLAPI void GLAPIENTRY glColor3fv(const GLfloat *v); }
  1214. void OVR::GLEContext::glColor3fv_Hook(const GLfloat *v)
  1215. {
  1216. glColor3fv(v);
  1217. PostHook(GLE_CURRENT_FUNCTION);
  1218. }
  1219. #undef glColor3i
  1220. extern "C" { GLAPI void GLAPIENTRY glColor3i(GLint red, GLint green, GLint blue); }
  1221. void OVR::GLEContext::glColor3i_Hook(GLint red, GLint green, GLint blue)
  1222. {
  1223. glColor3i(red, green, blue);
  1224. PostHook(GLE_CURRENT_FUNCTION);
  1225. }
  1226. #undef glColor3iv
  1227. extern "C" { GLAPI void GLAPIENTRY glColor3iv(const GLint *v); }
  1228. void OVR::GLEContext::glColor3iv_Hook(const GLint *v)
  1229. {
  1230. glColor3iv(v);
  1231. PostHook(GLE_CURRENT_FUNCTION);
  1232. }
  1233. #undef glColor3s
  1234. extern "C" { GLAPI void GLAPIENTRY glColor3s(GLshort red, GLshort green, GLshort blue); }
  1235. void OVR::GLEContext::glColor3s_Hook(GLshort red, GLshort green, GLshort blue)
  1236. {
  1237. glColor3s(red, green, blue);
  1238. PostHook(GLE_CURRENT_FUNCTION);
  1239. }
  1240. #undef glColor3sv
  1241. extern "C" { GLAPI void GLAPIENTRY glColor3sv(const GLshort *v); }
  1242. void OVR::GLEContext::glColor3sv_Hook(const GLshort *v)
  1243. {
  1244. glColor3sv(v);
  1245. PostHook(GLE_CURRENT_FUNCTION);
  1246. }
  1247. #undef glColor3ub
  1248. extern "C" { GLAPI void GLAPIENTRY glColor3ub(GLubyte red, GLubyte green, GLubyte blue); }
  1249. void OVR::GLEContext::glColor3ub_Hook(GLubyte red, GLubyte green, GLubyte blue)
  1250. {
  1251. glColor3ub(red, green, blue);
  1252. PostHook(GLE_CURRENT_FUNCTION);
  1253. }
  1254. #undef glColor3ubv
  1255. extern "C" { GLAPI void GLAPIENTRY glColor3ubv(const GLubyte *v); }
  1256. void OVR::GLEContext::glColor3ubv_Hook(const GLubyte *v)
  1257. {
  1258. glColor3ubv(v);
  1259. PostHook(GLE_CURRENT_FUNCTION);
  1260. }
  1261. #undef glColor3ui
  1262. extern "C" { GLAPI void GLAPIENTRY glColor3ui(GLuint red, GLuint green, GLuint blue); }
  1263. void OVR::GLEContext::glColor3ui_Hook(GLuint red, GLuint green, GLuint blue)
  1264. {
  1265. glColor3ui(red, green, blue);
  1266. PostHook(GLE_CURRENT_FUNCTION);
  1267. }
  1268. #undef glColor3uiv
  1269. extern "C" { GLAPI void GLAPIENTRY glColor3uiv(const GLuint *v); }
  1270. void OVR::GLEContext::glColor3uiv_Hook(const GLuint *v)
  1271. {
  1272. glColor3uiv(v);
  1273. PostHook(GLE_CURRENT_FUNCTION);
  1274. }
  1275. #undef glColor3us
  1276. extern "C" { GLAPI void GLAPIENTRY glColor3us(GLushort red, GLushort green, GLushort blue); }
  1277. void OVR::GLEContext::glColor3us_Hook(GLushort red, GLushort green, GLushort blue)
  1278. {
  1279. glColor3us(red, green, blue);
  1280. PostHook(GLE_CURRENT_FUNCTION);
  1281. }
  1282. #undef glColor3usv
  1283. extern "C" { GLAPI void GLAPIENTRY glColor3usv(const GLushort *v); }
  1284. void OVR::GLEContext::glColor3usv_Hook(const GLushort *v)
  1285. {
  1286. glColor3usv(v);
  1287. PostHook(GLE_CURRENT_FUNCTION);
  1288. }
  1289. #undef glColor4b
  1290. extern "C" { GLAPI void GLAPIENTRY glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); }
  1291. void OVR::GLEContext::glColor4b_Hook(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
  1292. {
  1293. glColor4b(red, green, blue, alpha);
  1294. PostHook(GLE_CURRENT_FUNCTION);
  1295. }
  1296. #undef glColor4bv
  1297. extern "C" { GLAPI void GLAPIENTRY glColor4bv(const GLbyte *v); }
  1298. void OVR::GLEContext::glColor4bv_Hook(const GLbyte *v)
  1299. {
  1300. glColor4bv(v);
  1301. PostHook(GLE_CURRENT_FUNCTION);
  1302. }
  1303. #undef glColor4d
  1304. extern "C" { GLAPI void GLAPIENTRY glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); }
  1305. void OVR::GLEContext::glColor4d_Hook(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
  1306. {
  1307. glColor4d(red, green, blue, alpha);
  1308. PostHook(GLE_CURRENT_FUNCTION);
  1309. }
  1310. #undef glColor4dv
  1311. extern "C" { GLAPI void GLAPIENTRY glColor4dv(const GLdouble *v); }
  1312. void OVR::GLEContext::glColor4dv_Hook(const GLdouble *v)
  1313. {
  1314. glColor4dv(v);
  1315. PostHook(GLE_CURRENT_FUNCTION);
  1316. }
  1317. #undef glColor4f
  1318. extern "C" { GLAPI void GLAPIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); }
  1319. void OVR::GLEContext::glColor4f_Hook(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
  1320. {
  1321. glColor4f(red, green, blue, alpha);
  1322. PostHook(GLE_CURRENT_FUNCTION);
  1323. }
  1324. #undef glColor4fv
  1325. extern "C" { GLAPI void GLAPIENTRY glColor4fv(const GLfloat *v); }
  1326. void OVR::GLEContext::glColor4fv_Hook(const GLfloat *v)
  1327. {
  1328. glColor4fv(v);
  1329. PostHook(GLE_CURRENT_FUNCTION);
  1330. }
  1331. #undef glColor4i
  1332. extern "C" { GLAPI void GLAPIENTRY glColor4i(GLint red, GLint green, GLint blue, GLint alpha); }
  1333. void OVR::GLEContext::glColor4i_Hook(GLint red, GLint green, GLint blue, GLint alpha)
  1334. {
  1335. glColor4i(red, green, blue, alpha);
  1336. PostHook(GLE_CURRENT_FUNCTION);
  1337. }
  1338. #undef glColor4iv
  1339. extern "C" { GLAPI void GLAPIENTRY glColor4iv(const GLint *v); }
  1340. void OVR::GLEContext::glColor4iv_Hook(const GLint *v)
  1341. {
  1342. glColor4iv(v);
  1343. PostHook(GLE_CURRENT_FUNCTION);
  1344. }
  1345. #undef glColor4s
  1346. extern "C" { GLAPI void GLAPIENTRY glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); }
  1347. void OVR::GLEContext::glColor4s_Hook(GLshort red, GLshort green, GLshort blue, GLshort alpha)
  1348. {
  1349. glColor4s(red, green, blue, alpha);
  1350. PostHook(GLE_CURRENT_FUNCTION);
  1351. }
  1352. #undef glColor4sv
  1353. extern "C" { GLAPI void GLAPIENTRY glColor4sv(const GLshort *v); }
  1354. void OVR::GLEContext::glColor4sv_Hook(const GLshort *v)
  1355. {
  1356. glColor4sv(v);
  1357. PostHook(GLE_CURRENT_FUNCTION);
  1358. }
  1359. #undef glColor4ub
  1360. extern "C" { GLAPI void GLAPIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); }
  1361. void OVR::GLEContext::glColor4ub_Hook(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
  1362. {
  1363. glColor4ub(red, green, blue, alpha);
  1364. PostHook(GLE_CURRENT_FUNCTION);
  1365. }
  1366. #undef glColor4ubv
  1367. extern "C" { GLAPI void GLAPIENTRY glColor4ubv(const GLubyte *v); }
  1368. void OVR::GLEContext::glColor4ubv_Hook(const GLubyte *v)
  1369. {
  1370. glColor4ubv(v);
  1371. PostHook(GLE_CURRENT_FUNCTION);
  1372. }
  1373. #undef glColor4ui
  1374. extern "C" { GLAPI void GLAPIENTRY glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); }
  1375. void OVR::GLEContext::glColor4ui_Hook(GLuint red, GLuint green, GLuint blue, GLuint alpha)
  1376. {
  1377. glColor4ui(red, green, blue, alpha);
  1378. PostHook(GLE_CURRENT_FUNCTION);
  1379. }
  1380. #undef glColor4uiv
  1381. extern "C" { GLAPI void GLAPIENTRY glColor4uiv(const GLuint *v); }
  1382. void OVR::GLEContext::glColor4uiv_Hook(const GLuint *v)
  1383. {
  1384. glColor4uiv(v);
  1385. PostHook(GLE_CURRENT_FUNCTION);
  1386. }
  1387. #undef glColor4us
  1388. extern "C" { GLAPI void GLAPIENTRY glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); }
  1389. void OVR::GLEContext::glColor4us_Hook(GLushort red, GLushort green, GLushort blue, GLushort alpha)
  1390. {
  1391. glColor4us(red, green, blue, alpha);
  1392. PostHook(GLE_CURRENT_FUNCTION);
  1393. }
  1394. #undef glColor4usv
  1395. extern "C" { GLAPI void GLAPIENTRY glColor4usv(const GLushort *v); }
  1396. void OVR::GLEContext::glColor4usv_Hook(const GLushort *v)
  1397. {
  1398. glColor4usv(v);
  1399. PostHook(GLE_CURRENT_FUNCTION);
  1400. }
  1401. #undef glColorMask
  1402. extern "C" { GLAPI void GLAPIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); }
  1403. void OVR::GLEContext::glColorMask_Hook(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
  1404. {
  1405. glColorMask(red, green, blue, alpha);
  1406. PostHook(GLE_CURRENT_FUNCTION);
  1407. }
  1408. #undef glColorMaterial
  1409. extern "C" { GLAPI void GLAPIENTRY glColorMaterial(GLenum face, GLenum mode); }
  1410. void OVR::GLEContext::glColorMaterial_Hook(GLenum face, GLenum mode)
  1411. {
  1412. glColorMaterial(face, mode);
  1413. PostHook(GLE_CURRENT_FUNCTION);
  1414. }
  1415. #undef glColorPointer
  1416. extern "C" { GLAPI void GLAPIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); }
  1417. void OVR::GLEContext::glColorPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer)
  1418. {
  1419. glColorPointer(size, type, stride, pointer);
  1420. PostHook(GLE_CURRENT_FUNCTION);
  1421. }
  1422. #undef glCopyPixels
  1423. extern "C" { GLAPI void GLAPIENTRY glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); }
  1424. void OVR::GLEContext::glCopyPixels_Hook(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
  1425. {
  1426. glCopyPixels(x, y, width, height, type);
  1427. PostHook(GLE_CURRENT_FUNCTION);
  1428. }
  1429. #undef glCopyTexImage1D
  1430. extern "C" { GLAPI void GLAPIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); }
  1431. void OVR::GLEContext::glCopyTexImage1D_Hook(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
  1432. {
  1433. glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
  1434. PostHook(GLE_CURRENT_FUNCTION);
  1435. }
  1436. #undef glCopyTexImage2D
  1437. extern "C" { GLAPI void GLAPIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); }
  1438. void OVR::GLEContext::glCopyTexImage2D_Hook(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
  1439. {
  1440. glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
  1441. PostHook(GLE_CURRENT_FUNCTION);
  1442. }
  1443. #undef glCopyTexSubImage1D
  1444. extern "C" { GLAPI void GLAPIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); }
  1445. void OVR::GLEContext::glCopyTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
  1446. {
  1447. glCopyTexSubImage1D(target, level, xoffset, x, y, width);
  1448. PostHook(GLE_CURRENT_FUNCTION);
  1449. }
  1450. #undef glCopyTexSubImage2D
  1451. extern "C" { GLAPI void GLAPIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); }
  1452. void OVR::GLEContext::glCopyTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
  1453. {
  1454. glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
  1455. PostHook(GLE_CURRENT_FUNCTION);
  1456. }
  1457. #undef glCullFace
  1458. extern "C" { GLAPI void GLAPIENTRY glCullFace(GLenum mode); }
  1459. void OVR::GLEContext::glCullFace_Hook(GLenum mode)
  1460. {
  1461. glCullFace(mode);
  1462. PostHook(GLE_CURRENT_FUNCTION);
  1463. }
  1464. #undef glDeleteLists
  1465. extern "C" { GLAPI void GLAPIENTRY glDeleteLists(GLuint list, GLsizei range); }
  1466. void OVR::GLEContext::glDeleteLists_Hook(GLuint list, GLsizei range)
  1467. {
  1468. glDeleteLists(list, range);
  1469. PostHook(GLE_CURRENT_FUNCTION);
  1470. }
  1471. #undef glDeleteTextures
  1472. extern "C" { GLAPI void GLAPIENTRY glDeleteTextures(GLsizei n, const GLuint *textures); }
  1473. void OVR::GLEContext::glDeleteTextures_Hook(GLsizei n, const GLuint *textures)
  1474. {
  1475. glDeleteTextures(n, textures);
  1476. PostHook(GLE_CURRENT_FUNCTION);
  1477. }
  1478. #undef glDepthFunc
  1479. extern "C" { GLAPI void GLAPIENTRY glDepthFunc(GLenum func); }
  1480. void OVR::GLEContext::glDepthFunc_Hook(GLenum func)
  1481. {
  1482. glDepthFunc(func);
  1483. PostHook(GLE_CURRENT_FUNCTION);
  1484. }
  1485. #undef glDepthMask
  1486. extern "C" { GLAPI void GLAPIENTRY glDepthMask(GLboolean flag); }
  1487. void OVR::GLEContext::glDepthMask_Hook(GLboolean flag)
  1488. {
  1489. glDepthMask(flag);
  1490. PostHook(GLE_CURRENT_FUNCTION);
  1491. }
  1492. #undef glDepthRange
  1493. extern "C" { GLAPI void GLAPIENTRY glDepthRange(GLclampd zNear, GLclampd zFar); }
  1494. void OVR::GLEContext::glDepthRange_Hook(GLclampd zNear, GLclampd zFar)
  1495. {
  1496. glDepthRange(zNear, zFar);
  1497. PostHook(GLE_CURRENT_FUNCTION);
  1498. }
  1499. #undef glDisable
  1500. extern "C" { GLAPI void GLAPIENTRY glDisable(GLenum cap); }
  1501. void OVR::GLEContext::glDisable_Hook(GLenum cap)
  1502. {
  1503. glDisable(cap);
  1504. PostHook(GLE_CURRENT_FUNCTION);
  1505. }
  1506. #undef glDisableClientState
  1507. extern "C" { GLAPI void GLAPIENTRY glDisableClientState(GLenum array); }
  1508. void OVR::GLEContext::glDisableClientState_Hook(GLenum array)
  1509. {
  1510. glDisableClientState(array);
  1511. PostHook(GLE_CURRENT_FUNCTION);
  1512. }
  1513. #undef glDrawArrays
  1514. extern "C" { GLAPI void GLAPIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count); }
  1515. void OVR::GLEContext::glDrawArrays_Hook(GLenum mode, GLint first, GLsizei count)
  1516. {
  1517. glDrawArrays(mode, first, count);
  1518. PostHook(GLE_CURRENT_FUNCTION);
  1519. }
  1520. #undef glDrawBuffer
  1521. extern "C" { GLAPI void GLAPIENTRY glDrawBuffer(GLenum mode); }
  1522. void OVR::GLEContext::glDrawBuffer_Hook(GLenum mode)
  1523. {
  1524. glDrawBuffer(mode);
  1525. PostHook(GLE_CURRENT_FUNCTION);
  1526. }
  1527. #undef glDrawElements
  1528. extern "C" { GLAPI void GLAPIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices); }
  1529. void OVR::GLEContext::glDrawElements_Hook(GLenum mode, GLsizei count, GLenum type, const void *indices)
  1530. {
  1531. glDrawElements(mode, count, type, indices);
  1532. PostHook(GLE_CURRENT_FUNCTION);
  1533. }
  1534. #undef glDrawPixels
  1535. extern "C" { GLAPI void GLAPIENTRY glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); }
  1536. void OVR::GLEContext::glDrawPixels_Hook(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
  1537. {
  1538. glDrawPixels(width, height, format, type, pixels);
  1539. PostHook(GLE_CURRENT_FUNCTION);
  1540. }
  1541. #undef glEdgeFlag
  1542. extern "C" { GLAPI void GLAPIENTRY glEdgeFlag(GLboolean flag); }
  1543. void OVR::GLEContext::glEdgeFlag_Hook(GLboolean flag)
  1544. {
  1545. glEdgeFlag(flag);
  1546. PostHook(GLE_CURRENT_FUNCTION);
  1547. }
  1548. #undef glEdgeFlagPointer
  1549. extern "C" { GLAPI void GLAPIENTRY glEdgeFlagPointer(GLsizei stride, const void *pointer); }
  1550. void OVR::GLEContext::glEdgeFlagPointer_Hook(GLsizei stride, const void *pointer)
  1551. {
  1552. glEdgeFlagPointer(stride, pointer);
  1553. PostHook(GLE_CURRENT_FUNCTION);
  1554. }
  1555. #undef glEdgeFlagv
  1556. extern "C" { GLAPI void GLAPIENTRY glEdgeFlagv(const GLboolean *flag); }
  1557. void OVR::GLEContext::glEdgeFlagv_Hook(const GLboolean *flag)
  1558. {
  1559. glEdgeFlagv(flag);
  1560. PostHook(GLE_CURRENT_FUNCTION);
  1561. }
  1562. #undef glEnable
  1563. extern "C" { GLAPI void GLAPIENTRY glEnable(GLenum cap); }
  1564. namespace OVR {
  1565. void GLEContext::glEnable_Hook(GLenum cap)
  1566. {
  1567. glEnable(cap);
  1568. PostHook(GLE_CURRENT_FUNCTION);
  1569. }
  1570. }
  1571. #undef glEnableClientState
  1572. extern "C" { GLAPI void GLAPIENTRY glEnableClientState(GLenum array); }
  1573. void OVR::GLEContext::glEnableClientState_Hook(GLenum array)
  1574. {
  1575. glEnableClientState(array);
  1576. PostHook(GLE_CURRENT_FUNCTION);
  1577. }
  1578. #undef glEnd
  1579. extern "C" { GLAPI void GLAPIENTRY glEnd(); }
  1580. void OVR::GLEContext::glEnd_Hook()
  1581. {
  1582. glEnd();
  1583. PostHook(GLE_CURRENT_FUNCTION);
  1584. }
  1585. #undef glEndList
  1586. extern "C" { GLAPI void GLAPIENTRY glEndList(); }
  1587. void OVR::GLEContext::glEndList_Hook()
  1588. {
  1589. glEndList();
  1590. PostHook(GLE_CURRENT_FUNCTION);
  1591. }
  1592. #undef glEvalCoord1d
  1593. extern "C" { GLAPI void GLAPIENTRY glEvalCoord1d(GLdouble u); }
  1594. void OVR::GLEContext::glEvalCoord1d_Hook(GLdouble u)
  1595. {
  1596. glEvalCoord1d(u);
  1597. PostHook(GLE_CURRENT_FUNCTION);
  1598. }
  1599. #undef glEvalCoord1dv
  1600. extern "C" { GLAPI void GLAPIENTRY glEvalCoord1dv(const GLdouble *u); }
  1601. void OVR::GLEContext::glEvalCoord1dv_Hook(const GLdouble *u)
  1602. {
  1603. glEvalCoord1dv(u);
  1604. PostHook(GLE_CURRENT_FUNCTION);
  1605. }
  1606. #undef glEvalCoord1f
  1607. extern "C" { GLAPI void GLAPIENTRY glEvalCoord1f(GLfloat u); }
  1608. void OVR::GLEContext::glEvalCoord1f_Hook(GLfloat u)
  1609. {
  1610. glEvalCoord1f(u);
  1611. PostHook(GLE_CURRENT_FUNCTION);
  1612. }
  1613. #undef glEvalCoord1fv
  1614. extern "C" { GLAPI void GLAPIENTRY glEvalCoord1fv(const GLfloat *u); }
  1615. void OVR::GLEContext::glEvalCoord1fv_Hook(const GLfloat *u)
  1616. {
  1617. glEvalCoord1fv(u);
  1618. PostHook(GLE_CURRENT_FUNCTION);
  1619. }
  1620. #undef glEvalCoord2d
  1621. extern "C" { GLAPI void GLAPIENTRY glEvalCoord2d(GLdouble u, GLdouble v); }
  1622. void OVR::GLEContext::glEvalCoord2d_Hook(GLdouble u, GLdouble v)
  1623. {
  1624. glEvalCoord2d(u, v);
  1625. PostHook(GLE_CURRENT_FUNCTION);
  1626. }
  1627. #undef glEvalCoord2dv
  1628. extern "C" { GLAPI void GLAPIENTRY glEvalCoord2dv(const GLdouble *u); }
  1629. void OVR::GLEContext::glEvalCoord2dv_Hook(const GLdouble *u)
  1630. {
  1631. glEvalCoord2dv(u);
  1632. PostHook(GLE_CURRENT_FUNCTION);
  1633. }
  1634. #undef glEvalCoord2f
  1635. extern "C" { GLAPI void GLAPIENTRY glEvalCoord2f(GLfloat u, GLfloat v); }
  1636. void OVR::GLEContext::glEvalCoord2f_Hook(GLfloat u, GLfloat v)
  1637. {
  1638. glEvalCoord2f(u, v);
  1639. PostHook(GLE_CURRENT_FUNCTION);
  1640. }
  1641. #undef glEvalCoord2fv
  1642. extern "C" { GLAPI void GLAPIENTRY glEvalCoord2fv(const GLfloat *u); }
  1643. void OVR::GLEContext::glEvalCoord2fv_Hook(const GLfloat *u)
  1644. {
  1645. glEvalCoord2fv(u);
  1646. PostHook(GLE_CURRENT_FUNCTION);
  1647. }
  1648. #undef glEvalMesh1
  1649. extern "C" { GLAPI void GLAPIENTRY glEvalMesh1(GLenum mode, GLint i1, GLint i2); }
  1650. void OVR::GLEContext::glEvalMesh1_Hook(GLenum mode, GLint i1, GLint i2)
  1651. {
  1652. glEvalMesh1(mode, i1, i2);
  1653. PostHook(GLE_CURRENT_FUNCTION);
  1654. }
  1655. #undef glEvalMesh2
  1656. extern "C" { GLAPI void GLAPIENTRY glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); }
  1657. void OVR::GLEContext::glEvalMesh2_Hook(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
  1658. {
  1659. glEvalMesh2(mode, i1, i2, j1, j2);
  1660. PostHook(GLE_CURRENT_FUNCTION);
  1661. }
  1662. #undef glEvalPoint1
  1663. extern "C" { GLAPI void GLAPIENTRY glEvalPoint1(GLint i); }
  1664. void OVR::GLEContext::glEvalPoint1_Hook(GLint i)
  1665. {
  1666. glEvalPoint1(i);
  1667. PostHook(GLE_CURRENT_FUNCTION);
  1668. }
  1669. #undef glEvalPoint2
  1670. extern "C" { GLAPI void GLAPIENTRY glEvalPoint2(GLint i, GLint j); }
  1671. void OVR::GLEContext::glEvalPoint2_Hook(GLint i, GLint j)
  1672. {
  1673. glEvalPoint2(i, j);
  1674. PostHook(GLE_CURRENT_FUNCTION);
  1675. }
  1676. #undef glFeedbackBuffer
  1677. extern "C" { GLAPI void GLAPIENTRY glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer); }
  1678. void OVR::GLEContext::glFeedbackBuffer_Hook(GLsizei size, GLenum type, GLfloat *buffer)
  1679. {
  1680. glFeedbackBuffer(size, type, buffer);
  1681. PostHook(GLE_CURRENT_FUNCTION);
  1682. }
  1683. #undef glFinish
  1684. extern "C" { GLAPI void GLAPIENTRY glFinish(); }
  1685. void OVR::GLEContext::glFinish_Hook()
  1686. {
  1687. glFinish();
  1688. PostHook(GLE_CURRENT_FUNCTION);
  1689. }
  1690. #undef glFlush
  1691. extern "C" { GLAPI void GLAPIENTRY glFlush(); }
  1692. void OVR::GLEContext::glFlush_Hook()
  1693. {
  1694. glFlush();
  1695. PostHook(GLE_CURRENT_FUNCTION);
  1696. }
  1697. #undef glFogf
  1698. extern "C" { GLAPI void GLAPIENTRY glFogf(GLenum pname, GLfloat param); }
  1699. void OVR::GLEContext::glFogf_Hook(GLenum pname, GLfloat param)
  1700. {
  1701. glFogf(pname, param);
  1702. PostHook(GLE_CURRENT_FUNCTION);
  1703. }
  1704. #undef glFogfv
  1705. extern "C" { GLAPI void GLAPIENTRY glFogfv(GLenum pname, const GLfloat *params); }
  1706. void OVR::GLEContext::glFogfv_Hook(GLenum pname, const GLfloat *params)
  1707. {
  1708. glFogfv(pname, params);
  1709. PostHook(GLE_CURRENT_FUNCTION);
  1710. }
  1711. #undef glFogi
  1712. extern "C" { GLAPI void GLAPIENTRY glFogi(GLenum pname, GLint param); }
  1713. void OVR::GLEContext::glFogi_Hook(GLenum pname, GLint param)
  1714. {
  1715. glFogi(pname, param);
  1716. PostHook(GLE_CURRENT_FUNCTION);
  1717. }
  1718. #undef glFogiv
  1719. extern "C" { GLAPI void GLAPIENTRY glFogiv(GLenum pname, const GLint *params); }
  1720. void OVR::GLEContext::glFogiv_Hook(GLenum pname, const GLint *params)
  1721. {
  1722. glFogiv(pname, params);
  1723. PostHook(GLE_CURRENT_FUNCTION);
  1724. }
  1725. #undef glFrontFace
  1726. extern "C" { GLAPI void GLAPIENTRY glFrontFace(GLenum mode); }
  1727. void OVR::GLEContext::glFrontFace_Hook(GLenum mode)
  1728. {
  1729. glFrontFace(mode);
  1730. PostHook(GLE_CURRENT_FUNCTION);
  1731. }
  1732. #undef glFrustum
  1733. extern "C" { GLAPI void GLAPIENTRY glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); }
  1734. void OVR::GLEContext::glFrustum_Hook(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
  1735. {
  1736. glFrustum(left, right, bottom, top, zNear, zFar);
  1737. PostHook(GLE_CURRENT_FUNCTION);
  1738. }
  1739. #undef glGenLists
  1740. extern "C" { GLAPI GLuint GLAPIENTRY glGenLists(GLsizei range); }
  1741. GLuint OVR::GLEContext::glGenLists_Hook(GLsizei range)
  1742. {
  1743. GLuint u = glGenLists(range);
  1744. PostHook(GLE_CURRENT_FUNCTION);
  1745. return u;
  1746. }
  1747. #undef glGenTextures
  1748. extern "C" { GLAPI void GLAPIENTRY glGenTextures(GLsizei n, GLuint *textures); }
  1749. void OVR::GLEContext::glGenTextures_Hook(GLsizei n, GLuint *textures)
  1750. {
  1751. glGenTextures(n, textures);
  1752. PostHook(GLE_CURRENT_FUNCTION);
  1753. }
  1754. #undef glGetBooleanv
  1755. extern "C" { GLAPI void GLAPIENTRY glGetBooleanv(GLenum pname, GLboolean *params); }
  1756. void OVR::GLEContext::glGetBooleanv_Hook(GLenum pname, GLboolean *params)
  1757. {
  1758. glGetBooleanv(pname, params);
  1759. PostHook(GLE_CURRENT_FUNCTION);
  1760. }
  1761. #undef glGetClipPlane
  1762. extern "C" { GLAPI void GLAPIENTRY glGetClipPlane(GLenum plane, GLdouble *equation); }
  1763. void OVR::GLEContext::glGetClipPlane_Hook(GLenum plane, GLdouble *equation)
  1764. {
  1765. glGetClipPlane(plane, equation);
  1766. PostHook(GLE_CURRENT_FUNCTION);
  1767. }
  1768. #undef glGetDoublev
  1769. extern "C" { GLAPI void GLAPIENTRY glGetDoublev(GLenum pname, GLdouble *params); }
  1770. void OVR::GLEContext::glGetDoublev_Hook(GLenum pname, GLdouble *params)
  1771. {
  1772. glGetDoublev(pname, params);
  1773. PostHook(GLE_CURRENT_FUNCTION);
  1774. }
  1775. //#undef glGetError Not needed because we happen to do this above already.
  1776. //extern "C" { GLAPI GLenum GLAPIENTRY glGetError(); }
  1777. GLenum OVR::GLEContext::glGetError_Hook()
  1778. {
  1779. GLenum e = glGetError();
  1780. PostHook(GLE_CURRENT_FUNCTION);
  1781. return e;
  1782. }
  1783. #undef glGetFloatv
  1784. extern "C" { GLAPI void GLAPIENTRY glGetFloatv(GLenum pname, GLfloat *params); }
  1785. void OVR::GLEContext::glGetFloatv_Hook(GLenum pname, GLfloat *params)
  1786. {
  1787. glGetFloatv(pname, params);
  1788. PostHook(GLE_CURRENT_FUNCTION);
  1789. }
  1790. #undef glGetIntegerv
  1791. extern "C" { GLAPI void GLAPIENTRY glGetIntegerv(GLenum pname, GLint *params); }
  1792. void OVR::GLEContext::glGetIntegerv_Hook(GLenum pname, GLint *params)
  1793. {
  1794. glGetIntegerv(pname, params);
  1795. PostHook(GLE_CURRENT_FUNCTION);
  1796. }
  1797. #undef glGetLightfv
  1798. extern "C" { GLAPI void GLAPIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat *params); }
  1799. void OVR::GLEContext::glGetLightfv_Hook(GLenum light, GLenum pname, GLfloat *params)
  1800. {
  1801. glGetLightfv(light, pname, params);
  1802. PostHook(GLE_CURRENT_FUNCTION);
  1803. }
  1804. #undef glGetLightiv
  1805. extern "C" { GLAPI void GLAPIENTRY glGetLightiv(GLenum light, GLenum pname, GLint *params); }
  1806. void OVR::GLEContext::glGetLightiv_Hook(GLenum light, GLenum pname, GLint *params)
  1807. {
  1808. glGetLightiv(light, pname, params);
  1809. PostHook(GLE_CURRENT_FUNCTION);
  1810. }
  1811. #undef glGetMapdv
  1812. extern "C" { GLAPI void GLAPIENTRY glGetMapdv(GLenum target, GLenum query, GLdouble *v); }
  1813. void OVR::GLEContext::glGetMapdv_Hook(GLenum target, GLenum query, GLdouble *v)
  1814. {
  1815. glGetMapdv(target, query, v);
  1816. PostHook(GLE_CURRENT_FUNCTION);
  1817. }
  1818. #undef glGetMapfv
  1819. extern "C" { GLAPI void GLAPIENTRY glGetMapfv(GLenum target, GLenum query, GLfloat *v); }
  1820. void OVR::GLEContext::glGetMapfv_Hook(GLenum target, GLenum query, GLfloat *v)
  1821. {
  1822. glGetMapfv(target, query, v);
  1823. PostHook(GLE_CURRENT_FUNCTION);
  1824. }
  1825. #undef glGetMapiv
  1826. extern "C" { GLAPI void GLAPIENTRY glGetMapiv(GLenum target, GLenum query, GLint *v); }
  1827. void OVR::GLEContext::glGetMapiv_Hook(GLenum target, GLenum query, GLint *v)
  1828. {
  1829. glGetMapiv(target, query, v);
  1830. PostHook(GLE_CURRENT_FUNCTION);
  1831. }
  1832. #undef glGetMaterialfv
  1833. extern "C" { GLAPI void GLAPIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params); }
  1834. void OVR::GLEContext::glGetMaterialfv_Hook(GLenum face, GLenum pname, GLfloat *params)
  1835. {
  1836. glGetMaterialfv(face, pname, params);
  1837. PostHook(GLE_CURRENT_FUNCTION);
  1838. }
  1839. #undef glGetMaterialiv
  1840. extern "C" { GLAPI void GLAPIENTRY glGetMaterialiv(GLenum face, GLenum pname, GLint *params); }
  1841. void OVR::GLEContext::glGetMaterialiv_Hook(GLenum face, GLenum pname, GLint *params)
  1842. {
  1843. glGetMaterialiv(face, pname, params);
  1844. PostHook(GLE_CURRENT_FUNCTION);
  1845. }
  1846. #undef glGetPixelMapfv
  1847. extern "C" { GLAPI void GLAPIENTRY glGetPixelMapfv(GLenum map, GLfloat *values); }
  1848. void OVR::GLEContext::glGetPixelMapfv_Hook(GLenum map, GLfloat *values)
  1849. {
  1850. glGetPixelMapfv(map, values);
  1851. PostHook(GLE_CURRENT_FUNCTION);
  1852. }
  1853. #undef glGetPixelMapuiv
  1854. extern "C" { GLAPI void GLAPIENTRY glGetPixelMapuiv(GLenum map, GLuint *values); }
  1855. void OVR::GLEContext::glGetPixelMapuiv_Hook(GLenum map, GLuint *values)
  1856. {
  1857. glGetPixelMapuiv(map, values);
  1858. PostHook(GLE_CURRENT_FUNCTION);
  1859. }
  1860. #undef glGetPixelMapusv
  1861. extern "C" { GLAPI void GLAPIENTRY glGetPixelMapusv(GLenum map, GLushort *values); }
  1862. void OVR::GLEContext::glGetPixelMapusv_Hook(GLenum map, GLushort *values)
  1863. {
  1864. glGetPixelMapusv(map, values);
  1865. PostHook(GLE_CURRENT_FUNCTION);
  1866. }
  1867. #undef glGetPointerv
  1868. extern "C" { GLAPI void GLAPIENTRY glGetPointerv(GLenum pname, void* *params); }
  1869. void OVR::GLEContext::glGetPointerv_Hook(GLenum pname, void* *params)
  1870. {
  1871. glGetPointerv(pname, params);
  1872. PostHook(GLE_CURRENT_FUNCTION);
  1873. }
  1874. #undef glGetPolygonStipple
  1875. extern "C" { GLAPI void GLAPIENTRY glGetPolygonStipple(GLubyte *mask); }
  1876. void OVR::GLEContext::glGetPolygonStipple_Hook(GLubyte *mask)
  1877. {
  1878. glGetPolygonStipple(mask);
  1879. PostHook(GLE_CURRENT_FUNCTION);
  1880. }
  1881. // #undef glGetString // This was already disabled above.
  1882. // extern "C" { GLAPI const GLubyte * GLAPIENTRY glGetString(GLenum name); }
  1883. const GLubyte * OVR::GLEContext::glGetString_Hook(GLenum name)
  1884. {
  1885. const GLubyte * p = glGetString(name);
  1886. PostHook(GLE_CURRENT_FUNCTION);
  1887. return p;
  1888. }
  1889. #undef glGetTexEnvfv
  1890. extern "C" { GLAPI void GLAPIENTRY glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params); }
  1891. void OVR::GLEContext::glGetTexEnvfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  1892. {
  1893. glGetTexEnvfv(target, pname, params);
  1894. PostHook(GLE_CURRENT_FUNCTION);
  1895. }
  1896. #undef glGetTexEnviv
  1897. extern "C" { GLAPI void GLAPIENTRY glGetTexEnviv(GLenum target, GLenum pname, GLint *params); }
  1898. void OVR::GLEContext::glGetTexEnviv_Hook(GLenum target, GLenum pname, GLint *params)
  1899. {
  1900. glGetTexEnviv(target, pname, params);
  1901. PostHook(GLE_CURRENT_FUNCTION);
  1902. }
  1903. #undef glGetTexGendv
  1904. extern "C" { GLAPI void GLAPIENTRY glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params); }
  1905. void OVR::GLEContext::glGetTexGendv_Hook(GLenum coord, GLenum pname, GLdouble *params)
  1906. {
  1907. glGetTexGendv(coord, pname, params);
  1908. PostHook(GLE_CURRENT_FUNCTION);
  1909. }
  1910. #undef glGetTexGenfv
  1911. extern "C" { GLAPI void GLAPIENTRY glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params); }
  1912. void OVR::GLEContext::glGetTexGenfv_Hook(GLenum coord, GLenum pname, GLfloat *params)
  1913. {
  1914. glGetTexGenfv(coord, pname, params);
  1915. PostHook(GLE_CURRENT_FUNCTION);
  1916. }
  1917. #undef glGetTexGeniv
  1918. extern "C" { GLAPI void GLAPIENTRY glGetTexGeniv(GLenum coord, GLenum pname, GLint *params); }
  1919. void OVR::GLEContext::glGetTexGeniv_Hook(GLenum coord, GLenum pname, GLint *params)
  1920. {
  1921. glGetTexGeniv(coord, pname, params);
  1922. PostHook(GLE_CURRENT_FUNCTION);
  1923. }
  1924. #undef glGetTexImage
  1925. extern "C" { GLAPI void GLAPIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); }
  1926. void OVR::GLEContext::glGetTexImage_Hook(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
  1927. {
  1928. glGetTexImage(target, level, format, type, pixels);
  1929. PostHook(GLE_CURRENT_FUNCTION);
  1930. }
  1931. #undef glGetTexLevelParameterfv
  1932. extern "C" { GLAPI void GLAPIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params); }
  1933. void OVR::GLEContext::glGetTexLevelParameterfv_Hook(GLenum target, GLint level, GLenum pname, GLfloat *params)
  1934. {
  1935. glGetTexLevelParameterfv(target, level, pname, params);
  1936. PostHook(GLE_CURRENT_FUNCTION);
  1937. }
  1938. #undef glGetTexLevelParameteriv
  1939. extern "C" { GLAPI void GLAPIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params); }
  1940. void OVR::GLEContext::glGetTexLevelParameteriv_Hook(GLenum target, GLint level, GLenum pname, GLint *params)
  1941. {
  1942. glGetTexLevelParameteriv(target, level, pname, params);
  1943. PostHook(GLE_CURRENT_FUNCTION);
  1944. }
  1945. #undef glGetTexParameterfv
  1946. extern "C" { GLAPI void GLAPIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params); }
  1947. void OVR::GLEContext::glGetTexParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  1948. {
  1949. glGetTexParameterfv(target, pname, params);
  1950. PostHook(GLE_CURRENT_FUNCTION);
  1951. }
  1952. #undef glGetTexParameteriv
  1953. extern "C" { GLAPI void GLAPIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint *params); }
  1954. void OVR::GLEContext::glGetTexParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  1955. {
  1956. glGetTexParameteriv(target, pname, params);
  1957. PostHook(GLE_CURRENT_FUNCTION);
  1958. }
  1959. #undef glHint
  1960. extern "C" { GLAPI void GLAPIENTRY glHint(GLenum target, GLenum mode); }
  1961. void OVR::GLEContext::glHint_Hook(GLenum target, GLenum mode)
  1962. {
  1963. glHint(target, mode);
  1964. PostHook(GLE_CURRENT_FUNCTION);
  1965. }
  1966. #undef glIndexMask
  1967. extern "C" { GLAPI void GLAPIENTRY glIndexMask(GLuint mask); }
  1968. void OVR::GLEContext::glIndexMask_Hook(GLuint mask)
  1969. {
  1970. glIndexMask(mask);
  1971. PostHook(GLE_CURRENT_FUNCTION);
  1972. }
  1973. #undef glIndexPointer
  1974. extern "C" { GLAPI void GLAPIENTRY glIndexPointer(GLenum type, GLsizei stride, const void *pointer); }
  1975. void OVR::GLEContext::glIndexPointer_Hook(GLenum type, GLsizei stride, const void *pointer)
  1976. {
  1977. glIndexPointer(type, stride, pointer);
  1978. PostHook(GLE_CURRENT_FUNCTION);
  1979. }
  1980. #undef glIndexd
  1981. extern "C" { GLAPI void GLAPIENTRY glIndexd(GLdouble c); }
  1982. void OVR::GLEContext::glIndexd_Hook(GLdouble c)
  1983. {
  1984. glIndexd(c);
  1985. PostHook(GLE_CURRENT_FUNCTION);
  1986. }
  1987. #undef glIndexdv
  1988. extern "C" { GLAPI void GLAPIENTRY glIndexdv(const GLdouble *c); }
  1989. void OVR::GLEContext::glIndexdv_Hook(const GLdouble *c)
  1990. {
  1991. glIndexdv(c);
  1992. PostHook(GLE_CURRENT_FUNCTION);
  1993. }
  1994. #undef glIndexf
  1995. extern "C" { GLAPI void GLAPIENTRY glIndexf(GLfloat c); }
  1996. void OVR::GLEContext::glIndexf_Hook(GLfloat c)
  1997. {
  1998. glIndexf(c);
  1999. PostHook(GLE_CURRENT_FUNCTION);
  2000. }
  2001. #undef glIndexfv
  2002. extern "C" { GLAPI void GLAPIENTRY glIndexfv(const GLfloat *c); }
  2003. void OVR::GLEContext::glIndexfv_Hook(const GLfloat *c)
  2004. {
  2005. glIndexfv(c);
  2006. PostHook(GLE_CURRENT_FUNCTION);
  2007. }
  2008. #undef glIndexi
  2009. extern "C" { GLAPI void GLAPIENTRY glIndexi(GLint c); }
  2010. void OVR::GLEContext::glIndexi_Hook(GLint c)
  2011. {
  2012. glIndexi(c);
  2013. PostHook(GLE_CURRENT_FUNCTION);
  2014. }
  2015. #undef glIndexiv
  2016. extern "C" { GLAPI void GLAPIENTRY glIndexiv(const GLint *c); }
  2017. void OVR::GLEContext::glIndexiv_Hook(const GLint *c)
  2018. {
  2019. glIndexiv(c);
  2020. PostHook(GLE_CURRENT_FUNCTION);
  2021. }
  2022. #undef glIndexs
  2023. extern "C" { GLAPI void GLAPIENTRY glIndexs(GLshort c); }
  2024. void OVR::GLEContext::glIndexs_Hook(GLshort c)
  2025. {
  2026. glIndexs(c);
  2027. PostHook(GLE_CURRENT_FUNCTION);
  2028. }
  2029. #undef glIndexsv
  2030. extern "C" { GLAPI void GLAPIENTRY glIndexsv(const GLshort *c); }
  2031. void OVR::GLEContext::glIndexsv_Hook(const GLshort *c)
  2032. {
  2033. glIndexsv(c);
  2034. PostHook(GLE_CURRENT_FUNCTION);
  2035. }
  2036. #undef glIndexub
  2037. extern "C" { GLAPI void GLAPIENTRY glIndexub(GLubyte c); }
  2038. void OVR::GLEContext::glIndexub_Hook(GLubyte c)
  2039. {
  2040. glIndexub(c);
  2041. PostHook(GLE_CURRENT_FUNCTION);
  2042. }
  2043. #undef glIndexubv
  2044. extern "C" { GLAPI void GLAPIENTRY glIndexubv(const GLubyte *c); }
  2045. void OVR::GLEContext::glIndexubv_Hook(const GLubyte *c)
  2046. {
  2047. glIndexubv(c);
  2048. PostHook(GLE_CURRENT_FUNCTION);
  2049. }
  2050. #undef glInitNames
  2051. extern "C" { GLAPI void GLAPIENTRY glInitNames(); }
  2052. void OVR::GLEContext::glInitNames_Hook()
  2053. {
  2054. glInitNames();
  2055. PostHook(GLE_CURRENT_FUNCTION);
  2056. }
  2057. #undef glInterleavedArrays
  2058. extern "C" { GLAPI void GLAPIENTRY glInterleavedArrays(GLenum format, GLsizei stride, const void *pointer); }
  2059. void OVR::GLEContext::glInterleavedArrays_Hook(GLenum format, GLsizei stride, const void *pointer)
  2060. {
  2061. glInterleavedArrays(format, stride, pointer);
  2062. PostHook(GLE_CURRENT_FUNCTION);
  2063. }
  2064. #undef glIsEnabled
  2065. extern "C" { GLAPI GLboolean GLAPIENTRY glIsEnabled(GLenum cap); }
  2066. GLboolean OVR::GLEContext::glIsEnabled_Hook(GLenum cap)
  2067. {
  2068. GLboolean b = glIsEnabled(cap);
  2069. PostHook(GLE_CURRENT_FUNCTION);
  2070. return b;
  2071. }
  2072. #undef glIsList
  2073. extern "C" { GLAPI GLboolean GLAPIENTRY glIsList(GLuint list); }
  2074. GLboolean OVR::GLEContext::glIsList_Hook(GLuint list)
  2075. {
  2076. GLboolean b = glIsList(list);
  2077. PostHook(GLE_CURRENT_FUNCTION);
  2078. return b;
  2079. }
  2080. #undef glIsTexture
  2081. extern "C" { GLAPI GLboolean GLAPIENTRY glIsTexture(GLuint texture); }
  2082. GLboolean OVR::GLEContext::glIsTexture_Hook(GLuint texture)
  2083. {
  2084. GLboolean b = glIsTexture(texture);
  2085. PostHook(GLE_CURRENT_FUNCTION);
  2086. return b;
  2087. }
  2088. #undef glLightModelf
  2089. extern "C" { GLAPI void GLAPIENTRY glLightModelf(GLenum pname, GLfloat param); }
  2090. void OVR::GLEContext::glLightModelf_Hook(GLenum pname, GLfloat param)
  2091. {
  2092. glLightModelf(pname, param);
  2093. PostHook(GLE_CURRENT_FUNCTION);
  2094. }
  2095. #undef glLightModelfv
  2096. extern "C" { GLAPI void GLAPIENTRY glLightModelfv(GLenum pname, const GLfloat *params); }
  2097. void OVR::GLEContext::glLightModelfv_Hook(GLenum pname, const GLfloat *params)
  2098. {
  2099. glLightModelfv(pname, params);
  2100. PostHook(GLE_CURRENT_FUNCTION);
  2101. }
  2102. #undef glLightModeli
  2103. extern "C" { GLAPI void GLAPIENTRY glLightModeli(GLenum pname, GLint param); }
  2104. void OVR::GLEContext::glLightModeli_Hook(GLenum pname, GLint param)
  2105. {
  2106. glLightModeli(pname, param);
  2107. PostHook(GLE_CURRENT_FUNCTION);
  2108. }
  2109. #undef glLightModeliv
  2110. extern "C" { GLAPI void GLAPIENTRY glLightModeliv(GLenum pname, const GLint *params); }
  2111. void OVR::GLEContext::glLightModeliv_Hook(GLenum pname, const GLint *params)
  2112. {
  2113. glLightModeliv(pname, params);
  2114. PostHook(GLE_CURRENT_FUNCTION);
  2115. }
  2116. #undef glLightf
  2117. extern "C" { GLAPI void GLAPIENTRY glLightf(GLenum light, GLenum pname, GLfloat param); }
  2118. void OVR::GLEContext::glLightf_Hook(GLenum light, GLenum pname, GLfloat param)
  2119. {
  2120. glLightf(light, pname, param);
  2121. PostHook(GLE_CURRENT_FUNCTION);
  2122. }
  2123. #undef glLightfv
  2124. extern "C" { GLAPI void GLAPIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat *params); }
  2125. void OVR::GLEContext::glLightfv_Hook(GLenum light, GLenum pname, const GLfloat *params)
  2126. {
  2127. glLightfv(light, pname, params);
  2128. PostHook(GLE_CURRENT_FUNCTION);
  2129. }
  2130. #undef glLighti
  2131. extern "C" { GLAPI void GLAPIENTRY glLighti(GLenum light, GLenum pname, GLint param); }
  2132. void OVR::GLEContext::glLighti_Hook(GLenum light, GLenum pname, GLint param)
  2133. {
  2134. glLighti(light, pname, param);
  2135. PostHook(GLE_CURRENT_FUNCTION);
  2136. }
  2137. #undef glLightiv
  2138. extern "C" { GLAPI void GLAPIENTRY glLightiv(GLenum light, GLenum pname, const GLint *params); }
  2139. void OVR::GLEContext::glLightiv_Hook(GLenum light, GLenum pname, const GLint *params)
  2140. {
  2141. glLightiv(light, pname, params);
  2142. PostHook(GLE_CURRENT_FUNCTION);
  2143. }
  2144. #undef glLineStipple
  2145. extern "C" { GLAPI void GLAPIENTRY glLineStipple(GLint factor, GLushort pattern); }
  2146. void OVR::GLEContext::glLineStipple_Hook(GLint factor, GLushort pattern)
  2147. {
  2148. glLineStipple(factor, pattern);
  2149. PostHook(GLE_CURRENT_FUNCTION);
  2150. }
  2151. #undef glLineWidth
  2152. extern "C" { GLAPI void GLAPIENTRY glLineWidth(GLfloat width); }
  2153. void OVR::GLEContext::glLineWidth_Hook(GLfloat width)
  2154. {
  2155. glLineWidth(width);
  2156. PostHook(GLE_CURRENT_FUNCTION);
  2157. }
  2158. #undef glListBase
  2159. extern "C" { GLAPI void GLAPIENTRY glListBase(GLuint base); }
  2160. void OVR::GLEContext::glListBase_Hook(GLuint base)
  2161. {
  2162. glListBase(base);
  2163. PostHook(GLE_CURRENT_FUNCTION);
  2164. }
  2165. #undef glLoadIdentity
  2166. extern "C" { GLAPI void GLAPIENTRY glLoadIdentity(); }
  2167. void OVR::GLEContext::glLoadIdentity_Hook()
  2168. {
  2169. glLoadIdentity();
  2170. PostHook(GLE_CURRENT_FUNCTION);
  2171. }
  2172. #undef glLoadMatrixd
  2173. extern "C" { GLAPI void GLAPIENTRY glLoadMatrixd(const GLdouble *m); }
  2174. void OVR::GLEContext::glLoadMatrixd_Hook(const GLdouble *m)
  2175. {
  2176. glLoadMatrixd(m);
  2177. PostHook(GLE_CURRENT_FUNCTION);
  2178. }
  2179. #undef glLoadMatrixf
  2180. extern "C" { GLAPI void GLAPIENTRY glLoadMatrixf(const GLfloat *m); }
  2181. void OVR::GLEContext::glLoadMatrixf_Hook(const GLfloat *m)
  2182. {
  2183. glLoadMatrixf(m);
  2184. PostHook(GLE_CURRENT_FUNCTION);
  2185. }
  2186. #undef glLoadName
  2187. extern "C" { GLAPI void GLAPIENTRY glLoadName(GLuint name); }
  2188. void OVR::GLEContext::glLoadName_Hook(GLuint name)
  2189. {
  2190. glLoadName(name);
  2191. PostHook(GLE_CURRENT_FUNCTION);
  2192. }
  2193. #undef glLogicOp
  2194. extern "C" { GLAPI void GLAPIENTRY glLogicOp(GLenum opcode); }
  2195. void OVR::GLEContext::glLogicOp_Hook(GLenum opcode)
  2196. {
  2197. glLogicOp(opcode);
  2198. PostHook(GLE_CURRENT_FUNCTION);
  2199. }
  2200. #undef glMap1d
  2201. extern "C" { GLAPI void GLAPIENTRY glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); }
  2202. void OVR::GLEContext::glMap1d_Hook(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)
  2203. {
  2204. glMap1d(target, u1, u2, stride, order, points);
  2205. PostHook(GLE_CURRENT_FUNCTION);
  2206. }
  2207. #undef glMap1f
  2208. extern "C" { GLAPI void GLAPIENTRY glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); }
  2209. void OVR::GLEContext::glMap1f_Hook(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)
  2210. {
  2211. glMap1f(target, u1, u2, stride, order, points);
  2212. PostHook(GLE_CURRENT_FUNCTION);
  2213. }
  2214. #undef glMap2d
  2215. extern "C" { GLAPI void GLAPIENTRY glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); }
  2216. void OVR::GLEContext::glMap2d_Hook(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)
  2217. {
  2218. glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
  2219. PostHook(GLE_CURRENT_FUNCTION);
  2220. }
  2221. #undef glMap2f
  2222. extern "C" { GLAPI void GLAPIENTRY glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); }
  2223. void OVR::GLEContext::glMap2f_Hook(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)
  2224. {
  2225. glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
  2226. PostHook(GLE_CURRENT_FUNCTION);
  2227. }
  2228. #undef glMapGrid1d
  2229. extern "C" { GLAPI void GLAPIENTRY glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); }
  2230. void OVR::GLEContext::glMapGrid1d_Hook(GLint un, GLdouble u1, GLdouble u2)
  2231. {
  2232. glMapGrid1d(un, u1, u2);
  2233. PostHook(GLE_CURRENT_FUNCTION);
  2234. }
  2235. #undef glMapGrid1f
  2236. extern "C" { GLAPI void GLAPIENTRY glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); }
  2237. void OVR::GLEContext::glMapGrid1f_Hook(GLint un, GLfloat u1, GLfloat u2)
  2238. {
  2239. glMapGrid1f(un, u1, u2);
  2240. PostHook(GLE_CURRENT_FUNCTION);
  2241. }
  2242. #undef glMapGrid2d
  2243. extern "C" { GLAPI void GLAPIENTRY glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); }
  2244. void OVR::GLEContext::glMapGrid2d_Hook(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
  2245. {
  2246. glMapGrid2d(un, u1, u2, vn, v1, v2);
  2247. PostHook(GLE_CURRENT_FUNCTION);
  2248. }
  2249. #undef glMapGrid2f
  2250. extern "C" { GLAPI void GLAPIENTRY glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); }
  2251. void OVR::GLEContext::glMapGrid2f_Hook(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
  2252. {
  2253. glMapGrid2f(un, u1, u2, vn, v1, v2);
  2254. PostHook(GLE_CURRENT_FUNCTION);
  2255. }
  2256. #undef glMaterialf
  2257. extern "C" { GLAPI void GLAPIENTRY glMaterialf(GLenum face, GLenum pname, GLfloat param); }
  2258. void OVR::GLEContext::glMaterialf_Hook(GLenum face, GLenum pname, GLfloat param)
  2259. {
  2260. glMaterialf(face, pname, param);
  2261. PostHook(GLE_CURRENT_FUNCTION);
  2262. }
  2263. #undef glMaterialfv
  2264. extern "C" { GLAPI void GLAPIENTRY glMaterialfv(GLenum face, GLenum pname, const GLfloat *params); }
  2265. void OVR::GLEContext::glMaterialfv_Hook(GLenum face, GLenum pname, const GLfloat *params)
  2266. {
  2267. glMaterialfv(face, pname, params);
  2268. PostHook(GLE_CURRENT_FUNCTION);
  2269. }
  2270. #undef glMateriali
  2271. extern "C" { GLAPI void GLAPIENTRY glMateriali(GLenum face, GLenum pname, GLint param); }
  2272. void OVR::GLEContext::glMateriali_Hook(GLenum face, GLenum pname, GLint param)
  2273. {
  2274. glMateriali(face, pname, param);
  2275. PostHook(GLE_CURRENT_FUNCTION);
  2276. }
  2277. #undef glMaterialiv
  2278. extern "C" { GLAPI void GLAPIENTRY glMaterialiv(GLenum face, GLenum pname, const GLint *params); }
  2279. void OVR::GLEContext::glMaterialiv_Hook(GLenum face, GLenum pname, const GLint *params)
  2280. {
  2281. glMaterialiv(face, pname, params);
  2282. PostHook(GLE_CURRENT_FUNCTION);
  2283. }
  2284. #undef glMatrixMode
  2285. extern "C" { GLAPI void GLAPIENTRY glMatrixMode(GLenum mode); }
  2286. void OVR::GLEContext::glMatrixMode_Hook(GLenum mode)
  2287. {
  2288. glMatrixMode(mode);
  2289. PostHook(GLE_CURRENT_FUNCTION);
  2290. }
  2291. #undef glMultMatrixd
  2292. extern "C" { GLAPI void GLAPIENTRY glMultMatrixd(const GLdouble *m); }
  2293. void OVR::GLEContext::glMultMatrixd_Hook(const GLdouble *m)
  2294. {
  2295. glMultMatrixd(m);
  2296. PostHook(GLE_CURRENT_FUNCTION);
  2297. }
  2298. #undef glMultMatrixf
  2299. extern "C" { GLAPI void GLAPIENTRY glMultMatrixf(const GLfloat *m); }
  2300. void OVR::GLEContext::glMultMatrixf_Hook(const GLfloat *m)
  2301. {
  2302. glMultMatrixf(m);
  2303. PostHook(GLE_CURRENT_FUNCTION);
  2304. }
  2305. #undef glNewList
  2306. extern "C" { GLAPI void GLAPIENTRY glNewList(GLuint list, GLenum mode); }
  2307. void OVR::GLEContext::glNewList_Hook(GLuint list, GLenum mode)
  2308. {
  2309. glNewList(list, mode);
  2310. PostHook(GLE_CURRENT_FUNCTION);
  2311. }
  2312. #undef glNormal3b
  2313. extern "C" { GLAPI void GLAPIENTRY glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz); }
  2314. void OVR::GLEContext::glNormal3b_Hook(GLbyte nx, GLbyte ny, GLbyte nz)
  2315. {
  2316. glNormal3b(nx, ny, nz);
  2317. PostHook(GLE_CURRENT_FUNCTION);
  2318. }
  2319. #undef glNormal3bv
  2320. extern "C" { GLAPI void GLAPIENTRY glNormal3bv(const GLbyte *v); }
  2321. void OVR::GLEContext::glNormal3bv_Hook(const GLbyte *v)
  2322. {
  2323. glNormal3bv(v);
  2324. PostHook(GLE_CURRENT_FUNCTION);
  2325. }
  2326. #undef glNormal3d
  2327. extern "C" { GLAPI void GLAPIENTRY glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz); }
  2328. void OVR::GLEContext::glNormal3d_Hook(GLdouble nx, GLdouble ny, GLdouble nz)
  2329. {
  2330. glNormal3d(nx, ny, nz);
  2331. PostHook(GLE_CURRENT_FUNCTION);
  2332. }
  2333. #undef glNormal3dv
  2334. extern "C" { GLAPI void GLAPIENTRY glNormal3dv(const GLdouble *v); }
  2335. void OVR::GLEContext::glNormal3dv_Hook(const GLdouble *v)
  2336. {
  2337. glNormal3dv(v);
  2338. PostHook(GLE_CURRENT_FUNCTION);
  2339. }
  2340. #undef glNormal3f
  2341. extern "C" { GLAPI void GLAPIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); }
  2342. void OVR::GLEContext::glNormal3f_Hook(GLfloat nx, GLfloat ny, GLfloat nz)
  2343. {
  2344. glNormal3f(nx, ny, nz);
  2345. PostHook(GLE_CURRENT_FUNCTION);
  2346. }
  2347. #undef glNormal3fv
  2348. extern "C" { GLAPI void GLAPIENTRY glNormal3fv(const GLfloat *v); }
  2349. void OVR::GLEContext::glNormal3fv_Hook(const GLfloat *v)
  2350. {
  2351. glNormal3fv(v);
  2352. PostHook(GLE_CURRENT_FUNCTION);
  2353. }
  2354. #undef glNormal3i
  2355. extern "C" { GLAPI void GLAPIENTRY glNormal3i(GLint nx, GLint ny, GLint nz); }
  2356. void OVR::GLEContext::glNormal3i_Hook(GLint nx, GLint ny, GLint nz)
  2357. {
  2358. glNormal3i(nx, ny, nz);
  2359. PostHook(GLE_CURRENT_FUNCTION);
  2360. }
  2361. #undef glNormal3iv
  2362. extern "C" { GLAPI void GLAPIENTRY glNormal3iv(const GLint *v); }
  2363. void OVR::GLEContext::glNormal3iv_Hook(const GLint *v)
  2364. {
  2365. glNormal3iv(v);
  2366. PostHook(GLE_CURRENT_FUNCTION);
  2367. }
  2368. #undef glNormal3s
  2369. extern "C" { GLAPI void GLAPIENTRY glNormal3s(GLshort nx, GLshort ny, GLshort nz); }
  2370. void OVR::GLEContext::glNormal3s_Hook(GLshort nx, GLshort ny, GLshort nz)
  2371. {
  2372. glNormal3s(nx, ny, nz);
  2373. PostHook(GLE_CURRENT_FUNCTION);
  2374. }
  2375. #undef glNormal3sv
  2376. extern "C" { GLAPI void GLAPIENTRY glNormal3sv(const GLshort *v); }
  2377. void OVR::GLEContext::glNormal3sv_Hook(const GLshort *v)
  2378. {
  2379. glNormal3sv(v);
  2380. PostHook(GLE_CURRENT_FUNCTION);
  2381. }
  2382. #undef glNormalPointer
  2383. extern "C" { GLAPI void GLAPIENTRY glNormalPointer(GLenum type, GLsizei stride, const void *pointer); }
  2384. void OVR::GLEContext::glNormalPointer_Hook(GLenum type, GLsizei stride, const void *pointer)
  2385. {
  2386. glNormalPointer(type, stride, pointer);
  2387. PostHook(GLE_CURRENT_FUNCTION);
  2388. }
  2389. #undef glOrtho
  2390. extern "C" { GLAPI void GLAPIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); }
  2391. void OVR::GLEContext::glOrtho_Hook(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
  2392. {
  2393. glOrtho(left, right, bottom, top, zNear, zFar);
  2394. PostHook(GLE_CURRENT_FUNCTION);
  2395. }
  2396. #undef glPassThrough
  2397. extern "C" { GLAPI void GLAPIENTRY glPassThrough(GLfloat token); }
  2398. void OVR::GLEContext::glPassThrough_Hook(GLfloat token)
  2399. {
  2400. glPassThrough(token);
  2401. PostHook(GLE_CURRENT_FUNCTION);
  2402. }
  2403. #undef glPixelMapfv
  2404. extern "C" { GLAPI void GLAPIENTRY glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values); }
  2405. void OVR::GLEContext::glPixelMapfv_Hook(GLenum map, GLsizei mapsize, const GLfloat *values)
  2406. {
  2407. glPixelMapfv(map, mapsize, values);
  2408. PostHook(GLE_CURRENT_FUNCTION);
  2409. }
  2410. #undef glPixelMapuiv
  2411. extern "C" { GLAPI void GLAPIENTRY glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values); }
  2412. void OVR::GLEContext::glPixelMapuiv_Hook(GLenum map, GLsizei mapsize, const GLuint *values)
  2413. {
  2414. glPixelMapuiv(map, mapsize, values);
  2415. PostHook(GLE_CURRENT_FUNCTION);
  2416. }
  2417. #undef glPixelMapusv
  2418. extern "C" { GLAPI void GLAPIENTRY glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values); }
  2419. void OVR::GLEContext::glPixelMapusv_Hook(GLenum map, GLsizei mapsize, const GLushort *values)
  2420. {
  2421. glPixelMapusv(map, mapsize, values);
  2422. PostHook(GLE_CURRENT_FUNCTION);
  2423. }
  2424. #undef glPixelStoref
  2425. extern "C" { GLAPI void GLAPIENTRY glPixelStoref(GLenum pname, GLfloat param); }
  2426. void OVR::GLEContext::glPixelStoref_Hook(GLenum pname, GLfloat param)
  2427. {
  2428. glPixelStoref(pname, param);
  2429. PostHook(GLE_CURRENT_FUNCTION);
  2430. }
  2431. #undef glPixelStorei
  2432. extern "C" { GLAPI void GLAPIENTRY glPixelStorei(GLenum pname, GLint param); }
  2433. void OVR::GLEContext::glPixelStorei_Hook(GLenum pname, GLint param)
  2434. {
  2435. glPixelStorei(pname, param);
  2436. PostHook(GLE_CURRENT_FUNCTION);
  2437. }
  2438. #undef glPixelTransferf
  2439. extern "C" { GLAPI void GLAPIENTRY glPixelTransferf(GLenum pname, GLfloat param); }
  2440. void OVR::GLEContext::glPixelTransferf_Hook(GLenum pname, GLfloat param)
  2441. {
  2442. glPixelTransferf(pname, param);
  2443. PostHook(GLE_CURRENT_FUNCTION);
  2444. }
  2445. #undef glPixelTransferi
  2446. extern "C" { GLAPI void GLAPIENTRY glPixelTransferi(GLenum pname, GLint param); }
  2447. void OVR::GLEContext::glPixelTransferi_Hook(GLenum pname, GLint param)
  2448. {
  2449. glPixelTransferi(pname, param);
  2450. PostHook(GLE_CURRENT_FUNCTION);
  2451. }
  2452. #undef glPixelZoom
  2453. extern "C" { GLAPI void GLAPIENTRY glPixelZoom(GLfloat xfactor, GLfloat yfactor); }
  2454. void OVR::GLEContext::glPixelZoom_Hook(GLfloat xfactor, GLfloat yfactor)
  2455. {
  2456. glPixelZoom(xfactor, yfactor);
  2457. PostHook(GLE_CURRENT_FUNCTION);
  2458. }
  2459. #undef glPointSize
  2460. extern "C" { GLAPI void GLAPIENTRY glPointSize(GLfloat size); }
  2461. void OVR::GLEContext::glPointSize_Hook(GLfloat size)
  2462. {
  2463. glPointSize(size);
  2464. PostHook(GLE_CURRENT_FUNCTION);
  2465. }
  2466. #undef glPolygonMode
  2467. extern "C" { GLAPI void GLAPIENTRY glPolygonMode(GLenum face, GLenum mode); }
  2468. void OVR::GLEContext::glPolygonMode_Hook(GLenum face, GLenum mode)
  2469. {
  2470. glPolygonMode(face, mode);
  2471. PostHook(GLE_CURRENT_FUNCTION);
  2472. }
  2473. #undef glPolygonOffset
  2474. extern "C" { GLAPI void GLAPIENTRY glPolygonOffset(GLfloat factor, GLfloat units); }
  2475. void OVR::GLEContext::glPolygonOffset_Hook(GLfloat factor, GLfloat units)
  2476. {
  2477. glPolygonOffset(factor, units);
  2478. PostHook(GLE_CURRENT_FUNCTION);
  2479. }
  2480. #undef glPolygonStipple
  2481. extern "C" { GLAPI void GLAPIENTRY glPolygonStipple(const GLubyte *mask); }
  2482. void OVR::GLEContext::glPolygonStipple_Hook(const GLubyte *mask)
  2483. {
  2484. glPolygonStipple(mask);
  2485. PostHook(GLE_CURRENT_FUNCTION);
  2486. }
  2487. #undef glPopAttrib
  2488. extern "C" { GLAPI void GLAPIENTRY glPopAttrib(); }
  2489. void OVR::GLEContext::glPopAttrib_Hook()
  2490. {
  2491. glPopAttrib();
  2492. PostHook(GLE_CURRENT_FUNCTION);
  2493. }
  2494. #undef glPopClientAttrib
  2495. extern "C" { GLAPI void GLAPIENTRY glPopClientAttrib(); }
  2496. void OVR::GLEContext::glPopClientAttrib_Hook()
  2497. {
  2498. glPopClientAttrib();
  2499. PostHook(GLE_CURRENT_FUNCTION);
  2500. }
  2501. #undef glPopMatrix
  2502. extern "C" { GLAPI void GLAPIENTRY glPopMatrix(); }
  2503. void OVR::GLEContext::glPopMatrix_Hook()
  2504. {
  2505. glPopMatrix();
  2506. PostHook(GLE_CURRENT_FUNCTION);
  2507. }
  2508. #undef glPopName
  2509. extern "C" { GLAPI void GLAPIENTRY glPopName(); }
  2510. void OVR::GLEContext::glPopName_Hook()
  2511. {
  2512. glPopName();
  2513. PostHook(GLE_CURRENT_FUNCTION);
  2514. }
  2515. #undef glPrioritizeTextures
  2516. extern "C" { GLAPI void GLAPIENTRY glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities); }
  2517. void OVR::GLEContext::glPrioritizeTextures_Hook(GLsizei n, const GLuint *textures, const GLclampf *priorities)
  2518. {
  2519. glPrioritizeTextures(n, textures, priorities);
  2520. PostHook(GLE_CURRENT_FUNCTION);
  2521. }
  2522. #undef glPushAttrib
  2523. extern "C" { GLAPI void GLAPIENTRY glPushAttrib(GLbitfield mask); }
  2524. void OVR::GLEContext::glPushAttrib_Hook(GLbitfield mask)
  2525. {
  2526. glPushAttrib(mask);
  2527. PostHook(GLE_CURRENT_FUNCTION);
  2528. }
  2529. #undef glPushClientAttrib
  2530. extern "C" { GLAPI void GLAPIENTRY glPushClientAttrib(GLbitfield mask); }
  2531. void OVR::GLEContext::glPushClientAttrib_Hook(GLbitfield mask)
  2532. {
  2533. glPushClientAttrib(mask);
  2534. PostHook(GLE_CURRENT_FUNCTION);
  2535. }
  2536. #undef glPushMatrix
  2537. extern "C" { GLAPI void GLAPIENTRY glPushMatrix(); }
  2538. void OVR::GLEContext::glPushMatrix_Hook()
  2539. {
  2540. glPushMatrix();
  2541. PostHook(GLE_CURRENT_FUNCTION);
  2542. }
  2543. #undef glPushName
  2544. extern "C" { GLAPI void GLAPIENTRY glPushName(GLuint name); }
  2545. void OVR::GLEContext::glPushName_Hook(GLuint name)
  2546. {
  2547. glPushName(name);
  2548. PostHook(GLE_CURRENT_FUNCTION);
  2549. }
  2550. #undef glRasterPos2d
  2551. extern "C" { GLAPI void GLAPIENTRY glRasterPos2d(GLdouble x, GLdouble y); }
  2552. void OVR::GLEContext::glRasterPos2d_Hook(GLdouble x, GLdouble y)
  2553. {
  2554. glRasterPos2d(x, y);
  2555. PostHook(GLE_CURRENT_FUNCTION);
  2556. }
  2557. #undef glRasterPos2dv
  2558. extern "C" { GLAPI void GLAPIENTRY glRasterPos2dv(const GLdouble *v); }
  2559. void OVR::GLEContext::glRasterPos2dv_Hook(const GLdouble *v)
  2560. {
  2561. glRasterPos2dv(v);
  2562. PostHook(GLE_CURRENT_FUNCTION);
  2563. }
  2564. #undef glRasterPos2f
  2565. extern "C" { GLAPI void GLAPIENTRY glRasterPos2f(GLfloat x, GLfloat y); }
  2566. void OVR::GLEContext::glRasterPos2f_Hook(GLfloat x, GLfloat y)
  2567. {
  2568. glRasterPos2f(x, y);
  2569. PostHook(GLE_CURRENT_FUNCTION);
  2570. }
  2571. #undef glRasterPos2fv
  2572. extern "C" { GLAPI void GLAPIENTRY glRasterPos2fv(const GLfloat *v); }
  2573. void OVR::GLEContext::glRasterPos2fv_Hook(const GLfloat *v)
  2574. {
  2575. glRasterPos2fv(v);
  2576. PostHook(GLE_CURRENT_FUNCTION);
  2577. }
  2578. #undef glRasterPos2i
  2579. extern "C" { GLAPI void GLAPIENTRY glRasterPos2i(GLint x, GLint y); }
  2580. void OVR::GLEContext::glRasterPos2i_Hook(GLint x, GLint y)
  2581. {
  2582. glRasterPos2i(x, y);
  2583. PostHook(GLE_CURRENT_FUNCTION);
  2584. }
  2585. #undef glRasterPos2iv
  2586. extern "C" { GLAPI void GLAPIENTRY glRasterPos2iv(const GLint *v); }
  2587. void OVR::GLEContext::glRasterPos2iv_Hook(const GLint *v)
  2588. {
  2589. glRasterPos2iv(v);
  2590. PostHook(GLE_CURRENT_FUNCTION);
  2591. }
  2592. #undef glRasterPos2s
  2593. extern "C" { GLAPI void GLAPIENTRY glRasterPos2s(GLshort x, GLshort y); }
  2594. void OVR::GLEContext::glRasterPos2s_Hook(GLshort x, GLshort y)
  2595. {
  2596. glRasterPos2s(x, y);
  2597. PostHook(GLE_CURRENT_FUNCTION);
  2598. }
  2599. #undef glRasterPos2sv
  2600. extern "C" { GLAPI void GLAPIENTRY glRasterPos2sv(const GLshort *v); }
  2601. void OVR::GLEContext::glRasterPos2sv_Hook(const GLshort *v)
  2602. {
  2603. glRasterPos2sv(v);
  2604. PostHook(GLE_CURRENT_FUNCTION);
  2605. }
  2606. #undef glRasterPos3d
  2607. extern "C" { GLAPI void GLAPIENTRY glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); }
  2608. void OVR::GLEContext::glRasterPos3d_Hook(GLdouble x, GLdouble y, GLdouble z)
  2609. {
  2610. glRasterPos3d(x, y, z);
  2611. PostHook(GLE_CURRENT_FUNCTION);
  2612. }
  2613. #undef glRasterPos3dv
  2614. extern "C" { GLAPI void GLAPIENTRY glRasterPos3dv(const GLdouble *v); }
  2615. void OVR::GLEContext::glRasterPos3dv_Hook(const GLdouble *v)
  2616. {
  2617. glRasterPos3dv(v);
  2618. PostHook(GLE_CURRENT_FUNCTION);
  2619. }
  2620. #undef glRasterPos3f
  2621. extern "C" { GLAPI void GLAPIENTRY glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); }
  2622. void OVR::GLEContext::glRasterPos3f_Hook(GLfloat x, GLfloat y, GLfloat z)
  2623. {
  2624. glRasterPos3f(x, y, z);
  2625. PostHook(GLE_CURRENT_FUNCTION);
  2626. }
  2627. #undef glRasterPos3fv
  2628. extern "C" { GLAPI void GLAPIENTRY glRasterPos3fv(const GLfloat *v); }
  2629. void OVR::GLEContext::glRasterPos3fv_Hook(const GLfloat *v)
  2630. {
  2631. glRasterPos3fv(v);
  2632. PostHook(GLE_CURRENT_FUNCTION);
  2633. }
  2634. #undef glRasterPos3i
  2635. extern "C" { GLAPI void GLAPIENTRY glRasterPos3i(GLint x, GLint y, GLint z); }
  2636. void OVR::GLEContext::glRasterPos3i_Hook(GLint x, GLint y, GLint z)
  2637. {
  2638. glRasterPos3i(x, y, z);
  2639. PostHook(GLE_CURRENT_FUNCTION);
  2640. }
  2641. #undef glRasterPos3iv
  2642. extern "C" { GLAPI void GLAPIENTRY glRasterPos3iv(const GLint *v); }
  2643. void OVR::GLEContext::glRasterPos3iv_Hook(const GLint *v)
  2644. {
  2645. glRasterPos3iv(v);
  2646. PostHook(GLE_CURRENT_FUNCTION);
  2647. }
  2648. #undef glRasterPos3s
  2649. extern "C" { GLAPI void GLAPIENTRY glRasterPos3s(GLshort x, GLshort y, GLshort z); }
  2650. void OVR::GLEContext::glRasterPos3s_Hook(GLshort x, GLshort y, GLshort z)
  2651. {
  2652. glRasterPos3s(x, y, z);
  2653. PostHook(GLE_CURRENT_FUNCTION);
  2654. }
  2655. #undef glRasterPos3sv
  2656. extern "C" { GLAPI void GLAPIENTRY glRasterPos3sv(const GLshort *v); }
  2657. void OVR::GLEContext::glRasterPos3sv_Hook(const GLshort *v)
  2658. {
  2659. glRasterPos3sv(v);
  2660. PostHook(GLE_CURRENT_FUNCTION);
  2661. }
  2662. #undef glRasterPos4d
  2663. extern "C" { GLAPI void GLAPIENTRY glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); }
  2664. void OVR::GLEContext::glRasterPos4d_Hook(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
  2665. {
  2666. glRasterPos4d(x, y, z, w);
  2667. PostHook(GLE_CURRENT_FUNCTION);
  2668. }
  2669. #undef glRasterPos4dv
  2670. extern "C" { GLAPI void GLAPIENTRY glRasterPos4dv(const GLdouble *v); }
  2671. void OVR::GLEContext::glRasterPos4dv_Hook(const GLdouble *v)
  2672. {
  2673. glRasterPos4dv(v);
  2674. PostHook(GLE_CURRENT_FUNCTION);
  2675. }
  2676. #undef glRasterPos4f
  2677. extern "C" { GLAPI void GLAPIENTRY glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); }
  2678. void OVR::GLEContext::glRasterPos4f_Hook(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
  2679. {
  2680. glRasterPos4f(x, y, z, w);
  2681. PostHook(GLE_CURRENT_FUNCTION);
  2682. }
  2683. #undef glRasterPos4fv
  2684. extern "C" { GLAPI void GLAPIENTRY glRasterPos4fv(const GLfloat *v); }
  2685. void OVR::GLEContext::glRasterPos4fv_Hook(const GLfloat *v)
  2686. {
  2687. glRasterPos4fv(v);
  2688. PostHook(GLE_CURRENT_FUNCTION);
  2689. }
  2690. #undef glRasterPos4i
  2691. extern "C" { GLAPI void GLAPIENTRY glRasterPos4i(GLint x, GLint y, GLint z, GLint w); }
  2692. void OVR::GLEContext::glRasterPos4i_Hook(GLint x, GLint y, GLint z, GLint w)
  2693. {
  2694. glRasterPos4i(x, y, z, w);
  2695. PostHook(GLE_CURRENT_FUNCTION);
  2696. }
  2697. #undef glRasterPos4iv
  2698. extern "C" { GLAPI void GLAPIENTRY glRasterPos4iv(const GLint *v); }
  2699. void OVR::GLEContext::glRasterPos4iv_Hook(const GLint *v)
  2700. {
  2701. glRasterPos4iv(v);
  2702. PostHook(GLE_CURRENT_FUNCTION);
  2703. }
  2704. #undef glRasterPos4s
  2705. extern "C" { GLAPI void GLAPIENTRY glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); }
  2706. void OVR::GLEContext::glRasterPos4s_Hook(GLshort x, GLshort y, GLshort z, GLshort w)
  2707. {
  2708. glRasterPos4s(x, y, z, w);
  2709. PostHook(GLE_CURRENT_FUNCTION);
  2710. }
  2711. #undef glRasterPos4sv
  2712. extern "C" { GLAPI void GLAPIENTRY glRasterPos4sv(const GLshort *v); }
  2713. void OVR::GLEContext::glRasterPos4sv_Hook(const GLshort *v)
  2714. {
  2715. glRasterPos4sv(v);
  2716. PostHook(GLE_CURRENT_FUNCTION);
  2717. }
  2718. #undef glReadBuffer
  2719. extern "C" { GLAPI void GLAPIENTRY glReadBuffer(GLenum mode); }
  2720. void OVR::GLEContext::glReadBuffer_Hook(GLenum mode)
  2721. {
  2722. glReadBuffer(mode);
  2723. PostHook(GLE_CURRENT_FUNCTION);
  2724. }
  2725. #undef glReadPixels
  2726. extern "C" { GLAPI void GLAPIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); }
  2727. void OVR::GLEContext::glReadPixels_Hook(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)
  2728. {
  2729. glReadPixels(x, y, width, height, format, type, pixels);
  2730. PostHook(GLE_CURRENT_FUNCTION);
  2731. }
  2732. #undef glRectd
  2733. extern "C" { GLAPI void GLAPIENTRY glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); }
  2734. void OVR::GLEContext::glRectd_Hook(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
  2735. {
  2736. glRectd(x1, y1, x2, y2);
  2737. PostHook(GLE_CURRENT_FUNCTION);
  2738. }
  2739. #undef glRectdv
  2740. extern "C" { GLAPI void GLAPIENTRY glRectdv(const GLdouble *v1, const GLdouble *v2); }
  2741. void OVR::GLEContext::glRectdv_Hook(const GLdouble *v1, const GLdouble *v2)
  2742. {
  2743. glRectdv(v1, v2);
  2744. PostHook(GLE_CURRENT_FUNCTION);
  2745. }
  2746. #undef glRectf
  2747. extern "C" { GLAPI void GLAPIENTRY glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); }
  2748. void OVR::GLEContext::glRectf_Hook(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
  2749. {
  2750. glRectf(x1, y1, x2, y2);
  2751. PostHook(GLE_CURRENT_FUNCTION);
  2752. }
  2753. #undef glRectfv
  2754. extern "C" { GLAPI void GLAPIENTRY glRectfv(const GLfloat *v1, const GLfloat *v2); }
  2755. void OVR::GLEContext::glRectfv_Hook(const GLfloat *v1, const GLfloat *v2)
  2756. {
  2757. glRectfv(v1, v2);
  2758. PostHook(GLE_CURRENT_FUNCTION);
  2759. }
  2760. #undef glRecti
  2761. extern "C" { GLAPI void GLAPIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2); }
  2762. void OVR::GLEContext::glRecti_Hook(GLint x1, GLint y1, GLint x2, GLint y2)
  2763. {
  2764. glRecti(x1, y1, x2, y2);
  2765. PostHook(GLE_CURRENT_FUNCTION);
  2766. }
  2767. #undef glRectiv
  2768. extern "C" { GLAPI void GLAPIENTRY glRectiv(const GLint *v1, const GLint *v2); }
  2769. void OVR::GLEContext::glRectiv_Hook(const GLint *v1, const GLint *v2)
  2770. {
  2771. glRectiv(v1, v2);
  2772. PostHook(GLE_CURRENT_FUNCTION);
  2773. }
  2774. #undef glRects
  2775. extern "C" { GLAPI void GLAPIENTRY glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); }
  2776. void OVR::GLEContext::glRects_Hook(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
  2777. {
  2778. glRects(x1, y1, x2, y2);
  2779. PostHook(GLE_CURRENT_FUNCTION);
  2780. }
  2781. #undef glRectsv
  2782. extern "C" { GLAPI void GLAPIENTRY glRectsv(const GLshort *v1, const GLshort *v2); }
  2783. void OVR::GLEContext::glRectsv_Hook(const GLshort *v1, const GLshort *v2)
  2784. {
  2785. glRectsv(v1, v2);
  2786. PostHook(GLE_CURRENT_FUNCTION);
  2787. }
  2788. #undef glRenderMode
  2789. extern "C" { GLAPI GLint GLAPIENTRY glRenderMode(GLenum mode); }
  2790. GLint OVR::GLEContext::glRenderMode_Hook(GLenum mode)
  2791. {
  2792. GLint i = glRenderMode(mode);
  2793. PostHook(GLE_CURRENT_FUNCTION);
  2794. return i;
  2795. }
  2796. #undef glRotated
  2797. extern "C" { GLAPI void GLAPIENTRY glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); }
  2798. void OVR::GLEContext::glRotated_Hook(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
  2799. {
  2800. glRotated(angle, x, y, z);
  2801. PostHook(GLE_CURRENT_FUNCTION);
  2802. }
  2803. #undef glRotatef
  2804. extern "C" { GLAPI void GLAPIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); }
  2805. void OVR::GLEContext::glRotatef_Hook(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
  2806. {
  2807. glRotatef(angle, x, y, z);
  2808. PostHook(GLE_CURRENT_FUNCTION);
  2809. }
  2810. #undef glScaled
  2811. extern "C" { GLAPI void GLAPIENTRY glScaled(GLdouble x, GLdouble y, GLdouble z); }
  2812. void OVR::GLEContext::glScaled_Hook(GLdouble x, GLdouble y, GLdouble z)
  2813. {
  2814. glScaled(x, y, z);
  2815. PostHook(GLE_CURRENT_FUNCTION);
  2816. }
  2817. #undef glScalef
  2818. extern "C" { GLAPI void GLAPIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z); }
  2819. void OVR::GLEContext::glScalef_Hook(GLfloat x, GLfloat y, GLfloat z)
  2820. {
  2821. glScalef(x, y, z);
  2822. PostHook(GLE_CURRENT_FUNCTION);
  2823. }
  2824. #undef glScissor
  2825. extern "C" { GLAPI void GLAPIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height); }
  2826. void OVR::GLEContext::glScissor_Hook(GLint x, GLint y, GLsizei width, GLsizei height)
  2827. {
  2828. glScissor(x, y, width, height);
  2829. PostHook(GLE_CURRENT_FUNCTION);
  2830. }
  2831. #undef glSelectBuffer
  2832. extern "C" { GLAPI void GLAPIENTRY glSelectBuffer(GLsizei size, GLuint *buffer); }
  2833. void OVR::GLEContext::glSelectBuffer_Hook(GLsizei size, GLuint *buffer)
  2834. {
  2835. glSelectBuffer(size, buffer);
  2836. PostHook(GLE_CURRENT_FUNCTION);
  2837. }
  2838. #undef glShadeModel
  2839. extern "C" { GLAPI void GLAPIENTRY glShadeModel(GLenum mode); }
  2840. void OVR::GLEContext::glShadeModel_Hook(GLenum mode)
  2841. {
  2842. glShadeModel(mode);
  2843. PostHook(GLE_CURRENT_FUNCTION);
  2844. }
  2845. #undef glStencilFunc
  2846. extern "C" { GLAPI void GLAPIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask); }
  2847. void OVR::GLEContext::glStencilFunc_Hook(GLenum func, GLint ref, GLuint mask)
  2848. {
  2849. glStencilFunc(func, ref, mask);
  2850. PostHook(GLE_CURRENT_FUNCTION);
  2851. }
  2852. #undef glStencilMask
  2853. extern "C" { GLAPI void GLAPIENTRY glStencilMask(GLuint mask); }
  2854. void OVR::GLEContext::glStencilMask_Hook(GLuint mask)
  2855. {
  2856. glStencilMask(mask);
  2857. PostHook(GLE_CURRENT_FUNCTION);
  2858. }
  2859. #undef glStencilOp
  2860. extern "C" { GLAPI void GLAPIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); }
  2861. void OVR::GLEContext::glStencilOp_Hook(GLenum fail, GLenum zfail, GLenum zpass)
  2862. {
  2863. glStencilOp(fail, zfail, zpass);
  2864. PostHook(GLE_CURRENT_FUNCTION);
  2865. }
  2866. #undef glTexCoord1d
  2867. extern "C" { GLAPI void GLAPIENTRY glTexCoord1d(GLdouble s); }
  2868. void OVR::GLEContext::glTexCoord1d_Hook(GLdouble s)
  2869. {
  2870. glTexCoord1d(s);
  2871. PostHook(GLE_CURRENT_FUNCTION);
  2872. }
  2873. #undef glTexCoord1dv
  2874. extern "C" { GLAPI void GLAPIENTRY glTexCoord1dv(const GLdouble *v); }
  2875. void OVR::GLEContext::glTexCoord1dv_Hook(const GLdouble *v)
  2876. {
  2877. glTexCoord1dv(v);
  2878. PostHook(GLE_CURRENT_FUNCTION);
  2879. }
  2880. #undef glTexCoord1f
  2881. extern "C" { GLAPI void GLAPIENTRY glTexCoord1f(GLfloat s); }
  2882. void OVR::GLEContext::glTexCoord1f_Hook(GLfloat s)
  2883. {
  2884. glTexCoord1f(s);
  2885. PostHook(GLE_CURRENT_FUNCTION);
  2886. }
  2887. #undef glTexCoord1fv
  2888. extern "C" { GLAPI void GLAPIENTRY glTexCoord1fv(const GLfloat *v); }
  2889. void OVR::GLEContext::glTexCoord1fv_Hook(const GLfloat *v)
  2890. {
  2891. glTexCoord1fv(v);
  2892. PostHook(GLE_CURRENT_FUNCTION);
  2893. }
  2894. #undef glTexCoord1i
  2895. extern "C" { GLAPI void GLAPIENTRY glTexCoord1i(GLint s); }
  2896. void OVR::GLEContext::glTexCoord1i_Hook(GLint s)
  2897. {
  2898. glTexCoord1i(s);
  2899. PostHook(GLE_CURRENT_FUNCTION);
  2900. }
  2901. #undef glTexCoord1iv
  2902. extern "C" { GLAPI void GLAPIENTRY glTexCoord1iv(const GLint *v); }
  2903. void OVR::GLEContext::glTexCoord1iv_Hook(const GLint *v)
  2904. {
  2905. glTexCoord1iv(v);
  2906. PostHook(GLE_CURRENT_FUNCTION);
  2907. }
  2908. #undef glTexCoord1s
  2909. extern "C" { GLAPI void GLAPIENTRY glTexCoord1s(GLshort s); }
  2910. void OVR::GLEContext::glTexCoord1s_Hook(GLshort s)
  2911. {
  2912. glTexCoord1s(s);
  2913. PostHook(GLE_CURRENT_FUNCTION);
  2914. }
  2915. #undef glTexCoord1sv
  2916. extern "C" { GLAPI void GLAPIENTRY glTexCoord1sv(const GLshort *v); }
  2917. void OVR::GLEContext::glTexCoord1sv_Hook(const GLshort *v)
  2918. {
  2919. glTexCoord1sv(v);
  2920. PostHook(GLE_CURRENT_FUNCTION);
  2921. }
  2922. #undef glTexCoord2d
  2923. extern "C" { GLAPI void GLAPIENTRY glTexCoord2d(GLdouble s, GLdouble t); }
  2924. void OVR::GLEContext::glTexCoord2d_Hook(GLdouble s, GLdouble t)
  2925. {
  2926. glTexCoord2d(s, t);
  2927. PostHook(GLE_CURRENT_FUNCTION);
  2928. }
  2929. #undef glTexCoord2dv
  2930. extern "C" { GLAPI void GLAPIENTRY glTexCoord2dv(const GLdouble *v); }
  2931. void OVR::GLEContext::glTexCoord2dv_Hook(const GLdouble *v)
  2932. {
  2933. glTexCoord2dv(v);
  2934. PostHook(GLE_CURRENT_FUNCTION);
  2935. }
  2936. #undef glTexCoord2f
  2937. extern "C" { GLAPI void GLAPIENTRY glTexCoord2f(GLfloat s, GLfloat t); }
  2938. void OVR::GLEContext::glTexCoord2f_Hook(GLfloat s, GLfloat t)
  2939. {
  2940. glTexCoord2f(s, t);
  2941. PostHook(GLE_CURRENT_FUNCTION);
  2942. }
  2943. #undef glTexCoord2fv
  2944. extern "C" { GLAPI void GLAPIENTRY glTexCoord2fv(const GLfloat *v); }
  2945. void OVR::GLEContext::glTexCoord2fv_Hook(const GLfloat *v)
  2946. {
  2947. glTexCoord2fv(v);
  2948. PostHook(GLE_CURRENT_FUNCTION);
  2949. }
  2950. #undef glTexCoord2i
  2951. extern "C" { GLAPI void GLAPIENTRY glTexCoord2i(GLint s, GLint t); }
  2952. void OVR::GLEContext::glTexCoord2i_Hook(GLint s, GLint t)
  2953. {
  2954. glTexCoord2i(s, t);
  2955. PostHook(GLE_CURRENT_FUNCTION);
  2956. }
  2957. #undef glTexCoord2iv
  2958. extern "C" { GLAPI void GLAPIENTRY glTexCoord2iv(const GLint *v); }
  2959. void OVR::GLEContext::glTexCoord2iv_Hook(const GLint *v)
  2960. {
  2961. glTexCoord2iv(v);
  2962. PostHook(GLE_CURRENT_FUNCTION);
  2963. }
  2964. #undef glTexCoord2s
  2965. extern "C" { GLAPI void GLAPIENTRY glTexCoord2s(GLshort s, GLshort t); }
  2966. void OVR::GLEContext::glTexCoord2s_Hook(GLshort s, GLshort t)
  2967. {
  2968. glTexCoord2s(s, t);
  2969. PostHook(GLE_CURRENT_FUNCTION);
  2970. }
  2971. #undef glTexCoord2sv
  2972. extern "C" { GLAPI void GLAPIENTRY glTexCoord2sv(const GLshort *v); }
  2973. void OVR::GLEContext::glTexCoord2sv_Hook(const GLshort *v)
  2974. {
  2975. glTexCoord2sv(v);
  2976. PostHook(GLE_CURRENT_FUNCTION);
  2977. }
  2978. #undef glTexCoord3d
  2979. extern "C" { GLAPI void GLAPIENTRY glTexCoord3d(GLdouble s, GLdouble t, GLdouble r); }
  2980. void OVR::GLEContext::glTexCoord3d_Hook(GLdouble s, GLdouble t, GLdouble r)
  2981. {
  2982. glTexCoord3d(s, t, r);
  2983. PostHook(GLE_CURRENT_FUNCTION);
  2984. }
  2985. #undef glTexCoord3dv
  2986. extern "C" { GLAPI void GLAPIENTRY glTexCoord3dv(const GLdouble *v); }
  2987. void OVR::GLEContext::glTexCoord3dv_Hook(const GLdouble *v)
  2988. {
  2989. glTexCoord3dv(v);
  2990. PostHook(GLE_CURRENT_FUNCTION);
  2991. }
  2992. #undef glTexCoord3f
  2993. extern "C" { GLAPI void GLAPIENTRY glTexCoord3f(GLfloat s, GLfloat t, GLfloat r); }
  2994. void OVR::GLEContext::glTexCoord3f_Hook(GLfloat s, GLfloat t, GLfloat r)
  2995. {
  2996. glTexCoord3f(s, t, r);
  2997. PostHook(GLE_CURRENT_FUNCTION);
  2998. }
  2999. #undef glTexCoord3fv
  3000. extern "C" { GLAPI void GLAPIENTRY glTexCoord3fv(const GLfloat *v); }
  3001. void OVR::GLEContext::glTexCoord3fv_Hook(const GLfloat *v)
  3002. {
  3003. glTexCoord3fv(v);
  3004. PostHook(GLE_CURRENT_FUNCTION);
  3005. }
  3006. #undef glTexCoord3i
  3007. extern "C" { GLAPI void GLAPIENTRY glTexCoord3i(GLint s, GLint t, GLint r); }
  3008. void OVR::GLEContext::glTexCoord3i_Hook(GLint s, GLint t, GLint r)
  3009. {
  3010. glTexCoord3i(s, t, r);
  3011. PostHook(GLE_CURRENT_FUNCTION);
  3012. }
  3013. #undef glTexCoord3iv
  3014. extern "C" { GLAPI void GLAPIENTRY glTexCoord3iv(const GLint *v); }
  3015. void OVR::GLEContext::glTexCoord3iv_Hook(const GLint *v)
  3016. {
  3017. glTexCoord3iv(v);
  3018. PostHook(GLE_CURRENT_FUNCTION);
  3019. }
  3020. #undef glTexCoord3s
  3021. extern "C" { GLAPI void GLAPIENTRY glTexCoord3s(GLshort s, GLshort t, GLshort r); }
  3022. void OVR::GLEContext::glTexCoord3s_Hook(GLshort s, GLshort t, GLshort r)
  3023. {
  3024. glTexCoord3s(s, t, r);
  3025. PostHook(GLE_CURRENT_FUNCTION);
  3026. }
  3027. #undef glTexCoord3sv
  3028. extern "C" { GLAPI void GLAPIENTRY glTexCoord3sv(const GLshort *v); }
  3029. void OVR::GLEContext::glTexCoord3sv_Hook(const GLshort *v)
  3030. {
  3031. glTexCoord3sv(v);
  3032. PostHook(GLE_CURRENT_FUNCTION);
  3033. }
  3034. #undef glTexCoord4d
  3035. extern "C" { GLAPI void GLAPIENTRY glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); }
  3036. void OVR::GLEContext::glTexCoord4d_Hook(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
  3037. {
  3038. glTexCoord4d(s, t, r, q);
  3039. PostHook(GLE_CURRENT_FUNCTION);
  3040. }
  3041. #undef glTexCoord4dv
  3042. extern "C" { GLAPI void GLAPIENTRY glTexCoord4dv(const GLdouble *v); }
  3043. void OVR::GLEContext::glTexCoord4dv_Hook(const GLdouble *v)
  3044. {
  3045. glTexCoord4dv(v);
  3046. PostHook(GLE_CURRENT_FUNCTION);
  3047. }
  3048. #undef glTexCoord4f
  3049. extern "C" { GLAPI void GLAPIENTRY glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); }
  3050. void OVR::GLEContext::glTexCoord4f_Hook(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
  3051. {
  3052. glTexCoord4f(s, t, r, q);
  3053. PostHook(GLE_CURRENT_FUNCTION);
  3054. }
  3055. #undef glTexCoord4fv
  3056. extern "C" { GLAPI void GLAPIENTRY glTexCoord4fv(const GLfloat *v); }
  3057. void OVR::GLEContext::glTexCoord4fv_Hook(const GLfloat *v)
  3058. {
  3059. glTexCoord4fv(v);
  3060. PostHook(GLE_CURRENT_FUNCTION);
  3061. }
  3062. #undef glTexCoord4i
  3063. extern "C" { GLAPI void GLAPIENTRY glTexCoord4i(GLint s, GLint t, GLint r, GLint q); }
  3064. void OVR::GLEContext::glTexCoord4i_Hook(GLint s, GLint t, GLint r, GLint q)
  3065. {
  3066. glTexCoord4i(s, t, r, q);
  3067. PostHook(GLE_CURRENT_FUNCTION);
  3068. }
  3069. #undef glTexCoord4iv
  3070. extern "C" { GLAPI void GLAPIENTRY glTexCoord4iv(const GLint *v); }
  3071. void OVR::GLEContext::glTexCoord4iv_Hook(const GLint *v)
  3072. {
  3073. glTexCoord4iv(v);
  3074. PostHook(GLE_CURRENT_FUNCTION);
  3075. }
  3076. #undef glTexCoord4s
  3077. extern "C" { GLAPI void GLAPIENTRY glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); }
  3078. void OVR::GLEContext::glTexCoord4s_Hook(GLshort s, GLshort t, GLshort r, GLshort q)
  3079. {
  3080. glTexCoord4s(s, t, r, q);
  3081. PostHook(GLE_CURRENT_FUNCTION);
  3082. }
  3083. #undef glTexCoord4sv
  3084. extern "C" { GLAPI void GLAPIENTRY glTexCoord4sv(const GLshort *v); }
  3085. void OVR::GLEContext::glTexCoord4sv_Hook(const GLshort *v)
  3086. {
  3087. glTexCoord4sv(v);
  3088. PostHook(GLE_CURRENT_FUNCTION);
  3089. }
  3090. #undef glTexCoordPointer
  3091. extern "C" { GLAPI void GLAPIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); }
  3092. void OVR::GLEContext::glTexCoordPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer)
  3093. {
  3094. glTexCoordPointer(size, type, stride, pointer);
  3095. PostHook(GLE_CURRENT_FUNCTION);
  3096. }
  3097. #undef glTexEnvf
  3098. extern "C" { GLAPI void GLAPIENTRY glTexEnvf(GLenum target, GLenum pname, GLfloat param); }
  3099. void OVR::GLEContext::glTexEnvf_Hook(GLenum target, GLenum pname, GLfloat param)
  3100. {
  3101. glTexEnvf(target, pname, param);
  3102. PostHook(GLE_CURRENT_FUNCTION);
  3103. }
  3104. #undef glTexEnvfv
  3105. extern "C" { GLAPI void GLAPIENTRY glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params); }
  3106. void OVR::GLEContext::glTexEnvfv_Hook(GLenum target, GLenum pname, const GLfloat *params)
  3107. {
  3108. glTexEnvfv(target, pname, params);
  3109. PostHook(GLE_CURRENT_FUNCTION);
  3110. }
  3111. #undef glTexEnvi
  3112. extern "C" { GLAPI void GLAPIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param); }
  3113. void OVR::GLEContext::glTexEnvi_Hook(GLenum target, GLenum pname, GLint param)
  3114. {
  3115. glTexEnvi(target, pname, param);
  3116. PostHook(GLE_CURRENT_FUNCTION);
  3117. }
  3118. #undef glTexEnviv
  3119. extern "C" { GLAPI void GLAPIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint *params); }
  3120. void OVR::GLEContext::glTexEnviv_Hook(GLenum target, GLenum pname, const GLint *params)
  3121. {
  3122. glTexEnviv(target, pname, params);
  3123. PostHook(GLE_CURRENT_FUNCTION);
  3124. }
  3125. #undef glTexGend
  3126. extern "C" { GLAPI void GLAPIENTRY glTexGend(GLenum coord, GLenum pname, GLdouble param); }
  3127. void OVR::GLEContext::glTexGend_Hook(GLenum coord, GLenum pname, GLdouble param)
  3128. {
  3129. glTexGend(coord, pname, param);
  3130. PostHook(GLE_CURRENT_FUNCTION);
  3131. }
  3132. #undef glTexGendv
  3133. extern "C" { GLAPI void GLAPIENTRY glTexGendv(GLenum coord, GLenum pname, const GLdouble *params); }
  3134. void OVR::GLEContext::glTexGendv_Hook(GLenum coord, GLenum pname, const GLdouble *params)
  3135. {
  3136. glTexGendv(coord, pname, params);
  3137. PostHook(GLE_CURRENT_FUNCTION);
  3138. }
  3139. #undef glTexGenf
  3140. extern "C" { GLAPI void GLAPIENTRY glTexGenf(GLenum coord, GLenum pname, GLfloat param); }
  3141. void OVR::GLEContext::glTexGenf_Hook(GLenum coord, GLenum pname, GLfloat param)
  3142. {
  3143. glTexGenf(coord, pname, param);
  3144. PostHook(GLE_CURRENT_FUNCTION);
  3145. }
  3146. #undef glTexGenfv
  3147. extern "C" { GLAPI void GLAPIENTRY glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params); }
  3148. void OVR::GLEContext::glTexGenfv_Hook(GLenum coord, GLenum pname, const GLfloat *params)
  3149. {
  3150. glTexGenfv(coord, pname, params);
  3151. PostHook(GLE_CURRENT_FUNCTION);
  3152. }
  3153. #undef glTexGeni
  3154. extern "C" { GLAPI void GLAPIENTRY glTexGeni(GLenum coord, GLenum pname, GLint param); }
  3155. void OVR::GLEContext::glTexGeni_Hook(GLenum coord, GLenum pname, GLint param)
  3156. {
  3157. glTexGeni(coord, pname, param);
  3158. PostHook(GLE_CURRENT_FUNCTION);
  3159. }
  3160. #undef glTexGeniv
  3161. extern "C" { GLAPI void GLAPIENTRY glTexGeniv(GLenum coord, GLenum pname, const GLint *params); }
  3162. void OVR::GLEContext::glTexGeniv_Hook(GLenum coord, GLenum pname, const GLint *params)
  3163. {
  3164. glTexGeniv(coord, pname, params);
  3165. PostHook(GLE_CURRENT_FUNCTION);
  3166. }
  3167. #undef glTexImage1D
  3168. extern "C" { GLAPI void GLAPIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); }
  3169. void OVR::GLEContext::glTexImage1D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)
  3170. {
  3171. glTexImage1D(target, level, internalformat, width, border, format, type, pixels);
  3172. PostHook(GLE_CURRENT_FUNCTION);
  3173. }
  3174. #undef glTexImage2D
  3175. extern "C" { GLAPI void GLAPIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); }
  3176. void OVR::GLEContext::glTexImage2D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
  3177. {
  3178. glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
  3179. PostHook(GLE_CURRENT_FUNCTION);
  3180. }
  3181. #undef glTexParameterf
  3182. extern "C" { GLAPI void GLAPIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param); }
  3183. void OVR::GLEContext::glTexParameterf_Hook(GLenum target, GLenum pname, GLfloat param)
  3184. {
  3185. glTexParameterf(target, pname, param);
  3186. PostHook(GLE_CURRENT_FUNCTION);
  3187. }
  3188. #undef glTexParameterfv
  3189. extern "C" { GLAPI void GLAPIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params); }
  3190. void OVR::GLEContext::glTexParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params)
  3191. {
  3192. glTexParameterfv(target, pname, params);
  3193. PostHook(GLE_CURRENT_FUNCTION);
  3194. }
  3195. #undef glTexParameteri
  3196. extern "C" { GLAPI void GLAPIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param); }
  3197. void OVR::GLEContext::glTexParameteri_Hook(GLenum target, GLenum pname, GLint param)
  3198. {
  3199. glTexParameteri(target, pname, param);
  3200. PostHook(GLE_CURRENT_FUNCTION);
  3201. }
  3202. #undef glTexParameteriv
  3203. extern "C" { GLAPI void GLAPIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint *params); }
  3204. void OVR::GLEContext::glTexParameteriv_Hook(GLenum target, GLenum pname, const GLint *params)
  3205. {
  3206. glTexParameteriv(target, pname, params);
  3207. PostHook(GLE_CURRENT_FUNCTION);
  3208. }
  3209. #undef glTexSubImage1D
  3210. extern "C" { GLAPI void GLAPIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); }
  3211. void OVR::GLEContext::glTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
  3212. {
  3213. glTexSubImage1D(target, level, xoffset, width, format, type, pixels);
  3214. PostHook(GLE_CURRENT_FUNCTION);
  3215. }
  3216. #undef glTexSubImage2D
  3217. extern "C" { GLAPI void GLAPIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); }
  3218. void OVR::GLEContext::glTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
  3219. {
  3220. glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
  3221. PostHook(GLE_CURRENT_FUNCTION);
  3222. }
  3223. #undef glTranslated
  3224. extern "C" { GLAPI void GLAPIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z); }
  3225. void OVR::GLEContext::glTranslated_Hook(GLdouble x, GLdouble y, GLdouble z)
  3226. {
  3227. glTranslated(x, y, z);
  3228. PostHook(GLE_CURRENT_FUNCTION);
  3229. }
  3230. #undef glTranslatef
  3231. extern "C" { GLAPI void GLAPIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z); }
  3232. void OVR::GLEContext::glTranslatef_Hook(GLfloat x, GLfloat y, GLfloat z)
  3233. {
  3234. glTranslatef(x, y, z);
  3235. PostHook(GLE_CURRENT_FUNCTION);
  3236. }
  3237. #undef glVertex2d
  3238. extern "C" { GLAPI void GLAPIENTRY glVertex2d(GLdouble x, GLdouble y); }
  3239. void OVR::GLEContext::glVertex2d_Hook(GLdouble x, GLdouble y)
  3240. {
  3241. glVertex2d(x, y);
  3242. PostHook(GLE_CURRENT_FUNCTION);
  3243. }
  3244. #undef glVertex2dv
  3245. extern "C" { GLAPI void GLAPIENTRY glVertex2dv(const GLdouble *v); }
  3246. void OVR::GLEContext::glVertex2dv_Hook(const GLdouble *v)
  3247. {
  3248. glVertex2dv(v);
  3249. PostHook(GLE_CURRENT_FUNCTION);
  3250. }
  3251. #undef glVertex2f
  3252. extern "C" { GLAPI void GLAPIENTRY glVertex2f(GLfloat x, GLfloat y); }
  3253. void OVR::GLEContext::glVertex2f_Hook(GLfloat x, GLfloat y)
  3254. {
  3255. glVertex2f(x, y);
  3256. PostHook(GLE_CURRENT_FUNCTION);
  3257. }
  3258. #undef glVertex2fv
  3259. extern "C" { GLAPI void GLAPIENTRY glVertex2fv(const GLfloat *v); }
  3260. void OVR::GLEContext::glVertex2fv_Hook(const GLfloat *v)
  3261. {
  3262. glVertex2fv(v);
  3263. PostHook(GLE_CURRENT_FUNCTION);
  3264. }
  3265. #undef glVertex2i
  3266. extern "C" { GLAPI void GLAPIENTRY glVertex2i(GLint x, GLint y); }
  3267. void OVR::GLEContext::glVertex2i_Hook(GLint x, GLint y)
  3268. {
  3269. glVertex2i(x, y);
  3270. PostHook(GLE_CURRENT_FUNCTION);
  3271. }
  3272. #undef glVertex2iv
  3273. extern "C" { GLAPI void GLAPIENTRY glVertex2iv(const GLint *v); }
  3274. void OVR::GLEContext::glVertex2iv_Hook(const GLint *v)
  3275. {
  3276. glVertex2iv(v);
  3277. PostHook(GLE_CURRENT_FUNCTION);
  3278. }
  3279. #undef glVertex2s
  3280. extern "C" { GLAPI void GLAPIENTRY glVertex2s(GLshort x, GLshort y); }
  3281. void OVR::GLEContext::glVertex2s_Hook(GLshort x, GLshort y)
  3282. {
  3283. glVertex2s(x, y);
  3284. PostHook(GLE_CURRENT_FUNCTION);
  3285. }
  3286. #undef glVertex2sv
  3287. extern "C" { GLAPI void GLAPIENTRY glVertex2sv(const GLshort *v); }
  3288. void OVR::GLEContext::glVertex2sv_Hook(const GLshort *v)
  3289. {
  3290. glVertex2sv(v);
  3291. PostHook(GLE_CURRENT_FUNCTION);
  3292. }
  3293. #undef glVertex3d
  3294. extern "C" { GLAPI void GLAPIENTRY glVertex3d(GLdouble x, GLdouble y, GLdouble z); }
  3295. void OVR::GLEContext::glVertex3d_Hook(GLdouble x, GLdouble y, GLdouble z)
  3296. {
  3297. glVertex3d(x, y, z);
  3298. PostHook(GLE_CURRENT_FUNCTION);
  3299. }
  3300. #undef glVertex3dv
  3301. extern "C" { GLAPI void GLAPIENTRY glVertex3dv(const GLdouble *v); }
  3302. void OVR::GLEContext::glVertex3dv_Hook(const GLdouble *v)
  3303. {
  3304. glVertex3dv(v);
  3305. PostHook(GLE_CURRENT_FUNCTION);
  3306. }
  3307. #undef glVertex3f
  3308. extern "C" { GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z); }
  3309. void OVR::GLEContext::glVertex3f_Hook(GLfloat x, GLfloat y, GLfloat z)
  3310. {
  3311. glVertex3f(x, y, z);
  3312. PostHook(GLE_CURRENT_FUNCTION);
  3313. }
  3314. #undef glVertex3fv
  3315. extern "C" { GLAPI void GLAPIENTRY glVertex3fv(const GLfloat *v); }
  3316. void OVR::GLEContext::glVertex3fv_Hook(const GLfloat *v)
  3317. {
  3318. glVertex3fv(v);
  3319. PostHook(GLE_CURRENT_FUNCTION);
  3320. }
  3321. #undef glVertex3i
  3322. extern "C" { GLAPI void GLAPIENTRY glVertex3i(GLint x, GLint y, GLint z); }
  3323. void OVR::GLEContext::glVertex3i_Hook(GLint x, GLint y, GLint z)
  3324. {
  3325. glVertex3i(x, y, z);
  3326. PostHook(GLE_CURRENT_FUNCTION);
  3327. }
  3328. #undef glVertex3iv
  3329. extern "C" { GLAPI void GLAPIENTRY glVertex3iv(const GLint *v); }
  3330. void OVR::GLEContext::glVertex3iv_Hook(const GLint *v)
  3331. {
  3332. glVertex3iv(v);
  3333. PostHook(GLE_CURRENT_FUNCTION);
  3334. }
  3335. #undef glVertex3s
  3336. extern "C" { GLAPI void GLAPIENTRY glVertex3s(GLshort x, GLshort y, GLshort z); }
  3337. void OVR::GLEContext::glVertex3s_Hook(GLshort x, GLshort y, GLshort z)
  3338. {
  3339. glVertex3s(x, y, z);
  3340. PostHook(GLE_CURRENT_FUNCTION);
  3341. }
  3342. #undef glVertex3sv
  3343. extern "C" { GLAPI void GLAPIENTRY glVertex3sv(const GLshort *v); }
  3344. void OVR::GLEContext::glVertex3sv_Hook(const GLshort *v)
  3345. {
  3346. glVertex3sv(v);
  3347. PostHook(GLE_CURRENT_FUNCTION);
  3348. }
  3349. #undef glVertex4d
  3350. extern "C" { GLAPI void GLAPIENTRY glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); }
  3351. void OVR::GLEContext::glVertex4d_Hook(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
  3352. {
  3353. glVertex4d(x, y, z, w);
  3354. PostHook(GLE_CURRENT_FUNCTION);
  3355. }
  3356. #undef glVertex4dv
  3357. extern "C" { GLAPI void GLAPIENTRY glVertex4dv(const GLdouble *v); }
  3358. void OVR::GLEContext::glVertex4dv_Hook(const GLdouble *v)
  3359. {
  3360. glVertex4dv(v);
  3361. PostHook(GLE_CURRENT_FUNCTION);
  3362. }
  3363. #undef glVertex4f
  3364. extern "C" { GLAPI void GLAPIENTRY glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); }
  3365. void OVR::GLEContext::glVertex4f_Hook(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
  3366. {
  3367. glVertex4f(x, y, z, w);
  3368. PostHook(GLE_CURRENT_FUNCTION);
  3369. }
  3370. #undef glVertex4fv
  3371. extern "C" { GLAPI void GLAPIENTRY glVertex4fv(const GLfloat *v); }
  3372. void OVR::GLEContext::glVertex4fv_Hook(const GLfloat *v)
  3373. {
  3374. glVertex4fv(v);
  3375. PostHook(GLE_CURRENT_FUNCTION);
  3376. }
  3377. #undef glVertex4i
  3378. extern "C" { GLAPI void GLAPIENTRY glVertex4i(GLint x, GLint y, GLint z, GLint w); }
  3379. void OVR::GLEContext::glVertex4i_Hook(GLint x, GLint y, GLint z, GLint w)
  3380. {
  3381. glVertex4i(x, y, z, w);
  3382. PostHook(GLE_CURRENT_FUNCTION);
  3383. }
  3384. #undef glVertex4iv
  3385. extern "C" { GLAPI void GLAPIENTRY glVertex4iv(const GLint *v); }
  3386. void OVR::GLEContext::glVertex4iv_Hook(const GLint *v)
  3387. {
  3388. glVertex4iv(v);
  3389. PostHook(GLE_CURRENT_FUNCTION);
  3390. }
  3391. #undef glVertex4s
  3392. extern "C" { GLAPI void GLAPIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); }
  3393. void OVR::GLEContext::glVertex4s_Hook(GLshort x, GLshort y, GLshort z, GLshort w)
  3394. {
  3395. glVertex4s(x, y, z, w);
  3396. PostHook(GLE_CURRENT_FUNCTION);
  3397. }
  3398. #undef glVertex4sv
  3399. extern "C" { GLAPI void GLAPIENTRY glVertex4sv(const GLshort *v); }
  3400. void OVR::GLEContext::glVertex4sv_Hook(const GLshort *v)
  3401. {
  3402. glVertex4sv(v);
  3403. PostHook(GLE_CURRENT_FUNCTION);
  3404. }
  3405. #undef glVertexPointer
  3406. extern "C" { GLAPI void GLAPIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); }
  3407. void OVR::GLEContext::glVertexPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer)
  3408. {
  3409. glVertexPointer(size, type, stride, pointer);
  3410. PostHook(GLE_CURRENT_FUNCTION);
  3411. }
  3412. #undef glViewport
  3413. extern "C" { GLAPI void GLAPIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height); }
  3414. void OVR::GLEContext::glViewport_Hook(GLint x, GLint y, GLsizei width, GLsizei height)
  3415. {
  3416. glViewport(x, y, width, height);
  3417. PostHook(GLE_CURRENT_FUNCTION);
  3418. }
  3419. // Pointer-based functions
  3420. void OVR::GLEContext::glBlendColor_Hook(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
  3421. {
  3422. if(glBlendColor_Impl)
  3423. glBlendColor_Impl(red, green, blue, alpha);
  3424. PostHook(GLE_CURRENT_FUNCTION);
  3425. }
  3426. void OVR::GLEContext::glBlendEquation_Hook(GLenum mode)
  3427. {
  3428. if(glBlendEquation_Impl)
  3429. glBlendEquation_Impl(mode);
  3430. PostHook(GLE_CURRENT_FUNCTION);
  3431. }
  3432. void OVR::GLEContext::glDrawRangeElements_Hook(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
  3433. {
  3434. if(glDrawRangeElements_Impl)
  3435. glDrawRangeElements_Impl(mode, start, end, count, type, indices);
  3436. PostHook(GLE_CURRENT_FUNCTION);
  3437. }
  3438. void OVR::GLEContext::glTexImage3D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
  3439. {
  3440. if(glTexImage3D_Impl)
  3441. glTexImage3D_Impl(target, level, internalformat, width, height, depth, border, format, type, pixels);
  3442. PostHook(GLE_CURRENT_FUNCTION);
  3443. }
  3444. void OVR::GLEContext::glTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
  3445. {
  3446. if(glTexSubImage3D_Impl)
  3447. glTexSubImage3D_Impl(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
  3448. PostHook(GLE_CURRENT_FUNCTION);
  3449. }
  3450. void OVR::GLEContext::glCopyTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
  3451. {
  3452. if(glCopyTexSubImage3D_Impl)
  3453. glCopyTexSubImage3D_Impl(target, level, xoffset, yoffset, zoffset, x, y, width, height);
  3454. PostHook(GLE_CURRENT_FUNCTION);
  3455. }
  3456. // GL_VERSION_1_2 deprecated functions
  3457. /* Not currently supported
  3458. void OVR::GLEContext::glColorTable_Hook(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
  3459. {
  3460. if(glColorTable_Impl)
  3461. glColorTable_Impl(target, internalformat, width, format, type, table);
  3462. PostHook(GLE_CURRENT_FUNCTION);
  3463. }
  3464. void OVR::GLEContext::glColorTableParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params)
  3465. {
  3466. if(glColorTableParameterfv_Impl)
  3467. glColorTableParameterfv_Impl(target, pname, params);
  3468. PostHook(GLE_CURRENT_FUNCTION);
  3469. }
  3470. void OVR::GLEContext::glColorTableParameteriv_Hook(GLenum target, GLenum pname, const GLint *params)
  3471. {
  3472. if(glColorTableParameteriv_Impl)
  3473. glColorTableParameteriv_Impl(target, pname, params);
  3474. PostHook(GLE_CURRENT_FUNCTION);
  3475. }
  3476. void OVR::GLEContext::glCopyColorTable_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
  3477. {
  3478. if(glCopyColorTable_Impl)
  3479. glCopyColorTable_Impl(target, internalformat, x, y, width);
  3480. PostHook(GLE_CURRENT_FUNCTION);
  3481. }
  3482. void OVR::GLEContext::glGetColorTable_Hook(GLenum target, GLenum format, GLenum type, GLvoid *table)
  3483. {
  3484. if(glGetColorTable_Impl)
  3485. glGetColorTable_Impl(target, format, type, table);
  3486. PostHook(GLE_CURRENT_FUNCTION);
  3487. }
  3488. void OVR::GLEContext::glGetColorTableParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  3489. {
  3490. if(glGetColorTableParameterfv_Impl)
  3491. glGetColorTableParameterfv_Impl(target, pname, params);
  3492. PostHook(GLE_CURRENT_FUNCTION);
  3493. }
  3494. void OVR::GLEContext::glGetColorTableParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  3495. {
  3496. if(glGetColorTableParameteriv_Impl)
  3497. glGetColorTableParameteriv_Impl(target, pname, params);
  3498. PostHook(GLE_CURRENT_FUNCTION);
  3499. }
  3500. void OVR::GLEContext::glColorSubTable_Hook(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
  3501. {
  3502. if(glColorSubTable_Impl)
  3503. glColorSubTable_Impl(target, start, count, format, type, data);
  3504. PostHook(GLE_CURRENT_FUNCTION);
  3505. }
  3506. void OVR::GLEContext::glCopyColorSubTable_Hook(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
  3507. {
  3508. if(glCopyColorSubTable_Impl)
  3509. glCopyColorSubTable_Impl(target, start, x, y, width);
  3510. PostHook(GLE_CURRENT_FUNCTION);
  3511. }
  3512. void OVR::GLEContext::glConvolutionFilter1D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
  3513. {
  3514. if(glConvolutionFilter1D_Impl)
  3515. glConvolutionFilter1D_Impl(target, internalformat, width, format, type, image);
  3516. PostHook(GLE_CURRENT_FUNCTION);
  3517. }
  3518. void OVR::GLEContext::glConvolutionFilter2D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
  3519. {
  3520. if(glConvolutionFilter2D_Impl)
  3521. glConvolutionFilter2D_Impl(target, internalformat, width, height, format, type, image);
  3522. PostHook(GLE_CURRENT_FUNCTION);
  3523. }
  3524. void OVR::GLEContext::glConvolutionParameterf_Hook(GLenum target, GLenum pname, GLfloat params)
  3525. {
  3526. if(glConvolutionParameterf_Impl)
  3527. glConvolutionParameterf_Impl(target, pname, params);
  3528. PostHook(GLE_CURRENT_FUNCTION);
  3529. }
  3530. void OVR::GLEContext::glConvolutionParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params)
  3531. {
  3532. if(glConvolutionParameterfv_Impl)
  3533. glConvolutionParameterfv_Impl(target, pname, params);
  3534. PostHook(GLE_CURRENT_FUNCTION);
  3535. }
  3536. void OVR::GLEContext::glConvolutionParameteri_Hook(GLenum target, GLenum pname, GLint params)
  3537. {
  3538. if(glConvolutionParameteri_Impl)
  3539. glConvolutionParameteri_Impl(target, pname, params);
  3540. PostHook(GLE_CURRENT_FUNCTION);
  3541. }
  3542. void OVR::GLEContext::glConvolutionParameteriv_Hook(GLenum target, GLenum pname, const GLint *params)
  3543. {
  3544. if(glConvolutionParameteriv_Impl)
  3545. glConvolutionParameteriv_Impl(target, pname, params);
  3546. PostHook(GLE_CURRENT_FUNCTION);
  3547. }
  3548. void OVR::GLEContext::glCopyConvolutionFilter1D_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
  3549. {
  3550. if(glCopyConvolutionFilter1D_Impl)
  3551. glCopyConvolutionFilter1D_Impl(target, internalformat, x, y, width);
  3552. PostHook(GLE_CURRENT_FUNCTION);
  3553. }
  3554. void OVR::GLEContext::glCopyConvolutionFilter2D_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
  3555. {
  3556. if(glCopyConvolutionFilter2D_Impl)
  3557. glCopyConvolutionFilter2D_Impl(target, internalformat, x, y, width, height);
  3558. PostHook(GLE_CURRENT_FUNCTION);
  3559. }
  3560. void OVR::GLEContext::glGetConvolutionFilter_Hook(GLenum target, GLenum format, GLenum type, GLvoid *image)
  3561. {
  3562. if(glGetConvolutionFilter_Impl)
  3563. glGetConvolutionFilter_Impl(target, format, type, image);
  3564. PostHook(GLE_CURRENT_FUNCTION);
  3565. }
  3566. void OVR::GLEContext::glGetConvolutionParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  3567. {
  3568. if(glGetConvolutionParameterfv_Impl)
  3569. glGetConvolutionParameterfv_Impl(target, pname, params);
  3570. PostHook(GLE_CURRENT_FUNCTION);
  3571. }
  3572. void OVR::GLEContext::glGetConvolutionParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  3573. {
  3574. if(glGetConvolutionParameteriv_Impl)
  3575. glGetConvolutionParameteriv_Impl(target, pname, params);
  3576. PostHook(GLE_CURRENT_FUNCTION);
  3577. }
  3578. void OVR::GLEContext::glGetSeparableFilter_Hook(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
  3579. {
  3580. if(glGetSeparableFilter_Impl)
  3581. glGetSeparableFilter_Impl(target, format, type, row, column, span);
  3582. PostHook(GLE_CURRENT_FUNCTION);
  3583. }
  3584. void OVR::GLEContext::glSeparableFilter2D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
  3585. {
  3586. if(glSeparableFilter2D_Impl)
  3587. glSeparableFilter2D_Impl(target, internalformat, width, height, format, type, row, column);
  3588. PostHook(GLE_CURRENT_FUNCTION);
  3589. }
  3590. void OVR::GLEContext::glGetHistogram_Hook(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
  3591. {
  3592. if(glGetHistogram_Impl)
  3593. glGetHistogram_Impl(target, reset, format, type, values);
  3594. PostHook(GLE_CURRENT_FUNCTION);
  3595. }
  3596. void OVR::GLEContext::glGetHistogramParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  3597. {
  3598. if(glGetHistogramParameterfv_Impl)
  3599. glGetHistogramParameterfv_Impl(target, pname, params);
  3600. PostHook(GLE_CURRENT_FUNCTION);
  3601. }
  3602. void OVR::GLEContext::glGetHistogramParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  3603. {
  3604. if(glGetHistogramParameteriv_Impl)
  3605. glGetHistogramParameteriv_Impl(target, pname, params);
  3606. PostHook(GLE_CURRENT_FUNCTION);
  3607. }
  3608. void OVR::GLEContext::glGetMinmax_Hook(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
  3609. {
  3610. if(glGetMinmax_Impl)
  3611. glGetMinmax_Impl(target, reset, format, type, values);
  3612. PostHook(GLE_CURRENT_FUNCTION);
  3613. }
  3614. void OVR::GLEContext::glGetMinmaxParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params)
  3615. {
  3616. if(glGetMinmaxParameterfv_Impl)
  3617. glGetMinmaxParameterfv_Impl(target, pname, params);
  3618. PostHook(GLE_CURRENT_FUNCTION);
  3619. }
  3620. void OVR::GLEContext::glGetMinmaxParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  3621. {
  3622. if(glGetMinmaxParameteriv_Impl)
  3623. glGetMinmaxParameteriv_Impl(target, pname, params);
  3624. PostHook(GLE_CURRENT_FUNCTION);
  3625. }
  3626. void OVR::GLEContext::glHistogram_Hook(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
  3627. {
  3628. if(glHistogram_Impl)
  3629. glHistogram_Impl(target, width, internalformat, sink);
  3630. PostHook(GLE_CURRENT_FUNCTION);
  3631. }
  3632. void OVR::GLEContext::glMinmax_Hook(GLenum target, GLenum internalformat, GLboolean sink)
  3633. {
  3634. if(glMinmax_Impl)
  3635. glMinmax_Impl(target, internalformat, sink);
  3636. PostHook(GLE_CURRENT_FUNCTION);
  3637. }
  3638. void OVR::GLEContext::glResetHistogram_Hook(GLenum target)
  3639. {
  3640. if(glResetHistogram_Impl)
  3641. glResetHistogram_Impl(target);
  3642. PostHook(GLE_CURRENT_FUNCTION);
  3643. }
  3644. void OVR::GLEContext::glResetMinmax_Hook(GLenum target)
  3645. {
  3646. if(glResetMinmax_Impl)
  3647. glResetMinmax_Impl(target);
  3648. PostHook(GLE_CURRENT_FUNCTION);
  3649. }
  3650. */
  3651. // GL_VERSION_1_3
  3652. void OVR::GLEContext::glActiveTexture_Hook(GLenum texture)
  3653. {
  3654. if(glActiveTexture_Impl)
  3655. glActiveTexture_Impl(texture);
  3656. PostHook(GLE_CURRENT_FUNCTION);
  3657. }
  3658. void OVR::GLEContext::glSampleCoverage_Hook(GLclampf value, GLboolean invert)
  3659. {
  3660. if(glSampleCoverage_Impl)
  3661. glSampleCoverage_Impl(value, invert);
  3662. PostHook(GLE_CURRENT_FUNCTION);
  3663. }
  3664. void OVR::GLEContext::glCompressedTexImage3D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
  3665. {
  3666. if(glCompressedTexImage3D_Impl)
  3667. glCompressedTexImage3D_Impl(target, level, internalformat, width, height, depth, border, imageSize, data);
  3668. PostHook(GLE_CURRENT_FUNCTION);
  3669. }
  3670. void OVR::GLEContext::glCompressedTexImage2D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
  3671. {
  3672. if(glCompressedTexImage2D_Impl)
  3673. glCompressedTexImage2D_Impl(target, level, internalformat, width, height, border, imageSize, data);
  3674. PostHook(GLE_CURRENT_FUNCTION);
  3675. }
  3676. void OVR::GLEContext::glCompressedTexImage1D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data)
  3677. {
  3678. if(glCompressedTexImage1D_Impl)
  3679. glCompressedTexImage1D_Impl(target, level, internalformat, width, border, imageSize, data);
  3680. PostHook(GLE_CURRENT_FUNCTION);
  3681. }
  3682. void OVR::GLEContext::glCompressedTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)
  3683. {
  3684. if(glCompressedTexSubImage3D_Impl)
  3685. glCompressedTexSubImage3D_Impl(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
  3686. PostHook(GLE_CURRENT_FUNCTION);
  3687. }
  3688. void OVR::GLEContext::glCompressedTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
  3689. {
  3690. if(glCompressedTexSubImage2D_Impl)
  3691. glCompressedTexSubImage2D_Impl(target, level, xoffset, yoffset, width, height, format, imageSize, data);
  3692. PostHook(GLE_CURRENT_FUNCTION);
  3693. }
  3694. void OVR::GLEContext::glCompressedTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data)
  3695. {
  3696. if(glCompressedTexSubImage1D_Impl)
  3697. glCompressedTexSubImage1D_Impl(target, level, xoffset, width, format, imageSize, data);
  3698. PostHook(GLE_CURRENT_FUNCTION);
  3699. }
  3700. void OVR::GLEContext::glGetCompressedTexImage_Hook(GLenum target, GLint level, GLvoid *img)
  3701. {
  3702. if(glGetCompressedTexImage_Impl)
  3703. glGetCompressedTexImage_Impl(target, level, img);
  3704. PostHook(GLE_CURRENT_FUNCTION);
  3705. }
  3706. // GL_VERSION_1_3 deprecated functions
  3707. void OVR::GLEContext::glClientActiveTexture_Hook(GLenum texture)
  3708. {
  3709. if(glClientActiveTexture_Impl)
  3710. glClientActiveTexture_Impl(texture);
  3711. PostHook(GLE_CURRENT_FUNCTION);
  3712. }
  3713. void OVR::GLEContext::glMultiTexCoord1d_Hook(GLenum target, GLdouble s)
  3714. {
  3715. if(glMultiTexCoord1d_Impl)
  3716. glMultiTexCoord1d_Impl(target, s);
  3717. PostHook(GLE_CURRENT_FUNCTION);
  3718. }
  3719. void OVR::GLEContext::glMultiTexCoord1dv_Hook(GLenum target, const GLdouble *v)
  3720. {
  3721. if(glMultiTexCoord1dv_Impl)
  3722. glMultiTexCoord1dv_Impl(target, v);
  3723. PostHook(GLE_CURRENT_FUNCTION);
  3724. }
  3725. void OVR::GLEContext::glMultiTexCoord1f_Hook(GLenum target, GLfloat s)
  3726. {
  3727. if(glMultiTexCoord1f_Impl)
  3728. glMultiTexCoord1f_Impl(target, s);
  3729. PostHook(GLE_CURRENT_FUNCTION);
  3730. }
  3731. void OVR::GLEContext::glMultiTexCoord1fv_Hook(GLenum target, const GLfloat *v)
  3732. {
  3733. if(glMultiTexCoord1fv_Impl)
  3734. glMultiTexCoord1fv_Impl(target, v);
  3735. PostHook(GLE_CURRENT_FUNCTION);
  3736. }
  3737. void OVR::GLEContext::glMultiTexCoord1i_Hook(GLenum target, GLint s)
  3738. {
  3739. if(glMultiTexCoord1i_Impl)
  3740. glMultiTexCoord1i_Impl(target, s);
  3741. PostHook(GLE_CURRENT_FUNCTION);
  3742. }
  3743. void OVR::GLEContext::glMultiTexCoord1iv_Hook(GLenum target, const GLint *v)
  3744. {
  3745. if(glMultiTexCoord1iv_Impl)
  3746. glMultiTexCoord1iv_Impl(target, v);
  3747. PostHook(GLE_CURRENT_FUNCTION);
  3748. }
  3749. void OVR::GLEContext::glMultiTexCoord1s_Hook(GLenum target, GLshort s)
  3750. {
  3751. if(glMultiTexCoord1s_Impl)
  3752. glMultiTexCoord1s_Impl(target, s);
  3753. PostHook(GLE_CURRENT_FUNCTION);
  3754. }
  3755. void OVR::GLEContext::glMultiTexCoord1sv_Hook(GLenum target, const GLshort *v)
  3756. {
  3757. if(glMultiTexCoord1sv_Impl)
  3758. glMultiTexCoord1sv_Impl(target, v);
  3759. PostHook(GLE_CURRENT_FUNCTION);
  3760. }
  3761. void OVR::GLEContext::glMultiTexCoord2d_Hook(GLenum target, GLdouble s, GLdouble t)
  3762. {
  3763. if(glMultiTexCoord2d_Impl)
  3764. glMultiTexCoord2d_Impl(target, s, t);
  3765. PostHook(GLE_CURRENT_FUNCTION);
  3766. }
  3767. void OVR::GLEContext::glMultiTexCoord2dv_Hook(GLenum target, const GLdouble *v)
  3768. {
  3769. if(glMultiTexCoord2dv_Impl)
  3770. glMultiTexCoord2dv_Impl(target, v);
  3771. PostHook(GLE_CURRENT_FUNCTION);
  3772. }
  3773. void OVR::GLEContext::glMultiTexCoord2f_Hook(GLenum target, GLfloat s, GLfloat t)
  3774. {
  3775. if(glMultiTexCoord2f_Impl)
  3776. glMultiTexCoord2f_Impl(target, s, t);
  3777. PostHook(GLE_CURRENT_FUNCTION);
  3778. }
  3779. void OVR::GLEContext::glMultiTexCoord2fv_Hook(GLenum target, const GLfloat *v)
  3780. {
  3781. if(glMultiTexCoord2fv_Impl)
  3782. glMultiTexCoord2fv_Impl(target, v);
  3783. PostHook(GLE_CURRENT_FUNCTION);
  3784. }
  3785. void OVR::GLEContext::glMultiTexCoord2i_Hook(GLenum target, GLint s, GLint t)
  3786. {
  3787. if(glMultiTexCoord2i_Impl)
  3788. glMultiTexCoord2i_Impl(target, s, t);
  3789. PostHook(GLE_CURRENT_FUNCTION);
  3790. }
  3791. void OVR::GLEContext::glMultiTexCoord2iv_Hook(GLenum target, const GLint *v)
  3792. {
  3793. if(glMultiTexCoord2iv_Impl)
  3794. glMultiTexCoord2iv_Impl(target, v);
  3795. PostHook(GLE_CURRENT_FUNCTION);
  3796. }
  3797. void OVR::GLEContext::glMultiTexCoord2s_Hook(GLenum target, GLshort s, GLshort t)
  3798. {
  3799. if(glMultiTexCoord2s_Impl)
  3800. glMultiTexCoord2s_Impl(target, s, t);
  3801. PostHook(GLE_CURRENT_FUNCTION);
  3802. }
  3803. void OVR::GLEContext::glMultiTexCoord2sv_Hook(GLenum target, const GLshort *v)
  3804. {
  3805. if(glMultiTexCoord2sv_Impl)
  3806. glMultiTexCoord2sv_Impl(target, v);
  3807. PostHook(GLE_CURRENT_FUNCTION);
  3808. }
  3809. void OVR::GLEContext::glMultiTexCoord3d_Hook(GLenum target, GLdouble s, GLdouble t, GLdouble r)
  3810. {
  3811. if(glMultiTexCoord3d_Impl)
  3812. glMultiTexCoord3d_Impl(target, s, t, r);
  3813. PostHook(GLE_CURRENT_FUNCTION);
  3814. }
  3815. void OVR::GLEContext::glMultiTexCoord3dv_Hook(GLenum target, const GLdouble *v)
  3816. {
  3817. if(glMultiTexCoord3dv_Impl)
  3818. glMultiTexCoord3dv_Impl(target, v);
  3819. PostHook(GLE_CURRENT_FUNCTION);
  3820. }
  3821. void OVR::GLEContext::glMultiTexCoord3f_Hook(GLenum target, GLfloat s, GLfloat t, GLfloat r)
  3822. {
  3823. if(glMultiTexCoord3f_Impl)
  3824. glMultiTexCoord3f_Impl(target, s, t, r);
  3825. PostHook(GLE_CURRENT_FUNCTION);
  3826. }
  3827. void OVR::GLEContext::glMultiTexCoord3fv_Hook(GLenum target, const GLfloat *v)
  3828. {
  3829. if(glMultiTexCoord3fv_Impl)
  3830. glMultiTexCoord3fv_Impl(target, v);
  3831. PostHook(GLE_CURRENT_FUNCTION);
  3832. }
  3833. void OVR::GLEContext::glMultiTexCoord3i_Hook(GLenum target, GLint s, GLint t, GLint r)
  3834. {
  3835. if(glMultiTexCoord3i_Impl)
  3836. glMultiTexCoord3i_Impl(target, s, t, r);
  3837. PostHook(GLE_CURRENT_FUNCTION);
  3838. }
  3839. void OVR::GLEContext::glMultiTexCoord3iv_Hook(GLenum target, const GLint *v)
  3840. {
  3841. if(glMultiTexCoord3iv_Impl)
  3842. glMultiTexCoord3iv_Impl(target, v);
  3843. PostHook(GLE_CURRENT_FUNCTION);
  3844. }
  3845. void OVR::GLEContext::glMultiTexCoord3s_Hook(GLenum target, GLshort s, GLshort t, GLshort r)
  3846. {
  3847. if(glMultiTexCoord3s_Impl)
  3848. glMultiTexCoord3s_Impl(target, s, t, r);
  3849. PostHook(GLE_CURRENT_FUNCTION);
  3850. }
  3851. void OVR::GLEContext::glMultiTexCoord3sv_Hook(GLenum target, const GLshort *v)
  3852. {
  3853. if(glMultiTexCoord3sv_Impl)
  3854. glMultiTexCoord3sv_Impl(target, v);
  3855. PostHook(GLE_CURRENT_FUNCTION);
  3856. }
  3857. void OVR::GLEContext::glMultiTexCoord4d_Hook(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
  3858. {
  3859. if(glMultiTexCoord4d_Impl)
  3860. glMultiTexCoord4d_Impl(target, s, t, r, q);
  3861. PostHook(GLE_CURRENT_FUNCTION);
  3862. }
  3863. void OVR::GLEContext::glMultiTexCoord4dv_Hook(GLenum target, const GLdouble *v)
  3864. {
  3865. if(glMultiTexCoord4dv_Impl)
  3866. glMultiTexCoord4dv_Impl(target, v);
  3867. PostHook(GLE_CURRENT_FUNCTION);
  3868. }
  3869. void OVR::GLEContext::glMultiTexCoord4f_Hook(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
  3870. {
  3871. if(glMultiTexCoord4f_Impl)
  3872. glMultiTexCoord4f_Impl(target, s, t, r, q);
  3873. PostHook(GLE_CURRENT_FUNCTION);
  3874. }
  3875. void OVR::GLEContext::glMultiTexCoord4fv_Hook(GLenum target, const GLfloat *v)
  3876. {
  3877. if(glMultiTexCoord4fv_Impl)
  3878. glMultiTexCoord4fv_Impl(target, v);
  3879. PostHook(GLE_CURRENT_FUNCTION);
  3880. }
  3881. void OVR::GLEContext::glMultiTexCoord4i_Hook(GLenum target, GLint s, GLint t, GLint r, GLint q)
  3882. {
  3883. if(glMultiTexCoord4i_Impl)
  3884. glMultiTexCoord4i_Impl(target, s, t, r, q);
  3885. PostHook(GLE_CURRENT_FUNCTION);
  3886. }
  3887. void OVR::GLEContext::glMultiTexCoord4iv_Hook(GLenum target, const GLint *v)
  3888. {
  3889. if(glMultiTexCoord4iv_Impl)
  3890. glMultiTexCoord4iv_Impl(target, v);
  3891. PostHook(GLE_CURRENT_FUNCTION);
  3892. }
  3893. void OVR::GLEContext::glMultiTexCoord4s_Hook(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
  3894. {
  3895. if(glMultiTexCoord4s_Impl)
  3896. glMultiTexCoord4s_Impl(target, s, t, r, q);
  3897. PostHook(GLE_CURRENT_FUNCTION);
  3898. }
  3899. void OVR::GLEContext::glMultiTexCoord4sv_Hook(GLenum target, const GLshort *v)
  3900. {
  3901. if(glMultiTexCoord4sv_Impl)
  3902. glMultiTexCoord4sv_Impl(target, v);
  3903. PostHook(GLE_CURRENT_FUNCTION);
  3904. }
  3905. void OVR::GLEContext::glLoadTransposeMatrixf_Hook(const GLfloat *m)
  3906. {
  3907. if(glLoadTransposeMatrixf_Impl)
  3908. glLoadTransposeMatrixf_Impl(m);
  3909. PostHook(GLE_CURRENT_FUNCTION);
  3910. }
  3911. void OVR::GLEContext::glLoadTransposeMatrixd_Hook(const GLdouble *m)
  3912. {
  3913. if(glLoadTransposeMatrixd_Impl)
  3914. glLoadTransposeMatrixd_Impl(m);
  3915. PostHook(GLE_CURRENT_FUNCTION);
  3916. }
  3917. void OVR::GLEContext::glMultTransposeMatrixf_Hook(const GLfloat *m)
  3918. {
  3919. if(glMultTransposeMatrixf_Impl)
  3920. glMultTransposeMatrixf_Impl(m);
  3921. PostHook(GLE_CURRENT_FUNCTION);
  3922. }
  3923. void OVR::GLEContext::glMultTransposeMatrixd_Hook(const GLdouble *m)
  3924. {
  3925. if(glMultTransposeMatrixd_Impl)
  3926. glMultTransposeMatrixd_Impl(m);
  3927. PostHook(GLE_CURRENT_FUNCTION);
  3928. }
  3929. // GL_VERSION_1_4
  3930. void OVR::GLEContext::glBlendFuncSeparate_Hook(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
  3931. {
  3932. if(glBlendFuncSeparate_Impl)
  3933. glBlendFuncSeparate_Impl(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
  3934. PostHook(GLE_CURRENT_FUNCTION);
  3935. }
  3936. void OVR::GLEContext::glMultiDrawArrays_Hook(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
  3937. {
  3938. if(glMultiDrawArrays_Impl)
  3939. glMultiDrawArrays_Impl(mode, first, count, primcount);
  3940. PostHook(GLE_CURRENT_FUNCTION);
  3941. }
  3942. void OVR::GLEContext::glMultiDrawElements_Hook(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)
  3943. {
  3944. if(glMultiDrawElements_Impl)
  3945. glMultiDrawElements_Impl(mode, count, type, indices, primcount);
  3946. PostHook(GLE_CURRENT_FUNCTION);
  3947. }
  3948. void OVR::GLEContext::glPointParameterf_Hook(GLenum pname, GLfloat param)
  3949. {
  3950. if(glPointParameterf_Impl)
  3951. glPointParameterf_Impl(pname, param);
  3952. PostHook(GLE_CURRENT_FUNCTION);
  3953. }
  3954. void OVR::GLEContext::glPointParameterfv_Hook(GLenum pname, const GLfloat *params)
  3955. {
  3956. if(glPointParameterfv_Impl)
  3957. glPointParameterfv_Impl(pname, params);
  3958. PostHook(GLE_CURRENT_FUNCTION);
  3959. }
  3960. void OVR::GLEContext::glPointParameteri_Hook(GLenum pname, GLint param)
  3961. {
  3962. if(glPointParameteri_Impl)
  3963. glPointParameteri_Impl(pname, param);
  3964. PostHook(GLE_CURRENT_FUNCTION);
  3965. }
  3966. void OVR::GLEContext::glPointParameteriv_Hook(GLenum pname, const GLint *params)
  3967. {
  3968. if(glPointParameteriv_Impl)
  3969. glPointParameteriv_Impl(pname, params);
  3970. PostHook(GLE_CURRENT_FUNCTION);
  3971. }
  3972. // GL_VERSION_1_4 deprecated functions
  3973. void OVR::GLEContext::glFogCoordf_Hook(GLfloat coord)
  3974. {
  3975. if(glFogCoordf_Impl)
  3976. glFogCoordf_Impl(coord);
  3977. PostHook(GLE_CURRENT_FUNCTION);
  3978. }
  3979. void OVR::GLEContext::glFogCoordfv_Hook(const GLfloat *coord)
  3980. {
  3981. if(glFogCoordfv_Impl)
  3982. glFogCoordfv_Impl(coord);
  3983. PostHook(GLE_CURRENT_FUNCTION);
  3984. }
  3985. void OVR::GLEContext::glFogCoordd_Hook(GLdouble coord)
  3986. {
  3987. if(glFogCoordd_Impl)
  3988. glFogCoordd_Impl(coord);
  3989. PostHook(GLE_CURRENT_FUNCTION);
  3990. }
  3991. void OVR::GLEContext::glFogCoorddv_Hook(const GLdouble *coord)
  3992. {
  3993. if(glFogCoorddv_Impl)
  3994. glFogCoorddv_Impl(coord);
  3995. PostHook(GLE_CURRENT_FUNCTION);
  3996. }
  3997. void OVR::GLEContext::glFogCoordPointer_Hook(GLenum type, GLsizei stride, const GLvoid *pointer)
  3998. {
  3999. if(glFogCoordPointer_Impl)
  4000. glFogCoordPointer_Impl(type, stride, pointer);
  4001. PostHook(GLE_CURRENT_FUNCTION);
  4002. }
  4003. void OVR::GLEContext::glSecondaryColor3b_Hook(GLbyte red, GLbyte green, GLbyte blue)
  4004. {
  4005. if(glSecondaryColor3b_Impl)
  4006. glSecondaryColor3b_Impl(red, green, blue);
  4007. PostHook(GLE_CURRENT_FUNCTION);
  4008. }
  4009. void OVR::GLEContext::glSecondaryColor3bv_Hook(const GLbyte *v)
  4010. {
  4011. if(glSecondaryColor3bv_Impl)
  4012. glSecondaryColor3bv_Impl(v);
  4013. PostHook(GLE_CURRENT_FUNCTION);
  4014. }
  4015. void OVR::GLEContext::glSecondaryColor3d_Hook(GLdouble red, GLdouble green, GLdouble blue)
  4016. {
  4017. if(glSecondaryColor3d_Impl)
  4018. glSecondaryColor3d_Impl(red, green, blue);
  4019. PostHook(GLE_CURRENT_FUNCTION);
  4020. }
  4021. void OVR::GLEContext::glSecondaryColor3dv_Hook(const GLdouble *v)
  4022. {
  4023. if(glSecondaryColor3dv_Impl)
  4024. glSecondaryColor3dv_Impl(v);
  4025. PostHook(GLE_CURRENT_FUNCTION);
  4026. }
  4027. void OVR::GLEContext::glSecondaryColor3f_Hook(GLfloat red, GLfloat green, GLfloat blue)
  4028. {
  4029. if(glSecondaryColor3f_Impl)
  4030. glSecondaryColor3f_Impl(red, green, blue);
  4031. PostHook(GLE_CURRENT_FUNCTION);
  4032. }
  4033. void OVR::GLEContext::glSecondaryColor3fv_Hook(const GLfloat *v)
  4034. {
  4035. if(glSecondaryColor3fv_Impl)
  4036. glSecondaryColor3fv_Impl(v);
  4037. PostHook(GLE_CURRENT_FUNCTION);
  4038. }
  4039. void OVR::GLEContext::glSecondaryColor3i_Hook(GLint red, GLint green, GLint blue)
  4040. {
  4041. if(glSecondaryColor3i_Impl)
  4042. glSecondaryColor3i_Impl(red, green, blue);
  4043. PostHook(GLE_CURRENT_FUNCTION);
  4044. }
  4045. void OVR::GLEContext::glSecondaryColor3iv_Hook(const GLint *v)
  4046. {
  4047. if(glSecondaryColor3iv_Impl)
  4048. glSecondaryColor3iv_Impl(v);
  4049. PostHook(GLE_CURRENT_FUNCTION);
  4050. }
  4051. void OVR::GLEContext::glSecondaryColor3s_Hook(GLshort red, GLshort green, GLshort blue)
  4052. {
  4053. if(glSecondaryColor3s_Impl)
  4054. glSecondaryColor3s_Impl(red, green, blue);
  4055. PostHook(GLE_CURRENT_FUNCTION);
  4056. }
  4057. void OVR::GLEContext::glSecondaryColor3sv_Hook(const GLshort *v)
  4058. {
  4059. if(glSecondaryColor3sv_Impl)
  4060. glSecondaryColor3sv_Impl(v);
  4061. PostHook(GLE_CURRENT_FUNCTION);
  4062. }
  4063. void OVR::GLEContext::glSecondaryColor3ub_Hook(GLubyte red, GLubyte green, GLubyte blue)
  4064. {
  4065. if(glSecondaryColor3ub_Impl)
  4066. glSecondaryColor3ub_Impl(red, green, blue);
  4067. PostHook(GLE_CURRENT_FUNCTION);
  4068. }
  4069. void OVR::GLEContext::glSecondaryColor3ubv_Hook(const GLubyte *v)
  4070. {
  4071. if(glSecondaryColor3ubv_Impl)
  4072. glSecondaryColor3ubv_Impl(v);
  4073. PostHook(GLE_CURRENT_FUNCTION);
  4074. }
  4075. void OVR::GLEContext::glSecondaryColor3ui_Hook(GLuint red, GLuint green, GLuint blue)
  4076. {
  4077. if(glSecondaryColor3ui_Impl)
  4078. glSecondaryColor3ui_Impl(red, green, blue);
  4079. PostHook(GLE_CURRENT_FUNCTION);
  4080. }
  4081. void OVR::GLEContext::glSecondaryColor3uiv_Hook(const GLuint *v)
  4082. {
  4083. if(glSecondaryColor3uiv_Impl)
  4084. glSecondaryColor3uiv_Impl(v);
  4085. PostHook(GLE_CURRENT_FUNCTION);
  4086. }
  4087. void OVR::GLEContext::glSecondaryColor3us_Hook(GLushort red, GLushort green, GLushort blue)
  4088. {
  4089. if(glSecondaryColor3us_Impl)
  4090. glSecondaryColor3us_Impl(red, green, blue);
  4091. PostHook(GLE_CURRENT_FUNCTION);
  4092. }
  4093. void OVR::GLEContext::glSecondaryColor3usv_Hook(const GLushort *v)
  4094. {
  4095. if(glSecondaryColor3usv_Impl)
  4096. glSecondaryColor3usv_Impl(v);
  4097. PostHook(GLE_CURRENT_FUNCTION);
  4098. }
  4099. void OVR::GLEContext::glSecondaryColorPointer_Hook(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
  4100. {
  4101. if(glSecondaryColorPointer_Impl)
  4102. glSecondaryColorPointer_Impl(size, type, stride, pointer);
  4103. PostHook(GLE_CURRENT_FUNCTION);
  4104. }
  4105. void OVR::GLEContext::glWindowPos2d_Hook(GLdouble x, GLdouble y)
  4106. {
  4107. if(glWindowPos2d_Impl)
  4108. glWindowPos2d_Impl(x, y);
  4109. PostHook(GLE_CURRENT_FUNCTION);
  4110. }
  4111. void OVR::GLEContext::glWindowPos2dv_Hook(const GLdouble *v)
  4112. {
  4113. if(glWindowPos2dv_Impl)
  4114. glWindowPos2dv_Impl(v);
  4115. PostHook(GLE_CURRENT_FUNCTION);
  4116. }
  4117. void OVR::GLEContext::glWindowPos2f_Hook(GLfloat x, GLfloat y)
  4118. {
  4119. if(glWindowPos2f_Impl)
  4120. glWindowPos2f_Impl(x, y);
  4121. PostHook(GLE_CURRENT_FUNCTION);
  4122. }
  4123. void OVR::GLEContext::glWindowPos2fv_Hook(const GLfloat *v)
  4124. {
  4125. if(glWindowPos2fv_Impl)
  4126. glWindowPos2fv_Impl(v);
  4127. PostHook(GLE_CURRENT_FUNCTION);
  4128. }
  4129. void OVR::GLEContext::glWindowPos2i_Hook(GLint x, GLint y)
  4130. {
  4131. if(glWindowPos2i_Impl)
  4132. glWindowPos2i_Impl(x, y);
  4133. PostHook(GLE_CURRENT_FUNCTION);
  4134. }
  4135. void OVR::GLEContext::glWindowPos2iv_Hook(const GLint *v)
  4136. {
  4137. if(glWindowPos2iv_Impl)
  4138. glWindowPos2iv_Impl(v);
  4139. PostHook(GLE_CURRENT_FUNCTION);
  4140. }
  4141. void OVR::GLEContext::glWindowPos2s_Hook(GLshort x, GLshort y)
  4142. {
  4143. if(glWindowPos2s_Impl)
  4144. glWindowPos2s_Impl(x, y);
  4145. PostHook(GLE_CURRENT_FUNCTION);
  4146. }
  4147. void OVR::GLEContext::glWindowPos2sv_Hook(const GLshort *v)
  4148. {
  4149. if(glWindowPos2sv_Impl)
  4150. glWindowPos2sv_Impl(v);
  4151. PostHook(GLE_CURRENT_FUNCTION);
  4152. }
  4153. void OVR::GLEContext::glWindowPos3d_Hook(GLdouble x, GLdouble y, GLdouble z)
  4154. {
  4155. if(glWindowPos3d_Impl)
  4156. glWindowPos3d_Impl(x, y, z);
  4157. PostHook(GLE_CURRENT_FUNCTION);
  4158. }
  4159. void OVR::GLEContext::glWindowPos3dv_Hook(const GLdouble *v)
  4160. {
  4161. if(glWindowPos3dv_Impl)
  4162. glWindowPos3dv_Impl(v);
  4163. PostHook(GLE_CURRENT_FUNCTION);
  4164. }
  4165. void OVR::GLEContext::glWindowPos3f_Hook(GLfloat x, GLfloat y, GLfloat z)
  4166. {
  4167. if(glWindowPos3f_Impl)
  4168. glWindowPos3f_Impl(x, y, z);
  4169. PostHook(GLE_CURRENT_FUNCTION);
  4170. }
  4171. void OVR::GLEContext::glWindowPos3fv_Hook(const GLfloat *v)
  4172. {
  4173. if(glWindowPos3fv_Impl)
  4174. glWindowPos3fv_Impl(v);
  4175. PostHook(GLE_CURRENT_FUNCTION);
  4176. }
  4177. void OVR::GLEContext::glWindowPos3i_Hook(GLint x, GLint y, GLint z)
  4178. {
  4179. if(glWindowPos3i_Impl)
  4180. glWindowPos3i_Impl(x, y, z);
  4181. PostHook(GLE_CURRENT_FUNCTION);
  4182. }
  4183. void OVR::GLEContext::glWindowPos3iv_Hook(const GLint *v)
  4184. {
  4185. if(glWindowPos3iv_Impl)
  4186. glWindowPos3iv_Impl(v);
  4187. PostHook(GLE_CURRENT_FUNCTION);
  4188. }
  4189. void OVR::GLEContext::glWindowPos3s_Hook(GLshort x, GLshort y, GLshort z)
  4190. {
  4191. if(glWindowPos3s_Impl)
  4192. glWindowPos3s_Impl(x, y, z);
  4193. PostHook(GLE_CURRENT_FUNCTION);
  4194. }
  4195. void OVR::GLEContext::glWindowPos3sv_Hook(const GLshort *v)
  4196. {
  4197. if(glWindowPos3sv_Impl)
  4198. glWindowPos3sv_Impl(v);
  4199. PostHook(GLE_CURRENT_FUNCTION);
  4200. }
  4201. // GL_VERSION_1_5
  4202. void OVR::GLEContext::glGenQueries_Hook(GLsizei n, GLuint *ids)
  4203. {
  4204. if(glGenQueries_Impl)
  4205. glGenQueries_Impl(n, ids);
  4206. PostHook(GLE_CURRENT_FUNCTION);
  4207. }
  4208. void OVR::GLEContext::glDeleteQueries_Hook(GLsizei n, const GLuint *ids)
  4209. {
  4210. if(glDeleteQueries_Impl)
  4211. glDeleteQueries_Impl(n, ids);
  4212. PostHook(GLE_CURRENT_FUNCTION);
  4213. }
  4214. GLboolean OVR::GLEContext::glIsQuery_Hook(GLuint id)
  4215. {
  4216. GLboolean b = GL_FALSE;
  4217. if(glIsQuery_Impl)
  4218. b = glIsQuery_Impl(id);
  4219. PostHook(GLE_CURRENT_FUNCTION);
  4220. return b;
  4221. }
  4222. void OVR::GLEContext::glBeginQuery_Hook(GLenum target, GLuint id)
  4223. {
  4224. if(glBeginQuery_Impl)
  4225. glBeginQuery_Impl(target, id);
  4226. PostHook(GLE_CURRENT_FUNCTION);
  4227. }
  4228. void OVR::GLEContext::glEndQuery_Hook(GLenum target)
  4229. {
  4230. if(glEndQuery_Impl)
  4231. glEndQuery_Impl(target);
  4232. PostHook(GLE_CURRENT_FUNCTION);
  4233. }
  4234. void OVR::GLEContext::glGetQueryiv_Hook(GLenum target, GLenum pname, GLint *params)
  4235. {
  4236. if(glGetQueryiv_Impl)
  4237. glGetQueryiv_Impl(target, pname, params);
  4238. PostHook(GLE_CURRENT_FUNCTION);
  4239. }
  4240. void OVR::GLEContext::glGetQueryObjectiv_Hook(GLuint id, GLenum pname, GLint *params)
  4241. {
  4242. if(glGetQueryObjectiv_Impl)
  4243. glGetQueryObjectiv_Impl(id, pname, params);
  4244. PostHook(GLE_CURRENT_FUNCTION);
  4245. }
  4246. void OVR::GLEContext::glGetQueryObjectuiv_Hook(GLuint id, GLenum pname, GLuint *params)
  4247. {
  4248. if(glGetQueryObjectuiv_Impl)
  4249. glGetQueryObjectuiv_Impl(id, pname, params);
  4250. PostHook(GLE_CURRENT_FUNCTION);
  4251. }
  4252. void OVR::GLEContext::glBindBuffer_Hook(GLenum target, GLuint buffer)
  4253. {
  4254. if(glBindBuffer_Impl)
  4255. glBindBuffer_Impl(target, buffer);
  4256. PostHook(GLE_CURRENT_FUNCTION);
  4257. }
  4258. void OVR::GLEContext::glDeleteBuffers_Hook(GLsizei n, const GLuint *buffers)
  4259. {
  4260. if(glDeleteBuffers_Impl)
  4261. glDeleteBuffers_Impl(n, buffers);
  4262. PostHook(GLE_CURRENT_FUNCTION);
  4263. }
  4264. void OVR::GLEContext::glGenBuffers_Hook(GLsizei n, GLuint *buffers)
  4265. {
  4266. if(glGenBuffers_Impl)
  4267. glGenBuffers_Impl(n, buffers);
  4268. PostHook(GLE_CURRENT_FUNCTION);
  4269. }
  4270. GLboolean OVR::GLEContext::glIsBuffer_Hook(GLuint buffer)
  4271. {
  4272. GLboolean b = GL_FALSE;
  4273. if(glIsBuffer_Impl)
  4274. b = glIsBuffer_Impl(buffer);
  4275. PostHook(GLE_CURRENT_FUNCTION);
  4276. return b;
  4277. }
  4278. void OVR::GLEContext::glBufferData_Hook(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
  4279. {
  4280. if(glBufferData_Impl)
  4281. glBufferData_Impl(target, size, data, usage);
  4282. PostHook(GLE_CURRENT_FUNCTION);
  4283. }
  4284. void OVR::GLEContext::glBufferSubData_Hook(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
  4285. {
  4286. if(glBufferSubData_Impl)
  4287. glBufferSubData_Impl(target, offset, size, data);
  4288. PostHook(GLE_CURRENT_FUNCTION);
  4289. }
  4290. void OVR::GLEContext::glGetBufferSubData_Hook(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
  4291. {
  4292. if(glGetBufferSubData_Impl)
  4293. glGetBufferSubData_Impl(target, offset, size, data);
  4294. PostHook(GLE_CURRENT_FUNCTION);
  4295. }
  4296. GLvoid* OVR::GLEContext::glMapBuffer_Hook(GLenum target, GLenum access)
  4297. {
  4298. GLvoid* p = NULL;
  4299. if(glMapBuffer_Impl)
  4300. p = glMapBuffer_Impl(target, access);
  4301. PostHook(GLE_CURRENT_FUNCTION);
  4302. return p;
  4303. }
  4304. GLboolean OVR::GLEContext::glUnmapBuffer_Hook(GLenum target)
  4305. {
  4306. GLboolean b = GL_FALSE;
  4307. if(glUnmapBuffer_Impl)
  4308. b = glUnmapBuffer_Impl(target);
  4309. PostHook(GLE_CURRENT_FUNCTION);
  4310. return b;
  4311. }
  4312. void OVR::GLEContext::glGetBufferParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  4313. {
  4314. if(glGetBufferParameteriv_Impl)
  4315. glGetBufferParameteriv_Impl(target, pname, params);
  4316. PostHook(GLE_CURRENT_FUNCTION);
  4317. }
  4318. void OVR::GLEContext::glGetBufferPointerv_Hook(GLenum target, GLenum pname, GLvoid* *params)
  4319. {
  4320. if(glGetBufferPointerv_Impl)
  4321. glGetBufferPointerv_Impl(target, pname, params);
  4322. PostHook(GLE_CURRENT_FUNCTION);
  4323. }
  4324. // GL_VERSION_2_0
  4325. void OVR::GLEContext::glBlendEquationSeparate_Hook(GLenum modeRGB, GLenum modeAlpha)
  4326. {
  4327. if(glBlendEquationSeparate_Impl)
  4328. glBlendEquationSeparate_Impl(modeRGB, modeAlpha);
  4329. PostHook(GLE_CURRENT_FUNCTION);
  4330. }
  4331. void OVR::GLEContext::glDrawBuffers_Hook(GLsizei n, const GLenum *bufs)
  4332. {
  4333. if(glDrawBuffers_Impl)
  4334. glDrawBuffers_Impl(n, bufs);
  4335. PostHook(GLE_CURRENT_FUNCTION);
  4336. }
  4337. void OVR::GLEContext::glStencilOpSeparate_Hook(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
  4338. {
  4339. if(glStencilOpSeparate_Impl)
  4340. glStencilOpSeparate_Impl(face, sfail, dpfail, dppass);
  4341. PostHook(GLE_CURRENT_FUNCTION);
  4342. }
  4343. void OVR::GLEContext::glStencilFuncSeparate_Hook(GLenum face, GLenum func, GLint ref, GLuint mask)
  4344. {
  4345. if(glStencilFuncSeparate_Impl)
  4346. glStencilFuncSeparate_Impl(face, func, ref, mask);
  4347. PostHook(GLE_CURRENT_FUNCTION);
  4348. }
  4349. void OVR::GLEContext::glStencilMaskSeparate_Hook(GLenum face, GLuint mask)
  4350. {
  4351. if(glStencilMaskSeparate_Impl)
  4352. glStencilMaskSeparate_Impl(face, mask);
  4353. PostHook(GLE_CURRENT_FUNCTION);
  4354. }
  4355. void OVR::GLEContext::glAttachShader_Hook(GLuint program, GLuint shader)
  4356. {
  4357. if(glAttachShader_Impl)
  4358. glAttachShader_Impl(program, shader);
  4359. PostHook(GLE_CURRENT_FUNCTION);
  4360. }
  4361. void OVR::GLEContext::glBindAttribLocation_Hook(GLuint program, GLuint index, const GLchar *name)
  4362. {
  4363. if(glBindAttribLocation_Impl)
  4364. glBindAttribLocation_Impl(program, index, name);
  4365. PostHook(GLE_CURRENT_FUNCTION);
  4366. }
  4367. void OVR::GLEContext::glCompileShader_Hook(GLuint shader)
  4368. {
  4369. if(glCompileShader_Impl)
  4370. glCompileShader_Impl(shader);
  4371. PostHook(GLE_CURRENT_FUNCTION);
  4372. }
  4373. GLuint OVR::GLEContext::glCreateProgram_Hook()
  4374. {
  4375. GLuint u = 0;
  4376. if(glCreateProgram_Impl)
  4377. u = glCreateProgram_Impl();
  4378. PostHook(GLE_CURRENT_FUNCTION);
  4379. return u;
  4380. }
  4381. GLuint OVR::GLEContext::glCreateShader_Hook(GLenum type)
  4382. {
  4383. GLuint u = 0;
  4384. if(glCreateShader_Impl)
  4385. u = glCreateShader_Impl(type);
  4386. PostHook(GLE_CURRENT_FUNCTION);
  4387. return u;
  4388. }
  4389. void OVR::GLEContext::glDeleteProgram_Hook(GLuint program)
  4390. {
  4391. if(glDeleteProgram_Impl)
  4392. glDeleteProgram_Impl(program);
  4393. PostHook(GLE_CURRENT_FUNCTION);
  4394. }
  4395. void OVR::GLEContext::glDeleteShader_Hook(GLuint shader)
  4396. {
  4397. if(glDeleteShader_Impl)
  4398. glDeleteShader_Impl(shader);
  4399. PostHook(GLE_CURRENT_FUNCTION);
  4400. }
  4401. void OVR::GLEContext::glDetachShader_Hook(GLuint program, GLuint shader)
  4402. {
  4403. if(glDetachShader_Impl)
  4404. glDetachShader_Impl(program, shader);
  4405. PostHook(GLE_CURRENT_FUNCTION);
  4406. }
  4407. void OVR::GLEContext::glDisableVertexAttribArray_Hook(GLuint index)
  4408. {
  4409. if(glDisableVertexAttribArray_Impl)
  4410. glDisableVertexAttribArray_Impl(index);
  4411. PostHook(GLE_CURRENT_FUNCTION);
  4412. }
  4413. void OVR::GLEContext::glEnableVertexAttribArray_Hook(GLuint index)
  4414. {
  4415. if(glEnableVertexAttribArray_Impl)
  4416. glEnableVertexAttribArray_Impl(index);
  4417. PostHook(GLE_CURRENT_FUNCTION);
  4418. }
  4419. void OVR::GLEContext::glGetActiveAttrib_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
  4420. {
  4421. if(glGetActiveAttrib_Impl)
  4422. glGetActiveAttrib_Impl(program, index, bufSize, length, size, type, name);
  4423. PostHook(GLE_CURRENT_FUNCTION);
  4424. }
  4425. void OVR::GLEContext::glGetActiveUniform_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
  4426. {
  4427. if(glGetActiveUniform_Impl)
  4428. glGetActiveUniform_Impl(program, index, bufSize, length, size, type, name);
  4429. PostHook(GLE_CURRENT_FUNCTION);
  4430. }
  4431. void OVR::GLEContext::glGetAttachedShaders_Hook(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj)
  4432. {
  4433. if(glGetAttachedShaders_Impl)
  4434. glGetAttachedShaders_Impl(program, maxCount, count, obj);
  4435. PostHook(GLE_CURRENT_FUNCTION);
  4436. }
  4437. GLint OVR::GLEContext::glGetAttribLocation_Hook(GLuint program, const GLchar *name)
  4438. {
  4439. GLint i = 0;
  4440. if(glGetAttribLocation_Impl)
  4441. i = glGetAttribLocation_Impl(program, name);
  4442. PostHook(GLE_CURRENT_FUNCTION);
  4443. return i;
  4444. }
  4445. void OVR::GLEContext::glGetProgramiv_Hook(GLuint program, GLenum pname, GLint *params)
  4446. {
  4447. if(glGetProgramiv_Impl)
  4448. glGetProgramiv_Impl(program, pname, params);
  4449. PostHook(GLE_CURRENT_FUNCTION);
  4450. }
  4451. void OVR::GLEContext::glGetProgramInfoLog_Hook(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
  4452. {
  4453. if(glGetProgramInfoLog_Impl)
  4454. glGetProgramInfoLog_Impl(program, bufSize, length, infoLog);
  4455. PostHook(GLE_CURRENT_FUNCTION);
  4456. }
  4457. void OVR::GLEContext::glGetShaderiv_Hook(GLuint shader, GLenum pname, GLint *params)
  4458. {
  4459. if(glGetShaderiv_Impl)
  4460. glGetShaderiv_Impl(shader, pname, params);
  4461. PostHook(GLE_CURRENT_FUNCTION);
  4462. }
  4463. void OVR::GLEContext::glGetShaderInfoLog_Hook(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
  4464. {
  4465. if(glGetShaderInfoLog_Impl)
  4466. glGetShaderInfoLog_Impl(shader, bufSize, length, infoLog);
  4467. PostHook(GLE_CURRENT_FUNCTION);
  4468. }
  4469. void OVR::GLEContext::glGetShaderSource_Hook(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)
  4470. {
  4471. if(glGetShaderSource_Impl)
  4472. glGetShaderSource_Impl(shader, bufSize, length, source);
  4473. PostHook(GLE_CURRENT_FUNCTION);
  4474. }
  4475. GLint OVR::GLEContext::glGetUniformLocation_Hook(GLuint program, const GLchar *name)
  4476. {
  4477. GLint i = 0;
  4478. if(glGetUniformLocation_Impl)
  4479. i = glGetUniformLocation_Impl(program, name);
  4480. PostHook(GLE_CURRENT_FUNCTION);
  4481. return i;
  4482. }
  4483. void OVR::GLEContext::glGetUniformfv_Hook(GLuint program, GLint location, GLfloat *params)
  4484. {
  4485. if(glGetUniformfv_Impl)
  4486. glGetUniformfv_Impl(program, location, params);
  4487. PostHook(GLE_CURRENT_FUNCTION);
  4488. }
  4489. void OVR::GLEContext::glGetUniformiv_Hook(GLuint program, GLint location, GLint *params)
  4490. {
  4491. if(glGetUniformiv_Impl)
  4492. glGetUniformiv_Impl(program, location, params);
  4493. PostHook(GLE_CURRENT_FUNCTION);
  4494. }
  4495. void OVR::GLEContext::glGetVertexAttribdv_Hook(GLuint index, GLenum pname, GLdouble *params)
  4496. {
  4497. if(glGetVertexAttribdv_Impl)
  4498. glGetVertexAttribdv_Impl(index, pname, params);
  4499. PostHook(GLE_CURRENT_FUNCTION);
  4500. }
  4501. void OVR::GLEContext::glGetVertexAttribfv_Hook(GLuint index, GLenum pname, GLfloat *params)
  4502. {
  4503. if(glGetVertexAttribfv_Impl)
  4504. glGetVertexAttribfv_Impl(index, pname, params);
  4505. PostHook(GLE_CURRENT_FUNCTION);
  4506. }
  4507. void OVR::GLEContext::glGetVertexAttribiv_Hook(GLuint index, GLenum pname, GLint *params)
  4508. {
  4509. if(glGetVertexAttribiv_Impl)
  4510. glGetVertexAttribiv_Impl(index, pname, params);
  4511. PostHook(GLE_CURRENT_FUNCTION);
  4512. }
  4513. void OVR::GLEContext::glGetVertexAttribPointerv_Hook(GLuint index, GLenum pname, GLvoid* *pointer)
  4514. {
  4515. if(glGetVertexAttribPointerv_Impl)
  4516. glGetVertexAttribPointerv_Impl(index, pname, pointer);
  4517. PostHook(GLE_CURRENT_FUNCTION);
  4518. }
  4519. GLboolean OVR::GLEContext::glIsProgram_Hook(GLuint program)
  4520. {
  4521. GLboolean b = GL_FALSE;
  4522. if(glIsProgram_Impl)
  4523. b = glIsProgram_Impl(program);
  4524. PostHook(GLE_CURRENT_FUNCTION);
  4525. return b;
  4526. }
  4527. GLboolean OVR::GLEContext::glIsShader_Hook(GLuint shader)
  4528. {
  4529. GLboolean b = GL_FALSE;
  4530. if(glIsShader_Impl)
  4531. b = glIsShader_Impl(shader);
  4532. PostHook(GLE_CURRENT_FUNCTION);
  4533. return b;
  4534. }
  4535. void OVR::GLEContext::glLinkProgram_Hook(GLuint program)
  4536. {
  4537. if(glLinkProgram_Impl)
  4538. glLinkProgram_Impl(program);
  4539. PostHook(GLE_CURRENT_FUNCTION);
  4540. }
  4541. void OVR::GLEContext::glShaderSource_Hook(GLuint shader, GLsizei count, const GLchar* *string, const GLint *length)
  4542. {
  4543. if(glShaderSource_Impl)
  4544. glShaderSource_Impl(shader, count, string, length);
  4545. PostHook(GLE_CURRENT_FUNCTION);
  4546. }
  4547. void OVR::GLEContext::glUseProgram_Hook(GLuint program)
  4548. {
  4549. if(glUseProgram_Impl)
  4550. glUseProgram_Impl(program);
  4551. PostHook(GLE_CURRENT_FUNCTION);
  4552. }
  4553. void OVR::GLEContext::glUniform1f_Hook(GLint location, GLfloat v0)
  4554. {
  4555. if(glUniform1f_Impl)
  4556. glUniform1f_Impl(location, v0);
  4557. PostHook(GLE_CURRENT_FUNCTION);
  4558. }
  4559. void OVR::GLEContext::glUniform2f_Hook(GLint location, GLfloat v0, GLfloat v1)
  4560. {
  4561. if(glUniform2f_Impl)
  4562. glUniform2f_Impl(location, v0, v1);
  4563. PostHook(GLE_CURRENT_FUNCTION);
  4564. }
  4565. void OVR::GLEContext::glUniform3f_Hook(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
  4566. {
  4567. if(glUniform3f_Impl)
  4568. glUniform3f_Impl(location, v0, v1, v2);
  4569. PostHook(GLE_CURRENT_FUNCTION);
  4570. }
  4571. void OVR::GLEContext::glUniform4f_Hook(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
  4572. {
  4573. if(glUniform4f_Impl)
  4574. glUniform4f_Impl(location, v0, v1, v2, v3);
  4575. PostHook(GLE_CURRENT_FUNCTION);
  4576. }
  4577. void OVR::GLEContext::glUniform1i_Hook(GLint location, GLint v0)
  4578. {
  4579. if(glUniform1i_Impl)
  4580. glUniform1i_Impl(location, v0);
  4581. PostHook(GLE_CURRENT_FUNCTION);
  4582. }
  4583. void OVR::GLEContext::glUniform2i_Hook(GLint location, GLint v0, GLint v1)
  4584. {
  4585. if(glUniform2i_Impl)
  4586. glUniform2i_Impl(location, v0, v1);
  4587. PostHook(GLE_CURRENT_FUNCTION);
  4588. }
  4589. void OVR::GLEContext::glUniform3i_Hook(GLint location, GLint v0, GLint v1, GLint v2)
  4590. {
  4591. if(glUniform3i_Impl)
  4592. glUniform3i_Impl(location, v0, v1, v2);
  4593. PostHook(GLE_CURRENT_FUNCTION);
  4594. }
  4595. void OVR::GLEContext::glUniform4i_Hook(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
  4596. {
  4597. if(glUniform4i_Impl)
  4598. glUniform4i_Impl(location, v0, v1, v2, v3);
  4599. PostHook(GLE_CURRENT_FUNCTION);
  4600. }
  4601. void OVR::GLEContext::glUniform1fv_Hook(GLint location, GLsizei count, const GLfloat *value)
  4602. {
  4603. if(glUniform1fv_Impl)
  4604. glUniform1fv_Impl(location, count, value);
  4605. PostHook(GLE_CURRENT_FUNCTION);
  4606. }
  4607. void OVR::GLEContext::glUniform2fv_Hook(GLint location, GLsizei count, const GLfloat *value)
  4608. {
  4609. if(glUniform2fv_Impl)
  4610. glUniform2fv_Impl(location, count, value);
  4611. PostHook(GLE_CURRENT_FUNCTION);
  4612. }
  4613. void OVR::GLEContext::glUniform3fv_Hook(GLint location, GLsizei count, const GLfloat *value)
  4614. {
  4615. if(glUniform3fv_Impl)
  4616. glUniform3fv_Impl(location, count, value);
  4617. PostHook(GLE_CURRENT_FUNCTION);
  4618. }
  4619. void OVR::GLEContext::glUniform4fv_Hook(GLint location, GLsizei count, const GLfloat *value)
  4620. {
  4621. if(glUniform4fv_Impl)
  4622. glUniform4fv_Impl(location, count, value);
  4623. PostHook(GLE_CURRENT_FUNCTION);
  4624. }
  4625. void OVR::GLEContext::glUniform1iv_Hook(GLint location, GLsizei count, const GLint *value)
  4626. {
  4627. if(glUniform1iv_Impl)
  4628. glUniform1iv_Impl(location, count, value);
  4629. PostHook(GLE_CURRENT_FUNCTION);
  4630. }
  4631. void OVR::GLEContext::glUniform2iv_Hook(GLint location, GLsizei count, const GLint *value)
  4632. {
  4633. if(glUniform2iv_Impl)
  4634. glUniform2iv_Impl(location, count, value);
  4635. PostHook(GLE_CURRENT_FUNCTION);
  4636. }
  4637. void OVR::GLEContext::glUniform3iv_Hook(GLint location, GLsizei count, const GLint *value)
  4638. {
  4639. if(glUniform3iv_Impl)
  4640. glUniform3iv_Impl(location, count, value);
  4641. PostHook(GLE_CURRENT_FUNCTION);
  4642. }
  4643. void OVR::GLEContext::glUniform4iv_Hook(GLint location, GLsizei count, const GLint *value)
  4644. {
  4645. if(glUniform4iv_Impl)
  4646. glUniform4iv_Impl(location, count, value);
  4647. PostHook(GLE_CURRENT_FUNCTION);
  4648. }
  4649. void OVR::GLEContext::glUniformMatrix2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4650. {
  4651. if(glUniformMatrix2fv_Impl)
  4652. glUniformMatrix2fv_Impl(location, count, transpose, value);
  4653. PostHook(GLE_CURRENT_FUNCTION);
  4654. }
  4655. void OVR::GLEContext::glUniformMatrix3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4656. {
  4657. if(glUniformMatrix3fv_Impl)
  4658. glUniformMatrix3fv_Impl(location, count, transpose, value);
  4659. PostHook(GLE_CURRENT_FUNCTION);
  4660. }
  4661. void OVR::GLEContext::glUniformMatrix4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4662. {
  4663. if(glUniformMatrix4fv_Impl)
  4664. glUniformMatrix4fv_Impl(location, count, transpose, value);
  4665. PostHook(GLE_CURRENT_FUNCTION);
  4666. }
  4667. void OVR::GLEContext::glValidateProgram_Hook(GLuint program)
  4668. {
  4669. if(glValidateProgram_Impl)
  4670. glValidateProgram_Impl(program);
  4671. PostHook(GLE_CURRENT_FUNCTION);
  4672. }
  4673. void OVR::GLEContext::glVertexAttrib1d_Hook(GLuint index, GLdouble x)
  4674. {
  4675. if(glVertexAttrib1d_Impl)
  4676. glVertexAttrib1d_Impl(index, x);
  4677. PostHook(GLE_CURRENT_FUNCTION);
  4678. }
  4679. void OVR::GLEContext::glVertexAttrib1dv_Hook(GLuint index, const GLdouble *v)
  4680. {
  4681. if(glVertexAttrib1dv_Impl)
  4682. glVertexAttrib1dv_Impl(index, v);
  4683. PostHook(GLE_CURRENT_FUNCTION);
  4684. }
  4685. void OVR::GLEContext::glVertexAttrib1f_Hook(GLuint index, GLfloat x)
  4686. {
  4687. if(glVertexAttrib1f_Impl)
  4688. glVertexAttrib1f_Impl(index, x);
  4689. PostHook(GLE_CURRENT_FUNCTION);
  4690. }
  4691. void OVR::GLEContext::glVertexAttrib1fv_Hook(GLuint index, const GLfloat *v)
  4692. {
  4693. if(glVertexAttrib1fv_Impl)
  4694. glVertexAttrib1fv_Impl(index, v);
  4695. PostHook(GLE_CURRENT_FUNCTION);
  4696. }
  4697. void OVR::GLEContext::glVertexAttrib1s_Hook(GLuint index, GLshort x)
  4698. {
  4699. if(glVertexAttrib1s_Impl)
  4700. glVertexAttrib1s_Impl(index, x);
  4701. PostHook(GLE_CURRENT_FUNCTION);
  4702. }
  4703. void OVR::GLEContext::glVertexAttrib1sv_Hook(GLuint index, const GLshort *v)
  4704. {
  4705. if(glVertexAttrib1sv_Impl)
  4706. glVertexAttrib1sv_Impl(index, v);
  4707. PostHook(GLE_CURRENT_FUNCTION);
  4708. }
  4709. void OVR::GLEContext::glVertexAttrib2d_Hook(GLuint index, GLdouble x, GLdouble y)
  4710. {
  4711. if(glVertexAttrib2d_Impl)
  4712. glVertexAttrib2d_Impl(index, x, y);
  4713. PostHook(GLE_CURRENT_FUNCTION);
  4714. }
  4715. void OVR::GLEContext::glVertexAttrib2dv_Hook(GLuint index, const GLdouble *v)
  4716. {
  4717. if(glVertexAttrib2dv_Impl)
  4718. glVertexAttrib2dv_Impl(index, v);
  4719. PostHook(GLE_CURRENT_FUNCTION);
  4720. }
  4721. void OVR::GLEContext::glVertexAttrib2f_Hook(GLuint index, GLfloat x, GLfloat y)
  4722. {
  4723. if(glVertexAttrib2f_Impl)
  4724. glVertexAttrib2f_Impl(index, x, y);
  4725. PostHook(GLE_CURRENT_FUNCTION);
  4726. }
  4727. void OVR::GLEContext::glVertexAttrib2fv_Hook(GLuint index, const GLfloat *v)
  4728. {
  4729. if(glVertexAttrib2fv_Impl)
  4730. glVertexAttrib2fv_Impl(index, v);
  4731. PostHook(GLE_CURRENT_FUNCTION);
  4732. }
  4733. void OVR::GLEContext::glVertexAttrib2s_Hook(GLuint index, GLshort x, GLshort y)
  4734. {
  4735. if(glVertexAttrib2s_Impl)
  4736. glVertexAttrib2s_Impl(index, x, y);
  4737. PostHook(GLE_CURRENT_FUNCTION);
  4738. }
  4739. void OVR::GLEContext::glVertexAttrib2sv_Hook(GLuint index, const GLshort *v)
  4740. {
  4741. if(glVertexAttrib2sv_Impl)
  4742. glVertexAttrib2sv_Impl(index, v);
  4743. PostHook(GLE_CURRENT_FUNCTION);
  4744. }
  4745. void OVR::GLEContext::glVertexAttrib3d_Hook(GLuint index, GLdouble x, GLdouble y, GLdouble z)
  4746. {
  4747. if(glVertexAttrib3d_Impl)
  4748. glVertexAttrib3d_Impl(index, x, y, z);
  4749. PostHook(GLE_CURRENT_FUNCTION);
  4750. }
  4751. void OVR::GLEContext::glVertexAttrib3dv_Hook(GLuint index, const GLdouble *v)
  4752. {
  4753. if(glVertexAttrib3dv_Impl)
  4754. glVertexAttrib3dv_Impl(index, v);
  4755. PostHook(GLE_CURRENT_FUNCTION);
  4756. }
  4757. void OVR::GLEContext::glVertexAttrib3f_Hook(GLuint index, GLfloat x, GLfloat y, GLfloat z)
  4758. {
  4759. if(glVertexAttrib3f_Impl)
  4760. glVertexAttrib3f_Impl(index, x, y, z);
  4761. PostHook(GLE_CURRENT_FUNCTION);
  4762. }
  4763. void OVR::GLEContext::glVertexAttrib3fv_Hook(GLuint index, const GLfloat *v)
  4764. {
  4765. if(glVertexAttrib3fv_Impl)
  4766. glVertexAttrib3fv_Impl(index, v);
  4767. PostHook(GLE_CURRENT_FUNCTION);
  4768. }
  4769. void OVR::GLEContext::glVertexAttrib3s_Hook(GLuint index, GLshort x, GLshort y, GLshort z)
  4770. {
  4771. if(glVertexAttrib3s_Impl)
  4772. glVertexAttrib3s_Impl(index, x, y, z);
  4773. PostHook(GLE_CURRENT_FUNCTION);
  4774. }
  4775. void OVR::GLEContext::glVertexAttrib3sv_Hook(GLuint index, const GLshort *v)
  4776. {
  4777. if(glVertexAttrib3sv_Impl)
  4778. glVertexAttrib3sv_Impl(index, v);
  4779. PostHook(GLE_CURRENT_FUNCTION);
  4780. }
  4781. void OVR::GLEContext::glVertexAttrib4Nbv_Hook(GLuint index, const GLbyte *v)
  4782. {
  4783. if(glVertexAttrib4Nbv_Impl)
  4784. glVertexAttrib4Nbv_Impl(index, v);
  4785. PostHook(GLE_CURRENT_FUNCTION);
  4786. }
  4787. void OVR::GLEContext::glVertexAttrib4Niv_Hook(GLuint index, const GLint *v)
  4788. {
  4789. if(glVertexAttrib4Niv_Impl)
  4790. glVertexAttrib4Niv_Impl(index, v);
  4791. PostHook(GLE_CURRENT_FUNCTION);
  4792. }
  4793. void OVR::GLEContext::glVertexAttrib4Nsv_Hook(GLuint index, const GLshort *v)
  4794. {
  4795. if(glVertexAttrib4Nsv_Impl)
  4796. glVertexAttrib4Nsv_Impl(index, v);
  4797. PostHook(GLE_CURRENT_FUNCTION);
  4798. }
  4799. void OVR::GLEContext::glVertexAttrib4Nub_Hook(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
  4800. {
  4801. if(glVertexAttrib4Nub_Impl)
  4802. glVertexAttrib4Nub_Impl(index, x, y, z, w);
  4803. PostHook(GLE_CURRENT_FUNCTION);
  4804. }
  4805. void OVR::GLEContext::glVertexAttrib4Nubv_Hook(GLuint index, const GLubyte *v)
  4806. {
  4807. if(glVertexAttrib4Nubv_Impl)
  4808. glVertexAttrib4Nubv_Impl(index, v);
  4809. PostHook(GLE_CURRENT_FUNCTION);
  4810. }
  4811. void OVR::GLEContext::glVertexAttrib4Nuiv_Hook(GLuint index, const GLuint *v)
  4812. {
  4813. if(glVertexAttrib4Nuiv_Impl)
  4814. glVertexAttrib4Nuiv_Impl(index, v);
  4815. PostHook(GLE_CURRENT_FUNCTION);
  4816. }
  4817. void OVR::GLEContext::glVertexAttrib4Nusv_Hook(GLuint index, const GLushort *v)
  4818. {
  4819. if(glVertexAttrib4Nusv_Impl)
  4820. glVertexAttrib4Nusv_Impl(index, v);
  4821. PostHook(GLE_CURRENT_FUNCTION);
  4822. }
  4823. void OVR::GLEContext::glVertexAttrib4bv_Hook(GLuint index, const GLbyte *v)
  4824. {
  4825. if(glVertexAttrib4bv_Impl)
  4826. glVertexAttrib4bv_Impl(index, v);
  4827. PostHook(GLE_CURRENT_FUNCTION);
  4828. }
  4829. void OVR::GLEContext::glVertexAttrib4d_Hook(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
  4830. {
  4831. if(glVertexAttrib4d_Impl)
  4832. glVertexAttrib4d_Impl(index, x, y, z, w);
  4833. PostHook(GLE_CURRENT_FUNCTION);
  4834. }
  4835. void OVR::GLEContext::glVertexAttrib4dv_Hook(GLuint index, const GLdouble *v)
  4836. {
  4837. if(glVertexAttrib4dv_Impl)
  4838. glVertexAttrib4dv_Impl(index, v);
  4839. PostHook(GLE_CURRENT_FUNCTION);
  4840. }
  4841. void OVR::GLEContext::glVertexAttrib4f_Hook(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
  4842. {
  4843. if(glVertexAttrib4f_Impl)
  4844. glVertexAttrib4f_Impl(index, x, y, z, w);
  4845. PostHook(GLE_CURRENT_FUNCTION);
  4846. }
  4847. void OVR::GLEContext::glVertexAttrib4fv_Hook(GLuint index, const GLfloat *v)
  4848. {
  4849. if(glVertexAttrib4fv_Impl)
  4850. glVertexAttrib4fv_Impl(index, v);
  4851. PostHook(GLE_CURRENT_FUNCTION);
  4852. }
  4853. void OVR::GLEContext::glVertexAttrib4iv_Hook(GLuint index, const GLint *v)
  4854. {
  4855. if(glVertexAttrib4iv_Impl)
  4856. glVertexAttrib4iv_Impl(index, v);
  4857. PostHook(GLE_CURRENT_FUNCTION);
  4858. }
  4859. void OVR::GLEContext::glVertexAttrib4s_Hook(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
  4860. {
  4861. if(glVertexAttrib4s_Impl)
  4862. glVertexAttrib4s_Impl(index, x, y, z, w);
  4863. PostHook(GLE_CURRENT_FUNCTION);
  4864. }
  4865. void OVR::GLEContext::glVertexAttrib4sv_Hook(GLuint index, const GLshort *v)
  4866. {
  4867. if(glVertexAttrib4sv_Impl)
  4868. glVertexAttrib4sv_Impl(index, v);
  4869. PostHook(GLE_CURRENT_FUNCTION);
  4870. }
  4871. void OVR::GLEContext::glVertexAttrib4ubv_Hook(GLuint index, const GLubyte *v)
  4872. {
  4873. if(glVertexAttrib4ubv_Impl)
  4874. glVertexAttrib4ubv_Impl(index, v);
  4875. PostHook(GLE_CURRENT_FUNCTION);
  4876. }
  4877. void OVR::GLEContext::glVertexAttrib4uiv_Hook(GLuint index, const GLuint *v)
  4878. {
  4879. if(glVertexAttrib4uiv_Impl)
  4880. glVertexAttrib4uiv_Impl(index, v);
  4881. PostHook(GLE_CURRENT_FUNCTION);
  4882. }
  4883. void OVR::GLEContext::glVertexAttrib4usv_Hook(GLuint index, const GLushort *v)
  4884. {
  4885. if(glVertexAttrib4usv_Impl)
  4886. glVertexAttrib4usv_Impl(index, v);
  4887. PostHook(GLE_CURRENT_FUNCTION);
  4888. }
  4889. void OVR::GLEContext::glVertexAttribPointer_Hook(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer)
  4890. {
  4891. if(glVertexAttribPointer_Impl)
  4892. glVertexAttribPointer_Impl(index, size, type, normalized, stride, pointer);
  4893. PostHook(GLE_CURRENT_FUNCTION);
  4894. }
  4895. // GL_VERSION_2_1
  4896. void OVR::GLEContext::glUniformMatrix2x3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4897. {
  4898. if(glUniformMatrix2x3fv_Impl)
  4899. glUniformMatrix2x3fv_Impl(location, count, transpose, value);
  4900. PostHook(GLE_CURRENT_FUNCTION);
  4901. }
  4902. void OVR::GLEContext::glUniformMatrix3x2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4903. {
  4904. if(glUniformMatrix3x2fv_Impl)
  4905. glUniformMatrix3x2fv_Impl(location, count, transpose, value);
  4906. PostHook(GLE_CURRENT_FUNCTION);
  4907. }
  4908. void OVR::GLEContext::glUniformMatrix2x4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4909. {
  4910. if(glUniformMatrix2x4fv_Impl)
  4911. glUniformMatrix2x4fv_Impl(location, count, transpose, value);
  4912. PostHook(GLE_CURRENT_FUNCTION);
  4913. }
  4914. void OVR::GLEContext::glUniformMatrix4x2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4915. {
  4916. if(glUniformMatrix4x2fv_Impl)
  4917. glUniformMatrix4x2fv_Impl(location, count, transpose, value);
  4918. PostHook(GLE_CURRENT_FUNCTION);
  4919. }
  4920. void OVR::GLEContext::glUniformMatrix3x4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4921. {
  4922. if(glUniformMatrix3x4fv_Impl)
  4923. glUniformMatrix3x4fv_Impl(location, count, transpose, value);
  4924. PostHook(GLE_CURRENT_FUNCTION);
  4925. }
  4926. void OVR::GLEContext::glUniformMatrix4x3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
  4927. {
  4928. if(glUniformMatrix4x3fv_Impl)
  4929. glUniformMatrix4x3fv_Impl(location, count, transpose, value);
  4930. PostHook(GLE_CURRENT_FUNCTION);
  4931. }
  4932. // GL_VERSION_3_0
  4933. void OVR::GLEContext::glColorMaski_Hook(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
  4934. {
  4935. if(glColorMaski_Impl)
  4936. glColorMaski_Impl(index, r, g, b, a);
  4937. PostHook(GLE_CURRENT_FUNCTION);
  4938. }
  4939. void OVR::GLEContext::glGetBooleani_v_Hook(GLenum target, GLuint index, GLboolean *data)
  4940. {
  4941. if(glGetBooleani_v_Impl)
  4942. glGetBooleani_v_Impl(target, index, data);
  4943. PostHook(GLE_CURRENT_FUNCTION);
  4944. }
  4945. void OVR::GLEContext::glGetIntegeri_v_Hook(GLenum target, GLuint index, GLint *data)
  4946. {
  4947. if(glGetIntegeri_v_Impl)
  4948. glGetIntegeri_v_Impl(target, index, data);
  4949. PostHook(GLE_CURRENT_FUNCTION);
  4950. }
  4951. void OVR::GLEContext::glEnablei_Hook(GLenum target, GLuint index)
  4952. {
  4953. if(glEnablei_Impl)
  4954. glEnablei_Impl(target, index);
  4955. PostHook(GLE_CURRENT_FUNCTION);
  4956. }
  4957. void OVR::GLEContext::glDisablei_Hook(GLenum target, GLuint index)
  4958. {
  4959. if(glDisablei_Impl)
  4960. glDisablei_Impl(target, index);
  4961. PostHook(GLE_CURRENT_FUNCTION);
  4962. }
  4963. GLboolean OVR::GLEContext::glIsEnabledi_Hook(GLenum target, GLuint index)
  4964. {
  4965. GLboolean b = GL_FALSE;
  4966. if(glIsEnabledi_Impl)
  4967. b = glIsEnabledi_Impl(target, index);
  4968. PostHook(GLE_CURRENT_FUNCTION);
  4969. return b;
  4970. }
  4971. void OVR::GLEContext::glBeginTransformFeedback_Hook(GLenum primitiveMode)
  4972. {
  4973. if(glBeginTransformFeedback_Impl)
  4974. glBeginTransformFeedback_Impl(primitiveMode);
  4975. PostHook(GLE_CURRENT_FUNCTION);
  4976. }
  4977. void OVR::GLEContext::glEndTransformFeedback_Hook()
  4978. {
  4979. if(glEndTransformFeedback_Impl)
  4980. glEndTransformFeedback_Impl();
  4981. PostHook(GLE_CURRENT_FUNCTION);
  4982. }
  4983. void OVR::GLEContext::glBindBufferRange_Hook(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
  4984. {
  4985. if(glBindBufferRange_Impl)
  4986. glBindBufferRange_Impl(target, index, buffer, offset, size);
  4987. PostHook(GLE_CURRENT_FUNCTION);
  4988. }
  4989. void OVR::GLEContext::glBindBufferBase_Hook(GLenum target, GLuint index, GLuint buffer)
  4990. {
  4991. if(glBindBufferBase_Impl)
  4992. glBindBufferBase_Impl(target, index, buffer);
  4993. PostHook(GLE_CURRENT_FUNCTION);
  4994. }
  4995. void OVR::GLEContext::glTransformFeedbackVaryings_Hook(GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode)
  4996. {
  4997. if(glTransformFeedbackVaryings_Impl)
  4998. glTransformFeedbackVaryings_Impl(program, count, varyings, bufferMode);
  4999. PostHook(GLE_CURRENT_FUNCTION);
  5000. }
  5001. void OVR::GLEContext::glGetTransformFeedbackVarying_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
  5002. {
  5003. if(glGetTransformFeedbackVarying_Impl)
  5004. glGetTransformFeedbackVarying_Impl(program, index, bufSize, length, size, type, name);
  5005. PostHook(GLE_CURRENT_FUNCTION);
  5006. }
  5007. void OVR::GLEContext::glClampColor_Hook(GLenum target, GLenum clamp)
  5008. {
  5009. if(glClampColor_Impl)
  5010. glClampColor_Impl(target, clamp);
  5011. PostHook(GLE_CURRENT_FUNCTION);
  5012. }
  5013. void OVR::GLEContext::glBeginConditionalRender_Hook(GLuint id, GLenum mode)
  5014. {
  5015. if(glBeginConditionalRender_Impl)
  5016. glBeginConditionalRender_Impl(id, mode);
  5017. PostHook(GLE_CURRENT_FUNCTION);
  5018. }
  5019. void OVR::GLEContext::glEndConditionalRender_Hook()
  5020. {
  5021. if(glEndConditionalRender_Impl)
  5022. glEndConditionalRender_Impl();
  5023. PostHook(GLE_CURRENT_FUNCTION);
  5024. }
  5025. void OVR::GLEContext::glVertexAttribIPointer_Hook(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
  5026. {
  5027. if(glVertexAttribIPointer_Impl)
  5028. glVertexAttribIPointer_Impl(index, size, type, stride, pointer);
  5029. PostHook(GLE_CURRENT_FUNCTION);
  5030. }
  5031. void OVR::GLEContext::glGetVertexAttribIiv_Hook(GLuint index, GLenum pname, GLint *params)
  5032. {
  5033. if(glGetVertexAttribIiv_Impl)
  5034. glGetVertexAttribIiv_Impl(index, pname, params);
  5035. PostHook(GLE_CURRENT_FUNCTION);
  5036. }
  5037. void OVR::GLEContext::glGetVertexAttribIuiv_Hook(GLuint index, GLenum pname, GLuint *params)
  5038. {
  5039. if(glGetVertexAttribIuiv_Impl)
  5040. glGetVertexAttribIuiv_Impl(index, pname, params);
  5041. PostHook(GLE_CURRENT_FUNCTION);
  5042. }
  5043. void OVR::GLEContext::glVertexAttribI1i_Hook(GLuint index, GLint x)
  5044. {
  5045. if(glVertexAttribI1i_Impl)
  5046. glVertexAttribI1i_Impl(index, x);
  5047. PostHook(GLE_CURRENT_FUNCTION);
  5048. }
  5049. void OVR::GLEContext::glVertexAttribI2i_Hook(GLuint index, GLint x, GLint y)
  5050. {
  5051. if(glVertexAttribI2i_Impl)
  5052. glVertexAttribI2i_Impl(index, x, y);
  5053. PostHook(GLE_CURRENT_FUNCTION);
  5054. }
  5055. void OVR::GLEContext::glVertexAttribI3i_Hook(GLuint index, GLint x, GLint y, GLint z)
  5056. {
  5057. if(glVertexAttribI3i_Impl)
  5058. glVertexAttribI3i_Impl(index, x, y, z);
  5059. PostHook(GLE_CURRENT_FUNCTION);
  5060. }
  5061. void OVR::GLEContext::glVertexAttribI4i_Hook(GLuint index, GLint x, GLint y, GLint z, GLint w)
  5062. {
  5063. if(glVertexAttribI4i_Impl)
  5064. glVertexAttribI4i_Impl(index, x, y, z, w);
  5065. PostHook(GLE_CURRENT_FUNCTION);
  5066. }
  5067. void OVR::GLEContext::glVertexAttribI1ui_Hook(GLuint index, GLuint x)
  5068. {
  5069. if(glVertexAttribI1ui_Impl)
  5070. glVertexAttribI1ui_Impl(index, x);
  5071. PostHook(GLE_CURRENT_FUNCTION);
  5072. }
  5073. void OVR::GLEContext::glVertexAttribI2ui_Hook(GLuint index, GLuint x, GLuint y)
  5074. {
  5075. if(glVertexAttribI2ui_Impl)
  5076. glVertexAttribI2ui_Impl(index, x, y);
  5077. PostHook(GLE_CURRENT_FUNCTION);
  5078. }
  5079. void OVR::GLEContext::glVertexAttribI3ui_Hook(GLuint index, GLuint x, GLuint y, GLuint z)
  5080. {
  5081. if(glVertexAttribI3ui_Impl)
  5082. glVertexAttribI3ui_Impl(index, x, y, z);
  5083. PostHook(GLE_CURRENT_FUNCTION);
  5084. }
  5085. void OVR::GLEContext::glVertexAttribI4ui_Hook(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
  5086. {
  5087. if(glVertexAttribI4ui_Impl)
  5088. glVertexAttribI4ui_Impl(index, x, y, z, w);
  5089. PostHook(GLE_CURRENT_FUNCTION);
  5090. }
  5091. void OVR::GLEContext::glVertexAttribI1iv_Hook(GLuint index, const GLint *v)
  5092. {
  5093. if(glVertexAttribI1iv_Impl)
  5094. glVertexAttribI1iv_Impl(index, v);
  5095. PostHook(GLE_CURRENT_FUNCTION);
  5096. }
  5097. void OVR::GLEContext::glVertexAttribI2iv_Hook(GLuint index, const GLint *v)
  5098. {
  5099. if(glVertexAttribI2iv_Impl)
  5100. glVertexAttribI2iv_Impl(index, v);
  5101. PostHook(GLE_CURRENT_FUNCTION);
  5102. }
  5103. void OVR::GLEContext::glVertexAttribI3iv_Hook(GLuint index, const GLint *v)
  5104. {
  5105. if(glVertexAttribI3iv_Impl)
  5106. glVertexAttribI3iv_Impl(index, v);
  5107. PostHook(GLE_CURRENT_FUNCTION);
  5108. }
  5109. void OVR::GLEContext::glVertexAttribI4iv_Hook(GLuint index, const GLint *v)
  5110. {
  5111. if(glVertexAttribI4iv_Impl)
  5112. glVertexAttribI4iv_Impl(index, v);
  5113. PostHook(GLE_CURRENT_FUNCTION);
  5114. }
  5115. void OVR::GLEContext::glVertexAttribI1uiv_Hook(GLuint index, const GLuint *v)
  5116. {
  5117. if(glVertexAttribI1uiv_Impl)
  5118. glVertexAttribI1uiv_Impl(index, v);
  5119. PostHook(GLE_CURRENT_FUNCTION);
  5120. }
  5121. void OVR::GLEContext::glVertexAttribI2uiv_Hook(GLuint index, const GLuint *v)
  5122. {
  5123. if(glVertexAttribI2uiv_Impl)
  5124. glVertexAttribI2uiv_Impl(index, v);
  5125. PostHook(GLE_CURRENT_FUNCTION);
  5126. }
  5127. void OVR::GLEContext::glVertexAttribI3uiv_Hook(GLuint index, const GLuint *v)
  5128. {
  5129. if(glVertexAttribI3uiv_Impl)
  5130. glVertexAttribI3uiv_Impl(index, v);
  5131. PostHook(GLE_CURRENT_FUNCTION);
  5132. }
  5133. void OVR::GLEContext::glVertexAttribI4uiv_Hook(GLuint index, const GLuint *v)
  5134. {
  5135. if(glVertexAttribI4uiv_Impl)
  5136. glVertexAttribI4uiv_Impl(index, v);
  5137. PostHook(GLE_CURRENT_FUNCTION);
  5138. }
  5139. void OVR::GLEContext::glVertexAttribI4bv_Hook(GLuint index, const GLbyte *v)
  5140. {
  5141. if(glVertexAttribI4bv_Impl)
  5142. glVertexAttribI4bv_Impl(index, v);
  5143. PostHook(GLE_CURRENT_FUNCTION);
  5144. }
  5145. void OVR::GLEContext::glVertexAttribI4sv_Hook(GLuint index, const GLshort *v)
  5146. {
  5147. if(glVertexAttribI4sv_Impl)
  5148. glVertexAttribI4sv_Impl(index, v);
  5149. PostHook(GLE_CURRENT_FUNCTION);
  5150. }
  5151. void OVR::GLEContext::glVertexAttribI4ubv_Hook(GLuint index, const GLubyte *v)
  5152. {
  5153. if(glVertexAttribI4ubv_Impl)
  5154. glVertexAttribI4ubv_Impl(index, v);
  5155. PostHook(GLE_CURRENT_FUNCTION);
  5156. }
  5157. void OVR::GLEContext::glVertexAttribI4usv_Hook(GLuint index, const GLushort *v)
  5158. {
  5159. if(glVertexAttribI4usv_Impl)
  5160. glVertexAttribI4usv_Impl(index, v);
  5161. PostHook(GLE_CURRENT_FUNCTION);
  5162. }
  5163. void OVR::GLEContext::glGetUniformuiv_Hook(GLuint program, GLint location, GLuint *params)
  5164. {
  5165. if(glGetUniformuiv_Impl)
  5166. glGetUniformuiv_Impl(program, location, params);
  5167. PostHook(GLE_CURRENT_FUNCTION);
  5168. }
  5169. void OVR::GLEContext::glBindFragDataLocation_Hook(GLuint program, GLuint color, const GLchar *name)
  5170. {
  5171. if(glBindFragDataLocation_Impl)
  5172. glBindFragDataLocation_Impl(program, color, name);
  5173. PostHook(GLE_CURRENT_FUNCTION);
  5174. }
  5175. GLint OVR::GLEContext::glGetFragDataLocation_Hook(GLuint program, const GLchar *name)
  5176. {
  5177. GLint i = 0;
  5178. if(glGetFragDataLocation_Impl)
  5179. i = glGetFragDataLocation_Impl(program, name);
  5180. PostHook(GLE_CURRENT_FUNCTION);
  5181. return i;
  5182. }
  5183. void OVR::GLEContext::glUniform1ui_Hook(GLint location, GLuint v0)
  5184. {
  5185. if(glUniform1ui_Impl)
  5186. glUniform1ui_Impl(location, v0);
  5187. PostHook(GLE_CURRENT_FUNCTION);
  5188. }
  5189. void OVR::GLEContext::glUniform2ui_Hook(GLint location, GLuint v0, GLuint v1)
  5190. {
  5191. if(glUniform2ui_Impl)
  5192. glUniform2ui_Impl(location, v0, v1);
  5193. PostHook(GLE_CURRENT_FUNCTION);
  5194. }
  5195. void OVR::GLEContext::glUniform3ui_Hook(GLint location, GLuint v0, GLuint v1, GLuint v2)
  5196. {
  5197. if(glUniform3ui_Impl)
  5198. glUniform3ui_Impl(location, v0, v1, v2);
  5199. PostHook(GLE_CURRENT_FUNCTION);
  5200. }
  5201. void OVR::GLEContext::glUniform4ui_Hook(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
  5202. {
  5203. if(glUniform4ui_Impl)
  5204. glUniform4ui_Impl(location, v0, v1, v2, v3);
  5205. PostHook(GLE_CURRENT_FUNCTION);
  5206. }
  5207. void OVR::GLEContext::glUniform1uiv_Hook(GLint location, GLsizei count, const GLuint *value)
  5208. {
  5209. if(glUniform1uiv_Impl)
  5210. glUniform1uiv_Impl(location, count, value);
  5211. PostHook(GLE_CURRENT_FUNCTION);
  5212. }
  5213. void OVR::GLEContext::glUniform2uiv_Hook(GLint location, GLsizei count, const GLuint *value)
  5214. {
  5215. if(glUniform2uiv_Impl)
  5216. glUniform2uiv_Impl(location, count, value);
  5217. PostHook(GLE_CURRENT_FUNCTION);
  5218. }
  5219. void OVR::GLEContext::glUniform3uiv_Hook(GLint location, GLsizei count, const GLuint *value)
  5220. {
  5221. if(glUniform3uiv_Impl)
  5222. glUniform3uiv_Impl(location, count, value);
  5223. PostHook(GLE_CURRENT_FUNCTION);
  5224. }
  5225. void OVR::GLEContext::glUniform4uiv_Hook(GLint location, GLsizei count, const GLuint *value)
  5226. {
  5227. if(glUniform4uiv_Impl)
  5228. glUniform4uiv_Impl(location, count, value);
  5229. PostHook(GLE_CURRENT_FUNCTION);
  5230. }
  5231. void OVR::GLEContext::glTexParameterIiv_Hook(GLenum target, GLenum pname, const GLint *params)
  5232. {
  5233. if(glTexParameterIiv_Impl)
  5234. glTexParameterIiv_Impl(target, pname, params);
  5235. PostHook(GLE_CURRENT_FUNCTION);
  5236. }
  5237. void OVR::GLEContext::glTexParameterIuiv_Hook(GLenum target, GLenum pname, const GLuint *params)
  5238. {
  5239. if(glTexParameterIuiv_Impl)
  5240. glTexParameterIuiv_Impl(target, pname, params);
  5241. PostHook(GLE_CURRENT_FUNCTION);
  5242. }
  5243. void OVR::GLEContext::glGetTexParameterIiv_Hook(GLenum target, GLenum pname, GLint *params)
  5244. {
  5245. if(glGetTexParameterIiv_Impl)
  5246. glGetTexParameterIiv_Impl(target, pname, params);
  5247. PostHook(GLE_CURRENT_FUNCTION);
  5248. }
  5249. void OVR::GLEContext::glGetTexParameterIuiv_Hook(GLenum target, GLenum pname, GLuint *params)
  5250. {
  5251. if(glGetTexParameterIuiv_Impl)
  5252. glGetTexParameterIuiv_Impl(target, pname, params);
  5253. PostHook(GLE_CURRENT_FUNCTION);
  5254. }
  5255. void OVR::GLEContext::glClearBufferiv_Hook(GLenum buffer, GLint drawbuffer, const GLint *value)
  5256. {
  5257. if(glClearBufferiv_Impl)
  5258. glClearBufferiv_Impl(buffer, drawbuffer, value);
  5259. PostHook(GLE_CURRENT_FUNCTION);
  5260. }
  5261. void OVR::GLEContext::glClearBufferuiv_Hook(GLenum buffer, GLint drawbuffer, const GLuint *value)
  5262. {
  5263. if(glClearBufferuiv_Impl)
  5264. glClearBufferuiv_Impl(buffer, drawbuffer, value);
  5265. PostHook(GLE_CURRENT_FUNCTION);
  5266. }
  5267. void OVR::GLEContext::glClearBufferfv_Hook(GLenum buffer, GLint drawbuffer, const GLfloat *value)
  5268. {
  5269. if(glClearBufferfv_Impl)
  5270. glClearBufferfv_Impl(buffer, drawbuffer, value);
  5271. PostHook(GLE_CURRENT_FUNCTION);
  5272. }
  5273. void OVR::GLEContext::glClearBufferfi_Hook(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
  5274. {
  5275. if(glClearBufferfi_Impl)
  5276. glClearBufferfi_Impl(buffer, drawbuffer, depth, stencil);
  5277. PostHook(GLE_CURRENT_FUNCTION);
  5278. }
  5279. const GLubyte* OVR::GLEContext::glGetStringi_Hook(GLenum name, GLuint index)
  5280. {
  5281. const GLubyte* p = NULL;
  5282. if(glGetStringi_Impl)
  5283. p = glGetStringi_Impl(name, index);
  5284. PostHook(GLE_CURRENT_FUNCTION);
  5285. return p;
  5286. }
  5287. // GL_VERSION_3_1
  5288. void OVR::GLEContext::glDrawArraysInstanced_Hook(GLenum mode, GLint first, GLsizei count, GLsizei primcount)
  5289. {
  5290. if(glDrawArraysInstanced_Impl)
  5291. glDrawArraysInstanced_Impl(mode, first, count, primcount);
  5292. PostHook(GLE_CURRENT_FUNCTION);
  5293. }
  5294. void OVR::GLEContext::glDrawElementsInstanced_Hook(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount)
  5295. {
  5296. if(glDrawElementsInstanced_Impl)
  5297. glDrawElementsInstanced_Impl(mode, count, type, indices, primcount);
  5298. PostHook(GLE_CURRENT_FUNCTION);
  5299. }
  5300. void OVR::GLEContext::glTexBuffer_Hook(GLenum target, GLenum internalformat, GLuint buffer)
  5301. {
  5302. if(glTexBuffer_Impl)
  5303. glTexBuffer_Impl(target, internalformat, buffer);
  5304. PostHook(GLE_CURRENT_FUNCTION);
  5305. }
  5306. void OVR::GLEContext::glPrimitiveRestartIndex_Hook(GLuint index)
  5307. {
  5308. if(glPrimitiveRestartIndex_Impl)
  5309. glPrimitiveRestartIndex_Impl(index);
  5310. PostHook(GLE_CURRENT_FUNCTION);
  5311. }
  5312. // GL_VERSION_3_2
  5313. void OVR::GLEContext::glGetInteger64i_v_Hook(GLenum target, GLuint index, GLint64 *data)
  5314. {
  5315. if(glGetInteger64i_v_Impl)
  5316. glGetInteger64i_v_Impl(target, index, data);
  5317. PostHook(GLE_CURRENT_FUNCTION);
  5318. }
  5319. void OVR::GLEContext::glGetBufferParameteri64v_Hook(GLenum target, GLenum pname, GLint64 *params)
  5320. {
  5321. if(glGetBufferParameteri64v_Impl)
  5322. glGetBufferParameteri64v_Impl(target, pname, params);
  5323. PostHook(GLE_CURRENT_FUNCTION);
  5324. }
  5325. void OVR::GLEContext::glFramebufferTexture_Hook(GLenum target, GLenum attachment, GLuint texture, GLint level)
  5326. {
  5327. if(glFramebufferTexture_Impl)
  5328. glFramebufferTexture_Impl(target, attachment, texture, level);
  5329. PostHook(GLE_CURRENT_FUNCTION);
  5330. }
  5331. // GL_VERSION_3_3
  5332. void OVR::GLEContext::glVertexAttribDivisor_Hook(GLuint index, GLuint divisor)
  5333. {
  5334. if(glVertexAttribDivisor_Impl)
  5335. glVertexAttribDivisor_Impl(index, divisor);
  5336. PostHook(GLE_CURRENT_FUNCTION);
  5337. }
  5338. // GL_VERSION_4_0
  5339. void OVR::GLEContext::glMinSampleShading_Hook(GLclampf value)
  5340. {
  5341. if(glMinSampleShading_Impl)
  5342. glMinSampleShading_Impl(value);
  5343. PostHook(GLE_CURRENT_FUNCTION);
  5344. }
  5345. void OVR::GLEContext::glBlendEquationi_Hook(GLuint buf, GLenum mode)
  5346. {
  5347. if(glBlendEquationi_Impl)
  5348. glBlendEquationi_Impl(buf, mode);
  5349. PostHook(GLE_CURRENT_FUNCTION);
  5350. }
  5351. void OVR::GLEContext::glBlendEquationSeparatei_Hook(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
  5352. {
  5353. if(glBlendEquationSeparatei_Impl)
  5354. glBlendEquationSeparatei_Impl(buf, modeRGB, modeAlpha);
  5355. PostHook(GLE_CURRENT_FUNCTION);
  5356. }
  5357. void OVR::GLEContext::glBlendFunci_Hook(GLuint buf, GLenum src, GLenum dst)
  5358. {
  5359. if(glBlendFunci_Impl)
  5360. glBlendFunci_Impl(buf, src, dst);
  5361. PostHook(GLE_CURRENT_FUNCTION);
  5362. }
  5363. void OVR::GLEContext::glBlendFuncSeparatei_Hook(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
  5364. {
  5365. if(glBlendFuncSeparatei_Impl)
  5366. glBlendFuncSeparatei_Impl(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
  5367. PostHook(GLE_CURRENT_FUNCTION);
  5368. }
  5369. // GL_AMD_debug_output
  5370. void OVR::GLEContext::glDebugMessageEnableAMD_Hook(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)
  5371. {
  5372. if(glDebugMessageEnableAMD_Impl)
  5373. glDebugMessageEnableAMD_Impl(category, severity, count, ids, enabled);
  5374. PostHook(GLE_CURRENT_FUNCTION);
  5375. }
  5376. void OVR::GLEContext::glDebugMessageInsertAMD_Hook(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf)
  5377. {
  5378. if(glDebugMessageInsertAMD_Impl)
  5379. glDebugMessageInsertAMD_Impl(category, severity, id, length, buf);
  5380. PostHook(GLE_CURRENT_FUNCTION);
  5381. }
  5382. void OVR::GLEContext::glDebugMessageCallbackAMD_Hook(GLDEBUGPROCAMD callback, GLvoid *userParam)
  5383. {
  5384. if(glDebugMessageCallbackAMD_Impl)
  5385. glDebugMessageCallbackAMD_Impl(callback, userParam);
  5386. PostHook(GLE_CURRENT_FUNCTION);
  5387. }
  5388. GLuint OVR::GLEContext::glGetDebugMessageLogAMD_Hook(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message)
  5389. {
  5390. GLuint u = 0;
  5391. if(glGetDebugMessageLogAMD_Impl)
  5392. u = glGetDebugMessageLogAMD_Impl(count, bufsize, categories, severities, ids, lengths, message);
  5393. PostHook(GLE_CURRENT_FUNCTION);
  5394. return u;
  5395. }
  5396. #if defined(GLE_CGL_ENABLED)
  5397. // GL_APPLE_element_array
  5398. void OVR::GLEContext::glElementPointerAPPLE_Hook(GLenum type, const GLvoid *pointer)
  5399. {
  5400. if(glElementPointerAPPLE_Impl)
  5401. glElementPointerAPPLE_Impl(type, pointer);
  5402. PostHook(GLE_CURRENT_FUNCTION);
  5403. }
  5404. void OVR::GLEContext::glDrawElementArrayAPPLE_Hook(GLenum mode, GLint first, GLsizei count)
  5405. {
  5406. if(glDrawElementArrayAPPLE_Impl)
  5407. glDrawElementArrayAPPLE_Impl(mode, first, count);
  5408. PostHook(GLE_CURRENT_FUNCTION);
  5409. }
  5410. void OVR::GLEContext::glDrawRangeElementArrayAPPLE_Hook(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count)
  5411. {
  5412. if(glDrawRangeElementArrayAPPLE_Impl)
  5413. glDrawRangeElementArrayAPPLE_Impl(mode, start, end, first, count);
  5414. PostHook(GLE_CURRENT_FUNCTION);
  5415. }
  5416. void OVR::GLEContext::glMultiDrawElementArrayAPPLE_Hook(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
  5417. {
  5418. if(glMultiDrawElementArrayAPPLE_Impl)
  5419. glMultiDrawElementArrayAPPLE_Impl(mode, first, count, primcount);
  5420. PostHook(GLE_CURRENT_FUNCTION);
  5421. }
  5422. void OVR::GLEContext::glMultiDrawRangeElementArrayAPPLE_Hook(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount)
  5423. {
  5424. if(glMultiDrawRangeElementArrayAPPLE_Impl)
  5425. glMultiDrawRangeElementArrayAPPLE_Impl(mode, start, end, first, count, primcount);
  5426. PostHook(GLE_CURRENT_FUNCTION);
  5427. }
  5428. // GL_APPLE_fence
  5429. void OVR::GLEContext::glGenFencesAPPLE_Hook(GLsizei n, GLuint *fences)
  5430. {
  5431. if(glGenFencesAPPLE_Impl)
  5432. glGenFencesAPPLE_Impl(n, fences);
  5433. PostHook(GLE_CURRENT_FUNCTION);
  5434. }
  5435. void OVR::GLEContext::glDeleteFencesAPPLE_Hook(GLsizei n, const GLuint *fences)
  5436. {
  5437. if(glDeleteFencesAPPLE_Impl)
  5438. glDeleteFencesAPPLE_Impl(n, fences);
  5439. PostHook(GLE_CURRENT_FUNCTION);
  5440. }
  5441. void OVR::GLEContext::glSetFenceAPPLE_Hook(GLuint fence)
  5442. {
  5443. if(glSetFenceAPPLE_Impl)
  5444. glSetFenceAPPLE_Impl(fence);
  5445. PostHook(GLE_CURRENT_FUNCTION);
  5446. }
  5447. GLboolean OVR::GLEContext::glIsFenceAPPLE_Hook(GLuint fence)
  5448. {
  5449. GLboolean b = GL_FALSE;
  5450. if(glIsFenceAPPLE_Impl)
  5451. b = glIsFenceAPPLE_Impl(fence);
  5452. PostHook(GLE_CURRENT_FUNCTION);
  5453. return b;
  5454. }
  5455. GLboolean OVR::GLEContext::glTestFenceAPPLE_Hook(GLuint fence)
  5456. {
  5457. GLboolean b = GL_FALSE;
  5458. if(glTestFenceAPPLE_Impl)
  5459. b = glTestFenceAPPLE_Impl(fence);
  5460. PostHook(GLE_CURRENT_FUNCTION);
  5461. return b;
  5462. }
  5463. void OVR::GLEContext::glFinishFenceAPPLE_Hook(GLuint fence)
  5464. {
  5465. if(glFinishFenceAPPLE_Impl)
  5466. glFinishFenceAPPLE_Impl(fence);
  5467. PostHook(GLE_CURRENT_FUNCTION);
  5468. }
  5469. GLboolean OVR::GLEContext::glTestObjectAPPLE_Hook(GLenum object, GLuint name)
  5470. {
  5471. GLboolean b = GL_FALSE;
  5472. if(glTestObjectAPPLE_Impl)
  5473. b = glTestObjectAPPLE_Impl(object, name);
  5474. PostHook(GLE_CURRENT_FUNCTION);
  5475. return b;
  5476. }
  5477. void OVR::GLEContext::glFinishObjectAPPLE_Hook(GLenum object, GLint name)
  5478. {
  5479. if(glFinishObjectAPPLE_Impl)
  5480. glFinishObjectAPPLE_Impl(object, name);
  5481. PostHook(GLE_CURRENT_FUNCTION);
  5482. }
  5483. // GL_APPLE_flush_buffer_range
  5484. void OVR::GLEContext::glBufferParameteriAPPLE_Hook(GLenum target, GLenum pname, GLint param)
  5485. {
  5486. if(glBufferParameteriAPPLE_Impl)
  5487. glBufferParameteriAPPLE_Impl(target, pname, param);
  5488. PostHook(GLE_CURRENT_FUNCTION);
  5489. }
  5490. void OVR::GLEContext::glFlushMappedBufferRangeAPPLE_Hook(GLenum target, GLintptr offset, GLsizeiptr size)
  5491. {
  5492. if(glFlushMappedBufferRangeAPPLE_Impl)
  5493. glFlushMappedBufferRangeAPPLE_Impl(target, offset, size);
  5494. PostHook(GLE_CURRENT_FUNCTION);
  5495. }
  5496. // GL_APPLE_object_purgeable
  5497. GLenum OVR::GLEContext::glObjectPurgeableAPPLE_Hook(GLenum objectType, GLuint name, GLenum option)
  5498. {
  5499. GLenum e = 0;
  5500. if(glObjectPurgeableAPPLE_Impl)
  5501. e = glObjectPurgeableAPPLE_Impl(objectType, name, option);
  5502. PostHook(GLE_CURRENT_FUNCTION);
  5503. return e;
  5504. }
  5505. GLenum OVR::GLEContext::glObjectUnpurgeableAPPLE_Hook(GLenum objectType, GLuint name, GLenum option)
  5506. {
  5507. GLenum e = 0;
  5508. if(glObjectUnpurgeableAPPLE_Impl)
  5509. e =glObjectUnpurgeableAPPLE_Impl(objectType, name, option);
  5510. PostHook(GLE_CURRENT_FUNCTION);
  5511. return e;
  5512. }
  5513. void OVR::GLEContext::glGetObjectParameterivAPPLE_Hook(GLenum objectType, GLuint name, GLenum pname, GLint *params)
  5514. {
  5515. if(glGetObjectParameterivAPPLE_Impl)
  5516. glGetObjectParameterivAPPLE_Impl(objectType, name, pname, params);
  5517. PostHook(GLE_CURRENT_FUNCTION);
  5518. }
  5519. // GL_APPLE_texture_range
  5520. void OVR::GLEContext::glTextureRangeAPPLE_Hook(GLenum target, GLsizei length, const GLvoid *pointer)
  5521. {
  5522. if(glTextureRangeAPPLE_Impl)
  5523. glTextureRangeAPPLE_Impl(target, length, pointer);
  5524. PostHook(GLE_CURRENT_FUNCTION);
  5525. }
  5526. void OVR::GLEContext::glGetTexParameterPointervAPPLE_Hook(GLenum target, GLenum pname, GLvoid **params)
  5527. {
  5528. if(glGetTexParameterPointervAPPLE_Impl)
  5529. glGetTexParameterPointervAPPLE_Impl(target, pname, params);
  5530. PostHook(GLE_CURRENT_FUNCTION);
  5531. }
  5532. // GL_APPLE_vertex_array_object
  5533. void OVR::GLEContext::glBindVertexArrayAPPLE_Hook(GLuint array)
  5534. {
  5535. if(glBindVertexArrayAPPLE_Impl)
  5536. glBindVertexArrayAPPLE_Impl(array);
  5537. PostHook(GLE_CURRENT_FUNCTION);
  5538. }
  5539. void OVR::GLEContext::glDeleteVertexArraysAPPLE_Hook(GLsizei n, const GLuint *arrays)
  5540. {
  5541. if(glDeleteVertexArraysAPPLE_Impl)
  5542. glDeleteVertexArraysAPPLE_Impl(n, arrays);
  5543. PostHook(GLE_CURRENT_FUNCTION);
  5544. }
  5545. void OVR::GLEContext::glGenVertexArraysAPPLE_Hook(GLsizei n, GLuint *arrays)
  5546. {
  5547. if(glGenVertexArraysAPPLE_Impl)
  5548. glGenVertexArraysAPPLE_Impl(n, arrays);
  5549. PostHook(GLE_CURRENT_FUNCTION);
  5550. }
  5551. GLboolean OVR::GLEContext::glIsVertexArrayAPPLE_Hook(GLuint array)
  5552. {
  5553. GLboolean b = GL_FALSE;
  5554. if(glIsVertexArrayAPPLE_Impl)
  5555. b = glIsVertexArrayAPPLE_Impl(array);
  5556. PostHook(GLE_CURRENT_FUNCTION);
  5557. return b;
  5558. }
  5559. // GL_APPLE_vertex_array_range
  5560. void OVR::GLEContext::glVertexArrayRangeAPPLE_Hook(GLsizei length, GLvoid *pointer)
  5561. {
  5562. if(glVertexArrayRangeAPPLE_Impl)
  5563. glVertexArrayRangeAPPLE_Impl(length, pointer);
  5564. PostHook(GLE_CURRENT_FUNCTION);
  5565. }
  5566. void OVR::GLEContext::glFlushVertexArrayRangeAPPLE_Hook(GLsizei length, GLvoid *pointer)
  5567. {
  5568. if(glFlushVertexArrayRangeAPPLE_Impl)
  5569. glFlushVertexArrayRangeAPPLE_Impl(length, pointer);
  5570. PostHook(GLE_CURRENT_FUNCTION);
  5571. }
  5572. void OVR::GLEContext::glVertexArrayParameteriAPPLE_Hook(GLenum pname, GLint param)
  5573. {
  5574. if(glVertexArrayParameteriAPPLE_Impl)
  5575. glVertexArrayParameteriAPPLE_Impl(pname, param);
  5576. PostHook(GLE_CURRENT_FUNCTION);
  5577. }
  5578. // GL_APPLE_vertex_program_evaluators
  5579. void OVR::GLEContext::glEnableVertexAttribAPPLE_Hook(GLuint index, GLenum pname)
  5580. {
  5581. if(glEnableVertexAttribAPPLE_Impl)
  5582. glEnableVertexAttribAPPLE_Impl(index, pname);
  5583. PostHook(GLE_CURRENT_FUNCTION);
  5584. }
  5585. void OVR::GLEContext::glDisableVertexAttribAPPLE_Hook(GLuint index, GLenum pname)
  5586. {
  5587. if(glDisableVertexAttribAPPLE_Impl)
  5588. glDisableVertexAttribAPPLE_Impl(index, pname);
  5589. PostHook(GLE_CURRENT_FUNCTION);
  5590. }
  5591. GLboolean OVR::GLEContext::glIsVertexAttribEnabledAPPLE_Hook(GLuint index, GLenum pname)
  5592. {
  5593. GLboolean b = GL_FALSE;
  5594. if(glIsVertexAttribEnabledAPPLE_Impl)
  5595. b = glIsVertexAttribEnabledAPPLE_Impl(index, pname);
  5596. PostHook(GLE_CURRENT_FUNCTION);
  5597. return b;
  5598. }
  5599. void OVR::GLEContext::glMapVertexAttrib1dAPPLE_Hook(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)
  5600. {
  5601. if(glMapVertexAttrib1dAPPLE_Impl)
  5602. glMapVertexAttrib1dAPPLE_Impl(index, size, u1, u2, stride, order, points);
  5603. PostHook(GLE_CURRENT_FUNCTION);
  5604. }
  5605. void OVR::GLEContext::glMapVertexAttrib1fAPPLE_Hook(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)
  5606. {
  5607. if(glMapVertexAttrib1fAPPLE_Impl)
  5608. glMapVertexAttrib1fAPPLE_Impl(index, size, u1, u2, stride, order, points);
  5609. PostHook(GLE_CURRENT_FUNCTION);
  5610. }
  5611. void OVR::GLEContext::glMapVertexAttrib2dAPPLE_Hook(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)
  5612. {
  5613. if(glMapVertexAttrib2dAPPLE_Impl)
  5614. glMapVertexAttrib2dAPPLE_Impl(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
  5615. PostHook(GLE_CURRENT_FUNCTION);
  5616. }
  5617. void OVR::GLEContext::glMapVertexAttrib2fAPPLE_Hook(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)
  5618. {
  5619. if(glMapVertexAttrib2fAPPLE_Impl)
  5620. glMapVertexAttrib2fAPPLE_Impl(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
  5621. PostHook(GLE_CURRENT_FUNCTION);
  5622. }
  5623. #endif // GLE_CGL_ENABLED
  5624. // GL_ARB_copy_buffer
  5625. void OVR::GLEContext::glCopyBufferSubData_Hook(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size)
  5626. {
  5627. if(glCopyBufferSubData_Impl)
  5628. glCopyBufferSubData_Impl(readtarget, writetarget, readoffset, writeoffset, size);
  5629. PostHook(GLE_CURRENT_FUNCTION);
  5630. }
  5631. // GL_ARB_debug_output
  5632. void OVR::GLEContext::glDebugMessageControlARB_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)
  5633. {
  5634. if(glDebugMessageControlARB_Impl)
  5635. glDebugMessageControlARB_Impl(source, type, severity, count, ids, enabled);
  5636. PostHook(GLE_CURRENT_FUNCTION);
  5637. }
  5638. void OVR::GLEContext::glDebugMessageInsertARB_Hook(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)
  5639. {
  5640. if(glDebugMessageInsertARB_Impl)
  5641. glDebugMessageInsertARB_Impl(source, type, id, severity, length, buf);
  5642. PostHook(GLE_CURRENT_FUNCTION);
  5643. }
  5644. void OVR::GLEContext::glDebugMessageCallbackARB_Hook(GLDEBUGPROCARB callback, const GLvoid *userParam)
  5645. {
  5646. if(glDebugMessageCallbackARB_Impl)
  5647. glDebugMessageCallbackARB_Impl(callback, userParam);
  5648. PostHook(GLE_CURRENT_FUNCTION);
  5649. }
  5650. GLuint OVR::GLEContext::glGetDebugMessageLogARB_Hook(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
  5651. {
  5652. GLuint u = 0;
  5653. if(glGetDebugMessageLogARB_Impl)
  5654. u = glGetDebugMessageLogARB_Impl(count, bufsize, sources, types, ids, severities, lengths, messageLog);
  5655. PostHook(GLE_CURRENT_FUNCTION);
  5656. return u;
  5657. }
  5658. // GL_ARB_ES2_compatibility
  5659. void OVR::GLEContext::glReleaseShaderCompiler_Hook()
  5660. {
  5661. if(glReleaseShaderCompiler_Impl)
  5662. glReleaseShaderCompiler_Impl();
  5663. PostHook(GLE_CURRENT_FUNCTION);
  5664. }
  5665. void OVR::GLEContext::glShaderBinary_Hook(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length)
  5666. {
  5667. if(glShaderBinary_Impl)
  5668. glShaderBinary_Impl(count, shaders, binaryformat, binary, length);
  5669. PostHook(GLE_CURRENT_FUNCTION);
  5670. }
  5671. void OVR::GLEContext::glGetShaderPrecisionFormat_Hook(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
  5672. {
  5673. if(glGetShaderPrecisionFormat_Impl)
  5674. glGetShaderPrecisionFormat_Impl(shadertype, precisiontype, range, precision);
  5675. PostHook(GLE_CURRENT_FUNCTION);
  5676. }
  5677. void OVR::GLEContext::glDepthRangef_Hook(GLclampf n, GLclampf f)
  5678. {
  5679. if(glDepthRangef_Impl)
  5680. glDepthRangef_Impl(n, f);
  5681. PostHook(GLE_CURRENT_FUNCTION);
  5682. }
  5683. void OVR::GLEContext::glClearDepthf_Hook(GLclampf d)
  5684. {
  5685. if(glClearDepthf_Impl)
  5686. glClearDepthf_Impl(d);
  5687. PostHook(GLE_CURRENT_FUNCTION);
  5688. }
  5689. // GL_ARB_framebuffer_object
  5690. GLboolean OVR::GLEContext::glIsRenderbuffer_Hook(GLuint renderbuffer)
  5691. {
  5692. GLboolean b = GL_FALSE;
  5693. if(glIsRenderbuffer_Impl)
  5694. b = glIsRenderbuffer_Impl(renderbuffer);
  5695. PostHook(GLE_CURRENT_FUNCTION);
  5696. return b;
  5697. }
  5698. void OVR::GLEContext::glBindRenderbuffer_Hook(GLenum target, GLuint renderbuffer)
  5699. {
  5700. if(glBindRenderbuffer_Impl)
  5701. glBindRenderbuffer_Impl(target, renderbuffer);
  5702. PostHook(GLE_CURRENT_FUNCTION);
  5703. }
  5704. void OVR::GLEContext::glDeleteRenderbuffers_Hook(GLsizei n, const GLuint *renderbuffers)
  5705. {
  5706. if(glDeleteRenderbuffers_Impl)
  5707. glDeleteRenderbuffers_Impl(n, renderbuffers);
  5708. PostHook(GLE_CURRENT_FUNCTION);
  5709. }
  5710. void OVR::GLEContext::glGenRenderbuffers_Hook(GLsizei n, GLuint *renderbuffers)
  5711. {
  5712. if(glGenRenderbuffers_Impl)
  5713. glGenRenderbuffers_Impl(n, renderbuffers);
  5714. PostHook(GLE_CURRENT_FUNCTION);
  5715. }
  5716. void OVR::GLEContext::glRenderbufferStorage_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
  5717. {
  5718. if(glRenderbufferStorage_Impl)
  5719. glRenderbufferStorage_Impl(target, internalformat, width, height);
  5720. PostHook(GLE_CURRENT_FUNCTION);
  5721. }
  5722. void OVR::GLEContext::glGetRenderbufferParameteriv_Hook(GLenum target, GLenum pname, GLint *params)
  5723. {
  5724. if(glGetRenderbufferParameteriv_Impl)
  5725. glGetRenderbufferParameteriv_Impl(target, pname, params);
  5726. PostHook(GLE_CURRENT_FUNCTION);
  5727. }
  5728. GLboolean OVR::GLEContext::glIsFramebuffer_Hook(GLuint framebuffer)
  5729. {
  5730. GLboolean b = GL_FALSE;
  5731. if(glIsFramebuffer_Impl)
  5732. b = glIsFramebuffer_Impl(framebuffer);
  5733. PostHook(GLE_CURRENT_FUNCTION);
  5734. return b;
  5735. }
  5736. void OVR::GLEContext::glBindFramebuffer_Hook(GLenum target, GLuint framebuffer)
  5737. {
  5738. if(glBindFramebuffer_Impl)
  5739. glBindFramebuffer_Impl(target, framebuffer);
  5740. PostHook(GLE_CURRENT_FUNCTION);
  5741. }
  5742. void OVR::GLEContext::glDeleteFramebuffers_Hook(GLsizei n, const GLuint *framebuffers)
  5743. {
  5744. if(glDeleteFramebuffers_Impl)
  5745. glDeleteFramebuffers_Impl(n, framebuffers);
  5746. PostHook(GLE_CURRENT_FUNCTION);
  5747. }
  5748. void OVR::GLEContext::glGenFramebuffers_Hook(GLsizei n, GLuint *framebuffers)
  5749. {
  5750. if(glGenFramebuffers_Impl)
  5751. glGenFramebuffers_Impl(n, framebuffers);
  5752. PostHook(GLE_CURRENT_FUNCTION);
  5753. }
  5754. GLenum OVR::GLEContext::glCheckFramebufferStatus_Hook(GLenum target)
  5755. {
  5756. GLenum e = 0;
  5757. if(glCheckFramebufferStatus_Impl)
  5758. e = glCheckFramebufferStatus_Impl(target);
  5759. PostHook(GLE_CURRENT_FUNCTION);
  5760. return e;
  5761. }
  5762. void OVR::GLEContext::glFramebufferTexture1D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
  5763. {
  5764. if(glFramebufferTexture1D_Impl)
  5765. glFramebufferTexture1D_Impl(target, attachment, textarget, texture, level);
  5766. PostHook(GLE_CURRENT_FUNCTION);
  5767. }
  5768. void OVR::GLEContext::glFramebufferTexture2D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
  5769. {
  5770. if(glFramebufferTexture2D_Impl)
  5771. glFramebufferTexture2D_Impl(target, attachment, textarget, texture, level);
  5772. PostHook(GLE_CURRENT_FUNCTION);
  5773. }
  5774. void OVR::GLEContext::glFramebufferTexture3D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
  5775. {
  5776. if(glFramebufferTexture3D_Impl)
  5777. glFramebufferTexture3D_Impl(target, attachment, textarget, texture, level, zoffset);
  5778. PostHook(GLE_CURRENT_FUNCTION);
  5779. }
  5780. void OVR::GLEContext::glFramebufferRenderbuffer_Hook(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
  5781. {
  5782. if(glFramebufferRenderbuffer_Impl)
  5783. glFramebufferRenderbuffer_Impl(target, attachment, renderbuffertarget, renderbuffer);
  5784. PostHook(GLE_CURRENT_FUNCTION);
  5785. }
  5786. void OVR::GLEContext::glGetFramebufferAttachmentParameteriv_Hook(GLenum target, GLenum attachment, GLenum pname, GLint *params)
  5787. {
  5788. if(glGetFramebufferAttachmentParameteriv_Impl)
  5789. glGetFramebufferAttachmentParameteriv_Impl(target, attachment, pname, params);
  5790. PostHook(GLE_CURRENT_FUNCTION);
  5791. }
  5792. void OVR::GLEContext::glGenerateMipmap_Hook(GLenum target)
  5793. {
  5794. if(glGenerateMipmap_Impl)
  5795. glGenerateMipmap_Impl(target);
  5796. PostHook(GLE_CURRENT_FUNCTION);
  5797. }
  5798. void OVR::GLEContext::glBlitFramebuffer_Hook(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
  5799. {
  5800. if(glBlitFramebuffer_Impl)
  5801. glBlitFramebuffer_Impl(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
  5802. PostHook(GLE_CURRENT_FUNCTION);
  5803. }
  5804. void OVR::GLEContext::glRenderbufferStorageMultisample_Hook(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
  5805. {
  5806. if(glRenderbufferStorageMultisample_Impl)
  5807. glRenderbufferStorageMultisample_Impl(target, samples, internalformat, width, height);
  5808. PostHook(GLE_CURRENT_FUNCTION);
  5809. }
  5810. void OVR::GLEContext::glFramebufferTextureLayer_Hook(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
  5811. {
  5812. if(glFramebufferTextureLayer_Impl)
  5813. glFramebufferTextureLayer_Impl(target, attachment, texture, level, layer);
  5814. PostHook(GLE_CURRENT_FUNCTION);
  5815. }
  5816. // GL_ARB_texture_multisample
  5817. void OVR::GLEContext::glTexImage2DMultisample_Hook(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
  5818. {
  5819. if(glTexImage2DMultisample_Impl)
  5820. glTexImage2DMultisample_Impl(target, samples, internalformat, width, height, fixedsamplelocations);
  5821. PostHook(GLE_CURRENT_FUNCTION);
  5822. }
  5823. void OVR::GLEContext::glTexImage3DMultisample_Hook(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
  5824. {
  5825. if(glTexImage3DMultisample_Impl)
  5826. glTexImage3DMultisample_Impl(target, samples, internalformat, width, height, depth, fixedsamplelocations);
  5827. PostHook(GLE_CURRENT_FUNCTION);
  5828. }
  5829. void OVR::GLEContext::glGetMultisamplefv_Hook(GLenum pname, GLuint index, GLfloat *val)
  5830. {
  5831. if(glGetMultisamplefv_Impl)
  5832. glGetMultisamplefv_Impl(pname, index, val);
  5833. PostHook(GLE_CURRENT_FUNCTION);
  5834. }
  5835. void OVR::GLEContext::glSampleMaski_Hook(GLuint index, GLbitfield mask)
  5836. {
  5837. if(glSampleMaski_Impl)
  5838. glSampleMaski_Impl(index, mask);
  5839. PostHook(GLE_CURRENT_FUNCTION);
  5840. }
  5841. // GL_ARB_texture_storage
  5842. void OVR::GLEContext::glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
  5843. {
  5844. if(glTexStorage1D_Impl)
  5845. glTexStorage1D_Impl(target, levels, internalformat, width);
  5846. PostHook(GLE_CURRENT_FUNCTION);
  5847. }
  5848. void OVR::GLEContext::glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
  5849. {
  5850. if(glTexStorage2D_Impl)
  5851. glTexStorage2D_Impl(target, levels, internalformat, width, height);
  5852. PostHook(GLE_CURRENT_FUNCTION);
  5853. }
  5854. void OVR::GLEContext::glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
  5855. {
  5856. if(glTexStorage3D_Impl)
  5857. glTexStorage3D_Impl(target, levels, internalformat, width, height, depth);
  5858. PostHook(GLE_CURRENT_FUNCTION);
  5859. }
  5860. void OVR::GLEContext::glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
  5861. {
  5862. if(glTextureStorage1DEXT_Impl)
  5863. glTextureStorage1DEXT_Impl(texture, target, levels, internalformat, width);
  5864. PostHook(GLE_CURRENT_FUNCTION);
  5865. }
  5866. void OVR::GLEContext::glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
  5867. {
  5868. if(glTextureStorage2DEXT_Impl)
  5869. glTextureStorage2DEXT_Impl(texture, target, levels, internalformat, width, height);
  5870. PostHook(GLE_CURRENT_FUNCTION);
  5871. }
  5872. void OVR::GLEContext::glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
  5873. {
  5874. if(glTextureStorage3DEXT_Impl)
  5875. glTextureStorage3DEXT_Impl(texture, target, levels, internalformat, width, height, depth);
  5876. PostHook(GLE_CURRENT_FUNCTION);
  5877. }
  5878. // GL_ARB_texture_storage_multisample
  5879. void OVR::GLEContext::glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
  5880. {
  5881. if(glTexStorage2DMultisample_Impl)
  5882. glTexStorage2DMultisample_Impl(target, samples, internalformat, width, height, fixedsamplelocations);
  5883. PostHook(GLE_CURRENT_FUNCTION);
  5884. }
  5885. void OVR::GLEContext::glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
  5886. {
  5887. if(glTexStorage3DMultisample_Impl)
  5888. glTexStorage3DMultisample_Impl(target, samples, internalformat, width, height, depth, fixedsamplelocations);
  5889. PostHook(GLE_CURRENT_FUNCTION);
  5890. }
  5891. void OVR::GLEContext::glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
  5892. {
  5893. if(glTextureStorage2DMultisampleEXT_Impl)
  5894. glTextureStorage2DMultisampleEXT_Impl(texture, target, samples, internalformat, width, height, fixedsamplelocations);
  5895. PostHook(GLE_CURRENT_FUNCTION);
  5896. }
  5897. void OVR::GLEContext::glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
  5898. {
  5899. if(glTextureStorage3DMultisampleEXT_Impl)
  5900. glTextureStorage3DMultisampleEXT_Impl(texture, target, samples, internalformat, width, height, depth, fixedsamplelocations);
  5901. PostHook(GLE_CURRENT_FUNCTION);
  5902. }
  5903. // GL_ARB_timer_query
  5904. void OVR::GLEContext::glQueryCounter_Hook(GLuint id, GLenum target)
  5905. {
  5906. if(glQueryCounter_Impl)
  5907. glQueryCounter_Impl(id, target);
  5908. PostHook(GLE_CURRENT_FUNCTION);
  5909. }
  5910. void OVR::GLEContext::glGetQueryObjecti64v_Hook(GLuint id, GLenum pname, GLint64 *params)
  5911. {
  5912. if(glGetQueryObjecti64v_Impl)
  5913. glGetQueryObjecti64v_Impl(id, pname, params);
  5914. PostHook(GLE_CURRENT_FUNCTION);
  5915. }
  5916. void OVR::GLEContext::glGetQueryObjectui64v_Hook(GLuint id, GLenum pname, GLuint64 *params)
  5917. {
  5918. if(glGetQueryObjectui64v_Impl)
  5919. glGetQueryObjectui64v_Impl(id, pname, params);
  5920. PostHook(GLE_CURRENT_FUNCTION);
  5921. }
  5922. // GL_ARB_vertex_array_object
  5923. void OVR::GLEContext::glBindVertexArray_Hook(GLuint array)
  5924. {
  5925. if(glBindVertexArray_Impl)
  5926. glBindVertexArray_Impl(array);
  5927. PostHook(GLE_CURRENT_FUNCTION);
  5928. }
  5929. void OVR::GLEContext::glDeleteVertexArrays_Hook(GLsizei n, const GLuint *arrays)
  5930. {
  5931. if(glDeleteVertexArrays_Impl)
  5932. glDeleteVertexArrays_Impl(n, arrays);
  5933. PostHook(GLE_CURRENT_FUNCTION);
  5934. }
  5935. void OVR::GLEContext::glGenVertexArrays_Hook(GLsizei n, GLuint *arrays)
  5936. {
  5937. if(glGenVertexArrays_Impl)
  5938. glGenVertexArrays_Impl(n, arrays);
  5939. PostHook(GLE_CURRENT_FUNCTION);
  5940. }
  5941. GLboolean OVR::GLEContext::glIsVertexArray_Hook(GLuint array)
  5942. {
  5943. GLboolean b = GL_FALSE;
  5944. if(glIsVertexArray_Impl)
  5945. b = glIsVertexArray_Impl(array);
  5946. PostHook(GLE_CURRENT_FUNCTION);
  5947. return b;
  5948. }
  5949. // GL_EXT_draw_buffers2
  5950. void OVR::GLEContext::glColorMaskIndexedEXT_Hook(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
  5951. {
  5952. if(glColorMaskIndexedEXT_Impl)
  5953. glColorMaskIndexedEXT_Impl(index, r, g, b, a);
  5954. PostHook(GLE_CURRENT_FUNCTION);
  5955. }
  5956. void OVR::GLEContext::glGetBooleanIndexedvEXT_Hook(GLenum target, GLuint index, GLboolean *data)
  5957. {
  5958. if(glGetBooleanIndexedvEXT_Impl)
  5959. glGetBooleanIndexedvEXT_Impl(target, index, data);
  5960. PostHook(GLE_CURRENT_FUNCTION);
  5961. }
  5962. void OVR::GLEContext::glGetIntegerIndexedvEXT_Hook(GLenum target, GLuint index, GLint *data)
  5963. {
  5964. if(glGetIntegerIndexedvEXT_Impl)
  5965. glGetIntegerIndexedvEXT_Impl(target, index, data);
  5966. PostHook(GLE_CURRENT_FUNCTION);
  5967. }
  5968. void OVR::GLEContext::glEnableIndexedEXT_Hook(GLenum target, GLuint index)
  5969. {
  5970. if(glEnableIndexedEXT_Impl)
  5971. glEnableIndexedEXT_Impl(target, index);
  5972. PostHook(GLE_CURRENT_FUNCTION);
  5973. }
  5974. void OVR::GLEContext::glDisableIndexedEXT_Hook(GLenum target, GLuint index)
  5975. {
  5976. if(glDisableIndexedEXT_Impl)
  5977. glDisableIndexedEXT_Impl(target, index);
  5978. PostHook(GLE_CURRENT_FUNCTION);
  5979. }
  5980. GLboolean OVR::GLEContext::glIsEnabledIndexedEXT_Hook(GLenum target, GLuint index)
  5981. {
  5982. GLboolean b = GL_FALSE;
  5983. if(glIsEnabledIndexedEXT_Impl)
  5984. b = glIsEnabledIndexedEXT_Impl(target, index);
  5985. PostHook(GLE_CURRENT_FUNCTION);
  5986. return b;
  5987. }
  5988. // GL_KHR_debug
  5989. void OVR::GLEContext::glDebugMessageControl_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
  5990. {
  5991. if(glDebugMessageControl_Impl)
  5992. glDebugMessageControl_Impl(source, type, severity, count, ids, enabled);
  5993. PostHook(GLE_CURRENT_FUNCTION);
  5994. }
  5995. void OVR::GLEContext::glDebugMessageInsert_Hook(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf)
  5996. {
  5997. if(glDebugMessageInsert_Impl)
  5998. glDebugMessageInsert_Impl(source, type, id, severity, length, buf);
  5999. PostHook(GLE_CURRENT_FUNCTION);
  6000. }
  6001. void OVR::GLEContext::glDebugMessageCallback_Hook(GLDEBUGPROC callback, const void* userParam)
  6002. {
  6003. if(glDebugMessageCallback_Impl)
  6004. glDebugMessageCallback_Impl(callback, userParam);
  6005. PostHook(GLE_CURRENT_FUNCTION);
  6006. }
  6007. GLuint OVR::GLEContext::glGetDebugMessageLog_Hook(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog)
  6008. {
  6009. GLuint u = 0;
  6010. if(glGetDebugMessageLog_Impl)
  6011. u = glGetDebugMessageLog_Impl(count, bufSize, sources, types, ids, severities, lengths, messageLog);
  6012. PostHook(GLE_CURRENT_FUNCTION);
  6013. return u;
  6014. }
  6015. void OVR::GLEContext::glPushDebugGroup_Hook(GLenum source, GLuint id, GLsizei length, const char * message)
  6016. {
  6017. if(glPushDebugGroup_Impl)
  6018. glPushDebugGroup_Impl(source, id, length, message);
  6019. PostHook(GLE_CURRENT_FUNCTION);
  6020. }
  6021. void OVR::GLEContext::glPopDebugGroup_Hook()
  6022. {
  6023. if(glPopDebugGroup_Impl)
  6024. glPopDebugGroup_Impl();
  6025. PostHook(GLE_CURRENT_FUNCTION);
  6026. }
  6027. void OVR::GLEContext::glObjectLabel_Hook(GLenum identifier, GLuint name, GLsizei length, const char *label)
  6028. {
  6029. if(glObjectLabel_Impl)
  6030. glObjectLabel_Impl(identifier, name, length, label);
  6031. PostHook(GLE_CURRENT_FUNCTION);
  6032. }
  6033. void OVR::GLEContext::glGetObjectLabel_Hook(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, char *label)
  6034. {
  6035. if(glGetObjectLabel_Impl)
  6036. glGetObjectLabel_Impl(identifier, name, bufSize, length, label);
  6037. PostHook(GLE_CURRENT_FUNCTION);
  6038. }
  6039. void OVR::GLEContext::glObjectPtrLabel_Hook(void* ptr, GLsizei length, const char *label)
  6040. {
  6041. if(glObjectPtrLabel_Impl)
  6042. glObjectPtrLabel_Impl(ptr, length, label);
  6043. PostHook(GLE_CURRENT_FUNCTION);
  6044. }
  6045. void OVR::GLEContext::glGetObjectPtrLabel_Hook(void* ptr, GLsizei bufSize, GLsizei *length, char *label)
  6046. {
  6047. if(glGetObjectPtrLabel_Impl)
  6048. glGetObjectPtrLabel_Impl(ptr, bufSize, length, label);
  6049. PostHook(GLE_CURRENT_FUNCTION);
  6050. }
  6051. // GL_WIN_swap_hint
  6052. void OVR::GLEContext::glAddSwapHintRectWIN_Hook(GLint x, GLint y, GLsizei width, GLsizei height)
  6053. {
  6054. if(glAddSwapHintRectWIN_Impl)
  6055. glAddSwapHintRectWIN_Impl(x, y, width, height);
  6056. PostHook(GLE_CURRENT_FUNCTION);
  6057. }
  6058. #if defined(GLE_WGL_ENABLED)
  6059. // WGL
  6060. void OVR::GLEContext::PostWGLHook(const char* /*function*/)
  6061. {
  6062. // Empty for now. WGL functions don't have a function like glGetError().
  6063. }
  6064. /* We currently don't hook these
  6065. #undef wglCopyContext
  6066. extern "C" { GLAPI BOOL GLAPIENTRY wglCopyContext(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask); }
  6067. BOOL OVR::GLEContext::wglCopyContext_Hook(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask)
  6068. {
  6069. BOOL b = wglCopyContext(hglrcSrc, hglrcDst, mask);
  6070. PostWGLHook(GLE_CURRENT_FUNCTION);
  6071. return b;
  6072. }
  6073. #undef wglCreateContext
  6074. extern "C" { GLAPI HGLRC GLAPIENTRY wglCreateContext(HDC hdc); }
  6075. HGLRC OVR::GLEContext::wglCreateContext_Hook(HDC hdc)
  6076. {
  6077. HGLRC h = wglCreateContext(hdc);
  6078. PostWGLHook(GLE_CURRENT_FUNCTION);
  6079. return h;
  6080. }
  6081. #undef wglCreateLayerContext
  6082. extern "C" { GLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC hdc, int iLayerPlane); }
  6083. HGLRC OVR::GLEContext::wglCreateLayerContext_Hook(HDC hdc, int iLayerPlane)
  6084. {
  6085. HGLRC h = wglCreateLayerContext(hdc, iLayerPlane);
  6086. PostWGLHook(GLE_CURRENT_FUNCTION);
  6087. return h;
  6088. }
  6089. #undef wglDeleteContext
  6090. extern "C" { GLAPI BOOL GLAPIENTRY wglDeleteContext(HGLRC hglrc); }
  6091. BOOL OVR::GLEContext::wglDeleteContext_Hook(HGLRC hglrc)
  6092. {
  6093. BOOL b = wglDeleteContext(hglrc);
  6094. PostWGLHook(GLE_CURRENT_FUNCTION);
  6095. return b;
  6096. }
  6097. #undef wglGetCurrentContext
  6098. extern "C" { GLAPI HGLRC GLAPIENTRY wglGetCurrentContext(); }
  6099. HGLRC OVR::GLEContext::wglGetCurrentContext_Hook()
  6100. {
  6101. HGLRC h = wglGetCurrentContext();
  6102. PostWGLHook(GLE_CURRENT_FUNCTION);
  6103. return h;
  6104. }
  6105. #undef wglGetCurrentDC
  6106. extern "C" { GLAPI HDC GLAPIENTRY wglGetCurrentDC(); }
  6107. HDC OVR::GLEContext::wglGetCurrentDC_Hook()
  6108. {
  6109. HDC h = wglGetCurrentDC();
  6110. PostWGLHook(GLE_CURRENT_FUNCTION);
  6111. return h;
  6112. }
  6113. //#undef wglGetProcAddress Not needed because we happen to do it above already.
  6114. //extern "C" { GLAPI PROC GLAPIENTRY wglGetProcAddress(LPCSTR lpszProc); }
  6115. PROC OVR::GLEContext::wglGetProcAddress_Hook(LPCSTR lpszProc)
  6116. {
  6117. PROC p = wglGetProcAddress(lpszProc);
  6118. PostWGLHook(GLE_CURRENT_FUNCTION);
  6119. return p;
  6120. }
  6121. #undef wglMakeCurrent
  6122. extern "C" { GLAPI BOOL GLAPIENTRY wglMakeCurrent(HDC hdc, HGLRC hglrc); }
  6123. BOOL OVR::GLEContext::wglMakeCurrent_Hook(HDC hdc, HGLRC hglrc)
  6124. {
  6125. BOOL b = wglMakeCurrent(hdc, hglrc);
  6126. PostWGLHook(GLE_CURRENT_FUNCTION);
  6127. return b;
  6128. }
  6129. #undef wglShareLists
  6130. extern "C" { GLAPI BOOL GLAPIENTRY wglShareLists(HGLRC hglrc1, HGLRC hglrc2); }
  6131. BOOL OVR::GLEContext::wglShareLists_Hook(HGLRC hglrc1, HGLRC hglrc2)
  6132. {
  6133. BOOL b = wglShareLists(hglrc1, hglrc2);
  6134. PostWGLHook(GLE_CURRENT_FUNCTION);
  6135. return b;
  6136. }
  6137. #undef wglUseFontBitmapsA
  6138. extern "C" { GLAPI BOOL GLAPIENTRY wglUseFontBitmapsA(HDC hdc, DWORD first, DWORD count, DWORD listBase); }
  6139. BOOL OVR::GLEContext::wglUseFontBitmapsA_Hook(HDC hdc, DWORD first, DWORD count, DWORD listBase)
  6140. {
  6141. BOOL b = wglUseFontBitmapsA(hdc, first, count, listBase);
  6142. PostWGLHook(GLE_CURRENT_FUNCTION);
  6143. return b;
  6144. }
  6145. #undef wglUseFontBitmapsW
  6146. extern "C" { GLAPI BOOL GLAPIENTRY wglUseFontBitmapsW(HDC hdc, DWORD first, DWORD count, DWORD listBase); }
  6147. BOOL OVR::GLEContext::wglUseFontBitmapsW_Hook(HDC hdc, DWORD first, DWORD count, DWORD listBase)
  6148. {
  6149. BOOL b = wglUseFontBitmapsW(hdc, first, count, listBase);
  6150. PostWGLHook(GLE_CURRENT_FUNCTION);
  6151. return b;
  6152. }
  6153. #undef wglUseFontOutlinesA
  6154. extern "C" { GLAPI BOOL GLAPIENTRY wglUseFontOutlinesA(HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); }
  6155. BOOL OVR::GLEContext::wglUseFontOutlinesA_Hook(HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf)
  6156. {
  6157. BOOL b = wglUseFontOutlinesA(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
  6158. PostWGLHook(GLE_CURRENT_FUNCTION);
  6159. return b;
  6160. }
  6161. #undef wglUseFontOutlinesW
  6162. extern "C" { GLAPI BOOL GLAPIENTRY wglUseFontOutlinesW(HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); }
  6163. BOOL OVR::GLEContext::wglUseFontOutlinesW_Hook(HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf)
  6164. {
  6165. BOOL b = wglUseFontOutlinesW(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
  6166. PostWGLHook(GLE_CURRENT_FUNCTION);
  6167. return b;
  6168. }
  6169. #undef wglDescribeLayerPlane
  6170. extern "C" { GLAPI BOOL GLAPIENTRY wglDescribeLayerPlane(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd); }
  6171. BOOL OVR::GLEContext::wglDescribeLayerPlane_Hook(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd)
  6172. {
  6173. BOOL b = wglDescribeLayerPlane(hdc, iPixelFormat, iLayerPlane, nBytes, plpd);
  6174. PostWGLHook(GLE_CURRENT_FUNCTION);
  6175. return b;
  6176. }
  6177. #undef wglSetLayerPaletteEntries
  6178. extern "C" { GLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr); }
  6179. int OVR::GLEContext::wglSetLayerPaletteEntries_Hook(HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr)
  6180. {
  6181. int i = wglSetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
  6182. PostWGLHook(GLE_CURRENT_FUNCTION);
  6183. return i;
  6184. }
  6185. #undef wglGetLayerPaletteEntries
  6186. extern "C" { GLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC hdc, int iLayerPlane, int iStart, int cEntries, COLORREF *pcr); }
  6187. int OVR::GLEContext::wglGetLayerPaletteEntries_Hook(HDC hdc, int iLayerPlane, int iStart, int cEntries, COLORREF *pcr)
  6188. {
  6189. int i = wglGetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
  6190. PostWGLHook(GLE_CURRENT_FUNCTION);
  6191. return i;
  6192. }
  6193. #undef wglRealizeLayerPalette
  6194. extern "C" { GLAPI BOOL GLAPIENTRY wglRealizeLayerPalette(HDC hdc, int iLayerPlane, BOOL bRealize); }
  6195. BOOL OVR::GLEContext::wglRealizeLayerPalette_Hook(HDC hdc, int iLayerPlane, BOOL bRealize)
  6196. {
  6197. BOOL b = wglRealizeLayerPalette(hdc, iLayerPlane, bRealize);
  6198. PostWGLHook(GLE_CURRENT_FUNCTION);
  6199. return b;
  6200. }
  6201. #undef wglSwapLayerBuffers
  6202. extern "C" { GLAPI BOOL GLAPIENTRY wglSwapLayerBuffers(HDC hdc, UINT fuPlanes); }
  6203. BOOL OVR::GLEContext::wglSwapLayerBuffers_Hook(HDC hdc, UINT fuPlanes)
  6204. {
  6205. BOOL b = wglSwapLayerBuffers(hdc, fuPlanes);
  6206. PostWGLHook(GLE_CURRENT_FUNCTION);
  6207. return b;
  6208. }
  6209. #undef wglSwapMultipleBuffers
  6210. extern "C" { GLAPI DWORD GLAPIENTRY wglSwapMultipleBuffers(UINT i, CONST WGLSWAP* p); }
  6211. DWORD OVR::GLEContext::wglSwapMultipleBuffers_Hook(UINT i, CONST WGLSWAP* p)
  6212. {
  6213. DWORD dw = wglSwapMultipleBuffers(i, p);
  6214. PostWGLHook(GLE_CURRENT_FUNCTION);
  6215. return dw;
  6216. }
  6217. */
  6218. // The rest of the functions are pointer-based.
  6219. // WGL_ARB_buffer_region
  6220. HANDLE OVR::GLEContext::wglCreateBufferRegionARB_Hook(HDC hDC, int iLayerPlane, UINT uType)
  6221. {
  6222. HANDLE h = NULL;
  6223. if(wglCreateBufferRegionARB_Impl)
  6224. h = wglCreateBufferRegionARB_Impl(hDC, iLayerPlane, uType);
  6225. PostWGLHook(GLE_CURRENT_FUNCTION);
  6226. return h;
  6227. }
  6228. VOID OVR::GLEContext::wglDeleteBufferRegionARB_Hook(HANDLE hRegion)
  6229. {
  6230. if(wglDeleteBufferRegionARB_Impl)
  6231. wglDeleteBufferRegionARB_Impl(hRegion);
  6232. PostWGLHook(GLE_CURRENT_FUNCTION);
  6233. }
  6234. BOOL OVR::GLEContext::wglSaveBufferRegionARB_Hook(HANDLE hRegion, int x, int y, int width, int height)
  6235. {
  6236. BOOL b = FALSE;
  6237. if(wglSaveBufferRegionARB_Impl)
  6238. b = wglSaveBufferRegionARB_Impl(hRegion, x, y, width, height);
  6239. PostWGLHook(GLE_CURRENT_FUNCTION);
  6240. return b;
  6241. }
  6242. BOOL OVR::GLEContext::wglRestoreBufferRegionARB_Hook(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc)
  6243. {
  6244. BOOL b = FALSE;
  6245. if(wglRestoreBufferRegionARB_Impl)
  6246. b = wglRestoreBufferRegionARB_Impl(hRegion, x, y, width, height, xSrc, ySrc);
  6247. PostWGLHook(GLE_CURRENT_FUNCTION);
  6248. return b;
  6249. }
  6250. // WGL_ARB_extensions_string
  6251. const char * OVR::GLEContext::wglGetExtensionsStringARB_Hook(HDC hdc)
  6252. {
  6253. const char * p = NULL;
  6254. if(wglGetExtensionsStringARB_Impl)
  6255. p = wglGetExtensionsStringARB_Impl(hdc);
  6256. PostWGLHook(GLE_CURRENT_FUNCTION);
  6257. return p;
  6258. }
  6259. // WGL_ARB_pixel_format
  6260. BOOL OVR::GLEContext::wglGetPixelFormatAttribivARB_Hook(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues)
  6261. {
  6262. BOOL b = FALSE;
  6263. if(wglGetPixelFormatAttribivARB_Impl)
  6264. b = wglGetPixelFormatAttribivARB_Impl(hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues);
  6265. PostWGLHook(GLE_CURRENT_FUNCTION);
  6266. return b;
  6267. }
  6268. BOOL OVR::GLEContext::wglGetPixelFormatAttribfvARB_Hook(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues)
  6269. {
  6270. BOOL b = FALSE;
  6271. if(wglGetPixelFormatAttribfvARB_Impl)
  6272. b = wglGetPixelFormatAttribfvARB_Impl(hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues);
  6273. PostWGLHook(GLE_CURRENT_FUNCTION);
  6274. return b;
  6275. }
  6276. BOOL OVR::GLEContext::wglChoosePixelFormatARB_Hook(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats)
  6277. {
  6278. BOOL b = FALSE;
  6279. if(wglChoosePixelFormatARB_Impl)
  6280. b = wglChoosePixelFormatARB_Impl(hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats);
  6281. PostWGLHook(GLE_CURRENT_FUNCTION);
  6282. return b;
  6283. }
  6284. // WGL_ARB_make_current_read
  6285. BOOL OVR::GLEContext::wglMakeContextCurrentARB_Hook(HDC hDrawDC, HDC hReadDC, HGLRC hglrc)
  6286. {
  6287. BOOL b = FALSE;
  6288. if(wglMakeContextCurrentARB_Impl)
  6289. b = wglMakeContextCurrentARB_Impl(hDrawDC, hReadDC, hglrc);
  6290. PostWGLHook(GLE_CURRENT_FUNCTION);
  6291. return b;
  6292. }
  6293. HDC OVR::GLEContext::wglGetCurrentReadDCARB_Hook()
  6294. {
  6295. HDC h = NULL;
  6296. if(wglGetCurrentReadDCARB_Impl)
  6297. h = wglGetCurrentReadDCARB_Impl();
  6298. PostWGLHook(GLE_CURRENT_FUNCTION);
  6299. return h;
  6300. }
  6301. // WGL_ARB_pbuffer
  6302. HPBUFFERARB OVR::GLEContext::wglCreatePbufferARB_Hook(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList)
  6303. {
  6304. HPBUFFERARB h = NULL;
  6305. if(wglCreatePbufferARB_Impl)
  6306. h = wglCreatePbufferARB_Impl(hDC, iPixelFormat, iWidth, iHeight, piAttribList);
  6307. PostWGLHook(GLE_CURRENT_FUNCTION);
  6308. return h;
  6309. }
  6310. HDC OVR::GLEContext::wglGetPbufferDCARB_Hook(HPBUFFERARB hPbuffer)
  6311. {
  6312. HDC h = NULL;
  6313. if(wglGetPbufferDCARB_Impl)
  6314. h = wglGetPbufferDCARB_Impl(hPbuffer);
  6315. PostWGLHook(GLE_CURRENT_FUNCTION);
  6316. return h;
  6317. }
  6318. int OVR::GLEContext::wglReleasePbufferDCARB_Hook(HPBUFFERARB hPbuffer, HDC hDC)
  6319. {
  6320. int i = 0;
  6321. if(wglReleasePbufferDCARB_Impl)
  6322. i = wglReleasePbufferDCARB_Impl(hPbuffer, hDC);
  6323. PostWGLHook(GLE_CURRENT_FUNCTION);
  6324. return i;
  6325. }
  6326. BOOL OVR::GLEContext::wglDestroyPbufferARB_Hook(HPBUFFERARB hPbuffer)
  6327. {
  6328. BOOL b = FALSE;
  6329. if(wglDestroyPbufferARB_Impl)
  6330. b = wglDestroyPbufferARB_Impl(hPbuffer);
  6331. PostWGLHook(GLE_CURRENT_FUNCTION);
  6332. return b;
  6333. }
  6334. BOOL OVR::GLEContext::wglQueryPbufferARB_Hook(HPBUFFERARB hPbuffer, int iAttribute, int *piValue)
  6335. {
  6336. BOOL b = FALSE;
  6337. if(wglQueryPbufferARB_Impl)
  6338. b = wglQueryPbufferARB_Impl(hPbuffer, iAttribute, piValue);
  6339. PostWGLHook(GLE_CURRENT_FUNCTION);
  6340. return b;
  6341. }
  6342. // WGL_ARB_render_texture
  6343. BOOL OVR::GLEContext::wglBindTexImageARB_Hook(HPBUFFERARB hPbuffer, int iBuffer)
  6344. {
  6345. BOOL b = FALSE;
  6346. if(wglBindTexImageARB_Impl)
  6347. b = wglBindTexImageARB_Impl(hPbuffer, iBuffer);
  6348. PostWGLHook(GLE_CURRENT_FUNCTION);
  6349. return b;
  6350. }
  6351. BOOL OVR::GLEContext::wglReleaseTexImageARB_Hook(HPBUFFERARB hPbuffer, int iBuffer)
  6352. {
  6353. BOOL b = FALSE;
  6354. if(wglReleaseTexImageARB_Impl)
  6355. b = wglReleaseTexImageARB_Impl(hPbuffer, iBuffer);
  6356. PostWGLHook(GLE_CURRENT_FUNCTION);
  6357. return b;
  6358. }
  6359. BOOL OVR::GLEContext::wglSetPbufferAttribARB_Hook(HPBUFFERARB hPbuffer, const int *piAttribList)
  6360. {
  6361. BOOL b = FALSE;
  6362. if(wglSetPbufferAttribARB_Impl)
  6363. b = wglSetPbufferAttribARB_Impl(hPbuffer, piAttribList);
  6364. PostWGLHook(GLE_CURRENT_FUNCTION);
  6365. return b;
  6366. }
  6367. // WGL_NV_present_video
  6368. int OVR::GLEContext::wglEnumerateVideoDevicesNV_Hook(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList)
  6369. {
  6370. int i = 0;
  6371. if(wglEnumerateVideoDevicesNV_Impl)
  6372. i = wglEnumerateVideoDevicesNV_Impl(hDC, phDeviceList);
  6373. PostWGLHook(GLE_CURRENT_FUNCTION);
  6374. return i;
  6375. }
  6376. BOOL OVR::GLEContext::wglBindVideoDeviceNV_Hook(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList)
  6377. {
  6378. BOOL b = FALSE;
  6379. if(wglBindVideoDeviceNV_Impl)
  6380. b = wglBindVideoDeviceNV_Impl(hDC, uVideoSlot, hVideoDevice, piAttribList);
  6381. PostWGLHook(GLE_CURRENT_FUNCTION);
  6382. return b;
  6383. }
  6384. BOOL OVR::GLEContext::wglQueryCurrentContextNV_Hook(int iAttribute, int *piValue)
  6385. {
  6386. BOOL b = FALSE;
  6387. if(wglQueryCurrentContextNV_Impl)
  6388. b = wglQueryCurrentContextNV_Impl(iAttribute, piValue);
  6389. PostWGLHook(GLE_CURRENT_FUNCTION);
  6390. return b;
  6391. }
  6392. // WGL_ARB_create_context
  6393. HGLRC OVR::GLEContext::wglCreateContextAttribsARB_Hook(HDC hDC, HGLRC hShareContext, const int *attribList)
  6394. {
  6395. HGLRC h = NULL;
  6396. if(wglCreateContextAttribsARB_Impl)
  6397. h = wglCreateContextAttribsARB_Impl(hDC, hShareContext, attribList);
  6398. PostWGLHook(GLE_CURRENT_FUNCTION);
  6399. return h;
  6400. }
  6401. // WGL_EXT_extensions_string
  6402. const char * OVR::GLEContext::wglGetExtensionsStringEXT_Hook()
  6403. {
  6404. const char * p = NULL;
  6405. if(wglGetExtensionsStringEXT_Impl)
  6406. p = wglGetExtensionsStringEXT_Impl();
  6407. PostWGLHook(GLE_CURRENT_FUNCTION);
  6408. return p;
  6409. }
  6410. // WGL_EXT_swap_control
  6411. BOOL OVR::GLEContext::wglSwapIntervalEXT_Hook(int interval)
  6412. {
  6413. BOOL b = FALSE;
  6414. if(wglSwapIntervalEXT_Impl)
  6415. b = wglSwapIntervalEXT_Impl(interval);
  6416. PostWGLHook(GLE_CURRENT_FUNCTION);
  6417. return b;
  6418. }
  6419. int OVR::GLEContext::wglGetSwapIntervalEXT_Hook()
  6420. {
  6421. int i = 0;
  6422. if(wglGetSwapIntervalEXT_Impl)
  6423. i = wglGetSwapIntervalEXT_Impl();
  6424. PostWGLHook(GLE_CURRENT_FUNCTION);
  6425. return i;
  6426. }
  6427. // WGL_OML_sync_control
  6428. BOOL OVR::GLEContext::wglGetSyncValuesOML_Hook(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc)
  6429. {
  6430. BOOL b = FALSE;
  6431. if(wglGetSyncValuesOML_Impl)
  6432. b = wglGetSyncValuesOML_Impl(hdc, ust, msc, sbc);
  6433. PostWGLHook(GLE_CURRENT_FUNCTION);
  6434. return b;
  6435. }
  6436. BOOL OVR::GLEContext::wglGetMscRateOML_Hook(HDC hdc, INT32 *numerator, INT32 *denominator)
  6437. {
  6438. BOOL b = FALSE;
  6439. if(wglGetMscRateOML_Impl)
  6440. b = wglGetMscRateOML_Impl(hdc, numerator, denominator);
  6441. PostWGLHook(GLE_CURRENT_FUNCTION);
  6442. return b;
  6443. }
  6444. INT64 OVR::GLEContext::wglSwapBuffersMscOML_Hook(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder)
  6445. {
  6446. INT64 i = 0;
  6447. if(wglSwapBuffersMscOML_Impl)
  6448. i = wglSwapBuffersMscOML_Impl(hdc, target_msc, divisor, remainder);
  6449. PostWGLHook(GLE_CURRENT_FUNCTION);
  6450. return i;
  6451. }
  6452. INT64 OVR::GLEContext::wglSwapLayerBuffersMscOML_Hook(HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder)
  6453. {
  6454. INT64 i = 0;
  6455. if(wglSwapLayerBuffersMscOML_Impl)
  6456. i = wglSwapLayerBuffersMscOML_Impl(hdc, fuPlanes, target_msc, divisor, remainder);
  6457. PostWGLHook(GLE_CURRENT_FUNCTION);
  6458. return i;
  6459. }
  6460. BOOL OVR::GLEContext::wglWaitForMscOML_Hook(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc)
  6461. {
  6462. BOOL b = FALSE;
  6463. if(wglWaitForMscOML_Impl)
  6464. b = wglWaitForMscOML_Impl(hdc, target_msc, divisor, remainder, ust, msc, sbc);
  6465. PostWGLHook(GLE_CURRENT_FUNCTION);
  6466. return b;
  6467. }
  6468. BOOL OVR::GLEContext::wglWaitForSbcOML_Hook(HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc)
  6469. {
  6470. BOOL b = FALSE;
  6471. if(wglWaitForSbcOML_Impl)
  6472. b = wglWaitForSbcOML_Impl(hdc, target_sbc, ust, msc, sbc);
  6473. PostWGLHook(GLE_CURRENT_FUNCTION);
  6474. return b;
  6475. }
  6476. // WGL_NV_video_output
  6477. BOOL OVR::GLEContext::wglGetVideoDeviceNV_Hook(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice)
  6478. {
  6479. BOOL b = FALSE;
  6480. if(wglGetVideoDeviceNV_Impl)
  6481. b = wglGetVideoDeviceNV_Impl(hDC, numDevices, hVideoDevice);
  6482. PostWGLHook(GLE_CURRENT_FUNCTION);
  6483. return b;
  6484. }
  6485. BOOL OVR::GLEContext::wglReleaseVideoDeviceNV_Hook(HPVIDEODEV hVideoDevice)
  6486. {
  6487. BOOL b = FALSE;
  6488. if(wglReleaseVideoDeviceNV_Impl)
  6489. b = wglReleaseVideoDeviceNV_Impl(hVideoDevice);
  6490. PostWGLHook(GLE_CURRENT_FUNCTION);
  6491. return b;
  6492. }
  6493. BOOL OVR::GLEContext::wglBindVideoImageNV_Hook(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer)
  6494. {
  6495. BOOL b = FALSE;
  6496. if(wglBindVideoImageNV_Impl)
  6497. b = wglBindVideoImageNV_Impl(hVideoDevice, hPbuffer, iVideoBuffer);
  6498. PostWGLHook(GLE_CURRENT_FUNCTION);
  6499. return b;
  6500. }
  6501. BOOL OVR::GLEContext::wglReleaseVideoImageNV_Hook(HPBUFFERARB hPbuffer, int iVideoBuffer)
  6502. {
  6503. BOOL b = FALSE;
  6504. if(wglReleaseVideoImageNV_Impl)
  6505. b = wglReleaseVideoImageNV_Impl(hPbuffer, iVideoBuffer);
  6506. PostWGLHook(GLE_CURRENT_FUNCTION);
  6507. return b;
  6508. }
  6509. BOOL OVR::GLEContext::wglSendPbufferToVideoNV_Hook(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock)
  6510. {
  6511. BOOL b = FALSE;
  6512. if(wglSendPbufferToVideoNV_Impl)
  6513. b = wglSendPbufferToVideoNV_Impl(hPbuffer, iBufferType, pulCounterPbuffer, bBlock);
  6514. PostWGLHook(GLE_CURRENT_FUNCTION);
  6515. return b;
  6516. }
  6517. BOOL OVR::GLEContext::wglGetVideoInfoNV_Hook(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo)
  6518. {
  6519. BOOL b = FALSE;
  6520. if(wglGetVideoInfoNV_Impl)
  6521. b = wglGetVideoInfoNV_Impl(hpVideoDevice, pulCounterOutputPbuffer, pulCounterOutputVideo);
  6522. PostWGLHook(GLE_CURRENT_FUNCTION);
  6523. return b;
  6524. }
  6525. // WGL_NV_swap_group
  6526. BOOL OVR::GLEContext::wglJoinSwapGroupNV_Hook(HDC hDC, GLuint group)
  6527. {
  6528. BOOL b = FALSE;
  6529. if(wglJoinSwapGroupNV_Impl)
  6530. b = wglJoinSwapGroupNV_Impl(hDC, group);
  6531. PostWGLHook(GLE_CURRENT_FUNCTION);
  6532. return b;
  6533. }
  6534. BOOL OVR::GLEContext::wglBindSwapBarrierNV_Hook(GLuint group, GLuint barrier)
  6535. {
  6536. BOOL b = FALSE;
  6537. if(wglBindSwapBarrierNV_Impl)
  6538. b = wglBindSwapBarrierNV_Impl(group, barrier);
  6539. PostWGLHook(GLE_CURRENT_FUNCTION);
  6540. return b;
  6541. }
  6542. BOOL OVR::GLEContext::wglQuerySwapGroupNV_Hook(HDC hDC, GLuint *group, GLuint *barrier)
  6543. {
  6544. BOOL b = FALSE;
  6545. if(wglQuerySwapGroupNV_Impl)
  6546. b = wglQuerySwapGroupNV_Impl(hDC, group, barrier);
  6547. PostWGLHook(GLE_CURRENT_FUNCTION);
  6548. return b;
  6549. }
  6550. BOOL OVR::GLEContext::wglQueryMaxSwapGroupsNV_Hook(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers)
  6551. {
  6552. BOOL b = FALSE;
  6553. if(wglQueryMaxSwapGroupsNV_Impl)
  6554. b = wglQueryMaxSwapGroupsNV_Impl(hDC, maxGroups, maxBarriers);
  6555. PostWGLHook(GLE_CURRENT_FUNCTION);
  6556. return b;
  6557. }
  6558. BOOL OVR::GLEContext::wglQueryFrameCountNV_Hook(HDC hDC, GLuint *count)
  6559. {
  6560. BOOL b = FALSE;
  6561. if(wglQueryFrameCountNV_Impl)
  6562. b = wglQueryFrameCountNV_Impl(hDC, count);
  6563. PostWGLHook(GLE_CURRENT_FUNCTION);
  6564. return b;
  6565. }
  6566. BOOL OVR::GLEContext::wglResetFrameCountNV_Hook(HDC hDC)
  6567. {
  6568. BOOL b = FALSE;
  6569. if(wglResetFrameCountNV_Impl)
  6570. b = wglResetFrameCountNV_Impl(hDC);
  6571. PostHook(GLE_CURRENT_FUNCTION);
  6572. return b;
  6573. }
  6574. // WGL_NV_video_capture
  6575. BOOL OVR::GLEContext::wglBindVideoCaptureDeviceNV_Hook(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice)
  6576. {
  6577. BOOL b = FALSE;
  6578. if(wglBindVideoCaptureDeviceNV_Impl)
  6579. b = wglBindVideoCaptureDeviceNV_Impl(uVideoSlot, hDevice);
  6580. PostWGLHook(GLE_CURRENT_FUNCTION);
  6581. return b;
  6582. }
  6583. UINT OVR::GLEContext::wglEnumerateVideoCaptureDevicesNV_Hook(HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList)
  6584. {
  6585. UINT u = 0;
  6586. if(wglEnumerateVideoCaptureDevicesNV_Impl)
  6587. u = wglEnumerateVideoCaptureDevicesNV_Impl(hDc, phDeviceList);
  6588. PostWGLHook(GLE_CURRENT_FUNCTION);
  6589. return u;
  6590. }
  6591. BOOL OVR::GLEContext::wglLockVideoCaptureDeviceNV_Hook(HDC hDc, HVIDEOINPUTDEVICENV hDevice)
  6592. {
  6593. BOOL b = FALSE;
  6594. if(wglLockVideoCaptureDeviceNV_Impl)
  6595. b = wglLockVideoCaptureDeviceNV_Impl(hDc, hDevice);
  6596. PostWGLHook(GLE_CURRENT_FUNCTION);
  6597. return b;
  6598. }
  6599. BOOL OVR::GLEContext::wglQueryVideoCaptureDeviceNV_Hook(HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue)
  6600. {
  6601. BOOL b = FALSE;
  6602. if(wglQueryVideoCaptureDeviceNV_Impl)
  6603. b = wglQueryVideoCaptureDeviceNV_Impl(hDc, hDevice, iAttribute, piValue);
  6604. PostWGLHook(GLE_CURRENT_FUNCTION);
  6605. return b;
  6606. }
  6607. BOOL OVR::GLEContext::wglReleaseVideoCaptureDeviceNV_Hook(HDC hDc, HVIDEOINPUTDEVICENV hDevice)
  6608. {
  6609. BOOL b = FALSE;
  6610. if(wglReleaseVideoCaptureDeviceNV_Impl)
  6611. b = wglReleaseVideoCaptureDeviceNV_Impl(hDc, hDevice);
  6612. PostWGLHook(GLE_CURRENT_FUNCTION);
  6613. return b;
  6614. }
  6615. // WGL_NV_copy_image
  6616. BOOL OVR::GLEContext::wglCopyImageSubDataNV_Hook(HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC,
  6617. GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
  6618. {
  6619. BOOL b = FALSE;
  6620. if(wglCopyImageSubDataNV_Impl)
  6621. b = wglCopyImageSubDataNV_Impl(hSrcRC, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, hDstRC, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth);
  6622. PostWGLHook(GLE_CURRENT_FUNCTION);
  6623. return b;
  6624. }
  6625. // WGL_NV_DX_interop
  6626. BOOL OVR::GLEContext::wglDXSetResourceShareHandleNV_Hook(void *dxObject, HANDLE shareHandle)
  6627. {
  6628. BOOL b = FALSE;
  6629. if(wglDXSetResourceShareHandleNV_Impl)
  6630. b = wglDXSetResourceShareHandleNV_Impl(dxObject, shareHandle);
  6631. PostWGLHook(GLE_CURRENT_FUNCTION);
  6632. return b;
  6633. }
  6634. HANDLE OVR::GLEContext::wglDXOpenDeviceNV_Hook(void *dxDevice)
  6635. {
  6636. HANDLE h = NULL;
  6637. if(wglDXOpenDeviceNV_Impl)
  6638. h = wglDXOpenDeviceNV_Impl(dxDevice);
  6639. PostWGLHook(GLE_CURRENT_FUNCTION);
  6640. return h;
  6641. }
  6642. BOOL OVR::GLEContext::wglDXCloseDeviceNV_Hook(HANDLE hDevice)
  6643. {
  6644. BOOL b = FALSE;
  6645. if(wglDXCloseDeviceNV_Impl)
  6646. b = wglDXCloseDeviceNV_Impl(hDevice);
  6647. PostWGLHook(GLE_CURRENT_FUNCTION);
  6648. return b;
  6649. }
  6650. HANDLE OVR::GLEContext::wglDXRegisterObjectNV_Hook(HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access)
  6651. {
  6652. HANDLE h = NULL;
  6653. if(wglDXRegisterObjectNV_Impl)
  6654. h = wglDXRegisterObjectNV_Impl(hDevice, dxObject, name, type, access);
  6655. PostWGLHook(GLE_CURRENT_FUNCTION);
  6656. return h;
  6657. }
  6658. BOOL OVR::GLEContext::wglDXUnregisterObjectNV_Hook(HANDLE hDevice, HANDLE hObject)
  6659. {
  6660. BOOL b = FALSE;
  6661. if(wglDXUnregisterObjectNV_Impl)
  6662. b = wglDXUnregisterObjectNV_Impl(hDevice, hObject);
  6663. PostWGLHook(GLE_CURRENT_FUNCTION);
  6664. return b;
  6665. }
  6666. BOOL OVR::GLEContext::wglDXObjectAccessNV_Hook(HANDLE hObject, GLenum access)
  6667. {
  6668. BOOL b = FALSE;
  6669. if(wglDXObjectAccessNV_Impl)
  6670. b = wglDXObjectAccessNV_Impl(hObject, access);
  6671. PostWGLHook(GLE_CURRENT_FUNCTION);
  6672. return b;
  6673. }
  6674. BOOL OVR::GLEContext::wglDXLockObjectsNV_Hook(HANDLE hDevice, GLint count, HANDLE *hObjects)
  6675. {
  6676. BOOL b = FALSE;
  6677. if(wglDXLockObjectsNV_Impl)
  6678. b = wglDXLockObjectsNV_Impl(hDevice, count, hObjects);
  6679. PostWGLHook(GLE_CURRENT_FUNCTION);
  6680. return b;
  6681. }
  6682. BOOL OVR::GLEContext::wglDXUnlockObjectsNV_Hook(HANDLE hDevice, GLint count, HANDLE *hObjects)
  6683. {
  6684. BOOL b = FALSE;
  6685. if(wglDXUnlockObjectsNV_Impl)
  6686. b = wglDXUnlockObjectsNV_Impl(hDevice, count, hObjects);
  6687. PostWGLHook(GLE_CURRENT_FUNCTION);
  6688. return b;
  6689. }
  6690. #endif // defined(GLE_WGL_ENABLED)
  6691. #if defined(GLE_GLX_ENABLED)
  6692. void OVR::GLEContext::PostGLXHook(const char* /*function*/)
  6693. {
  6694. // Empty for now. GLX functions don't have a function like glGetError().
  6695. }
  6696. // GLX_VERSION_1_0
  6697. // GLX_VERSION_1_1
  6698. // We don't currently implement hooking of these.
  6699. // GLX_VERSION_1_2
  6700. ::Display* OVR::GLEContext::glXGetCurrentDisplay_Hook(void)
  6701. {
  6702. ::Display* p = NULL;
  6703. if(glXGetCurrentDisplay_Impl)
  6704. p = glXGetCurrentDisplay_Impl();
  6705. PostGLXHook(GLE_CURRENT_FUNCTION);
  6706. return p;
  6707. }
  6708. // GLX_VERSION_1_3
  6709. GLXFBConfig* OVR::GLEContext::glXChooseFBConfig_Hook(Display *dpy, int screen, const int *attrib_list, int *nelements)
  6710. {
  6711. GLXFBConfig* p = NULL;
  6712. if(glXChooseFBConfig_Impl)
  6713. p = glXChooseFBConfig_Impl(dpy, screen, attrib_list, nelements);
  6714. PostGLXHook(GLE_CURRENT_FUNCTION);
  6715. return p;
  6716. }
  6717. GLXContext OVR::GLEContext::glXCreateNewContext_Hook(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct)
  6718. {
  6719. GLXContext c = 0;
  6720. if(glXCreateNewContext_Impl)
  6721. c = glXCreateNewContext_Impl(dpy, config, render_type, share_list, direct);
  6722. PostGLXHook(GLE_CURRENT_FUNCTION);
  6723. return c;
  6724. }
  6725. GLXPbuffer OVR::GLEContext::glXCreatePbuffer_Hook(Display *dpy, GLXFBConfig config, const int *attrib_list)
  6726. {
  6727. GLXPbuffer b = 0;
  6728. if(glXCreatePbuffer_Impl)
  6729. b = glXCreatePbuffer_Impl(dpy, config, attrib_list);
  6730. PostGLXHook(GLE_CURRENT_FUNCTION);
  6731. return b;
  6732. }
  6733. GLXPixmap OVR::GLEContext::glXCreatePixmap_Hook(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list)
  6734. {
  6735. GLXPixmap m = 0;
  6736. if(glXCreatePixmap_Impl)
  6737. m = glXCreatePixmap_Impl(dpy, config, pixmap, attrib_list);
  6738. PostGLXHook(GLE_CURRENT_FUNCTION);
  6739. return m;
  6740. }
  6741. GLXWindow OVR::GLEContext::glXCreateWindow_Hook(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list)
  6742. {
  6743. GLXWindow w = 0;
  6744. if(glXCreateWindow_Impl)
  6745. w = glXCreateWindow_Impl(dpy, config, win, attrib_list);
  6746. PostGLXHook(GLE_CURRENT_FUNCTION);
  6747. return w;
  6748. }
  6749. void OVR::GLEContext::glXDestroyPbuffer_Hook(Display *dpy, GLXPbuffer pbuf)
  6750. {
  6751. if(glXDestroyPbuffer_Impl)
  6752. glXDestroyPbuffer_Impl(dpy, pbuf);
  6753. PostGLXHook(GLE_CURRENT_FUNCTION);
  6754. }
  6755. void OVR::GLEContext::glXDestroyPixmap_Hook(Display *dpy, GLXPixmap pixmap)
  6756. {
  6757. if(glXDestroyPixmap_Impl)
  6758. glXDestroyPixmap_Impl(dpy, pixmap);
  6759. PostGLXHook(GLE_CURRENT_FUNCTION);
  6760. }
  6761. void OVR::GLEContext::glXDestroyWindow_Hook(Display *dpy, GLXWindow win)
  6762. {
  6763. if(glXDestroyWindow_Impl)
  6764. glXDestroyWindow_Impl(dpy, win);
  6765. PostGLXHook(GLE_CURRENT_FUNCTION);
  6766. }
  6767. GLXDrawable OVR::GLEContext::glXGetCurrentReadDrawable_Hook(void)
  6768. {
  6769. GLXDrawable d;
  6770. if(glXGetCurrentReadDrawable_Impl)
  6771. d = glXGetCurrentReadDrawable_Impl();
  6772. PostGLXHook(GLE_CURRENT_FUNCTION);
  6773. return d;
  6774. }
  6775. int OVR::GLEContext::glXGetFBConfigAttrib_Hook(Display *dpy, GLXFBConfig config, int attribute, int *value)
  6776. {
  6777. int i = -1;
  6778. if(glXGetFBConfigAttrib_Impl)
  6779. i = glXGetFBConfigAttrib_Impl(dpy, config, attribute, value);
  6780. PostGLXHook(GLE_CURRENT_FUNCTION);
  6781. return i;
  6782. }
  6783. GLXFBConfig* OVR::GLEContext::glXGetFBConfigs_Hook(Display *dpy, int screen, int *nelements)
  6784. {
  6785. GLXFBConfig* p = NULL;
  6786. if(glXGetFBConfigs_Impl)
  6787. p = glXGetFBConfigs_Impl(dpy, screen, nelements);
  6788. PostGLXHook(GLE_CURRENT_FUNCTION);
  6789. return p;
  6790. }
  6791. void OVR::GLEContext::glXGetSelectedEvent_Hook(Display *dpy, GLXDrawable draw, unsigned long *event_mask)
  6792. {
  6793. if(glXGetSelectedEvent_Impl)
  6794. glXGetSelectedEvent_Impl(dpy, draw, event_mask);
  6795. PostGLXHook(GLE_CURRENT_FUNCTION);
  6796. }
  6797. XVisualInfo* OVR::GLEContext::glXGetVisualFromFBConfig_Hook(Display *dpy, GLXFBConfig config)
  6798. {
  6799. XVisualInfo* p = NULL;
  6800. if(glXGetVisualFromFBConfig_Impl)
  6801. p = glXGetVisualFromFBConfig_Impl(dpy, config);
  6802. PostGLXHook(GLE_CURRENT_FUNCTION);
  6803. return p;
  6804. }
  6805. Bool OVR::GLEContext::glXMakeContextCurrent_Hook(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
  6806. {
  6807. Bool b = False;
  6808. if(glXMakeContextCurrent_Impl)
  6809. b = glXMakeContextCurrent_Impl(dpy, draw, read, ctx);
  6810. PostGLXHook(GLE_CURRENT_FUNCTION);
  6811. return b;
  6812. }
  6813. int OVR::GLEContext::glXQueryContext_Hook(Display *dpy, GLXContext ctx, int attribute, int *value)
  6814. {
  6815. int i = GLX_BAD_ATTRIBUTE;
  6816. if(glXQueryContext_Impl)
  6817. i = glXQueryContext_Impl(dpy, ctx, attribute, value);
  6818. PostGLXHook(GLE_CURRENT_FUNCTION);
  6819. return i;
  6820. }
  6821. void OVR::GLEContext::glXQueryDrawable_Hook(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value)
  6822. {
  6823. if(glXQueryDrawable_Impl)
  6824. glXQueryDrawable_Impl(dpy, draw, attribute, value);
  6825. PostGLXHook(GLE_CURRENT_FUNCTION);
  6826. }
  6827. void OVR::GLEContext::glXSelectEvent_Hook(Display *dpy, GLXDrawable draw, unsigned long event_mask)
  6828. {
  6829. if(glXSelectEvent_Impl)
  6830. glXSelectEvent_Impl(dpy, draw, event_mask);
  6831. PostGLXHook(GLE_CURRENT_FUNCTION);
  6832. }
  6833. // GLX_VERSION_1_4
  6834. // We don't do hooking of this.
  6835. // GLX_ARB_create_context
  6836. GLXContext OVR::GLEContext::glXCreateContextAttribsARB_Hook(Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list)
  6837. {
  6838. GLXContext c = 0;
  6839. if(glXCreateContextAttribsARB_Impl)
  6840. c = glXCreateContextAttribsARB_Impl(dpy, config, share_context, direct, attrib_list);
  6841. PostGLXHook(GLE_CURRENT_FUNCTION);
  6842. return c;
  6843. }
  6844. // GLX_EXT_swap_control
  6845. void OVR::GLEContext::glXSwapIntervalEXT_Hook(Display* dpy, GLXDrawable drawable, int interval)
  6846. {
  6847. if(glXSwapIntervalEXT_Impl)
  6848. glXSwapIntervalEXT_Impl(dpy, drawable, interval);
  6849. PostGLXHook(GLE_CURRENT_FUNCTION);
  6850. }
  6851. // GLX_OML_sync_control
  6852. Bool OVR::GLEContext::glXGetMscRateOML_Hook(Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator)
  6853. {
  6854. Bool b = False;
  6855. if(glXGetMscRateOML_Impl)
  6856. b = glXGetMscRateOML_Impl(dpy, drawable, numerator, denominator);
  6857. PostGLXHook(GLE_CURRENT_FUNCTION);
  6858. return b;
  6859. }
  6860. Bool OVR::GLEContext::glXGetSyncValuesOML_Hook(Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc)
  6861. {
  6862. Bool b = False;
  6863. if(glXGetSyncValuesOML_Impl)
  6864. b = glXGetSyncValuesOML_Impl(dpy, drawable, ust, msc, sbc);
  6865. PostGLXHook(GLE_CURRENT_FUNCTION);
  6866. return b;
  6867. }
  6868. int64_t OVR::GLEContext::glXSwapBuffersMscOML_Hook(Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder)
  6869. {
  6870. int64_t i = 0;
  6871. if(glXSwapBuffersMscOML_Impl)
  6872. i = glXSwapBuffersMscOML_Impl(dpy, drawable, target_msc, divisor, remainder);
  6873. PostGLXHook(GLE_CURRENT_FUNCTION);
  6874. return i;
  6875. }
  6876. Bool OVR::GLEContext::glXWaitForMscOML_Hook(Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc)
  6877. {
  6878. Bool b = False;
  6879. if(glXWaitForMscOML_Impl)
  6880. b = glXWaitForMscOML_Impl(dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc);
  6881. PostGLXHook(GLE_CURRENT_FUNCTION);
  6882. return b;
  6883. }
  6884. Bool OVR::GLEContext::glXWaitForSbcOML_Hook(Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc)
  6885. {
  6886. Bool b = False;
  6887. if(glXWaitForSbcOML_Impl)
  6888. b = glXWaitForSbcOML_Impl(dpy, drawable, target_sbc, ust, msc, sbc);
  6889. PostGLXHook(GLE_CURRENT_FUNCTION);
  6890. return b;
  6891. }
  6892. // GLX_MESA_swap_control
  6893. int OVR::GLEContext::glXGetSwapIntervalMESA_Hook()
  6894. {
  6895. int i = 0;
  6896. if(glXGetSwapIntervalMESA_Impl)
  6897. i = glXGetSwapIntervalMESA_Impl();
  6898. PostGLXHook(GLE_CURRENT_FUNCTION);
  6899. return i;
  6900. }
  6901. int OVR::GLEContext::glXSwapIntervalMESA_Hook(unsigned int interval)
  6902. {
  6903. int i = 0;
  6904. if(glXSwapIntervalMESA_Impl)
  6905. i = glXSwapIntervalMESA_Impl(interval);
  6906. PostGLXHook(GLE_CURRENT_FUNCTION);
  6907. return i;
  6908. }
  6909. #endif // defined(GLE_GLX_ENABLED)
  6910. #endif // GLE_HOOKING_ENABLED
  6911. //} // namespace OVR