android - 今天有多少 Android 设备支持 GLSurfaceView.setPreserveEGLContextOnPause?

标签 android opengl-es opengl-es-2.0

我不需要确切的数字,百分比就足够了。 例如,如果我使用 4.0 min SDK 版本开发一个应用程序,我如何确保上下文将被保留?可能取决于 OpenGL-ES 版本?

我试图通过有限的 EGL 上下文查找有关芯片的信息,但找不到任何信息。

我需要知道的原因 - 我不想实现一个特殊的缓存子系统,它会在应用程序恢复后重新加载我的纹理。我准备放弃一些不支持保留上下文的设备(如果少于 5-7%)。

最佳答案

似乎 OpenGL-ES 2.0 和 forward 都允许多个 EGL 上下文。这就是 GLSurfaceView.GLThreadManager.checkGLESVersion() 方法的假设。并且如果你有多个上下文,暂停时不需要终止EGL,也不需要在暂停时释放EGL上下文。

另外,从 GLSurfaceView.GLThreadManager 源代码(大约 1908 行),我们有以下评论,就在 checkGLESVersion() 方法之后:

// This check was required for some pre-Android-3.0 hardware. 
// Android 3.0 provides support for hardware-accelerated views, 
// therefore multiple EGL contexts are supported on all Android 3.0+ EGL drivers.

在 Grepcode GLSurfaceView.GLThreadManager 查看更多详细信息.

关于android - 今天有多少 Android 设备支持 GLSurfaceView.setPreserveEGLContextOnPause?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068726/

相关文章:

android - 通过 Google OAuth 登录授权应用程序提示错误应用程序

ios - iOS 纹理加载上的 OpenGL ES - 我如何从 RGBA8888 .png 文件获取 RGB565 纹理?

android - 如何在 glSurfaceView 顶部插入按钮?

opengl-es-2.0 - 如何停止透​​明纹理上的 OpenGL 背景流血

objective-c - GLubyte 和 GL_UNSIGNED_BYTE 之间有区别吗?

opengl-es - OpenGL ES 2.0 状态的 UML 图?

android - 通知中的 channel ID 和 channel 名称有什么区别

安卓 webview.loadData 和 CSS

android - 使用 XML Dom Parser 解析时如何检查根节点值?

iphone - Opengl iPhone SDK : How to tell if you're touching an object on screen?