我试图在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高通版运行良好,直到屏幕上出现任何东西(覆盖,导航条向下滑动,或滑动三星侧栏),这将导致手机重新启动。
在设置受保护的上下文时,我可能遗漏了什么吗?
根据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上,一切运行良好,没有错误,但设备会持续崩溃后,我使用它一点点。