Xとかオワコン?

2,693 views
2,569 views

Published on

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,693
On SlideShare
0
From Embeds
0
Number of Embeds
744
Actions
Shares
0
Downloads
4
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Xとかオワコン?

  1. 1. Xとかオワコンじゃね… っていう男の人って
  2. 2. 自己紹介
  3. 3. 青田直大 (あおた なおひろ)@naota344
  4. 4. Software DesignでLinuxカーネルについて連載してます
  5. 5. あとGentooとか
  6. 6. デモ X上でWayland Compositorの Westonを 動かす
  7. 7. デモ自作Waylandクライアント
  8. 8. WaylandWaylandはプロトコルオブジェクト wl_display コアオブジェクト wl_shm クライアントとのメモリ共有 などなどメッセージ UNIXドメインソケットで送られる
  9. 9. Waylandのメッセージ32bit: オブジェクトのID16bit: オペレーションコード16bit: メッセージ長 (byte数)残り: 引数 32bitにalign 文字列は 32bit:文字列長 残り: 文字列+0+padding
  10. 10. Waylandクライアントの流れサーバに接続必要なオブジェクトを「作る」メモリ領域をサーバと共有する画像データを書く更新したよ、とリクエストを送る
  11. 11. Compositorに接続UNIXドメインソケット: wayland-0wl_display globalイベント サーバ側のオブジェクトが教えてもらえる オブジェクトID インタフェース名 バージョン
  12. 12. オブジェクトの「作成」クライアント側にオブジェクトを作るwl_display bindリクエスト globalイベントで教えてもらったID インタフェース名 バージョン クライアント側で割り当てるID
  13. 13. wl_surface画面に描画されるデータwl_compositor create_surfaceリクエストで作成
  14. 14. wl_shell_surfacewl_shell get_shell_surfaceリクエストで wl_surfaceと結びつけるpopupとかmoveとかresizeとかできるように
  15. 15. wl_shm_poolクライアントとサーバで共有するメモリのプールここからbufferを確保してくwl_shm create_poolリクエスト wl_shm_poolに当てるID ファイルデスクリプタ サイズ
  16. 16. wl_bufferピクセルデータが入るbufferwl_shm_pool create_bufferリクエストで作成 wl_bufferに割り当てるID offset width height stride: 次のrowまでのbyte数 format 0: ARGB8888
  17. 17. 画像データを書くpng画像をARGB8888形式でwl_shmで共有してるファイルに書く wl_shm_po ol File
  18. 18. 画像データを書くpng画像をARGB8888形式でwl_shmで共有してるファイルに書く wl_shm_po ol wl_buffe r File
  19. 19. 画像データを書くpng画像をARGB8888形式でwl_shmで共有してるファイルに書く wl_shm_po ol wl_buffe wl_surface File r
  20. 20. 画像データを書くpng画像をARGB8888形式でwl_shmで共有してるファイルに書く wl_shm_po ol wl_buffe wl_surface File r ここにデータ書く
  21. 21. buffer更新メッセージwl_surface damageリクエスト x y width height描画してくれる!
  22. 22. 実装Haskell ghc-7.4.1 conduit-0.4.0.1 network-conduit-0.4.0 codec-image-devil-0.2.3
  23. 23. 問題点好きなIDを指定してね! サーバがSEGVintがうまく渡せてない時がある? 変な数字になるHaskellだけど実装がアレFdをメッセージと一緒に渡すためにnetworkにpatchが必要なんか最初に画像が乱れる
  24. 24. 自分も書きたい… !weston/clients/ にいろんなデモがwayland/protocol/wayland.xmlにプロトコルの定義が

×