大概查了一下全志的芯片,发现很少用drm显示框架的,都是用自研的disp框架,唯一的资料就是《Linux_Display_开发指南.pdf》,然而呢这个文档是个通用文档,实际上每颗芯片支持的显示接口和图层数量都不一样,具体的对应关系没法得知,如果用drm框架,modetest命令就能清晰查看整个显示框架之间的关系,但没办法,官方不适配DRM,图层处理又涉及一些硬件加速模块,咋也没能力适配。
有没有大佬对这个显示框架使用比较熟悉的?比如用T113S3这个芯片,至少是支持两个显示图层吧,那么显示接口是“/dev/fb0”,控制接口是"/dev/disp",常规用法就是往fb0推图显示,这样是显示在默认图层,如何实现推送fb0显示时指定显示在哪个图层?在DRM框架,图层是通过ZPOS属性控制层级顺序的,zpos大的覆盖zpos小的图层。是初始化两个/dev/fb0的句柄,然后在每次推送显示buf的时候都调用"/dev/disp"设置要显示在哪个图层吗?DRM框架是通过指定layer id来区分的。/dev/fb貌似没有指定显示ID的接口
为什么要纠结这个点?
主要是想做类似播放器的这种应用,LVGL UI+透明背景推送显示在上层,下层播放需要硬解码的视频,图片资源,因为把解码后的数据memcpy给lvgl的控件显示太低效了,SDK的lv_monitor有类似的功能,但是还是没有具体控制显示图层的代码,是直接调用了tplayer框架,还是不灵活。
最近编辑记录 lztmfx (昨天 17:56:39)
离线