今天有多少 Android 设备支持 GLSurfaceView.setPreserveEGLContextOnPause?
How many Android devices support GLSurfaceView.setPreserveEGLContextOnPause today?
我不需要确切的数字,百分比就足够了。
例如,如果我使用 4.0 min SDK 版本开发一个应用程序,我如何确保上下文将被保留?可能取决于 OpenGL-ES 版本?
我尝试查找有关 EGL 上下文有限的芯片的信息,但找不到任何信息。
我需要知道的原因 - 我不想实现一个特殊的缓存子系统,它会在应用程序恢复后重新加载我的纹理。我准备放弃一些不支持保留上下文的设备(如果少于 5-7%)。
因为 API 功能是 11 级,所以 Honeycomb。根据 Android 网站,其 94.0% 的设备
Android Platform versions
似乎 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 上查看更多详细信息。
我不需要确切的数字,百分比就足够了。 例如,如果我使用 4.0 min SDK 版本开发一个应用程序,我如何确保上下文将被保留?可能取决于 OpenGL-ES 版本?
我尝试查找有关 EGL 上下文有限的芯片的信息,但找不到任何信息。
我需要知道的原因 - 我不想实现一个特殊的缓存子系统,它会在应用程序恢复后重新加载我的纹理。我准备放弃一些不支持保留上下文的设备(如果少于 5-7%)。
因为 API 功能是 11 级,所以 Honeycomb。根据 Android 网站,其 94.0% 的设备 Android Platform versions
似乎 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 上查看更多详细信息。