【发布时间】:2019-02-11 22:56:49
【问题描述】:
我正在尝试在 android 上使用 opengl 创建一个受保护的上下文。
我的代码基于: https://github.com/googlesamples/android-ndk
使用原生活动作为我的基础。
我已将 EGL 参数更改为以下内容:
EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 3,
0x32C0, EGL_TRUE,
EGL_NONE,
};
EGLint surface_attribs[] = {
0x32C0, EGL_TRUE,
EGL_NONE,
};
在大多数设备上似乎都可以正常工作,但有些设备出现了奇怪的行为(电话崩溃或根本不显示,即使它们声称支持受保护的上下文)。一个很好的例子是 s9 qualcomm 版运行良好,直到屏幕上出现任何内容(覆盖、导航栏向下滑动或滑动三星侧边栏),这将导致手机重新启动。
在设置受保护的上下文时我可能遗漏了什么?
根据 khronos 文档: https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_protected_content.txt
0x32c0 是受保护内容的正确编号。
-------------编辑--------------
我将 0x32c0 换成了 EGL_PROTECTED_CONTENT_EXT,并检查了扩展,发现 EGL_EXT_protected_content 确实存在。我正在使用的两种设备特别遇到了这个问题(三星 Galaxy s9+ 高通和三星 Galaxy Tab S2)。 S2 声称它支持受保护的上下文,但是在使用它之后,我得到了 EGL_BAD_ALLOC。在 S9 上,一切运行良好,没有错误,但设备在使用一段时间后会一直在我身上崩溃。
【问题讨论】:
标签: android opengl-es android-ndk egl