package Ġcom . kn ight . gl view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Surface Texture Ċ import Ġandroid . opengl . GLES 2 0 Ċ import Ġandroid . opengl . GL Surface View Ċ import Ġandroid . opengl . GL Surface View . Renderer Ċ import Ġandroid . opengl . Matrix Ċ import Ġandroid . util . Attribute Set Ċ import Ġcom . kn ight . gl view . gles . Normal Drawer Ċ import Ġcom . kn ight . gl view . gles . Camera Drawer Ċ import Ġcom . kn ight . gl view . gles . ID raw er Ċ import Ġcom . kn ight . gl view . util . Gl Util Ċ import Ġcom . kn ight . gl view . util . LOG Ċ import Ġjava . util .* Ċ import Ġjavax . micro edition . kh ronos . e gl . EGL Config Ċ import Ġjavax . micro edition . kh ronos . openg les . GL 1 0 ĊĊ Ċ /** Ċ Ġ* Ġ@ author Ġli y ach ao Ġ 2 9 6 7 7 7 5 1 3 Ċ Ġ* Ġ@ version Ġ 1 . 0 Ċ Ġ* Ġ@ date Ġ 2 0 1 7 / 3 / 1 Ċ Ġ*/ Ċ class ĠCamera GL Surface View ( private Ġval ĠmContext : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠGL Surface View ( mContext , Ġattrs ), ĠRenderer Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcontrol : ĠCamera Touch Control ĊĠĠĠ Ġval Ġmedia Control : ĠCamera Media Control ĊĠĠĠ Ġprivate Ġval Ġm Direct Draw ers Ġ= ĠArrayList < ID raw er >() ĊĠĠĠ Ġprivate Ġval Ġm Surface Textures Ġ= ĠArrayList < Surface Texture >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset EGL Context Client Version ( 2 ) ĊĠĠĠĠĠĠĠ Ġset Renderer ( this ) ĊĠĠĠĠĠĠĠ Ġcontrol Ġ= ĠCamera Touch Control ( this , Ġ:: change Thumbnail Position ) ĊĠĠĠĠĠĠĠ Ġmedia Control Ġ= ĠCamera Media Control ( mContext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Created ( gl : ĠGL 1 0 , Ġconfig : ĠE GL Config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtexture ID Ġ= ĠGl Util . create Texture ID ( 2 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtexture ID . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsurface Texture Ġ= ĠSurface Texture ( texture ID [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Surface Textures . add ( surface Texture ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Direct Draw ers . add ( Camera Drawer ( texture ID [ i ], ĠmContext , Ġsurface Texture )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Direct Draw ers . add ( Normal Drawer ( texture ID [ i ], ĠmContext , Ġsurface Texture )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmedia Control . prepare () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Changed ( gl : ĠGL 1 0 , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Viewport ( 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠ Ġval Ġrate Ġ= Ġheight . toFloat () Ġ/ Ġwidth . toFloat () ĊĠĠĠĠĠĠĠ ĠLOG . log I (" æľĢç»Ī è®¾ç½® ĠGL Surface View Ġwidth : Ġ$ width Ġ Ġheight : Ġ$ height Ġ Ġrate : Ġ$ rate ") ĊĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcontext . resources . display Metrics ĊĠĠĠĠĠĠĠ ĠLOG . log I (" æľĢç»Ī è®¾ç½® Ġ å±ı å¹ķ Ġwidth : Ġ${ dm . width Pixels } Ġ Ġheight : Ġ${ dm . height Pixels } Ġ Ġrate : Ġ${ dm . height Pixels . toFloat ()/ dm . width Pixels . toFloat () }") ĊĊĠĠĠĠĠĠĠ Ġmedia Control . bind Surface ( m Surface Textures , Ġrate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw Frame ( gl : ĠGL 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Clear Color ( 1 . 0 f , Ġ 1 . 0 f , Ġ 1 . 0 f , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Clear ( GLES 2 0 . GL _ COLOR _ BUFFER _ BIT Ġor ĠGLES 2 0 . GL _ DEPTH _ BUFFER _ BIT ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġm Direct Draw ers . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirect Drawer Ġ= Ġm Direct Draw ers [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatrix . set Identity M ( direct Drawer . m M VP , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontrol . calculate Matrix ( direct Drawer . m M VP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirect Drawer . draw () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Thumbnail Position () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirect Drawer Ġ= Ġm Direct Draw ers . remove At ( m Direct Draw ers . size Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġm Direct Draw ers . add ( 0 , Ġdirect Drawer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġmedia Control . on Pause () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ