前一阵子,一直在忙公司的iPhone的项目HourglassTimer,顺便了解下iPhone 平台上的2D引擎cocos2d-iphone库的使用。由于一直没有发现android上的基于Opengl ES 2D/3D引擎库(网上只发现了一个java monkey engine项目,pc平台上的游戏引擎。如果有人知道其他的开源项目,非常欢迎告诉我 ),所以自己准备将cocos2d移植到android平台上。最近做了些初步研究
在android 1.0rc2 sdk中,提供了以下包支持Opengl ES 编程:
一、openglES包
android.opengl Class:GLDebugHelper:用于调试OpenGL ES程序的帮助类GLU:提供GL 公共工具功能的类GLUtils:连接OpenGL ES和Android API的工具类,其中提供了纹理图片的操作。Matrix:矩阵运算工具类Exception:GLException:OpenGL异常类javax.microedition.khronos.egl Interface: EGL:GL的配置接口 EGL10:GL1.0的配置接口 EGL11:GL1.1的配置接口 GLConfig:GL配置的类 EGLContext:GL运行环境的类 EGLDisplay:GL显示窗口的类 EGLSurface:可渲染GL的视图类javax.microedition.khronos.opengles Interfaces: GL:Opengles的接口 GL10:Opengles1.0的接口 GL10Ext:Opengles1.0的扩展接口 GL11:Opengles1.1的接口GL11Ext:Opengles1.1的扩展接口 GLExtentsionPack:Opengles的扩展接口 <GLDisplay:GL显示窗口的类 EGLSurface:可渲染GL的视图类
二、通常创建流程:
a)创建一个EGL实例
EGL10 mEgl = (EGL10) EGLContext.getEGL();
b)创建一个EGLDisplay实例
EGLDisplay mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
c)初始化EGLDisplay
mEgl.eglInitialize(mEglDisplay, version);
d)选择Config
mEgl.eglChooseConfig(mEglDisplay, configSpec, configs, 1, num_config);
EGLConfig mEglConfig = configs[0];
e)创建opengl运行环境
EGLContext mEglContext = mEgl.eglCreateContext( mEglDisplay,
mEglConfig,
EGL10.EGL_NO_CONTEXT,
null);
f) 创建新surface
mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay,
mEglConfig, holder, null);
g) 将opengles环境设置为当前
mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface,
mEglContext);
h) 获取当前opengles画布
GL gl = mEglContext.getGL();
i) 显示绘制结果到屏幕上
mEgl.eglSwapBuffers(mEglDisplay, mEglSurface);
后边就不大会弄了,求大神版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。