Xとかオワコン?
Upcoming SlideShare
Loading in...5
×
 

Xとかオワコン?

on

  • 2,189 views

 

Statistics

Views

Total Views
2,189
Views on SlideShare
1,552
Embed Views
637

Actions

Likes
5
Downloads
3
Comments
0

3 Embeds 637

http://d.hatena.ne.jp 299
https://twitter.com 210
http://orangeclover.hatenablog.com 128

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Xとかオワコン? Xとかオワコン? Presentation Transcript

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