您的当前位置:首页正文

GLSurfaceView

2024-11-28 来源:个人技术集锦

Android中用OpenGL开发图形应用,一般是使用GLSurfaceVIew来呈现。

自己需要做的工作主要有两个:

(1)从GLSurfaceView派生一个自己的类,在其中处理键盘、触摸等事件;

(2)实现Renderer接口,在GLSurfaceView通过setRenderer使它们关联起来。

Render接口如下:

public void onDrawFrame(GL10 gl)
{
}
public void onSurfaceChanged(GL10 gl, int width, int height)
{}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{}

如何通过OpenGL绘制场景就需要在这里面实现了。

自己在pc上用c++写了一个OpenGL程序,想移植到android上,最快的办法当然就是NDK了。但移植完后发现,在android上用OpenGL开发游戏有一些不便之处,就是每次按home键后,再次打开游戏,会重新调用onSurfaceCreated,因为按home键时已经把surfaceview destory了。此时所有的OpenGL资源都没了,需要重新load。

另外,在NDK中使用OpenGL时,绘制文字比较麻烦。可以通过在c++中调用java端功能生成一个文字的纹理来完成,比较烦琐,性能应该也不高吧;简单的数字和字母也可以存在一个纹理图像中,使用时取特定部分显示就可以了。

显示全文