はじめまして、山崎と申します。
参加者からの質問 組込み環境で、Qt5.4 の QtWayland を試している。 コンポジタはWestonで、Qt のアプリを表示して動かすことはできたが、画面周りの デコレーションが(Qtアプリだけ)表示されない。なぜだろうか?
この質問の発信者です。 自己解決していますので、簡単にご報告します。
ここでいう「デコレーション」はウィンドウのフレーム枠や [×] ボタンなどの ことで、Qt アプリをWayland上で実行したときに表示されないことを疑問視 していました。
Wayland は「ディスプレイサーバ」として設計されているため、デコレーションは コンポジッタ(Westonなど、アプリケーション側)で実装する必要があります。 (X11の場合は、ウィンドウ生成時にウィンドウサーバが描画してくれます)
QtWayland にもコンポジッタがあるのですが、これを有効にするにはプラットフォーム (環境変数 QT_QPA_PLATFORM か、アプリ起動時のオプション --platform で指定) を "wayland-egl" にする必要があります。
この問題が発生したときは、プラットフォームを "wayland" にしていました。
で、wayland-egl ですが、wayland の一連のコード(Westonを含む)には存在せず、 mesa(3DCGライブラリ)を --with-egl-platforms=wayland のオプションつきで ビルドする必要がありました。
wayland / mesa / weston が動作する rootfs に対して Qt をビルド/インストールし、 wayland-egl をプラットフォームとして Qt アプリを起動すると、デコレーションつき のウィンドウが描画されるようになります。
2015年2月7日 23:25 小林 修 osamu-k@arion.ocn.ne.jp:
小林(Qt勉強会 @Osaka 世話人)です。
少し遅くなりましたが、 先日1/31(土) の「Qt勉強会 #7 @Osaka」の内容について、簡単に報告します。
日時: 1月31日(土) 13:00〜17:00
会場: 株式会社SRA 関西事業部 大会議室
参加者: 8名 (うち、新規参加 3名)
内容: 今回は、簡単なお絵描きプログラムに、ファイル入出力とネットワーク機能をつけて、 ファイル入出力、データストリーム、TCPソケットを、コードを書きながら勉強しました。 ネットワーク機能は、簡単なチャットの仕組みをお絵描きに組込んで、ネットワーク上で 複数人で1枚の絵を共同で描けるようにしたものです。
半日では時間が足りなくて、ネットワークの部分は簡単な説明で終わったので、 次回は、ネットワークの部分を中心に詳しくやろうと思っています。 できれば、ネットワークゲームとかに発展させてみたい。 お絵描きプログラムのソースは Github で公開しています。 https://github.com/osamu-k/QtStudy/tree/master/Drawing01
参加者からの質問 組込み環境で、Qt5.4 の QtWayland を試している。 コンポジタはWestonで、Qt のアプリを表示して動かすことはできたが、画面周りの デコレーションが(Qtアプリだけ)表示されない。なぜだろうか? これについて、参加者は誰も答えられませんでした。 今回、あまり詳しい状況は聞かなかったので、次回、同じ人が参加されたら、もう少し 詳しく話を聞いて、勉強会のネタにしたい。
懇親会 参加者8 名全員参加で、会場近くの居酒屋で約2時間半、わいわいがやがや。 今回は何故か、話題が関数型言語と Haskell に逸れて、そちらで盛り上がってしまった 感じ。
次回は3月中旬開催見込み。
以上です。