4

私はスライドショー アプリに取り組んでおり、SDL 1.2 をカスタム dispmanx バックエンド ( https://github.com/vanfanel/SDL12-kms-dispmanx ) と Pygame で使用して、omxplayer の上にオーバーレイを作成しています。

それはすべてうまく機能し、正しくレイヤー化されていますが、オブジェクトも透明にしないと dispmanx で透明なキャンバスを作成できないようです。私の理解では、Pygame 自体はこれを処理できず、dispmanx レイヤー間の透過性を処理するのは SDL 次第です。

私の目標は、描画できる omxplayer の上の画面サイズのハードウェア アクセラレーションによる透明なキャンバスです。

これを行うには、vc_dispmanx_element_add のアルファ設定を使用する以外の方法が必要だと思いますか? XBMC は dispmanx を使用し、omxplayer 上で不透明なオーバーレイを実行できるため、これは可能でなければなりません。vc_dispmanx_display_set_background も調べましたが、これはアルファではなく RGB のみを使用しているようです。

4

1 に答える 1

0

透明なウィンドウを作成するのではなく、ウィンドウのスクリーンショットを撮り、それを背景として使用できます。これを行うには、pyscreenshot を使用して画像を取得し (他にもオプションがあります)、

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

ウィンドウが常に適切な場所にあることを確認するために、これの唯一の弱点は、背後で何かが変更された場合にウィンドウが透明でなくなることです

于 2013-07-11T03:39:49.863 に答える