gpt4 book ai didi

android - 在 Android 中选择 EGL 配置的正确方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:02:58 25 4
gpt4 key购买 nike

我正在使用我自己的 GLSurfaceView,一段时间以来一直在为与 EGL 配置选择器相关的崩溃而苦苦挣扎。

似乎通过调用 setEGLConfigChooser(5, 6, 5, 0, 16, 0) 请求 RGB_565 应该是最受支持的。但是,使用主机 GPU 在模拟器上运行此代码时,我仍然会崩溃,这似乎是因为我的显卡本身不支持 RGB_565。通过调用 setEGLConfigChooser(8, 8, 8, 8, 16, 0) 设置为 RGBA_8888 似乎在我的模拟器和 HTC Rezound 设备上运行良好,但我在市场依旧。

我的猜测是,现在大多数手机本身就支持 RGBA_8888,但我的一小部分用户的手机只兼容 RGB_565,这会阻止我的配置选择器获取配置。

鉴于我不需要 alpha channel ,是否有正确的方法先尝试 RGBA_8888 然后再回退到 RGB_565?有没有一种更简洁的方法可以在不关心 alpha 值的情况下只请求任何 ol' 配置?

我看到了一个可能的解决方案,可以提前确定默认显示配置是什么,并在此处特别提出请求:https://stackoverflow.com/a/20918779/234256 .不幸的是,从 API 级别 17 开始,建议的 getPixelFormat 函数似乎已被弃用。

最佳答案

根据我的经验,我认为 setEGLConfigChooser() 实际上无法正常工作,即它的实现存在错误。在许多设备中,我已经看到崩溃,其中 setEGLConfigChooser() 无法选择有效的上下文,即使底层表面的类型正确也是如此。

我发现选择 EGL 上下文的唯一可靠方法是使用自定义 EGLConfigChooser。这还有一个额外的好处,即根据您自己的规则选择配置,例如表面必须有深度,最好是 RGB888,但可以满足 RGB565。这实际上使用起来非常简单 eglChooseConfig()获取可能的配置列表,然后返回符合您的选择标准的配置。

关于android - 在 Android 中选择 EGL 配置的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24741584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com