Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic チュートリアル」を参照すること。
テクスチャ サーフェス オブジェクトを作成する場合は、まずデバイスのテクスチャ管理を有効する必要がある。テクスチャ管理属性を使用することで、複雑なテクスチャ管理が Direct3D 側で行われるようになる。
ハードウェア デバイスのテクスチャ管理は、次のコードで有効にできる。
if( ddDesc.deviceGUID == IID_IDirect3DHALDevice ) ddsd.ddsCaps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE; else if( ddDesc.deviceGUID == IID_IDirect3DTnLHalDevice ) ddsd.ddsCaps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE; else ddsd.ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY;
テクスチャ管理の詳細については、「自動テクスチャ管理」を参照すること。
次に、ddDesc (レンダリング デバイスの記述を含む D3DDEVICEDESC7 構造体) を使用してデバイス能力を調べる。ドライバでの必要に応じて、サーフェス記述の幅と高さを調整する。
if( ddDesc.dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_POW2 ) { for( ddsd.dwWidth=1; dwWidth>ddsd.dwWidth; ddsd.dwWidth<<=1 ); for( ddsd.dwHeight=1; dwHeight>ddsd.dwHeight; ddsd.dwHeight<<=1 ); } if( ddDesc.dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_SQUAREONLY ) { if( ddsd.dwWidth > ddsd.dwHeight ) ddsd.dwHeight = ddsd.dwWidth; else ddsd.dwWidth = ddsd.dwHeight; }
ここでは、テクスチャ管理を有効にし、サーフェス記述とドライバとの互換性を確認した。次は、テクスチャ フォーマットを列挙する。このタスクについては、「ステップ 1.4 : テクスチャ フォーマットを列挙する」で説明する。