1. drmSetClientCap(DRM_CLIENT_CAP_UNIVERSAL_PLANES) 初始化Plane硬件图层。DRM_CLIENT_CAP_UNIVERSAL_PLANES
返回了OverLayer(YUV叠加图层),Cursor(光标),Primary(主要图层RGB)
2. drmModePropertySetAlloc 申请⼀个参数承载内存
3. drmModePropertySetAdd 添加显⽰参数,会传⼊每⼀个GrpahicBuffer对应的句柄,裁剪区域等,⼀系列操作就如同
android学习教程drmModeSetPlane⼀样设置硬件图层参数。
4. drmModeAtomicCommit 提交参数到drm驱动进⾏显⽰。这个过程中有阻塞等待drm渲染到屏幕,也有⾮阻塞加⼊到drm的⼯作队列中
进⾏消费
5. drmModeAtomicFree 释放参数承载内存
本⽂将不会对drm驱动的源码和fb驱动源码进⾏解析,让我们把注意⼒集中到SF的机制上,以后有机会会和⼤家聊⼀聊这两个驱动的源码以及设计。
正⽂
⾸先需要对drm_hwcomposer的hw_device_t结构体创建有⼀个⼤体的印象:
⽂件:ernal/drm_hwcomposer/hwcomposer.cpp
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论