Wayland でウィンドウを出す

前回はディスプレイサーバーに接続のみだったため、今回は画面に見えるようにするところまで紹介したいと思います。

プログラム

ウィンドウを出してみるプログラムは以下のようになります。
このコードで真っ黒のウィンドウが表示されますが、終了手段はコンソールで Ctrl+C で閉じることになるので注意してください。

このプログラムの解説は後半で行います。

プログラム解説

コードの流れとしては以下のようになっています。
サーバー、クライアントのプログラムであると言うことを意識すると理解しやすいかもしれません。

  1. コンポジッタに接続
  2. コンポジッタ上の各情報を取得&自分の関数コールバックを登録
  3. 描画用バッファを共有メモリで作成して登録
  4. バッファに描画データを書き込み、wl_surface_commit で登録
  5. wl_display_dispatch でいわゆるイベントループを回す

各Listenerはサーバーであるコンポジッタからの応答を実装する部分となります。

wl_shell 関連は表示している surface に対してのユーザーからの対話部分、すなわちキーボードやマウスの関連を実装するものとなるようです。
今回はこれらを何も処理していないため、まだウィンドウとして完成していない状態です。

これだけのコードがあるのにまだウィンドウとして完成していないあたり、低レベルのインターフェースである実感がありますね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする