From a851cf197844a2eb15fd5ee2c350ee296e415dca Mon Sep 17 00:00:00 2001 From: David Gow Date: Sun, 27 Apr 2014 17:09:20 +0800 Subject: [PATCH] OpenGL 3.1 core profile support. If you thought the graphics code was ugly before, wait until you try this! --- bin/ipdf | Bin 494595 -> 675729 bytes src/Makefile | 2 +- src/framebuffer.cpp | 4 +- src/framebuffer.h | 5 +- src/gl_core44.cpp | 1897 ++++++++++++++++++++++++++++ src/gl_core44.h | 2646 ++++++++++++++++++++++++++++++++++++++++ src/graphicsbuffer.cpp | 20 +- src/graphicsbuffer.h | 5 +- src/screen.cpp | 191 ++- src/screen.h | 4 + src/shaderprogram.cpp | 61 + src/shaderprogram.h | 42 + src/stb_truetype.h | 43 +- src/view.cpp | 93 +- src/view.h | 5 +- 15 files changed, 4922 insertions(+), 96 deletions(-) create mode 100644 src/gl_core44.cpp create mode 100644 src/gl_core44.h create mode 100644 src/shaderprogram.cpp create mode 100644 src/shaderprogram.h diff --git a/bin/ipdf b/bin/ipdf index bc85e7c9d4d6a05390c538b0c03f767993fdb009..29d876f59432e32a2d49f62869412e63ee042e21 100755 GIT binary patch literal 675729 zcmc${4SZC^)d#!@tVRSkC~c$F8Wa`$42p{4M}n*_N@@zGq7?&#ASfR(ABt9Na9Pdu zvXxq?)LKnHA8M;cD;QD<%SYL0Z5uyoqoQ3cwRcUdQE8hhkG%i?nYnl8ZnB7dpZE8M zAA9dPbLPyMGiT16nLBsxx5Cpd&dN4hoJbOe^(W`^gM{?zKRH0TwtE|0m`v#KinkxpA*YDs;fTYBnMp%gg+g z>RWZacerBcUIT$*NoRh_+B`y~H;S;1n*vdIzqsJdv)`D4f%8x z6v1cw7V7lry1ZO^S*GQ8uS%*w;Iu^x=bkm;v_6OFotQ1@Sph( z#Q&zDfr7%kK&T)%G_P}LAdhLa_}_^CohydD*#6ghZ<`$cQ}4K=RvkINa!z6QjWds& z_@RB|{F=6@8{;1w^6pFTA2K%lr)jrLyb@XKI~gW+#OB?rU5 zghm<+|3D7>ojLd%0R;`lXK@ZbBXZ!|a^Q#OD0h2~`hG75{i)Dp@gVviXyZitQ2CMJv9P|@%=;x{& z_5B+77iS9z_$N8^@C&33CeLqk@ZXU`&R^%iUzmf>YdP?T=cw=W9P|@%;QyJUT{!*^ zR^JScIVJ%UJgFJ zIrLeRqh5#Qu%932z(19P&v$dk^K=e;Lk@f-2min2(8C=$^!&9Pe1_)G^I8D~BF_mjhpvga13=KRR$kVD_lF=uv^dO!*B2u7Uj&0^fhU!fSM3s^AX~ zT%qY*{4cB#rmp6?h4l?Jbyt*Mv}oy)nk(kaT~rgOs=99R(j`^(4Rh)ms;UB2m)=x0UDI8( zXij~7O})xKXl4{sbxBP_MNQrOrFDzvEUB)!XldgT6cMOexMX2Nfaw?4)zr*rteZcl zx<=p`H4PUv*3~bq6KJYScFDA=88^?Vy>j7_c}s7Wq>Jim<}}nyzhtt`eR18=#gZ`n zO5R?)5Yn@N8FOx`nOt5`HT_Bf!H6Q&Ev+t_H?OXyzFuK{QbML18*7$S-{Pi)>*};X z6-yT_3g1+-L<#@3MqP{PHML9Y8p@!Lx`u^Imq@-THT4a3OK&kmM%hzp7S%LB4bZ|e z#Y5F&#w}3&Vx#5?ZDgLdbk00~J;KWxYL?WaxEYPLEWT!*TSJxEEv0HcwCyHAzhw;# zbqnVKo=&pL7xp;Vd+EZNmbnbzapCHMdk%i-H4HS1*~f7{4@a~3uL5e`oW?u@x}>K9g5Ek%uM<}99iMb#B0RpA+DRn2HPvkE2NjQn4n zQGe0+@Z~dLFyJ-*?5Zl1we;qyxhQVVqD4!qZz9oUGwRQ*hPl;+3C?IZ{Y;Z?e&dpA z>bI&IITXQvCDcR;HGkovMN?;-Q58l(^X61Y@iXdcr-dsntEMP3mM*FfS6qzhOxNyoVprMWTt_Tb-Ci}UmagU5thxFyYQy* zRCqOeY*oW8wKeE}^Ow3@&Z=*O8PtUrqbefuT=a12xS@Ih9l)|>Rkbzfl1t_+TG(() z)lKjikg#F=MAhiXx^T&Ly5$Ek5D_@+)r?x5CmeXU5O+&%79EPdZviZpwtt3JeFe)tmnq{@~1JyMP7X{`oS_-FBe`8$(ldr2rw;{>+Kvm_E zn_--A)b)*vrIS~?d26Z{1?ubOESVRWzZ7)}%x|b!1WrrqZU{6i1Z@>Pef14h)eCN@ znm-4Hz&$Kn5~yEVeM3z{?VN>mfg8|kKt|V(5kb?`H7uPE(mK>in-E;{GWf>DHH+(O z8UhRJ=PX*%Nb^F4mn^M9Z=WN6a(;bH%?+fgUR)cP*I0Xc;HLT|wXmlK@|(A`QCL*h z-V&H!y=ZBDO<=LOia>pR^_(R_0)_$f2s`ckz$8&XE{Qr8ge25DVW0 zfhHq;y^&v~4>i(<1U}H|rQmnpcfN$CIv z?+0{1;76MNrN?go_h6t^!wuu^MM#++_zhtG^@rxl6@>;ua;JXWI2M^@UDZu;<4@wb zp6dR&aVGI~E)rKajwODnfiEgl9PQ4ZPWos}1}}gMO`nH`iHO4E$jR{W=5BwRrch)xdwjMdI3K;J;|#69)cE z2ENn4bIsrV>oV}(qZTA~8~7t!Vq8-O{>uj5G4Sp)A}044_@fN^egpp%10NWfvD>2! ze1U;4Ht>Z8ezbuvGVsS3_+kTptbreE;KvyF5(9snfuCsLZ!++u2L5;hA2IM_4Sa=x zA7|ia8u$|p{A>e%l7U}f;7>O2wFdqa1Ha6`pJw2j419@!Z#MAb4g6{Yf4YHRYv9i? z@GS;@f`MOW;LkMhtp@%q1K(!g&o=N013%HgcN+L}41AY?Ki9x_8~8~EK4sv~Gw_aq z=d%>|ug}0=;39GDH}Dr4_`snV`!6-{1qR++DJV4XlMVVJ1Amc$FE;Q~4E$IFA2#qM z2L56LKheNnV&F>+e8j*<4E$6BUt!=cHSjYH{AC7ywt=5!;1?M9asyv$;J<3%ml^oW z4SbVC|5Q9d|cjhLGtlf$t!kPdFj)t%QdVZWXwWFhj+3i@?_tW{8+xE%02z z3=Pvw0$)v-Az`{!;OT@52+tPyQo;-Y(-i_wCd|+;T`KUogc|G5W=NM#2>fv`V1{z( zR)Iex%n&Z!BJjI}8M>uc3;Z@=hHU93fnOucP%T|6@QZ{QqNQgG{2XD1X6Xunw-RPZ zmM#^zoiIbObcw)E5@raNE*AI^!VJCAg#!PWFhj0%K;Q=mGt^4={V(f(FX3XsDS_`M z%+M;`CGZ`Dk0G28_*TNl5^fc^jxa;0bc?{(6K3d?UM=uk!VHblO#)v{_yoeW0#7GA zmhfzWFC{#VaD~8=2{R;0mkN9?VTMBK5`j-A%n&GDEbxhh8TzCP1wMu_w?U)>0v|z` zAyB$+kF-BwhCb<(z{3bLj^WYNUs)nE@6fe=_Y}%Cd?2bT`TZ(!V$u=1-_KQBFhhcLp}@xwW+;#j2z&%#h5+flkEQ(ybLdZ}1Rh41Lw>qT z;C#Xy>eC5z#kIk(4KA)_+7#r($lL2ew#3d@^q8HuMy@@ovs!5MZz4S z)3XJBjxdMjbcMiM33EtJmkQiYm_u>8MBpb0a|lis3;YOS4zcM%fqzVxLu)!9@B@T7 zq^A4+BkfOkHsO@OcN69in(h+#4#FHd(+PoZC0tFoRp2_p94gZ-0$)#I+b^fOF z^I$K5#*vlC>D&$l&)O0E2da?w(Ke2^k?8r|e+5CqS3D6$Rc`LWu13)B?V6STCbEQ% z4y5aGC65`A6}=OY!P>O*&Aodg*7`2Ftm(vMnib=iIn9bMz-48k;n>i)7)RC6xbmjZ zxXRU`akE-N<7!$%;}$1E;~Kj{S1qK~M}Z5|45G1vD0rEyU6OlKNvK_L>aFNjSo9_Hwkgm2{@SmLXDr+2d=N z6tP}mLc>sstr7qZ@87$3!j>k#>bp(p3#iVm1MT%}>`ve*fK@isZcLZTpj0ii%){FKJZ8#1;-#RebKcwN1 zp3-Q4uwitx|A2;ZJrg3ySOM6LfP_6~Xy7mc$7|rr1P<50F$9Kd-~<4xQQ%T%bYO}d zWBW$zO|+1R9cS^7n7kwL^^`bbO&AllwoJA9J5E7P$gcF!$|~Ao4)Y>sDD!BT))S6c z+YF6f4UP7oUl8Z&>S6=uD(r3Q&+4XTo(5y*Ny00()0V$6Yny4>5o?o(?AmsG=HCC- zw%0t5+UBzDB3Quxf42R!-?onx1NPZ=i)svK!M~xY!EAf2-(XAr>Du;B5-S1|@S(@}JLGp1P`1UGYIhVv$H&x-AK zkW|Uo3Tt%@I@&uiVlD5CSdEE@9Ztwd(eW0CCNx4odPKMzUbQP?S9V8iP+2di;RNZ$ zA3;Q>CAWg*-i}>5Uni9iP2@$aa7xla`!aDT!KHmi(>_T2NuaaBjw+|zL0KtPR?>Oq zL&?_}iI;b^JCf-Sl#Ky}%X=Akz#mcV5C)0Yk*U&Uuc*~aDbJ+5$P_!=iOJ?f-NB)X zexUl5cA)QK!B~xb5v!77;eQzS;<)o^lPGK(s?H%7`E<%y#kpT;K6kUd#%B8gDyW)` zplY@gpxDo7wg@C^vl^eWDqADTumf!bAYU6a@D!Vf#@K<8McQ$qNDBQ%mpgf(l}$v) z!+)gk<5mLPes6AzTOQkY2KFQl< zkV3IZXS0Ejyw_&(p257)?Ge{B2O1+y6~>s=*uSLo(f+*9ngjx@1EpEeIqXW3I|ImX z8;m^IM*Deo+iH$_Wmn9A3D1VTt%I9r0hboaUj06O;g+(tT4;A8=a=oYgpRQ*$^x6Y zT%rsj&1&c@CCJjTTA7P81T7;DBDy?Bp9RrkL`u~~ILN*TA9S=)Q)1YN8(r`i5mkD;&9os{i^ zd#UvpbuVRhLIY)OAF-O8hYwoKJXOtg@cRYS&MR24ijRs(eNn#-8Wi#8NzBHIS76ZTDi+G5ggF1^QiplExC}K-0XwmhiI`VY^ue0K!*@|MLfIbwU zz@)Pb^|8XwM3+Ak2(A1v^4Z~M!0!c^h+%Yh^ny{w=#FL6XDfaQ4byLQKQ+wgLa@+A zSA?pybCtla{-23YQzrTZn#ooF&(yuBe=3_occJ%sa1Wuh4PJ|N!iaU`7_q~N)E*Za z2G!nd7*6^rQIanE;GsdolM^O z{=7+pRPt^x5R$htllMgCjc%X)jk0TIs~bRw$C+m?=Np%+%}*GPj) z99Py>MNM%DL}_ZF-({VJmQM4%5LfBT-qo&d8S`-|WYBz{Qc&GaVPxr8s|zlYMuV*z zu5Jv}C$8=rsJdZw!;w*G`5DUms2Et~Gqj72Chh9_$@o`a8U6f#0H)4yT10u9Q9w8R_)0X&S2>T;Mws|J?laC}{4lha z>n!?M^@d!6oB=`Hut$cFFTkeU&Ml@g)If;6{6q{_JjF6;de6(eil+1B?KBY5IM-$J zp2xht-tLCsR^x6Jg(J@9;1Lf4-Vw3>>>SF9G5n5;%SVtS=thmUODD!F@znoeLlC5ky5vG2wvPamy*mvAgBHW}WDA~~@j$^Jf|bG9{p%}xCaQ(^6?pz>hwaB67&`9U-_4pWYc`Yuq@uncOwNxpxB z3B(eO2TGvX6O>pH(iDo5S8FY*h1wvEF~bSBGWRVgSFsoHIhMu=h4n(jdd-{ml)*&B z1KBFqMa(rR>_}uBTKQ+_7Xk{0v6`Wt6`jqT-b_P#-8sg*UFxdzwc0h*!Kap|=H4LAts%q-7Rt1})m4pAfKYCnj^nqKbc|DpfR`;Tmk!UcV9xIUO)8mB(LbAL` z+0@+a*OWceKd8rd+!MTj;XXt6c4 z@_Fi6YiyGknV#deXpI%9N|_qFK;i;rN3Xs`jg>3ik>f` zp0(D_R`;TU*QpcJ`i?-NPiqGm2+6XJ@+qw?r~J|FGrbkl{nOeP4Xu5JHe_q9xir3EVzbj9|F^Fx)<< zuTL#*sf9$lau0^ZgSr&%!_Y_!qOy(^?)xxQ=+c&by{wYs!;0S34Ed~03m9Zr>-qe@ z13n|LnWpCa45N*O5irJm0%{C=OiVLI!iZg3gog_=aSPURb?!nA6e>W({vp#Mwo6@@ zO?{O?J_tGg|J4O2w#G=hqP+&uPh>26ZEFLW;#SjQ;S zKtwAmddQ4UATo({&Ve{R6J44uZdQip4Wm_gZhN4;%$#93)@*GUHF?lw<(DEhs1)ae zS4N6CZq~u1fK`}M{2D&RQ$<$eVI+o1?;@XE1#5qq_AYGM~}|zJ+H{e0GH5iljKsEWj`6ER`i*Z=KPJ#E0jr zwAXZ3mQ4W3a5qLMXjw z+{NFSC`{m1s0+n!oa+ufoGMCXI!5^zuwk)E!T4~GV9%(PvC`_+nJ*;ic zUteb(K%R68FedO?vJ=MnL|;V{|)yD7aF$n5fjR%8O$i>4d;aw4=(6(Q-JWIuM<1t+}NAkSy;qoGRW`X zv#FeJI-zoT)K>^K?UQnJX%T*}W|mx}!T_7$eY{IOm_Pp#6IFfD)LJ7(cUn_-KQMotSz`p zfj1JX3Pg|eJo9sK*v@e;BF*QS4Vz``oOH&xOxcTku~3m>%+A%9iG>EUu#Z2(!h#5t z3=5No!LB}i7IrzqH>nHJVqrQGfqG$K-^pQN*KrUvEG#Au&<9x9upAaPQw%a!Aiy*2 zz}&O26NNh4!tTS;K17#gP}9Qp$W{|=JlO-nd+Kp1JKA6tHu!*WDTkPSSlA$b+%>TE zFVTX;z+QWqw@D|TS8ZSwuB<)-i+DnE?~i9-+u-t@?SDjWpMe#7PEkU8HS{m!qZzT> zK9mK!6U()s*sSOfqBWwgU`^ddum|yeA zLxAaFWQg&?H@ao|n2aMwfCQbWyssUjAuLJiel#q+tKejC<#Ua^JE11kn@?+-$9rB%h3zt`9)r z{?@vVQe;&ADHnA2(OO@BKGRw+k~Widn}7pa>lwtG16%8RB=)t|n{)`i)_NY8|GKrF zVCMa9t>20_Qja~*S{n%ZTdR|({c5d0f-*DzEB4|hSgZxBieo>IgiT`0!WL_L{^$w% za@T7HM&^AquRr|Go8IY&##@tNiTz$&Bs-0g&O`gAM=wGQl@Y646hN_js{sS#%FZ`_ zANlrU0pbu*-F^@b%jkGuFVvm=f3Rk37oi)a@W^g6%sk*c!UbWxtd?&T4c3;@no-58%BRDfS)?9+_&cKP6Xh^&#l={$6?#7JLxjptR@V z2YsD9Temk$NAgTX83v3&d=Em4at`~*RGt#~l+*e~rVhE|>S`hK{Dj}9X>Gp9=Qh&W zMV-Y|=QsGY4eI<##6C;{rx^t*Xqo{}Rsl85D8kiMwW}TF<+N4`St->19|#kCwKpvo z_ep0r0|`Tazfzuv`oo}`bXGy1J`UOXORA8^?P~j{zh9biDai-UOMWdxnVzCndtf58 z6bN59U^VaarR8q9OZG>+=>v(h_G6h8|6GPp8>ZL%yKsQ?G&C5VTdizO4z$9v{pCPE zp11N@!+Cx>NNJSq%5$KBQ=0zV^85qVYj|8!o?>@EPloq^3eWc{_vk)_J|=;{8=2hE z-V)Gvb5K=J!ZAm3Zyfig&%L4ZN9U9v0eOVkZ%t-CWz=V{;6dfOuMgDluXD0_=JT+5 z(quzbzCqXA#fbhu<6n{J3~uL_?VD{0b4pe1VG*k!VqXfs%8AIOg}B10OfOP?RTo&S z3Ve1zfp9ZwfyVK)t+tD>mCWiusY&M(ScfrG8K*oi_kxwt+ms7L9H%_O^X! z&3Pqm*`E?q{t{pCm$=ne;@tyE9O$w#4nw(2Z_(yko-~lN#H{>|@Lue}fmNw-6IB(P zt}-(~>&rb>kC-X@!-|3r7DwqY$HxMaaP)SJl^({7w5NunkpK_kE=FKhCquJ{d*OBo zCX8fEc=EbD(}jmbUPhJsRVoHlw^WSnxOFF}zCxedrVDjbjWWIY1|Lm#;itTl;^Kj5 zQy27sYdNr2ZINU*rCX7w#7P`#T@$cL_ zp!fZJBcV5kuEV~AjT4Zky&ZQQ8}9V&gMVvBCQIiQsd0B`Luo;@FAtA`3RupL(qXV6 zUJuIi?b=#PdNp}J>bJPfOuMO{2+Rsq9T`qgKW+HID zu&z`r^2`*)dU=$F3R#9qaq~3mlrU1Rkvu8Qtyy!Ua4N+C?{EsGhFd8#?h3=eX;4y0 zD>HJ`LA4Qy$XhM!5UU#p6s{?NgDP~S*oIpjRZ%062qtElwM(x<7XC%r2w>7#*A9|^2vlQbGAIps8HA7}U}b7>mXaV8MJ`1)kD}Eq z-tbp`mti&Tvb2i|u48*Z<1b=+_N4HxMy~5S5fA-)L8tI03r0J4E{-m9tdPZbuRnm$b>y}+ZIm_@Z)Q_&*eiZ!o8v#8+Er9|l$9#tX`6+QHv_B`<*I8+LH3-0Zf4>*c234*p7Ra&qXw zTPc(QEhblJwz(ID;TpUVSwp98xoLF74!-rP(SglxWAFCfEpVD7LioxITuAt$DWnfJv49`mqYJonJ)ph(V{!LA4hTZ2!Vh_J zbf9b_!Ll~~%5D1rqp;x)P3#g*vxBimM@yaT)qTKQU6`fkbt&o~sIj7e)#E_f-Y(Ey z<L{gLzWd!k zGFQ3Kq}TsOmug*lnDM~qo?UijW^Y(C1i(<#9NG|k>XFd_>2sl#Ps7A_1b++!dtroA^QQ*%sDDQV;E0&^-@oFW@_WoH{sKndb`Jc0uBq*tb zA6StJ?a3f#dhdVz(L*{-9`Z#KNpHvc|I9_&O*A#47T`JVmedgJyp9i#0VlPm?VIb& zYtGg9OuiE2v$kp@%+BpJnYpjjxsy#aHU6=(%J6t+i9Pd{c{j3>>b*B90(E*YcA721>BQYvH1r zBlf+bD>=MD_SydlRk!)p3g3zh#ZCe(hV52r^LF)w(5=V?19%kcz4}jp2Nz@b$}M+u zS=cFUV|~iP<0{$Q81C$un=^Mkb6eaVIUDwac|xRj+j##F#*(nG)QCOu2{$NHF&^B$)i)NHD_Bv@^R}@8RJXqTGE}Yk;I} z$ds#E16skB5>kYJr%c^_8{!s~|G;rrA}F6&Ih5Hy7kk#8V)n+%{45qg3{ zG<+Y;rP-F@M={g=JQ`lBym!Wz&@Lv0*XkEdR^pj+GW?+Q!)v4;J~((kEXUJr8?TY6 z*OUDn@t^FJ8IOXFn8n2Hh-3MP{Ife^j@<9U{0Hrb(cNVG|E?ph$8-1nHi71S5Dze} zZ-97T9dVMR@7rPr7~uh*M}k*h*tY~5CH-?su+qNI59?^ekF3<=)u z`fOM5nH|yWchXhOo|&^Fa_sdwB7tc5!R(GmyO?eu#+zz^giysd_YjWe6Xz5eP)75GooLP>JD%?WhC=7 z1JgllDjI+pZeTnCO4Qp4R^@K1yl;vX?ww|pr|e43XHpUOCAkrIVZB9OyFV6p9kb(Q zfz9wB`rLsV*Sj*QHy2uvf;Sf!yP=QE1?su8nCekrG*L>8rH?jI3y8Y=lng3ZTtG%i zr_n@4G;%hOo53^Sj6wa&HXei9vbLG|m?0EHHbhu^k4Ct+_vp>1LT2ZEC^KS9v>CA` zm$;JHr6qVC7K&NO9ns57KYbFUT=$QMn>w0MSIQvyvCE&8idQ!2WsGCm3F^=x>9jwJ zH)qd4aqVI7>!7lbSEen_@lX3mPoq32fV_`Y_bJ{dQJD_vcJoO5I1Z9J*vOj?CHSfb zjw1M+2l7x!=Qre|Rm_TkT@l!2sy)$J|2E_Tt!h8#&cDk0#S*ElTtgmL0aIpech15U z4-d6UzVig76_vDjD%ts%RADs|TC_e6-KbG0`q5wQ-5a*vD#I}l6;#O;VDDGSVH+~k zM=NGvlynYL_o9!dQK!w#Y{6MjuDpG~>3b8Hxx(#c9hGniPq+&ek5(ikv~Z1WQXE_u z_Gd!4jq51ZRRhGj4fYJ)Lf4E!aSs+r=QedOVii-Yf@X-d1DvwO67pF}tOUjM#9F6# zbcwubOWvDe7+5Gp5x4vjVvPmc_G<@-^|z-)6ruY7g}T-Mo4S`WE!Nr&o`~tKYUOJi zO4T&_-#@`5j!Lp#5vL*3*JFUhf{yiPLSEPGXodik=I9BT&WJACvG#6-$2TjoyK-b8 z>MB2~<62wgo&&rUTO{5gxU2;dtRW!sW=k?x=Q%}qN$<5L&(6rYK)MQL%{$SQX@NIS zd|{l2Pc{|8ckoX$Xs5U6ptm50?*q^Yn5G`}*eJE|^mBC`@sPR(zlSTy`_U_1K>%Kb z#f9_?;@E3Ej}SqFy6>hnG27V&B1Ob2XudSVImsAaP28adQ40}y210VRAXm>ql|>Bo zFOOsjN-)bG41{D^%q(ZAEMi2z%BJ{%fe;?&GK-w&rmZ9BdfyAiV#eu9ah>&;?38Fi zJp1s0_)^L_u_TKVa7P|Nb#ycNes-7@+gqR@d2;2h*%o5`gUf07UpkS5OMXGq7r2D* zV^EoMI4U4WPw?0YY&MX2qf5Pu(SlZIU=i^C({v6njUMi;$KY{5F=gNy;cont_u;3q z7eBMGsCfS6--ls0I(B(4p1j-P-B^Z&Rn6LEmGfGOHCbNEcUfUx!@Ib|5j+%`HU~=8 z$`@oriNC~Jpu4uKN_5;6-QbJ|PzFcqU8=J~M|yP*D63*D>glk1SDgG&=tP!-)lA-{ zc(=QaodHt^t}-rwYv|Lfj7jtuT_T@(EaO7cyv&i1VP|||NBH5qG#3*vKRzGdcL_Ay zB$u1Naz4Iy5@?uoK0fY(UC|{VIiKGgX(&$Hyw3-1=uW;@asCkA%A4WoS|ovGAblNf zLL0)*gf=9iPLNZVyV#}d%I#{WakF~V_dXsou1=q$Qc%fe3uidUc1GNdA%dElR3vAR z9EF**wFSv`<8~&gRYVe841)A-$O8U3x%~4>!sQf*wFPT02jQB4czUCn%XYbDYi)7* zkRkn$s8-4GYsKL>yIe}Km4tR}u}EWe$`U2z*#N?x>+JCMP)9;enOO+$w{bgIwM*F5 z!m#T=fGVK)7zVD0k+&Guk9|GIC&Mizr_NnGKNO+{al7GwN`Tq6pIQz9IO-6*HXGJdmZHaq-O=<#qHmy3n!_dgNQQ+W293WQ=m1ZPbW zKT<6n#>0=3-4tpwUimnhAkmS~@#Q@b7zhRi2_3Kemf@U!;58e}@uId}`IMY0@@yI2 zJnuvW+NphiRJDmdPiK4fr*aRDNoSL~7ZK*5)sx{?40#X&zi}HR=u_c(7T5K0n z%TiuQRnt^n*o{?DR;ooQ?@pB6e&7J*O=WMkitlSGU%@y0}hg=^@ztjoXohe)ED~fl<-i&0`3VG7`HZk!v0>&{h4t!f#;VZBVG3KjQ@d_Q76iZ_c<&TXuI$zE7pJn zoz7mWI$?rmDv!qi)i~2g%h7{nYLfmPn?^qg@b`9hTJ(1IVKt3OKkTPfWnwRjC-ijb z1_O2Xz{3M{*Tn%)kIgsy5M2TuYb-T(;sA}kOrNMpQ&cmWg&KQV?!Cerp+Jm!-t>+n zn~q2AH2If~RQD1?GI2vTA})x=R*5^>C2X|*jT3-Aiu}?J-U)AjrzUoAx!iQ&`KH{w zYzJ?Un_X_%V0|<;RUiUQFaX8V6(tk!2O9Wp1D|K$cN+LKhI^M!@5WN(n*af~%UG29LW3 znRG`mC)2f*iMrumK0+Ff3t?0ng_VV}zN7;U7rdA_q{z$W?LQ z@)dU@Au<+Gz8lw^l)&(Eg4d7ju*cy0na;2Vy)~`kKdxqpPx|!_GDC*+m>*{lUbndb zollP%hds<&FMC6VT6MVU48qI4_dzea^he1qg$;p3nsGaO>Wb~1sDS%U(Td*L_`oCv zh0eY2qtNvUT+mx$&)_=Gn1%I^Pr#;`+TptPBOhRqv2JF>N$V(7Sg{3uZOaUUo*+?&wND%Wh7|TZfSg|(Hqg%>V>f>BcC!Jd5O*(xdY|yf$H%MVC zwsN`0x88MPCfUB1sb)`o<8JBK6fI(1k?ALpicRM2L2;#OCpN3gJOLi6xBGha8VaQ9 zYu#}qrP2zKMF?;E!ugm0`ct3{)F9~`oSlN@Z5Cdvl1Fj9M6paZ)q+3&JWgD*@ydAh zi`gmcaxCM22Bhpp5>tL+vTyL%hx;?10th<)KnrBg)GDzf>3W3P)*VGsX*`!`Qg@a8 z)*Yif9Ge11)aCb#M1a`eF)Lms=wkUGN79a^U!!_?bhP%ApW#&dAdO4<*-mvX zR41BwlC8KAB?a1tU?`BCQ6fV3ou+snLz5ZNdkHa*P(DUVw;96yrri;8&BRzqnu!K% z!xX#~ns2l96uvQ-J^@uFDx>@kxO5BeMv{!?99e5^X`@0yk8c@=T{XGVu+^h265q(B zNX$|}UnV;lrJ~jj=V?sbvAB>>g}LqeHKQ;}Erro>W)+s5rVAsR!3w)n71o*l0@s&~ zsww&5NYStq*qQ_LV%K@Y&ShBgGwJ3933d<8~e9W&MXV5-&04;w)24*obV;*3^q{l=^4Rz9{zB(T8(v7P~S`Jk75 z5a!|rr9U48G1B&xuh&QE&xiQc;Nq9lpU*F+nU5M#rW~&rg2{PgD^BhbEAE^xn@Bpv z3I>pM}fNiB^OdsYqfMbk(u@vuLvqMfu4(SF9tEJaUxXH zW(V*31l`qj=WQ6Ln_cU`eG|vKkFblKED*`40f37|nh!UL?Nraw(G6U){s_-InIq#A z-Xg|0xo<^pUokM&rlP+vGFdYl(QHJ0?g$@0Vz`TsA2BY*%(*x;E{v}pmE)^NmH6t> zEPVB-246i|jISOwrtsyXK15oDU}HpBu?VvA(??^0=fYJob~5ftlrdv4k}v#3;xfGk zG!coBc%0M-!pRJ2rMP&b^rCx-TSFYiW+k-OL@?8wKQr68GszvXphpyk??DSqz1kUh`E^{boG?yAjCp{&uc1VEgx8 zysYBebD(oztwQfEaLceui@f~?9{(hZWfOA{E?}5Z3fTYti(NX_U2)dD?9!86jQftI zUI9LDuUla}wD3wH-+%e|4wQs6Zz8wIg8QBDd>Or~r~^_WB7Gu{~y2^));i2K>%$g8+$G|JXalE&=#FL4;EP#{%pk zc(;JX0AD8fO@N>U->`*k8|f)L?l-yjC3FzJ;iV1~bl2*A+Th4GcS}Cm&9#HGkZipI#5^F7K1-*Eb^7^k`V^IZ9MZkHR4wE}o^dAb z8ifm*xCn4%ZL?9wjpw0e?W}UgDbRrNAZI-Nf*t%l%A_Bru!yZspoLjL|J6BLFW7hMdG0S@bh-~c}UO;ay4!K9R(^^QvQxY zbr9SCE1tOyo?#1tBNZ(X~N@sad-Al1IQ7Dn; z8Zg^D53S%#MyWf3-~1+a$_t~OS|z7s4pVVzx%dc*EHn2Mh5aVks+52~We!r@$Na*i z!a#@^?~5|T3v6d=WR5#V-}vxW_Kn8FHF){u}_k zxZiM)b19hGfu3_WJMhWQB9v(dzYW3;K3oI!rNCsUk5tsdcLZ0UJk`FQH^l1K$nZ1x zDQ~luKZPKj&n3d!F#^MXA#||J^VWH4B_1vc4%HQdI*+*WRz4((H=;e2<%v%*&f>Zl zRN6rB0!z5h3jYc*Likt8Bbo0w%sdvo*4nggCw0EQ1s7}0gZz!J#ji0?hdamPiEQvO z)LV2on>uXp>+r^AjKlO~>iFFG@U;{^mLfwDe<_T^{vlZ_$HQ3x_CZatA7!BmcfR0u zMC=&Fp+#_oeX5lNM#-6U?g0kTz-nek4eObiiJt(B*z3ug;K?}Cx8v8kyFZQ^PP0BGew2y7ANVQOzli@8 zvQM%8!P^yg8d)2J?fjR=`V^Dm~~)- zXH<6Zqnqg6cv2*=cQ70Kl}Fb{y0w`1V1SSYyv=LCHgxKSFf(_ks6-Ii)bbpBlI~Glsyp-uaMXkGBlg`evu2+~F-QvMLw!6s<{&OdAP97i(C}hg@7x~~!w}m%_Iq@fa;TiPe$0`9_eXF8h;Pdxb|b-JM6=%hp|FF%+zO-g z6dLzNl?6}Tw-%`nW?(rP&-_z--IHO`*Z~C7ND$uRmxa=`U&`J~cSoaYl8mm*s=9jI z(K@r-8G{>Bs+Q?v?w6U{(%M%e4Wj6QWs-KTmtyrdhxcGB%bpywg-bn3SK(NgLPKL0 zlr*yx^qx9q(0jKQp}n=d*ADka`wMQKrM9|sW3=H`m;PPNm>b`Qo4@g<9yjms=6c*X zyqSZWG;e0&=3U-gj++#3F2>DUyg45?Z}Vot#uK2t_AOxE(Xtu=SqibS^Gz5v+6$kg z3^Wc|-SfJ9n=JG+ZTFJ(*tYNTGPgceHw)Ihc;=O1QJ){GOYb5hTTmB)_Ldioraj0dL|3_ts~N4P^d+ zx~S4g3az3$a>jk60wP7cO0=zacANr@WM*F_(w93+n;UmESEic7JDZm83N#!jTS0n) zlCNnwc32$PhHPw9{00u%+O&KpaRmmhOKrGxIZ7b|XR zWnfHMTLlbjV;roMsjjD~BEHdchncWfGGNzy7#+^NzlbB09o&7hs0jR~7hzq&UcN_6 zgsaQglxR(s!dX~$og1-xGG%p6v9?UHoc31Jg>+Toul{fL zNcBb5tcpJ5Rdl1jqDy5kRTbT!oQ72TYGuL)qoUkTRsEt}zAIAwfvW7j>M4GjBB&-g z!H@~M9HQ6`uOr(%>Y)P)&vZ&QS+=FXzoqn9J(}wapRlGdI~G#_zF!i=9wOW}XVdLM z>7owYH)B;DO*isJHeF-NE(djGw~f!^;``k=4qJ}bkm4l=YmM{7yxuN0>q(*xU)0iE zlqsBrE;R~0OcnamTCtZD;t!ZeBTC&v9g46##eRW7 zEG-;n&kxAJsPwW2Niw-NF*nb$GD?S>o=Rm*H@_u?TEJYm%jL@`{42@

XL{o9W>9 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�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%0ALC?3Pqi32rB9w_~0+W zh8d&8L*?GQ6S~?DL8b_EDHzAZnHig~JdP4;e%DJ7E7^5F^v?tP;+TkPeh*Zoo-h(Q ztJed2d5jWf9!WQ$nqSBa>{vve+d$vhkcZ!Ya2bC`QKxo(bw3zi2GhF@7*%c|N7xv#5fGX9o2+l1g-V**t?FG+S_4~5ipb=>%j`Jm zG0=O&*;VLn=BuT}uGtr$FT~XN0<5UV@k2jJ>J9WX`HgCh0H5Dz%3Wwn`HiL-=wx&b%wcS#+N`wXch_TDan5*NoVD+Yv+gHx&TgDe&T|UH*-%C&w48%ZerN^9 zlKjvqm4ZBdu{dX*FV5QQ#98;CIA=X4&e=bSb8e#y%AH>*&PHBtnjgA|m%QeOF5V!{ zCELWge7`uG-xg=fXX0G_Z*l7Q(Tx1iHKpQg9V5 z;#@pioK5S*xn!$2mp&rSWv_{I`48e;;g3+ul^Nn}E)(af$>MBTBhJ;gi&M8xoULz* za~;ig^V6=6G^TSyM{#Z%C(f;_#JQcf#^tBoxl^3G4~ui}PvYDc&LM4kdvWd`AkG6* z#d+{laUQxtoE=q7$ocSmaUMBeoJVgL=du0bJpPk7Pc&*u&L>O6d1|mYyXT3s=X`PY z@~XM~w0*o%E@ zX#w3<+$7y!Tu09mH=-GzqO>NOnNyV3Tr*pW((*Jjq$sV>l`C@PT8f;!b)-Mafj2*+ zq)wa;w~BMZc5ymBAx`H^bUyhRU2?_g+D4qxF5+~1g7q!q#An4h=@oIh(;75Cqvtwd ziL&p?&*;5LkmYsa^tn}>zT3s=-%D5q3=wDG7;y$o6=%p7!ZP$HafbaZ&TvO)6&uAF zxe`ueer+e*Wdr(?9DeL35FWf1u+t55mGDq@9q?b~$n{ER~~>gmSU8sqi)z1+_73 zm=K0Uj(o+msqike&H{!*S(t#CNJwOhX;a}1X?i%ug*o+7Q{g>CSxx{Cwo}@e64#NqivVYT=yF@xx9a z8Y4RJ6h=)%p|(R}oST^28JHiLcoRZF zv83D6;?CK@L~@Fipd01wX>sQ~)*EC_y^baq)8fu~QK|svWI|WPw77E?NRC`cECUJ) zuYRpRw8eM6obNkI4@38TGVkUQ=npxcuGpqaDO!dCt zZ$_oLWC?L;TX7@ad@VZPw^~jDA+m#3UrIIDd$=U4b4^hMAz-G@%h|Lu- zo}A5|Cs>}G&7L3Ez%OE{Bsn>oJ^i=;jRqFEDwUJ7+0*~O!(Wf2pm=Bi=`^#MiOlnQ znb!xH?P&n%y#6N0EUaV5H3-JJlSyYGCdjHi4IrI+ z7%ApkJxYk9uw{;tTIMKeV;&`qbmct0EK-`oaWb7p4ecp3vQZwM1@zD5I$<%-{`se9 zvT~wt>U?n#ItTw37O}mFni1b7M8J&<&-nRA3W;wRhQzkiO%?NH!GDU-_}bBc z#xs8YFC`*;7cp@t;Tb>w_ku0v89)C@S;_54j(C?9rWXn3NL9R(S+qd7`1*2GhhndN4lV8Wa0w~R>KL2mL|Di*eqIZifa*wJwhx%#-NyI{QSR36!~gYKL>fn&;OT@ z__`z{Rm?Mf{)v(c%n%bpQR`+C&-nS*3j^P)Ovbx3p7HZ%+AJ@=Y=sG!yej4yKmT+Q z8%2`T1?k1;Me=@Uh2R-K|9!&6_p_t9ih0J*zgXyeLpdsTVNq4gGk*Rjgo&?pi5R-{ z^~ZreU+8?jF?1u!r67E{W(;D)cfk52p7HZ9kxb`%q3MRDLP`O*=jlHG)vU^VUo~VOyukpEr0}fC3 zH9n7UvcuDTjn5|>a(KG0@dbp#4o~+rzL0Rl`6UO||FgKL1wc1YfHYIbr4t?RmP-FZ%?1-A-hOOXlf5 z{}q(xYxvR9#XQ~T-zq_VOZr)eRahX&H@E4s7>jwj&yO22z`=L;L`bTbr~CZ7HOGkK z<0L}JZU$Y<(|!K^ntd_f_>HVE6!UbSKSz^|s{r+4Xy`oM=YLf*ySO}%5OsSrp6>G> z*1bXJy1~)(_B`F^-^*A(*HArCs+gzy{4=Dl;X;G7SXIo^eg3|J<+?*6t?nd^r~B~P zJ4Tud67?c&wDNSHf0)p@QgIBOr~CXPh0Y}mLzlK>^8delj)yMZjH`$*+#Nqu1+>+_q_ zeI#=grJis{9_#a)(|sg!9+Z%F^NOeY{LgESwp?^EbW^t90O$W$%c$Rg>-%$F8*5JlhCWEnw-vj4|cLzW1*vrHC{P9 zRhH9@aKI_a1so+Da(JpNryt>n!&7BB{R!tfJXMx6fN(2^r^<2$5-xGt<^mo>xYXgP zvYf$$qYh7%;%JmNSy@D2J!Yaw-W| zI`5YPt|C0z8IFD@XAU%YZx0-QEK0V>zt5EV5O$-?s~T|pU+{S#IgkQ{Na1@oL`Bg_@}#)pRwO8%KJ=39f9LxGcA3%kXa?n?%_O zrraRQjTAk7vMY=6T7J52Jmh8_C98&V3q{YXb-8bib8i6W<;QSy$4Z|TxhX1qKgPKq z0%vk+pCE~W|{79s_gYUW9j-v^s1@n8`8VPRe0D{SpLQA7Wze`UaSoyS_fXi`~F>yMdXQZ)p(otLw-7H;MTp@t8|fAX1t_K!q65 zq1?&S+kSGD4~?g!c>zXu{Ojj)Z*@yl7|yyG<;jy+3gk4r~yMy@_zSEva8Dxiu;b-^Ih7 zh%m4G$8cYC!|grC6?!11`)yX#H@U4WUDr@;5c zqxeEFgyXVm_#nhOrPeo4c=PcbR!!cuWFrI(GvI_6q2cq$yu`O02w#Ao*cf&J9)_6^ zu)>#4zLmbM!gng38RLDpvl)OyLJfb03>$q<3d2o!4tpy`l%%`qZ^DF3@*feleRyW9 zMIcT~S5G*R7&ap{d_4Id^Jjqp2?zhM6XU#+ts)SYQp0bdfEDO30!{H8v6mAQdzWiW zSkZ&aGnikB!QaS%@Wt%?MqLljiI}eyRelV}So>Ax;T7dm#HCM$n(4(Tt6u7a2CLsk zujknWGY#71t#zx!wHD%x-$4x1|698}*87R5^&4@+!3yfo~v z#IVCh!wze)x95I1%h=y}Y2#sujfa;u9+ud6ct3p>;HnG3;6FWz#h0WZNJ*f}Q>Z3( zN>celKsDI|s!Hm4Kj5Z>JxO`50+x-KKvMD3fSWUjWQTHgNO#qkDdHcbGUaq8Hcbx& zW^4=_q<~7kANuU{Cw8KF%?Ih!7&(Pxd8p(Yb^;b}`pMDpV-+)a=+(jmZxpUM* zrM7(n+>sBFDU7P-6{RIH3DqcwknP4>W7Ixz3i36;z6n$RPvE38L$ohejf&voPuH!6 z1S?er=L-ZdUkI-ND?_t3O%KnG!!uGHmT5$7Hb&WXoxvj}v@ zdtL6uaqiQ=`RGyH;U!>Yc`yrR#o-zl_{Q)P!&Bn$Se3O88d7ed((Efxz}A!AL%@Ur z)SUGLiJX5N^-$SYqL8eoynhPs8|3Zc0UKr^D&^t$<0V4!5S&ouL1qMU5}eHY0A_#u zH}s|Xh5``^*m!15!^7y?0|u3SgdsNfEfS7VwM?pTKc zC*zsL?P|kJ2w36!^)o1K@7pVUH{hAQijvd(3??fT-CDiWB+~Uy5c5#ttFrr1#~gnS z#6yACsdX|jtNe^l)?jK)WQ9PCjD)1JTa)!dKX=kYfwp*NKTOP}enwIaD`iicfo|IE zX|qo-J?-}?pt`?>V6te((^%cq1hw_dOHhMS%gzDWliLv{K_`ww74?2_0j+~31N3bt z*yH5Um`H(X0sc$z_s;;$oFyPvQg!umMF4#kx_V_FjELU%0sj}hn-S;K9!rsm8^N>> ze{?*`KkuLQYI7%aP;6QvLy~FJl39{M^MFQOZbrjP74v{bgW2F4(LA8h(3`0$M0}&+ ze0eRw-+wERX+lY-c|apE4=4v^V2p}w>jDtOJYXV_Q{x0*VJ-+_9zYGNKv+ZKUGS(3 z323~&2pH~#NJuVrqP`gz_5>#U`}5)g)%ZdXk{&1B$xg)Rnx@|d`beC#GY_ON%>x>V zdB9%y^tiDqZvSYn;!@IV_gVttU~GbMJ-hJobAx*o1bc9h4Ks(r?0kAXRUIsn1zky ze3Wba0p7x?;0=x$0^TOywbUv&VR3scY&o4~D|HC7m4qODY4V^7gm=LnNCzf<3+bkR zqoF9>?8%X=@J}J4y4fjn08b&WZpO9}n8CM2oiUvF#rjf+U4_5@ZEz@qU8-*b=7AVC z?L#3ojY43R-V5}B7|E1F^Hb5g>cDL6-F^*t<}e{S|HhEUkdR~a+d&SwX$!+>OWys6 zUs^4xa>Pg2>9nh9ekz|(N!!Xu%Vqg#H@twfw3vK5#O~Vrlv2518jgP&zYeCn z?WO^|nHAjy4<^7J;K*6k+hn`S9bbb`Qm^pd2kAV8N z9pt0^BydHl@Zd&Z7d*FD;TScruNmyc3xQqv5T;Bl8v84QZL|&8b+5gN+CZ#EZwL(& z76H5Q#7AIrLu|Iec0{_9t{QX@JGT(F+Zk;8vw^*71>(RY+T{l89SiKegP~Wj;|%ry zW==_uzwo4sT_o6+PY(xnvhJ}5XE>mEBd}>dB0Xt5=&lTTfu4c+F3H;)kkif~Pb=P0 zpR`i1+KXvcoK9|6$Ctl>eyvV9fcuYt<&uqQH!Z)c1LY1q9dTkq@cCnu?DSQP2^@w9 zhl;(IGF{K@MM_%_#7t2qeQl3|hzw0hzjDZnx0&O^Y&@U(<&o^da@FX@pPH8$l*sHSqREIVGEkl08Ri>t9G;fw0#)-C-9t0QW>*N z$C=|vQTFqEKS}EI5m==YOX~L~wEYw3iw|sJ?b3;ZP?^*;O3@m*MaCGM5c<`~V)heSRIt>eT_f7XC_YAFysh!k}Oxn?L3V`Ip)V(N0J!I0O^2Wdr|%(2j=oP9R1 zS2Um)X(M?4%^=+yCrcI@%El*weJ)Pv%n%LblEc7$(SYKr{DbkomfwKm?Qar)lgGY2 z=#%VQhup6ei<_1ag)xpaiEVnvbHH)O3XGejpbUsp$!}OPdtuPB?_YvW$DRoKtT>No z$hKc*sBown&SQ{-!;*o+GKkmhcpX*_Yj^55&$9l$+#j=zrbH-9W)Jpz>~74g!hWAI z(ai>6XV?Dl0P2En#?#~WNBn%VZnmlz@W(fx(&%P)p9uKVr*jFt>4ye>Oy5 z4mr2)wo$)M&PWw0A9ka=D{QV~~`fL3z@Sn$NqY|{i zTK^mPB)r?0NK&qT94fWW0rB`a1BL4|%*Pd;AP$Z*R3XD$hG&>NTeY4D;;a~hsbey` z_FvZ;BhNT!)N4RKFUFE4u`lHu-QJ;Rp<@%C8$rK2&LgQXJTK~!T`tcvpuZgFVO&(% zRCc-V>q~YZoXIagCgEX4tYHIJsiyiE?)}wn|>4hLIi%T1FXY0Q0uJnZ<(G1#1mu~8b z1oW^@c@QOqJkfW8#QX70bu;At)^TrOhlgQ557ME8bhDq>tK()S5zA&;{T zzT-+KH9}8{zZ>?yj)(L#>lI|4B&-!k?GxlVg&@zjmObH;`-3zzLFVn-_Q}>)uer)+ zf;2xtZpx^gZZ&z{C9enR`~;a_9Jbe65u}?XrD<<>dxFe)jeVZ=G4foM6nV3!O9pb~EmcuRwm!+VGS+bDjdytT;LIM&zr%*PNH2_Y`2yCWXC6nnbRY zAD6K$`@2V#dXZ&%E$FxZ6Hl6*_5!Tk$g>CZm&n69XY`bnUIRVZc5lSO`WUot8`8T? zS*Gmc?ahz5!T8c3iGRJQ2+K+K2z0s6R>n(%&w7##J*E^ieT2%8-ZK zPsJiSAEYHQ6{_^iwvZlUFMZjSJ|Cn_327l$+c`Vk2;2_Ry$NaV71;~zuOBk6QF=c} z2NKdkUT&{I*nHj6pM&&mT)OO3hP~cSLF%-fj!J;PNxUh4p2FBEc1((^TQVIUYP<4o+hRoO?GpwIB^!$eBY0c}x? zuF6XLfb_WM$G1^I&jR|g7)dIy+X};{faz(^MQDZAZD4qy0h7vn{$j-QtrO4@SkHp= zW}M6s+tsm-#qo$PLRGiE0fShzNsD6|>WB92d~k-Xu_$vZJIuFV`0KUJAJ8ZG`&o?- znU-yx2zsv=k18E{G9p{*-HIy3+_uJpG?(OfgGqY>lXz8Dw*`#-yx$%G(;6_G7t@jU z6m#{&!Ye=@>Amz3ytjdLcbqI^@Ee>q8lGzJq!*Ri4f@LsdHDLNGKaR(%0B@IU2)_Q zbcMo@Hzs<_8T@CmfpoYzndiBq`; z5i6ZK)w=^K%#y=2ue@aDZptNPvX{$GhEi=P`K?dDw`V;!*c#J-llo-ief4Hrv{?nw zTj0B0e7b-uP@X&OSx}%0_~|pxUG@_3aGlC?kITk*dG59EM8(!!s|LWc-PS$O0rtV) zzn%5Hi=ZE}^=P2vssf_ZzJ@Yb&)*1#ET}EU-j!Cy+g9Zt5nE`>_DQqD+E7oTjyVh}_sy%3J*i*$TBFjK>h!gbOK?)v2`Kvu z%m{VL;RWFEvLdCt&GKxKhVo5$rxB`pXHdrBFH54P7E||e4yuzZreS`7H(Z@^=)Sm) zS6DNRj#pQ~#%mQQ*HDMl*mx}CIuO;B>k-xD`TBFPb^ii+o?NTvH!+K}@s^p!!OuKI zlWH*v1?-)X(ow5@tnuyei2JrJYK5h*XV(gx9P8tdMa++ z1XZ)>Y`1Dk5JV?}pf8c#s^tpgUUH`Hh~j1~9Rm4y{d6;J0%}+CDf(uFMCl9uKZ9^M zCiLWS#>nukkj3`ZC#Xd#r|?$j>>lhc!l@bZJF zPL%CQzKiShVr%hob;0Sq2VkcOsQk|G3UoSS@b~Wr&P7(t1Y&UvnRY-Z}i5>1O9iB<28t-wFRVn!ZC?A9p%Bl7ykosj;_MN^<`&T-9e+{ z2ynlUgON%L0!rh41a4l%f{wGG@MXLsBIS+oH!KWT_>_;YTh8Kxk71<@$P%!0Asb_( z(z!J2tSH2=GzG}T_y?*-*UB!7%r%I0Cl3;|R3@2lq;r+kIrSi>9T$RWbA3@02l6I* z66LUTZR-J)Q~D|{;dJB%gqcyKpE(Y&lves$E`duCrJwU}sE{H`-|#m;=MjX`;`P%I z@moH8*z_beG?}H?9xrVG;kJi&W5JL}S&o+;F52`OQ11No5z|Vd{jP=go{F%h*^B^Xt15kO6My|w zClBjrgG5QfKE&o$Q&j65@x|7k z5!&zg``4iksxE@Y7h99j;iZFtRiu*v{ z5#w>^C4X8kU~fQF90cj@7}-@J^8m}fw2PaDpFqcDewd%*}4S%*}4S&CPDT%*}3ac)waN zbAeMYb6HU@_hXL?y_c3tQOf0GkL7{)5ml(|FBJ31M~>0G%sIVY=A2#%&*^1$+mnJ3LZOkD~n~ zu}P-pPsf}yJB9bY+23G#6v)n91C~bIF3mnp15|?+O`WT<^Roft8bZF!G|E5-*)51s zjV3<`xR9k9$e_0DkiHXy?fCoWp)#n9?dX59)AVj&UW{SgRo3sRC_QD5>16b$Ab%fY zF>j&ab`OCiqc`5vWKJ4DOf&Eo-7d?W+rbh(1YN??2ILMg7BzVE(iti{^INWD@od*% zQWi5};ce*Cvzxs040bzMYo~#-Fh(`1)2-*By4h2B1wIp$b4Zm$4cSB4<|AG+VQz^L zL@Z76O*zAm6l6TJtUSPM?I&r5aOu80zyy>BSUH?zfPE~xTrh07{Q?&u(;U{K^1$=CL>M%CtO1hH0fB!*eR+VB zy7B`Q1v43WE$0YU zEX%7xU>S^m1?~R?;CTd2mPU@s*b5dvv%PWy#sjYLRKAO8AQw_9r=ph2s*rM6lA{^c zdUSxt-4T`WpNhv~DJb{gU&XNOO%Jab)86IT;PQ;k2gTYH9ot^q*<-tkJ7R29+#0-J zu|ipCpSXf8R9LMm^cZOT&oG&EY7hYVr+_5;Y}_Z-+uVR2@nKxR>PoXo1h9! zP&H~C+o*N?OUKCG47pwZD0_TdmW|gc{>_y|3CK^^eF(X4kCIj6*p98vP49{d7iyOL zbX_ClByE@_`v@@m95(B5Y~WV6lU$KR!g_;i(orH4YNKS1MQ#$eiL7~GIvszhS^~tX zmU6hvHkw-gZlTpoH;nRlv~B_A9{j7QgHf8yeVW@{J`|$-blpoJzm2~{pFz+relj;? z4!XRp0_=q`1U5a34F4*6{vbjI^X8xEkKy>nXJ-i+2QW zzyKhRDV!K}xjQQQ5Pt^^K#$PlFkkFV|0?RB#wjl+!Ia^isBk25Cx8l_ ziNBt=y3z9bQU_n#2zi#M~&*l|O4Li4E!U(GOz$ZgJipP0nC zx3wCmi}9C4vD~LuSI<$N*DWHI!wKJv`2d?>A~(Q|L(_O19tLGU{#8_i@T%5{Tcf62 zmJ3zKr0;W(xfUboi&dI_fxWCRT;^GFj70l3Zhc{gZ|chs;+QcGRZZrq^BJz(nemuS z0ncju&HEn!^Zr-A`pooC97Yya9p%WP5l#E73xT^1f5{R766H)|z|m_!dlAb-)z;>IOyc`f6s?xU$%LFu!V=I-TrdOXD$n4jSW?NiuIMFedZR-lot5 z%2XpZzgl`tfHkuLy7@U4#lnUDyIu8PYNKD*{RU-Y+PTF-&r!v~fq0JpVx0{hQO3_0 zs4-8vie7dV&3$GWy3I>8w+C=!Yi_IA@Ls05bAkFjci_43UhaAapsI7#!eel;ivICf zN1=ijT{m3bBDP*TGWBk(sdp<(3P#LyR=7ot_Ar@t4Bxui6Senj=-~o&y`r9tN&OlW z>r}3UmyU}{Owf7BPuKC=HB#~T;w&{S`Ay?>Sh zNXSpuJxAgHzM5{Tg3^4?K?62bA?9_ff{s-bcZfx`qs`{FV0DiUK%DO8x+bFC)K?#Q7f`V^Y4eeUw7#*;S@Jah1uQY9b)G%=jQmDXQe0W^L$ zKQ08%mY4tm5#UPeB9U1F_^V~9#X->>HVuG~J`EIGt>guY@ zc2%k=Tp%9dViWmvAp+Wlf4pr;hBfHKPc=FbR~p++c2y*b<{id0W-)BasDmalUPje9 zHU^<%5?R*izbA4+gG9PMH<1(LRh#=cH@kZK#WU|R=skA7Mrt&6b&TQ>QlsPEsB~`d z8r1_-H8*{}a#bhN`YfZ&y>V)(xp*Wx>0%)7LA}vx`8AjHU@!AV0=>EadS>pb9-sUF`VavGu~^MBxJhU(SW(7 zw8@o8bQWn{{$G-CO2Z_?ylxU=-T`B7cJ(7D`OQ7B8u@sJn4Vjk7NLpOpvCQWxzb!N zT~~rwbjM$+C;_Qp+~A&i7Bb}(S0GWj=Yz*&%Bv>(kiebb{Ltl`5m)^_IOB5(Qy{gP z`%UP6O@YL`Zfa^{1v2JmSJ`k^*<5EEQnN&J=Zz6m^S*=fG_F#}L(P8->ugz@e7^&Y z^;kUTC3lSz-@~g^)|I{pFj!y0a{(pie{=%SSNVzs-5k$_ME3z;R_5maMuw|>BZQ$d zp7UqpH81NL(KNpnt3g@U8hAW|zg~i0$R)6iR3gzUg-^}Dj`YWTTSU`pYO18B7e#vB z({b+Oz?~-EL%<=nFTioAqddUH$N9~>K&Ogc+_sjV_^!`Z5F=@mipgHsl5sv(1Pbds_lp=VMplKwNn7KMyIQ5*8@6$ zy$Y?qZ_kC@yG}x(nzP&AgOz8u`#sEX@KQZm9Q9Nbg)}expu|&T6UvU2$zptQ;{0{Q9eLZ@x*PFME$s

NrHpNL0>x>WQ>=TCEyEZBj+CEj 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�-(s%;(S8<8W6t*#jhdpYd`ORBt_{%R5@d9 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 literal 494595 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�#n?$vmbQblt|VDaGT&0%%WH@6I{R8Jqi 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 diff --git a/src/Makefile b/src/Makefile index e4e2df5..95ff5be 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,7 +4,7 @@ ARCH := $(shell uname -m) CXX = g++ -std=gnu++0x -g # -Wall -Werror -Wshadow -pedantic MAIN = main.o -OBJ = log.o real.o document.o view.o screen.o vfpu.o graphicsbuffer.o framebuffer.o stb_truetype.o +OBJ = log.o real.o document.o view.o screen.o vfpu.o graphicsbuffer.o framebuffer.o shaderprogram.o stb_truetype.o gl_core44.o LIB_x86_64 = ../contrib/lib/libSDL2-2.0.so.0 -lGL LIB_i386 = ../contrib/lib32/libSDL2-2.0.so.0 -lGL diff --git a/src/framebuffer.cpp b/src/framebuffer.cpp index 88d2cd4..2302b6c 100644 --- a/src/framebuffer.cpp +++ b/src/framebuffer.cpp @@ -1,7 +1,5 @@ #include "framebuffer.h" -#define GL_GLEXT_PROTOTYPES -#include -#include +#include "gl_core44.h" using namespace IPDF; diff --git a/src/framebuffer.h b/src/framebuffer.h index e3ec6fa..1da3216 100644 --- a/src/framebuffer.h +++ b/src/framebuffer.h @@ -2,14 +2,13 @@ #define _FRAMEBUFFER_H #include -#define GL_GLEXT_PROTOTYPES -#include +#include "gl_core44.h" namespace IPDF { /* - * The "Screen" class handles managing the OS window (using SDL2). + * The "FrameBuffer" class represents an offscreen render target. */ class FrameBuffer { diff --git a/src/gl_core44.cpp b/src/gl_core44.cpp new file mode 100644 index 0000000..4e3b51a --- /dev/null +++ b/src/gl_core44.cpp @@ -0,0 +1,1897 @@ +#include +#include +#include +#include "gl_core44.h" + +#include +#define IntGetProcAddress(name) SDL_GL_GetProcAddress(name) + +int ogl_ext_NV_texture_barrier = ogl_LOAD_FAILED; +int ogl_ext_NV_copy_image = ogl_LOAD_FAILED; + +void (CODEGEN_FUNCPTR *_ptrc_glTextureBarrierNV)() = NULL; + +static int Load_NV_texture_barrier() +{ + int numFailed = 0; + _ptrc_glTextureBarrierNV = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glTextureBarrierNV"); + if(!_ptrc_glTextureBarrierNV) numFailed++; + return numFailed; +} + +void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubDataNV)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL; + +static int Load_NV_copy_image() +{ + int numFailed = 0; + _ptrc_glCopyImageSubDataNV = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glCopyImageSubDataNV"); + if(!_ptrc_glCopyImageSubDataNV) numFailed++; + return numFailed; +} + +void (CODEGEN_FUNCPTR *_ptrc_glBlendFunc)(GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClear)(GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearDepth)(GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearStencil)(GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorMask)(GLboolean, GLboolean, GLboolean, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCullFace)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthFunc)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthMask)(GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthRange)(GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDisable)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffer)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEnable)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFinish)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFlush)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFrontFace)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBooleanv)(GLenum, GLboolean *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetDoublev)(GLenum, GLdouble *) = NULL; +GLenum (CODEGEN_FUNCPTR *_ptrc_glGetError)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetFloatv)(GLenum, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetIntegerv)(GLenum, GLint *) = NULL; +const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetString)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameteriv)(GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glHint)(GLenum, GLenum) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabled)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glLineWidth)(GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glLogicOp)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPixelStoref)(GLenum, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPixelStorei)(GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPointSize)(GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPolygonMode)(GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glReadBuffer)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glScissor)(GLint, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilFunc)(GLenum, GLint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilMask)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilOp)(GLenum, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameterf)(GLenum, GLenum, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameterfv)(GLenum, GLenum, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameteri)(GLenum, GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameteriv)(GLenum, GLenum, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glViewport)(GLint, GLint, GLsizei, GLsizei) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBindTexture)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteTextures)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawArrays)(GLenum, GLint, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElements)(GLenum, GLsizei, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenTextures)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetPointerv)(GLenum, GLvoid **) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTexture)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPolygonOffset)(GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBlendColor)(GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendEquation)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glActiveTexture)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetCompressedTexImage)(GLenum, GLint, GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSampleCoverage)(GLfloat, GLboolean) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparate)(GLenum, GLenum, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArrays)(GLenum, const GLint *, const GLsizei *, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElements)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPointParameterf)(GLenum, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPointParameterfv)(GLenum, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPointParameteri)(GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPointParameteriv)(GLenum, const GLint *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBeginQuery)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindBuffer)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBufferData)(GLenum, GLsizeiptr, const GLvoid *, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBufferSubData)(GLenum, GLintptr, GLsizeiptr, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteBuffers)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteQueries)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEndQuery)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenBuffers)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenQueries)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteriv)(GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBufferSubData)(GLenum, GLintptr, GLsizeiptr, GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectiv)(GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryiv)(GLenum, GLenum, GLint *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsBuffer)(GLuint) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsQuery)(GLuint) = NULL; +void * (CODEGEN_FUNCPTR *_ptrc_glMapBuffer)(GLenum, GLenum) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glUnmapBuffer)(GLenum) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glAttachShader)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindAttribLocation)(GLuint, GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparate)(GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCompileShader)(GLuint) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateProgram)() = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShader)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgram)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteShader)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDetachShader)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDisableVertexAttribArray)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffers)(GLsizei, const GLenum *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEnableVertexAttribArray)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAttrib)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniform)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetAttachedShaders)(GLuint, GLsizei, GLsizei *, GLuint *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetAttribLocation)(GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramiv)(GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetShaderiv)(GLuint, GLenum, GLint *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetUniformLocation)(GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformfv)(GLuint, GLint, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformiv)(GLuint, GLint, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribPointerv)(GLuint, GLenum, GLvoid **) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribdv)(GLuint, GLenum, GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribfv)(GLuint, GLenum, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribiv)(GLuint, GLenum, GLint *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgram)(GLuint) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsShader)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glLinkProgram)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glShaderSource)(GLuint, GLsizei, const GLchar *const*, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilMaskSeparate)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glStencilOpSeparate)(GLenum, GLenum, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1f)(GLint, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1fv)(GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1i)(GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1iv)(GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2f)(GLint, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2fv)(GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2i)(GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2iv)(GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3f)(GLint, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3fv)(GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3i)(GLint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3iv)(GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4f)(GLint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4fv)(GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4i)(GLint, GLint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4iv)(GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUseProgram)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glValidateProgram)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1d)(GLuint, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1f)(GLuint, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1fv)(GLuint, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1s)(GLuint, GLshort) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1sv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2d)(GLuint, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2f)(GLuint, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2fv)(GLuint, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2s)(GLuint, GLshort, GLshort) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2sv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3d)(GLuint, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3f)(GLuint, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3fv)(GLuint, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3s)(GLuint, GLshort, GLshort, GLshort) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3sv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nbv)(GLuint, const GLbyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Niv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nsv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nub)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nubv)(GLuint, const GLubyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nuiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nusv)(GLuint, const GLushort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4bv)(GLuint, const GLbyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4f)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4fv)(GLuint, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4iv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4s)(GLuint, GLshort, GLshort, GLshort, GLshort) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4sv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4ubv)(GLuint, const GLubyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4uiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4usv)(GLuint, const GLushort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBeginConditionalRender)(GLuint, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBeginTransformFeedback)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindBufferBase)(GLenum, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocation)(GLuint, GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindFramebuffer)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindRenderbuffer)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindVertexArray)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = NULL; +GLenum (CODEGEN_FUNCPTR *_ptrc_glCheckFramebufferStatus)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClampColor)(GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfv)(GLenum, GLint, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferiv)(GLenum, GLint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferuiv)(GLenum, GLint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorMaski)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteFramebuffers)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteRenderbuffers)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteVertexArrays)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDisablei)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEnablei)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEndConditionalRender)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEndTransformFeedback)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenFramebuffers)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenRenderbuffers)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenVertexArrays)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenerateMipmap)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBooleani_v)(GLenum, GLuint, GLboolean *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataLocation)(GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetIntegeri_v)(GLenum, GLuint, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = NULL; +const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetStringi)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIiv)(GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIuiv)(GLenum, GLenum, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformuiv)(GLuint, GLint, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabledi)(GLenum, GLuint) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsFramebuffer)(GLuint) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsRenderbuffer)(GLuint) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsVertexArray)(GLuint) = NULL; +void * (CODEGEN_FUNCPTR *_ptrc_glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIiv)(GLenum, GLenum, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIuiv)(GLenum, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar *const*, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1ui)(GLint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1uiv)(GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2ui)(GLint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2uiv)(GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3ui)(GLint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3uiv)(GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4uiv)(GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1i)(GLuint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1iv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1ui)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1uiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2i)(GLuint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2iv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2ui)(GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2uiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3i)(GLuint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3iv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3ui)(GLuint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3uiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4bv)(GLuint, const GLbyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4iv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4sv)(GLuint, const GLshort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ubv)(GLuint, const GLubyte *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4uiv)(GLuint, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4usv)(GLuint, const GLushort *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glGetUniformBlockIndex)(GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformIndices)(GLuint, GLsizei, const GLchar *const*, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPrimitiveRestartIndex)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexBuffer)(GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformBlockBinding)(GLuint, GLuint, GLuint) = NULL; + +GLenum (CODEGEN_FUNCPTR *_ptrc_glClientWaitSync)(GLsync, GLbitfield, GLuint64) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteSync)(GLsync) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElementsBaseVertex)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint) = NULL; +GLsync (CODEGEN_FUNCPTR *_ptrc_glFenceSync)(GLenum, GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture)(GLenum, GLenum, GLuint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64v)(GLenum, GLint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetMultisamplefv)(GLenum, GLuint, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSync)(GLsync) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsBaseVertex)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProvokingVertex)(GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSampleMaski)(GLuint, GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexImage2DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexImage3DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glWaitSync)(GLsync, GLbitfield, GLuint64) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocationIndexed)(GLuint, GLuint, GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindSampler)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorP3ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorP3uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorP4ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glColorP4uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteSamplers)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenSamplers)(GLsizei, GLuint *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataIndex)(GLuint, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjecti64v)(GLuint, GLenum, GLint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectui64v)(GLuint, GLenum, GLuint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIiv)(GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIuiv)(GLuint, GLenum, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSampler)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1ui)(GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1uiv)(GLenum, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2ui)(GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2uiv)(GLenum, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3ui)(GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3uiv)(GLenum, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4ui)(GLenum, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4uiv)(GLenum, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glNormalP3ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glNormalP3uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glQueryCounter)(GLuint, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIiv)(GLuint, GLenum, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIuiv)(GLuint, GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterf)(GLuint, GLenum, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteri)(GLuint, GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteriv)(GLuint, GLenum, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribDivisor)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1ui)(GLuint, GLenum, GLboolean, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2ui)(GLuint, GLenum, GLboolean, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3ui)(GLuint, GLenum, GLboolean, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4ui)(GLuint, GLenum, GLboolean, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP2ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP2uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP3ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP3uiv)(GLenum, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP4ui)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexP4uiv)(GLenum, const GLuint *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBeginQueryIndexed)(GLenum, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindTransformFeedback)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparatei)(GLuint, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationi)(GLuint, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparatei)(GLuint, GLenum, GLenum, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBlendFunci)(GLuint, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysIndirect)(GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsIndirect)(GLenum, GLenum, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedback)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStream)(GLenum, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glEndQueryIndexed)(GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenTransformFeedbacks)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformiv)(GLuint, GLenum, GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramStageiv)(GLuint, GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetQueryIndexediv)(GLenum, GLuint, GLenum, GLint *) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineIndex)(GLuint, GLenum, const GLchar *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineUniformLocation)(GLuint, GLenum, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformSubroutineuiv)(GLenum, GLint, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetUniformdv)(GLuint, GLint, GLdouble *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTransformFeedback)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMinSampleShading)(GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPatchParameterfv)(GLenum, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPatchParameteri)(GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPauseTransformFeedback)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glResumeTransformFeedback)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1d)(GLint, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform1dv)(GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2d)(GLint, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform2dv)(GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3d)(GLint, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform3dv)(GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4d)(GLint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniform4dv)(GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUniformSubroutinesuiv)(GLenum, GLsizei, const GLuint *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glActiveShaderProgram)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindProgramPipeline)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearDepthf)(GLfloat) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShaderProgramv)(GLenum, GLsizei, const GLchar *const*) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgramPipelines)(GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeArrayv)(GLuint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeIndexed)(GLuint, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDepthRangef)(GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGenProgramPipelines)(GLsizei, GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetDoublei_v)(GLenum, GLuint, GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetFloati_v)(GLenum, GLuint, GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineiv)(GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribLdv)(GLuint, GLenum, GLdouble *) = NULL; +GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgramPipeline)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramParameteri)(GLuint, GLenum, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1d)(GLuint, GLint, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1f)(GLuint, GLint, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1i)(GLuint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1iv)(GLuint, GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1ui)(GLuint, GLint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2d)(GLuint, GLint, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2f)(GLuint, GLint, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2i)(GLuint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2iv)(GLuint, GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2ui)(GLuint, GLint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3d)(GLuint, GLint, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3f)(GLuint, GLint, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3i)(GLuint, GLint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3iv)(GLuint, GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3ui)(GLuint, GLint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4d)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4f)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4i)(GLuint, GLint, GLint, GLint, GLint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4iv)(GLuint, GLint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4ui)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glReleaseShaderCompiler)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glScissorArrayv)(GLuint, GLsizei, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexed)(GLuint, GLint, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexedv)(GLuint, const GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glUseProgramStages)(GLuint, GLbitfield, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glValidateProgramPipeline)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1d)(GLuint, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2d)(GLuint, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3d)(GLuint, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4dv)(GLuint, const GLdouble *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glViewportArrayv)(GLuint, GLsizei, const GLfloat *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedf)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedfv)(GLuint, const GLfloat *) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBindImageTexture)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstancedBaseInstance)(GLenum, GLint, GLsizei, GLsizei, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackInstanced)(GLenum, GLuint, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStreamInstanced)(GLenum, GLuint, GLuint, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAtomicCounterBufferiv)(GLuint, GLuint, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetInternalformati64v)(GLenum, GLenum, GLenum, GLsizei, GLint64 *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMemoryBarrier)(GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexStorage1D)(GLenum, GLsizei, GLenum, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffer)(GLuint, GLuint, GLintptr, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferData)(GLenum, GLenum, GLenum, GLenum, const void *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearBufferSubData)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubData)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallback)(GLDEBUGPROC, const void *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControl)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsert)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDispatchCompute)(GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glDispatchComputeIndirect)(GLintptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glFramebufferParameteri)(GLenum, GLenum, GLint) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLog)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferParameteriv)(GLenum, GLenum, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetObjectLabel)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetObjectPtrLabel)(const void *, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInterfaceiv)(GLuint, GLenum, GLenum, GLint *) = NULL; +GLuint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceIndex)(GLuint, GLenum, const GLchar *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocation)(GLuint, GLenum, const GLchar *) = NULL; +GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocationIndex)(GLuint, GLenum, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceiv)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferData)(GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferSubData)(GLuint, GLintptr, GLsizeiptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexImage)(GLuint, GLint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArraysIndirect)(GLenum, const void *, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsIndirect)(GLenum, GLenum, const void *, GLsizei, GLsizei) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glObjectLabel)(GLenum, GLuint, GLsizei, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glObjectPtrLabel)(const void *, GLsizei, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPopDebugGroup)() = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glPushDebugGroup)(GLenum, GLuint, GLsizei, const GLchar *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glShaderStorageBlockBinding)(GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glTextureView)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribBinding)(GLuint, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribFormat)(GLuint, GLint, GLenum, GLboolean, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIFormat)(GLuint, GLint, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLFormat)(GLuint, GLint, GLenum, GLuint) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glVertexBindingDivisor)(GLuint, GLuint) = NULL; + +void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersBase)(GLenum, GLuint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersRange)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindImageTextures)(GLuint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindSamplers)(GLuint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindTextures)(GLuint, GLsizei, const GLuint *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffers)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glBufferStorage)(GLenum, GLsizeiptr, const void *, GLbitfield) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearTexImage)(GLuint, GLint, GLenum, GLenum, const void *) = NULL; +void (CODEGEN_FUNCPTR *_ptrc_glClearTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *) = NULL; + +static int Load_Version_4_4() +{ + int numFailed = 0; + _ptrc_glBlendFunc = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glBlendFunc"); + if(!_ptrc_glBlendFunc) numFailed++; + _ptrc_glClear = (void (CODEGEN_FUNCPTR *)(GLbitfield))IntGetProcAddress("glClear"); + if(!_ptrc_glClear) numFailed++; + _ptrc_glClearColor = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glClearColor"); + if(!_ptrc_glClearColor) numFailed++; + _ptrc_glClearDepth = (void (CODEGEN_FUNCPTR *)(GLdouble))IntGetProcAddress("glClearDepth"); + if(!_ptrc_glClearDepth) numFailed++; + _ptrc_glClearStencil = (void (CODEGEN_FUNCPTR *)(GLint))IntGetProcAddress("glClearStencil"); + if(!_ptrc_glClearStencil) numFailed++; + _ptrc_glColorMask = (void (CODEGEN_FUNCPTR *)(GLboolean, GLboolean, GLboolean, GLboolean))IntGetProcAddress("glColorMask"); + if(!_ptrc_glColorMask) numFailed++; + _ptrc_glCullFace = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCullFace"); + if(!_ptrc_glCullFace) numFailed++; + _ptrc_glDepthFunc = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDepthFunc"); + if(!_ptrc_glDepthFunc) numFailed++; + _ptrc_glDepthMask = (void (CODEGEN_FUNCPTR *)(GLboolean))IntGetProcAddress("glDepthMask"); + if(!_ptrc_glDepthMask) numFailed++; + _ptrc_glDepthRange = (void (CODEGEN_FUNCPTR *)(GLdouble, GLdouble))IntGetProcAddress("glDepthRange"); + if(!_ptrc_glDepthRange) numFailed++; + _ptrc_glDisable = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDisable"); + if(!_ptrc_glDisable) numFailed++; + _ptrc_glDrawBuffer = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDrawBuffer"); + if(!_ptrc_glDrawBuffer) numFailed++; + _ptrc_glEnable = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glEnable"); + if(!_ptrc_glEnable) numFailed++; + _ptrc_glFinish = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glFinish"); + if(!_ptrc_glFinish) numFailed++; + _ptrc_glFlush = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glFlush"); + if(!_ptrc_glFlush) numFailed++; + _ptrc_glFrontFace = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glFrontFace"); + if(!_ptrc_glFrontFace) numFailed++; + _ptrc_glGetBooleanv = (void (CODEGEN_FUNCPTR *)(GLenum, GLboolean *))IntGetProcAddress("glGetBooleanv"); + if(!_ptrc_glGetBooleanv) numFailed++; + _ptrc_glGetDoublev = (void (CODEGEN_FUNCPTR *)(GLenum, GLdouble *))IntGetProcAddress("glGetDoublev"); + if(!_ptrc_glGetDoublev) numFailed++; + _ptrc_glGetError = (GLenum (CODEGEN_FUNCPTR *)())IntGetProcAddress("glGetError"); + if(!_ptrc_glGetError) numFailed++; + _ptrc_glGetFloatv = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat *))IntGetProcAddress("glGetFloatv"); + if(!_ptrc_glGetFloatv) numFailed++; + _ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv"); + if(!_ptrc_glGetIntegerv) numFailed++; + _ptrc_glGetString = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glGetString"); + if(!_ptrc_glGetString) numFailed++; + _ptrc_glGetTexImage = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLenum, GLvoid *))IntGetProcAddress("glGetTexImage"); + if(!_ptrc_glGetTexImage) numFailed++; + _ptrc_glGetTexLevelParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLfloat *))IntGetProcAddress("glGetTexLevelParameterfv"); + if(!_ptrc_glGetTexLevelParameterfv) numFailed++; + _ptrc_glGetTexLevelParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint *))IntGetProcAddress("glGetTexLevelParameteriv"); + if(!_ptrc_glGetTexLevelParameteriv) numFailed++; + _ptrc_glGetTexParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLfloat *))IntGetProcAddress("glGetTexParameterfv"); + if(!_ptrc_glGetTexParameterfv) numFailed++; + _ptrc_glGetTexParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetTexParameteriv"); + if(!_ptrc_glGetTexParameteriv) numFailed++; + _ptrc_glHint = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glHint"); + if(!_ptrc_glHint) numFailed++; + _ptrc_glIsEnabled = (GLboolean (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glIsEnabled"); + if(!_ptrc_glIsEnabled) numFailed++; + _ptrc_glLineWidth = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glLineWidth"); + if(!_ptrc_glLineWidth) numFailed++; + _ptrc_glLogicOp = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glLogicOp"); + if(!_ptrc_glLogicOp) numFailed++; + _ptrc_glPixelStoref = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat))IntGetProcAddress("glPixelStoref"); + if(!_ptrc_glPixelStoref) numFailed++; + _ptrc_glPixelStorei = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPixelStorei"); + if(!_ptrc_glPixelStorei) numFailed++; + _ptrc_glPointSize = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glPointSize"); + if(!_ptrc_glPointSize) numFailed++; + _ptrc_glPolygonMode = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glPolygonMode"); + if(!_ptrc_glPolygonMode) numFailed++; + _ptrc_glReadBuffer = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glReadBuffer"); + if(!_ptrc_glReadBuffer) numFailed++; + _ptrc_glReadPixels = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *))IntGetProcAddress("glReadPixels"); + if(!_ptrc_glReadPixels) numFailed++; + _ptrc_glScissor = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glScissor"); + if(!_ptrc_glScissor) numFailed++; + _ptrc_glStencilFunc = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLuint))IntGetProcAddress("glStencilFunc"); + if(!_ptrc_glStencilFunc) numFailed++; + _ptrc_glStencilMask = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glStencilMask"); + if(!_ptrc_glStencilMask) numFailed++; + _ptrc_glStencilOp = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum))IntGetProcAddress("glStencilOp"); + if(!_ptrc_glStencilOp) numFailed++; + _ptrc_glTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage1D"); + if(!_ptrc_glTexImage1D) numFailed++; + _ptrc_glTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage2D"); + if(!_ptrc_glTexImage2D) numFailed++; + _ptrc_glTexParameterf = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLfloat))IntGetProcAddress("glTexParameterf"); + if(!_ptrc_glTexParameterf) numFailed++; + _ptrc_glTexParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLfloat *))IntGetProcAddress("glTexParameterfv"); + if(!_ptrc_glTexParameterfv) numFailed++; + _ptrc_glTexParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint))IntGetProcAddress("glTexParameteri"); + if(!_ptrc_glTexParameteri) numFailed++; + _ptrc_glTexParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLint *))IntGetProcAddress("glTexParameteriv"); + if(!_ptrc_glTexParameteriv) numFailed++; + _ptrc_glViewport = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glViewport"); + if(!_ptrc_glViewport) numFailed++; + _ptrc_glBindTexture = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindTexture"); + if(!_ptrc_glBindTexture) numFailed++; + _ptrc_glCopyTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint))IntGetProcAddress("glCopyTexImage1D"); + if(!_ptrc_glCopyTexImage1D) numFailed++; + _ptrc_glCopyTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint))IntGetProcAddress("glCopyTexImage2D"); + if(!_ptrc_glCopyTexImage2D) numFailed++; + _ptrc_glCopyTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei))IntGetProcAddress("glCopyTexSubImage1D"); + if(!_ptrc_glCopyTexSubImage1D) numFailed++; + _ptrc_glCopyTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glCopyTexSubImage2D"); + if(!_ptrc_glCopyTexSubImage2D) numFailed++; + _ptrc_glDeleteTextures = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteTextures"); + if(!_ptrc_glDeleteTextures) numFailed++; + _ptrc_glDrawArrays = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei))IntGetProcAddress("glDrawArrays"); + if(!_ptrc_glDrawArrays) numFailed++; + _ptrc_glDrawElements = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *))IntGetProcAddress("glDrawElements"); + if(!_ptrc_glDrawElements) numFailed++; + _ptrc_glGenTextures = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenTextures"); + if(!_ptrc_glGenTextures) numFailed++; + _ptrc_glGetPointerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLvoid **))IntGetProcAddress("glGetPointerv"); + if(!_ptrc_glGetPointerv) numFailed++; + _ptrc_glIsTexture = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsTexture"); + if(!_ptrc_glIsTexture) numFailed++; + _ptrc_glPolygonOffset = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat))IntGetProcAddress("glPolygonOffset"); + if(!_ptrc_glPolygonOffset) numFailed++; + _ptrc_glTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage1D"); + if(!_ptrc_glTexSubImage1D) numFailed++; + _ptrc_glTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage2D"); + if(!_ptrc_glTexSubImage2D) numFailed++; + _ptrc_glBlendColor = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glBlendColor"); + if(!_ptrc_glBlendColor) numFailed++; + _ptrc_glBlendEquation = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glBlendEquation"); + if(!_ptrc_glBlendEquation) numFailed++; + _ptrc_glCopyTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glCopyTexSubImage3D"); + if(!_ptrc_glCopyTexSubImage3D) numFailed++; + _ptrc_glDrawRangeElements = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *))IntGetProcAddress("glDrawRangeElements"); + if(!_ptrc_glDrawRangeElements) numFailed++; + _ptrc_glTexImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage3D"); + if(!_ptrc_glTexImage3D) numFailed++; + _ptrc_glTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage3D"); + if(!_ptrc_glTexSubImage3D) numFailed++; + _ptrc_glActiveTexture = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glActiveTexture"); + if(!_ptrc_glActiveTexture) numFailed++; + _ptrc_glCompressedTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage1D"); + if(!_ptrc_glCompressedTexImage1D) numFailed++; + _ptrc_glCompressedTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage2D"); + if(!_ptrc_glCompressedTexImage2D) numFailed++; + _ptrc_glCompressedTexImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage3D"); + if(!_ptrc_glCompressedTexImage3D) numFailed++; + _ptrc_glCompressedTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage1D"); + if(!_ptrc_glCompressedTexSubImage1D) numFailed++; + _ptrc_glCompressedTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage2D"); + if(!_ptrc_glCompressedTexSubImage2D) numFailed++; + _ptrc_glCompressedTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage3D"); + if(!_ptrc_glCompressedTexSubImage3D) numFailed++; + _ptrc_glGetCompressedTexImage = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLvoid *))IntGetProcAddress("glGetCompressedTexImage"); + if(!_ptrc_glGetCompressedTexImage) numFailed++; + _ptrc_glSampleCoverage = (void (CODEGEN_FUNCPTR *)(GLfloat, GLboolean))IntGetProcAddress("glSampleCoverage"); + if(!_ptrc_glSampleCoverage) numFailed++; + _ptrc_glBlendFuncSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glBlendFuncSeparate"); + if(!_ptrc_glBlendFuncSeparate) numFailed++; + _ptrc_glMultiDrawArrays = (void (CODEGEN_FUNCPTR *)(GLenum, const GLint *, const GLsizei *, GLsizei))IntGetProcAddress("glMultiDrawArrays"); + if(!_ptrc_glMultiDrawArrays) numFailed++; + _ptrc_glMultiDrawElements = (void (CODEGEN_FUNCPTR *)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei))IntGetProcAddress("glMultiDrawElements"); + if(!_ptrc_glMultiDrawElements) numFailed++; + _ptrc_glPointParameterf = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat))IntGetProcAddress("glPointParameterf"); + if(!_ptrc_glPointParameterf) numFailed++; + _ptrc_glPointParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLfloat *))IntGetProcAddress("glPointParameterfv"); + if(!_ptrc_glPointParameterfv) numFailed++; + _ptrc_glPointParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPointParameteri"); + if(!_ptrc_glPointParameteri) numFailed++; + _ptrc_glPointParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLint *))IntGetProcAddress("glPointParameteriv"); + if(!_ptrc_glPointParameteriv) numFailed++; + _ptrc_glBeginQuery = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBeginQuery"); + if(!_ptrc_glBeginQuery) numFailed++; + _ptrc_glBindBuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindBuffer"); + if(!_ptrc_glBindBuffer) numFailed++; + _ptrc_glBufferData = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizeiptr, const GLvoid *, GLenum))IntGetProcAddress("glBufferData"); + if(!_ptrc_glBufferData) numFailed++; + _ptrc_glBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, const GLvoid *))IntGetProcAddress("glBufferSubData"); + if(!_ptrc_glBufferSubData) numFailed++; + _ptrc_glDeleteBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteBuffers"); + if(!_ptrc_glDeleteBuffers) numFailed++; + _ptrc_glDeleteQueries = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteQueries"); + if(!_ptrc_glDeleteQueries) numFailed++; + _ptrc_glEndQuery = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glEndQuery"); + if(!_ptrc_glEndQuery) numFailed++; + _ptrc_glGenBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenBuffers"); + if(!_ptrc_glGenBuffers) numFailed++; + _ptrc_glGenQueries = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenQueries"); + if(!_ptrc_glGenQueries) numFailed++; + _ptrc_glGetBufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetBufferParameteriv"); + if(!_ptrc_glGetBufferParameteriv) numFailed++; + _ptrc_glGetBufferPointerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLvoid **))IntGetProcAddress("glGetBufferPointerv"); + if(!_ptrc_glGetBufferPointerv) numFailed++; + _ptrc_glGetBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, GLvoid *))IntGetProcAddress("glGetBufferSubData"); + if(!_ptrc_glGetBufferSubData) numFailed++; + _ptrc_glGetQueryObjectiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetQueryObjectiv"); + if(!_ptrc_glGetQueryObjectiv) numFailed++; + _ptrc_glGetQueryObjectuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetQueryObjectuiv"); + if(!_ptrc_glGetQueryObjectuiv) numFailed++; + _ptrc_glGetQueryiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetQueryiv"); + if(!_ptrc_glGetQueryiv) numFailed++; + _ptrc_glIsBuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsBuffer"); + if(!_ptrc_glIsBuffer) numFailed++; + _ptrc_glIsQuery = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsQuery"); + if(!_ptrc_glIsQuery) numFailed++; + _ptrc_glMapBuffer = (void * (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glMapBuffer"); + if(!_ptrc_glMapBuffer) numFailed++; + _ptrc_glUnmapBuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glUnmapBuffer"); + if(!_ptrc_glUnmapBuffer) numFailed++; + _ptrc_glAttachShader = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glAttachShader"); + if(!_ptrc_glAttachShader) numFailed++; + _ptrc_glBindAttribLocation = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindAttribLocation"); + if(!_ptrc_glBindAttribLocation) numFailed++; + _ptrc_glBlendEquationSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glBlendEquationSeparate"); + if(!_ptrc_glBlendEquationSeparate) numFailed++; + _ptrc_glCompileShader = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glCompileShader"); + if(!_ptrc_glCompileShader) numFailed++; + _ptrc_glCreateProgram = (GLuint (CODEGEN_FUNCPTR *)())IntGetProcAddress("glCreateProgram"); + if(!_ptrc_glCreateProgram) numFailed++; + _ptrc_glCreateShader = (GLuint (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCreateShader"); + if(!_ptrc_glCreateShader) numFailed++; + _ptrc_glDeleteProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDeleteProgram"); + if(!_ptrc_glDeleteProgram) numFailed++; + _ptrc_glDeleteShader = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDeleteShader"); + if(!_ptrc_glDeleteShader) numFailed++; + _ptrc_glDetachShader = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glDetachShader"); + if(!_ptrc_glDetachShader) numFailed++; + _ptrc_glDisableVertexAttribArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDisableVertexAttribArray"); + if(!_ptrc_glDisableVertexAttribArray) numFailed++; + _ptrc_glDrawBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLenum *))IntGetProcAddress("glDrawBuffers"); + if(!_ptrc_glDrawBuffers) numFailed++; + _ptrc_glEnableVertexAttribArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glEnableVertexAttribArray"); + if(!_ptrc_glEnableVertexAttribArray) numFailed++; + _ptrc_glGetActiveAttrib = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *))IntGetProcAddress("glGetActiveAttrib"); + if(!_ptrc_glGetActiveAttrib) numFailed++; + _ptrc_glGetActiveUniform = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *))IntGetProcAddress("glGetActiveUniform"); + if(!_ptrc_glGetActiveUniform) numFailed++; + _ptrc_glGetAttachedShaders = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLuint *))IntGetProcAddress("glGetAttachedShaders"); + if(!_ptrc_glGetAttachedShaders) numFailed++; + _ptrc_glGetAttribLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetAttribLocation"); + if(!_ptrc_glGetAttribLocation) numFailed++; + _ptrc_glGetProgramInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramInfoLog"); + if(!_ptrc_glGetProgramInfoLog) numFailed++; + _ptrc_glGetProgramiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetProgramiv"); + if(!_ptrc_glGetProgramiv) numFailed++; + _ptrc_glGetShaderInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetShaderInfoLog"); + if(!_ptrc_glGetShaderInfoLog) numFailed++; + _ptrc_glGetShaderSource = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetShaderSource"); + if(!_ptrc_glGetShaderSource) numFailed++; + _ptrc_glGetShaderiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetShaderiv"); + if(!_ptrc_glGetShaderiv) numFailed++; + _ptrc_glGetUniformLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetUniformLocation"); + if(!_ptrc_glGetUniformLocation) numFailed++; + _ptrc_glGetUniformfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat *))IntGetProcAddress("glGetUniformfv"); + if(!_ptrc_glGetUniformfv) numFailed++; + _ptrc_glGetUniformiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint *))IntGetProcAddress("glGetUniformiv"); + if(!_ptrc_glGetUniformiv) numFailed++; + _ptrc_glGetVertexAttribPointerv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLvoid **))IntGetProcAddress("glGetVertexAttribPointerv"); + if(!_ptrc_glGetVertexAttribPointerv) numFailed++; + _ptrc_glGetVertexAttribdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLdouble *))IntGetProcAddress("glGetVertexAttribdv"); + if(!_ptrc_glGetVertexAttribdv) numFailed++; + _ptrc_glGetVertexAttribfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat *))IntGetProcAddress("glGetVertexAttribfv"); + if(!_ptrc_glGetVertexAttribfv) numFailed++; + _ptrc_glGetVertexAttribiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetVertexAttribiv"); + if(!_ptrc_glGetVertexAttribiv) numFailed++; + _ptrc_glIsProgram = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsProgram"); + if(!_ptrc_glIsProgram) numFailed++; + _ptrc_glIsShader = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsShader"); + if(!_ptrc_glIsShader) numFailed++; + _ptrc_glLinkProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glLinkProgram"); + if(!_ptrc_glLinkProgram) numFailed++; + _ptrc_glShaderSource = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, const GLint *))IntGetProcAddress("glShaderSource"); + if(!_ptrc_glShaderSource) numFailed++; + _ptrc_glStencilFuncSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint, GLuint))IntGetProcAddress("glStencilFuncSeparate"); + if(!_ptrc_glStencilFuncSeparate) numFailed++; + _ptrc_glStencilMaskSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glStencilMaskSeparate"); + if(!_ptrc_glStencilMaskSeparate) numFailed++; + _ptrc_glStencilOpSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glStencilOpSeparate"); + if(!_ptrc_glStencilOpSeparate) numFailed++; + _ptrc_glUniform1f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat))IntGetProcAddress("glUniform1f"); + if(!_ptrc_glUniform1f) numFailed++; + _ptrc_glUniform1fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform1fv"); + if(!_ptrc_glUniform1fv) numFailed++; + _ptrc_glUniform1i = (void (CODEGEN_FUNCPTR *)(GLint, GLint))IntGetProcAddress("glUniform1i"); + if(!_ptrc_glUniform1i) numFailed++; + _ptrc_glUniform1iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform1iv"); + if(!_ptrc_glUniform1iv) numFailed++; + _ptrc_glUniform2f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat))IntGetProcAddress("glUniform2f"); + if(!_ptrc_glUniform2f) numFailed++; + _ptrc_glUniform2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform2fv"); + if(!_ptrc_glUniform2fv) numFailed++; + _ptrc_glUniform2i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint))IntGetProcAddress("glUniform2i"); + if(!_ptrc_glUniform2i) numFailed++; + _ptrc_glUniform2iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform2iv"); + if(!_ptrc_glUniform2iv) numFailed++; + _ptrc_glUniform3f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glUniform3f"); + if(!_ptrc_glUniform3f) numFailed++; + _ptrc_glUniform3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform3fv"); + if(!_ptrc_glUniform3fv) numFailed++; + _ptrc_glUniform3i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint))IntGetProcAddress("glUniform3i"); + if(!_ptrc_glUniform3i) numFailed++; + _ptrc_glUniform3iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform3iv"); + if(!_ptrc_glUniform3iv) numFailed++; + _ptrc_glUniform4f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glUniform4f"); + if(!_ptrc_glUniform4f) numFailed++; + _ptrc_glUniform4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform4fv"); + if(!_ptrc_glUniform4fv) numFailed++; + _ptrc_glUniform4i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint, GLint))IntGetProcAddress("glUniform4i"); + if(!_ptrc_glUniform4i) numFailed++; + _ptrc_glUniform4iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform4iv"); + if(!_ptrc_glUniform4iv) numFailed++; + _ptrc_glUniformMatrix2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2fv"); + if(!_ptrc_glUniformMatrix2fv) numFailed++; + _ptrc_glUniformMatrix3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3fv"); + if(!_ptrc_glUniformMatrix3fv) numFailed++; + _ptrc_glUniformMatrix4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4fv"); + if(!_ptrc_glUniformMatrix4fv) numFailed++; + _ptrc_glUseProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glUseProgram"); + if(!_ptrc_glUseProgram) numFailed++; + _ptrc_glValidateProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glValidateProgram"); + if(!_ptrc_glValidateProgram) numFailed++; + _ptrc_glVertexAttrib1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble))IntGetProcAddress("glVertexAttrib1d"); + if(!_ptrc_glVertexAttrib1d) numFailed++; + _ptrc_glVertexAttrib1dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib1dv"); + if(!_ptrc_glVertexAttrib1dv) numFailed++; + _ptrc_glVertexAttrib1f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat))IntGetProcAddress("glVertexAttrib1f"); + if(!_ptrc_glVertexAttrib1f) numFailed++; + _ptrc_glVertexAttrib1fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib1fv"); + if(!_ptrc_glVertexAttrib1fv) numFailed++; + _ptrc_glVertexAttrib1s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort))IntGetProcAddress("glVertexAttrib1s"); + if(!_ptrc_glVertexAttrib1s) numFailed++; + _ptrc_glVertexAttrib1sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib1sv"); + if(!_ptrc_glVertexAttrib1sv) numFailed++; + _ptrc_glVertexAttrib2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib2d"); + if(!_ptrc_glVertexAttrib2d) numFailed++; + _ptrc_glVertexAttrib2dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib2dv"); + if(!_ptrc_glVertexAttrib2dv) numFailed++; + _ptrc_glVertexAttrib2f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib2f"); + if(!_ptrc_glVertexAttrib2f) numFailed++; + _ptrc_glVertexAttrib2fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib2fv"); + if(!_ptrc_glVertexAttrib2fv) numFailed++; + _ptrc_glVertexAttrib2s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort))IntGetProcAddress("glVertexAttrib2s"); + if(!_ptrc_glVertexAttrib2s) numFailed++; + _ptrc_glVertexAttrib2sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib2sv"); + if(!_ptrc_glVertexAttrib2sv) numFailed++; + _ptrc_glVertexAttrib3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib3d"); + if(!_ptrc_glVertexAttrib3d) numFailed++; + _ptrc_glVertexAttrib3dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib3dv"); + if(!_ptrc_glVertexAttrib3dv) numFailed++; + _ptrc_glVertexAttrib3f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib3f"); + if(!_ptrc_glVertexAttrib3f) numFailed++; + _ptrc_glVertexAttrib3fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib3fv"); + if(!_ptrc_glVertexAttrib3fv) numFailed++; + _ptrc_glVertexAttrib3s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort, GLshort))IntGetProcAddress("glVertexAttrib3s"); + if(!_ptrc_glVertexAttrib3s) numFailed++; + _ptrc_glVertexAttrib3sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib3sv"); + if(!_ptrc_glVertexAttrib3sv) numFailed++; + _ptrc_glVertexAttrib4Nbv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttrib4Nbv"); + if(!_ptrc_glVertexAttrib4Nbv) numFailed++; + _ptrc_glVertexAttrib4Niv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttrib4Niv"); + if(!_ptrc_glVertexAttrib4Niv) numFailed++; + _ptrc_glVertexAttrib4Nsv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib4Nsv"); + if(!_ptrc_glVertexAttrib4Nsv) numFailed++; + _ptrc_glVertexAttrib4Nub = (void (CODEGEN_FUNCPTR *)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte))IntGetProcAddress("glVertexAttrib4Nub"); + if(!_ptrc_glVertexAttrib4Nub) numFailed++; + _ptrc_glVertexAttrib4Nubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttrib4Nubv"); + if(!_ptrc_glVertexAttrib4Nubv) numFailed++; + _ptrc_glVertexAttrib4Nuiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttrib4Nuiv"); + if(!_ptrc_glVertexAttrib4Nuiv) numFailed++; + _ptrc_glVertexAttrib4Nusv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttrib4Nusv"); + if(!_ptrc_glVertexAttrib4Nusv) numFailed++; + _ptrc_glVertexAttrib4bv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttrib4bv"); + if(!_ptrc_glVertexAttrib4bv) numFailed++; + _ptrc_glVertexAttrib4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib4d"); + if(!_ptrc_glVertexAttrib4d) numFailed++; + _ptrc_glVertexAttrib4dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib4dv"); + if(!_ptrc_glVertexAttrib4dv) numFailed++; + _ptrc_glVertexAttrib4f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib4f"); + if(!_ptrc_glVertexAttrib4f) numFailed++; + _ptrc_glVertexAttrib4fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib4fv"); + if(!_ptrc_glVertexAttrib4fv) numFailed++; + _ptrc_glVertexAttrib4iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttrib4iv"); + if(!_ptrc_glVertexAttrib4iv) numFailed++; + _ptrc_glVertexAttrib4s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort, GLshort, GLshort))IntGetProcAddress("glVertexAttrib4s"); + if(!_ptrc_glVertexAttrib4s) numFailed++; + _ptrc_glVertexAttrib4sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib4sv"); + if(!_ptrc_glVertexAttrib4sv) numFailed++; + _ptrc_glVertexAttrib4ubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttrib4ubv"); + if(!_ptrc_glVertexAttrib4ubv) numFailed++; + _ptrc_glVertexAttrib4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttrib4uiv"); + if(!_ptrc_glVertexAttrib4uiv) numFailed++; + _ptrc_glVertexAttrib4usv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttrib4usv"); + if(!_ptrc_glVertexAttrib4usv) numFailed++; + _ptrc_glVertexAttribPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribPointer"); + if(!_ptrc_glVertexAttribPointer) numFailed++; + _ptrc_glUniformMatrix2x3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2x3fv"); + if(!_ptrc_glUniformMatrix2x3fv) numFailed++; + _ptrc_glUniformMatrix2x4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2x4fv"); + if(!_ptrc_glUniformMatrix2x4fv) numFailed++; + _ptrc_glUniformMatrix3x2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3x2fv"); + if(!_ptrc_glUniformMatrix3x2fv) numFailed++; + _ptrc_glUniformMatrix3x4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3x4fv"); + if(!_ptrc_glUniformMatrix3x4fv) numFailed++; + _ptrc_glUniformMatrix4x2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4x2fv"); + if(!_ptrc_glUniformMatrix4x2fv) numFailed++; + _ptrc_glUniformMatrix4x3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4x3fv"); + if(!_ptrc_glUniformMatrix4x3fv) numFailed++; + _ptrc_glBeginConditionalRender = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glBeginConditionalRender"); + if(!_ptrc_glBeginConditionalRender) numFailed++; + _ptrc_glBeginTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glBeginTransformFeedback"); + if(!_ptrc_glBeginTransformFeedback) numFailed++; + _ptrc_glBindBufferBase = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glBindBufferBase"); + if(!_ptrc_glBindBufferBase) numFailed++; + _ptrc_glBindBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glBindBufferRange"); + if(!_ptrc_glBindBufferRange) numFailed++; + _ptrc_glBindFragDataLocation = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindFragDataLocation"); + if(!_ptrc_glBindFragDataLocation) numFailed++; + _ptrc_glBindFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindFramebuffer"); + if(!_ptrc_glBindFramebuffer) numFailed++; + _ptrc_glBindRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindRenderbuffer"); + if(!_ptrc_glBindRenderbuffer) numFailed++; + _ptrc_glBindVertexArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glBindVertexArray"); + if(!_ptrc_glBindVertexArray) numFailed++; + _ptrc_glBlitFramebuffer = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum))IntGetProcAddress("glBlitFramebuffer"); + if(!_ptrc_glBlitFramebuffer) numFailed++; + _ptrc_glCheckFramebufferStatus = (GLenum (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCheckFramebufferStatus"); + if(!_ptrc_glCheckFramebufferStatus) numFailed++; + _ptrc_glClampColor = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glClampColor"); + if(!_ptrc_glClampColor) numFailed++; + _ptrc_glClearBufferfi = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLfloat, GLint))IntGetProcAddress("glClearBufferfi"); + if(!_ptrc_glClearBufferfi) numFailed++; + _ptrc_glClearBufferfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLfloat *))IntGetProcAddress("glClearBufferfv"); + if(!_ptrc_glClearBufferfv) numFailed++; + _ptrc_glClearBufferiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLint *))IntGetProcAddress("glClearBufferiv"); + if(!_ptrc_glClearBufferiv) numFailed++; + _ptrc_glClearBufferuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLuint *))IntGetProcAddress("glClearBufferuiv"); + if(!_ptrc_glClearBufferuiv) numFailed++; + _ptrc_glColorMaski = (void (CODEGEN_FUNCPTR *)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean))IntGetProcAddress("glColorMaski"); + if(!_ptrc_glColorMaski) numFailed++; + _ptrc_glDeleteFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteFramebuffers"); + if(!_ptrc_glDeleteFramebuffers) numFailed++; + _ptrc_glDeleteRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteRenderbuffers"); + if(!_ptrc_glDeleteRenderbuffers) numFailed++; + _ptrc_glDeleteVertexArrays = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteVertexArrays"); + if(!_ptrc_glDeleteVertexArrays) numFailed++; + _ptrc_glDisablei = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glDisablei"); + if(!_ptrc_glDisablei) numFailed++; + _ptrc_glEnablei = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glEnablei"); + if(!_ptrc_glEnablei) numFailed++; + _ptrc_glEndConditionalRender = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glEndConditionalRender"); + if(!_ptrc_glEndConditionalRender) numFailed++; + _ptrc_glEndTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glEndTransformFeedback"); + if(!_ptrc_glEndTransformFeedback) numFailed++; + _ptrc_glFlushMappedBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr))IntGetProcAddress("glFlushMappedBufferRange"); + if(!_ptrc_glFlushMappedBufferRange) numFailed++; + _ptrc_glFramebufferRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint))IntGetProcAddress("glFramebufferRenderbuffer"); + if(!_ptrc_glFramebufferRenderbuffer) numFailed++; + _ptrc_glFramebufferTexture1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture1D"); + if(!_ptrc_glFramebufferTexture1D) numFailed++; + _ptrc_glFramebufferTexture2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture2D"); + if(!_ptrc_glFramebufferTexture2D) numFailed++; + _ptrc_glFramebufferTexture3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTexture3D"); + if(!_ptrc_glFramebufferTexture3D) numFailed++; + _ptrc_glFramebufferTextureLayer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTextureLayer"); + if(!_ptrc_glFramebufferTextureLayer) numFailed++; + _ptrc_glGenFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenFramebuffers"); + if(!_ptrc_glGenFramebuffers) numFailed++; + _ptrc_glGenRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenRenderbuffers"); + if(!_ptrc_glGenRenderbuffers) numFailed++; + _ptrc_glGenVertexArrays = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenVertexArrays"); + if(!_ptrc_glGenVertexArrays) numFailed++; + _ptrc_glGenerateMipmap = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glGenerateMipmap"); + if(!_ptrc_glGenerateMipmap) numFailed++; + _ptrc_glGetBooleani_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLboolean *))IntGetProcAddress("glGetBooleani_v"); + if(!_ptrc_glGetBooleani_v) numFailed++; + _ptrc_glGetFragDataLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetFragDataLocation"); + if(!_ptrc_glGetFragDataLocation) numFailed++; + _ptrc_glGetFramebufferAttachmentParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLint *))IntGetProcAddress("glGetFramebufferAttachmentParameteriv"); + if(!_ptrc_glGetFramebufferAttachmentParameteriv) numFailed++; + _ptrc_glGetIntegeri_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLint *))IntGetProcAddress("glGetIntegeri_v"); + if(!_ptrc_glGetIntegeri_v) numFailed++; + _ptrc_glGetRenderbufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetRenderbufferParameteriv"); + if(!_ptrc_glGetRenderbufferParameteriv) numFailed++; + _ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi"); + if(!_ptrc_glGetStringi) numFailed++; + _ptrc_glGetTexParameterIiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetTexParameterIiv"); + if(!_ptrc_glGetTexParameterIiv) numFailed++; + _ptrc_glGetTexParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint *))IntGetProcAddress("glGetTexParameterIuiv"); + if(!_ptrc_glGetTexParameterIuiv) numFailed++; + _ptrc_glGetTransformFeedbackVarying = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *))IntGetProcAddress("glGetTransformFeedbackVarying"); + if(!_ptrc_glGetTransformFeedbackVarying) numFailed++; + _ptrc_glGetUniformuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint *))IntGetProcAddress("glGetUniformuiv"); + if(!_ptrc_glGetUniformuiv) numFailed++; + _ptrc_glGetVertexAttribIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetVertexAttribIiv"); + if(!_ptrc_glGetVertexAttribIiv) numFailed++; + _ptrc_glGetVertexAttribIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetVertexAttribIuiv"); + if(!_ptrc_glGetVertexAttribIuiv) numFailed++; + _ptrc_glIsEnabledi = (GLboolean (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glIsEnabledi"); + if(!_ptrc_glIsEnabledi) numFailed++; + _ptrc_glIsFramebuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsFramebuffer"); + if(!_ptrc_glIsFramebuffer) numFailed++; + _ptrc_glIsRenderbuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsRenderbuffer"); + if(!_ptrc_glIsRenderbuffer) numFailed++; + _ptrc_glIsVertexArray = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsVertexArray"); + if(!_ptrc_glIsVertexArray) numFailed++; + _ptrc_glMapBufferRange = (void * (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, GLbitfield))IntGetProcAddress("glMapBufferRange"); + if(!_ptrc_glMapBufferRange) numFailed++; + _ptrc_glRenderbufferStorage = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorage"); + if(!_ptrc_glRenderbufferStorage) numFailed++; + _ptrc_glRenderbufferStorageMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorageMultisample"); + if(!_ptrc_glRenderbufferStorageMultisample) numFailed++; + _ptrc_glTexParameterIiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLint *))IntGetProcAddress("glTexParameterIiv"); + if(!_ptrc_glTexParameterIiv) numFailed++; + _ptrc_glTexParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glTexParameterIuiv"); + if(!_ptrc_glTexParameterIuiv) numFailed++; + _ptrc_glTransformFeedbackVaryings = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, GLenum))IntGetProcAddress("glTransformFeedbackVaryings"); + if(!_ptrc_glTransformFeedbackVaryings) numFailed++; + _ptrc_glUniform1ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint))IntGetProcAddress("glUniform1ui"); + if(!_ptrc_glUniform1ui) numFailed++; + _ptrc_glUniform1uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform1uiv"); + if(!_ptrc_glUniform1uiv) numFailed++; + _ptrc_glUniform2ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint))IntGetProcAddress("glUniform2ui"); + if(!_ptrc_glUniform2ui) numFailed++; + _ptrc_glUniform2uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform2uiv"); + if(!_ptrc_glUniform2uiv) numFailed++; + _ptrc_glUniform3ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint, GLuint))IntGetProcAddress("glUniform3ui"); + if(!_ptrc_glUniform3ui) numFailed++; + _ptrc_glUniform3uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform3uiv"); + if(!_ptrc_glUniform3uiv) numFailed++; + _ptrc_glUniform4ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glUniform4ui"); + if(!_ptrc_glUniform4ui) numFailed++; + _ptrc_glUniform4uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform4uiv"); + if(!_ptrc_glUniform4uiv) numFailed++; + _ptrc_glVertexAttribI1i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint))IntGetProcAddress("glVertexAttribI1i"); + if(!_ptrc_glVertexAttribI1i) numFailed++; + _ptrc_glVertexAttribI1iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI1iv"); + if(!_ptrc_glVertexAttribI1iv) numFailed++; + _ptrc_glVertexAttribI1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribI1ui"); + if(!_ptrc_glVertexAttribI1ui) numFailed++; + _ptrc_glVertexAttribI1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI1uiv"); + if(!_ptrc_glVertexAttribI1uiv) numFailed++; + _ptrc_glVertexAttribI2i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint))IntGetProcAddress("glVertexAttribI2i"); + if(!_ptrc_glVertexAttribI2i) numFailed++; + _ptrc_glVertexAttribI2iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI2iv"); + if(!_ptrc_glVertexAttribI2iv) numFailed++; + _ptrc_glVertexAttribI2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI2ui"); + if(!_ptrc_glVertexAttribI2ui) numFailed++; + _ptrc_glVertexAttribI2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI2uiv"); + if(!_ptrc_glVertexAttribI2uiv) numFailed++; + _ptrc_glVertexAttribI3i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint))IntGetProcAddress("glVertexAttribI3i"); + if(!_ptrc_glVertexAttribI3i) numFailed++; + _ptrc_glVertexAttribI3iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI3iv"); + if(!_ptrc_glVertexAttribI3iv) numFailed++; + _ptrc_glVertexAttribI3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI3ui"); + if(!_ptrc_glVertexAttribI3ui) numFailed++; + _ptrc_glVertexAttribI3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI3uiv"); + if(!_ptrc_glVertexAttribI3uiv) numFailed++; + _ptrc_glVertexAttribI4bv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttribI4bv"); + if(!_ptrc_glVertexAttribI4bv) numFailed++; + _ptrc_glVertexAttribI4i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint))IntGetProcAddress("glVertexAttribI4i"); + if(!_ptrc_glVertexAttribI4i) numFailed++; + _ptrc_glVertexAttribI4iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI4iv"); + if(!_ptrc_glVertexAttribI4iv) numFailed++; + _ptrc_glVertexAttribI4sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttribI4sv"); + if(!_ptrc_glVertexAttribI4sv) numFailed++; + _ptrc_glVertexAttribI4ubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttribI4ubv"); + if(!_ptrc_glVertexAttribI4ubv) numFailed++; + _ptrc_glVertexAttribI4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI4ui"); + if(!_ptrc_glVertexAttribI4ui) numFailed++; + _ptrc_glVertexAttribI4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI4uiv"); + if(!_ptrc_glVertexAttribI4uiv) numFailed++; + _ptrc_glVertexAttribI4usv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttribI4usv"); + if(!_ptrc_glVertexAttribI4usv) numFailed++; + _ptrc_glVertexAttribIPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribIPointer"); + if(!_ptrc_glVertexAttribIPointer) numFailed++; + _ptrc_glCopyBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr))IntGetProcAddress("glCopyBufferSubData"); + if(!_ptrc_glCopyBufferSubData) numFailed++; + _ptrc_glDrawArraysInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei, GLsizei))IntGetProcAddress("glDrawArraysInstanced"); + if(!_ptrc_glDrawArraysInstanced) numFailed++; + _ptrc_glDrawElementsInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glDrawElementsInstanced"); + if(!_ptrc_glDrawElementsInstanced) numFailed++; + _ptrc_glGetActiveUniformBlockName = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveUniformBlockName"); + if(!_ptrc_glGetActiveUniformBlockName) numFailed++; + _ptrc_glGetActiveUniformBlockiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveUniformBlockiv"); + if(!_ptrc_glGetActiveUniformBlockiv) numFailed++; + _ptrc_glGetActiveUniformName = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveUniformName"); + if(!_ptrc_glGetActiveUniformName) numFailed++; + _ptrc_glGetActiveUniformsiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *, GLenum, GLint *))IntGetProcAddress("glGetActiveUniformsiv"); + if(!_ptrc_glGetActiveUniformsiv) numFailed++; + _ptrc_glGetUniformBlockIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetUniformBlockIndex"); + if(!_ptrc_glGetUniformBlockIndex) numFailed++; + _ptrc_glGetUniformIndices = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, GLuint *))IntGetProcAddress("glGetUniformIndices"); + if(!_ptrc_glGetUniformIndices) numFailed++; + _ptrc_glPrimitiveRestartIndex = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glPrimitiveRestartIndex"); + if(!_ptrc_glPrimitiveRestartIndex) numFailed++; + _ptrc_glTexBuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glTexBuffer"); + if(!_ptrc_glTexBuffer) numFailed++; + _ptrc_glUniformBlockBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glUniformBlockBinding"); + if(!_ptrc_glUniformBlockBinding) numFailed++; + _ptrc_glClientWaitSync = (GLenum (CODEGEN_FUNCPTR *)(GLsync, GLbitfield, GLuint64))IntGetProcAddress("glClientWaitSync"); + if(!_ptrc_glClientWaitSync) numFailed++; + _ptrc_glDeleteSync = (void (CODEGEN_FUNCPTR *)(GLsync))IntGetProcAddress("glDeleteSync"); + if(!_ptrc_glDeleteSync) numFailed++; + _ptrc_glDrawElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLint))IntGetProcAddress("glDrawElementsBaseVertex"); + if(!_ptrc_glDrawElementsBaseVertex) numFailed++; + _ptrc_glDrawElementsInstancedBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint))IntGetProcAddress("glDrawElementsInstancedBaseVertex"); + if(!_ptrc_glDrawElementsInstancedBaseVertex) numFailed++; + _ptrc_glDrawRangeElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint))IntGetProcAddress("glDrawRangeElementsBaseVertex"); + if(!_ptrc_glDrawRangeElementsBaseVertex) numFailed++; + _ptrc_glFenceSync = (GLsync (CODEGEN_FUNCPTR *)(GLenum, GLbitfield))IntGetProcAddress("glFenceSync"); + if(!_ptrc_glFenceSync) numFailed++; + _ptrc_glFramebufferTexture = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture"); + if(!_ptrc_glFramebufferTexture) numFailed++; + _ptrc_glGetBufferParameteri64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint64 *))IntGetProcAddress("glGetBufferParameteri64v"); + if(!_ptrc_glGetBufferParameteri64v) numFailed++; + _ptrc_glGetInteger64i_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLint64 *))IntGetProcAddress("glGetInteger64i_v"); + if(!_ptrc_glGetInteger64i_v) numFailed++; + _ptrc_glGetInteger64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLint64 *))IntGetProcAddress("glGetInteger64v"); + if(!_ptrc_glGetInteger64v) numFailed++; + _ptrc_glGetMultisamplefv = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLfloat *))IntGetProcAddress("glGetMultisamplefv"); + if(!_ptrc_glGetMultisamplefv) numFailed++; + _ptrc_glGetSynciv = (void (CODEGEN_FUNCPTR *)(GLsync, GLenum, GLsizei, GLsizei *, GLint *))IntGetProcAddress("glGetSynciv"); + if(!_ptrc_glGetSynciv) numFailed++; + _ptrc_glIsSync = (GLboolean (CODEGEN_FUNCPTR *)(GLsync))IntGetProcAddress("glIsSync"); + if(!_ptrc_glIsSync) numFailed++; + _ptrc_glMultiDrawElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *))IntGetProcAddress("glMultiDrawElementsBaseVertex"); + if(!_ptrc_glMultiDrawElementsBaseVertex) numFailed++; + _ptrc_glProvokingVertex = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glProvokingVertex"); + if(!_ptrc_glProvokingVertex) numFailed++; + _ptrc_glSampleMaski = (void (CODEGEN_FUNCPTR *)(GLuint, GLbitfield))IntGetProcAddress("glSampleMaski"); + if(!_ptrc_glSampleMaski) numFailed++; + _ptrc_glTexImage2DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexImage2DMultisample"); + if(!_ptrc_glTexImage2DMultisample) numFailed++; + _ptrc_glTexImage3DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexImage3DMultisample"); + if(!_ptrc_glTexImage3DMultisample) numFailed++; + _ptrc_glWaitSync = (void (CODEGEN_FUNCPTR *)(GLsync, GLbitfield, GLuint64))IntGetProcAddress("glWaitSync"); + if(!_ptrc_glWaitSync) numFailed++; + _ptrc_glBindFragDataLocationIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindFragDataLocationIndexed"); + if(!_ptrc_glBindFragDataLocationIndexed) numFailed++; + _ptrc_glBindSampler = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glBindSampler"); + if(!_ptrc_glBindSampler) numFailed++; + _ptrc_glColorP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glColorP3ui"); + if(!_ptrc_glColorP3ui) numFailed++; + _ptrc_glColorP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glColorP3uiv"); + if(!_ptrc_glColorP3uiv) numFailed++; + _ptrc_glColorP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glColorP4ui"); + if(!_ptrc_glColorP4ui) numFailed++; + _ptrc_glColorP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glColorP4uiv"); + if(!_ptrc_glColorP4uiv) numFailed++; + _ptrc_glDeleteSamplers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteSamplers"); + if(!_ptrc_glDeleteSamplers) numFailed++; + _ptrc_glGenSamplers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenSamplers"); + if(!_ptrc_glGenSamplers) numFailed++; + _ptrc_glGetFragDataIndex = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetFragDataIndex"); + if(!_ptrc_glGetFragDataIndex) numFailed++; + _ptrc_glGetQueryObjecti64v = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint64 *))IntGetProcAddress("glGetQueryObjecti64v"); + if(!_ptrc_glGetQueryObjecti64v) numFailed++; + _ptrc_glGetQueryObjectui64v = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint64 *))IntGetProcAddress("glGetQueryObjectui64v"); + if(!_ptrc_glGetQueryObjectui64v) numFailed++; + _ptrc_glGetSamplerParameterIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetSamplerParameterIiv"); + if(!_ptrc_glGetSamplerParameterIiv) numFailed++; + _ptrc_glGetSamplerParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetSamplerParameterIuiv"); + if(!_ptrc_glGetSamplerParameterIuiv) numFailed++; + _ptrc_glGetSamplerParameterfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat *))IntGetProcAddress("glGetSamplerParameterfv"); + if(!_ptrc_glGetSamplerParameterfv) numFailed++; + _ptrc_glGetSamplerParameteriv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetSamplerParameteriv"); + if(!_ptrc_glGetSamplerParameteriv) numFailed++; + _ptrc_glIsSampler = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsSampler"); + if(!_ptrc_glIsSampler) numFailed++; + _ptrc_glMultiTexCoordP1ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP1ui"); + if(!_ptrc_glMultiTexCoordP1ui) numFailed++; + _ptrc_glMultiTexCoordP1uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP1uiv"); + if(!_ptrc_glMultiTexCoordP1uiv) numFailed++; + _ptrc_glMultiTexCoordP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP2ui"); + if(!_ptrc_glMultiTexCoordP2ui) numFailed++; + _ptrc_glMultiTexCoordP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP2uiv"); + if(!_ptrc_glMultiTexCoordP2uiv) numFailed++; + _ptrc_glMultiTexCoordP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP3ui"); + if(!_ptrc_glMultiTexCoordP3ui) numFailed++; + _ptrc_glMultiTexCoordP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP3uiv"); + if(!_ptrc_glMultiTexCoordP3uiv) numFailed++; + _ptrc_glMultiTexCoordP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP4ui"); + if(!_ptrc_glMultiTexCoordP4ui) numFailed++; + _ptrc_glMultiTexCoordP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP4uiv"); + if(!_ptrc_glMultiTexCoordP4uiv) numFailed++; + _ptrc_glNormalP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glNormalP3ui"); + if(!_ptrc_glNormalP3ui) numFailed++; + _ptrc_glNormalP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glNormalP3uiv"); + if(!_ptrc_glNormalP3uiv) numFailed++; + _ptrc_glQueryCounter = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glQueryCounter"); + if(!_ptrc_glQueryCounter) numFailed++; + _ptrc_glSamplerParameterIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLint *))IntGetProcAddress("glSamplerParameterIiv"); + if(!_ptrc_glSamplerParameterIiv) numFailed++; + _ptrc_glSamplerParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLuint *))IntGetProcAddress("glSamplerParameterIuiv"); + if(!_ptrc_glSamplerParameterIuiv) numFailed++; + _ptrc_glSamplerParameterf = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat))IntGetProcAddress("glSamplerParameterf"); + if(!_ptrc_glSamplerParameterf) numFailed++; + _ptrc_glSamplerParameterfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLfloat *))IntGetProcAddress("glSamplerParameterfv"); + if(!_ptrc_glSamplerParameterfv) numFailed++; + _ptrc_glSamplerParameteri = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint))IntGetProcAddress("glSamplerParameteri"); + if(!_ptrc_glSamplerParameteri) numFailed++; + _ptrc_glSamplerParameteriv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLint *))IntGetProcAddress("glSamplerParameteriv"); + if(!_ptrc_glSamplerParameteriv) numFailed++; + _ptrc_glSecondaryColorP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glSecondaryColorP3ui"); + if(!_ptrc_glSecondaryColorP3ui) numFailed++; + _ptrc_glSecondaryColorP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glSecondaryColorP3uiv"); + if(!_ptrc_glSecondaryColorP3uiv) numFailed++; + _ptrc_glTexCoordP1ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP1ui"); + if(!_ptrc_glTexCoordP1ui) numFailed++; + _ptrc_glTexCoordP1uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP1uiv"); + if(!_ptrc_glTexCoordP1uiv) numFailed++; + _ptrc_glTexCoordP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP2ui"); + if(!_ptrc_glTexCoordP2ui) numFailed++; + _ptrc_glTexCoordP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP2uiv"); + if(!_ptrc_glTexCoordP2uiv) numFailed++; + _ptrc_glTexCoordP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP3ui"); + if(!_ptrc_glTexCoordP3ui) numFailed++; + _ptrc_glTexCoordP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP3uiv"); + if(!_ptrc_glTexCoordP3uiv) numFailed++; + _ptrc_glTexCoordP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP4ui"); + if(!_ptrc_glTexCoordP4ui) numFailed++; + _ptrc_glTexCoordP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP4uiv"); + if(!_ptrc_glTexCoordP4uiv) numFailed++; + _ptrc_glVertexAttribDivisor = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribDivisor"); + if(!_ptrc_glVertexAttribDivisor) numFailed++; + _ptrc_glVertexAttribP1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP1ui"); + if(!_ptrc_glVertexAttribP1ui) numFailed++; + _ptrc_glVertexAttribP1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP1uiv"); + if(!_ptrc_glVertexAttribP1uiv) numFailed++; + _ptrc_glVertexAttribP2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP2ui"); + if(!_ptrc_glVertexAttribP2ui) numFailed++; + _ptrc_glVertexAttribP2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP2uiv"); + if(!_ptrc_glVertexAttribP2uiv) numFailed++; + _ptrc_glVertexAttribP3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP3ui"); + if(!_ptrc_glVertexAttribP3ui) numFailed++; + _ptrc_glVertexAttribP3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP3uiv"); + if(!_ptrc_glVertexAttribP3uiv) numFailed++; + _ptrc_glVertexAttribP4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP4ui"); + if(!_ptrc_glVertexAttribP4ui) numFailed++; + _ptrc_glVertexAttribP4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP4uiv"); + if(!_ptrc_glVertexAttribP4uiv) numFailed++; + _ptrc_glVertexP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP2ui"); + if(!_ptrc_glVertexP2ui) numFailed++; + _ptrc_glVertexP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP2uiv"); + if(!_ptrc_glVertexP2uiv) numFailed++; + _ptrc_glVertexP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP3ui"); + if(!_ptrc_glVertexP3ui) numFailed++; + _ptrc_glVertexP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP3uiv"); + if(!_ptrc_glVertexP3uiv) numFailed++; + _ptrc_glVertexP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP4ui"); + if(!_ptrc_glVertexP4ui) numFailed++; + _ptrc_glVertexP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP4uiv"); + if(!_ptrc_glVertexP4uiv) numFailed++; + _ptrc_glBeginQueryIndexed = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glBeginQueryIndexed"); + if(!_ptrc_glBeginQueryIndexed) numFailed++; + _ptrc_glBindTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindTransformFeedback"); + if(!_ptrc_glBindTransformFeedback) numFailed++; + _ptrc_glBlendEquationSeparatei = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum))IntGetProcAddress("glBlendEquationSeparatei"); + if(!_ptrc_glBlendEquationSeparatei) numFailed++; + _ptrc_glBlendEquationi = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glBlendEquationi"); + if(!_ptrc_glBlendEquationi) numFailed++; + _ptrc_glBlendFuncSeparatei = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glBlendFuncSeparatei"); + if(!_ptrc_glBlendFuncSeparatei) numFailed++; + _ptrc_glBlendFunci = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum))IntGetProcAddress("glBlendFunci"); + if(!_ptrc_glBlendFunci) numFailed++; + _ptrc_glDeleteTransformFeedbacks = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteTransformFeedbacks"); + if(!_ptrc_glDeleteTransformFeedbacks) numFailed++; + _ptrc_glDrawArraysIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, const GLvoid *))IntGetProcAddress("glDrawArraysIndirect"); + if(!_ptrc_glDrawArraysIndirect) numFailed++; + _ptrc_glDrawElementsIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLvoid *))IntGetProcAddress("glDrawElementsIndirect"); + if(!_ptrc_glDrawElementsIndirect) numFailed++; + _ptrc_glDrawTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glDrawTransformFeedback"); + if(!_ptrc_glDrawTransformFeedback) numFailed++; + _ptrc_glDrawTransformFeedbackStream = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glDrawTransformFeedbackStream"); + if(!_ptrc_glDrawTransformFeedbackStream) numFailed++; + _ptrc_glEndQueryIndexed = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glEndQueryIndexed"); + if(!_ptrc_glEndQueryIndexed) numFailed++; + _ptrc_glGenTransformFeedbacks = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenTransformFeedbacks"); + if(!_ptrc_glGenTransformFeedbacks) numFailed++; + _ptrc_glGetActiveSubroutineName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveSubroutineName"); + if(!_ptrc_glGetActiveSubroutineName) numFailed++; + _ptrc_glGetActiveSubroutineUniformName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveSubroutineUniformName"); + if(!_ptrc_glGetActiveSubroutineUniformName) numFailed++; + _ptrc_glGetActiveSubroutineUniformiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveSubroutineUniformiv"); + if(!_ptrc_glGetActiveSubroutineUniformiv) numFailed++; + _ptrc_glGetProgramStageiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLint *))IntGetProcAddress("glGetProgramStageiv"); + if(!_ptrc_glGetProgramStageiv) numFailed++; + _ptrc_glGetQueryIndexediv = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLenum, GLint *))IntGetProcAddress("glGetQueryIndexediv"); + if(!_ptrc_glGetQueryIndexediv) numFailed++; + _ptrc_glGetSubroutineIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetSubroutineIndex"); + if(!_ptrc_glGetSubroutineIndex) numFailed++; + _ptrc_glGetSubroutineUniformLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetSubroutineUniformLocation"); + if(!_ptrc_glGetSubroutineUniformLocation) numFailed++; + _ptrc_glGetUniformSubroutineuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLuint *))IntGetProcAddress("glGetUniformSubroutineuiv"); + if(!_ptrc_glGetUniformSubroutineuiv) numFailed++; + _ptrc_glGetUniformdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble *))IntGetProcAddress("glGetUniformdv"); + if(!_ptrc_glGetUniformdv) numFailed++; + _ptrc_glIsTransformFeedback = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsTransformFeedback"); + if(!_ptrc_glIsTransformFeedback) numFailed++; + _ptrc_glMinSampleShading = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glMinSampleShading"); + if(!_ptrc_glMinSampleShading) numFailed++; + _ptrc_glPatchParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLfloat *))IntGetProcAddress("glPatchParameterfv"); + if(!_ptrc_glPatchParameterfv) numFailed++; + _ptrc_glPatchParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPatchParameteri"); + if(!_ptrc_glPatchParameteri) numFailed++; + _ptrc_glPauseTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glPauseTransformFeedback"); + if(!_ptrc_glPauseTransformFeedback) numFailed++; + _ptrc_glResumeTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glResumeTransformFeedback"); + if(!_ptrc_glResumeTransformFeedback) numFailed++; + _ptrc_glUniform1d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble))IntGetProcAddress("glUniform1d"); + if(!_ptrc_glUniform1d) numFailed++; + _ptrc_glUniform1dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform1dv"); + if(!_ptrc_glUniform1dv) numFailed++; + _ptrc_glUniform2d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble))IntGetProcAddress("glUniform2d"); + if(!_ptrc_glUniform2d) numFailed++; + _ptrc_glUniform2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform2dv"); + if(!_ptrc_glUniform2dv) numFailed++; + _ptrc_glUniform3d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glUniform3d"); + if(!_ptrc_glUniform3d) numFailed++; + _ptrc_glUniform3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform3dv"); + if(!_ptrc_glUniform3dv) numFailed++; + _ptrc_glUniform4d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glUniform4d"); + if(!_ptrc_glUniform4d) numFailed++; + _ptrc_glUniform4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform4dv"); + if(!_ptrc_glUniform4dv) numFailed++; + _ptrc_glUniformMatrix2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2dv"); + if(!_ptrc_glUniformMatrix2dv) numFailed++; + _ptrc_glUniformMatrix2x3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2x3dv"); + if(!_ptrc_glUniformMatrix2x3dv) numFailed++; + _ptrc_glUniformMatrix2x4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2x4dv"); + if(!_ptrc_glUniformMatrix2x4dv) numFailed++; + _ptrc_glUniformMatrix3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3dv"); + if(!_ptrc_glUniformMatrix3dv) numFailed++; + _ptrc_glUniformMatrix3x2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3x2dv"); + if(!_ptrc_glUniformMatrix3x2dv) numFailed++; + _ptrc_glUniformMatrix3x4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3x4dv"); + if(!_ptrc_glUniformMatrix3x4dv) numFailed++; + _ptrc_glUniformMatrix4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4dv"); + if(!_ptrc_glUniformMatrix4dv) numFailed++; + _ptrc_glUniformMatrix4x2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4x2dv"); + if(!_ptrc_glUniformMatrix4x2dv) numFailed++; + _ptrc_glUniformMatrix4x3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4x3dv"); + if(!_ptrc_glUniformMatrix4x3dv) numFailed++; + _ptrc_glUniformSubroutinesuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLuint *))IntGetProcAddress("glUniformSubroutinesuiv"); + if(!_ptrc_glUniformSubroutinesuiv) numFailed++; + _ptrc_glActiveShaderProgram = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glActiveShaderProgram"); + if(!_ptrc_glActiveShaderProgram) numFailed++; + _ptrc_glBindProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glBindProgramPipeline"); + if(!_ptrc_glBindProgramPipeline) numFailed++; + _ptrc_glClearDepthf = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glClearDepthf"); + if(!_ptrc_glClearDepthf) numFailed++; + _ptrc_glCreateShaderProgramv = (GLuint (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLchar *const*))IntGetProcAddress("glCreateShaderProgramv"); + if(!_ptrc_glCreateShaderProgramv) numFailed++; + _ptrc_glDeleteProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteProgramPipelines"); + if(!_ptrc_glDeleteProgramPipelines) numFailed++; + _ptrc_glDepthRangeArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLdouble *))IntGetProcAddress("glDepthRangeArrayv"); + if(!_ptrc_glDepthRangeArrayv) numFailed++; + _ptrc_glDepthRangeIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glDepthRangeIndexed"); + if(!_ptrc_glDepthRangeIndexed) numFailed++; + _ptrc_glDepthRangef = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat))IntGetProcAddress("glDepthRangef"); + if(!_ptrc_glDepthRangef) numFailed++; + _ptrc_glGenProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenProgramPipelines"); + if(!_ptrc_glGenProgramPipelines) numFailed++; + _ptrc_glGetDoublei_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLdouble *))IntGetProcAddress("glGetDoublei_v"); + if(!_ptrc_glGetDoublei_v) numFailed++; + _ptrc_glGetFloati_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLfloat *))IntGetProcAddress("glGetFloati_v"); + if(!_ptrc_glGetFloati_v) numFailed++; + _ptrc_glGetProgramBinary = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *))IntGetProcAddress("glGetProgramBinary"); + if(!_ptrc_glGetProgramBinary) numFailed++; + _ptrc_glGetProgramPipelineInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramPipelineInfoLog"); + if(!_ptrc_glGetProgramPipelineInfoLog) numFailed++; + _ptrc_glGetProgramPipelineiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetProgramPipelineiv"); + if(!_ptrc_glGetProgramPipelineiv) numFailed++; + _ptrc_glGetShaderPrecisionFormat = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *, GLint *))IntGetProcAddress("glGetShaderPrecisionFormat"); + if(!_ptrc_glGetShaderPrecisionFormat) numFailed++; + _ptrc_glGetVertexAttribLdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLdouble *))IntGetProcAddress("glGetVertexAttribLdv"); + if(!_ptrc_glGetVertexAttribLdv) numFailed++; + _ptrc_glIsProgramPipeline = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsProgramPipeline"); + if(!_ptrc_glIsProgramPipeline) numFailed++; + _ptrc_glProgramBinary = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glProgramBinary"); + if(!_ptrc_glProgramBinary) numFailed++; + _ptrc_glProgramParameteri = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint))IntGetProcAddress("glProgramParameteri"); + if(!_ptrc_glProgramParameteri) numFailed++; + _ptrc_glProgramUniform1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble))IntGetProcAddress("glProgramUniform1d"); + if(!_ptrc_glProgramUniform1d) numFailed++; + _ptrc_glProgramUniform1dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform1dv"); + if(!_ptrc_glProgramUniform1dv) numFailed++; + _ptrc_glProgramUniform1f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat))IntGetProcAddress("glProgramUniform1f"); + if(!_ptrc_glProgramUniform1f) numFailed++; + _ptrc_glProgramUniform1fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform1fv"); + if(!_ptrc_glProgramUniform1fv) numFailed++; + _ptrc_glProgramUniform1i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint))IntGetProcAddress("glProgramUniform1i"); + if(!_ptrc_glProgramUniform1i) numFailed++; + _ptrc_glProgramUniform1iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform1iv"); + if(!_ptrc_glProgramUniform1iv) numFailed++; + _ptrc_glProgramUniform1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint))IntGetProcAddress("glProgramUniform1ui"); + if(!_ptrc_glProgramUniform1ui) numFailed++; + _ptrc_glProgramUniform1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform1uiv"); + if(!_ptrc_glProgramUniform1uiv) numFailed++; + _ptrc_glProgramUniform2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform2d"); + if(!_ptrc_glProgramUniform2d) numFailed++; + _ptrc_glProgramUniform2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform2dv"); + if(!_ptrc_glProgramUniform2dv) numFailed++; + _ptrc_glProgramUniform2f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform2f"); + if(!_ptrc_glProgramUniform2f) numFailed++; + _ptrc_glProgramUniform2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform2fv"); + if(!_ptrc_glProgramUniform2fv) numFailed++; + _ptrc_glProgramUniform2i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform2i"); + if(!_ptrc_glProgramUniform2i) numFailed++; + _ptrc_glProgramUniform2iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform2iv"); + if(!_ptrc_glProgramUniform2iv) numFailed++; + _ptrc_glProgramUniform2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint))IntGetProcAddress("glProgramUniform2ui"); + if(!_ptrc_glProgramUniform2ui) numFailed++; + _ptrc_glProgramUniform2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform2uiv"); + if(!_ptrc_glProgramUniform2uiv) numFailed++; + _ptrc_glProgramUniform3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform3d"); + if(!_ptrc_glProgramUniform3d) numFailed++; + _ptrc_glProgramUniform3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform3dv"); + if(!_ptrc_glProgramUniform3dv) numFailed++; + _ptrc_glProgramUniform3f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform3f"); + if(!_ptrc_glProgramUniform3f) numFailed++; + _ptrc_glProgramUniform3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform3fv"); + if(!_ptrc_glProgramUniform3fv) numFailed++; + _ptrc_glProgramUniform3i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform3i"); + if(!_ptrc_glProgramUniform3i) numFailed++; + _ptrc_glProgramUniform3iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform3iv"); + if(!_ptrc_glProgramUniform3iv) numFailed++; + _ptrc_glProgramUniform3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform3ui"); + if(!_ptrc_glProgramUniform3ui) numFailed++; + _ptrc_glProgramUniform3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform3uiv"); + if(!_ptrc_glProgramUniform3uiv) numFailed++; + _ptrc_glProgramUniform4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform4d"); + if(!_ptrc_glProgramUniform4d) numFailed++; + _ptrc_glProgramUniform4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform4dv"); + if(!_ptrc_glProgramUniform4dv) numFailed++; + _ptrc_glProgramUniform4f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform4f"); + if(!_ptrc_glProgramUniform4f) numFailed++; + _ptrc_glProgramUniform4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform4fv"); + if(!_ptrc_glProgramUniform4fv) numFailed++; + _ptrc_glProgramUniform4i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform4i"); + if(!_ptrc_glProgramUniform4i) numFailed++; + _ptrc_glProgramUniform4iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform4iv"); + if(!_ptrc_glProgramUniform4iv) numFailed++; + _ptrc_glProgramUniform4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform4ui"); + if(!_ptrc_glProgramUniform4ui) numFailed++; + _ptrc_glProgramUniform4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform4uiv"); + if(!_ptrc_glProgramUniform4uiv) numFailed++; + _ptrc_glProgramUniformMatrix2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2dv"); + if(!_ptrc_glProgramUniformMatrix2dv) numFailed++; + _ptrc_glProgramUniformMatrix2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2fv"); + if(!_ptrc_glProgramUniformMatrix2fv) numFailed++; + _ptrc_glProgramUniformMatrix2x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x3dv"); + if(!_ptrc_glProgramUniformMatrix2x3dv) numFailed++; + _ptrc_glProgramUniformMatrix2x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x3fv"); + if(!_ptrc_glProgramUniformMatrix2x3fv) numFailed++; + _ptrc_glProgramUniformMatrix2x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x4dv"); + if(!_ptrc_glProgramUniformMatrix2x4dv) numFailed++; + _ptrc_glProgramUniformMatrix2x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x4fv"); + if(!_ptrc_glProgramUniformMatrix2x4fv) numFailed++; + _ptrc_glProgramUniformMatrix3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3dv"); + if(!_ptrc_glProgramUniformMatrix3dv) numFailed++; + _ptrc_glProgramUniformMatrix3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3fv"); + if(!_ptrc_glProgramUniformMatrix3fv) numFailed++; + _ptrc_glProgramUniformMatrix3x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x2dv"); + if(!_ptrc_glProgramUniformMatrix3x2dv) numFailed++; + _ptrc_glProgramUniformMatrix3x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x2fv"); + if(!_ptrc_glProgramUniformMatrix3x2fv) numFailed++; + _ptrc_glProgramUniformMatrix3x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x4dv"); + if(!_ptrc_glProgramUniformMatrix3x4dv) numFailed++; + _ptrc_glProgramUniformMatrix3x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x4fv"); + if(!_ptrc_glProgramUniformMatrix3x4fv) numFailed++; + _ptrc_glProgramUniformMatrix4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4dv"); + if(!_ptrc_glProgramUniformMatrix4dv) numFailed++; + _ptrc_glProgramUniformMatrix4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4fv"); + if(!_ptrc_glProgramUniformMatrix4fv) numFailed++; + _ptrc_glProgramUniformMatrix4x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x2dv"); + if(!_ptrc_glProgramUniformMatrix4x2dv) numFailed++; + _ptrc_glProgramUniformMatrix4x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x2fv"); + if(!_ptrc_glProgramUniformMatrix4x2fv) numFailed++; + _ptrc_glProgramUniformMatrix4x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x3dv"); + if(!_ptrc_glProgramUniformMatrix4x3dv) numFailed++; + _ptrc_glProgramUniformMatrix4x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x3fv"); + if(!_ptrc_glProgramUniformMatrix4x3fv) numFailed++; + _ptrc_glReleaseShaderCompiler = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glReleaseShaderCompiler"); + if(!_ptrc_glReleaseShaderCompiler) numFailed++; + _ptrc_glScissorArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLint *))IntGetProcAddress("glScissorArrayv"); + if(!_ptrc_glScissorArrayv) numFailed++; + _ptrc_glScissorIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glScissorIndexed"); + if(!_ptrc_glScissorIndexed) numFailed++; + _ptrc_glScissorIndexedv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glScissorIndexedv"); + if(!_ptrc_glScissorIndexedv) numFailed++; + _ptrc_glShaderBinary = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glShaderBinary"); + if(!_ptrc_glShaderBinary) numFailed++; + _ptrc_glUseProgramStages = (void (CODEGEN_FUNCPTR *)(GLuint, GLbitfield, GLuint))IntGetProcAddress("glUseProgramStages"); + if(!_ptrc_glUseProgramStages) numFailed++; + _ptrc_glValidateProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glValidateProgramPipeline"); + if(!_ptrc_glValidateProgramPipeline) numFailed++; + _ptrc_glVertexAttribL1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble))IntGetProcAddress("glVertexAttribL1d"); + if(!_ptrc_glVertexAttribL1d) numFailed++; + _ptrc_glVertexAttribL1dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL1dv"); + if(!_ptrc_glVertexAttribL1dv) numFailed++; + _ptrc_glVertexAttribL2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL2d"); + if(!_ptrc_glVertexAttribL2d) numFailed++; + _ptrc_glVertexAttribL2dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL2dv"); + if(!_ptrc_glVertexAttribL2dv) numFailed++; + _ptrc_glVertexAttribL3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL3d"); + if(!_ptrc_glVertexAttribL3d) numFailed++; + _ptrc_glVertexAttribL3dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL3dv"); + if(!_ptrc_glVertexAttribL3dv) numFailed++; + _ptrc_glVertexAttribL4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL4d"); + if(!_ptrc_glVertexAttribL4d) numFailed++; + _ptrc_glVertexAttribL4dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL4dv"); + if(!_ptrc_glVertexAttribL4dv) numFailed++; + _ptrc_glVertexAttribLPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribLPointer"); + if(!_ptrc_glVertexAttribLPointer) numFailed++; + _ptrc_glViewportArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLfloat *))IntGetProcAddress("glViewportArrayv"); + if(!_ptrc_glViewportArrayv) numFailed++; + _ptrc_glViewportIndexedf = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glViewportIndexedf"); + if(!_ptrc_glViewportIndexedf) numFailed++; + _ptrc_glViewportIndexedfv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glViewportIndexedfv"); + if(!_ptrc_glViewportIndexedfv) numFailed++; + _ptrc_glBindImageTexture = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum))IntGetProcAddress("glBindImageTexture"); + if(!_ptrc_glBindImageTexture) numFailed++; + _ptrc_glDrawArraysInstancedBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei, GLsizei, GLuint))IntGetProcAddress("glDrawArraysInstancedBaseInstance"); + if(!_ptrc_glDrawArraysInstancedBaseInstance) numFailed++; + _ptrc_glDrawElementsInstancedBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint))IntGetProcAddress("glDrawElementsInstancedBaseInstance"); + if(!_ptrc_glDrawElementsInstancedBaseInstance) numFailed++; + _ptrc_glDrawElementsInstancedBaseVertexBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint))IntGetProcAddress("glDrawElementsInstancedBaseVertexBaseInstance"); + if(!_ptrc_glDrawElementsInstancedBaseVertexBaseInstance) numFailed++; + _ptrc_glDrawTransformFeedbackInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei))IntGetProcAddress("glDrawTransformFeedbackInstanced"); + if(!_ptrc_glDrawTransformFeedbackInstanced) numFailed++; + _ptrc_glDrawTransformFeedbackStreamInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei))IntGetProcAddress("glDrawTransformFeedbackStreamInstanced"); + if(!_ptrc_glDrawTransformFeedbackStreamInstanced) numFailed++; + _ptrc_glGetActiveAtomicCounterBufferiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveAtomicCounterBufferiv"); + if(!_ptrc_glGetActiveAtomicCounterBufferiv) numFailed++; + _ptrc_glGetInternalformati64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLsizei, GLint64 *))IntGetProcAddress("glGetInternalformati64v"); + if(!_ptrc_glGetInternalformati64v) numFailed++; + _ptrc_glMemoryBarrier = (void (CODEGEN_FUNCPTR *)(GLbitfield))IntGetProcAddress("glMemoryBarrier"); + if(!_ptrc_glMemoryBarrier) numFailed++; + _ptrc_glTexStorage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei))IntGetProcAddress("glTexStorage1D"); + if(!_ptrc_glTexStorage1D) numFailed++; + _ptrc_glTexStorage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))IntGetProcAddress("glTexStorage2D"); + if(!_ptrc_glTexStorage2D) numFailed++; + _ptrc_glTexStorage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glTexStorage3D"); + if(!_ptrc_glTexStorage3D) numFailed++; + _ptrc_glBindVertexBuffer = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLintptr, GLsizei))IntGetProcAddress("glBindVertexBuffer"); + if(!_ptrc_glBindVertexBuffer) numFailed++; + _ptrc_glClearBufferData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum, const void *))IntGetProcAddress("glClearBufferData"); + if(!_ptrc_glClearBufferData) numFailed++; + _ptrc_glClearBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *))IntGetProcAddress("glClearBufferSubData"); + if(!_ptrc_glClearBufferSubData) numFailed++; + _ptrc_glCopyImageSubData = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glCopyImageSubData"); + if(!_ptrc_glCopyImageSubData) numFailed++; + _ptrc_glDebugMessageCallback = (void (CODEGEN_FUNCPTR *)(GLDEBUGPROC, const void *))IntGetProcAddress("glDebugMessageCallback"); + if(!_ptrc_glDebugMessageCallback) numFailed++; + _ptrc_glDebugMessageControl = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean))IntGetProcAddress("glDebugMessageControl"); + if(!_ptrc_glDebugMessageControl) numFailed++; + _ptrc_glDebugMessageInsert = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *))IntGetProcAddress("glDebugMessageInsert"); + if(!_ptrc_glDebugMessageInsert) numFailed++; + _ptrc_glDispatchCompute = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glDispatchCompute"); + if(!_ptrc_glDispatchCompute) numFailed++; + _ptrc_glDispatchComputeIndirect = (void (CODEGEN_FUNCPTR *)(GLintptr))IntGetProcAddress("glDispatchComputeIndirect"); + if(!_ptrc_glDispatchComputeIndirect) numFailed++; + _ptrc_glFramebufferParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint))IntGetProcAddress("glFramebufferParameteri"); + if(!_ptrc_glFramebufferParameteri) numFailed++; + _ptrc_glGetDebugMessageLog = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *))IntGetProcAddress("glGetDebugMessageLog"); + if(!_ptrc_glGetDebugMessageLog) numFailed++; + _ptrc_glGetFramebufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetFramebufferParameteriv"); + if(!_ptrc_glGetFramebufferParameteriv) numFailed++; + _ptrc_glGetObjectLabel = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetObjectLabel"); + if(!_ptrc_glGetObjectLabel) numFailed++; + _ptrc_glGetObjectPtrLabel = (void (CODEGEN_FUNCPTR *)(const void *, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetObjectPtrLabel"); + if(!_ptrc_glGetObjectPtrLabel) numFailed++; + _ptrc_glGetProgramInterfaceiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLint *))IntGetProcAddress("glGetProgramInterfaceiv"); + if(!_ptrc_glGetProgramInterfaceiv) numFailed++; + _ptrc_glGetProgramResourceIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceIndex"); + if(!_ptrc_glGetProgramResourceIndex) numFailed++; + _ptrc_glGetProgramResourceLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceLocation"); + if(!_ptrc_glGetProgramResourceLocation) numFailed++; + _ptrc_glGetProgramResourceLocationIndex = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceLocationIndex"); + if(!_ptrc_glGetProgramResourceLocationIndex) numFailed++; + _ptrc_glGetProgramResourceName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramResourceName"); + if(!_ptrc_glGetProgramResourceName) numFailed++; + _ptrc_glGetProgramResourceiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *))IntGetProcAddress("glGetProgramResourceiv"); + if(!_ptrc_glGetProgramResourceiv) numFailed++; + _ptrc_glInvalidateBufferData = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glInvalidateBufferData"); + if(!_ptrc_glInvalidateBufferData) numFailed++; + _ptrc_glInvalidateBufferSubData = (void (CODEGEN_FUNCPTR *)(GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glInvalidateBufferSubData"); + if(!_ptrc_glInvalidateBufferSubData) numFailed++; + _ptrc_glInvalidateFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLenum *))IntGetProcAddress("glInvalidateFramebuffer"); + if(!_ptrc_glInvalidateFramebuffer) numFailed++; + _ptrc_glInvalidateSubFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glInvalidateSubFramebuffer"); + if(!_ptrc_glInvalidateSubFramebuffer) numFailed++; + _ptrc_glInvalidateTexImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint))IntGetProcAddress("glInvalidateTexImage"); + if(!_ptrc_glInvalidateTexImage) numFailed++; + _ptrc_glInvalidateTexSubImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glInvalidateTexSubImage"); + if(!_ptrc_glInvalidateTexSubImage) numFailed++; + _ptrc_glMultiDrawArraysIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, const void *, GLsizei, GLsizei))IntGetProcAddress("glMultiDrawArraysIndirect"); + if(!_ptrc_glMultiDrawArraysIndirect) numFailed++; + _ptrc_glMultiDrawElementsIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const void *, GLsizei, GLsizei))IntGetProcAddress("glMultiDrawElementsIndirect"); + if(!_ptrc_glMultiDrawElementsIndirect) numFailed++; + _ptrc_glObjectLabel = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLchar *))IntGetProcAddress("glObjectLabel"); + if(!_ptrc_glObjectLabel) numFailed++; + _ptrc_glObjectPtrLabel = (void (CODEGEN_FUNCPTR *)(const void *, GLsizei, const GLchar *))IntGetProcAddress("glObjectPtrLabel"); + if(!_ptrc_glObjectPtrLabel) numFailed++; + _ptrc_glPopDebugGroup = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glPopDebugGroup"); + if(!_ptrc_glPopDebugGroup) numFailed++; + _ptrc_glPushDebugGroup = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLchar *))IntGetProcAddress("glPushDebugGroup"); + if(!_ptrc_glPushDebugGroup) numFailed++; + _ptrc_glShaderStorageBlockBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glShaderStorageBlockBinding"); + if(!_ptrc_glShaderStorageBlockBinding) numFailed++; + _ptrc_glTexBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glTexBufferRange"); + if(!_ptrc_glTexBufferRange) numFailed++; + _ptrc_glTexStorage2DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexStorage2DMultisample"); + if(!_ptrc_glTexStorage2DMultisample) numFailed++; + _ptrc_glTexStorage3DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexStorage3DMultisample"); + if(!_ptrc_glTexStorage3DMultisample) numFailed++; + _ptrc_glTextureView = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glTextureView"); + if(!_ptrc_glTextureView) numFailed++; + _ptrc_glVertexAttribBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribBinding"); + if(!_ptrc_glVertexAttribBinding) numFailed++; + _ptrc_glVertexAttribFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribFormat"); + if(!_ptrc_glVertexAttribFormat) numFailed++; + _ptrc_glVertexAttribIFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLuint))IntGetProcAddress("glVertexAttribIFormat"); + if(!_ptrc_glVertexAttribIFormat) numFailed++; + _ptrc_glVertexAttribLFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLuint))IntGetProcAddress("glVertexAttribLFormat"); + if(!_ptrc_glVertexAttribLFormat) numFailed++; + _ptrc_glVertexBindingDivisor = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexBindingDivisor"); + if(!_ptrc_glVertexBindingDivisor) numFailed++; + _ptrc_glBindBuffersBase = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindBuffersBase"); + if(!_ptrc_glBindBuffersBase) numFailed++; + _ptrc_glBindBuffersRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *))IntGetProcAddress("glBindBuffersRange"); + if(!_ptrc_glBindBuffersRange) numFailed++; + _ptrc_glBindImageTextures = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindImageTextures"); + if(!_ptrc_glBindImageTextures) numFailed++; + _ptrc_glBindSamplers = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindSamplers"); + if(!_ptrc_glBindSamplers) numFailed++; + _ptrc_glBindTextures = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindTextures"); + if(!_ptrc_glBindTextures) numFailed++; + _ptrc_glBindVertexBuffers = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *))IntGetProcAddress("glBindVertexBuffers"); + if(!_ptrc_glBindVertexBuffers) numFailed++; + _ptrc_glBufferStorage = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizeiptr, const void *, GLbitfield))IntGetProcAddress("glBufferStorage"); + if(!_ptrc_glBufferStorage) numFailed++; + _ptrc_glClearTexImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLenum, const void *))IntGetProcAddress("glClearTexImage"); + if(!_ptrc_glClearTexImage) numFailed++; + _ptrc_glClearTexSubImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *))IntGetProcAddress("glClearTexSubImage"); + if(!_ptrc_glClearTexSubImage) numFailed++; + return numFailed; +} + +typedef int (*PFN_LOADFUNCPOINTERS)(); +typedef struct ogl_StrToExtMap_s +{ + char *extensionName; + int *extensionVariable; + PFN_LOADFUNCPOINTERS LoadExtension; +} ogl_StrToExtMap; + +static ogl_StrToExtMap ExtensionMap[2] = { + {"GL_NV_texture_barrier", &ogl_ext_NV_texture_barrier, Load_NV_texture_barrier}, + {"GL_NV_copy_image", &ogl_ext_NV_copy_image, Load_NV_copy_image}, +}; + +static int g_extensionMapSize = 2; + +static ogl_StrToExtMap *FindExtEntry(const char *extensionName) +{ + int loop; + ogl_StrToExtMap *currLoc = ExtensionMap; + for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc) + { + if(strcmp(extensionName, currLoc->extensionName) == 0) + return currLoc; + } + + return NULL; +} + +static void ClearExtensionVars() +{ + ogl_ext_NV_texture_barrier = ogl_LOAD_FAILED; + ogl_ext_NV_copy_image = ogl_LOAD_FAILED; +} + + +static void LoadExtByName(const char *extensionName) +{ + ogl_StrToExtMap *entry = NULL; + entry = FindExtEntry(extensionName); + if(entry) + { + if(entry->LoadExtension) + { + int numFailed = entry->LoadExtension(); + if(numFailed == 0) + { + *(entry->extensionVariable) = ogl_LOAD_SUCCEEDED; + } + else + { + *(entry->extensionVariable) = ogl_LOAD_SUCCEEDED + numFailed; + } + } + else + { + *(entry->extensionVariable) = ogl_LOAD_SUCCEEDED; + } + } +} + + +static void ProcExtsFromExtList() +{ + GLint iLoop; + GLint iNumExtensions = 0; + _ptrc_glGetIntegerv(GL_NUM_EXTENSIONS, &iNumExtensions); + + for(iLoop = 0; iLoop < iNumExtensions; iLoop++) + { + const char *strExtensionName = (const char *)_ptrc_glGetStringi(GL_EXTENSIONS, iLoop); + LoadExtByName(strExtensionName); + } +} + +int ogl_LoadFunctions() +{ + int numFailed = 0; + ClearExtensionVars(); + + _ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv"); + if(!_ptrc_glGetIntegerv) return ogl_LOAD_FAILED; + _ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi"); + if(!_ptrc_glGetStringi) return ogl_LOAD_FAILED; + + ProcExtsFromExtList(); + numFailed = Load_Version_4_4(); + + if(numFailed == 0) + return ogl_LOAD_SUCCEEDED; + else + return ogl_LOAD_SUCCEEDED + numFailed; +} + +static int g_major_version = 0; +static int g_minor_version = 0; + +static void GetGLVersion() +{ + glGetIntegerv(GL_MAJOR_VERSION, &g_major_version); + glGetIntegerv(GL_MINOR_VERSION, &g_minor_version); +} + +int ogl_GetMajorVersion() +{ + if(g_major_version == 0) + GetGLVersion(); + return g_major_version; +} + +int ogl_GetMinorVersion() +{ + if(g_major_version == 0) //Yes, check the major version to get the minor one. + GetGLVersion(); + return g_minor_version; +} + +int ogl_IsVersionGEQ(int majorVersion, int minorVersion) +{ + if(g_major_version == 0) + GetGLVersion(); + + if(majorVersion > g_major_version) return 1; + if(majorVersion < g_major_version) return 0; + if(minorVersion >= g_minor_version) return 1; + return 0; +} + diff --git a/src/gl_core44.h b/src/gl_core44.h new file mode 100644 index 0000000..ba88224 --- /dev/null +++ b/src/gl_core44.h @@ -0,0 +1,2646 @@ +#ifndef POINTER_C_GENERATED_HEADER_OPENGL_H +#define POINTER_C_GENERATED_HEADER_OPENGL_H + +#if defined(__glew_h__) || defined(__GLEW_H__) +#error Attempt to include auto-generated header after including glew.h +#endif +#if defined(__gl_h_) || defined(__GL_H__) +#error Attempt to include auto-generated header after including gl.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) +#error Attempt to include auto-generated header after including glext.h +#endif +#if defined(__gltypes_h_) +#error Attempt to include auto-generated header after gltypes.h +#endif +#if defined(__gl_ATI_h_) +#error Attempt to include auto-generated header after including glATI.h +#endif + +#define __glew_h__ +#define __GLEW_H__ +#define __gl_h_ +#define __GL_H__ +#define __glext_h_ +#define __GLEXT_H_ +#define __gltypes_h_ +#define __gl_ATI_h_ + +#ifndef APIENTRY + #if defined(__MINGW32__) + #ifndef WIN32_LEAN_AND_MEAN + #define WIN32_LEAN_AND_MEAN 1 + #endif + #ifndef NOMINMAX + #define NOMINMAX + #endif + #include + #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) + #ifndef WIN32_LEAN_AND_MEAN + #define WIN32_LEAN_AND_MEAN 1 + #endif + #ifndef NOMINMAX + #define NOMINMAX + #endif + #include + #else + #define APIENTRY + #endif +#endif /*APIENTRY*/ + +#ifndef CODEGEN_FUNCPTR + #define CODEGEN_REMOVE_FUNCPTR + #if defined(_WIN32) + #define CODEGEN_FUNCPTR APIENTRY + #else + #define CODEGEN_FUNCPTR + #endif +#endif /*CODEGEN_FUNCPTR*/ + +#ifndef GLAPI + #define GLAPI extern +#endif + + +#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS +#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS + + +#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/ + + +#include +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif +#endif + typedef unsigned int GLenum; + typedef unsigned char GLboolean; + typedef unsigned int GLbitfield; + typedef void GLvoid; + typedef signed char GLbyte; + typedef short GLshort; + typedef int GLint; + typedef unsigned char GLubyte; + typedef unsigned short GLushort; + typedef unsigned int GLuint; + typedef int GLsizei; + typedef float GLfloat; + typedef float GLclampf; + typedef double GLdouble; + typedef double GLclampd; + typedef char GLchar; + typedef char GLcharARB; + #ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif + typedef unsigned short GLhalfARB; + typedef unsigned short GLhalf; + typedef GLint GLfixed; + typedef ptrdiff_t GLintptr; + typedef ptrdiff_t GLsizeiptr; + typedef int64_t GLint64; + typedef uint64_t GLuint64; + typedef ptrdiff_t GLintptrARB; + typedef ptrdiff_t GLsizeiptrARB; + typedef int64_t GLint64EXT; + typedef uint64_t GLuint64EXT; + typedef struct __GLsync *GLsync; + struct _cl_context; + struct _cl_event; + typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); + typedef unsigned short GLhalfNV; + typedef GLintptr GLvdpauSurfaceNV; + +#ifdef __cplusplus +extern "C" { +#endif /*__cplusplus*/ + +extern int ogl_ext_NV_texture_barrier; +extern int ogl_ext_NV_copy_image; + +#define GL_ALPHA 0x1906 +#define GL_ALWAYS 0x0207 +#define GL_AND 0x1501 +#define GL_AND_INVERTED 0x1504 +#define GL_AND_REVERSE 0x1502 +#define GL_BACK 0x0405 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_BLEND 0x0BE2 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLUE 0x1905 +#define GL_BYTE 0x1400 +#define GL_CCW 0x0901 +#define GL_CLEAR 0x1500 +#define GL_COLOR 0x1800 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_CW 0x0900 +#define GL_DECR 0x1E03 +#define GL_DEPTH 0x1801 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DITHER 0x0BD0 +#define GL_DONT_CARE 0x1100 +#define GL_DOUBLE 0x140A +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DST_ALPHA 0x0304 +#define GL_DST_COLOR 0x0306 +#define GL_EQUAL 0x0202 +#define GL_EQUIV 0x1509 +#define GL_EXTENSIONS 0x1F03 +#define GL_FALSE 0 +#define GL_FASTEST 0x1101 +#define GL_FILL 0x1B02 +#define GL_FLOAT 0x1406 +#define GL_FRONT 0x0404 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_FRONT_FACE 0x0B46 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_GEQUAL 0x0206 +#define GL_GREATER 0x0204 +#define GL_GREEN 0x1904 +#define GL_INCR 0x1E02 +#define GL_INT 0x1404 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_OPERATION 0x0502 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVERT 0x150A +#define GL_KEEP 0x1E00 +#define GL_LEFT 0x0406 +#define GL_LEQUAL 0x0203 +#define GL_LESS 0x0201 +#define GL_LINE 0x1B01 +#define GL_LINEAR 0x2601 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_NAND 0x150E +#define GL_NEAREST 0x2600 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEVER 0x0200 +#define GL_NICEST 0x1102 +#define GL_NONE 0 +#define GL_NOOP 0x1505 +#define GL_NOR 0x1508 +#define GL_NOTEQUAL 0x0205 +#define GL_NO_ERROR 0 +#define GL_ONE 1 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_OR 0x1507 +#define GL_OR_INVERTED 0x150D +#define GL_OR_REVERSE 0x150B +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_POINT 0x1B00 +#define GL_POINTS 0x0000 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_QUADS 0x0007 +#define GL_R3_G3_B2 0x2A10 +#define GL_READ_BUFFER 0x0C02 +#define GL_RED 0x1903 +#define GL_RENDERER 0x1F01 +#define GL_REPEAT 0x2901 +#define GL_REPLACE 0x1E01 +#define GL_RGB 0x1907 +#define GL_RGB10 0x8052 +#define GL_RGB10_A2 0x8059 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB5_A1 0x8057 +#define GL_RGB8 0x8051 +#define GL_RGBA 0x1908 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGBA8 0x8058 +#define GL_RIGHT 0x0407 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_SET 0x150F +#define GL_SHORT 0x1402 +#define GL_SRC_ALPHA 0x0302 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_SRC_COLOR 0x0300 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_STENCIL 0x1802 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STEREO 0x0C33 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE 0x1702 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRUE 1 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_UNSIGNED_INT 0x1405 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_VENDOR 0x1F00 +#define GL_VERSION 0x1F02 +#define GL_VIEWPORT 0x0BA2 +#define GL_XOR 0x1506 +#define GL_ZERO 0 + +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 + +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_MULTISAMPLE 0x809D +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 + +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_DECR_WRAP 0x8508 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_INCR_WRAP 0x8507 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_LOD_BIAS 0x8501 + +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_CURRENT_QUERY 0x8865 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_READ_ONLY 0x88B8 +#define GL_READ_WRITE 0x88BA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SRC1_ALPHA 0x8589 +#define GL_STATIC_COPY 0x88E6 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STREAM_COPY 0x88E2 +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_WRITE_ONLY 0x88B9 + +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_DELETE_STATUS 0x8B80 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_LINK_STATUS 0x8B82 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_SHADER_TYPE 0x8B4F +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_SHADER 0x8B31 + +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SRGB_ALPHA 0x8C42 + +#define GL_BGRA_INTEGER 0x8D9B +#define GL_BGR_INTEGER 0x8D9A +#define GL_BLUE_INTEGER 0x8D96 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_RG 0x8226 +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#define GL_CONTEXT_FLAGS 0x821E +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FIXED_ONLY 0x891D +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_FRAMEBUFFER 0x8D40 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_GREEN_INTEGER 0x8D95 +#define GL_HALF_FLOAT 0x140B +#define GL_INDEX 0x8222 +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_MAJOR_VERSION 0x821B +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_MINOR_VERSION 0x821C +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_NUM_EXTENSIONS 0x821D +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_WAIT 0x8E13 +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_R16 0x822A +#define GL_R16F 0x822D +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32F 0x822E +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_R8 0x8229 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RED_INTEGER 0x8D94 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RG 0x8227 +#define GL_RG16 0x822C +#define GL_RG16F 0x822F +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32F 0x8230 +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#define GL_RG8 0x822B +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RGB16F 0x881B +#define GL_RGB16I 0x8D89 +#define GL_RGB16UI 0x8D77 +#define GL_RGB32F 0x8815 +#define GL_RGB32I 0x8D83 +#define GL_RGB32UI 0x8D71 +#define GL_RGB8I 0x8D8F +#define GL_RGB8UI 0x8D7D +#define GL_RGB9_E5 0x8C3D +#define GL_RGBA16F 0x881A +#define GL_RGBA16I 0x8D88 +#define GL_RGBA16UI 0x8D76 +#define GL_RGBA32F 0x8814 +#define GL_RGBA32I 0x8D82 +#define GL_RGBA32UI 0x8D70 +#define GL_RGBA8I 0x8D8E +#define GL_RGBA8UI 0x8D7C +#define GL_RGBA_INTEGER 0x8D99 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RG_INTEGER 0x8228 +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD + +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_R16_SNORM 0x8F98 +#define GL_R8_SNORM 0x8F94 +#define GL_RG16_SNORM 0x8F99 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA16_SNORM 0x8F9B +#define GL_RGBA8_SNORM 0x8F97 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 + +#define GL_ALREADY_SIGNALED 0x911A +#define GL_CONDITION_SATISFIED 0x911C +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +#define GL_DEPTH_CLAMP 0x864F +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_OBJECT_TYPE 0x9112 +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SIGNALED 0x9119 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_SYNC_STATUS 0x9114 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_UNSIGNALED 0x9118 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_WAIT_FAILED 0x911D + +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_INT_2_10_10_10_REV 0x8D9F +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_RGB10_A2UI 0x906F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_SRC1_COLOR 0x88F9 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_TIMESTAMP 0x8E28 +#define GL_TIME_ELAPSED 0x88BF +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE + +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_ISOLINES 0x8E7A +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_PATCHES 0x000E +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F + +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_FIXED 0x140C +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_HIGH_INT 0x8DF5 +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_LOW_FLOAT 0x8DF0 +#define GL_LOW_INT 0x8DF3 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VIEWPORTS 0x825B +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_RGB565 0x8D62 +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C + +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D +#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C +#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E +#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 +#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 +#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A +#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 +#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 + +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A +#define GL_ARRAY_SIZE 0x92FB +#define GL_ARRAY_STRIDE 0x92FE +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_BLOCK_INDEX 0x92FD +#define GL_BUFFER 0x82E0 +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_COLOR_ENCODING 0x8296 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#define GL_COMPRESSED_RGB8_ETC2 0x9274 +#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 +#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 +#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 +#define GL_COMPRESSED_SRGB8_ETC2 0x9275 +#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 +#define GL_COMPUTE_LOCAL_WORK_SIZE 0x8267 +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_DISPLAY_LIST 0x82E7 +#define GL_FILTER 0x829A +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FULL_SUPPORT 0x82B7 +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_IS_PER_PATCH 0x92E7 +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_LOCATION 0x930E +#define GL_LOCATION_INDEX 0x930F +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_MATRIX_STRIDE 0x92FF +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#define GL_MAX_COMPUTE_LOCAL_INVOCATIONS 0x90EB +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE +#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_ELEMENT_INDEX 0x8D6B +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 +#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_UNIFORM_LOCATIONS 0x826E +#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA +#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_WIDTH 0x827E +#define GL_MIPMAP 0x8293 +#define GL_NAME_LENGTH 0x92F9 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_OFFSET 0x92FC +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_PROGRAM 0x82E2 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_QUERY 0x82E3 +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_SAMPLER 0x82E6 +#define GL_SHADER 0x82E1 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F +#define GL_TEXTURE_BUFFER_SIZE 0x919E +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_TYPE 0x92FA +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#define GL_VERTEX_BINDING_DIVISOR 0x82D6 +#define GL_VERTEX_BINDING_OFFSET 0x82D7 +#define GL_VERTEX_BINDING_STRIDE 0x82D8 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_VERTEX_TEXTURE 0x829B +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_8_BITS 0x82CB +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC +#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD +#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE +#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 + +#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F +#define GL_BUFFER_STORAGE_FLAGS 0x8220 +#define GL_CLEAR_TEXTURE 0x9365 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 +#define GL_CLIENT_STORAGE_BIT 0x0200 +#define GL_DYNAMIC_STORAGE_BIT 0x0100 +#define GL_LOCATION_COMPONENT 0x934A +#define GL_MAP_COHERENT_BIT 0x0080 +#define GL_MAP_PERSISTENT_BIT 0x0040 +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +extern void (CODEGEN_FUNCPTR *_ptrc_glTextureBarrierNV)(); +#define glTextureBarrierNV _ptrc_glTextureBarrierNV +#endif /*GL_NV_texture_barrier*/ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubDataNV)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); +#define glCopyImageSubDataNV _ptrc_glCopyImageSubDataNV +#endif /*GL_NV_copy_image*/ + +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFunc)(GLenum, GLenum); +#define glBlendFunc _ptrc_glBlendFunc +extern void (CODEGEN_FUNCPTR *_ptrc_glClear)(GLbitfield); +#define glClear _ptrc_glClear +extern void (CODEGEN_FUNCPTR *_ptrc_glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat); +#define glClearColor _ptrc_glClearColor +extern void (CODEGEN_FUNCPTR *_ptrc_glClearDepth)(GLdouble); +#define glClearDepth _ptrc_glClearDepth +extern void (CODEGEN_FUNCPTR *_ptrc_glClearStencil)(GLint); +#define glClearStencil _ptrc_glClearStencil +extern void (CODEGEN_FUNCPTR *_ptrc_glColorMask)(GLboolean, GLboolean, GLboolean, GLboolean); +#define glColorMask _ptrc_glColorMask +extern void (CODEGEN_FUNCPTR *_ptrc_glCullFace)(GLenum); +#define glCullFace _ptrc_glCullFace +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthFunc)(GLenum); +#define glDepthFunc _ptrc_glDepthFunc +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthMask)(GLboolean); +#define glDepthMask _ptrc_glDepthMask +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRange)(GLdouble, GLdouble); +#define glDepthRange _ptrc_glDepthRange +extern void (CODEGEN_FUNCPTR *_ptrc_glDisable)(GLenum); +#define glDisable _ptrc_glDisable +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffer)(GLenum); +#define glDrawBuffer _ptrc_glDrawBuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glEnable)(GLenum); +#define glEnable _ptrc_glEnable +extern void (CODEGEN_FUNCPTR *_ptrc_glFinish)(); +#define glFinish _ptrc_glFinish +extern void (CODEGEN_FUNCPTR *_ptrc_glFlush)(); +#define glFlush _ptrc_glFlush +extern void (CODEGEN_FUNCPTR *_ptrc_glFrontFace)(GLenum); +#define glFrontFace _ptrc_glFrontFace +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBooleanv)(GLenum, GLboolean *); +#define glGetBooleanv _ptrc_glGetBooleanv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetDoublev)(GLenum, GLdouble *); +#define glGetDoublev _ptrc_glGetDoublev +extern GLenum (CODEGEN_FUNCPTR *_ptrc_glGetError)(); +#define glGetError _ptrc_glGetError +extern void (CODEGEN_FUNCPTR *_ptrc_glGetFloatv)(GLenum, GLfloat *); +#define glGetFloatv _ptrc_glGetFloatv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetIntegerv)(GLenum, GLint *); +#define glGetIntegerv _ptrc_glGetIntegerv +extern const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetString)(GLenum); +#define glGetString _ptrc_glGetString +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *); +#define glGetTexImage _ptrc_glGetTexImage +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *); +#define glGetTexLevelParameterfv _ptrc_glGetTexLevelParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *); +#define glGetTexLevelParameteriv _ptrc_glGetTexLevelParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterfv)(GLenum, GLenum, GLfloat *); +#define glGetTexParameterfv _ptrc_glGetTexParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameteriv)(GLenum, GLenum, GLint *); +#define glGetTexParameteriv _ptrc_glGetTexParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glHint)(GLenum, GLenum); +#define glHint _ptrc_glHint +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabled)(GLenum); +#define glIsEnabled _ptrc_glIsEnabled +extern void (CODEGEN_FUNCPTR *_ptrc_glLineWidth)(GLfloat); +#define glLineWidth _ptrc_glLineWidth +extern void (CODEGEN_FUNCPTR *_ptrc_glLogicOp)(GLenum); +#define glLogicOp _ptrc_glLogicOp +extern void (CODEGEN_FUNCPTR *_ptrc_glPixelStoref)(GLenum, GLfloat); +#define glPixelStoref _ptrc_glPixelStoref +extern void (CODEGEN_FUNCPTR *_ptrc_glPixelStorei)(GLenum, GLint); +#define glPixelStorei _ptrc_glPixelStorei +extern void (CODEGEN_FUNCPTR *_ptrc_glPointSize)(GLfloat); +#define glPointSize _ptrc_glPointSize +extern void (CODEGEN_FUNCPTR *_ptrc_glPolygonMode)(GLenum, GLenum); +#define glPolygonMode _ptrc_glPolygonMode +extern void (CODEGEN_FUNCPTR *_ptrc_glReadBuffer)(GLenum); +#define glReadBuffer _ptrc_glReadBuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *); +#define glReadPixels _ptrc_glReadPixels +extern void (CODEGEN_FUNCPTR *_ptrc_glScissor)(GLint, GLint, GLsizei, GLsizei); +#define glScissor _ptrc_glScissor +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilFunc)(GLenum, GLint, GLuint); +#define glStencilFunc _ptrc_glStencilFunc +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilMask)(GLuint); +#define glStencilMask _ptrc_glStencilMask +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilOp)(GLenum, GLenum, GLenum); +#define glStencilOp _ptrc_glStencilOp +extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +#define glTexImage1D _ptrc_glTexImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +#define glTexImage2D _ptrc_glTexImage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterf)(GLenum, GLenum, GLfloat); +#define glTexParameterf _ptrc_glTexParameterf +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterfv)(GLenum, GLenum, const GLfloat *); +#define glTexParameterfv _ptrc_glTexParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameteri)(GLenum, GLenum, GLint); +#define glTexParameteri _ptrc_glTexParameteri +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameteriv)(GLenum, GLenum, const GLint *); +#define glTexParameteriv _ptrc_glTexParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glViewport)(GLint, GLint, GLsizei, GLsizei); +#define glViewport _ptrc_glViewport + +extern void (CODEGEN_FUNCPTR *_ptrc_glBindTexture)(GLenum, GLuint); +#define glBindTexture _ptrc_glBindTexture +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +#define glCopyTexImage1D _ptrc_glCopyTexImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +#define glCopyTexImage2D _ptrc_glCopyTexImage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei); +#define glCopyTexSubImage1D _ptrc_glCopyTexSubImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#define glCopyTexSubImage2D _ptrc_glCopyTexSubImage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteTextures)(GLsizei, const GLuint *); +#define glDeleteTextures _ptrc_glDeleteTextures +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArrays)(GLenum, GLint, GLsizei); +#define glDrawArrays _ptrc_glDrawArrays +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElements)(GLenum, GLsizei, GLenum, const GLvoid *); +#define glDrawElements _ptrc_glDrawElements +extern void (CODEGEN_FUNCPTR *_ptrc_glGenTextures)(GLsizei, GLuint *); +#define glGenTextures _ptrc_glGenTextures +extern void (CODEGEN_FUNCPTR *_ptrc_glGetPointerv)(GLenum, GLvoid **); +#define glGetPointerv _ptrc_glGetPointerv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTexture)(GLuint); +#define glIsTexture _ptrc_glIsTexture +extern void (CODEGEN_FUNCPTR *_ptrc_glPolygonOffset)(GLfloat, GLfloat); +#define glPolygonOffset _ptrc_glPolygonOffset +extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +#define glTexSubImage1D _ptrc_glTexSubImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#define glTexSubImage2D _ptrc_glTexSubImage2D + +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendColor)(GLfloat, GLfloat, GLfloat, GLfloat); +#define glBlendColor _ptrc_glBlendColor +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquation)(GLenum); +#define glBlendEquation _ptrc_glBlendEquation +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#define glCopyTexSubImage3D _ptrc_glCopyTexSubImage3D +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +#define glDrawRangeElements _ptrc_glDrawRangeElements +extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +#define glTexImage3D _ptrc_glTexImage3D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#define glTexSubImage3D _ptrc_glTexSubImage3D + +extern void (CODEGEN_FUNCPTR *_ptrc_glActiveTexture)(GLenum); +#define glActiveTexture _ptrc_glActiveTexture +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +#define glCompressedTexImage1D _ptrc_glCompressedTexImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +#define glCompressedTexImage2D _ptrc_glCompressedTexImage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +#define glCompressedTexImage3D _ptrc_glCompressedTexImage3D +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +#define glCompressedTexSubImage1D _ptrc_glCompressedTexSubImage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +#define glCompressedTexSubImage2D _ptrc_glCompressedTexSubImage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +#define glCompressedTexSubImage3D _ptrc_glCompressedTexSubImage3D +extern void (CODEGEN_FUNCPTR *_ptrc_glGetCompressedTexImage)(GLenum, GLint, GLvoid *); +#define glGetCompressedTexImage _ptrc_glGetCompressedTexImage +extern void (CODEGEN_FUNCPTR *_ptrc_glSampleCoverage)(GLfloat, GLboolean); +#define glSampleCoverage _ptrc_glSampleCoverage + +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparate)(GLenum, GLenum, GLenum, GLenum); +#define glBlendFuncSeparate _ptrc_glBlendFuncSeparate +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArrays)(GLenum, const GLint *, const GLsizei *, GLsizei); +#define glMultiDrawArrays _ptrc_glMultiDrawArrays +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElements)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei); +#define glMultiDrawElements _ptrc_glMultiDrawElements +extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameterf)(GLenum, GLfloat); +#define glPointParameterf _ptrc_glPointParameterf +extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameterfv)(GLenum, const GLfloat *); +#define glPointParameterfv _ptrc_glPointParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameteri)(GLenum, GLint); +#define glPointParameteri _ptrc_glPointParameteri +extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameteriv)(GLenum, const GLint *); +#define glPointParameteriv _ptrc_glPointParameteriv + +extern void (CODEGEN_FUNCPTR *_ptrc_glBeginQuery)(GLenum, GLuint); +#define glBeginQuery _ptrc_glBeginQuery +extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffer)(GLenum, GLuint); +#define glBindBuffer _ptrc_glBindBuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glBufferData)(GLenum, GLsizeiptr, const GLvoid *, GLenum); +#define glBufferData _ptrc_glBufferData +extern void (CODEGEN_FUNCPTR *_ptrc_glBufferSubData)(GLenum, GLintptr, GLsizeiptr, const GLvoid *); +#define glBufferSubData _ptrc_glBufferSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteBuffers)(GLsizei, const GLuint *); +#define glDeleteBuffers _ptrc_glDeleteBuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteQueries)(GLsizei, const GLuint *); +#define glDeleteQueries _ptrc_glDeleteQueries +extern void (CODEGEN_FUNCPTR *_ptrc_glEndQuery)(GLenum); +#define glEndQuery _ptrc_glEndQuery +extern void (CODEGEN_FUNCPTR *_ptrc_glGenBuffers)(GLsizei, GLuint *); +#define glGenBuffers _ptrc_glGenBuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glGenQueries)(GLsizei, GLuint *); +#define glGenQueries _ptrc_glGenQueries +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteriv)(GLenum, GLenum, GLint *); +#define glGetBufferParameteriv _ptrc_glGetBufferParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferPointerv)(GLenum, GLenum, GLvoid **); +#define glGetBufferPointerv _ptrc_glGetBufferPointerv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferSubData)(GLenum, GLintptr, GLsizeiptr, GLvoid *); +#define glGetBufferSubData _ptrc_glGetBufferSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectiv)(GLuint, GLenum, GLint *); +#define glGetQueryObjectiv _ptrc_glGetQueryObjectiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectuiv)(GLuint, GLenum, GLuint *); +#define glGetQueryObjectuiv _ptrc_glGetQueryObjectuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryiv)(GLenum, GLenum, GLint *); +#define glGetQueryiv _ptrc_glGetQueryiv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsBuffer)(GLuint); +#define glIsBuffer _ptrc_glIsBuffer +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsQuery)(GLuint); +#define glIsQuery _ptrc_glIsQuery +extern void * (CODEGEN_FUNCPTR *_ptrc_glMapBuffer)(GLenum, GLenum); +#define glMapBuffer _ptrc_glMapBuffer +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glUnmapBuffer)(GLenum); +#define glUnmapBuffer _ptrc_glUnmapBuffer + +extern void (CODEGEN_FUNCPTR *_ptrc_glAttachShader)(GLuint, GLuint); +#define glAttachShader _ptrc_glAttachShader +extern void (CODEGEN_FUNCPTR *_ptrc_glBindAttribLocation)(GLuint, GLuint, const GLchar *); +#define glBindAttribLocation _ptrc_glBindAttribLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparate)(GLenum, GLenum); +#define glBlendEquationSeparate _ptrc_glBlendEquationSeparate +extern void (CODEGEN_FUNCPTR *_ptrc_glCompileShader)(GLuint); +#define glCompileShader _ptrc_glCompileShader +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateProgram)(); +#define glCreateProgram _ptrc_glCreateProgram +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShader)(GLenum); +#define glCreateShader _ptrc_glCreateShader +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgram)(GLuint); +#define glDeleteProgram _ptrc_glDeleteProgram +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteShader)(GLuint); +#define glDeleteShader _ptrc_glDeleteShader +extern void (CODEGEN_FUNCPTR *_ptrc_glDetachShader)(GLuint, GLuint); +#define glDetachShader _ptrc_glDetachShader +extern void (CODEGEN_FUNCPTR *_ptrc_glDisableVertexAttribArray)(GLuint); +#define glDisableVertexAttribArray _ptrc_glDisableVertexAttribArray +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffers)(GLsizei, const GLenum *); +#define glDrawBuffers _ptrc_glDrawBuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glEnableVertexAttribArray)(GLuint); +#define glEnableVertexAttribArray _ptrc_glEnableVertexAttribArray +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAttrib)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +#define glGetActiveAttrib _ptrc_glGetActiveAttrib +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniform)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +#define glGetActiveUniform _ptrc_glGetActiveUniform +extern void (CODEGEN_FUNCPTR *_ptrc_glGetAttachedShaders)(GLuint, GLsizei, GLsizei *, GLuint *); +#define glGetAttachedShaders _ptrc_glGetAttachedShaders +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetAttribLocation)(GLuint, const GLchar *); +#define glGetAttribLocation _ptrc_glGetAttribLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetProgramInfoLog _ptrc_glGetProgramInfoLog +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramiv)(GLuint, GLenum, GLint *); +#define glGetProgramiv _ptrc_glGetProgramiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetShaderInfoLog _ptrc_glGetShaderInfoLog +extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetShaderSource _ptrc_glGetShaderSource +extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderiv)(GLuint, GLenum, GLint *); +#define glGetShaderiv _ptrc_glGetShaderiv +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetUniformLocation)(GLuint, const GLchar *); +#define glGetUniformLocation _ptrc_glGetUniformLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformfv)(GLuint, GLint, GLfloat *); +#define glGetUniformfv _ptrc_glGetUniformfv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformiv)(GLuint, GLint, GLint *); +#define glGetUniformiv _ptrc_glGetUniformiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribPointerv)(GLuint, GLenum, GLvoid **); +#define glGetVertexAttribPointerv _ptrc_glGetVertexAttribPointerv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribdv)(GLuint, GLenum, GLdouble *); +#define glGetVertexAttribdv _ptrc_glGetVertexAttribdv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribfv)(GLuint, GLenum, GLfloat *); +#define glGetVertexAttribfv _ptrc_glGetVertexAttribfv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribiv)(GLuint, GLenum, GLint *); +#define glGetVertexAttribiv _ptrc_glGetVertexAttribiv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgram)(GLuint); +#define glIsProgram _ptrc_glIsProgram +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsShader)(GLuint); +#define glIsShader _ptrc_glIsShader +extern void (CODEGEN_FUNCPTR *_ptrc_glLinkProgram)(GLuint); +#define glLinkProgram _ptrc_glLinkProgram +extern void (CODEGEN_FUNCPTR *_ptrc_glShaderSource)(GLuint, GLsizei, const GLchar *const*, const GLint *); +#define glShaderSource _ptrc_glShaderSource +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint); +#define glStencilFuncSeparate _ptrc_glStencilFuncSeparate +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilMaskSeparate)(GLenum, GLuint); +#define glStencilMaskSeparate _ptrc_glStencilMaskSeparate +extern void (CODEGEN_FUNCPTR *_ptrc_glStencilOpSeparate)(GLenum, GLenum, GLenum, GLenum); +#define glStencilOpSeparate _ptrc_glStencilOpSeparate +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1f)(GLint, GLfloat); +#define glUniform1f _ptrc_glUniform1f +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1fv)(GLint, GLsizei, const GLfloat *); +#define glUniform1fv _ptrc_glUniform1fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1i)(GLint, GLint); +#define glUniform1i _ptrc_glUniform1i +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1iv)(GLint, GLsizei, const GLint *); +#define glUniform1iv _ptrc_glUniform1iv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2f)(GLint, GLfloat, GLfloat); +#define glUniform2f _ptrc_glUniform2f +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2fv)(GLint, GLsizei, const GLfloat *); +#define glUniform2fv _ptrc_glUniform2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2i)(GLint, GLint, GLint); +#define glUniform2i _ptrc_glUniform2i +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2iv)(GLint, GLsizei, const GLint *); +#define glUniform2iv _ptrc_glUniform2iv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3f)(GLint, GLfloat, GLfloat, GLfloat); +#define glUniform3f _ptrc_glUniform3f +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3fv)(GLint, GLsizei, const GLfloat *); +#define glUniform3fv _ptrc_glUniform3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3i)(GLint, GLint, GLint, GLint); +#define glUniform3i _ptrc_glUniform3i +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3iv)(GLint, GLsizei, const GLint *); +#define glUniform3iv _ptrc_glUniform3iv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4f)(GLint, GLfloat, GLfloat, GLfloat, GLfloat); +#define glUniform4f _ptrc_glUniform4f +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4fv)(GLint, GLsizei, const GLfloat *); +#define glUniform4fv _ptrc_glUniform4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4i)(GLint, GLint, GLint, GLint, GLint); +#define glUniform4i _ptrc_glUniform4i +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4iv)(GLint, GLsizei, const GLint *); +#define glUniform4iv _ptrc_glUniform4iv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix2fv _ptrc_glUniformMatrix2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix3fv _ptrc_glUniformMatrix3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix4fv _ptrc_glUniformMatrix4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUseProgram)(GLuint); +#define glUseProgram _ptrc_glUseProgram +extern void (CODEGEN_FUNCPTR *_ptrc_glValidateProgram)(GLuint); +#define glValidateProgram _ptrc_glValidateProgram +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1d)(GLuint, GLdouble); +#define glVertexAttrib1d _ptrc_glVertexAttrib1d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1dv)(GLuint, const GLdouble *); +#define glVertexAttrib1dv _ptrc_glVertexAttrib1dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1f)(GLuint, GLfloat); +#define glVertexAttrib1f _ptrc_glVertexAttrib1f +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1fv)(GLuint, const GLfloat *); +#define glVertexAttrib1fv _ptrc_glVertexAttrib1fv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1s)(GLuint, GLshort); +#define glVertexAttrib1s _ptrc_glVertexAttrib1s +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1sv)(GLuint, const GLshort *); +#define glVertexAttrib1sv _ptrc_glVertexAttrib1sv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2d)(GLuint, GLdouble, GLdouble); +#define glVertexAttrib2d _ptrc_glVertexAttrib2d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2dv)(GLuint, const GLdouble *); +#define glVertexAttrib2dv _ptrc_glVertexAttrib2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2f)(GLuint, GLfloat, GLfloat); +#define glVertexAttrib2f _ptrc_glVertexAttrib2f +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2fv)(GLuint, const GLfloat *); +#define glVertexAttrib2fv _ptrc_glVertexAttrib2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2s)(GLuint, GLshort, GLshort); +#define glVertexAttrib2s _ptrc_glVertexAttrib2s +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2sv)(GLuint, const GLshort *); +#define glVertexAttrib2sv _ptrc_glVertexAttrib2sv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3d)(GLuint, GLdouble, GLdouble, GLdouble); +#define glVertexAttrib3d _ptrc_glVertexAttrib3d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3dv)(GLuint, const GLdouble *); +#define glVertexAttrib3dv _ptrc_glVertexAttrib3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3f)(GLuint, GLfloat, GLfloat, GLfloat); +#define glVertexAttrib3f _ptrc_glVertexAttrib3f +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3fv)(GLuint, const GLfloat *); +#define glVertexAttrib3fv _ptrc_glVertexAttrib3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3s)(GLuint, GLshort, GLshort, GLshort); +#define glVertexAttrib3s _ptrc_glVertexAttrib3s +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3sv)(GLuint, const GLshort *); +#define glVertexAttrib3sv _ptrc_glVertexAttrib3sv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nbv)(GLuint, const GLbyte *); +#define glVertexAttrib4Nbv _ptrc_glVertexAttrib4Nbv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Niv)(GLuint, const GLint *); +#define glVertexAttrib4Niv _ptrc_glVertexAttrib4Niv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nsv)(GLuint, const GLshort *); +#define glVertexAttrib4Nsv _ptrc_glVertexAttrib4Nsv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nub)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +#define glVertexAttrib4Nub _ptrc_glVertexAttrib4Nub +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nubv)(GLuint, const GLubyte *); +#define glVertexAttrib4Nubv _ptrc_glVertexAttrib4Nubv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nuiv)(GLuint, const GLuint *); +#define glVertexAttrib4Nuiv _ptrc_glVertexAttrib4Nuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nusv)(GLuint, const GLushort *); +#define glVertexAttrib4Nusv _ptrc_glVertexAttrib4Nusv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4bv)(GLuint, const GLbyte *); +#define glVertexAttrib4bv _ptrc_glVertexAttrib4bv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +#define glVertexAttrib4d _ptrc_glVertexAttrib4d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4dv)(GLuint, const GLdouble *); +#define glVertexAttrib4dv _ptrc_glVertexAttrib4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4f)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +#define glVertexAttrib4f _ptrc_glVertexAttrib4f +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4fv)(GLuint, const GLfloat *); +#define glVertexAttrib4fv _ptrc_glVertexAttrib4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4iv)(GLuint, const GLint *); +#define glVertexAttrib4iv _ptrc_glVertexAttrib4iv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4s)(GLuint, GLshort, GLshort, GLshort, GLshort); +#define glVertexAttrib4s _ptrc_glVertexAttrib4s +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4sv)(GLuint, const GLshort *); +#define glVertexAttrib4sv _ptrc_glVertexAttrib4sv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4ubv)(GLuint, const GLubyte *); +#define glVertexAttrib4ubv _ptrc_glVertexAttrib4ubv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4uiv)(GLuint, const GLuint *); +#define glVertexAttrib4uiv _ptrc_glVertexAttrib4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4usv)(GLuint, const GLushort *); +#define glVertexAttrib4usv _ptrc_glVertexAttrib4usv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +#define glVertexAttribPointer _ptrc_glVertexAttribPointer + +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix2x3fv _ptrc_glUniformMatrix2x3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix2x4fv _ptrc_glUniformMatrix2x4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix3x2fv _ptrc_glUniformMatrix3x2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix3x4fv _ptrc_glUniformMatrix3x4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix4x2fv _ptrc_glUniformMatrix4x2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *); +#define glUniformMatrix4x3fv _ptrc_glUniformMatrix4x3fv + +extern void (CODEGEN_FUNCPTR *_ptrc_glBeginConditionalRender)(GLuint, GLenum); +#define glBeginConditionalRender _ptrc_glBeginConditionalRender +extern void (CODEGEN_FUNCPTR *_ptrc_glBeginTransformFeedback)(GLenum); +#define glBeginTransformFeedback _ptrc_glBeginTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glBindBufferBase)(GLenum, GLuint, GLuint); +#define glBindBufferBase _ptrc_glBindBufferBase +extern void (CODEGEN_FUNCPTR *_ptrc_glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +#define glBindBufferRange _ptrc_glBindBufferRange +extern void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocation)(GLuint, GLuint, const GLchar *); +#define glBindFragDataLocation _ptrc_glBindFragDataLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glBindFramebuffer)(GLenum, GLuint); +#define glBindFramebuffer _ptrc_glBindFramebuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glBindRenderbuffer)(GLenum, GLuint); +#define glBindRenderbuffer _ptrc_glBindRenderbuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexArray)(GLuint); +#define glBindVertexArray _ptrc_glBindVertexArray +extern void (CODEGEN_FUNCPTR *_ptrc_glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +#define glBlitFramebuffer _ptrc_glBlitFramebuffer +extern GLenum (CODEGEN_FUNCPTR *_ptrc_glCheckFramebufferStatus)(GLenum); +#define glCheckFramebufferStatus _ptrc_glCheckFramebufferStatus +extern void (CODEGEN_FUNCPTR *_ptrc_glClampColor)(GLenum, GLenum); +#define glClampColor _ptrc_glClampColor +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfi)(GLenum, GLint, GLfloat, GLint); +#define glClearBufferfi _ptrc_glClearBufferfi +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfv)(GLenum, GLint, const GLfloat *); +#define glClearBufferfv _ptrc_glClearBufferfv +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferiv)(GLenum, GLint, const GLint *); +#define glClearBufferiv _ptrc_glClearBufferiv +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferuiv)(GLenum, GLint, const GLuint *); +#define glClearBufferuiv _ptrc_glClearBufferuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glColorMaski)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +#define glColorMaski _ptrc_glColorMaski +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteFramebuffers)(GLsizei, const GLuint *); +#define glDeleteFramebuffers _ptrc_glDeleteFramebuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteRenderbuffers)(GLsizei, const GLuint *); +#define glDeleteRenderbuffers _ptrc_glDeleteRenderbuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteVertexArrays)(GLsizei, const GLuint *); +#define glDeleteVertexArrays _ptrc_glDeleteVertexArrays +extern void (CODEGEN_FUNCPTR *_ptrc_glDisablei)(GLenum, GLuint); +#define glDisablei _ptrc_glDisablei +extern void (CODEGEN_FUNCPTR *_ptrc_glEnablei)(GLenum, GLuint); +#define glEnablei _ptrc_glEnablei +extern void (CODEGEN_FUNCPTR *_ptrc_glEndConditionalRender)(); +#define glEndConditionalRender _ptrc_glEndConditionalRender +extern void (CODEGEN_FUNCPTR *_ptrc_glEndTransformFeedback)(); +#define glEndTransformFeedback _ptrc_glEndTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr); +#define glFlushMappedBufferRange _ptrc_glFlushMappedBufferRange +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint); +#define glFramebufferRenderbuffer _ptrc_glFramebufferRenderbuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint); +#define glFramebufferTexture1D _ptrc_glFramebufferTexture1D +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint); +#define glFramebufferTexture2D _ptrc_glFramebufferTexture2D +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint); +#define glFramebufferTexture3D _ptrc_glFramebufferTexture3D +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint); +#define glFramebufferTextureLayer _ptrc_glFramebufferTextureLayer +extern void (CODEGEN_FUNCPTR *_ptrc_glGenFramebuffers)(GLsizei, GLuint *); +#define glGenFramebuffers _ptrc_glGenFramebuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glGenRenderbuffers)(GLsizei, GLuint *); +#define glGenRenderbuffers _ptrc_glGenRenderbuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glGenVertexArrays)(GLsizei, GLuint *); +#define glGenVertexArrays _ptrc_glGenVertexArrays +extern void (CODEGEN_FUNCPTR *_ptrc_glGenerateMipmap)(GLenum); +#define glGenerateMipmap _ptrc_glGenerateMipmap +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBooleani_v)(GLenum, GLuint, GLboolean *); +#define glGetBooleani_v _ptrc_glGetBooleani_v +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataLocation)(GLuint, const GLchar *); +#define glGetFragDataLocation _ptrc_glGetFragDataLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *); +#define glGetFramebufferAttachmentParameteriv _ptrc_glGetFramebufferAttachmentParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetIntegeri_v)(GLenum, GLuint, GLint *); +#define glGetIntegeri_v _ptrc_glGetIntegeri_v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *); +#define glGetRenderbufferParameteriv _ptrc_glGetRenderbufferParameteriv +extern const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetStringi)(GLenum, GLuint); +#define glGetStringi _ptrc_glGetStringi +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIiv)(GLenum, GLenum, GLint *); +#define glGetTexParameterIiv _ptrc_glGetTexParameterIiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIuiv)(GLenum, GLenum, GLuint *); +#define glGetTexParameterIuiv _ptrc_glGetTexParameterIuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +#define glGetTransformFeedbackVarying _ptrc_glGetTransformFeedbackVarying +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformuiv)(GLuint, GLint, GLuint *); +#define glGetUniformuiv _ptrc_glGetUniformuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIiv)(GLuint, GLenum, GLint *); +#define glGetVertexAttribIiv _ptrc_glGetVertexAttribIiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *); +#define glGetVertexAttribIuiv _ptrc_glGetVertexAttribIuiv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabledi)(GLenum, GLuint); +#define glIsEnabledi _ptrc_glIsEnabledi +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsFramebuffer)(GLuint); +#define glIsFramebuffer _ptrc_glIsFramebuffer +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsRenderbuffer)(GLuint); +#define glIsRenderbuffer _ptrc_glIsRenderbuffer +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsVertexArray)(GLuint); +#define glIsVertexArray _ptrc_glIsVertexArray +extern void * (CODEGEN_FUNCPTR *_ptrc_glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield); +#define glMapBufferRange _ptrc_glMapBufferRange +extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei); +#define glRenderbufferStorage _ptrc_glRenderbufferStorage +extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); +#define glRenderbufferStorageMultisample _ptrc_glRenderbufferStorageMultisample +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIiv)(GLenum, GLenum, const GLint *); +#define glTexParameterIiv _ptrc_glTexParameterIiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIuiv)(GLenum, GLenum, const GLuint *); +#define glTexParameterIuiv _ptrc_glTexParameterIuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar *const*, GLenum); +#define glTransformFeedbackVaryings _ptrc_glTransformFeedbackVaryings +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1ui)(GLint, GLuint); +#define glUniform1ui _ptrc_glUniform1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1uiv)(GLint, GLsizei, const GLuint *); +#define glUniform1uiv _ptrc_glUniform1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2ui)(GLint, GLuint, GLuint); +#define glUniform2ui _ptrc_glUniform2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2uiv)(GLint, GLsizei, const GLuint *); +#define glUniform2uiv _ptrc_glUniform2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3ui)(GLint, GLuint, GLuint, GLuint); +#define glUniform3ui _ptrc_glUniform3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3uiv)(GLint, GLsizei, const GLuint *); +#define glUniform3uiv _ptrc_glUniform3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint); +#define glUniform4ui _ptrc_glUniform4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4uiv)(GLint, GLsizei, const GLuint *); +#define glUniform4uiv _ptrc_glUniform4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1i)(GLuint, GLint); +#define glVertexAttribI1i _ptrc_glVertexAttribI1i +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1iv)(GLuint, const GLint *); +#define glVertexAttribI1iv _ptrc_glVertexAttribI1iv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1ui)(GLuint, GLuint); +#define glVertexAttribI1ui _ptrc_glVertexAttribI1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1uiv)(GLuint, const GLuint *); +#define glVertexAttribI1uiv _ptrc_glVertexAttribI1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2i)(GLuint, GLint, GLint); +#define glVertexAttribI2i _ptrc_glVertexAttribI2i +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2iv)(GLuint, const GLint *); +#define glVertexAttribI2iv _ptrc_glVertexAttribI2iv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2ui)(GLuint, GLuint, GLuint); +#define glVertexAttribI2ui _ptrc_glVertexAttribI2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2uiv)(GLuint, const GLuint *); +#define glVertexAttribI2uiv _ptrc_glVertexAttribI2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3i)(GLuint, GLint, GLint, GLint); +#define glVertexAttribI3i _ptrc_glVertexAttribI3i +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3iv)(GLuint, const GLint *); +#define glVertexAttribI3iv _ptrc_glVertexAttribI3iv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3ui)(GLuint, GLuint, GLuint, GLuint); +#define glVertexAttribI3ui _ptrc_glVertexAttribI3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3uiv)(GLuint, const GLuint *); +#define glVertexAttribI3uiv _ptrc_glVertexAttribI3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4bv)(GLuint, const GLbyte *); +#define glVertexAttribI4bv _ptrc_glVertexAttribI4bv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint); +#define glVertexAttribI4i _ptrc_glVertexAttribI4i +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4iv)(GLuint, const GLint *); +#define glVertexAttribI4iv _ptrc_glVertexAttribI4iv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4sv)(GLuint, const GLshort *); +#define glVertexAttribI4sv _ptrc_glVertexAttribI4sv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ubv)(GLuint, const GLubyte *); +#define glVertexAttribI4ubv _ptrc_glVertexAttribI4ubv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint); +#define glVertexAttribI4ui _ptrc_glVertexAttribI4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4uiv)(GLuint, const GLuint *); +#define glVertexAttribI4uiv _ptrc_glVertexAttribI4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4usv)(GLuint, const GLushort *); +#define glVertexAttribI4usv _ptrc_glVertexAttribI4usv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *); +#define glVertexAttribIPointer _ptrc_glVertexAttribIPointer + +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr); +#define glCopyBufferSubData _ptrc_glCopyBufferSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei); +#define glDrawArraysInstanced _ptrc_glDrawArraysInstanced +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#define glDrawElementsInstanced _ptrc_glDrawElementsInstanced +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetActiveUniformBlockName _ptrc_glGetActiveUniformBlockName +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *); +#define glGetActiveUniformBlockiv _ptrc_glGetActiveUniformBlockiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetActiveUniformName _ptrc_glGetActiveUniformName +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *); +#define glGetActiveUniformsiv _ptrc_glGetActiveUniformsiv +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetUniformBlockIndex)(GLuint, const GLchar *); +#define glGetUniformBlockIndex _ptrc_glGetUniformBlockIndex +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformIndices)(GLuint, GLsizei, const GLchar *const*, GLuint *); +#define glGetUniformIndices _ptrc_glGetUniformIndices +extern void (CODEGEN_FUNCPTR *_ptrc_glPrimitiveRestartIndex)(GLuint); +#define glPrimitiveRestartIndex _ptrc_glPrimitiveRestartIndex +extern void (CODEGEN_FUNCPTR *_ptrc_glTexBuffer)(GLenum, GLenum, GLuint); +#define glTexBuffer _ptrc_glTexBuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformBlockBinding)(GLuint, GLuint, GLuint); +#define glUniformBlockBinding _ptrc_glUniformBlockBinding + +extern GLenum (CODEGEN_FUNCPTR *_ptrc_glClientWaitSync)(GLsync, GLbitfield, GLuint64); +#define glClientWaitSync _ptrc_glClientWaitSync +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteSync)(GLsync); +#define glDeleteSync _ptrc_glDeleteSync +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLint); +#define glDrawElementsBaseVertex _ptrc_glDrawElementsBaseVertex +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint); +#define glDrawElementsInstancedBaseVertex _ptrc_glDrawElementsInstancedBaseVertex +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElementsBaseVertex)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint); +#define glDrawRangeElementsBaseVertex _ptrc_glDrawRangeElementsBaseVertex +extern GLsync (CODEGEN_FUNCPTR *_ptrc_glFenceSync)(GLenum, GLbitfield); +#define glFenceSync _ptrc_glFenceSync +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture)(GLenum, GLenum, GLuint, GLint); +#define glFramebufferTexture _ptrc_glFramebufferTexture +extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *); +#define glGetBufferParameteri64v _ptrc_glGetBufferParameteri64v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64i_v)(GLenum, GLuint, GLint64 *); +#define glGetInteger64i_v _ptrc_glGetInteger64i_v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64v)(GLenum, GLint64 *); +#define glGetInteger64v _ptrc_glGetInteger64v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetMultisamplefv)(GLenum, GLuint, GLfloat *); +#define glGetMultisamplefv _ptrc_glGetMultisamplefv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *); +#define glGetSynciv _ptrc_glGetSynciv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSync)(GLsync); +#define glIsSync _ptrc_glIsSync +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsBaseVertex)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *); +#define glMultiDrawElementsBaseVertex _ptrc_glMultiDrawElementsBaseVertex +extern void (CODEGEN_FUNCPTR *_ptrc_glProvokingVertex)(GLenum); +#define glProvokingVertex _ptrc_glProvokingVertex +extern void (CODEGEN_FUNCPTR *_ptrc_glSampleMaski)(GLuint, GLbitfield); +#define glSampleMaski _ptrc_glSampleMaski +extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage2DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean); +#define glTexImage2DMultisample _ptrc_glTexImage2DMultisample +extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage3DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean); +#define glTexImage3DMultisample _ptrc_glTexImage3DMultisample +extern void (CODEGEN_FUNCPTR *_ptrc_glWaitSync)(GLsync, GLbitfield, GLuint64); +#define glWaitSync _ptrc_glWaitSync + +extern void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocationIndexed)(GLuint, GLuint, GLuint, const GLchar *); +#define glBindFragDataLocationIndexed _ptrc_glBindFragDataLocationIndexed +extern void (CODEGEN_FUNCPTR *_ptrc_glBindSampler)(GLuint, GLuint); +#define glBindSampler _ptrc_glBindSampler +extern void (CODEGEN_FUNCPTR *_ptrc_glColorP3ui)(GLenum, GLuint); +#define glColorP3ui _ptrc_glColorP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glColorP3uiv)(GLenum, const GLuint *); +#define glColorP3uiv _ptrc_glColorP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glColorP4ui)(GLenum, GLuint); +#define glColorP4ui _ptrc_glColorP4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glColorP4uiv)(GLenum, const GLuint *); +#define glColorP4uiv _ptrc_glColorP4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteSamplers)(GLsizei, const GLuint *); +#define glDeleteSamplers _ptrc_glDeleteSamplers +extern void (CODEGEN_FUNCPTR *_ptrc_glGenSamplers)(GLsizei, GLuint *); +#define glGenSamplers _ptrc_glGenSamplers +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataIndex)(GLuint, const GLchar *); +#define glGetFragDataIndex _ptrc_glGetFragDataIndex +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjecti64v)(GLuint, GLenum, GLint64 *); +#define glGetQueryObjecti64v _ptrc_glGetQueryObjecti64v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectui64v)(GLuint, GLenum, GLuint64 *); +#define glGetQueryObjectui64v _ptrc_glGetQueryObjectui64v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIiv)(GLuint, GLenum, GLint *); +#define glGetSamplerParameterIiv _ptrc_glGetSamplerParameterIiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIuiv)(GLuint, GLenum, GLuint *); +#define glGetSamplerParameterIuiv _ptrc_glGetSamplerParameterIuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *); +#define glGetSamplerParameterfv _ptrc_glGetSamplerParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameteriv)(GLuint, GLenum, GLint *); +#define glGetSamplerParameteriv _ptrc_glGetSamplerParameteriv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSampler)(GLuint); +#define glIsSampler _ptrc_glIsSampler +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1ui)(GLenum, GLenum, GLuint); +#define glMultiTexCoordP1ui _ptrc_glMultiTexCoordP1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1uiv)(GLenum, GLenum, const GLuint *); +#define glMultiTexCoordP1uiv _ptrc_glMultiTexCoordP1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2ui)(GLenum, GLenum, GLuint); +#define glMultiTexCoordP2ui _ptrc_glMultiTexCoordP2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2uiv)(GLenum, GLenum, const GLuint *); +#define glMultiTexCoordP2uiv _ptrc_glMultiTexCoordP2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3ui)(GLenum, GLenum, GLuint); +#define glMultiTexCoordP3ui _ptrc_glMultiTexCoordP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3uiv)(GLenum, GLenum, const GLuint *); +#define glMultiTexCoordP3uiv _ptrc_glMultiTexCoordP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4ui)(GLenum, GLenum, GLuint); +#define glMultiTexCoordP4ui _ptrc_glMultiTexCoordP4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4uiv)(GLenum, GLenum, const GLuint *); +#define glMultiTexCoordP4uiv _ptrc_glMultiTexCoordP4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glNormalP3ui)(GLenum, GLuint); +#define glNormalP3ui _ptrc_glNormalP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glNormalP3uiv)(GLenum, const GLuint *); +#define glNormalP3uiv _ptrc_glNormalP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glQueryCounter)(GLuint, GLenum); +#define glQueryCounter _ptrc_glQueryCounter +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIiv)(GLuint, GLenum, const GLint *); +#define glSamplerParameterIiv _ptrc_glSamplerParameterIiv +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIuiv)(GLuint, GLenum, const GLuint *); +#define glSamplerParameterIuiv _ptrc_glSamplerParameterIuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterf)(GLuint, GLenum, GLfloat); +#define glSamplerParameterf _ptrc_glSamplerParameterf +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterfv)(GLuint, GLenum, const GLfloat *); +#define glSamplerParameterfv _ptrc_glSamplerParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteri)(GLuint, GLenum, GLint); +#define glSamplerParameteri _ptrc_glSamplerParameteri +extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteriv)(GLuint, GLenum, const GLint *); +#define glSamplerParameteriv _ptrc_glSamplerParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3ui)(GLenum, GLuint); +#define glSecondaryColorP3ui _ptrc_glSecondaryColorP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3uiv)(GLenum, const GLuint *); +#define glSecondaryColorP3uiv _ptrc_glSecondaryColorP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1ui)(GLenum, GLuint); +#define glTexCoordP1ui _ptrc_glTexCoordP1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1uiv)(GLenum, const GLuint *); +#define glTexCoordP1uiv _ptrc_glTexCoordP1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2ui)(GLenum, GLuint); +#define glTexCoordP2ui _ptrc_glTexCoordP2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2uiv)(GLenum, const GLuint *); +#define glTexCoordP2uiv _ptrc_glTexCoordP2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3ui)(GLenum, GLuint); +#define glTexCoordP3ui _ptrc_glTexCoordP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3uiv)(GLenum, const GLuint *); +#define glTexCoordP3uiv _ptrc_glTexCoordP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4ui)(GLenum, GLuint); +#define glTexCoordP4ui _ptrc_glTexCoordP4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4uiv)(GLenum, const GLuint *); +#define glTexCoordP4uiv _ptrc_glTexCoordP4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribDivisor)(GLuint, GLuint); +#define glVertexAttribDivisor _ptrc_glVertexAttribDivisor +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1ui)(GLuint, GLenum, GLboolean, GLuint); +#define glVertexAttribP1ui _ptrc_glVertexAttribP1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1uiv)(GLuint, GLenum, GLboolean, const GLuint *); +#define glVertexAttribP1uiv _ptrc_glVertexAttribP1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2ui)(GLuint, GLenum, GLboolean, GLuint); +#define glVertexAttribP2ui _ptrc_glVertexAttribP2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2uiv)(GLuint, GLenum, GLboolean, const GLuint *); +#define glVertexAttribP2uiv _ptrc_glVertexAttribP2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3ui)(GLuint, GLenum, GLboolean, GLuint); +#define glVertexAttribP3ui _ptrc_glVertexAttribP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3uiv)(GLuint, GLenum, GLboolean, const GLuint *); +#define glVertexAttribP3uiv _ptrc_glVertexAttribP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4ui)(GLuint, GLenum, GLboolean, GLuint); +#define glVertexAttribP4ui _ptrc_glVertexAttribP4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4uiv)(GLuint, GLenum, GLboolean, const GLuint *); +#define glVertexAttribP4uiv _ptrc_glVertexAttribP4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP2ui)(GLenum, GLuint); +#define glVertexP2ui _ptrc_glVertexP2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP2uiv)(GLenum, const GLuint *); +#define glVertexP2uiv _ptrc_glVertexP2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP3ui)(GLenum, GLuint); +#define glVertexP3ui _ptrc_glVertexP3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP3uiv)(GLenum, const GLuint *); +#define glVertexP3uiv _ptrc_glVertexP3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP4ui)(GLenum, GLuint); +#define glVertexP4ui _ptrc_glVertexP4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP4uiv)(GLenum, const GLuint *); +#define glVertexP4uiv _ptrc_glVertexP4uiv + +extern void (CODEGEN_FUNCPTR *_ptrc_glBeginQueryIndexed)(GLenum, GLuint, GLuint); +#define glBeginQueryIndexed _ptrc_glBeginQueryIndexed +extern void (CODEGEN_FUNCPTR *_ptrc_glBindTransformFeedback)(GLenum, GLuint); +#define glBindTransformFeedback _ptrc_glBindTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparatei)(GLuint, GLenum, GLenum); +#define glBlendEquationSeparatei _ptrc_glBlendEquationSeparatei +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationi)(GLuint, GLenum); +#define glBlendEquationi _ptrc_glBlendEquationi +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparatei)(GLuint, GLenum, GLenum, GLenum, GLenum); +#define glBlendFuncSeparatei _ptrc_glBlendFuncSeparatei +extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFunci)(GLuint, GLenum, GLenum); +#define glBlendFunci _ptrc_glBlendFunci +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteTransformFeedbacks)(GLsizei, const GLuint *); +#define glDeleteTransformFeedbacks _ptrc_glDeleteTransformFeedbacks +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysIndirect)(GLenum, const GLvoid *); +#define glDrawArraysIndirect _ptrc_glDrawArraysIndirect +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsIndirect)(GLenum, GLenum, const GLvoid *); +#define glDrawElementsIndirect _ptrc_glDrawElementsIndirect +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedback)(GLenum, GLuint); +#define glDrawTransformFeedback _ptrc_glDrawTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStream)(GLenum, GLuint, GLuint); +#define glDrawTransformFeedbackStream _ptrc_glDrawTransformFeedbackStream +extern void (CODEGEN_FUNCPTR *_ptrc_glEndQueryIndexed)(GLenum, GLuint); +#define glEndQueryIndexed _ptrc_glEndQueryIndexed +extern void (CODEGEN_FUNCPTR *_ptrc_glGenTransformFeedbacks)(GLsizei, GLuint *); +#define glGenTransformFeedbacks _ptrc_glGenTransformFeedbacks +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetActiveSubroutineName _ptrc_glGetActiveSubroutineName +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetActiveSubroutineUniformName _ptrc_glGetActiveSubroutineUniformName +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformiv)(GLuint, GLenum, GLuint, GLenum, GLint *); +#define glGetActiveSubroutineUniformiv _ptrc_glGetActiveSubroutineUniformiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramStageiv)(GLuint, GLenum, GLenum, GLint *); +#define glGetProgramStageiv _ptrc_glGetProgramStageiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryIndexediv)(GLenum, GLuint, GLenum, GLint *); +#define glGetQueryIndexediv _ptrc_glGetQueryIndexediv +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineIndex)(GLuint, GLenum, const GLchar *); +#define glGetSubroutineIndex _ptrc_glGetSubroutineIndex +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineUniformLocation)(GLuint, GLenum, const GLchar *); +#define glGetSubroutineUniformLocation _ptrc_glGetSubroutineUniformLocation +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformSubroutineuiv)(GLenum, GLint, GLuint *); +#define glGetUniformSubroutineuiv _ptrc_glGetUniformSubroutineuiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformdv)(GLuint, GLint, GLdouble *); +#define glGetUniformdv _ptrc_glGetUniformdv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTransformFeedback)(GLuint); +#define glIsTransformFeedback _ptrc_glIsTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glMinSampleShading)(GLfloat); +#define glMinSampleShading _ptrc_glMinSampleShading +extern void (CODEGEN_FUNCPTR *_ptrc_glPatchParameterfv)(GLenum, const GLfloat *); +#define glPatchParameterfv _ptrc_glPatchParameterfv +extern void (CODEGEN_FUNCPTR *_ptrc_glPatchParameteri)(GLenum, GLint); +#define glPatchParameteri _ptrc_glPatchParameteri +extern void (CODEGEN_FUNCPTR *_ptrc_glPauseTransformFeedback)(); +#define glPauseTransformFeedback _ptrc_glPauseTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glResumeTransformFeedback)(); +#define glResumeTransformFeedback _ptrc_glResumeTransformFeedback +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1d)(GLint, GLdouble); +#define glUniform1d _ptrc_glUniform1d +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1dv)(GLint, GLsizei, const GLdouble *); +#define glUniform1dv _ptrc_glUniform1dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2d)(GLint, GLdouble, GLdouble); +#define glUniform2d _ptrc_glUniform2d +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2dv)(GLint, GLsizei, const GLdouble *); +#define glUniform2dv _ptrc_glUniform2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3d)(GLint, GLdouble, GLdouble, GLdouble); +#define glUniform3d _ptrc_glUniform3d +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3dv)(GLint, GLsizei, const GLdouble *); +#define glUniform3dv _ptrc_glUniform3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4d)(GLint, GLdouble, GLdouble, GLdouble, GLdouble); +#define glUniform4d _ptrc_glUniform4d +extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4dv)(GLint, GLsizei, const GLdouble *); +#define glUniform4dv _ptrc_glUniform4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix2dv _ptrc_glUniformMatrix2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix2x3dv _ptrc_glUniformMatrix2x3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix2x4dv _ptrc_glUniformMatrix2x4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix3dv _ptrc_glUniformMatrix3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix3x2dv _ptrc_glUniformMatrix3x2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix3x4dv _ptrc_glUniformMatrix3x4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix4dv _ptrc_glUniformMatrix4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix4x2dv _ptrc_glUniformMatrix4x2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3dv)(GLint, GLsizei, GLboolean, const GLdouble *); +#define glUniformMatrix4x3dv _ptrc_glUniformMatrix4x3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glUniformSubroutinesuiv)(GLenum, GLsizei, const GLuint *); +#define glUniformSubroutinesuiv _ptrc_glUniformSubroutinesuiv + +extern void (CODEGEN_FUNCPTR *_ptrc_glActiveShaderProgram)(GLuint, GLuint); +#define glActiveShaderProgram _ptrc_glActiveShaderProgram +extern void (CODEGEN_FUNCPTR *_ptrc_glBindProgramPipeline)(GLuint); +#define glBindProgramPipeline _ptrc_glBindProgramPipeline +extern void (CODEGEN_FUNCPTR *_ptrc_glClearDepthf)(GLfloat); +#define glClearDepthf _ptrc_glClearDepthf +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShaderProgramv)(GLenum, GLsizei, const GLchar *const*); +#define glCreateShaderProgramv _ptrc_glCreateShaderProgramv +extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgramPipelines)(GLsizei, const GLuint *); +#define glDeleteProgramPipelines _ptrc_glDeleteProgramPipelines +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeArrayv)(GLuint, GLsizei, const GLdouble *); +#define glDepthRangeArrayv _ptrc_glDepthRangeArrayv +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeIndexed)(GLuint, GLdouble, GLdouble); +#define glDepthRangeIndexed _ptrc_glDepthRangeIndexed +extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangef)(GLfloat, GLfloat); +#define glDepthRangef _ptrc_glDepthRangef +extern void (CODEGEN_FUNCPTR *_ptrc_glGenProgramPipelines)(GLsizei, GLuint *); +#define glGenProgramPipelines _ptrc_glGenProgramPipelines +extern void (CODEGEN_FUNCPTR *_ptrc_glGetDoublei_v)(GLenum, GLuint, GLdouble *); +#define glGetDoublei_v _ptrc_glGetDoublei_v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetFloati_v)(GLenum, GLuint, GLfloat *); +#define glGetFloati_v _ptrc_glGetFloati_v +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *); +#define glGetProgramBinary _ptrc_glGetProgramBinary +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetProgramPipelineInfoLog _ptrc_glGetProgramPipelineInfoLog +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineiv)(GLuint, GLenum, GLint *); +#define glGetProgramPipelineiv _ptrc_glGetProgramPipelineiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *); +#define glGetShaderPrecisionFormat _ptrc_glGetShaderPrecisionFormat +extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribLdv)(GLuint, GLenum, GLdouble *); +#define glGetVertexAttribLdv _ptrc_glGetVertexAttribLdv +extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgramPipeline)(GLuint); +#define glIsProgramPipeline _ptrc_glIsProgramPipeline +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei); +#define glProgramBinary _ptrc_glProgramBinary +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramParameteri)(GLuint, GLenum, GLint); +#define glProgramParameteri _ptrc_glProgramParameteri +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1d)(GLuint, GLint, GLdouble); +#define glProgramUniform1d _ptrc_glProgramUniform1d +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1dv)(GLuint, GLint, GLsizei, const GLdouble *); +#define glProgramUniform1dv _ptrc_glProgramUniform1dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1f)(GLuint, GLint, GLfloat); +#define glProgramUniform1f _ptrc_glProgramUniform1f +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1fv)(GLuint, GLint, GLsizei, const GLfloat *); +#define glProgramUniform1fv _ptrc_glProgramUniform1fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1i)(GLuint, GLint, GLint); +#define glProgramUniform1i _ptrc_glProgramUniform1i +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1iv)(GLuint, GLint, GLsizei, const GLint *); +#define glProgramUniform1iv _ptrc_glProgramUniform1iv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1ui)(GLuint, GLint, GLuint); +#define glProgramUniform1ui _ptrc_glProgramUniform1ui +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1uiv)(GLuint, GLint, GLsizei, const GLuint *); +#define glProgramUniform1uiv _ptrc_glProgramUniform1uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2d)(GLuint, GLint, GLdouble, GLdouble); +#define glProgramUniform2d _ptrc_glProgramUniform2d +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2dv)(GLuint, GLint, GLsizei, const GLdouble *); +#define glProgramUniform2dv _ptrc_glProgramUniform2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2f)(GLuint, GLint, GLfloat, GLfloat); +#define glProgramUniform2f _ptrc_glProgramUniform2f +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2fv)(GLuint, GLint, GLsizei, const GLfloat *); +#define glProgramUniform2fv _ptrc_glProgramUniform2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2i)(GLuint, GLint, GLint, GLint); +#define glProgramUniform2i _ptrc_glProgramUniform2i +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2iv)(GLuint, GLint, GLsizei, const GLint *); +#define glProgramUniform2iv _ptrc_glProgramUniform2iv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2ui)(GLuint, GLint, GLuint, GLuint); +#define glProgramUniform2ui _ptrc_glProgramUniform2ui +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2uiv)(GLuint, GLint, GLsizei, const GLuint *); +#define glProgramUniform2uiv _ptrc_glProgramUniform2uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3d)(GLuint, GLint, GLdouble, GLdouble, GLdouble); +#define glProgramUniform3d _ptrc_glProgramUniform3d +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3dv)(GLuint, GLint, GLsizei, const GLdouble *); +#define glProgramUniform3dv _ptrc_glProgramUniform3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3f)(GLuint, GLint, GLfloat, GLfloat, GLfloat); +#define glProgramUniform3f _ptrc_glProgramUniform3f +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3fv)(GLuint, GLint, GLsizei, const GLfloat *); +#define glProgramUniform3fv _ptrc_glProgramUniform3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3i)(GLuint, GLint, GLint, GLint, GLint); +#define glProgramUniform3i _ptrc_glProgramUniform3i +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3iv)(GLuint, GLint, GLsizei, const GLint *); +#define glProgramUniform3iv _ptrc_glProgramUniform3iv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3ui)(GLuint, GLint, GLuint, GLuint, GLuint); +#define glProgramUniform3ui _ptrc_glProgramUniform3ui +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3uiv)(GLuint, GLint, GLsizei, const GLuint *); +#define glProgramUniform3uiv _ptrc_glProgramUniform3uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4d)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble); +#define glProgramUniform4d _ptrc_glProgramUniform4d +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4dv)(GLuint, GLint, GLsizei, const GLdouble *); +#define glProgramUniform4dv _ptrc_glProgramUniform4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4f)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat); +#define glProgramUniform4f _ptrc_glProgramUniform4f +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4fv)(GLuint, GLint, GLsizei, const GLfloat *); +#define glProgramUniform4fv _ptrc_glProgramUniform4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4i)(GLuint, GLint, GLint, GLint, GLint, GLint); +#define glProgramUniform4i _ptrc_glProgramUniform4i +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4iv)(GLuint, GLint, GLsizei, const GLint *); +#define glProgramUniform4iv _ptrc_glProgramUniform4iv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4ui)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint); +#define glProgramUniform4ui _ptrc_glProgramUniform4ui +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4uiv)(GLuint, GLint, GLsizei, const GLuint *); +#define glProgramUniform4uiv _ptrc_glProgramUniform4uiv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix2dv _ptrc_glProgramUniformMatrix2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix2fv _ptrc_glProgramUniformMatrix2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix2x3dv _ptrc_glProgramUniformMatrix2x3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix2x3fv _ptrc_glProgramUniformMatrix2x3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix2x4dv _ptrc_glProgramUniformMatrix2x4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix2x4fv _ptrc_glProgramUniformMatrix2x4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix3dv _ptrc_glProgramUniformMatrix3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix3fv _ptrc_glProgramUniformMatrix3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix3x2dv _ptrc_glProgramUniformMatrix3x2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix3x2fv _ptrc_glProgramUniformMatrix3x2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix3x4dv _ptrc_glProgramUniformMatrix3x4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix3x4fv _ptrc_glProgramUniformMatrix3x4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix4dv _ptrc_glProgramUniformMatrix4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix4fv _ptrc_glProgramUniformMatrix4fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix4x2dv _ptrc_glProgramUniformMatrix4x2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix4x2fv _ptrc_glProgramUniformMatrix4x2fv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *); +#define glProgramUniformMatrix4x3dv _ptrc_glProgramUniformMatrix4x3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +#define glProgramUniformMatrix4x3fv _ptrc_glProgramUniformMatrix4x3fv +extern void (CODEGEN_FUNCPTR *_ptrc_glReleaseShaderCompiler)(); +#define glReleaseShaderCompiler _ptrc_glReleaseShaderCompiler +extern void (CODEGEN_FUNCPTR *_ptrc_glScissorArrayv)(GLuint, GLsizei, const GLint *); +#define glScissorArrayv _ptrc_glScissorArrayv +extern void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexed)(GLuint, GLint, GLint, GLsizei, GLsizei); +#define glScissorIndexed _ptrc_glScissorIndexed +extern void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexedv)(GLuint, const GLint *); +#define glScissorIndexedv _ptrc_glScissorIndexedv +extern void (CODEGEN_FUNCPTR *_ptrc_glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei); +#define glShaderBinary _ptrc_glShaderBinary +extern void (CODEGEN_FUNCPTR *_ptrc_glUseProgramStages)(GLuint, GLbitfield, GLuint); +#define glUseProgramStages _ptrc_glUseProgramStages +extern void (CODEGEN_FUNCPTR *_ptrc_glValidateProgramPipeline)(GLuint); +#define glValidateProgramPipeline _ptrc_glValidateProgramPipeline +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1d)(GLuint, GLdouble); +#define glVertexAttribL1d _ptrc_glVertexAttribL1d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1dv)(GLuint, const GLdouble *); +#define glVertexAttribL1dv _ptrc_glVertexAttribL1dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2d)(GLuint, GLdouble, GLdouble); +#define glVertexAttribL2d _ptrc_glVertexAttribL2d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2dv)(GLuint, const GLdouble *); +#define glVertexAttribL2dv _ptrc_glVertexAttribL2dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3d)(GLuint, GLdouble, GLdouble, GLdouble); +#define glVertexAttribL3d _ptrc_glVertexAttribL3d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3dv)(GLuint, const GLdouble *); +#define glVertexAttribL3dv _ptrc_glVertexAttribL3dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +#define glVertexAttribL4d _ptrc_glVertexAttribL4d +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4dv)(GLuint, const GLdouble *); +#define glVertexAttribL4dv _ptrc_glVertexAttribL4dv +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *); +#define glVertexAttribLPointer _ptrc_glVertexAttribLPointer +extern void (CODEGEN_FUNCPTR *_ptrc_glViewportArrayv)(GLuint, GLsizei, const GLfloat *); +#define glViewportArrayv _ptrc_glViewportArrayv +extern void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedf)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +#define glViewportIndexedf _ptrc_glViewportIndexedf +extern void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedfv)(GLuint, const GLfloat *); +#define glViewportIndexedfv _ptrc_glViewportIndexedfv + +extern void (CODEGEN_FUNCPTR *_ptrc_glBindImageTexture)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum); +#define glBindImageTexture _ptrc_glBindImageTexture +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstancedBaseInstance)(GLenum, GLint, GLsizei, GLsizei, GLuint); +#define glDrawArraysInstancedBaseInstance _ptrc_glDrawArraysInstancedBaseInstance +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint); +#define glDrawElementsInstancedBaseInstance _ptrc_glDrawElementsInstancedBaseInstance +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint); +#define glDrawElementsInstancedBaseVertexBaseInstance _ptrc_glDrawElementsInstancedBaseVertexBaseInstance +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackInstanced)(GLenum, GLuint, GLsizei); +#define glDrawTransformFeedbackInstanced _ptrc_glDrawTransformFeedbackInstanced +extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStreamInstanced)(GLenum, GLuint, GLuint, GLsizei); +#define glDrawTransformFeedbackStreamInstanced _ptrc_glDrawTransformFeedbackStreamInstanced +extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAtomicCounterBufferiv)(GLuint, GLuint, GLenum, GLint *); +#define glGetActiveAtomicCounterBufferiv _ptrc_glGetActiveAtomicCounterBufferiv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetInternalformati64v)(GLenum, GLenum, GLenum, GLsizei, GLint64 *); +#define glGetInternalformati64v _ptrc_glGetInternalformati64v +extern void (CODEGEN_FUNCPTR *_ptrc_glMemoryBarrier)(GLbitfield); +#define glMemoryBarrier _ptrc_glMemoryBarrier +extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage1D)(GLenum, GLsizei, GLenum, GLsizei); +#define glTexStorage1D _ptrc_glTexStorage1D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); +#define glTexStorage2D _ptrc_glTexStorage2D +extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei); +#define glTexStorage3D _ptrc_glTexStorage3D + +extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffer)(GLuint, GLuint, GLintptr, GLsizei); +#define glBindVertexBuffer _ptrc_glBindVertexBuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferData)(GLenum, GLenum, GLenum, GLenum, const void *); +#define glClearBufferData _ptrc_glClearBufferData +extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferSubData)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *); +#define glClearBufferSubData _ptrc_glClearBufferSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubData)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); +#define glCopyImageSubData _ptrc_glCopyImageSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallback)(GLDEBUGPROC, const void *); +#define glDebugMessageCallback _ptrc_glDebugMessageCallback +extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControl)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean); +#define glDebugMessageControl _ptrc_glDebugMessageControl +extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsert)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *); +#define glDebugMessageInsert _ptrc_glDebugMessageInsert +extern void (CODEGEN_FUNCPTR *_ptrc_glDispatchCompute)(GLuint, GLuint, GLuint); +#define glDispatchCompute _ptrc_glDispatchCompute +extern void (CODEGEN_FUNCPTR *_ptrc_glDispatchComputeIndirect)(GLintptr); +#define glDispatchComputeIndirect _ptrc_glDispatchComputeIndirect +extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferParameteri)(GLenum, GLenum, GLint); +#define glFramebufferParameteri _ptrc_glFramebufferParameteri +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLog)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *); +#define glGetDebugMessageLog _ptrc_glGetDebugMessageLog +extern void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferParameteriv)(GLenum, GLenum, GLint *); +#define glGetFramebufferParameteriv _ptrc_glGetFramebufferParameteriv +extern void (CODEGEN_FUNCPTR *_ptrc_glGetObjectLabel)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetObjectLabel _ptrc_glGetObjectLabel +extern void (CODEGEN_FUNCPTR *_ptrc_glGetObjectPtrLabel)(const void *, GLsizei, GLsizei *, GLchar *); +#define glGetObjectPtrLabel _ptrc_glGetObjectPtrLabel +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInterfaceiv)(GLuint, GLenum, GLenum, GLint *); +#define glGetProgramInterfaceiv _ptrc_glGetProgramInterfaceiv +extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceIndex)(GLuint, GLenum, const GLchar *); +#define glGetProgramResourceIndex _ptrc_glGetProgramResourceIndex +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocation)(GLuint, GLenum, const GLchar *); +#define glGetProgramResourceLocation _ptrc_glGetProgramResourceLocation +extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocationIndex)(GLuint, GLenum, const GLchar *); +#define glGetProgramResourceLocationIndex _ptrc_glGetProgramResourceLocationIndex +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *); +#define glGetProgramResourceName _ptrc_glGetProgramResourceName +extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceiv)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *); +#define glGetProgramResourceiv _ptrc_glGetProgramResourceiv +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferData)(GLuint); +#define glInvalidateBufferData _ptrc_glInvalidateBufferData +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferSubData)(GLuint, GLintptr, GLsizeiptr); +#define glInvalidateBufferSubData _ptrc_glInvalidateBufferSubData +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *); +#define glInvalidateFramebuffer _ptrc_glInvalidateFramebuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei); +#define glInvalidateSubFramebuffer _ptrc_glInvalidateSubFramebuffer +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexImage)(GLuint, GLint); +#define glInvalidateTexImage _ptrc_glInvalidateTexImage +extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); +#define glInvalidateTexSubImage _ptrc_glInvalidateTexSubImage +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArraysIndirect)(GLenum, const void *, GLsizei, GLsizei); +#define glMultiDrawArraysIndirect _ptrc_glMultiDrawArraysIndirect +extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsIndirect)(GLenum, GLenum, const void *, GLsizei, GLsizei); +#define glMultiDrawElementsIndirect _ptrc_glMultiDrawElementsIndirect +extern void (CODEGEN_FUNCPTR *_ptrc_glObjectLabel)(GLenum, GLuint, GLsizei, const GLchar *); +#define glObjectLabel _ptrc_glObjectLabel +extern void (CODEGEN_FUNCPTR *_ptrc_glObjectPtrLabel)(const void *, GLsizei, const GLchar *); +#define glObjectPtrLabel _ptrc_glObjectPtrLabel +extern void (CODEGEN_FUNCPTR *_ptrc_glPopDebugGroup)(); +#define glPopDebugGroup _ptrc_glPopDebugGroup +extern void (CODEGEN_FUNCPTR *_ptrc_glPushDebugGroup)(GLenum, GLuint, GLsizei, const GLchar *); +#define glPushDebugGroup _ptrc_glPushDebugGroup +extern void (CODEGEN_FUNCPTR *_ptrc_glShaderStorageBlockBinding)(GLuint, GLuint, GLuint); +#define glShaderStorageBlockBinding _ptrc_glShaderStorageBlockBinding +extern void (CODEGEN_FUNCPTR *_ptrc_glTexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr); +#define glTexBufferRange _ptrc_glTexBufferRange +extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean); +#define glTexStorage2DMultisample _ptrc_glTexStorage2DMultisample +extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean); +#define glTexStorage3DMultisample _ptrc_glTexStorage3DMultisample +extern void (CODEGEN_FUNCPTR *_ptrc_glTextureView)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint); +#define glTextureView _ptrc_glTextureView +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribBinding)(GLuint, GLuint); +#define glVertexAttribBinding _ptrc_glVertexAttribBinding +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribFormat)(GLuint, GLint, GLenum, GLboolean, GLuint); +#define glVertexAttribFormat _ptrc_glVertexAttribFormat +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIFormat)(GLuint, GLint, GLenum, GLuint); +#define glVertexAttribIFormat _ptrc_glVertexAttribIFormat +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLFormat)(GLuint, GLint, GLenum, GLuint); +#define glVertexAttribLFormat _ptrc_glVertexAttribLFormat +extern void (CODEGEN_FUNCPTR *_ptrc_glVertexBindingDivisor)(GLuint, GLuint); +#define glVertexBindingDivisor _ptrc_glVertexBindingDivisor + +extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersBase)(GLenum, GLuint, GLsizei, const GLuint *); +#define glBindBuffersBase _ptrc_glBindBuffersBase +extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersRange)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *); +#define glBindBuffersRange _ptrc_glBindBuffersRange +extern void (CODEGEN_FUNCPTR *_ptrc_glBindImageTextures)(GLuint, GLsizei, const GLuint *); +#define glBindImageTextures _ptrc_glBindImageTextures +extern void (CODEGEN_FUNCPTR *_ptrc_glBindSamplers)(GLuint, GLsizei, const GLuint *); +#define glBindSamplers _ptrc_glBindSamplers +extern void (CODEGEN_FUNCPTR *_ptrc_glBindTextures)(GLuint, GLsizei, const GLuint *); +#define glBindTextures _ptrc_glBindTextures +extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffers)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *); +#define glBindVertexBuffers _ptrc_glBindVertexBuffers +extern void (CODEGEN_FUNCPTR *_ptrc_glBufferStorage)(GLenum, GLsizeiptr, const void *, GLbitfield); +#define glBufferStorage _ptrc_glBufferStorage +extern void (CODEGEN_FUNCPTR *_ptrc_glClearTexImage)(GLuint, GLint, GLenum, GLenum, const void *); +#define glClearTexImage _ptrc_glClearTexImage +extern void (CODEGEN_FUNCPTR *_ptrc_glClearTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *); +#define glClearTexSubImage _ptrc_glClearTexSubImage + +enum ogl_LoadStatus +{ + ogl_LOAD_FAILED = 0, + ogl_LOAD_SUCCEEDED = 1, +}; + +int ogl_LoadFunctions(); + +int ogl_GetMinorVersion(); +int ogl_GetMajorVersion(); +int ogl_IsVersionGEQ(int majorVersion, int minorVersion); + +#ifdef __cplusplus +} +#endif /*__cplusplus*/ + +#endif //POINTER_C_GENERATED_HEADER_OPENGL_H diff --git a/src/graphicsbuffer.cpp b/src/graphicsbuffer.cpp index fe5ae1c..750fc8b 100644 --- a/src/graphicsbuffer.cpp +++ b/src/graphicsbuffer.cpp @@ -1,8 +1,5 @@ #include "graphicsbuffer.h" #include "log.h" -#define GL_GLEXT_PROTOTYPES -#include -#include using namespace IPDF; @@ -72,6 +69,8 @@ GraphicsBuffer::GraphicsBuffer() m_map_pointer = nullptr; m_buffer_size = 0; m_buffer_shape_dirty = true; + m_buffer_handle = 0; + m_buffer_usage = BufferUsageDynamicDraw; SetUsage(BufferUsageStaticDraw); } @@ -129,7 +128,14 @@ void* GraphicsBuffer::Map(bool read, bool write, bool invalidate) GLenum target = BufferTypeToGLType(m_buffer_type); if (invalidate) - m_invalidated = true; + { + m_invalidated = true; + + // Intel's Mesa driver does not rename the buffer when we map with GL_MAP_INVALIDATE_BUFFER_BIT, + // resulting in the CPU stalling waiting for rendering from the buffer to complete on the GPU. + // We manually force the buffer to be renamed here to avoid this. + m_buffer_shape_dirty = true; + } if (m_map_pointer) Warn("Tried to map already mapped buffer!"); @@ -166,6 +172,7 @@ void GraphicsBuffer::UnMap() Bind(); glUnmapBuffer(target); m_map_pointer = nullptr; + m_invalidated = false; } void GraphicsBuffer::Upload(size_t length, const void* data) @@ -179,6 +186,8 @@ void GraphicsBuffer::Upload(size_t length, const void* data) Bind(); glBufferData(target, length, data, usage); + if (data != nullptr) + m_invalidated = false; m_buffer_size = length; } @@ -190,6 +199,7 @@ void GraphicsBuffer::UploadRange(size_t length, intptr_t offset, const void* dat Bind(); glBufferSubData(target, offset, length, data); + m_invalidated = false; } void GraphicsBuffer::Resize(size_t length) @@ -214,7 +224,7 @@ void GraphicsBuffer::Resize(size_t length) } } -void GraphicsBuffer::Bind() +void GraphicsBuffer::Bind() const { if (m_buffer_type == BufferTypeUniform) glBindBufferBase(GL_UNIFORM_BUFFER, 0, m_buffer_handle); diff --git a/src/graphicsbuffer.h b/src/graphicsbuffer.h index 47534c9..7cec235 100644 --- a/src/graphicsbuffer.h +++ b/src/graphicsbuffer.h @@ -2,8 +2,7 @@ #define _GRAPHICSBUFFER_H #include -#define GL_GLEXT_PROTOTYPES -#include +#include "gl_core44.h" namespace IPDF @@ -56,7 +55,7 @@ namespace IPDF void Invalidate(); - void Bind(); + void Bind() const; private: void RecreateBuffer(); GLuint m_buffer_handle; diff --git a/src/screen.cpp b/src/screen.cpp index ecc8c20..40754b3 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -1,13 +1,63 @@ #include "common.h" #include "screen.h" -#include "SDL_opengl.h" +#include "gl_core44.h" #include // for access(2) #include // for access(2) +#include "shaderprogram.h" + +#define BASICTEX_VERT \ + "#version 140\n"\ + "#extension GL_ARB_shading_language_420pack : require\n"\ + "#extension GL_ARB_explicit_attrib_location : require\n"\ + "\n"\ + "layout(std140, binding=0) uniform Viewport\n"\ + "{\n"\ + "\tfloat width;\n"\ + "\tfloat height;\n"\ + "};\n"\ + "\n"\ + "layout(location = 0) in vec2 position;\n"\ + "layout(location = 1) in vec2 tex_coord;\n"\ + "\n"\ + "out vec2 fp_tex_coord;\n"\ + "\n"\ + "void main()\n"\ + "{\n"\ + "\t// Transform to clip coordinates (-1,1, -1,1).\n"\ + "\tgl_Position.x = (position.x*2/width) - 1;\n"\ + "\tgl_Position.y = 1 - (position.y*2/height);\n"\ + "\tgl_Position.z = 0.0;\n"\ + "\tgl_Position.w = 1.0;\n"\ + "\tfp_tex_coord = tex_coord;\n"\ + "}\n" + +#define BASICTEX_FRAG \ + "#version 140\n"\ + "\n"\ + "in vec2 fp_tex_coord;\n"\ + "\n"\ + "out vec4 output_colour;\n"\ + "\n"\ + "uniform sampler2D tex;\n"\ + "uniform vec4 colour;\n"\ + "\n"\ + "void main()\n"\ + "{\n"\ + "\toutput_colour = colour;\n"\ + "\toutput_colour.a = texture(tex, fp_tex_coord).r;\n"\ + "}\n" + using namespace IPDF; using namespace std; +static void opengl_debug_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* msg, const void *data) +{ + Error("OpenGL Error (%d): %s", id, msg); +} + + Screen::Screen() { SDL_Init(SDL_INIT_VIDEO); @@ -19,8 +69,52 @@ Screen::Screen() Fatal("Couldn't create window!"); } + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + m_gl_context = SDL_GL_CreateContext(m_window); + ogl_LoadFunctions(); + + // Why is this so horribly broken? + if (ogl_IsVersionGEQ(3,0)) + { + Fatal("We require OpenGL 3.1, but you have version %d.%d!",ogl_GetMajorVersion(), ogl_GetMinorVersion()); + } + + if (!SDL_GL_ExtensionSupported("GL_ARB_shading_language_420pack")) + { + Fatal("Your system does not support the ARB_shading_language_420pack extension, which is required."); + } + + if (!SDL_GL_ExtensionSupported("GL_ARB_explicit_attrib_location")) + { + Fatal("Your system does not support the ARB_explicit_attrib_location extension, which is required."); + } + + glDebugMessageCallback(opengl_debug_callback, 0); + + GLuint default_vao; + glGenVertexArrays(1, &default_vao); + glBindVertexArray(default_vao); + + //TODO: Error checking. + m_texture_prog.AttachVertexProgram(BASICTEX_VERT); + m_texture_prog.AttachFragmentProgram(BASICTEX_FRAG); + m_texture_prog.Link(); + m_texture_prog.Use(); + + // We always want to use the texture bound to texture unit 0. + GLint texture_uniform_location = m_texture_prog.GetUniformLocation("tex"); + glUniform1i(texture_uniform_location, 0); + + m_colour_uniform_location = m_texture_prog.GetUniformLocation("colour"); + + m_viewport_ubo.SetUsage(GraphicsBuffer::BufferUsageDynamicDraw); + m_viewport_ubo.SetType(GraphicsBuffer::BufferTypeUniform); + m_debug_font_atlas = 0; ResizeViewport(800, 600); @@ -50,6 +144,8 @@ void Screen::ResizeViewport(int width, int height) glViewport(0, 0, width, height); m_viewport_width = width; m_viewport_height = height; + GLfloat viewportfloats[] = {(float)width, (float)height}; + m_viewport_ubo.Upload(sizeof(float)*2, viewportfloats); } bool Screen::PumpEvents() @@ -205,9 +301,23 @@ void Screen::RenderBMP(const char * filename) const //Debug("SDL_Surface %d BytesPerPixel, format %d (RGB = %d, BGR = %d, RGBA = %d, BGRA = %d)", bmp->format->BytesPerPixel, texture_format, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA); + m_texture_prog.Use(); + GraphicsBuffer quad_vertex_buffer; + quad_vertex_buffer.SetUsage(GraphicsBuffer::BufferUsageStaticDraw); + quad_vertex_buffer.SetType(GraphicsBuffer::BufferTypeVertex); + GLfloat quad[] = { + 0, 0, 0, 0, + 1, 0, ViewportWidth(), 0, + 1, 1, ViewportWidth(), ViewportHeight(), + 0, 1, 0, ViewportHeight() + }; + quad_vertex_buffer.Upload(sizeof(GLfloat) * 16, quad); + quad_vertex_buffer.Bind(); + m_viewport_ubo.Bind(); + + glUniform4f(m_colour_uniform_location, 1.0f, 1.0f, 1.0f, 1.0f); GLuint texID; - glEnable(GL_TEXTURE_2D); glGenTextures(1, &texID); glBindTexture(GL_TEXTURE_2D, texID); @@ -218,20 +328,14 @@ void Screen::RenderBMP(const char * filename) const glTexImage2D(GL_TEXTURE_2D, 0, bmp->format->BytesPerPixel, w, h, 0, texture_format, GL_UNSIGNED_BYTE, bmp->pixels); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(0.0, 1.0, 1.0, 0.0, -1.f, 1.f); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glBegin(GL_QUADS); - glTexCoord2i(0,0); glVertex2f(0,0); - glTexCoord2i(1,0); glVertex2f(1,0); - glTexCoord2i(1,1); glVertex2f(1,1); - glTexCoord2i(0,1); glVertex2f(0,1); - glEnd(); + glEnableVertexAttribArray(0); + glEnableVertexAttribArray(1); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), (void*)(2*sizeof(float))); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), 0); + glDisableVertexAttribArray(1); + glDisableVertexAttribArray(0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - glDisable(GL_TEXTURE_2D); SDL_FreeSurface(bmp); } @@ -249,7 +353,7 @@ void Screen::DebugFontInit(const char *name, float font_size) free(font_file_data); glGenTextures(1, &m_debug_font_atlas); glBindTexture(GL_TEXTURE_2D, m_debug_font_atlas); - glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 1024,1024, 0, GL_ALPHA, GL_UNSIGNED_BYTE, font_atlas_data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, 1024,1024, 0, GL_RED, GL_UNSIGNED_BYTE, font_atlas_data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); m_debug_font_size = font_size; @@ -257,6 +361,11 @@ void Screen::DebugFontInit(const char *name, float font_size) m_debug_font_vertices.SetType(GraphicsBuffer::BufferTypeVertex); m_debug_font_vertices.Upload(8192, nullptr); m_debug_font_vertex_head = 0; + + m_debug_font_indices.SetUsage(GraphicsBuffer::BufferUsageStreamDraw); + m_debug_font_indices.SetType(GraphicsBuffer::BufferTypeIndex); + m_debug_font_indices.Resize(500); + m_debug_font_index_head = 0; } void Screen::DebugFontClear() @@ -268,39 +377,32 @@ void Screen::DebugFontClear() void Screen::DebugFontFlush() { - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glOrtho(0,ViewportWidth(), ViewportHeight(), 0, -1, 1); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadIdentity(); - - glColor4f(0,0,0,1); - glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBindTexture(GL_TEXTURE_2D, m_debug_font_atlas); + m_texture_prog.Use(); + m_viewport_ubo.Bind(); m_debug_font_vertices.Bind(); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glVertexPointer(2, GL_FLOAT, 4*sizeof(float), (void*)(2*sizeof(float))); - glTexCoordPointer(2, GL_FLOAT, 4*sizeof(float), 0); - glDrawArrays(GL_QUADS, 0, m_debug_font_vertex_head/4); - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); + m_debug_font_indices.Bind(); + glUniform4f(m_colour_uniform_location, 0,0,0,1); + glEnableVertexAttribArray(0); + glEnableVertexAttribArray(1); + glEnable(GL_PRIMITIVE_RESTART); + glPrimitiveRestartIndex(65535); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), (void*)(2*sizeof(float))); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), 0); + glDrawElements(GL_TRIANGLE_STRIP, m_debug_font_index_head, GL_UNSIGNED_SHORT, 0); + glDisable(GL_PRIMITIVE_RESTART); + glDisableVertexAttribArray(1); + glDisableVertexAttribArray(0); glDisable(GL_BLEND); - glDisable(GL_TEXTURE_2D); - glPopMatrix(); - glMatrixMode(GL_PROJECTION); - glPopMatrix(); m_debug_font_vertex_head = 0; + m_debug_font_index_head = 0; } void Screen::DebugFontPrint(const char* str) @@ -308,9 +410,12 @@ void Screen::DebugFontPrint(const char* str) if (!m_debug_font_atlas) return; float *vertexData = (float*)m_debug_font_vertices.MapRange(m_debug_font_vertex_head*sizeof(float), m_debug_font_vertices.GetSize() - m_debug_font_vertex_head*sizeof(float), false, true, true); + uint16_t *indexData = (uint16_t*)m_debug_font_indices.MapRange(m_debug_font_index_head*sizeof(uint16_t), m_debug_font_indices.GetSize() - m_debug_font_index_head*sizeof(uint16_t), false, true, true); while (*str) { - if (m_debug_font_vertex_head*sizeof(float) + 16*sizeof(float) >= m_debug_font_vertices.GetSize() ) + if ((m_debug_font_vertex_head*sizeof(float) + 16*sizeof(float) >= m_debug_font_vertices.GetSize() ) || + (m_debug_font_index_head*sizeof(uint16_t) + 5*sizeof(uint16_t) >= m_debug_font_indices.GetSize())) { + m_debug_font_indices.UnMap(); m_debug_font_vertices.UnMap(); DebugFontFlush(); DebugFontPrint(str); @@ -336,7 +441,14 @@ void Screen::DebugFontPrint(const char* str) *vertexData = q.x0; vertexData++; *vertexData = q.y1; vertexData++; + *indexData = m_debug_font_vertex_head/4; indexData++; + *indexData = m_debug_font_vertex_head/4+1; indexData++; + *indexData = m_debug_font_vertex_head/4+3; indexData++; + *indexData = m_debug_font_vertex_head/4+2; indexData++; + *indexData = 65535; indexData++; + m_debug_font_vertex_head += 16; + m_debug_font_index_head += 5; } else if (*str == '\n') @@ -346,6 +458,7 @@ void Screen::DebugFontPrint(const char* str) } ++str; } + m_debug_font_indices.UnMap(); m_debug_font_vertices.UnMap(); //DebugFontFlush(); } diff --git a/src/screen.h b/src/screen.h index ddcf8ca..d918dd1 100644 --- a/src/screen.h +++ b/src/screen.h @@ -7,6 +7,7 @@ #include "stb_truetype.h" #include "graphicsbuffer.h" +#include "shaderprogram.h" namespace IPDF { @@ -70,6 +71,9 @@ namespace IPDF int m_viewport_height; SDL_Window *m_window; SDL_GLContext m_gl_context; + ShaderProgram m_texture_prog; + GLint m_colour_uniform_location; + GraphicsBuffer m_viewport_ubo; stbtt_bakedchar m_debug_font_rects[96]; unsigned int m_debug_font_atlas; float m_debug_font_x; diff --git a/src/shaderprogram.cpp b/src/shaderprogram.cpp new file mode 100644 index 0000000..7ccb970 --- /dev/null +++ b/src/shaderprogram.cpp @@ -0,0 +1,61 @@ +#include "shaderprogram.h" + +using namespace IPDF; + +ShaderProgram::~ShaderProgram() +{ + for(auto shader : m_shaders) + { + glDetachShader(m_program, shader.obj); + glDeleteShader(shader.obj); + } + + if (m_program) + glDeleteProgram(m_program); +} + +void ShaderProgram::LazyCreateProgram() +{ + if (!m_program) + { + m_program = glCreateProgram(); + } +} + +bool ShaderProgram::AttachShader(const char *src, GLenum type) +{ + GLuint shader_obj = glCreateShader(type); + glShaderSource(shader_obj, 1, &src, 0); + glCompileShader(shader_obj); + + m_shaders.push_back(Shader{type, shader_obj}); + LazyCreateProgram(); + glAttachShader(m_program, shader_obj); + return true; +} + +bool ShaderProgram::AttachVertexProgram(const char *src) +{ + return AttachShader(src, GL_VERTEX_SHADER); +} + +bool ShaderProgram::AttachFragmentProgram(const char *src) +{ + return AttachShader(src, GL_FRAGMENT_SHADER); +} + +bool ShaderProgram::Link() +{ + glLinkProgram(m_program); + return true; +} + +const void ShaderProgram::Use() const +{ + glUseProgram(m_program); +} + +const GLint ShaderProgram::GetUniformLocation(const char *name) const +{ + return glGetUniformLocation(m_program, name); +} diff --git a/src/shaderprogram.h b/src/shaderprogram.h new file mode 100644 index 0000000..25318d7 --- /dev/null +++ b/src/shaderprogram.h @@ -0,0 +1,42 @@ +#ifndef _SHADERPROGRAM_H +#define _SHADERPROGRAM_H + +#include +#include "gl_core44.h" + + +namespace IPDF +{ + /* + * The "Shader" class represents a GLSL program made from shaders. + */ + class ShaderProgram + { + public: + ShaderProgram() : m_program(0) {} + ~ShaderProgram(); + bool AttachVertexProgram(const char *src); + bool AttachFragmentProgram(const char *src); + bool Link(); + const void Use() const; + // Unfortunately, we don't require GL 4.3/ARB_explicit_uniform_location + // which would make this obsolete. One uday Mesa will support it. + // NOTE: We could actually get away with this by only using UBOs, as + // Mesa supports ARB_shading_language_420pack, but that'd be a bit more + // work right with the way some of our uniforms are laid out at the moment. + const GLint GetUniformLocation(const char *uniform_name) const; + private: + void LazyCreateProgram(); + bool AttachShader(const char *src, GLenum type); + GLuint m_program; + struct Shader + { + GLenum type; + GLuint obj; + }; + std::vector m_shaders; + }; + +} + +#endif // _SHADERPROGRAM_H diff --git a/src/stb_truetype.h b/src/stb_truetype.h index 0948f3b..2fa19a3 100644 --- a/src/stb_truetype.h +++ b/src/stb_truetype.h @@ -1,5 +1,5 @@ -// stb_truetype.h - v0.6c - public domain -// authored from 2009-2012 by Sean Barrett / RAD Game Tools +// stb_truetype.h - v0.7 - public domain +// authored from 2009-2013 by Sean Barrett / RAD Game Tools // // This library processes TrueType files: // parse files @@ -25,11 +25,12 @@ // "Zer" on mollyrocket (with fix) // Cass Everitt // stoiko (Haemimont Games) -// Brian Hook +// Brian Hook // Walter van Niftrik // // VERSION HISTORY // +// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back // 0.6c (2012-07-24) improve documentation // 0.6b (2012-07-20) fix a few more warnings // 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, @@ -180,7 +181,7 @@ // Curve tesselation 120 LOC \__ 550 LOC Bitmap creation // Bitmap management 100 LOC / // Baked bitmap interface 70 LOC / -// Font name matching & access 150 LOC ---- 150 +// Font name matching & access 150 LOC ---- 150 // C runtime library abstraction 60 LOC ---- 60 @@ -264,7 +265,7 @@ int main(int argc, char **argv) } return 0; } -#endif +#endif // // Output: // @@ -278,9 +279,9 @@ int main(int argc, char **argv) // :@@. M@M // @@@o@@@@ // :M@@V:@@. -// +// ////////////////////////////////////////////////////////////////////////////// -// +// // Complete program: print "Hello World!" banner, with bugs // #if 0 @@ -411,7 +412,7 @@ extern "C" { typedef struct { unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap - float xoff,yoff,xadvance; + float xoff,yoff,xadvance; } stbtt_bakedchar; extern int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) @@ -1138,7 +1139,7 @@ int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_verte if (i != 0) num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); - // now start the new one + // now start the new one start_off = !(flags & 1); if (start_off) { // if we start off with an off-curve point, then when we need to find a point on the curve @@ -1191,7 +1192,7 @@ int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_verte int comp_num_verts = 0, i; stbtt_vertex *comp_verts = 0, *tmp = 0; float mtx[6] = {1,0,0,1,0,0}, m, n; - + flags = ttSHORT(comp); comp+=2; gidx = ttSHORT(comp); comp+=2; @@ -1221,7 +1222,7 @@ int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_verte mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; } - + // Find transformation scales. m = (float) sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); n = (float) sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); @@ -1461,7 +1462,7 @@ static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__ac } } } - + e = e->next; } } @@ -1751,7 +1752,7 @@ unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float sc { int ix0,iy0,ix1,iy1; stbtt__bitmap gbm; - stbtt_vertex *vertices; + stbtt_vertex *vertices; int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); if (scale_x == 0) scale_x = scale_y; @@ -1760,7 +1761,7 @@ unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float sc scale_y = scale_x; } - stbtt_GetGlyphBitmapBox(info, glyph, scale_x, scale_y, &ix0,&iy0,&ix1,&iy1); + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); // now we get the size gbm.w = (ix1 - ix0); @@ -1771,7 +1772,7 @@ unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float sc if (height) *height = gbm.h; if (xoff ) *xoff = ix0; if (yoff ) *yoff = iy0; - + if (gbm.w && gbm.h) { gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); if (gbm.pixels) { @@ -1782,7 +1783,7 @@ unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float sc } STBTT_free(vertices, info->userdata); return gbm.pixels; -} +} unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) { @@ -1794,7 +1795,7 @@ void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *ou int ix0,iy0; stbtt_vertex *vertices; int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); - stbtt__bitmap gbm; + stbtt__bitmap gbm; stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); gbm.pixels = output; @@ -1816,7 +1817,7 @@ void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, in unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) { return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); -} +} void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) { @@ -1826,7 +1827,7 @@ void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) { return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); -} +} void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) { @@ -1910,7 +1911,7 @@ void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_inde // // check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string -static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) +static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) { stbtt_int32 i=0; @@ -1949,7 +1950,7 @@ static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 return i; } -int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) +int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) { return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2); } diff --git a/src/view.cpp b/src/view.cpp index d9227b4..c9aac36 100644 --- a/src/view.cpp +++ b/src/view.cpp @@ -1,9 +1,47 @@ #include "view.h" -#include "SDL_opengl.h" +#include "gl_core44.h" using namespace IPDF; using namespace std; +#define RECT_VERT \ + "#version 140\n"\ + "#extension GL_ARB_shading_language_420pack : require\n"\ + "#extension GL_ARB_explicit_attrib_location : require\n"\ + "\n"\ + "layout(std140, binding=0) uniform ViewBounds\n"\ + "{\n"\ + "\tfloat bounds_x;\n"\ + "\tfloat bounds_y;\n"\ + "\tfloat bounds_w;\n"\ + "\tfloat bounds_h;\n"\ + "};\n"\ + "\n"\ + "layout(location = 0) in vec2 position;\n"\ + "\n"\ + "void main()\n"\ + "{\n"\ + "\tvec2 transformed_position;\n"\ + "\ttransformed_position.x = (position.x - bounds_x) / bounds_w;\n"\ + "\ttransformed_position.y = (position.y - bounds_y) / bounds_h;\n"\ + "\t// Transform to clip coordinates (-1,1, -1,1).\n"\ + "\tgl_Position.x = (transformed_position.x*2) - 1;\n"\ + "\tgl_Position.y = 1 - (transformed_position.y*2);\n"\ + "\tgl_Position.z = 0.0;\n"\ + "\tgl_Position.w = 1.0;\n"\ + "}\n" + +#define RECT_FRAG \ + "#version 140\n"\ + "\n"\ + "out vec4 output_colour;\n"\ + "\n"\ + "uniform vec4 colour;\n"\ + "\n"\ + "void main()\n"\ + "{\n"\ + "\toutput_colour = colour;\n"\ + "}\n" void View::Translate(Real x, Real y) { @@ -59,6 +97,8 @@ Rect View::TransformToViewCoords(const Rect& inp) const void View::DrawGrid() { + //TODO: Implement this with OpenGL 3.1+ +#if 0 // Draw some grid lines at fixed pixel positions glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -80,10 +120,9 @@ void View::DrawGrid() glEnd(); } +#endif } -void glPrimitiveRestartIndex(GLuint index); - void View::Render(int width, int height) { if (width != m_cached_display.GetWidth() || height != m_cached_display.GetHeight()) @@ -100,37 +139,41 @@ void View::Render(int width, int height) } m_cached_display.Bind(); m_cached_display.Clear(); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - if (m_use_gpu_transform) - { - glOrtho(Float(m_bounds.x), Float(m_bounds.x)+Float(m_bounds.w), Float(m_bounds.y) + Float(m_bounds.h), Float(m_bounds.y), -1.f, 1.f); - } - else - { - glOrtho(0,1,1,0,-1,1); - } if (m_buffer_dirty) ReRender(); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); + if (m_bounds_dirty) + { + if (m_use_gpu_transform) + { + GLfloat glbounds[] = {Float(m_bounds.x), Float(m_bounds.y), Float(m_bounds.w), Float(m_bounds.h)}; + m_bounds_ubo.Upload(sizeof(float)*4, glbounds); + } + else + { + GLfloat glbounds[] = {0.0f, 0.0f, 1.0f, 1.0f}; + m_bounds_ubo.Upload(sizeof(float)*4, glbounds); + } + } + m_bounds_dirty = false; + if (m_colour.a < 1.0f) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } - glColor4f(m_colour.r, m_colour.g, m_colour.b, m_colour.a); m_vertex_buffer.Bind(); m_index_buffer.Bind(); + m_bounds_ubo.Bind(); + m_rect_shader.Use(); glEnable(GL_PRIMITIVE_RESTART); glPrimitiveRestartIndex(0xFFFFFFFF); - glVertexPointer(2, GL_FLOAT, 0, 0); - glEnableClientState(GL_VERTEX_ARRAY); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0); glDrawElements(GL_TRIANGLE_STRIP, m_rendered_filled * 5, GL_UNSIGNED_INT, 0); glDrawElements(GL_LINE_LOOP, m_rendered_outline*5, GL_UNSIGNED_INT,(void*)(sizeof(uint32_t)*m_rendered_filled*5)); + glDisableVertexAttribArray(0); glDisable(GL_PRIMITIVE_RESTART); if (m_colour.a < 1.0f) { @@ -149,6 +192,16 @@ void View::ReRender() //m_document.DebugDumpObjects(); debug_output_done = true; + // TODO: Error check here. + m_rect_shader.AttachVertexProgram(RECT_VERT); + m_rect_shader.AttachFragmentProgram(RECT_FRAG); + m_rect_shader.Link(); + m_rect_shader.Use(); + glUniform4f(m_rect_shader.GetUniformLocation("colour"), m_colour.r, m_colour.g, m_colour.b, m_colour.a); + + m_bounds_ubo.SetType(GraphicsBuffer::BufferTypeUniform); + m_bounds_ubo.SetUsage(GraphicsBuffer::BufferUsageStreamDraw); + m_vertex_buffer.SetType(GraphicsBuffer::BufferTypeVertex); m_index_buffer.SetUsage(GraphicsBuffer::BufferUsageStaticDraw); m_index_buffer.SetType(GraphicsBuffer::BufferTypeIndex); @@ -243,6 +296,6 @@ void View::ReRender() m_vertex_buffer.UnMap(); m_index_buffer.UnMap(); - m_bounds_dirty = false; + m_buffer_dirty = false; } diff --git a/src/view.h b/src/view.h index d5fe522..3d94a87 100644 --- a/src/view.h +++ b/src/view.h @@ -5,6 +5,7 @@ #include "document.h" #include "graphicsbuffer.h" #include "framebuffer.h" +#include "shaderprogram.h" namespace IPDF { @@ -12,7 +13,7 @@ namespace IPDF { public: View(Document & document, const Rect & bounds = Rect(0,0,1,1), const Colour & colour = Colour(0.f,0.f,0.f,1.f)) - : m_document(document), m_bounds(bounds), m_colour(colour), m_use_gpu_transform(false), m_bounds_dirty(true), m_buffer_dirty(true) + : m_colour(colour), m_use_gpu_transform(false), m_bounds_dirty(true), m_buffer_dirty(true), m_document(document), m_bounds(bounds) { Debug("View Created - Bounds => {%s}", m_bounds.Str().c_str()); } @@ -36,6 +37,8 @@ namespace IPDF bool m_use_gpu_transform; bool m_bounds_dirty; bool m_buffer_dirty; + ShaderProgram m_rect_shader; + GraphicsBuffer m_bounds_ubo; GraphicsBuffer m_vertex_buffer; GraphicsBuffer m_index_buffer; FrameBuffer m_cached_display; -- 2.20.1