在InputMethod服务中使用OpenGL



我正在开发一个概念键板,我需要在钥匙上删除动画阴影。

可以在子类InputMethodService

时使用OpenGL ES

如果我在onCreateInputView中使用GLSurfaceView,如果它也使用OpenGL ES,它是否会与当前可见活动冲突?
可以通过绘制屏幕来完全避免GLSurfaceView吗?
Android是否支持在不同但并发活动上使用多个OpenGL ES上下文?

我需要Android 2.2兼容性,因此TextureView之类的解决方案不是一个选项。

,因为没有人认为这个问题应该得到答案或简单地理解可能的问题,所以我自己做了。

我创建了一个测试活动,该活动使用GlSurfaceView和一些简单的片段着色器和EditText。然后,我编辑了来自Android SDK的 SoftKeyboard 示例,以使其与另一个简单的着色器一起使用GlSurfaceView

测试在于启动测试活动并使用更改的软键板键入文本框。

在Android 4.2上这项工作,并且两个GlSurfaceView均已渲染。在Android 2.3.3上,此错误失败:

E/SurfaceFlinger(1556): createNormalSurfaceLocked() failed (Invalid argument)
W/WindowManager(1556): OutOfResourcesException creating surface
I/WindowManager(1556): Out of memory for surface! Looking for leaks...
W/WindowManager(1556): No leaked surfaces; killing applicatons!
W/ActivityManager(1556): Killing processes Free memory at adjustment 1

我知道视频硬件(及其驱动程序)的并发使用可能会导致不相容性,但我不确定这是否是由于早期Android版本无法处理多个OpenGL ES上下文或其他内容(内存)金额,硬件,驱动程序,...)

一个人可以使用NDK进行调查。

相关内容

  • 没有找到相关文章

最新更新