android ndk opengl创建受保护的上下文

问题描述 投票:1回答:1

我试图在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上,一切运行正常,没有错误,但是在使用它之后设备会一直崩溃。

android opengl-es android-ndk egl
1个回答
1
投票

为什么使用0x32C0而不是令牌名称:EGL_PROTECTED_CONTENT_EXT?

您是否在查询扩展字符串“EGL_EXT_protected_content”是否在受支持的扩展名中?这应该是你做的第一件事。

您是否尝试执行任何不允许的操作?可能导致崩溃。

检查来自eglCreateSurface和eglCreateContext的错误。 EGL_BAD_ATTRIBUTE表示不支持。

© www.soinside.com 2019 - 2024. All rights reserved.