package Ġcom . fer es r . sh aded . opengl Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . opengl . GLES 2 0 . GL _ FRAMEBUFFER Ċ import Ġandroid . opengl . GLES 3 0 . GL _ COLOR _ ATTACHMENT 0 Ċ import Ġandroid . opengl . GLES 3 0 . GL _ FRAMEBUFFER _ COMPLETE Ċ import Ġandroid . opengl . GLES 3 0 . glBind Framebuffer Ċ import Ġandroid . opengl . GLES 3 0 . gl Check Framebuffer Status Ċ import Ġandroid . opengl . GLES 3 0 . gl Framebuffer Texture 2 D Ċ import Ġjavax . micro edition . kh ronos . openg les . GL 1 0 Ċ Ċ internal Ġclass ĠFrame Buffer ( private Ġval Ġis Screen Buffer : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġid : ĠInt Ġ= Ġif Ġ( is Screen Buffer ) Ġ 0 Ġelse Ġinit Frame Buffer () ĊĠĠĠ Ġprivate Ġvar Ġcolor Attachment : ĠTexture ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġbind () Ġ= ĠglBind Framebuffer ( GL _ FRAMEBUFFER , Ġid ) ĊĠĠĠ Ġfun Ġun bind () Ġ= ĠglBind Framebuffer ( GL _ FRAMEBUFFER , Ġ 0 ) ĊĊĠĠĠ Ġfun Ġset Color Attachment ( texture : ĠTexture , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Screen Buffer ) Ġthrow Ġjava . lang . IllegalStateException (" Can 't Ġupdate Ġcolor Ġattachment Ġof Ġthe Ġdefault Ġscreen Ġbuffer ") ĊĠĠĠĠĠĠĠ Ġbind () ĊĠĠĠĠĠĠĠ Ġgl Framebuffer Texture 2 D ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL _ FRAMEBUFFER , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL _ COLOR _ ATTACHMENT 0 Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 0 . GL _ TEXTURE _ 2 D , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Complete ()) Ġthrow ĠIllegalStateException (" Could Ġnot Ġattach Ġcolor Ġtexture Ġfor Ġframebuffer Ġ$ id ") ĊĠĠĠĠĠĠĠ Ġthis . color Attachment Ġ= Ġtexture ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Complete (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġbind () ĊĠĠĠĠĠĠĠ Ġreturn Ġgl Check Framebuffer Status ( GL _ FRAMEBUFFER ) Ġ== ĠGL _ FRAMEBUFFER _ COMPLETE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy Into ( bitmap Ġ: ĠBitmap ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġbind () ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġget Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! success ) Ġthrow ĠIllegalStateException (" Could Ġnot Ġretrieve Ġbitmap Ġfrom Ġframebuffer Ġ$ id ") ĊĠĠĠĠĠĠĠ Ġun bind () ĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete () Ġ{ ĊĠĠĠĠĠĠĠ Ġun bind () ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Screen Buffer ) Ġdelete Frame Buffer ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġexternal Ġfun Ġinit Frame Buffer (): ĠInt ĊĠĠĠ Ġprivate Ġexternal Ġfun Ġget Bitmap ( bitmap : ĠBitmap ): ĠBoolean ĊĠĠĠ Ġprivate Ġexternal Ġfun Ġdelete Frame Buffer ( id : ĠInt ) Ċ } Ċ