package Ġnet . pt ers . learn opengl . android . scenes . in practice . break out Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroidx . annotation . Raw Res Ċ import Ġnet . pt ers . learn opengl . android . tools . Program Ċ import Ġnet . pt ers . learn opengl . android . tools . Texture Ċ import Ġnet . pt ers . learn opengl . android . tools . load Bitmap Ċ import Ġnet . pt ers . learn opengl . android . tools . read Raw Text File Ċ Ċ class ĠResourceManager ( private Ġval Ġcontext Provider : ĠContext Provider ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġprograms Ġ= Ġmutable Map Of < String , ĠProgram >() ĊĊĠĠĠ Ġprivate Ġval Ġsounds Ġ= Ġmutable Map Of < String , ĠMedia Player >() ĊĊĠĠĠ Ġprivate Ġval Ġtextures Ġ= Ġmutable Map Of < String , ĠTexture >() ĊĊĠĠĠ Ġfun Ġget Sound ( name : ĠString ) Ġ= Ġsounds . getValue ( name ) ĊĊĠĠĠ Ġfun Ġstop Sounds () Ġ= Ġsounds . values . forEach Ġ{ Ġmedia Player Ġ-> ĊĠĠĠĠĠĠĠ Ġmedia Player . stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Texture ( name : ĠString ) Ġ= Ġtextures . getValue ( name ) ĊĊĠĠĠ Ġfun Ġload Program ( name : ĠString , Ġ@ Raw Res Ġvert Shader Id : ĠInt , Ġ@ Raw Res Ġfrag Shader Id : ĠInt ): ĠProgram Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġcontext Provider . getContext (). resources ĊĠĠĠĠĠĠĠ Ġval Ġprogram Ġ= ĠProgram . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . read Raw Text File ( vert Shader Id ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . read Raw Text File ( frag Shader Id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġprograms [ name ] Ġ= Ġprogram ĊĠĠĠĠĠĠĠ Ġreturn Ġprogram ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Sound ( name : ĠString , Ġ@ Raw Res Ġsound Id : ĠInt ): ĠMedia Player Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMedia Player . create ( context Provider . getContext (), Ġsound Id ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsounds [ name ] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Texture ( name : ĠString , Ġ@ Raw Res Ġtexture Id : ĠInt ): ĠTexture Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= Ġload Bitmap ( context Provider . getContext (), Ġtexture Id ) ĊĠĠĠĠĠĠĠ Ġval Ġtexture Ġ= ĠTexture ( bitmap ) ĊĠĠĠĠĠĠĠ Ġtexture . load () ĊĠĠĠĠĠĠĠ Ġtextures [ name ] Ġ= Ġtexture ĊĠĠĠĠĠĠĠ Ġreturn Ġtexture ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Text File (@ Raw Res Ġtext File Id : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġcontext Provider . getContext (). resources . read Raw Text File ( text File Id ) ĊĊĠĠĠ Ġinterface ĠContext Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠgetContext (): ĠContext ĊĠĠĠ Ġ} Ċ } Ċ