最近几天做Davinci的Framebuffer的透明显示,花了不少时间和精力,发现网上写的都不是特别全。
Screen分四层,fb1和fb3是video层, fb0和fb2是osd层。我们称呼他们为osd0和osd1.
其中osd1是控制层,osd0是显示层。
只有在osd1被启动的情况下,才可以进行osd0的透明设置。
要通过FBIO_SET_BITMAP_BLEND_FACTOR的ioctl来进行设置。使用colorkey。
这里需要特别说明的一个问题是,一定要注意自己的od0的那层的颜色到底是什么……我就因为没有确定osd0的颜色,而多花费了不少时间……
可以手动给osd0那层进行颜色设置,然后再拿这个颜色值来进行colorkey的设置。