适用于ios和android,适用于iOS和Android的OpenGL ES差异

我有一个适用于iOS和

Android的OpenGL ES应用程序.大多数代码是很久以前由另一个人编写的,现在我必须维护它. OpenGL的使用看起来相当简单(游戏是2D,只使用纹理精灵以简单的方式).但我发现iOS和Android的图形代码实现存在两个主要差异:

1)iOS代码包含以下代码:

glGenFramebuffersOES(1, &m_defaultFramebuffer);

glGenRenderbuffersOES(1, &m_colorRenderbuffer);

glBindFramebufferOES(GL_FRAMEBUFFER_OES, m_defaultFramebuffer);

glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);

glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, m_colorRenderbuffer);

而Android则没有.

2)当Android应用程序转到后台时,所有OpenGL纹理都被破坏(glDeleteTextures),并且使用eglTerminate关闭EGL.当应用程序从睡眠状态返回时,将重新初始化EGL并重新创建纹理.

iOS代码不做这些事情.它只是通过调用[m_displayLink setPaused:YES]来暂停渲染循环;

其他与OpenGL相关的代码与iOS和Android相同.

一切都适用于两个平台,但我想要充分了解正在发生的事情.任何人都可以向我解释这两种差异背后的理由吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值