- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试让我的 android 2.3 NativeActivity 在从 sleep 模式返回时成功恢复。这是使用 OpenGL 的纯 native Activity 。
我在 list 中使用了 android:configChanges="orientation"以避免在进入休眠时被破坏。
当我收到 APP_CMD_TERM_WINDOW 时,我卸载我的 GL 资源并终止 GL。
当我从 sleep 模式返回时尝试初始化 GL 时出现问题。当我获取 APP_CMD_INIT_WINDOW 并尝试像往常一样初始化 GL 时,我无法创建新表面。
eglCreateWindowSurface 返回 EGL_BAD_MATCH,游戏结束...
有什么想法吗?
最佳答案
我发现大多数使用 NativeActivity(NVIDIA、索尼爱立信)的 EGL 示例源代码,无论是否使用 native-app-glue 库,都有这个问题。
问题是,在某些设备中,从 sleep 模式返回后收到 APP_CMD_INIT_WINDOW 时获得的窗口与初始化时获得的窗口不同。我在示例代码调用 eglChooseConfig
中看到的大多数 EGL 初始化都使用硬编码属性数组(通常适用于该制造商的旗舰设备)。
您应该使用 ANativeWindow_getFormat
检查窗口的格式,并且仅当 NativeWindow 具有 WINDOW_FORMAT_RGB_565
时才选择 565 EGL 配置,在其他情况下使用 888 配置。
您可以使用两个属性数组,或者更好的是,您可以从 eglChooseConfig 获取所有配置,使用 eglGetConfigAttrib
获取值(深度、模板等)并寻找一个具有完全你想要的值。它可能没有您指定的深度大小或模板大小,但您应该可以使用具有更大模板或深度缓冲区的配置。
关于android - 从待机/ sleep 返回时无法创建 EGL 表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746194/
如何读取操作系统消息? Java 是否能够监听来自 Java API 的操作系统消息? Hibernate 声明,当操作系统(在我的例子中是 Windows)进入待机状态时,我希望收到通知。请建议一个
如何使用 C/C++ native 代码以编程方式告诉 Windows XP 切换到待机模式? 最佳答案 Win32 API 中的一个可能函数是 SetSuspendState: SetSuspend
这里对linux 的几个命令整理下,有:休眠,挂起,待机,关机等几个命令的区别及如何实现。 休眠是一种更加省电的模式,它将内存中的数据保存于硬盘中,所有设备都停止工作。当再次使用时需按开关机键,机
我正在制作一个客户端-服务器应用程序,所以我需要关闭远程电脑静默 ..我在命令提示符关闭/? .. 但我仍然不知道执行以下命令的正确参数。 关机 重启 休眠 待命 注销 锁定(切换用户) 那么我如何在
我是一名优秀的程序员,十分优秀!