// ĠWARNING : ĠFile Ġautogenerated ĠDO ĠNOT Ġmodify Ċ // Ġhttps :// www . kh ronos . org / registry / OpenGL / api / GLES 2 / gl 2 . h Ċ @ file : Suppress (" unused ", Ġ" Red undant Unit ReturnType ") Ċ Ċ package Ġcom . so y wiz . k med ial ayer Ċ Ċ import Ġorg . w 3 c . dom .* Ċ import Ġorg . kh ronos . webgl .* Ċ import Ġkotlin . math .* Ċ Ċ class ĠK ml Gl Js Canvas ( val Ġcanvas : ĠHTML Canvas Element ) Ġ: ĠK ml Gl () Ġ{ ĊĠĠĠ Ġval Ġgl Ġ= Ġcanvas . getContext (" webgl ") Ġas ĠWebGL Rendering Context ĊĠĠĠ Ġprivate Ġval Ġitems Ġ= ĠarrayOf Null s < Any >( 8 Ġ* Ġ 1 0 2 4 ) ĊĠĠĠ Ġprivate Ġval Ġfree List Ġ= Ġ( 1 Ġuntil Ġitems . size ). reversed (). to Mutable List () ĊĠĠĠ Ġprivate Ġfun Ġ< T > ĠT . alloc (): ĠInt Ġ= Ġrun Ġ{ Ġif Ġ( this . as Dynamic (). id Ġ=== Ġundefined ) Ġ{ Ġval Ġindex Ġ= Ġfree List . remove At ( free List . size Ġ- Ġ 1 ); Ġitems [ index ] Ġ= Ġthis ; Ġ( this . as Dynamic ()). id Ġ= Ġindex ; Ġ}; Ġthis . as Dynamic (). id . unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġprivate Ġfun Ġ< T > ĠInt . get (): ĠT Ġ= Ġitems [ this ]. unsafe Cast < T >() ĊĠĠĠ Ġprivate Ġfun Ġ< T > ĠInt . free (): ĠT Ġ= Ġrun Ġ{ Ġval Ġout Ġ= Ġitems [ this ]. unsafe Cast < T >(); Ġfree List Ġ+= Ġthis ; Ġitems [ this ] Ġ= Ġnull ; Ġout Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġactive Texture ( texture : ĠInt ): ĠUnit Ġ= Ġgl . active Texture ( texture ) ĊĠĠĠ Ġoverride Ġfun Ġattach Shader ( program : ĠInt , Ġshader : ĠInt ): ĠUnit Ġ= Ġgl . attach Shader ( program . get (), Ġshader . get ()) ĊĠĠĠ Ġoverride Ġfun Ġbind Attrib Location ( program : ĠInt , Ġindex : ĠInt , Ġname : ĠString ): ĠUnit Ġ= Ġgl . bind Attrib Location ( program . get (), Ġindex , Ġname ) ĊĠĠĠ Ġoverride Ġfun Ġbind Buffer ( target : ĠInt , Ġbuffer : ĠInt ): ĠUnit Ġ= Ġgl . bind Buffer ( target , Ġbuffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġbind Framebuffer ( target : ĠInt , Ġframebuffer : ĠInt ): ĠUnit Ġ= Ġgl . bind Framebuffer ( target , Ġframebuffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġbind Render buffer ( target : ĠInt , Ġrender buffer : ĠInt ): ĠUnit Ġ= Ġgl . bind Render buffer ( target , Ġrender buffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġbind Texture ( target : ĠInt , Ġtexture : ĠInt ): ĠUnit Ġ= Ġgl . bind Texture ( target , Ġtexture . get ()) ĊĠĠĠ Ġoverride Ġfun Ġblend Color ( red : ĠFloat , Ġgreen : ĠFloat , Ġblue : ĠFloat , Ġalpha : ĠFloat ): ĠUnit Ġ= Ġgl . blend Color ( red , Ġgreen , Ġblue , Ġalpha ) ĊĠĠĠ Ġoverride Ġfun Ġblend Equation ( mode : ĠInt ): ĠUnit Ġ= Ġgl . blend Equation ( mode ) ĊĠĠĠ Ġoverride Ġfun Ġblend Equation Separ ate ( mode RGB : ĠInt , Ġmode Alpha : ĠInt ): ĠUnit Ġ= Ġgl . blend Equation Separ ate ( mode RGB , Ġmode Alpha ) ĊĠĠĠ Ġoverride Ġfun Ġblend Func ( sf actor : ĠInt , Ġdf actor : ĠInt ): ĠUnit Ġ= Ġgl . blend Func ( sf actor , Ġdf actor ) ĊĠĠĠ Ġoverride Ġfun Ġblend Func Separ ate ( sf actor RGB : ĠInt , Ġdf actor RGB : ĠInt , Ġs factor Alpha : ĠInt , Ġdf actor Alpha : ĠInt ): ĠUnit Ġ= Ġgl . blend Func Separ ate ( sf actor RGB , Ġdf actor RGB , Ġs factor Alpha , Ġdf actor Alpha ) ĊĠĠĠ Ġoverride Ġfun Ġbuffer Data ( target : ĠInt , Ġsize : ĠInt , Ġdata : ĠK ml Native Buffer , Ġusage : ĠInt ): ĠUnit Ġ= Ġgl . buffer Data ( target , Ġdata . array Buffer , Ġusage ) ĊĠĠĠ Ġoverride Ġfun Ġbuffer Sub Data ( target : ĠInt , Ġoffset : ĠInt , Ġsize : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . buffer Sub Data ( target , Ġoffset , Ġdata . array Buffer ) ĊĠĠĠ Ġoverride Ġfun Ġcheck Framebuffer Status ( target : ĠInt ): ĠInt Ġ= Ġgl . check Framebuffer Status ( target ) ĊĠĠĠ Ġoverride Ġfun Ġclear ( mask : ĠInt ): ĠUnit Ġ= Ġgl . clear ( mask ) ĊĠĠĠ Ġoverride Ġfun Ġclear Color ( red : ĠFloat , Ġgreen : ĠFloat , Ġblue : ĠFloat , Ġalpha : ĠFloat ): ĠUnit Ġ= Ġgl . clear Color ( red , Ġgreen , Ġblue , Ġalpha ) ĊĠĠĠ Ġoverride Ġfun Ġclear Depth f ( d : ĠFloat ): ĠUnit Ġ= Ġgl . clear Depth ( d ) ĊĠĠĠ Ġoverride Ġfun Ġclear Stencil ( s : ĠInt ): ĠUnit Ġ= Ġgl . clear Stencil ( s ) ĊĠĠĠ Ġoverride Ġfun Ġcolor Mask ( red : ĠBoolean , Ġgreen : ĠBoolean , Ġblue : ĠBoolean , Ġalpha : ĠBoolean ): ĠUnit Ġ= Ġgl . color Mask ( red , Ġgreen , Ġblue , Ġalpha ) ĊĠĠĠ Ġoverride Ġfun Ġcompile Shader ( shader : ĠInt ): ĠUnit Ġ= Ġgl . compile Shader ( shader . get ()) ĊĠĠĠ Ġoverride Ġfun Ġcompressed TexImage 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġinternal format : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġborder : ĠInt , Ġimage Size : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . compressed TexImage 2 D ( target , Ġlevel , Ġinternal format , Ġwidth , Ġheight , Ġborder , Ġdata . array Byte ) ĊĠĠĠ Ġoverride Ġfun Ġcompressed Tex Sub Image 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġx offset : ĠInt , Ġy offset : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġformat : ĠInt , Ġimage Size : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . compressed Tex Sub Image 2 D ( target , Ġlevel , Ġx offset , Ġy offset , Ġwidth , Ġheight , Ġformat , Ġdata . array Byte ) ĊĠĠĠ Ġoverride Ġfun Ġcopy TexImage 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġinternal format : ĠInt , Ġx : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġborder : ĠInt ): ĠUnit Ġ= Ġgl . copy TexImage 2 D ( target , Ġlevel , Ġinternal format , Ġx , Ġy , Ġwidth , Ġheight , Ġborder ) ĊĠĠĠ Ġoverride Ġfun Ġcopy Tex Sub Image 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġx offset : ĠInt , Ġy offset : ĠInt , Ġx : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ): ĠUnit Ġ= Ġgl . copy Tex Sub Image 2 D ( target , Ġlevel , Ġx offset , Ġy offset , Ġx , Ġy , Ġwidth , Ġheight ) ĊĠĠĠ Ġoverride Ġfun Ġcreate Program (): ĠInt Ġ= Ġgl . create Program (). alloc () ĊĠĠĠ Ġoverride Ġfun Ġcreate Shader ( type : ĠInt ): ĠInt Ġ= Ġgl . create Shader ( type ). alloc () ĊĠĠĠ Ġoverride Ġfun Ġc ull Face ( mode : ĠInt ): ĠUnit Ġ= Ġgl . c ull Face ( mode ) ĊĠĠĠ Ġoverride Ġfun Ġdelete Buffers ( n : ĠInt , Ġitems : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġgl . delete Buffer ( items . array Int [ p ]. free ()) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġdelete Frame buffers ( n : ĠInt , Ġitems : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġgl . delete Framebuffer ( items . array Int [ p ]. free ()) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġdelete Program ( program : ĠInt ): ĠUnit Ġ= Ġgl . delete Program ( program . get ()) ĊĠĠĠ Ġoverride Ġfun Ġdelete Render buffers ( n : ĠInt , Ġitems : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġgl . delete Render buffer ( items . array Int [ p ]. free ()) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġdelete Shader ( shader : ĠInt ): ĠUnit Ġ= Ġgl . delete Shader ( shader . get ()) ĊĠĠĠ Ġoverride Ġfun Ġdelete Textures ( n : ĠInt , Ġitems : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġgl . delete Texture ( items . array Int [ p ]. free ()) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġdepth Func ( func : ĠInt ): ĠUnit Ġ= Ġgl . depth Func ( func ) ĊĠĠĠ Ġoverride Ġfun Ġdepth Mask ( flag : ĠBoolean ): ĠUnit Ġ= Ġgl . depth Mask ( flag ) ĊĠĠĠ Ġoverride Ġfun Ġdepth Range f ( n : ĠFloat , Ġf : ĠFloat ): ĠUnit Ġ= Ġgl . depth Range ( n , Ġf ) ĊĠĠĠ Ġoverride Ġfun Ġdetach Shader ( program : ĠInt , Ġshader : ĠInt ): ĠUnit Ġ= Ġgl . detach Shader ( program . get (), Ġshader . get ()) ĊĠĠĠ Ġoverride Ġfun Ġdisable ( cap : ĠInt ): ĠUnit Ġ= Ġgl . disable ( cap ) ĊĠĠĠ Ġoverride Ġfun Ġdisable VertexAttrib Array ( index : ĠInt ): ĠUnit Ġ= Ġgl . disable VertexAttrib Array ( index ) ĊĠĠĠ Ġoverride Ġfun Ġdraw Arrays ( mode : ĠInt , Ġfirst : ĠInt , Ġcount : ĠInt ): ĠUnit Ġ= Ġgl . draw Arrays ( mode , Ġfirst , Ġcount ) ĊĠĠĠ Ġoverride Ġfun Ġdraw Elements ( mode : ĠInt , Ġcount : ĠInt , Ġtype : ĠInt , Ġindices : ĠInt ): ĠUnit Ġ= Ġgl . draw Elements ( mode , Ġcount , Ġtype , Ġindices ) ĊĠĠĠ Ġoverride Ġfun Ġenable ( cap : ĠInt ): ĠUnit Ġ= Ġgl . enable ( cap ) ĊĠĠĠ Ġoverride Ġfun Ġenable VertexAttrib Array ( index : ĠInt ): ĠUnit Ġ= Ġgl . enable VertexAttrib Array ( index ) ĊĠĠĠ Ġoverride Ġfun Ġfinish (): ĠUnit Ġ= Ġgl . finish () ĊĠĠĠ Ġoverride Ġfun Ġflush (): ĠUnit Ġ= Ġgl . flush () ĊĠĠĠ Ġoverride Ġfun Ġframebuffer Render buffer ( target : ĠInt , Ġattachment : ĠInt , Ġrender buff ert arget : ĠInt , Ġrender buffer : ĠInt ): ĠUnit Ġ= Ġgl . framebuffer Render buffer ( target , Ġattachment , Ġrender buff ert arget , Ġrender buffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġframebuffer Texture 2 D ( target : ĠInt , Ġattachment : ĠInt , Ġtext arget : ĠInt , Ġtexture : ĠInt , Ġlevel : ĠInt ): ĠUnit Ġ= Ġgl . framebuffer Texture 2 D ( target , Ġattachment , Ġtext arget , Ġtexture . get (), Ġlevel ) ĊĠĠĠ Ġoverride Ġfun Ġfront Face ( mode : ĠInt ): ĠUnit Ġ= Ġgl . front Face ( mode ) ĊĠĠĠ Ġoverride Ġfun Ġgen Buffers ( n : ĠInt , Ġbuffers : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġbuffers . array Int [ p ] Ġ= Ġgl . create Buffer (). alloc () Ġ} ĊĠĠĠ Ġoverride Ġfun Ġgenerate Mip map ( target : ĠInt ): ĠUnit Ġ= Ġgl . generate Mip map ( target ) ĊĠĠĠ Ġoverride Ġfun Ġgen Frame buffers ( n : ĠInt , Ġframe buffers : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġframe buffers . array Int [ p ] Ġ= Ġgl . create Framebuffer (). alloc () Ġ} ĊĠĠĠ Ġoverride Ġfun Ġgen Render buffers ( n : ĠInt , Ġrender buffers : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġrender buffers . array Int [ p ] Ġ= Ġgl . create Render buffer (). alloc () Ġ} ĊĠĠĠ Ġoverride Ġfun Ġgen Textures ( n : ĠInt , Ġtextures : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġfor Ġ( p Ġin Ġ 0 Ġuntil Ġn ) Ġtextures . array Int [ p ] Ġ= Ġgl . create Texture (). alloc () Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Active Attrib ( program : ĠInt , Ġindex : ĠInt , Ġbuf Size : ĠInt , Ġlength : ĠK ml Native Buffer , Ġsize : ĠK ml Native Buffer , Ġtype : ĠK ml Native Buffer , Ġname : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġinfo Ġ= Ġgl . getActive Attrib ( program . get (), Ġindex ) !! ; Ġsize . array Int [ 0 ] Ġ= Ġinfo . size ; Ġtype . array Int [ 0 ] Ġ= Ġinfo . type ; Ġname . put Ascii String ( info . name ); Ġlength . array Int [ 0 ] Ġ= Ġinfo . size Ġ+ Ġ 1 Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Active Uniform ( program : ĠInt , Ġindex : ĠInt , Ġbuf Size : ĠInt , Ġlength : ĠK ml Native Buffer , Ġsize : ĠK ml Native Buffer , Ġtype : ĠK ml Native Buffer , Ġname : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġinfo Ġ= Ġgl . getActive Uniform ( program . get (), Ġindex ) !! ; Ġsize . array Int [ 0 ] Ġ= Ġinfo . size ; Ġtype . array Int [ 0 ] Ġ= Ġinfo . type ; Ġname . put Ascii String ( info . name ); Ġlength . array Int [ 0 ] Ġ= Ġinfo . size Ġ+ Ġ 1 Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Attached Shaders ( program : ĠInt , Ġmax Count : ĠInt , Ġcount : ĠK ml Native Buffer , Ġshaders : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġas h aders Ġ= Ġgl . get Attached Shaders ( program . get ()) !! ; Ġcount . array Int [ 0 ] Ġ= Ġas h aders . size ; Ġfor Ġ( n Ġin Ġ 0 Ġuntil Ġmin ( max Count , Ġas h aders . size )) Ġshaders . array Int [ n ] Ġ= Ġas h aders [ n ]. as Dynamic (). id . unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Attrib Location ( program : ĠInt , Ġname : ĠString ): ĠInt Ġ= Ġgl . get Attrib Location ( program . get (), Ġname ) ĊĠĠĠ Ġoverride Ġfun Ġget UniformLocation ( program : ĠInt , Ġname : ĠString ): ĠInt Ġ= Ġrun Ġ{ Ġval Ġpr g Ġ= Ġprogram . get < Web GL Program >(). as Dynamic (); Ġif Ġ( prg . uniform s Ġ=== Ġundefined ) Ġpr g . uniform s Ġ= Ġjs (" ({}) "); Ġif Ġ( prg . uniform s [ name ] Ġ=== Ġundefined ) Ġpr g . uniform s [ name ] Ġ= Ġgl . get UniformLocation ( prg , Ġname ). alloc (); Ġreturn Ġpr g . uniform s [ name ]. unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Boolean v ( pname : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġdata . array Int [ 0 ] Ġ= Ġgl . getParameter ( pname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Buffer Parameter iv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get Buffer Parameter ( target , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Error (): ĠInt Ġ= Ġgl . getError () ĊĠĠĠ Ġoverride Ġfun Ġget Float v ( pname : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġdata . array Float [ 0 ] Ġ= Ġgl . getParameter ( pname ). unsafe Cast < Float >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Framebuffer Attachment Parameter iv ( target : ĠInt , Ġattachment : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get Framebuffer Attachment Parameter ( target , Ġattachment , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Integer v ( pname : ĠInt , Ġdata : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġdata . array Int [ 0 ] Ġ= Ġgl . getParameter ( pname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Program Info Log ( program : ĠInt , Ġbuf Size : ĠInt , Ġlength : ĠK ml Native Buffer , Ġinfo Log : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġstr Ġ= Ġgl . get Program Info Log ( program . get ()) Ġ?: Ġ""; Ġlength . array Int [ 0 ] Ġ= Ġstr . length ; Ġinfo Log . put Ascii String ( str ) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Render buffer Parameter iv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get Render buffer Parameter ( target , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Program iv ( program : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( pname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINFO _ LOG _ LENGTH Ġ-> Ġparams . array Int [ 0 ] Ġ= Ġgl . get Program Info Log ( program . get ()) ?. length ?. plus ( 1 ) Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġparams . array Int [ 0 ] Ġ= Ġgl . get Program Parameter ( program . get (), Ġpname ). unsafe Cast < Int >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Shader iv ( shader : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( pname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINFO _ LOG _ LENGTH Ġ-> Ġparams . array Int [ 0 ] Ġ= Ġgl . get Shader Info Log ( shader . get ()) ?. length ?. plus ( 1 ) Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġparams . array Int [ 0 ] Ġ= Ġgl . get Shader Parameter ( shader . get (), Ġpname ). unsafe Cast < Int >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Shader Info Log ( shader : ĠInt , Ġbuf Size : ĠInt , Ġlength : ĠK ml Native Buffer , Ġinfo Log : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġstr Ġ= Ġgl . get Shader Info Log ( shader . get ()) Ġ?: Ġ""; Ġlength . array Int [ 0 ] Ġ= Ġstr . length ; Ġinfo Log . put Ascii String ( str ) Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Shader Precision Format ( sh ad ertype : ĠInt , Ġprecision type : ĠInt , Ġrange : ĠK ml Native Buffer , Ġprecision : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġinfo Ġ= Ġgl . get Shader Precision Format ( sh ad ertype , Ġprecision type ); Ġif Ġ( info Ġ!= Ġnull ) Ġ{ Ġrange . array Int [ 0 ] Ġ= Ġinfo . range Min ; Ġrange . array Int [ 1 ] Ġ= Ġinfo . range Max ; Ġprecision . array Int [ 0 ] Ġ= Ġinfo . precision Ġ} Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Shader Source ( shader : ĠInt , Ġbuf Size : ĠInt , Ġlength : ĠK ml Native Buffer , Ġsource : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġval Ġstr Ġ= Ġgl . get Shader Source ( shader . get ()) Ġ?: Ġ""; Ġlength . array Int [ 0 ] Ġ= Ġstr . length ; Ġsource . put Ascii String ( str ) Ġ} ĊĠĠĠ Ġoverride Ġfun ĠgetString ( name : ĠInt ): ĠString Ġ= Ġgl . getParameter ( name ). unsafe Cast < String >() ĊĠĠĠ Ġoverride Ġfun Ġget TexParameter fv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Float [ 0 ] Ġ= Ġgl . get TexParameter ( target , Ġpname ). unsafe Cast < Float >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget TexParameter iv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get TexParameter ( target , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Uniform fv ( program : ĠInt , Ġlocation : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Float [ 0 ] Ġ= Ġgl . get Uniform ( program . get (), Ġlocation . get ()). unsafe Cast < Float >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Uniform iv ( program : ĠInt , Ġlocation : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get Uniform ( program . get (), Ġlocation . get ()). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Vertex At tri bf v ( index : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Float [ 0 ] Ġ= Ġgl . get VertexAttrib ( index , Ġpname ). unsafe Cast < Float >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget VertexAttrib iv ( index : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġparams . array Int [ 0 ] Ġ= Ġgl . get VertexAttrib ( index , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget VertexAttrib Pointer v ( index : ĠInt , Ġpname : ĠInt , Ġpointer : ĠK ml Native Buffer ): ĠUnit Ġ= Ġrun Ġ{ Ġpointer . array Int [ 0 ] Ġ= Ġgl . get VertexAttrib ( index , Ġpname ). unsafe Cast < Int >() Ġ} ĊĠĠĠ Ġoverride Ġfun Ġhint ( target : ĠInt , Ġmode : ĠInt ): ĠUnit Ġ= Ġgl . hint ( target , Ġmode ) ĊĠĠĠ Ġoverride Ġfun Ġis Buffer ( buffer : ĠInt ): ĠBoolean Ġ= Ġgl . is Buffer ( buffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġis Enabled ( cap : ĠInt ): ĠBoolean Ġ= Ġgl . isEnabled ( cap ) ĊĠĠĠ Ġoverride Ġfun Ġis Framebuffer ( framebuffer : ĠInt ): ĠBoolean Ġ= Ġgl . is Framebuffer ( framebuffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġis Program ( program : ĠInt ): ĠBoolean Ġ= Ġgl . is Program ( program . get ()) ĊĠĠĠ Ġoverride Ġfun Ġis Render buffer ( render buffer : ĠInt ): ĠBoolean Ġ= Ġgl . is Render buffer ( render buffer . get ()) ĊĠĠĠ Ġoverride Ġfun Ġis Shader ( shader : ĠInt ): ĠBoolean Ġ= Ġgl . is Shader ( shader . get ()) ĊĠĠĠ Ġoverride Ġfun Ġis Texture ( texture : ĠInt ): ĠBoolean Ġ= Ġgl . is Texture ( texture . get ()) ĊĠĠĠ Ġoverride Ġfun ĠlineWidth ( width : ĠFloat ): ĠUnit Ġ= Ġgl . lineWidth ( width ) ĊĠĠĠ Ġoverride Ġfun Ġlink Program ( program : ĠInt ): ĠUnit Ġ= Ġgl . link Program ( program . get ()) ĊĠĠĠ Ġoverride Ġfun Ġpixel Store i ( pname : ĠInt , Ġparam : ĠInt ): ĠUnit Ġ= Ġgl . pixel Store i ( pname , Ġparam ) ĊĠĠĠ Ġoverride Ġfun Ġpolygon Offset ( factor : ĠFloat , Ġunits : ĠFloat ): ĠUnit Ġ= Ġgl . polygon Offset ( factor , Ġunits ) ĊĠĠĠ Ġoverride Ġfun Ġread Pixels ( x : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġformat : ĠInt , Ġtype : ĠInt , Ġpixels : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . read Pixels ( x , Ġy , Ġwidth , Ġheight , Ġformat , Ġtype , Ġpixels . array U Byte ) ĊĠĠĠ Ġoverride Ġfun Ġrelease Shader Compiler (): ĠUnit Ġ= ĠUnit ĊĠĠĠ Ġoverride Ġfun Ġrender buffer Storage ( target : ĠInt , Ġinternal format : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ): ĠUnit Ġ= Ġgl . render buffer Storage ( target , Ġinternal format , Ġwidth , Ġheight ) ĊĠĠĠ Ġoverride Ġfun Ġsample Coverage ( value : ĠFloat , Ġinvert : ĠBoolean ): ĠUnit Ġ= Ġgl . sample Coverage ( value , Ġinvert ) ĊĠĠĠ Ġoverride Ġfun Ġsc issor ( x : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ): ĠUnit Ġ= Ġgl . sc issor ( x , Ġy , Ġwidth , Ġheight ) ĊĠĠĠ Ġoverride Ġfun Ġshader Binary ( count : ĠInt , Ġshaders : ĠK ml Native Buffer , Ġbinary format : ĠInt , Ġbinary : ĠK ml Native Buffer , Ġlength : ĠInt ): ĠUnit Ġ= Ġthrow ĠK ml Gl Exception (" shader Binary Ġnot Ġimplemented Ġin ĠWeb gl ") ĊĠĠĠ Ġoverride Ġfun Ġshader Source ( shader : ĠInt , Ġstring : ĠString ): ĠUnit Ġ= Ġrun Ġ{ Ġgl . shader Source ( shader . get (), Ġ"# ifdef ĠGL _ ES \ n precision Ġmedi ump Ġfloat ;\ n # endif \ n $ string ") Ġ} ĊĠĠĠ Ġoverride Ġfun Ġstencil Func ( func : ĠInt , Ġref : ĠInt , Ġmask : ĠInt ): ĠUnit Ġ= Ġgl . stencil Func ( func , Ġref , Ġmask ) ĊĠĠĠ Ġoverride Ġfun Ġstencil Func Separ ate ( face : ĠInt , Ġfunc : ĠInt , Ġref : ĠInt , Ġmask : ĠInt ): ĠUnit Ġ= Ġgl . stencil Func Separ ate ( face , Ġfunc , Ġref , Ġmask ) ĊĠĠĠ Ġoverride Ġfun Ġstencil Mask ( mask : ĠInt ): ĠUnit Ġ= Ġgl . stencil Mask ( mask ) ĊĠĠĠ Ġoverride Ġfun Ġstencil Mask Separ ate ( face : ĠInt , Ġmask : ĠInt ): ĠUnit Ġ= Ġgl . stencil Mask Separ ate ( face , Ġmask ) ĊĠĠĠ Ġoverride Ġfun Ġstencil Op ( fail : ĠInt , Ġz fail : ĠInt , Ġz pass : ĠInt ): ĠUnit Ġ= Ġgl . stencil Op ( fail , Ġz fail , Ġz pass ) ĊĠĠĠ Ġoverride Ġfun Ġstencil Op Separ ate ( face : ĠInt , Ġs fail : ĠInt , Ġdp fail : ĠInt , Ġd pp ass : ĠInt ): ĠUnit Ġ= Ġgl . stencil Op Separ ate ( face , Ġs fail , Ġdp fail , Ġd pp ass ) ĊĠĠĠ Ġoverride Ġfun Ġtex Image 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġinternal format : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġborder : ĠInt , Ġformat : ĠInt , Ġtype : ĠInt , Ġpixels : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . tex Image 2 D ( target , Ġlevel , Ġinternal format , Ġwidth , Ġheight , Ġborder , Ġformat , Ġtype , Ġpixels . array U Byte ) ĊĠĠĠ Ġoverride Ġfun Ġtex Image 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġinternal format : ĠInt , Ġformat : ĠInt , Ġtype : ĠInt , Ġdata : ĠK ml Native ImageData ): ĠUnit Ġ= Ġgl . tex Image 2 D ( target , Ġlevel , Ġinternal format , Ġformat , Ġtype , Ġ( data Ġas ĠK ml Img Native ImageData ). img ) ĊĠĠĠ Ġoverride Ġfun Ġtex Parameter f ( target : ĠInt , Ġpname : ĠInt , Ġparam : ĠFloat ): ĠUnit Ġ= Ġgl . tex Parameter f ( target , Ġpname , Ġparam ) ĊĠĠĠ Ġoverride Ġfun Ġtex Parameter fv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . tex Parameter f ( target , Ġpname , Ġparams . array Float [ 0 ]) ĊĠĠĠ Ġoverride Ġfun Ġtex Parameter i ( target : ĠInt , Ġpname : ĠInt , Ġparam : ĠInt ): ĠUnit Ġ= Ġgl . tex Parameter i ( target , Ġpname , Ġparam ) ĊĠĠĠ Ġoverride Ġfun Ġtex Parameter iv ( target : ĠInt , Ġpname : ĠInt , Ġparams : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . tex Parameter i ( target , Ġpname , Ġparams . array Int [ 0 ]) ĊĠĠĠ Ġoverride Ġfun Ġtex Sub Image 2 D ( target : ĠInt , Ġlevel : ĠInt , Ġx offset : ĠInt , Ġy offset : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġformat : ĠInt , Ġtype : ĠInt , Ġpixels : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . tex Sub Image 2 D ( target , Ġlevel , Ġx offset , Ġy offset , Ġwidth , Ġheight , Ġformat , Ġtype , Ġpixels . array U Byte ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 1 f ( location : ĠInt , Ġv 0 : ĠFloat ): ĠUnit Ġ= Ġgl . uniform 1 f ( location . get (), Ġv 0 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 1 fv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 1 fv ( location . get (), Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 1 i ( location : ĠInt , Ġv 0 : ĠInt ): ĠUnit Ġ= Ġgl . uniform 1 i ( location . get (), Ġv 0 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 1 iv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 1 iv ( location . get (), Ġvalue . array Int ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 2 f ( location : ĠInt , Ġv 0 : ĠFloat , Ġv 1 : ĠFloat ): ĠUnit Ġ= Ġgl . uniform 2 f ( location . get (), Ġv 0 , Ġv 1 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 2 fv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 2 fv ( location . get (), Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 2 i ( location : ĠInt , Ġv 0 : ĠInt , Ġv 1 : ĠInt ): ĠUnit Ġ= Ġgl . uniform 2 i ( location . get (), Ġv 0 , Ġv 1 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 2 iv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 2 iv ( location . get (), Ġvalue . array Int ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 3 f ( location : ĠInt , Ġv 0 : ĠFloat , Ġv 1 : ĠFloat , Ġv 2 : ĠFloat ): ĠUnit Ġ= Ġgl . uniform 3 f ( location . get (), Ġv 0 , Ġv 1 , Ġv 2 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 3 fv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 3 fv ( location . get (), Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 3 i ( location : ĠInt , Ġv 0 : ĠInt , Ġv 1 : ĠInt , Ġv 2 : ĠInt ): ĠUnit Ġ= Ġgl . uniform 3 i ( location . get (), Ġv 0 , Ġv 1 , Ġv 2 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 3 iv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 3 iv ( location . get (), Ġvalue . array Int ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 4 f ( location : ĠInt , Ġv 0 : ĠFloat , Ġv 1 : ĠFloat , Ġv 2 : ĠFloat , Ġv 3 : ĠFloat ): ĠUnit Ġ= Ġgl . uniform 4 f ( location . get (), Ġv 0 , Ġv 1 , Ġv 2 , Ġv 3 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 4 fv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 4 fv ( location . get (), Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 4 i ( location : ĠInt , Ġv 0 : ĠInt , Ġv 1 : ĠInt , Ġv 2 : ĠInt , Ġv 3 : ĠInt ): ĠUnit Ġ= Ġgl . uniform 4 i ( location . get (), Ġv 0 , Ġv 1 , Ġv 2 , Ġv 3 ) ĊĠĠĠ Ġoverride Ġfun Ġuniform 4 iv ( location : ĠInt , Ġcount : ĠInt , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform 4 iv ( location . get (), Ġvalue . array Int ) ĊĠĠĠ Ġoverride Ġfun Ġuniform Matrix 2 fv ( location : ĠInt , Ġcount : ĠInt , Ġtranspose : ĠBoolean , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform Matrix 2 fv ( location . get (), Ġtranspose , Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform Matrix 3 fv ( location : ĠInt , Ġcount : ĠInt , Ġtranspose : ĠBoolean , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform Matrix 3 fv ( location . get (), Ġtranspose , Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuniform Matrix 4 fv ( location : ĠInt , Ġcount : ĠInt , Ġtranspose : ĠBoolean , Ġvalue : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . uniform Matrix 4 fv ( location . get (), Ġtranspose , Ġvalue . array Float ) ĊĠĠĠ Ġoverride Ġfun Ġuse Program ( program : ĠInt ): ĠUnit Ġ= Ġgl . use Program ( program . get ()) ĊĠĠĠ Ġoverride Ġfun Ġvalidate Program ( program : ĠInt ): ĠUnit Ġ= Ġgl . validate Program ( program . get ()) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 1 f ( index : ĠInt , Ġx : ĠFloat ): ĠUnit Ġ= Ġgl . vertex Attrib 1 f ( index , Ġx ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 1 fv ( index : ĠInt , Ġv : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . vertex Attrib 1 fv ( index , Ġv ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 2 f ( index : ĠInt , Ġx : ĠFloat , Ġy : ĠFloat ): ĠUnit Ġ= Ġgl . vertex Attrib 2 f ( index , Ġx , Ġy ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 2 fv ( index : ĠInt , Ġv : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . vertex Attrib 2 fv ( index , Ġv ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 3 f ( index : ĠInt , Ġx : ĠFloat , Ġy : ĠFloat , Ġz : ĠFloat ): ĠUnit Ġ= Ġgl . vertex Attrib 3 f ( index , Ġx , Ġy , Ġz ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 3 fv ( index : ĠInt , Ġv : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . vertex Attrib 3 fv ( index , Ġv ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 4 f ( index : ĠInt , Ġx : ĠFloat , Ġy : ĠFloat , Ġz : ĠFloat , Ġw : ĠFloat ): ĠUnit Ġ= Ġgl . vertex Attrib 4 f ( index , Ġx , Ġy , Ġz , Ġw ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib 4 fv ( index : ĠInt , Ġv : ĠK ml Native Buffer ): ĠUnit Ġ= Ġgl . vertex Attrib 4 fv ( index , Ġv ) ĊĠĠĠ Ġoverride Ġfun Ġvertex Attrib Pointer ( index : ĠInt , Ġsize : ĠInt , Ġtype : ĠInt , Ġnormalized : ĠBoolean , Ġstride : ĠInt , Ġpointer : ĠInt ): ĠUnit Ġ= Ġgl . vertex Attrib Pointer ( index , Ġsize , Ġtype , Ġnormalized , Ġstride , Ġpointer ) ĊĠĠĠ Ġoverride Ġfun Ġviewport ( x : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ): ĠUnit Ġ= Ġgl . viewport ( x , Ġy , Ġwidth , Ġheight ) Ċ } Ċ