次の方法で共有


IDirect3DDevice9::CreateTexture

テクスチャー リソースを作成します。

HRESULT 
CreateTexture(
  UINT Width,
  UINT Height,
  UINT Levels,
  DWORD Usage,
  D3DFORMAT Format,
  D3DPOOL Pool,
  IDirect3DTexture9** ppTexture,
  HANDLE* pSharedHandle
);

パラメータ

  • Width
    最上位のテクスチャーの幅 (ピクセル単位)。以降のレベルでのピクセルのサイズは、1 つ上のレベルのピクセルのサイズを (個別に) 1/2 した値になります。それぞれのサイズは、1 ピクセルのサイズに収められます。したがって、2 で除算した結果が 0 の場合、代わりに 1 が使用されます。
  • Height
    最上位のテクスチャーの高さ (ピクセル単位)。以下の各レベルでのピクセルのサイズは、1 つ上のレベルのピクセルのサイズをそれぞれ個別に 1/2 とした値になります。それぞれのサイズは、1 ピクセルのサイズに収められます。したがって、2 で除算した結果が 0 の場合、代わりに 1 が使用されます。
  • Levels
    テクスチャー内のレベル数。この値がゼロの場合、Direct3D は、ミップマップ テクスチャーをサポートするハードウェアに対して、各面の 1x1 ピクセルまでのすべてのテクスチャー サブレベルを生成します。生成されるレベルの数を確認するには、IDirect3DBaseTexture9::GetLevelCount を呼び出します。
  • Usage
    使用法には 0 を指定できます。これは使用法の値がないことを示します。ただし、使用法が必要な場合は、1 つ以上の D3DUSAGE 定数の組み合わせを使用します。使用法パラメーターと IDirect3D9::CreateDevice の動作フラグを一致させることが適切です。
  • Format
    D3DFORMAT 列挙型のメンバー。テクスチャー内のすべてのレベルのフォーマットを指定します。
  • Pool
    D3DPOOL 列挙型のメンバーです。テクスチャーを配置するメモリー クラスを示します。
  • ppTexture
    作成されたテクスチャー リソースを示す IDirect3DTexture9 インターフェイスへのポインターです。
  • pSharedHandle
    予約済みです。このパラメーターを NULL に設定します。このパラメーターを Windows Vista の Direct3D 9 で使用して、リソースを共有することができます。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、E_OUTOFMEMORY。

解説 

D3DUSAGE_AUTOGENMIPMAP を指定して IDirect3D9::CheckDeviceFormat を呼び出すことで、特定のフォーマットの ミップマップの自動生成 (Direct3D 9) のサポートを確認できます。IDirect3D9::CheckDeviceFormat で D3DOK_NOAUTOGEN が返された場合、IDirect3DDevice9::CreateTexture は成功しますが、1 レベルのテクスチャーを返します。

Windows Vista の場合、CreateTexture はシステム メモリーのポインターからテクスチャーを作成できるので、アプリケーションではシステム メモリーの使用、割り当て、および削除に関してより高い柔軟性が得られます。たとえば、アプリケーションから GDI システム メモリーのビットマップ ポインターを渡し、その周辺の Direct3D テクスチャーのインターフェイスを取得できます。CreateTexture でシステム メモリーのポインターを使用する場合は、次の制限があります。

  • テクスチャーのピッチは、その幅にピクセルあたりのバイト数をかけた値とする。
  • 単一のミップマップ レベルのあるテクスチャーのみがサポートされている。Levels 引数は 1 であることが必要です。
  • Pool 引数は D3DPOOL_SYSTEMMEM とする。
  • pSharedHandle 引数は、システム メモリーのポインターを保持できるバッファーへの有効なポインターとし、*pSharedHandle 引数は、テクスチャー フォーマットのテクスチャーの幅×テクスチャーの高さ×ピクセルあたりのバイト数のサイズ (バイト数) を持つシステム メモリーへの有効なポインターとする。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

D3DXCreateTexture, D3DXCreateTextureFromFile, D3DXCreateTextureFromFileEx, D3DXCreateTextureFromFileInMemory, D3DXCreateTextureFromFileInMemoryEx, D3DXCreateTextureFromResource, D3DXCreateTextureFromResourceEx