package Ġno . daniel z eller . blur behind lib . opengl čĊč Ċ import Ġandroid . opengl . GLES 2 0 č Ċ import Ġandroid . opengl . GLES 2 0 .* čĊč Ċ class ĠRender Texture Ġ{ čĊčĊĠĠĠ Ġprivate Ġvar Ġf bo Width Ġ= Ġ 5 1 2 čĊĠĠĠ Ġprivate Ġvar Ġf bo Height Ġ= Ġ 5 1 2 čĊčĊĠĠĠ Ġprivate Ġvar Ġrender Texture ID : ĠInt Ġ= Ġ 0 čĊčĊĠĠĠ Ġinternal Ġvar Ġf bo Tex : ĠInt Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġrender Buffer Id : ĠInt Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġinternal Format Ġ= ĠGL _ RGBA čĊĠĠĠ Ġprivate Ġvar Ġformat Ġ= ĠGL _ RGBA čĊčĊĠĠĠ Ġfun Ġinitiate Frame Buffer ( width : ĠInt , Ġheight : ĠInt ): ĠInt Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġf bo Width Ġ= Ġwidth čĊĠĠĠĠĠĠĠ Ġf bo Height Ġ= Ġheight čĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= ĠInt Array ( 1 ) čĊĠĠĠĠĠĠĠ Ġ// generate Ġf bo Ġid čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Gen Frame buffers ( 1 , Ġtemp , Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġrender Texture ID Ġ= Ġtemp [ 0 ] čĊĠĠĠĠĠĠĠ Ġ// generate Ġtexture čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Gen Textures ( 1 , Ġtemp , Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġf bo Tex Ġ= Ġtemp [ 0 ] čĊĠĠĠĠĠĠĠ Ġ// generate Ġrender Ġbuffer čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Gen Render buffers ( 1 , Ġtemp , Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġrender Buffer Id Ġ= Ġtemp [ 0 ] čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Framebuffer ( GLES 2 0 . GL _ FRAMEBUFFER , Ġrender Texture ID ) čĊĠĠĠĠĠĠĠ Ġ// čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Texture ( GLES 2 0 . GL _ TEXTURE _ 2 D , Ġf bo Tex ) čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl TexImage 2 D ( GLES 2 0 . GL _ TEXTURE _ 2 D , Ġ 0 , Ġinternal Format , Ġwidth , Ġheight , Ġ 0 , Ġformat , ĠGLES 2 0 . GL _ UNSIGNED _ BYTE , Ġnull ) čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl TexParameter i ( GLES 2 0 . GL _ TEXTURE _ 2 D , ĠGLES 2 0 . GL _ TEXTURE _ WRAP _ S , ĠGLES 2 0 . GL _ REPEAT ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl TexParameter i ( GLES 2 0 . GL _ TEXTURE _ 2 D , ĠGLES 2 0 . GL _ TEXTURE _ WRAP _ T , ĠGLES 2 0 . GL _ REPEAT ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl TexParameter i ( GLES 2 0 . GL _ TEXTURE _ 2 D , ĠGLES 2 0 . GL _ TEXTURE _ MAG _ FILTER , ĠGLES 2 0 . GL _ LINEAR ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl TexParameter i ( GLES 2 0 . GL _ TEXTURE _ 2 D , ĠGLES 2 0 . GL _ TEXTURE _ MIN _ FILTER , ĠGLES 2 0 . GL _ LINEAR ) čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Render buffer ( GLES 2 0 . GL _ RENDER BUFFER , Ġrender Buffer Id ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Render buffer Storage ( GLES 2 0 . GL _ RENDER BUFFER , ĠGLES 2 0 . GL _ DEPTH _ COMPONENT 1 6 , Ġwidth , Ġheight ) čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Framebuffer Texture 2 D ( GLES 2 0 . GL _ FRAMEBUFFER , ĠGLES 2 0 . GL _ COLOR _ ATTACHMENT 0 , ĠGLES 2 0 . GL _ TEXTURE _ 2 D , Ġf bo Tex , Ġ 0 ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Framebuffer Render buffer ( GLES 2 0 . GL _ FRAMEBUFFER , ĠGLES 2 0 . GL _ DEPTH _ ATTACHMENT , ĠGLES 2 0 . GL _ RENDER BUFFER , Ġrender Buffer Id ) čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Texture ( GLES 2 0 . GL _ TEXTURE _ 2 D , Ġ 0 ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Render buffer ( GLES 2 0 . GL _ RENDER BUFFER , Ġ 0 ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Framebuffer ( GLES 2 0 . GL _ FRAMEBUFFER , Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġreturn Ġrender Texture ID čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġbind Render Texture () Ġ{ čĊčĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Enable ( GLES 2 0 . GL _ TEXTURE _ 2 D ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Framebuffer ( GLES 2 0 . GL _ FRAMEBUFFER , Ġrender Texture ID ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġun bind Render Texture () Ġ{ čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . glBind Framebuffer ( GLES 2 0 . GL _ FRAMEBUFFER , Ġ 0 ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdelete All Textures () Ġ{ čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Delete Buffers ( 1 , Ġint ArrayOf ( render Texture ID ), Ġ 0 ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Delete Render buffers ( 1 , Ġint ArrayOf ( render Buffer Id ), Ġ 0 ) čĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Delete Textures ( 1 , Ġint ArrayOf ( f bo Tex ), Ġ 0 ) čĊĠĠĠ Ġ} čĊč Ċ } čĊ