package Ġpw . bin om . material Ċ Ċ import Ġm og ot . material . Material Loader Ċ import Ġpw . bin om . Desktop Assert Task Ċ import Ġpw . bin om . as UTF 8 ByteArray Ċ import Ġpw . bin om . io . wrap Ċ import Ġpw . bin om . io . writeInt Ċ import Ġpw . bin om . io . write UTF 8 String Ċ import Ġpw . bin om . material . compiler . Compiler Ċ import Ġpw . bin om . material . generator . gles 3 0 0 . GLES 3 0 0 Generator Ċ import Ġpw . bin om . material . lex . Parser Ċ import Ġjava . io . File Ċ import Ġjava . io . OutputStream Ċ import Ġjava . io . String Reader Ċ Ċ object ĠMaterial Compiler Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcompile ( text : ĠString , ĠoutputStream : ĠOutputStream ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠParser ( String Reader ( text )) ĊĠĠĠĠĠĠĠ Ġval Ġcompiler Ġ= ĠCompiler ( parser ) ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠGLES 3 0 0 Generator . mix ( listOf ( compiler )) ĊĠĠĠĠĠĠĠ Ġ// val Ġgenerator Ġ= ĠGLES 3 0 0 Generator ( compiler ) ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠoutputStream . wrap () ĊĠĠĠĠĠĠĠ Ġout . writeInt ( 2 ) ĊĠĠĠĠĠĠĠ Ġout . write UTF 8 String ( Material Loader . GLES 3 0 0 _ VP ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Vp Ġ= Ġshader . vp . as UTF 8 ByteArray () ĊĠĠĠĠĠĠĠ Ġout . writeInt ( data Vp . size ) ĊĠĠĠĠĠĠĠ Ġout . write ( data Vp ) ĊĠĠĠĠĠĠĠ Ġout . write UTF 8 String ( Material Loader . GLES 3 0 0 _ FP ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Fp Ġ= Ġshader . fp . as UTF 8 ByteArray () ĊĠĠĠĠĠĠĠ Ġout . writeInt ( data Fp . size ) ĊĠĠĠĠĠĠĠ Ġout . write ( data Fp ) ĊĠĠĠĠĠĠĠ Ġout . flush () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcompile ( file : ĠFile , ĠoutputStream : ĠOutputStream ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġfile . read Text () ĊĠĠĠĠĠĠĠ Ġcompile ( text , ĠoutputStream ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcompile ( file : ĠFile , ĠoutputFile : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ ĠoutputFile . parent File . mkdir s () ĊĠĠĠĠĠĠĠ Ġif Ġ(! Desktop Assert Task . isFile Changed ( file , ĠoutputFile )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ file : ĠUP - TO - DATE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠoutputFile . output Stream (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile ( file , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ file : Ġcompiled ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }