Loading AI tools
ウィキペディアから
Wayland は、ディスプレイサーバとクライアント間の通信方法を記述した通信プロトコルである。 また、そのプロトコルをCで実装したライブラリでもある。 Waylandプロトコルを使用したディスプレイサーバをWaylandコンポジタと呼ぶ。 これは、このディスプレイサーバがコンポジット型ウィンドウマネージャの機能も持つためである。
![]() | |
![]() Waylandのデモ | |
作者 | Kristian Høgsberg |
---|---|
開発元 | freedesktop.orgその他 |
初版 | 2008年9月30日[1] |
最新版 |
Wayland: 1.21, Weston: 11.0.1
/ 2022年6月30日 |
リポジトリ | |
プログラミング 言語 | C |
対応OS |
公式: Linux 非公式: NetBSD, FreeBSD, DragonFly BSD[2] |
サポート状況 | 正式公開済み |
種別 | ディスプレイサーバ |
ライセンス | MIT License[3] |
公式サイト |
wayland |
Waylandは当初、Kristian Høgsberg率いるボランティアによって、フリーかつオープンソースコミュニティ主導のプロジェクトとして開発されていた。 このプロジェクトは、Linuxやその他のUnix系OSにおいて、X Window Systemをモダンで安全で[4][5][6][7]よりシンプルなものに置き換えることを目的としている。プロジェクトのソースコードは、パーミッシブ・ライセンスのひとつであるMITライセンスで公開されている[8][3]。
成果の一部として、WaylandプロジェクトはWestonと呼ばれるWaylandコンポジタのリファレンス実装も開発した。
コンポジット型ウィンドウマネージャがアプリケーションやグラフィクスハードウェアと直接通信できる方法を、Waylandが提供する。具体的には、各アプリケーションは自身のバッファに画像を描画し、ウィンドウマネージャがディスプレイサーバとしてそれらバッファを合成して、ディスプレイ上に各アプリケーションウィンドウを作り出す。これは、コンポジット型ウィンドウマネージャとX Window Systemを一緒に使う従来の方法より効率的かつシンプルである[9]。
Waylandはグラフィクス周りのみに特化しており、入力ハードウェアとの通信には他のライブラリを使用することを想定している。
Waylandディスプレイサーバプロジェクトは、Red Hatの開発者であったKristian Høgsbergによって、2008年に開始された[10]。
2010年頃、Linuxデスクトップのグラフィックスは、「中心にあるXサーバとやり取りするためだけの山積みのレンダリングインタフェース」を持つ状態から、"XやWaylandのようなウィンドウシステムを脇に退けて"、Linuxカーネルやそのコンポーネント (たとえばダイレクト・レンダリング・インフラストラクチャ(DRI)、ダイレクト・レンダリング・マネージャ(DRM)を"間に置く"ように移行した。その結果、"グラフィックシステムはシンプルになり、より柔軟性があり、より良いパフォーマンスを発揮する"ようになった[11]。
Høgsbergは、多くの最近のプロジェクトと同様にXへの拡張を追加することもできたが、"クライアントとハードウェアの間のホットなパスからXを[締め出す]"ことを採用した。 その理由について、プロジェクトのFAQには以下のとおり記載されている[8]。
今や異なるのは、多くのインフラストラクチャがXサーバからカーネル(メモリ管理、コマンドスケジューリング、モードセッティングやライブラリ(cairo, pixman, FreeType, Fontconfig, Pango等)に移行したことだ。そして中央サーバプロセスでしなければならないことは、ほとんど残っていない。一方、[Xサーバ]は、Xプロトコルで会話することをサポートしなければならず、膨大な量の機能がある。それらの機能はもはや誰も使わない...。 それらの機能は、コードテーブル、グリフのラスタライズとキャッシング、XLFD (マジでXLFD!)、コアレンダリングAPI全体がある。コアレンダリングAPIは、点線、ポリゴン、大きな円弧、その他多くの1980年代スタイルの原始的なグラフィックを描くためのものである。
多くのことに対して、我々はXRandR、XRender、COMPOSITといった拡張を追加することでX.orgサーバをモダンにし続けてきた...。Waylandによって、我々はXサーバとすべてのレガシーテクノロジーをオプションへと移行できる。Xサーバがコアなレンダリングシステムから互換性のあるオプションに置き換わるまでは長い時間がかかるが、計画しなければ達成はできないのだ。
Waylandの初期バージョンでは、ネットワーク透過性を提供していなかった。 しかし、Høgsbergは、2010年にネットワーク透過性が可能であることを記した[12]。 それは、2011年のGoogleサマーコードプロジェクトとして挑戦されたが成功しなかった[13]。 Adam Jacksonは、(VNCのような)"ピクセルスクレイピング"や (RDP、SPICE X11のように)ネットワーク越しに"レンダリングコマンドストリーム"を送る方法で、Waylandアプリケーションへのリモートアクセスを目論んだ[14]。 2013年初頭、Høgsbergは、本物のコンポジタへ圧縮画像を送るプロキシWaylandサーバーを使ってネットワーク透過性の実験を行った[15][16]。 2017年8月、GNOMEはWayland下で最初のピクセルスクレイピングVNCサーバの実装を提示した。
Waylandプロトコルはクライアントサーバモデルである。クライアントはピクセルバッファを画面上へ表示するよう要求するグラフィカルアプリケーションであり、サーバ(コンポジタ)はこれらのバッファの表示を制御するサービスプロバイダである。
Waylandリファレンス実装は、2層のプロトコルとして設計された。すなわち[17]、
下位レイヤはCで手作業で書かれたが、高位レイヤはXMLフォーマットで書かれたプロトコルの記述から自動生成された[19]。 このXMLで書かれたプロトコルの記述が変更されたときは、いつでもプロトコルを実装したCのソースコードを再生成できる。これによって、非常にフレキシブルで、拡張性が高く、エラーを防止したプロトコルになる。
Waylandプロトコルのリファレンス実装は、2つのライブラリ、すなわち、Waylandクライアントによって使われるlibwayland-client
ライブラリと、Waylandコンポジタによって使われるlibwayland-server
ライブラリである[18]:57。
Waylandプロトコルは、"非同期オブジェクト指向プロトコル"として記述されている[18]:9。オブジェクト指向とは、コンポジタによって提供されるサービスが、同じコンポジタ上に存在する一連のオブジェクトとしてもたらされることを意味する。 各オブジェクトはインタフェースを持つ。インタフェースは、名前と、いくつかのメソッド(リクエストと呼ばれる)、いくつかの関連したイベントを持つ。それぞれのリクエストとイベントは0以上の引数を持ち、それぞれに名前とデータ型がある。プロトコルが非同期とは、リクエストが、同期した返信やACKを待つ必要がないことを意味する。これによりラウンドトリップタイムを避け、パフォーマンスが改善する。
Waylandクライアントは、あるオブジェクトがサポートしているリクエストを、そのオブジェクトへリクエストできる(メソッドを呼び出せる)。クライアントは、必要とされるデータをリクエストの引数として提供しなければならない。これが、クライアントがコンポジタからサービスを要求する方法である。次に、コンポジタは、イベントを(おそらく引数付きで)発行するため、オブジェクトによって情報をクライアントへ返す。これらのイベントは、あるリクエストに対する反応や、あるいは非同期の (入力デバイスからのイベントといった)内部イベントや状態変化としてコンポジタによって発行される。エラー状態もコンポジタによってイベントとして通知される[18]:9。
オブジェクトへリクエストを発行できるクライアントのために、最初に、オブジェクトを識別するために使うID番号をサーバに伝える必要がある[18]:9。コンポジタには2種類のオブジェクトがある。グローバルオブジェクトと、非グローバルオブジェクトである。グローバルオジェクトは、生成時(そして廃棄時)にコンポジタによってクライアントへ通知される。一方、非グローバルオブジェクトは、通常、すでに機能の一部として存在している他のオブジェクトによって生成される[20]。
インタフェースとその要求およびイベントは、Waylandプロトコルを定義する中心となる要素である。プロトコルの各バージョンは、どんなWaylandコンポジタにもあると期待されるインタフェースと、その要求およびイベントの集合を含んでいる。オプションとして、Waylandコンポジタは新しいリクエストとイベントをサポートする独自のインタフェースを定義して実装するかもしれない。それによって、コアプロトコル以上の機能へ拡張することができる[18]:10。プロトコルの違いを管理するため、それぞれのインタフェースは名前に加えて"バージョン番号"属性を持っている。この属性により、同じインタフェースの派生版を区別できる。 各Waylandコンポジタは、どのインタフェースが使用可能かだけでなく、それらのインタフェースがサポートしているバージョンも公開する[18]:12。
現在のバージョンのWaylandプロトコルのインタフェースは、Waylandソースコードにあるprotocol/wayland.xmlで定義されている。これはXMLファイルであり、現在のバージョンに存在するインタフェースが、リクエスト、イベント、その他の属性と共にリストアップされている。このインタフェース集合は、どのWaylandコンポジタも最低限必要とされるインタフェースである。
いくつかのWaylandプロトコルでの最も基本的なインタフェースは、以下のとおりである[18]。
標準的なWaylandクライアントセッションは、wl_displayオブジェクトを使ってコンポジタに接続することで開始する。これは接続を表す特別なローカルオブジェクトであり、サーバー内には存在しない。このインタフェースを使うことで、クライアントはコンポジタからwl_registryグローバルオブジェクトを要求できる。wl_registryオブジェクトには、すべての名前があり存在しているグローバルオブジェクトが格納され、クライアントは望むオブジェクトを紐付ける。通常、クライアントは最低限1つのwl_compositorオブジェクトを紐付ける。アプリケーションの出力をディスプレイに表示するため、wl_compositorオブジェクトから、1つ以上のwl_surfaceオブジェクトを要求する[20]。
Waylandコンポジタは、自身の追加インタフェースを定義して公開することができる[18]:10。この特徴によって、コアインタフェースによって提供される基本機能を超えてプロトコルを拡張できる。そしてこれは、Waylandプロトコル拡張を実現する標準的な方法になった。コンポジタは、特化したあるいはユニークな特徴を提供するために、カスタムインタフェースを追加できる。WaylandリファレンスコンポジタであるWestonは、新しいコンセプトやアイデアのためのテストベンチとして、あたらしい実験的なインタフェースを実現するためにカスタムインタフェースを使用した。それらのコンセプトやアイデアは、その後にコアプロトコルの一部になった(たとえばwl_subsurfaceインタフェースは、Wayland 1.4で追加された)[21]。
XDG-Shellプロトコル(XDGについてはfreedesktop.orgを見よ)は、Waylandコンポジタ(Westonに限らず)でサーフェイスを管理するための拡張手段である。サーフェイスを操作(最大化、最小化、フルスクリーンなど)するための伝統的な方法は、wl_shell_*()関数を使用することだった。この関数は、Waylandコアプロトコルの一部で、libwayland-clientにある。対して、XDG-Shellプロトコルの実装は、Waylandコンポジタによって提供される。そのためxdg-shell-client-protocol.hヘッダがWestonソースツリーに含まれる。それぞれのWaylandコンポジタは自身の実装を提供することを想定している。
2014年6月現在[update], XDG-Shellプロトコルはバージョン管理されておらず、まだ変更する可能性がある。
xdg_shellは、長期的にはwl_shellを置き換えることを目指したプロトコルである。しかし、現状ではxdg_shellは、Waylandコアプロトコルの一部ではない。xdg_shellは、開発版のAPIとして始まり、当初は開発用に使われた。これらの特徴がいくつかのデスクトップシェルによって要求されるとなれば、最終的には安定版へ移行できる。xdg_shellは、主に2つの新しいインタフェース:xdg_surfaceとxdg_popupを提供する。xdg_surfaceインタフェースは、動かせ、サイズ変更ができ、最大化等ができるデスクトップスタイルウィンドウを実現する。xdg_surfaceインタフェースは、親子関係を生成するためのリクエストを提供する。xdg_popupインタフェースは、デスクトップスタイルのポップアップとメニューを実現する。xdg_popupは、常に別のサーフェイスのための一時的なものであり、暗黙的なグラブを持つ[22]。
IVI-Shellは、Waylandコアプロトコルの拡張で、車内エンターテインメント (IVI) デバイス[23]をターゲットにしている。
Waylandプロトコルは、レンダリングAPIを含んでいない[18]:7[8][24][25]。その代わり、Waylandはダイレクトレンダリングモデルを採用している。ダイレクトレンダリングモデルでは、クライアントはウィンドウコンテンツをコンポジタと共有できるバッファへ描画しなければならない[18]:7。そのため、クライアントはCairoやOpenGLなどのライブラリを使って、自分自身ですべてをレンダリングすることも選択できる。あるいは、QtやGTKといった、Waylandをサポートする高位のウィジェットライブラリのレンダリングエンジンに頼ることもできる。クライアントは、特定のタスクをこなすために、オプションとしてその他の特化したライブラリを使用することもできる。たとえばフォントレンダリング(英語版)のためにFreeTypeを使用できる。
レンダリングされたウィンドウコンテンツの結果(バッファ)は、wl_bufferオブジェクトに格納される。このオブジェクトのデータ型は、実装依存である。コンテンツデータがクライアントとコンポジタとの間で共有可能でなければならないことだけが唯一要求される。もしクライアントがソフトウェア(CPU)レンダラを使用し、その結果がシステムメモリに格納されるなら、クライアントとコンポジタは、バッファ間のやり取りを余分なコピーなしに実現するため、共有メモリを使用できる。Waylandプロトコルはすでにこの種の共有メモリバッファに何も追加することなしに対応している。共有メモリバッファは、wl_shmおよびwl_shm_poolインタフェースによって実現できる[18]:11, 20-21。この方法の欠点は、コンポジタはそれを表示するために追加の作業(通常、共有データのGPUへのコピー)を必要とする可能性があることである。これにより、グラフィックパフォーマンスは低下する。
最も一般的なケースでは、クライアントがOpenGL、OpenGL ES、Vulkanといったハードウェア(GPU)アクセラレーションのためのAPIを使って、ビデオメモリバッファへ直接レンダリングする。クライアントとコンポジタは、このGPU空間のバッファを参照するための特別なハンドラを用いて共有できる[26]。この方法は、コンポジタに余計なデータコピーをしないようにする。結果として、グラフィックパフォーマンスは向上し、よりよい方法である。コンポジタはAPIクライアントとして、同じハードウェアアクセラレーションAPIを使って、ディスプレイへ描画する最終的なシーンのコンポジションをかなり最適化できる。
レンダリングが共有バッファ内で完成したとき、Waylandクライアントはバッファのレンダリングされたコンテンツをディスプレイに表示するため、コンポジタを導くべきである。そのために、クライアントはレンダリングされたコンテンツを格納するバッファオブジェクトをサーフェイスオブジェクトに紐付ける。そして"commit"リクエストをサーフェイスに送り、バッファの制御をコンポジタヘ転送する[17]。それから、クライアントは、もしまた別のフレームをレンダリングするためにバッファを再利用するなら、コンポジタがバッファを開放するのを待つ(イベントによって通知される)あるいは新しいフレームをレンダリングするため別のバッファを使用し、レンダリングが完了した時にこの新しいバッファをサーフェイスに紐付け、そのコンテンツをコミットすることもできる[18]:7。数個の関連するバッファやその運用を含めて、レンダリングに使用される方法は、全体的にクライアントの制御下にある[18]:7。
WaylandとXとの間には、パフォーマンス、コードの保守性、セキュリティに関して、いくつかの違いがある[27]。
XWaylandは、Waylandクライアントとして動作するXサーバである。XWaylandによって、Waylandコンポジタ環境でネイティブのX11クライアントアプリケーションを表示させることができる[39]。これは、XQuartzがXアプリケーションをmacOSのネイティブウィンドウシステムで動かす方法に似ている。XWaylandのゴールは、移植されていないアプリケーションを実行する方法を提供することで、XウィンドウシステムからWayland環境への移行を促進することである。XWaylandは、X.Orgサーババージョン1.16に取り込まれた[40]。
Qt5やGTK3といったウィジェット・ツールキットは、ユーザーがアプリケーションをX上あるいはWayland上で実行させるかに関わらず、ユーザがローダを選択することで、グラフィカルバックエンドを実行時に変更できる[41]。Qt5は、この効果のために-platform
コマンドラインオプション[42]を提供している。一方、GTK 3は、GDK_BACKEND
環境変数を設定することで、ユーザがGDK(英語版)バックエンドを使用するか選択可能にしている[41][43]。
Waylandディスプレイサーバプロトコルを実装したディスプレイサーバは、Waylandコンポジタとも呼ばれる。なぜなら、それらはコンポジット型ウィンドウマネージャの仕事もこなすからである。
Westonは、Waylandコンポジタのリファレンス実装であり[54] Waylandプロジェクトによって開発されている。Cで書かれており、MITライセンスの下で公開されている。Westonは、Linuxカーネルの特定の機能に依存しているため、公式にはLinuxのみサポートしている。Westonが依存している機能は、カーネルモードセッティング(英語版)、Graphics Execution Manager (GEM) 、udevである。これらは、他のUnixライクOSには実装されていない[55]。Linuxで実行するとき、evdev(英語版)によってハードウェアの入力を運用する。一方、バッファの運用は、ジェネリックバッファマネジメント (GBM) (英語版)に依存している。しかし、2013年にWestonのFreeBSD向けのプロトタイプportがアナウンスされた[56]。
Westonは、コンポジタとアプリケーション間のアプリケーションバッファを共有するためにGEMに依存している。ドックやパネルといった共通のデスクトップの機能のための"シェル"のプラグインシステムを含む[16]。クライアントは、自身のウィンドウボーダや装飾の描画に対して責任を負う。Westonは、レンダリングのためOpenGL ES[58]を使ったり、ソフトウェアレンダリング(英語版)のためにpixmanライブラリ[59]を使ったりすることができる。完全なOpenGL実装は使われない。なぜなら、現在のほとんどのシステムでは完全なOpenGLライブラリをインストールしている場合、GLXやその他のXウィンドウシステムサポートライブラリを依存関係のためにインストールしているからである[60]。
Westonのためのリモートアクセスインタフェースは、2013年10月にRealVNC(英語版)の従業員によって提案された[61]。
Maynardは、グラフィカルシェルである。Maynardは、GNOME ShellがMutterへのプラグインとして書かれたことと同様に、Westonのプラグインとして書かれた[62]。 ラズベリーパイ財団は、Collabora(英語版)とのコラボレーションの中でMaynardをリリースし、パフォーマンスとメモリ使用量の改善に取り組んでいる[63][64]。
入力デバイス(キーボード、ポインタ、タッチスクリーン等)を扱うためのWestonコードは、libinputと呼ばれる独立したライブラリとして分けられている。Weston 1.5に始めてマージされた[65][66]。
libinputは、Waylandコンポジタのための入力デバイスを扱う。また、汎用的なX.Orgサーバ入力ドライバを提供する。libinputの狙いは、入力イベントを扱う共通の方法でWaylandコンポジタ用の単一の実装を提供することである。これによりコンポジタ用にインプットコードをカスタムするための量を最小化する。libinputは、(udevを通じて)デバイスの検出[要説明]、デバイスの運用、入力デバイスイベントの処理と抽象化を提供する[67][68]。
libinputのバージョン1.0は、バージョン0.21の次にリリースされ、タブレット、ボタンセット、タッチパッドジェスチャのサポートを含んでいる。このバージョンは、安定したAPI/ABIを維持する(API/ABIが変わらない。)[69]。
GNOME/GTKおよびKDEフレームワーク5[70]が本流にしたことで、Fedora 22は、X.OrgのevdevとSynapticsドライバをlibinputに置き換えた[71]。
バージョン1.16では、X.Orgサーバがxf86-input-libinputと呼ばれるラッパによって、libinputライブラリをサポートした[72][73]。
Waylandセキュリティモジュールは、LinuxカーネルにおけるLinuxセキュリティモジュールインタフェースに似た位置づけである[74]。
(とくにアクセシビリティに関連した)いくつかのアプリケーションは、高い権限(特権)を必要とする。これらの権限は、Waylandコンポジタに共通して持たれる。現在[いつ?]、Waylandにおけるアプリケーションは、一般的にスクリーンショットや入力イベントの発行といったセンシティブな処理は、いずれも実行できない。Waylandの開発者達は、特権を付与されたクライアントを安全に処理するための実行可能な方法を積極的に探しており、クライアント用の特権を持たせるインタフェースを設計している。
Wayland Security Moduleは、コンポジタ内でのセキュリティの決定を、一元化されたセキュリティ決定エンジンに移譲する方法である[74]。
Waylandプロトコルは、シンプルであるように設計された。そのためウィンドウシステム全体を構築するためには、追加のプロトコルやインタフェースを定義し実装することが必要である。2014年7月現在[update]これらの追加のインタフェースは作成中である。そのため、ツールキットは既にWaylandを完全にサポートしている一方、グラフィカルシェルの開発者達は必要な追加のインタフェースを作るためにWaylandの開発者と協力している。
2020年現在[update]ほとんどのLinuxディストリビューションは、Waylandをインストール直後からサポートしている。特筆すべき例を挙げると:
特筆するアーリーアダプター:
Waylandをサポートするツールキットの一部を以下に列挙する。
XからWaylandへの置き換えを進めているデスクトップ環境には、GNOME[97]、KDE Plasma 5[98]やEnlightenment[99]がある。
2015年11月、Enlightenment e20は、完全なWaylandサポートをアナウンスした[100][45][101]。
GNOME 3.20は、完全なWaylandセッションを持つ最初のバージョンである[102]。GNOME 3.22は、GTK, Mutter, GNOME Shellを通してWaylandのサポートを改善した[103]。GNOME 3.24は、Wayland下での商用NVidiaドライバをサポートした[104]。
先行してKWin 4.11 が実験的にWaylandをサポートしていた[105]が、KDE PlasmaによるWaylandのサポートは、Plasma 5のリリースまで遅れた[106]。 Plasma バージョン5.4は、Waylandセッションをサポートした最初のバージョンである[107]。2020年の間、KlipperはWaylandへ移行し、次の2020年10月にリリースされる次の5.20ではスクリーンキャスティングとレコーディングを改良することを目標としている[108]。
Waylandをサポートするその他のソフトウェアは以下である。
Waylandをサポートする携帯および組込ハードウェアは、以下である。
作者であるKristian Høgsbergは、LinuxのグラフィックとX.Orgの開発者であり、以前はAIGLXとDRI2で勤務していた。Red Hatで勤務しているとき、2008年の空いた時間のプロジェクトとしてWaylandの開発を始めた[125][126][127][128]。最初の目標は、"すべてのフレームは完璧である、つまり、それによってアプリケーションは、テアリング、ラグ、再描画、ちらつきを二度と目にしないよう十分にレンダリングをコントロールできる"システムであった。根底となるコンセプトが"固まった"とき、Høgsbergはちょうどマサチューセッツ州Wayland(英語版)の街を運転していたため、その名前がつけられた[127][129]。
2010年10月に、Waylandはfreedesktop.orgのプロジェクトになった[130][131]。移行の一環として、プロジェクトの中心となる議論と開発の場がGoogle グループからWayland-develメーリングリストに置き換えられた。
Waylandクライアントとサーバのライブラリは、当初MITライセンスの下でリリースされた[132]一方、コンポジタのリファレンス実装であるWestonといくつかのクライアントの例は、GNU General Public License version 2を使用した[133]。その後、すべてのGPLのコードは、"コードがリファレンス実装と実際のライブラリとの間をより容易に移動できるよう"MITライセンスに再ライセンスされた(英語版)[134]。2015年には、Waylandで使用していたライセンスの文言が、古いバージョンのMITライセンスとわずかに異なっていたことが見つかった。ライセンスの文言はX.Orgプロジェクトで使われてる(MIT Expat Licenseとして知られる)現在のバージョンのものへ更新された[3]。
Waylandは、DRI2サポートによってすべてのMesa 3D互換ドライバで動作し、[116]同様にHybrisプロジェクト(英語版)を通じてAndroidドライバで動作する。[135][136][137]
バージョン | リリース日 | 主な特徴 | |
---|---|---|---|
Wayland | Weston | ||
0.85 | 2012年2月9日[139] | 初回リリース。 | |
0.95 | 2012年7月24日[140] | APIの安定化を開始した。 | |
1.0 | 2012年10月22日[141][142] | WaylandクライアントAPIが安定になった。 | |
1.1 | 2013年4月15日[143][144] | ソフトウェアレンダリング[59]。FBDEV, RDPバックエンド。 | |
1.2 | 2013年7月12日[145][146] | WaylandサーバAPIが安定になった。 | 色の管理。Subsurfaces。Raspberry Piバックエンド。 |
1.3 | 2013年10月11日[147] | より多くのピクセルフォーマット。言語バインディングのサポート。 | libhybris(英語版)を通じてAndroidドライバのサポート。 |
1.4 | 2014年1月23日[21] | あたらしいwl_subcompositor および wl_subsurface インタフェース。 | マルチフレームバッファフォーマット。rootのないWestonに対するlogindのサポート。 |
1.5 | 2014年5月20日[65] | libinput。フルスクリーンシェル。 | |
1.6 | 2014年9月19日[148] | libinputをデフォルトにした。 | |
1.7 | 2015年2月14日[149][150] | Waylandプレゼンテーション拡張およびsurface rolesをサポート。IVIシェルプロトコル。 | |
1.8 | 2015年6月2日[151][152] | コアと生成されたプロトコルからヘッダを分離した。 | 再描画スケジューリング。名前付けされた出力。出力変換。Surface-shooting API. |
1.9 | 2015年9月21日[153][154] | ライセンスを更新。 | ライセンスを更新。新しいテストフレームワーク。Triple-head DRM コンポジタ。Linux_dmabuf 拡張。 |
1.10 | 2016年2月17日[155][156] | ドラッグアンドドロップ機能, グループ化されたポインタイベント。[157] | Video 4 Linux 2, タッチ入力, デバッグ改善[158]。 |
1.11 | 2016年6月1日[159][160] | 新しいバックアップ読み込みルーチン、新しいセットアップロジック。 | プロキシラッパー、共有メモリの変更、Doxygenにより生成された HTML 文書。 |
1.12 | 2016年9月21日[161][162] | デバッグ環境の改善。 | libweston および libweston-desktop。ポインタのロックと束縛。相対ポインタのサポート。 |
1.13 | 2017年2月24日[163][164] | WestonのABIが変わった。そのため、新バージョンは、1.13.0ではなく2.0.0になった。 | |
1.14 | 2017年8月8日[165][166] | Weston 3.0.0 が同時にリリースされた。 | |
1.15 | 2018年4月9日[167][168] | Weston 4.0.0 が同時にリリースされた。 | |
1.16 | 2018年8月24日[169][170] | Weston 5.0.0 が同時にリリースされた。 | |
1.17 | 2019年3月20日[171][172] | Weston 6.0.0 が同時にリリースされた。 | |
1.18 | 2019年8月2日[173][174] | Weston 7.0.0 が1ヶ月後にリリースされた。 | |
1.19 | 2021年1月27日[175] | ||
Weston 8[176] | 2020年1月24日 | ||
Weston 9[177] | 2020年9月4日 | ||
サポート終了 サポート中 現行バージョン 将来のリリース |