Platform SDK: DirectX

直接モード オブジェクト タイプ

Direct3D 直接モードは、一連のオブジェクトから成る。C++ では、これらのオブジェクトを利用してバーチャル世界を操作したり、Direct3D アプリケーションを構築することができる。Visual Basic アプリケーションの場合も、DirectX for Visual Basic にはオブジェクト モデルに多少の違いがあるものの、最終的にはこれらのオブジェクトにアクセスする。

[C++]
DirectDraw オブジェクト
DirectDraw オブジェクトは、Direct3D の機能を提供する。IDirect3DIDirect3D2IDirect3D3、および IDirect3D7 は、DirectDraw オブジェクトへのインターフェイスである。DirectDraw オブジェクトはディスプレイ デバイスを表し、ディスプレイ デバイスは Direct3D の最も重要な機能の多くを実装していることから、Direct3D の機能は DirectDraw に組み込まれている。IDirect3D7 インターフェイスは、従来のものとはまったく異なるオブジェクトへのインターフェイスである。詳細については、「Direct3D インターフェイス」を参照すること。Direct3D の場合と同様、どのメソッドを使用して DirectDraw オブジェクトを作成するかによって、使用できるインターフェイスは異なる。

DirectDrawCreateEx 関数を呼び出して、最新の Direct3D インターフェイスをサポートする DirectDraw オブジェクトを作成する。詳細については、「Direct3D インターフェイス」を参照すること。

DirectDrawSurface オブジェクト
3D 機能 (DDSCAPS_3DDEVICE) を使用して作成した DirectDrawSurface オブジェクトは、サーフェスをレンダリング ターゲットとして使用する Direct3D デバイス オブジェクトを作成するために使用できる。アプリケーションでは、IDirect3D7::CreateDevice メソッドを呼び出してサーフェスからデバイスを作成する。

テクスチャマッピング機能を使用して作成した DirectDrawSurface オブジェクトには、Direct3D アプリケーションでシーン内のオブジェクトにテクスチャを適用する際に使用するビットマップが含まれる。アプリケーションでは、サーフェスの IDirectDrawSurface7 インターフェイスへのポインタを使用して Direct3D へのテクスチャを特定する。アプリケーションでは、IDirectDraw7::CreateSurface メソッドを呼び出すことにより、テクスチャを作成してそのインターフェイス ポインタを取得する (この点については以前のバージョンとは異なり、以前はこのメソッドでテクスチャを作成し、IUnknown::QueryInterface メソッドを呼び出してサーフェスの IDirect3DTexture2 インターフェイスを取得し、IID_IDirect3DTexture2 参照識別子を指定した)。

詳細については、「テクスチャ」を参照すること。

Direct3DDevice オブジェクト
Direct3DDevice オブジェクトは、直接モード アプリケーションのレンダリング ステートをカプセル化して格納する。Direct3D デバイスは、レンダリング ターゲットとして使用するサーフェスには依存せず、このデバイスを使用して複数のレンダリング ターゲット サーフェスをレンダリングすることができる (DirectX 5.0 以前ではできなかった)。DirectX 7.0 では、推奨デバイス オブジェクトは IDirect3DDevice7 インターフェイスである。Direct3D アプリケーションでは、IDirect3D7::CreateDevice メソッドを呼び出してデバイスを作成し、IDirect3DDevice7 インターフェイスへのポインタを取得できる。この方法で作成したデバイス オブジェクトのみ、最新のインターフェイスを公開する。詳細については、「デバイス インターフェイス」および「Direct3D デバイス」を参照すること。

従来とは異なり、IDirect3DDevice7 インターフェイスを公開するデバイス オブジェクトは、マテリアル、ライト、およびビューポートごとに個別のオブジェクトを使用しない。DirectX 7.0 では、このようなオブジェクトは実際には廃止されている。その代わり、これら従来のオブジェクトの機能をデバイスの内部データ構造の一部として提供するメソッドが、新しいインターフェイスに含まれている。

Direct3DVertexBuffer オブジェクト
Direct3DVertexBuffer オブジェクトはメモリ バッファであり、このオブジェクトには IDirect3DDevice7 インターフェイスの頂点バッファ レンダリング メソッドでレンダリングされる頂点が含まれる。頂点バッファを従来の実行バッファ アーキテクチャと混同してならない。頂点バッファには Direct3DDevice オブジェクトによって処理される頂点データのみ含まれ、レンダリングのパフォーマンスを改善する機能が提供される。頂点バッファを作成して、そのインターフェイスを取得するには、IDirect3D7::CreateVertexBuffer メソッドを呼び出す。

詳細については、「頂点バッファ」を参照すること。

[Visual Basic]

DirectX for Visual Basic では、Direct3D 直接モードでのプログラミング用に以下のクラスを公開している。

DirectX7 クラス
DirectX7 クラスは、Direct3D7DirectDraw7 オブジェクトなど、その他すべてのコンポーネントレベルのオブジェクトを作成するために使用するオブジェクトを定義する。
DirectDraw7 クラス
DirectDraw7 クラスの役割は、ディスプレイ デバイスを表す、Direct3D7 クラスを生成する、およびレンダリング用のテクスチャとレンダリング ターゲット サーフェスを作成することである。DirectDraw7 クラスのオブジェクトを作成するには、DirectX7.DirectDrawCreate メソッドを呼び出す。
DirectDrawSurface7 クラス
DirectDrawSurface7 クラスは、表示用またはテクスチャ処理用の画像データ、あるいは Direct3D デバイスのレンダリング ターゲットとしての画像データを格納するたメモリを表す。DirectDraw7.CreateSurface メソッドを呼び出して空のサーフェスを作成するか、DirectDraw7.CreateSurfaceFromFile メソッドを呼び出してサーフェスを作成し、そのサーフェスにビットマップ ファイルから画像データをロードする。
Direct3D7 クラス
Direct3D7 クラスは、シーンをレンダリングするのに必要なオブジェクトを作成および操作する、Direct3D の機能を提供するオブジェクトを定義する。Direct3D7 クラスのオブジェクトを作成するには、DirectDraw7.GetDirect3D メソッドを呼び出す。
Direct3DDevice7 クラス
Direct3DDevice7 クラスは、Visual Basic で記述された直接モード アプリケーションのレンダリング ステート、ライティングとマテリアルのステート、およびビューポート パラメータをカプセル化して格納するオブジェクトを定義する。Direct3DDevice7 クラスのオブジェクトを作成するには、Direct3D7.CreateDevice メソッドを呼び出す。詳細については、「Direct3D デバイス」、「ライティングとマテリアル」、および「ビューポートとクリッピング」を参照すること。
Direct3DEnumDevices クラス
Direct3DEnumDevices クラスは、システムのレンダリング デバイスを列挙するオブジェクトを定義する。Direct3DEnumDevices クラスのオブジェクトを作成するには、Direct3D7.GetDevicesEnum メソッドを呼び出す。
Direct3DEnumPixelFormats クラス
Direct3DEnumPixelFormats クラスは、指定デバイス用にシステムでサポートされているピクセル フォーマットを列挙するオブジェクトを定義する。Direct3DEnumPixelFormats クラスのオブジェクトを作成するには、Direct3D7.GetEnumZBufferFormats または Direct3DDevice7.GetTextureFormatsEnum メソッドを呼び出す。
Direct3DVertexBuffer7 クラス
Direct3DVertexBuffer7 クラスは、頂点のメモリ バッファとして機能するオブジェクトを定義する。メモリ バッファ内の頂点は、Direct3DDevice7 クラスの頂点バッファ レンダリング メソッドを使用してレンダリングできる。Direct3D7.CreateVertexBuffer メソッドを呼び出して頂点バッファを作成する。

詳細については、「頂点バッファ」を参照すること。