Platform SDK: DirectX |
Direct3DX ユーティリティ ライブラリを使用すると、D3DXCreateTexture 関数によりテクスチャを「空の」テクスチャとして作成できる (各ピクセルは 0 値により初期化される)。
また、BMP、DIB、TGA、および DDS ファイル フォーマットのロードをサポートした D3DXCreateTextureFromFile 関数を使用すれば 1 回の呼び出しでテクスチャをロードし、作成することもできる。
たとえば、次の呼び出しではビットマップ ファイル (texture.bmp) がロードされる。
IDirectDrawSurface7 *m_ptex; m_pd3dDevice = m_pd3dx->GetD3DDevice(); hr = D3DXCreateTextureFromFile( m_pd3dDevice, NULL, // dwFlags NULL, // 自動設定幅 NULL, // 自動設定高さ NULL, // 自動設定サーフェス タイプ NULL, // Palette へのポインタ &m_ptex, // 返されるテクスチャへのポインタ NULL, // 返されるミップマップ数 "texture.bmp", // テクスチャのファイル名 D3DX_FT_DEFAULT); // デフォルトのスケーリング
ただし、D3DXCreateTextureFromFile 関数により作成されたサーフェスは、ラスタライズ デバイスの要件に合わせるためにサイズやフォーマットが変更されている。結果として、このように作成されたサーフェスでは、高さ、幅、ミップマップ レベル、そしてサーフェスのピクセル フォーマットでさえデバイスごとに異なる可能性があるので、IDirectDrawSurface7::Lock を呼び出すことはお勧めしない。
D3DXCreateTexture 関数や D3DXCreateTextureFromFile 関数により作成されたサーフェスにピクセルを転送するときは、D3DXLoadTextureFromSurface 関数や D3DXLoadTextureFromFile 関数を使用することをお勧めする。これらの関数は、さまざまなフォーマットをすべて処理し、適切な再サンプリング操作を実行するように設計されている。