不属于网站后期维护,网站服务器空间选择,重庆市建设工程信息网成绩查询,做食物外网视频网站HWC
简单来说HWC是用来合成图形和显示图形的#xff0c;可以把多个图形缓存传给硬件混合渲染器#xff0c;让硬件混合渲染器执行合成操作#xff0c;显示图形就是直接将图形缓存显示到屏幕。
android 14
/hardware/interfaces/graphics/composer/2.1/IComposer.hal
19 im…HWC
简单来说HWC是用来合成图形和显示图形的可以把多个图形缓存传给硬件混合渲染器让硬件混合渲染器执行合成操作显示图形就是直接将图形缓存显示到屏幕。
android 14
/hardware/interfaces/graphics/composer/2.1/IComposer.hal
19 import IComposerClient;
20
21 interface IComposer {createClient() generates (Error error, IComposerClient client);
IComposer 用于客户进程与HWC进程建立通信链接,createClient 用于创建IComposerClient 的对象。
IComposerClient
在IComposerClient接口类中通过registerCallback注册回调客户进程注册回调后就可以使用HWC进程事件。 registerCallback(IComposerCallback callback);IComposerCallback在IComposerCallback .hal中定义
/hardware/interfaces/graphics/composer/2.1/IComposerCallback.hal
19 interface IComposerCallback {
48 onHotplug(Display display, Connection connected);
62 oneway onRefresh(Display display);
74 oneway onVsync(Display display, int64_t timestamp);根据代码上的注释可以了解到这三个接口的作用 onHotplug 当显示设备插入或退出时通知客户进程 onRefresh通知客户进程提供新的帧缓存 onVsync发送给VSync同步信号
硬件混合渲染器合成
创建图层
/frameworks/native/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp
358 Error HidlComposer::createLayer(Display display, Layer* outLayer) {
359 Error error kDefaultError;
360 mClient-createLayer(display, kMaxLayerBufferCount,
361 [](const auto tmpError, const auto tmpLayer) {
362 error tmpError;
363 if (error ! Error::NONE) {
364 return;
365 }
366
367 *outLayer tmpLayer;
368 });
369
370 return error;
371 }android 14中将createlayer 从ComposerHal中移到了HidlComposerHal.cpp Composer 通过调用mClient的接口createlayer向HWC进程请求创建图层mClient-createLayer
----------------后续有时间再补充