package Ġcom . example . opengl . opengl . flat graphics Ċ Ċ import Ġandroid . opengl . GLES 2 0 Ċ import Ġandroid . opengl . Matrix Ċ import Ġcom . example . opengl . R Ċ Ċ class ĠMy Circle Matrix Ġ: ĠMy Circle () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠU _ Pro Matrix Ġ= Ġ" u _ Project Matrix " ĊĠĠĠ Ġprivate Ġvar Ġu Pro Matrix Location Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġprojection Matrix Ġ= ĠFloat Array ( 1 6 ) ĊĠĠĠ Ġprivate Ġval Ġview Matrix Ġ= ĠFloat Array ( 1 6 ) ĊĠĠĠ Ġprivate Ġval Ġmodel Matrix Ġ= ĠFloat Array ( 1 6 ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw () Ġ{ ĊĠĠĠĠĠĠĠ ĠMatrix . set Look At M ( view Matrix , Ġ 0 , Ġ 0 f , Ġ 0 f , Ġ- 3 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 . 0 f , Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠ ĠMatrix . multiply MM ( model Matrix , Ġ 0 , Ġprojection Matrix , Ġ 0 , Ġview Matrix , Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Uniform Matrix 4 fv ( u Pro Matrix Location , Ġ 1 , Ġfalse , Ġmodel Matrix , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġsuper . on Draw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Changed ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Surface Changed ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġu Pro Matrix Location Ġ= ĠGLES 2 0 . glGet UniformLocation ( m Program , ĠU _ Pro Matrix ) ĊĠĠĠĠĠĠĠ Ġval Ġaspect Ratio Ġ= Ġif Ġ( width Ġ> Ġheight ) Ġwidth . toFloat () Ġ/ Ġheight Ġelse Ġheight . toFloat () Ġ/ Ġwidth ĊĠĠĠĠĠĠĠ ĠMatrix . fr ustum M ( projection Matrix , Ġ 0 , Ġ- aspect Ratio , Ġaspect Ratio , Ġ- 1 f , Ġ 1 f , Ġ 3 f , Ġ 7 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Vertex Id () Ġ= ĠR . raw . vertex _ line _ matrix Ċ }