ToB企服应用市场:ToB评测及商务社交产业平台

标题: android display 条记(五)HWC(Hardware Composer) [打印本页]

作者: 我爱普洱茶    时间: 2024-8-8 22:27
标题: android display 条记(五)HWC(Hardware Composer)
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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4