package Ġpw . bin om Ċ Ċ import Ġm og ot . gl . Material GLSL Ċ import Ġm og ot . Texture 2 D Ċ import Ġm og ot . gl . GL Ċ import Ġm og ot . gl . Shader Ċ import Ġm og ot . math . Matrix 4 fc Ċ import Ġm og ot . math . Vector 4 f Ċ import Ġm og ot . rendering . Display Ċ Ċ internal Ġclass ĠSolid Texture Material ( gl : ĠGL ) Ġ: ĠMaterial GLSL ( gl ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġshader . close () ĊĠĠĠĠĠĠĠ Ġsuper . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdiffuse Color Ġ= ĠVector 4 f ( 1 f , Ġ 1 f , Ġ 1 f , Ġ 1 f ) ĊĠĠĠ Ġoverride Ġval Ġshader : ĠShader Ġ= ĠShader ( gl , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertex Ġ= Ġ""" # version Ġ 4 4 0 Ġcore Ċ Ċ layout ( location Ġ= Ġ 0 ) Ġin Ġvec 3 Ġg les _ vertex ; Ċ layout ( location Ġ= Ġ 2 ) Ġin Ġvec 2 Ġg les _ uv ; Ċ Ċ uniform Ġmat 4 Ġg les _ projection ; Ċ uniform Ġmat 4 Ġg les _ model ; Ċ out Ġmedi ump Ġvec 2 ĠUV ; Ċ Ċ void Ġmain () Ġ{ ĊĠĠĠ Ġgl _ Position Ġ= Ġg les _ projection Ġ* Ġg les _ model Ġ* Ġvec 4 ( gles _ vertex , Ġ 1 . 0 f ); ĊĠĠĠ ĠUV Ġ= Ġg les _ uv ; Ċ } """, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= Ġ""" # version Ġ 4 4 0 Ġcore Ċ Ċ uniform Ġvec 4 Ġdiffuse Color ; Ċ out Ġvec 4 Ġcolor ; Ċ uniform Ġsampler 2 D Ġtex ; Ċ in Ġlo wp Ġvec 2 ĠUV ; Ċ Ċ void Ġmain () Ġ{ ĊĠĠĠ Ġcolor Ġ= Ġtexture ( tex , ĠUV ). rgba Ġ+ Ġdiffuse Color ; Ċ } Ċ """ ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvar Ġtex : ĠTexture 2 D ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tex Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgl . active Texture ( gl . TEXTURE 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgl . bind Texture ( gl . TEXTURE _ 2 D , Ġtex !!. gl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshader . uniform (" tex ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgl . active Texture ( gl . TEXTURE 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgl . bind Texture ( gl . TEXTURE _ 2 D , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġuse ( model : ĠMatrix 4 fc , Ġmodel View : ĠMatrix 4 fc , Ġprojection : ĠMatrix 4 fc , Ġcontext : ĠDisplay . Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . use ( model , Ġmodel View , Ġprojection , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tex Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgl . bind Texture ( gl . TEXTURE _ 2 D , Ġtex !!. gl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshader . uniform (" diffuse Color ", Ġdiffuse Color . x , Ġdiffuse Color . y , Ġdiffuse Color . z , Ġdiffuse Color . w ) ĊĠĠĠ Ġ} Ċ }