如何在android上显示没有surfaceflinger的图像



如何在surfacefligner启动之前绘制一些东西?

在这种情况下,它是带有framebuffer设备的某种传统Linux,因此直接访问framebuffer应该是可以的。

如何直接使用HWComposer和如何直接使用egl ?

如果SurfaceFlinger没有运行,您可以打开framebuffer设备并写入它(假设您在 framebuffer设备的设备上)。

关于这个的一个例子,参见"恢复"UI的实现。这里的关键文件是minui/graphics.c。当前的实现依赖于libpixelflinger。

使用OpenGL ES/EGL会有点棘手。一些早期的GLES测试(如San Angeles)使用FramebufferWindow类,但这使用了相当一部分框架。(FWIW,预计即将发布的版本将弃用FramebufferWindow,并将使用它们的OpenGL测试切换到一个与SurfaceFlinger对话的新库。)

更新:即将发布的版本发生了,你可以在这里看到FramebufferWindow ("WindowSurface")的替换。

如果SurfaceFlinger没有运行,您可以使用内部接口直接与HardwareComposer对话。有一些旧的测试可以测试它,但我不知道它们是否仍然有效。SurfaceFlinger中的代码在这一点上可能是一个更好的例子。一次只能有一个进程打开HardwareComposer,所以SurfaceFlinger不能运行

相关内容

  • 没有找到相关文章

最新更新