Microsoft DirectX 8.0 (C++) |
ディスプレイ アダプタを表すためのデバイスを作成する。
HRESULT CreateDevice( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DDevice8** ppReturnedDeviceInterface );
成功した場合は、D3D_OK を返す。
失敗した場合は、次のいずれかの値を返す。
D3DERR_INVALIDCALL |
D3DERR_NOTAVAILABLE |
D3DERR_OUTOFVIDEOMEMORY |
このメソッドからは、要求したディスプレイ モード (またはウィンドウ) に設定されて、適切なバック バッファが割り当てられた、完全に動作するデバイス インターフェイスが返る。アプリケーションは、必要に応じて深度バッファを作成して設定するだけで、レンダリングを開始できる。
このメソッドは、WM_CREATE の処理中に実行すべきではない。したがって、アプリケーションは、WM_CREATE の処理中に Direct3D にウィンドウ ハンドルを渡してはならない。DirectX 8.0 アプリケーションでは、この呼び出しの実行中 (つまり、この呼び出しが返る前) はアプリケーションにメッセージが送信されることを期待できる。アプリケーションは、このときに Direct3D を呼び出さないための警告を受け取る。また、デバイスの作成、解放、またはリセットの呼び出しは、フォーカス ウィンドウのウィンドウ プロシージャと同じスレッドでのみ行われることに注意すること。
D3DCREATE_HARDWARE_VERTEXPROCESSING、D3DCREATE_MIXED_VERTEXPROCESSING、および D3DCREATE_SOFTWARE_VERTEXPROCESSING は相互に排他的なフラグであり、CreateDevice を呼び出すときは、この頂点処理フラグの少なくとも 1 つを必ず指定しなければならない。
デバイスの一部として作成されたバック バッファは、プレゼンテーション パラメータで D3DPRESENTFLAG_LOCKABLE_BACKBUFFER が指定されている場合にのみロック可能である。マルチサンプル バック バッファおよび深度サーフェスはロックできない。
メソッドの IDirect3DDevice8::Reset、Release、および IDirect3DDevice8::TestCooperativeLevel は、CreateDevice を使用してデバイスを作成した同じスレッドから呼び出す必要がある。
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。
Direct3DCreate8、IDirect3DDevice8::Reset、D3DDEVICE_CREATION_PARAMETERS