海思开发指南:
1:图形层界面的开发:图形二维加速器(TDE),硬件对图形图像的处理
HiFB用于管理叠加图形层:Hisilicon Framebuffer在framebuffer的基础上增加层间colorkey,层间Alpha等扩展功能。
可以支持2路高清显示设备(HD0~HD1)和5个图形层(G0~G5)(G3,G4为鼠标层)):
fb设备文件有5个/dev/fb0~/dev/fb4(显示设备)
Hi3536的设备文件/dev/fb0(G0图形层)(表示可支持驱动HD0设备上显示)
/dev/fb3(G3鼠标层)设备显示叠加层的最高层,
*注意:如果HD0上有视频层:从下往上的层次为:视频层,G0层,G3层
2:图形层的开发方案:设备的用户界面包括(图形层的实现):
1:后端OSD:显示画面分割线,通道号,时间等信息,用以界定多画面显示布局。
2:GUI界面:包括各种菜单,进度条等元素,通过操作GUI界面进行配置
3:鼠标
3:但图层用户界面方案:
a:1个图形层完成本设备的后端OSD,GUI和鼠标的显示。
b:每个输出设备使用1个图形层完成本设备的后端OSD,GUI:GUI画在独立的缓冲中去,OSD直接画在FB显存中去,在通过TDE进行ALpha混合,
这样每个图形层对应的FB显存中绘制分割布局,通道号时间等参数。
使用独立的缓存绘制GUI画布,当GUI变更时进行局部更新
将GUI画布整体搬移至FB缓存中,在此过程中可以利用TDE实现GUi和OSD的叠加透明效果,每次GUi或OSD有变动时,由于是对画布和OSD整体做叠加,故不需要局部信息计算GUI和OSD的叠加区域。
注意::::
c:为了防止FB缓冲边绘制边显示导致绘制过程可见,推荐使用fb双缓冲机制,fb分配2块大小相同的缓冲作为显存交换绘制和显示。如VO正在显示缓冲2,则本次绘制的对象为缓冲1,然后对于FB 标准模式可通过FB 的PAN_DISPLAY或
FBIOFLIP_SURFACE 调用通知VO显示缓冲1,而对于FB 扩展模式可通过FB 的
FBIO_REFRESH调用通知VO显示缓冲1。
如果采用同样的GUI界面时搬移至SD0设备时,只对TDE做整体搬移操作即可,利用TDE整体进行缩放至和SD0绑定的图形层对应的FB显存中去。
TDE和alpha配置。(见下个笔记)。