热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

AOSP/Android7:如何详细利用EGL?

如何解决《AOSP/Android7:如何详细利用EGL?》经验,应该怎么办?

我试图从系统集成商的角度了解Android(7)图形系统。我的主要重点是libegl需要提供的最低功能。

我了解Surfaceflinger是该领域的主要参与者。Surfaceflinger初始化了EGL,创建了实际的EGL表面,并充当了该应用程序创建的缓冲区(框架)的使用者。该应用程序再次执行所需的GLES调用的主要部分。显然,这会导致限制,因为Surfaceflinger和应用程序处于单独的流程中,这不是GLES / EGL的典型用例。

我不明白的事情:

Android 7上的应用程序是否始终渲染到发送到surfaceflinger的EGL_KHR_image缓冲区中?据我所知,这意味着总是会有一个额外的复制步骤(即使不需要合成时也是如此)……或者还有某种优化的全屏模式,其中应用程序确实可以直接渲染到最终的EGL曲面中?

这里使用哪些进程间共享机制?我的猜测是,与EGL_NATIVE_BUFFER_ANDROID一起使用的EGL_KHR_image定义了确切的二进制格式,因此可以在每个进程中创建一个图像对象,在该过程中,内存通过ashmem共享。这已经是完整/正确的图片了吗,还是我在这里错过了什么?

我想这些是我目前缺乏自信的要点。当然,我对此有一些后续问题(例如,gralloc / composition如何适合此问题?),但是根据该平台,我希望将此问题保持尽可能的紧凑。尽管如此,除了主文档页面之外,我仍然缺少针对系统集成商的文档。因此,进一步的链接将不胜感激。

我目前的重点是典型的用例,这些用例将涵盖与Android 7兼容的绝大多数应用程序。如果存在诸如长期不推荐使用的兼容性填充之类的极端情况,我现在暂时将其忽略。


推荐阅读
author-avatar
墨尔本晴上残留的余温丶_856
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有