package Ġcom . example . opengl . opengl . flat graphics Ċ Ċ import Ġandroid . opengl . GLES 2 0 Ċ import Ġcom . example . opengl . R Ċ import Ġcom . example . opengl . opengl . VertexArray Ċ import Ġcom . example . opengl . opengl . build Program Ċ Ċ abstract Ġclass ĠFlat Graphics { ĊĊĠĠĠ Ġprivate Ġval Ġcolor Ġ= Ġfloat ArrayOf ( 2 5 5 f , Ġ 0 f , Ġ 0 f , Ġ 1 . 0 f ) ĊĊĠĠĠ Ġprotected Ġval ĠPOSITION _ COMPONENT _ COUNT Ġ= Ġ 2 ĊĊĠĠĠ Ġopen Ġfun Ġon Surface Changed ( width Ġ: ĠInt , Ġheight Ġ: ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġa Color Location Ġ= ĠGLES 2 0 . glGet UniformLocation ( m Program , ĠA _ COLOR ) ĊĠĠĠĠĠĠĠ Ġa Position Location Ġ= ĠGLES 2 0 . glGet Attrib Location ( m Program , ĠA _ POSITION ) ĊĠĠĠĠĠĠĠ Ġvertex Buffer . set Vertex Position ( 0 , Ġa Position Location , ĠPOSITION _ COMPONENT _ COUNT , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġval ĠA _ POSITION Ġ= Ġ" a _ Position " ĊĊĠĠĠ Ġprotected Ġval ĠA _ COLOR Ġ= Ġ" a _ Color " ĊĊĠĠĠ Ġprotected Ġvar Ġa Color Location Ġ= Ġ 0 ĊĠĠĠ Ġprotected Ġvar Ġa Position Location Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġdraw () Ġ{ ĊĠĠĠĠĠĠĠ ĠGLES 2 0 . gl Uniform 4 fv ( a Color Location , Ġ 1 , Ġcolor , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġon Draw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġon Draw () ĊĊĠĠĠ Ġabstract Ġfun Ġget Float Data () Ġ: ĠFloat Array ĊĊĠĠĠ Ġprotected Ġvar Ġvertex Buffer Ġ= ĠVertex Array ( get Float Data ()) ĊĊĠĠĠ Ġopen Ġfun Ġget Vertex Id () Ġ Ġ= ĠR . raw . vertex _ line ĊĠĠĠ Ġopen Ġfun Ġget Frag Id () Ġ Ġ= ĠR . raw . fragment _ point ĊĊĠĠĠ Ġprotected Ġvar Ġm Program Ġ= Ġbuild Program ( get Vertex Id (), Ġget Frag Id ()) Ċ Ċ }