在 Android GLSurfaceView 上设置 PixelFormat 时,如:
glSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
对特定设备的特定 PixelFormat 是否有任何限制,或者是否所有 PixelFormat 都应该在所有设备上工作?
如果有限制,那么我如何找出当前设备支持哪些 PixelFormats?
在 Android GLSurfaceView 上设置 PixelFormat 时,如:
glSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
对特定设备的特定 PixelFormat 是否有任何限制,或者是否所有 PixelFormat 都应该在所有设备上工作?
如果有限制,那么我如何找出当前设备支持哪些 PixelFormats?
我还没有看到任何文档明确概述任何给定的设备支持级别PixelFormat
。但是,如果您查看PixelFormat 的文档,您会在右侧看到一个Add in API level ...标签。
我相信这意味着他们的支持是基于设备上运行的 Android API 级别,而不是设备本身。
例如RGBA_8888
,Added in API level 1
这是 100% 可用的。但是RGBA_F16
,Added in API level 26
只有那些运行Android 8.0.0 (Oreo)
或更高版本的设备才会支持它。