X レンダリング拡張機能

X レンダリング拡張機能
原作者X.Org財団
安定版リリース
0.9.12 [ 1 ] ウィキデータで編集する / 2024年12月13日 (2024年12月13日
プラットフォームUnixUnixライク

X レンダリング拡張機能( RenderまたはXRender )は、 X サーバーイメージ合成を実装し、透明なイメージを効率的に表示できるようにするため のX11 コア プロトコルの拡張機能です。

歴史

これは2000年にKeith Packardによって作成され、 XFree86バージョン4.0.1で初めてリリースされました。その設計はPlan 9のウィンドウシステムであるrioの影響を受けています。[ 2 ]

モチベーション

X Window Systemのコア描画プロトコルには、透明なオブジェクトを効率的に描画する方法がありません。コンピュータのディスプレイは個々のピクセルで構成されており、一度に表示できる色は1色だけです。そのため、透明化を実現するには、描画する透明オブジェクトの色と背景色を混合する(アルファ合成)しかありません。しかし、標準のXプロトコルでは単色での描画しか許可されていないため、透明化を実現するには、画面から背景色を取得し、オブジェクトの色と混合して書き戻すしかなく、これはかなり非効率的です。[ 3 ]

多くの操作では透明性が求められるため (たとえば、特にフォントのラスタライズ中の空間アンチエイリアシングや、透明なウィンドウやメニューなどのウィンドウ マネージャーでの透明性効果など)、この制限によって問題が発生し、これを解決するために Xrender が実装されました。

特徴

複数のレンダリング操作を提供し、アルファブレンディングも行います。2011年現在、主にアンチエイリアスフォントの実装に使用されていますが、例えばKDEのウィンドウマネージャーであるKWinでは、OpenGLが利用できない場合にドロップシャドウや半透明の描画に使用されています。

幾何学図形は、クライアント側で三角形または台形にテッセレーションされてレンダリングされます。テキストは、グリフをサーバーに読み込み、グループとしてレンダリングすることで描画されます。

これは、新しいビデオ カードの 3D グラフィック機能を対象に設計されています。

参考文献

  1. ^ Alan Coopersmith (2024年12月13日). https://lists.x.org/archives/xorg-announce/2024-December/003567.html . 2025年5月1日閲覧{{cite web}}:欠落または空|title=(ヘルプ)
  2. ^ 「Xレンダリング拡張機能の設計と実装」 2000年。 2013年11月3日閲覧
  3. ^ Xft - Xフォントライブラリコアプロトコルを用いてアンチエイリアステキストを描画するには、出力先からピクセルを取得し、グリフをマージして、それを送り返すという処理が必要です。クライアントとサーバー間のレイテンシが高い場合、パフォーマンス上の問題が発生する可能性があります。