Win32 API 日本語リファレンス
ホームGraphics.Direct3D9 › IDirect3DBaseTexture9

IDirect3DBaseTexture9

COM
IID580ca87e-1d3c-4d54-991d-b7d3e3c298ce継承元IDirect3DResource9自前メソッド開始 vtbl11

公式ドキュメント

IDirect3DBaseTexture9 (d3d9.h) インターフェイス。アプリケーションは IDirect3DBaseTexture9 インターフェイスのメソッドを使用してテクスチャリソースを操作します。

解説(Remarks)

デバイスの特定のステージに割り当てられている IDirect3DBaseTexture9 インターフェイスは、GetTexture メソッドを呼び出すことで取得できます。

LPDIRECT3DBASETEXTURE9 型および PDIRECT3DBASETEXTURE9 型は、IDirect3DBaseTexture9 インターフェイスへのポインターとして定義されています。

typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 11 DWORD SetLOD(DWORD LODNew)

IDirect3DBaseTexture9::SetLOD は、管理対象テクスチャに対して最も詳細な詳細度 (level-of-detail) を設定します。

LODNewDWORDinミップマップチェーンに設定する、最も詳細な詳細度 (level-of-detail) の値。

戻り値

型: DWORD

最大の詳細度の値 (総レベル数から 1 を引いた値) にクランプされた DWORD 値。以降にこのメソッドを呼び出すと、以前に設定した詳細度の値ではなく、クランプ後の値が返されます。

解説(Remarks)

このメソッドは、IDirect3DBaseTexture9 を継承する次のインターフェイスに適用されます。

SetLOD は、管理対象テクスチャの詳細度を制御するために使用します。管理対象でないテクスチャに対しては 0 を返します。

SetLOD は、ローカルビデオメモリにロードすべきチェーン内の最も詳細なミップマップを Direct3D テクスチャマネージャーに通知します。たとえば 5 レベルのミップマップチェーンで LODNew に 2 を設定すると、テクスチャマネージャーは常にミップマップレベル 2 から 4 のみをローカルビデオメモリにロードします。

より具体的には、テクスチャが 256x256 のサイズで作成されている場合、最も詳細なレベルを 0 に設定すると利用可能な最大のミップマップは 256 x 256 となり、1 に設定すると利用可能な最大のミップマップは 128 x 128 となります。以降も同様に、チェーンの最も詳細なミップレベル (最小のテクスチャサイズ) まで続きます。

vtbl 12 DWORD GetLOD()

IDirect3DBaseTexture9::GetLOD メソッド (d3d9helper.h) は、管理対象テクスチャに設定された最大の詳細度 (level-of-detail) にクランプされた値を返します。

戻り値

型: DWORD

最大の詳細度の値 (総レベル数から 1 を引いた値) にクランプされた DWORD 値。管理対象でないテクスチャに対する GetLOD の呼び出しはサポートされておらず、D3DERR エラーコードが返されます。

vtbl 13 DWORD GetLevelCount()

IDirect3DBaseTexture9::GetLevelCount メソッド (d3d9helper.h) は、マルチレベルテクスチャ内のテクスチャレベル数を返します。

戻り値

型: DWORD

マルチレベルテクスチャ内のテクスチャレベル数を示す DWORD 値。

解説(Remarks)

警告 サブレベルを自動生成させるために D3DUSAGE_AUTOGENMIPMAP を指定してテクスチャを作成した場合、GetLevelCount はレベル数として常に 1 を返します。
このメソッドは、IDirect3DBaseTexture9 を継承する次のインターフェイスに適用されます。
vtbl 14 HRESULT SetAutoGenFilterType(D3DTEXTUREFILTERTYPE FilterType)

IDirect3DBaseTexture9::SetAutoGenFilterType メソッド (d3d9helper.h) は、自動生成されるミップマップサブレベルに使用されるフィルタータイプを設定します。

FilterTypeD3DTEXTUREFILTERTYPEinフィルタータイプ。D3DTEXTUREFILTERTYPE を参照してください。フィルタータイプが無効であるか、サポートされていない場合、このメソッドは失敗します。

戻り値

型: HRESULT

メソッドが成功した場合、戻り値は D3D_OK です。メソッドが失敗した場合、戻り値は D3DERR_INVALIDCALL になることがあります。

解説(Remarks)

フィルタータイプを変更するとミップマップサブレベルが "dirty" 状態になり、再生成されます。

テクスチャ作成時に設定される (既定の) フィルタータイプは D3DTEXF_LINEAR です。ドライバーがリニアフィルターをサポートしていない場合、フィルタータイプは D3DTEXF_POINT に設定されます。通常のテクスチャフィルタリングでドライバーがサポートするすべてのフィルタータイプは、D3DTEXF_NONE を除いて自動生成でもサポートされます。ドライバーが適切な D3DPTFILTERCAPS_MINFxxx の caps を設定していない限り、SetAutoGenFilterType は失敗します。これらの値は D3DCAPS9 の TextureFilterCaps メンバーおよび CubeTextureFilterCaps メンバーで指定されます。

テクスチャフィルタータイプの詳細については、D3DTEXTUREFILTERTYPE を参照してください。

テクスチャが D3DUSAGE_AUTOGENMIPMAP を指定して作成されていない場合、このメソッドは何の効果もありません。この場合、失敗は返されません。使用法 (usage) 定数の詳細については、D3DUSAGE を参照してください。

vtbl 15 D3DTEXTUREFILTERTYPE GetAutoGenFilterType()

IDirect3DBaseTexture9::GetAutoGenFilterType メソッド (d3d9helper.h) は、自動生成されるミップマップサブレベルに使用されるフィルタータイプを取得します。

戻り値

型: D3DTEXTUREFILTERTYPE

フィルタータイプ。D3DTEXTUREFILTERTYPE を参照してください。このメソッドを使用するには、テクスチャを D3DUSAGE_AUTOGENMIPMAP を指定して作成する必要があります。それ以外の使用法の値では、このメソッドは D3DTEXF_NONE を返します。

解説(Remarks)

フィルタータイプを変更するとミップマップサブレベルが "dirty" 状態になり、再生成されます。

テクスチャ作成時に設定される (既定の) フィルタータイプは D3DTEXF_LINEAR です。ドライバーがリニアフィルターをサポートしていない場合、フィルタータイプは D3DTEXF_POINT に設定されます。通常のテクスチャフィルタリングでドライバーがサポートするすべてのフィルタータイプは、D3DTEXF_NONE を除いて自動生成でもサポートされます。各リソースタイプについて、ドライバーは対応する texture、CubeTexture、volumetexture のフィルター caps で報告したすべてのフィルタータイプをサポートする必要があります。テクスチャタイプの詳細については、D3DTEXTUREFILTERTYPE を参照してください。

テクスチャが D3DUSAGE_AUTOGENMIPMAP を指定して作成されていない場合、このメソッドは何の効果もありません。

vtbl 16 void GenerateMipSubLevels()

IDirect3DBaseTexture9::GenerateMipSubLevels メソッド (d3d9helper.h) は、ミップマップサブレベルを生成します。

解説(Remarks)

アプリケーションは GenerateMipSubLevels を呼び出すことで、任意のタイミングでミップマップサブレベルを生成できます。テクスチャ作成時にミップマップサブレベルを自動生成させるには (ミップマップの自動生成 (Direct3D 9) を参照)、CreateTextureCreateCubeTextureCreateVolumeTexture の呼び出し時に D3DUSAGE_AUTOGENMIPMAP を指定します。使用法 (usage) 定数の詳細については、D3DUSAGE を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IDirect3DBaseTexture9 "{580CA87E-1D3C-4D54-991D-B7D3E3C298CE}"
#usecom global IDirect3DBaseTexture9 IID_IDirect3DBaseTexture9 "{}"
#comfunc global IDirect3DBaseTexture9_SetLOD                11 int
#comfunc global IDirect3DBaseTexture9_GetLOD                12
#comfunc global IDirect3DBaseTexture9_GetLevelCount         13
#comfunc global IDirect3DBaseTexture9_SetAutoGenFilterType  14 int
#comfunc global IDirect3DBaseTexture9_GetAutoGenFilterType  15
#comfunc global IDirect3DBaseTexture9_GenerateMipSubLevels  16
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。