android display 条记(五)HWC(Hardware Composer)

打印 上一主题 下一主题

主题 517|帖子 517|积分 1551

HWC

简单来说HWC是用来合成图形和表现图形的,可以把多个图形缓存传给硬件混淆渲染器,让硬件混淆渲染器执行合成操纵,表现图形就是直接将图形缓存表现到屏幕。
android 14
  1. /hardware/interfaces/graphics/composer/2.1/IComposer.hal
  2. 19 import IComposerClient;
  3. 20
  4. 21 interface IComposer {
  5. createClient() generates (Error error, IComposerClient client);
复制代码
IComposer 用于客户进程与HWC进程创建通讯链接,createClient 用于创建IComposerClient 的对象。
IComposerClient

在IComposerClient接口类中通过registerCallback注册回调,客户进程注册回调后就可以使用HWC进程变乱。
  1. registerCallback(IComposerCallback callback);
复制代码
IComposerCallback在IComposerCallback .hal中定义
  1. /hardware/interfaces/graphics/composer/2.1/IComposerCallback.hal
  2. 19 interface IComposerCallback {
  3. 48     onHotplug(Display display, Connection connected);
  4. 62     oneway onRefresh(Display display);
  5. 74     oneway onVsync(Display display, int64_t timestamp);
复制代码
根据代码上的解释,可以相识到这三个接口的作用
onHotplug :当表现设备插入或退出时,通知客户进程
onRefresh:通知客户进程提供新的帧缓存
onVsync:发送给VSync同步信号
硬件混淆渲染器合成

创建图层
  1. /frameworks/native/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp
  2. 358  Error HidlComposer::createLayer(Display display, Layer* outLayer) {
  3. 359      Error error = kDefaultError;
  4. 360      mClient->createLayer(display, kMaxLayerBufferCount,
  5. 361                           [&](const auto& tmpError, const auto& tmpLayer) {
  6. 362                               error = tmpError;
  7. 363                               if (error != Error::NONE) {
  8. 364                                   return;
  9. 365                               }
  10. 366  
  11. 367                               *outLayer = tmpLayer;
  12. 368                           });
  13. 369  
  14. 370      return error;
  15. 371  }
复制代码
android 14中将createlayer 从ComposerHal中移到了HidlComposerHal.cpp
Composer 通过调用mClient的接口createlayer向HWC进程哀求创建图层(mClient->createLayer)
----------------后续有时间再补充

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表