如何在Raspberry Pi上使用dispmanx创建透明窗口?

时间:2013-07-11 00:46:27

标签: sdl pygame raspberry-pi raspbian

我正在制作幻灯片应用并使用SDL 1.2使用自定义dispmanx后端(https://github.com/vanfanel/SDL12-kms-dispmanx)和Pygame在omxplayer之上创建叠加层。

一切正常并且图层正确,但我似乎无法在dispmanx中制作透明画布而不使我的对象透明。我的理解是Pygame本身无法处理这个问题,SDL可以处理dispmanx层之间的透明度。

我的目标是一个硬件加速的透明画布,我的画面大小超过omxplayer,我可以画画。

我怀疑除了使用vc_dispmanx_element_add中的alpha设置之外必须有一个方法来执行此操作? XBMC使用dispmanx并且可以在omxplayer之上执行不透明覆盖,因此这必须是可行的。我也看过vc_dispmanx_display_set_background,但这似乎只采用RGB而不是alpha。

1 个答案:

答案 0 :(得分:0)

您可以截取窗口并将其用作背景,而不是创建透明窗口。要做到这一点,我使用pyscreenshot拍摄图像(虽然还有其他选项)和

os.environ['SDL_VIDEO_WINDOW_POS']="0,0"

确保窗口每次都在正确的位置,唯一的缺点是如果窗口发生变化,窗口不再透明