>>553 まず、「2Dが早い」というのは多くの語弊を含んでいる点に注意。
Windowsで提供される2D描画には複数のAPIがあって、アプリケーションが適切にAPIを選択していないと
ハードウェアアクセラレーションがあろうとなかろうと台無しになっちゃう。
GDI/GDI+ Windowsの基本的なGUI機能を提供する。GDI+ではjpeg等圧縮画像の伸張なんかも。
DirectDraw GDIでは実現できない、より直接的な描画機能を提供する。タイミング制御も可能。
Direct3D 3D描画機能を用いてより高度な2D描画を行う。DirectDrawと同じ効果をより効率的に実現できる。
Direct2D 複雑なD3DAPIを簡素化し、2D描画をより簡単にプログラミングできるようにする。
DirectWirte D3Dを用いてより簡単に高速で高度なテキスト描画を提供する。
DirectShow DirectDraw(Direct3D)やDirectSoundを用いて動画再生を提供する。
ここで使われているCrystalMarkでは、GDIとDirectDrawの速度に注目している。
D2Dの部分がDirectDrawを用いたもの。
一方、Direct3D 8.0の2Dファンクションを用いたものはCrystalMarkでは計測されていない。
ハードウェアアクセラレーションは、GDI、DirectDraw、D3D8、D3D9〜D3D9.0c、D3D10なんかが存在する。
WindowsXPまでのドライバモデルでは、GDIとDirectXのドライバは個別で、
DirectDrawのファンクションも直接利用できる。
WindowsVistaではWDDMがすべて吸収し、Direct3Dのみを利用する。
GDIやDirectDrawは一度メインメモリ上のサーフェイスに描画され、完成イメージがビデオメモリに転送される。
ビデオカードがD3D10の機能を持っていた場合Direct3D10が利用できるが、そうでない場合は
Direct3D9が利用される。
Windows7になるとDirect3D10も仮想化され、D3D9しかない場合は
Direct3D10Level9経由で制限付のDirectX10機能が利用可能になる。