如何学习android opengl

 我来答
六甘0z
2017-11-01 · TA获得超过1365个赞
知道小有建树答主
回答量:1469
采纳率:85%
帮助的人:271万
展开全部
  • 完成工具的安装以后,继续在Eclipse中创建一个新的Android项目。项目名称虽然不重要,但是该节将与主要活动有关,因此应认真学习掌握。

  • GLSurfaceView是一个特殊的视图,它为我们管理OpenGL表面并将其绘制到Android视图系统中。它还添加许多可以简化OpenGL使用的功能,包括但并不局限于:

它为OpenGL提供一个专用的渲染线程,使主线程得以继续。

它支持连续或按需渲染,维护屏幕设置以及OpenGL和底层窗口系统之间的接口。代码如下:

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

mGLSurfaceView = new GLSurfaceView(this);

// 检测系统是否支持 OpenGL ES 2.0

final ActivityManager activityManager = (ActivityManager) getSystemService(Context. ACTIVITY_SERVICE);

final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();

final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;

if (supportsEs2)

{

mGLSurfaceView.setEGLContextClientVersion(2);

mGLSurfaceView.setRenderer(new LessonOneRenderer());

}

else

{

return;

}

setContentView(mGLSurfaceView);

}

在onCreate()方法里面主要是创建OpenGL ES 2.0上下文以及做一些初始化工作。在onCreate()中,调用超类之后的第一件事情就是创建GLSurfaceView。然后确定系统是否支持 OpenGL ES 2.0。因此,我们需要一个可以与全局系统状态相交互的ActivityManager实例,以及使用这个实例来得到设备配置信息,该信息将通知我们设备 是否支持OpenGL ES 2.0。

一旦确定设备是否支持OpenGL ES 2.0后,就会通知表面视图需要一个与OpenGL ES 2.0相兼容的视图,然后传递一个自定义渲染。这个渲染将在任何需要调整表面或者绘制一个新的帧的时候被系统调用。我们还通过传递一个不同的渲染来支持 OpenGL Es 1.x,尽管可能由于APIs的不同,导致我们需要编写不同的代码,但在这一节中,我们将只关注OpenGL ES 2.0。

最后,我们为GLSurfaceView设置内容视图,它通知Android活动内容应该填补OpenGL表面,代码如下:

@Override

protected void onResume()

{

super.onResume();

mGLSurfaceView.onResume();

}

@Override

protected void onPause()

{

super.onPause();

mGLSurfaceView.onPause();

}

GLSurfaceView要求我们在任何父Activity的onResume()和onPause()方法被调用的时候调用onResume()和onPause()方法。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式