manager)は、ウィンドウマネージャの一種である。描画・管理するソフトウェアであり、ウィンドウの配置を行い、ボーダーやタイトルバーなどのウィンドウの追加的部品を描画し、ウィンドウ間の相互作用や他のデスクトップ環境要素との相互作用を制御する。初期のウィンドウマネージャでは、個々のプログラムのウィンドウを表示用メモリにレンダリングすることをそのプログラム自身に任せていた。することでスクリーンのイメージを生成して表示用メモリにその結果を書き込む[1][2]。曲げとねじ曲げ、混ぜ合わせ、ぼやけ、アプリケーションのリダイレクト、複数のディスプレイおよび仮想デスクトップ間でのウィンドウの移動などがある。コンピュータグラフィックス技術により、陰影をつける、ライブ・プレビュー、複雑なアニメーションなどの視覚効果がリアルタイムで描画可能となった[3][4]。技術的にはダブルバッファリングが行われているため、更新の際にフリッカー(ちらつき)が発生することはない。主なコンポジット型ウィンドウマネージャとしては、以下のものがある。外部リンクスタック型ウィンドウマネージャとの比較[編集]ウィンドウマネージャは、サイズを変更したときや他のウィンドウに隠されていたものを前に出したときなど、必要に応じて再描画させるためウィンドウにメッセージを送る。スタック型ウィンドウマネージャでは、プログラムが遅いとか、応答しないとか、バグだらけといった場合に適当な時間内にそのメッセージに応答できず、再描画処理が失敗することがある[5][6]。悪意あるプログラムで意図的にウィンドウの再描画をさぼると、システムを不安定にすることも可能である。結果として以下の状態が生じることがある。クリッピングされたウィンドウの隠されていた領域を再描画せず、結果としてその部分は空白のままか、他のウィンドウのイメージをそのまま表示させておく。ウィンドウの一部(装飾的な影など)が何かの後ろに隠され、再び上に出てきたときに正しく再描画されない。画面の更新が我慢できないほど遅くなる[7]。画面全体が問題のプログラムが応答するか終了するまでフリーズする[8]。コンポジット型ウィンドウマネージャでは、ウィンドウマネージャが再描画を要求してもウィンドウが再描画しない場合、最後の再描画結果が表示され続け、場合によってはそのウィンドウを減光して表示する。そのとき、そのウィンドウが応答しないという状態を反映してタイトルを変更することが多い。プログラムによってはそのウィンドウを動かしたりアンマップしたりできないこともあるが、一般に再描画問題は生じない。歴史[編集]コンポジット型ウィンドウシステムの初期の例としてコモドールのAmigaがある。アプリケーションは、まずその時点の表示領域以外のメモリ領域を要求し、それをビットマップとして使用する。行い、表示用メモリ内でアプリケーション群のビットマップを合成し、ボタンやスライダーなどを付与する。その間、アプリケーションは自身のビットマップを再描画する必要はない。合成処理を専用のグラフィックス・ハードウェアに任せられるようになった[2][9]。サン・マイクロシステムズはSwingツールキット上のレイヤーとして野心的な3Dグラフィックスシステムを開発した。機能の一部は他のウィンドウマネージャに実装されている。