wl_display | |
struct wl_display_listener | ハンドラ構造体 |
---|---|
wl_display_add_listener | ハンドラの設定 |
wl_display_set_user_data | ユーザー定義値をセット |
wl_display_get_user_data | ユーザー定義値を取得 |
wl_display_sync | イベントの同期 |
wl_display_get_registry | wl_registry を作成 |
wl_registry | |
struct wl_registry_listener | ハンドラ構造体 |
wl_registry_add_listener | ハンドラ設定 |
wl_registry_bind | バインドする |
wl_registry_destroy | 破棄 |
wl_buffer | |
struct wl_buffer_listener | ハンドラ構造体 |
wl_buffer_add_listener | ハンドラ設定 |
wl_buffer_destroy | 破棄 |
wl_callback | |
struct wl_callback_listener | ハンドラ構造体 |
wl_callback_add_listener | ハンドラ設定 |
wl_callback_destroy | 破棄 |
<name>_get_user_data() と <name>_set_user_data() は、各々で載せてはいないが、すべてのオブジェクトで使用できる。
wl_display
struct wl_display_listener { void (*error)(void *data, struct wl_display *wl_display, void *object_id, uint32_t code, const char *message); void (*delete_id)(void *data, struct wl_display *wl_display, uint32_t id); };
ハンドラ構造体
error
致命的なエラーが発生した時に実行される。
object_id : エラーが発生したオブジェクト。
code : 各インターフェイスごとのエラーコード。
message : エラーメッセージ。
object_id : エラーが発生したオブジェクト。
code : 各インターフェイスごとのエラーコード。
message : エラーメッセージ。
delete_id
クライアントがオブジェクトを削除した時、サーバーはこのイベントを送信して、削除リクエストを受け取ったことを通知する。
このイベント後は、id のオブジェクト ID を安全に再利用できる。
このイベント後は、id のオブジェクト ID を安全に再利用できる。
int wl_display_add_listener(struct wl_display *wl_display, const struct wl_display_listener *listener, void *data);
ハンドラの設定
struct wl_callback *wl_display_sync(struct wl_display *wl_display);
現時点で発行されている、すべてのイベントの処理が完了した時、wl_callback の done イベントを送信させる。
done イベントで渡される callback_data は、イベントシリアル値。
done イベントで渡される callback_data は、イベントシリアル値。
戻り値
実際にコールバックが発生した後は、この wl_callback はコンポジターによって破棄されるため、それ以降は、このポインタを使ってはならない。
struct wl_registry *wl_display_get_registry(struct wl_display *wl_display);
クライアントが、コンポジターから、利用可能なグローバルオブジェクトを一覧表示、およびバインドできるようにするための wl_registry を作成する。
wl_registry
struct wl_registry_listener { void (*global)(void *data, struct wl_registry *wl_registry, uint32_t name, const char *interface, uint32_t version); void (*global_remove)(void *data, struct wl_registry *wl_registry, uint32_t name); };
ハンドラ構造体
global
グローバルオブジェクトが利用可能になった時
global_remove
グローバルオブジェクトが利用できない状態になった時。
name のオブジェクトをバインドしている場合は、オブジェクトを削除する必要がある。
name のオブジェクトをバインドしている場合は、オブジェクトを削除する必要がある。
int wl_registry_add_listener(struct wl_registry *wl_registry, const struct wl_registry_listener *listener, void *data);
ハンドラ設定
void *wl_registry_bind(struct wl_registry *wl_registry, uint32_t name, const struct wl_interface *interface, uint32_t version);
サーバーにバインドして、オブジェクトを作成する。
name
オブジェクトの数値識別子
interface
各インターフェースごとに定義されている、グローバル変数のポインタを渡す。
各ヘッダファイル内で、"<name>_interface" の名前で定義されている。
例えば、wl_seat なら、以下のように定義されている。
各ヘッダファイル内で、"<name>_interface" の名前で定義されている。
例えば、wl_seat なら、以下のように定義されている。
extern const struct wl_interface wl_seat_interface;
version
使用するバージョン。
クライアントが対応しているバージョンより高い値を指定しないこと。
クライアントが対応しているバージョンより高い値を指定しないこと。
wl_buffer
struct wl_buffer_listener { void (*release)(void *data, struct wl_buffer *wl_buffer); };
ハンドラ構造体
wl_buffer
コンポジタが、描画時にバッファを解放した時。
wl_surface_commit() の後に、この wl_buffer がコンポジタで使用されなくなった時に送信される。
このコールバック後、wl_buffer は削除したりすることができる。
wl_surface_frame() のコールバックより前に release イベントが来た場合、コンポジタがコピーを保持しているので、wl_buffer は自由に使って良い。
wl_surface_commit() の後に、この wl_buffer がコンポジタで使用されなくなった時に送信される。
このコールバック後、wl_buffer は削除したりすることができる。
wl_surface_frame() のコールバックより前に release イベントが来た場合、コンポジタがコピーを保持しているので、wl_buffer は自由に使って良い。
int wl_buffer_add_listener(struct wl_buffer *wl_buffer, const struct wl_buffer_listener *listener, void *data);
ハンドラ設定
wl_callback
struct wl_callback_listener { void (*done)(void *data, struct wl_callback *wl_callback, uint32_t callback_data); };
ハンドラ構造体
done
各コールバック条件が達成された時