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

Xとかオワコン?

on

  • 2,180 views

 

Statistics

Views

Total Views
2,180
Slideshare-icon Views on SlideShare
1,545
Embed Views
635

Actions

Likes
5
Downloads
3
Comments
0

3 Embeds 635

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

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にプロトコルの定義が