2013-07-11 2 views
4

Я работаю над приложением слайд-шоу и использую SDL 1.2 с помощью специального backman-сервера dispemanx (https://github.com/vanfanel/SDL12-kms-dispmanx) с Pygame для создания наложений поверх omxplayer.Как создать прозрачное окно с использованием dispmanx на малине Pi?

Все работает хорошо и слои правильно, но я не могу сделать прозрачный холст в dispmanx, не делая мои объекты прозрачными. Я понимаю, что Pygame сам по себе не может справиться с этим, и до SDL можно обрабатывать прозрачность между слоями dispmanx.

Моя цель - это аппаратное ускорение прозрачного холста размером с мой экран выше omxplayer, на который я могу рисовать.

Я подозреваю, что для этого нужно использовать другой метод, кроме использования альфа-настроек в vc_dispmanx_element_add? XBMC использует dispmanx и может делать непрозрачные наложения над omxplayer, поэтому это должно быть возможно. Я также посмотрел на vc_dispmanx_display_set_background, но, похоже, это только RGB, а не альфа.

ответ

0

Вместо того, чтобы создавать прозрачное окно, вы можете сделать снимок экрана и использовать его в качестве фона. Для этого я использовал pyscreenshot взять изображение (хотя есть и другие варианты) и

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

, чтобы убедиться, что окно в нужном месте каждый раз, единственный недостаток этого является то, что окно больше не прозрачный, если за ним что-то меняется

+0

Уровень omxplayer под ним будет воспроизводиться, поэтому, к сожалению, я не думаю, что это сработает. – ajoburg

+0

жаль, что у меня была аналогичная проблема, и это было мое решение, но я не знаю много о omxplayer, поэтому я не могу помочь гораздо больше –

Смежные вопросы