基础二:必备的一些东西
必备:GLSurfaceView、
Renderer、SurfaceTexture()
GLSurfaceView继承于SurfaceView,也是一种视图
GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。
GLSurfaceView提供了下列特性:
1> 管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。
2> 管理一个EGL display,它能让opengl把内容渲染到上述的surface上。
3> 用户自定义渲染器(render)。//笔
4> 让渲染器在独立的线程里运作,和UI线程分离。
5> 支持按需渲染(on-demand)和连续渲染(continuous)。
6> 一些可选工具,如调试。
而渲染器render的实现,就会有3个实现方法需要被重写
onSurfaceCreated
(GL10 gl
,
EGLConfig config)
onSurfaceChanged
(GL10 gl
, int
width
, int
height)
onDrawFrame
(GL10
gl
)
第一个方法在创建时被调用,
第二个在需要布置时调用(如果view的几和形状发生变化了就调用,例如当竖屏变为横屏时。
),
第三个是无限调用的(或者
1. setRenderMode(RENDERMODE_WHEN_DIRTY); 2. 需要刷新时,调用requestRender()用这种方法也可以重画
)
第三个方法的调用频率android2D界面60fps,16ms调用一次(1/0.06),一般来说