DirectX list

最終更新 2013/11/18 22:15
[戻る]
●目次
DirectX/GPU年表
・ DirectX
DirectX1
DirectX2
DirectX3
DirectX5
DirectX6
DirectX7
DirectX8
DirectX9
DirectX10 Direct3D10
DirectX11 Direct3D11
● DirectX1〜11 のコメントについて

さまざまな DirectX のバージョンの違いについてのメモです。 実際に使っていた記憶を頼りにオンライン help を参照しながら書いています。 間違いあったらごめんなさい。

そのため使ったことがないコンポーネントに関しては ほとんど言及しておりません。 特に DirectPlay は全く触っていないので書くことが出来ません。 同じように DirectShow も一時期のバージョンしか使用していないために 機能の比較を行うことが出来ませんでした。 RM を使ったのは DirectX2〜3 だけなので後期の機能拡張については 把握していません。

実際に DirectX を使った開発を始めたのは DirectX2 の終盤からで、 すぐ DirectX3 になってしまいました。 いろいろと不完全な部分があるかと思いますが逐次修正していきますので ご了承願います。


● DirectX D3D11
2009/?
DXGI Adapter, Device, DeviceSubObject, Factory, Object, Output, Resource, Surface, SwapChain
DXGI1
D3D11Core Asynchronous, BlendState, CommandList, Counter, DepthStencilState Device, DeviceChild, DeviceContext, InputLayout, Predicate, Query, RasterizerState, SamplerState
D3D10Resource Buffer, DepthStencilView, RenderTargetView, Resource, ShaderResourceView, Texture1D, Texture2D, Texture3D, UnorderedAccessView, View
D3D10Shader ClassInstance, ClassLinkage, ComputeShader, DomainShader, GeometryShader, HullShader, PixelShader, VertexShader

基本的な API セットは Direct3D10 を継続。 ちょうど Direct3D8 → Direct3D9 によく似ている。 革新(D3D8) → 改良(D3D9) → 革新(D3D10) → 改良(D3D11) と今回は改良の番。 シェーダー追加といった大きなトピックのみならず、 Direct3D の欠点を修正し改良されている部分も目立つ。

  • ハードウエアテセレーションの仕様化と、それに伴うシェーダーの追加
  • GPGPU への流れに対応したコンピューティングシェーダー追加
によりパイプラインのステップが深くなり、シェーダーの種類も増えた。
  • HullShader : テセレータのセットアップ
  • DomainShader : テセレート後の頂点演算
  • ComputeShader : 汎用コンピューティング

時代の流れに即して 並列コンピューティングへの対応を意識した作りとなっている。 ComputeShader による GPGPU 対応、 Multi Core を効率よく使用するための CommandList 導入、 スレッド対応のリソース管理、 ドライバ側の対応など。

Shader はさらに汎用化が行われており、従来考えられなかったような 機能が追加されている。 double 演算、 メモリへの同期読み書き (CompareAndSwap)、 シェーダーからメモリへのランダムアクセス書き込みなど。

Direct3D10 で、いったん core api に統合された Effect が 再び分離された。 Shader Compiler は継続して常に改良や修正が必要なもの。 特にバグ修正やパフォーマンスの向上に大きな影響がある。 よって OS に統合されて頻繁に置き換えられない core api に含めるのは効率が悪かったのだといえる。

D3D10 でもリリースしてからすぐ D3DX 側により改良したコンパイラが搭載されるようになった。 呼び出す API によってコンパイラが異なるという2重化の問題が起こっていた。


● DirectX D3D10
2006/12
DXGI Adapter, Device, DeviceSubObject, Factory, Object, Output, Resource, Surface, SwapChain
D3D10Core Asynchronous, BlendState, Blob, Counter, Debug, DepthStencilState Device, DeviceChild, Include, InfoQueue, InputLayout, Multithread, Predicate, Query, RasterizerState, SamplerState, StateBlock, SwitchToRef
D3D10Resource Buffer, DepthStencilView, RenderTargetView, Resource, ShaderResourceView, Texture1D, Texture2D, Texture3D, View
D3D10Shader GeometryShader, PixelShader, ShaderReflection, ShaderReflectionConstantBuffer, ShaderReflectionType, ShaderReflectionVariable, VertexShader
D3D10Effect Effect, EffectBlendVariable, EffectConstantBuffer, EffectDepthStencilVariable, EffectDepthStencilViewVariable, EffectMatrixVariable, EffectPass, EffectPool, EffectRasterizerVariable, EffectRenderTargetViewVariable, EffectSamplerVariable, EffectScalarVariable, EffectShaderResourceVariable, EffectShaderVariable, EffectTechnique, EffectType, EffectVariable, EffectVectorVariable

API の一新。 固定機能の廃止。 GeometryShader の追加。 ShaderModel 4.0。 4.0 はアセンブラシェーダーの廃止。HLSL のみ。 WindowsVista で動作する。

D3D 以外の更新は特になし。SDK 自体の Version は 9 のまま。

ShaderCompiler が D3D の API に含まれるようになった。

描画命令はシンプルな Draw/DrawIndexed。 BeginScene/EndScene が無い。 D3D9 までは Primitive 単位で個数を指定し描画命令を発行していたが 与えるカウント数は単純な頂点単位に仕様変更されている。 つまり DrawPrimitive〜() ではなく DrawVertices〜() 相当。

やっと frame buffer を float 値でクリアできるようになった。 (DX9 は 0〜1.0 の範囲だけ)

Surface と Texture の統合。 DXGI/D3D10 は昔の DDraw と D3D の関係を彷彿とさせる。 SwapChain から Present する流れは DX9 と同じ。

固定機能の廃止で MATERIAL や LIGHT といった構造体も消え、 全部シェーダー上の実装にゆだねられている。

Shader が統合したおかげで Xbox360 のように Stream Output が可能になっている。

シェーダーには整数演算命令が追加された。

テクスチャ等のリソースアクセスも、 サンプラーを使わずに直接読み込める命令が追加された。 0〜1.0 の UV 値ではなく直接ピクセル座標の指定もできる。

Constant レジスタは容量拡大とともに VRAM 上のバッファに変更された。 4096 × 4float = 64Kbyte また1つのシェーダーも複数の Constant buffer にアクセスできる。 そのため一見 Texture 等のリソースと大差ないように見える。 ただし CPU や GPU からのアクセスは特別な方法で高速化されていると マニュアルには書かれている。 GPU 命令的にはアドレッシングつきで load 命令を呼ぶか レジスタフィールドに直接ナンバーを打てるかの違いなのだろうか。

DXGI のピクセルフォーマットも整理された。 Index32/16 の違いも R32F R16F と表現され、 IndexBuffer/VertexBuffer が共通の Buffer となった。 パレットテクスチャは存在しない。 必要なら Texture1D 等を使ってシェーダーがやればよい。

ラスタライズ時の補間をパラメータごとに選択できるようになった。 同次除算をバイパスしてリニア補間を選択可能になった。

ピクセルの順番が xyzw = RGBA にあわせて統合された。 そのため DX9 までの ARGB では RGB = xyz 部分が逆順になってしまう。

GeometryShader は Triangle でも隣接を含んだ 6頂点入力が可能。 この場合あらかじめ対応した index buffer を作っておく必要がある。

同一点の連打を利用した縮退トライアングルを使わなくても Strip のジャンプが可能になった。

VertexShader と Stream 入力情報である InputLayout は 最初に対応付けが必要になった。 D3D8 に近いが完全な一対一ではなく、並び順に互換性があればよい。

Blend Mode が拡張されており、Shader から 4ch ×2 を出力して より柔軟なフレームバッファとの Blending が可能。 将来的にはこの部分もプログラマブルになってほしいところ。

DirectX SDK December2006 でリリースされた。 これまで Preview だった Direct3D 10 が統合され、 1つの DirectX SDK の中に D3D9 と D3D10 の両方が共存し含まれている。 DirectX という形で全体の番号をくくらないで、 今後はコンポーネントごとにナンバリングされていく可能性がある。


● DirectX9 (9c)
2002/11 (9.0), 2004/08 (9.0c)
Direct3D9 Device9, Resource9, Surface9, VertexBuffer9, IndexBuffer9, BaseTexture9, Texture9, CubeTexture9, Volume9, VolumeTexture9 SwapChain9, PixelShader9, VertexShader9, Query9, StateBlock9, VertexDeclaration9
Direct3DDevice9
DirectSound8
DirectInput8

DirectX8 の強化。 基本的な考え方や設計は DX8 のままで 修正と機能拡張、整理統合が行われている。 Shader2.0〜3.0 に対応し、完全にシェーダー中心となった。 固定機能 API や機能個別の設定ステートも残ってはいるが、 ShaderModel が上がるにつれて依存度が減っている。

Shader2.0 ではピクセルも浮動小数演算となり 実行可能ステップ数も増大している。 本格的なプログラミングが可能な反面、 機能も複雑化しているため HLSL という上位言語が用いられるようになる。

DirectX8 では頂点フォーマットは VertexShader とセットになっており、 必ずシェーダー生成時に組み合わせる必要があった。 DirectX9 では頂点フォーマットと VertexShader が独立しており、 描画時命令実行に頂点要素とリンクされるようになっている。 そのためシェーダーでは decl 宣言が必須となっている。

VertexShader/PixleShader が専用のインターフェースになっている。 DirectX8 ではどちらも単なる DWORD の配列だった。

depth-buffer の W-buffer がほぼ廃止になっている。 最新 GPU のほとんどが未対応。 Shader へ移行したためか。

浮動小数点テクスチャなど pixel format が大幅に増えている。 ただし GPU によって対応、未対応の相違点が多い。

ハードウエア処理されていたものも徐々に Shader 依存へと移行しつつある。 Shader3.0 では Fog 系の RenderState が一切機能しない。 Shader 任せになっている。

Shader3.0 で PixelShader だけ constant レジスタが 224 個なのは おそらくレジスタフィールドの問題。

DirectX9 は 2002年に登場したが、SDK はこまめに更新されている。 SummerUpdate2003, Summer2004, October2004, December2004, Febrary2005, April2005, June2005, August2005, October2005, December2005

Shader2.0 対応ビデオカード(GPU) ATI RADEON9700 は 2002/07 に登場。 (DirectX9 のリリースより前)。 Shader2.x 対応 nVIDIA GeForceFX5800 は 2003/02。 Shader3.0 対応ビデオカード(GPU) nVIDIA GeForce6800 は 2004/04 に登場。

最新版は XP 以降のみ対応。 Windows2000 では動かない。


● DirectX8 / 8.0a / 8.1
2000/11 (8.0), 2001/02 (8.0a), 2001/11 (8.1)
Direct3D8 Device8, Resource8, Surface8, VertexBuffer8, IndexBuffer8, BaseTexture8, Texture8, CubeTexture8, Volume8, VolumeTexture8 SwapChain8
DirectSound8 Buffer8, Capture8, 3DBuffer8, 3DListener8, ...
DirectMusic8
DirectInput8 Device8, Effect
DirectPlay8 Peer, Client, Server, VoiceClient, VoiceServer, VoiceTest, LobbyClient, LobbiedApplication, Address, AddressIP

DirectDraw から拡張派生していた従来の API を一新し、 DirectGraphics となった。 DirectDraw 系 API は撤廃され 3D 中心となる。 Vertex/PixelShader 機能搭載。Shader1.0〜1.4

対応ビデオカード(GPU)の場合は ジオメトリ演算もピクセル演算も完全にハードウエア処理であり、 かつ Shader と呼ばれるプログラムコードを走らせることが可能となる。 PixelShader はマルチテクスチャ時代の TextureStage の拡張にすぎないが、 プログラミングという概念が新しい。 単純なライティングだけでなく ノーマルマップなどさまざまなテクニックが広まった。

キャラクタのスキニングも GPU だけで完結できるようになった。 頂点に Matrix Index や Blend 係数を格納できるようになっている。

DirectDraw と決別したことで非常にすっきりしたインターフェースになった。 抜き色の扱いは alpha test のみとなり、colorkey は廃止。 (shader でプログラムすれば一応可能) ALPHABLENDENABLE 周りのレンダーステートも DirectX の中で何度も変更されてきた部分。 パレットテクスチャも非常に扱いにくいインターフェースとなり、 ハード的に使って欲しくない機能がわかりやすくなった。

Direct3D の初期化が非常に簡単になった。

以前は SDK install 時に切り替えていた debug / retail build の切り替えが いつでもできるようになった。

VertexBuffer だけでなく IndexBuffer も登場。 頂点形式は FVF よりもさらに自由度がアップしている。

初の Shader 対応 GPU nVIDIA GeForce3 は DirectX8 のリリースより遅れて 2001/02 に登場している。 Shader1.4 対応の ATI RADEON8500 は 2001/10。

DirectGraphics と同じように、DirectSound の分類として DirectAudio が初登場。

Microsoft のゲーム機 Xbox にも採用。 コンシューマなど本格的なゲーム開発でも共通 API として DirectX が使われていく。


● DirectX7
1999/10
DirectDraw7 Surface7, Clipper, ColorControl, GammaControl, Palette, VideoPort
Direct3D7 Dvice7, VertexBuffer7
DirectSound Buffer, Capture, CaptureBuffer, Notify
DirectSound3D 3DBuffer, 3DListener
DirectMusic
DirectInput7 Device7, Effect
DirectPlay4 Lobby3

Hardware T&L 対応。 やっとジオメトリ演算を GPU でハードウエア処理できるようになる。 3D パイプラインにそった Transform や Lighting がハードウエア化された。 また 4つまでの Transform Matrix によるジオメトリブレンド対応となった。 ただし描画単位の設定であって、頂点単位にブレンド matrix の選択が できなかった。 そのためキャラクタのアニメーションのようなスキニングは出来ない。 結局キャラクタの場合は CPU で演算しなければならなかった。

ステートブロックを定義できるようになった。 ユーザー定義クリッププレーンを使えるようになった。 CubeTexture を使えるようになった。

DirectX の番号とインターフェース番号も統一されてわかりやすい。

DX6 よりもさらに API が整理されて、使いやすいように改良されている。 個別のハンドルやインターフェースがほぼ撤廃されて、 Device のメソッドに統合された。 Material や Light も単なる構造体となり、 そのままパラメータを渡せるようになった。 インターフェースは Direct3D/Device/VertexBuffer の 3つしかない。 このように単純化したのは、VisualBasic に対応するためかもしれない。

だが DX8 でまた互換性が無くなる。DirectDraw 系では最後となる。

DirectX5 で追加された Begin/End 系の描画命令が無くなった。 DrawPrimitive/DrawIndexedPrimitive のみとなった。

このあたりまでは DirectX は毎年メジャーバージョンが更新されることになっていた。

HardwareT&L 対応ビデオカード(GPU) nVIDIA GeForce256 は 1999/10 に登場。

RM のサポートが停止し、代わりに D3DX が登場する。 ただし D3DX は高レベル API ではなく、 便利関数のあつまりにすぎない。 互換性が保障されるわけではなく DirectX のバージョンや派生毎に異なった実装になっている。


● DirectX6 / 6.1
1998/08/05 (6.0) , 1999/02 (6.1)
DirectDraw4 Surface4, Clipper, ColorControl, GammaControl, Palette, VideoPort
Direct3D3 Device3, Light, Material3, Texture2, VertexBuffer, Viewport3
Direct3DRM3
DirectSound Buffer, Capture, CaptureBuffer, Notifiy
DirectSound3D 3DBuffer, 3DListener
DirectMusic (6.1より)
DirectInput Device2, Effect
DirectPlay4 Lobby3

Direct3D に VertexBuffer が追加される。 ただしジオメトリ演算は CPU のまま。 今の DirectX8/9 とは逆で、 通常の DrawPrimitive/DrawIndexedPrimitive が ユーザーエリアのポインタを使った描画、 DrawPrimitiveVP/DrawIndexedPrimitiveVP が VertexBuffer を使った描画命令。

マルチテクスチャに正式対応した。 描画機能が拡張され、API 的に最大8枚までのテクスチャを 一度にレンダリングできるようになった。 これにより、ハードウエアが対応していれば 複数のテクスチャを使ったさまざまなピクセル描画 テクニックが低負荷で可能になる。 light map, specular map, bump map 等。 同じポリゴンを何度も重ね書きする必要が無い。

頂点形式を自由に定義できるようになった。 FVF 初登場。 頂点要素を別の配列として持つことができるようになる。 (現在でいう VertexStream の前身)

StencilBuffer 追加。 DepthBuffer として W-buffer を使用可能となる。 FSAA 追加。

圧縮テクスチャとして S3TC が標準で搭載されるようになった。 DXT1〜DXT5 形式。 これに伴い、専用のテクスチャフォーマットが必要となる。 DDS テクスチャ形式が登場する。 dxtex コマンド付属。

HEL の Ramp Driver が廃止された。 また RGB Device が自動で MMX を認識するようになり、 HEL の RGB Device と MMX Device が統合された。 よって HAL と HEL (RGB) の実質2種類のみとなる。 また HAL デバイスの標準となるよう Reference Device も用意された。

テクスチャ管理機能が追加された。 それまでアプリケーション側でテクスチャの復帰や保持が必要だったものが 自動で入れ替えできるようになった。

追加予定だった DirectMusic が遅れる。 DirectX6.0 公開当初は preview 版のみで、 DirectX6.1 にて DirectMusic が正式に追加となる。 これで DirectX だけで Midi 演奏できるようになる。 ただし重い。 音色データも自前で持ち、Software 音源として機能する。

DirectDraw が DX5 の 2 からいきなり 4 になったのは、 DirectX5 の DirectDrawSurface が 3 だったため。


● DirectX5
1997
DirectDraw2 Surface3, Clipper, ColorControl, Palette, VideoPort
Direct3D2 Device2, Light, Material2, Texture2, Viewport2
Direct3DRM2
DirectSound Buffer, Capture, CaptureBuffer, Notify
DirectSound3D 3DBuffer, 3DListener
DirectInput Device, Effect
DirectPlay3 Lobby2

Direct3D の描画コマンドに OpenGL ライクな Begin/End や DrawPrimitive/DrawIndexedPrimitive が追加された。 これにより ExecuteBuffer を使わずに描画できるようになった。 ExecuteBuffer による描画も一応可能(おそらく RM で使用しているため)。 以後 DirectX9 まで DrawPrimitive 系の API は使われることになる。

HEL に MMX Device が追加される。 Pentium の MMX 命令を使って最適化されたもので、対応 CPU であれば RGB Device より高速になる。(Ramp よりは遅いが高品質)

  • HAL (Hardware Abstraction Layer)
    • Hardware Accelerator が用いられる。
  • HEL (Hardware Emulation Layer)
    • Ramp Device (Mono)
      光源演算を単色で行い、その結果をテーブル参照によって 高速にレンダリングするドライバ。 描画品質は低いが高速。
    • RGB Device
      R G B それぞれ個別に演算するため遅いが、 HAL に近い結果が得られる。
    • MMX Device
      RGB Device とほぼ同等だが CPU のMMX 命令により高速化されている。

結局 API を使っても CPU 演算なので、 ジオメトリ演算やライティングはゲームなどのアプリケーションが 自前で行うことが多かった。 この場合ラスタライズのみに使用している。

DirectInput インターフェースに joystick が追加された。 またフォースフィードバックにも対応。

この当時はまだ BGM 用の MIDI 再生に MM系 Win32 API を使うことが多かった。 midiOut〜を使って自前で MIDI デコードをするか、 midiStream〜を使って演奏するか、 細かい制御をあきらめて MMC を使うなど。 もしくは DirectSound による wave ストリーム。

半透明未対応 GPU のために Stipple という点描機能があった。 (初期の Matrox Mystique 等)

SEGA Dreamcast 用 WindowsCE に搭載され、 一部のコンシューマ向けゲーム開発でも使われた。

これ以後 DirectX Foundation と DirectX Media に API が分類される。 DirectDraw / DirectSound / Direct3D IM / DirectInput / DirectSetup が Foundation 、DirectPlay / Direct3D RM が Media だった。


● DirectX4

変更が大きかったために DX4 は欠番。 DirectX3 の次にリリースされたのは DirectX5。


● DirectX3
1996
DirectDraw2 Surface2, Clipper, Palette
Direct3D Device, ExecuteBuffer, Light, Material, Texture, Viewport
Direct3DRM
DirectSound Bufffer
DirectSound3D 3DBufffer, 3DListener
DirectInput
DirectPlay2 Lobby

DirectX2 からのマイナーチェンジ。 DirectSound3D が追加された。 DirectDraw や Direct3D に変更は無し。 DirectInput の Interface が追加され、 入力デバイスとして Keyboard と Mouse を 扱えるようになった。 ただし joystick は joy 系関数のまま。

DirectX3 は WindowsNT4.0 でも動作する。

		twist
			tunnel
当時の DX SDK sample といったらこれ。 twist は RampDevice。


● DirectX2
1996
DirectDraw2 Surface2, Palette, Clipper
Direct3D Device, ExecuteBuffer, Light, Material, Texture, Viewport
Direct3DRM
DirectSound Buffer
DirectInput
DirectPlay

Direct3D が追加された。 当時の Direct3D は、 DirectDraw の Surface に対して 3D 描画を行うための インターフェースとして実装されていた。

低レベル API である ImmediateMode (IM) と 高レベル API である RetainedMode (RM) の2種類。 ImmediateMode が現在(DX9)の DirectGraphic 相当として存続している。 RetainedMode 相当の API は DX9 現在は存在していない。

IM は Execute Buffer によるポリゴン描画を行う。 ExecuteBuffer は、 頂点やプリミティブリスト、 マテリアル、ジオメトリマトリクス 等を予め用意した単一のバッファに書き込んでおくもの。 DX9 の VertexBuffer / IndexBuffer と違い 複数の情報を1つのバッファに格納する。 GPU へ渡すコマンドバッファ (PushBuffer) に近い。 各パラメータへのアクセスには個別にハンドルを取得しておく必要があった。

IM におけるポリゴンの描画レベルは3段階。 頂点フォーマットによって区別する。 頂点フォーマットも 3種類のみ。1頂点のサイズは 32byte 固定。

  • TLVERTEX: 透視変換済み頂点形式。 (sx sy sz rhw diffuseColor specularColor tu tv)
  • LVERTEX: ライティング済み頂点形式。 (x y z diffuseColor specularColor tu tv)
  • VERTEX: 通常頂点形式。 (x y z nx ny nz tu tv)

ライティング、ジオメトリトランスフォーム演算は CPU 処理。 セットアップはドライバ処理。 GPU のアクセラレーションはラスタライズのみのものが ほとんどであった。

3D アクセラレータがさほど普及していなかったため、 CPU だけで描画できるラスタライザがいくつか付属していた。 HAL に対して HEL と呼ばれる。 リファレンスドライバとは違い、実際にアプリケーションで使うのが 目的だった。 そのため速度優先で機能に制限がある。

  • HAL (Hardware Abstraction Layer)
    • ハードウエアアクセラレータが用いられる。
  • HEL (Hardware Emulation Layer)
    • Ramp Device (Mono)
      テクスチャのパレットを用いた高速描画が特徴。 ライティング時に予め演算しておいた 数段階のパレットの組を用意。 ライティングの結果によって参照するパレットテーブル を切り替えるだけ。 そのためライティングが単階調となる。 他のモードと著しくレンダリング結果が異なるが、 CPU だけでもそこそこ動きそれなりに高速であった。 パレットテクスチャ(RampTexture)しか使えなかった。
    • RGB Device
      R G B それぞれ個別に演算するため遅いが、 HAL に近い結果が得られる。

HAL は一度の Draw 呼び出しが遅いので、 細かいプリミティブを何度も分けて描画すると遅くなる。 HEL はプリミティブ呼び出しのオーバーヘッドが小さいため、 細かい描画呼び出しが増えてもさほど遅くならない。

RM は .x 形式のファイルを読み込み、描画や移動等の制御が可能。 シーングラフをサポートする高レベルなもの。 このように 現在も使われている .x 形式とはもともと RM 用に用意されたものだった。 毎フレーム描画命令を発行する IM に対して 読み込んだデータは内部で保持され描画し続ける。 それゆえ Retained Mode と呼ばれる。 Softimage3D は早い時期から .x ファイルの書き出しをサポートしていた。 .xsi 形式は最初 .x を拡張したものだった。

ただし RM の実装は一般的なゲームの作り方とはやや異なっており、 リソース管理などでも制御しづらい部分があったために、 実際のゲーム開発ではほとんど使われることが無かった。

この時代の DirectX は、 DirectDraw の画面モードや Surface のセットアップ、Direct3D や Direct3DDevice の選択まで、 Interface を取得したり列挙したりと 初期化や手順が非常に複雑であった。


● Windows95 GameSDK (DirectX1)
1995
DirectDraw Surface, Palette, Clipper
DirectInput joyGet
DirectSound Buffer
DirectPlay

実際に使用したことなし。 DirectDraw は Front Buffer / Back Buffer の概念を持ち、 Flip で切り替えながら描画を行う。 そのためちらつきが無く高速な描画が可能。 またフルスクリーンモードをサポートした。 ウィンドウの全画面描画とは根本的に異なっており、 画面解像度やリフレッシュレートの選択が可能。 ゲーム専用に 320x240 等の低解像度も可能だった。 描画自体は Surface 間で Blt 命令による転送が中心となる。

DirectSound は、wave 等の発音までのタイムラグを無くすための実装で、 バッファ内でミキシングが可能。ただし CPU 処理。

DirectInput の com インターフェースはまだなく joyGet 等の API が用いられていた。


2005/12/26 作成
2005/12/27 年表修正、 説明の修正(DX7,DX10あたり)、 インターフェースの一覧追加
2005/12/30 年表修正、世代ごとの色分け追加
2006/01/15 目次追加
2006/04/14 GF7900追加、Vista/DX10を2007へ
2006/05/12 PS3 を 2006/11 に変更
2006/09/18 GF7950GX2/X1950追加、Wii発売日決定に伴い変更
2006/11/10 GF8800GTX追加
2006/12/14 Direct3D10 リリースに伴う変更
2007/03/23 GPU 年表を別ページに分離した。D3D10 の説明に大幅加筆。
2009/02/07 Direct3D11 の項目を追加、並びを逆順にした

Hyperでんち [メニューに戻る] フルパワー全開

Hiroyuki Ogasawara