package Ġio . ro ver . core . assets Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* ĠEnsure Ġthe Ġbitmap Ġasset Ġis Ġuploaded Ġto Ġthe ĠGPU . Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġeffectively Ġthe Ġfirst Ġlayer Ġof Ġcache . Ċ Ġ*/ Ċ class ĠBitmap W arm Gpu Cache Stage ( ĊĠĠĠ Ġprivate Ġval Ġnext Stage : ĠS ynchronous Pipeline Stage < URL , ĠBitmap > Ċ ) Ġ: ĠS ynchronous Pipeline Stage < URL , ĠBitmap > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrequest ( input : ĠURL ): ĠPipeline Stage Result < Bitmap > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnext Stage . request ( input ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAsk ĠAndroid Ġto Ġupload Ġthe Ġbitmap Ġinto ĠGPU Ġmemory . Ġ ĠNotice Ġthat Ġwe 're Ġable Ġto Ġdo Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġin Ġthis Ġcontext Ġof Ġour Ġbackground Ġthread Ġpool , Ġwhich Ġmeans Ġwe Ġcan Ġentirely Ġavoid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġexpensive Ġtexture Ġuploads Ġhappening Ġin Ġthe Ġhot - path Ġof Ġrendering Ġframes Ġon Ġthe ĠUI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthread . ĠThis Ġis Ġalso Ġan ĠL RU Ġa kin Ġto Ġour ĠIn Memory Bitmap Cache Stage Ġstage ; Ġbut Ġin Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcase ĠAndroid 's Ġframework Ġmaintains Ġthe ĠL RU Ġitself . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPipeline Stage Result . Successful Ġ-> Ġthis . output . prepare To Draw () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ