package Ġcom . github . dw ur ste is en . min ig dx . file Ċ Ċ import Ġcom . dw ur ste is en . min ig dx . scene . api . common . Id Ċ import Ġcom . github . dw ur ste is en . min ig dx . GL Ċ import Ġcom . github . dw ur ste is en . min ig dx . Game Context Ċ import Ġcom . github . dw ur ste is en . min ig dx . shaders . Texture Reference Ċ Ċ class ĠTexture Ġprivate Ġconstructor ( ĊĠĠĠ Ġval Ġid : ĠId Ġ= ĠId (), ĊĠĠĠ Ġvar Ġtexture Image : ĠTexture Image ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġtexture Data : ĠByteArray , ĊĠĠĠ Ġvar Ġwidth : ĠInt , ĊĠĠĠ Ġvar Ġheight : ĠInt , ĊĠĠĠ Ġvar Ġhas Alpha : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠAsset Ġ{ ĊĠĠĠ Ġvar Ġtexture Reference : ĠTexture Reference ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval ĠonLoad Ġ= Ġmutable ListOf <( Asset ) Ġ-> ĠUnit >() ĊĊĠĠĠ Ġconstructor ( id : ĠId , Ġsource : ĠTexture Image , Ġhas Alpha : ĠBoolean ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġtexture Image Ġ= Ġsource , ĊĠĠĠĠĠĠĠ Ġtexture Data Ġ= Ġbyte ArrayOf (), ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġsource . width , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġsource . height , ĊĠĠĠĠĠĠĠ Ġhas Alpha Ġ= Ġhas Alpha ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġconstructor ( id : ĠId , Ġtexture Data : ĠByteArray , Ġwidth : ĠInt , Ġheight : ĠInt , Ġhas Alpha : ĠBoolean ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġtexture Image Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtexture Data Ġ= Ġtexture Data , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġwidth , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġheight , ĊĠĠĠĠĠĠĠ Ġhas Alpha Ġ= Ġhas Alpha ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġload ( game Context : ĠGame Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgl Ġ= Ġgame Context . gl ĊĠĠĠĠĠĠĠ Ġval Ġtexture Ġ= Ġtexture Reference Ġ?: Ġgl . create Texture () ĊĠĠĠĠĠĠĠ Ġgl . bind Texture ( GL . TEXTURE _ 2 D , Ġtexture ) ĊĊĠĠĠĠĠĠĠ Ġgl . tex Parameter i ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ 2 D , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ MAG _ FILTER , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . NE ARE ST ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġgl . tex Parameter i ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ 2 D , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ MIN _ FILTER , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . NE ARE ST ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtx Ġ= Ġtexture Image ĊĠĠĠĠĠĠĠ Ġif Ġ( tx Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgl . tex Image 2 D ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ 2 D , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . RGBA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . RGBA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . UNSIGNED _ BYTE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgl . tex Image 2 D ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . TEXTURE _ 2 D , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . RGBA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . RGBA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL . UNSIGNED _ BYTE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexture Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtexture Reference Ġ= Ġtexture ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvoke Ġall Ġcallbacks ĊĠĠĠĠĠĠĠ ĠonLoad . forEach Ġ{ Ġit . invoke ( this ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad ( callback : Ġ( Asset ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠonLoad . add ( callback ) ĊĠĠĠ Ġ} Ċ } Ċ