GDI (Graphics Device Interface)
詳細情報
- 作者
- Microsoft
- 公開
- 種類
- グラフィックスAPI
- 公式サイト
- learn.microsoft.com
1985年以来のWindowsの描画層。画面でもプリンタでもファイルでも、線・文字・ビットマップに同じ呼び出しを使える。ウィンドウを開きすぎると資源が尽きて、十年ほど人々を悩ませた部分でもある。
GDIはWindowsにおけるQuickDrawやXlibに当たるもので、USER側がウィンドウの配置だけを担うのに対し、実際の描画を担当するライブラリである。全てはデバイスコンテキスト(HDC)を通して行われ、これは描画面を表し、現在選択中のペン、ブラシ、フォント、クリッピング領域を保持する。同じ呼び出しがプリンタドライバにも画面にも通用したので、プログラムは専用コードなしで印刷でき、安価なGDIプリンタはページ全体のラスタライズをWindowsに任せた。メタファイル(WMF)はGDI呼び出しの記録で、Officeのクリップアートの形式になった。
16ビット版Windowsでは、全てのペン、ブラシ、ビットマップが64 KBの一つのヒープを共有しており、「システムリソース:空き23%」が測っていたのがそのヒープである。Windows NTは4.0(1996年)で速度のためにGDIをカーネルへ移したが、反対の声もあった。2001年のGDI+は、アンチエイリアス、アルファ、グラデーションをC++層として上に加え、.NETのSystem.Drawingはそのラッパーである。VistaのDesktop Window Managerの導入でGDIはハードウェアアクセラレーションを失い、2009年以降の新規開発はDirect2DとDirectWriteに移った。それでも、1985年の呼び出しは今も動く。