Platform SDK: DirectX |
D3DXPrepareDeviceForSprite 関数は、デバイスを別のスプライト ヘルパー関数で使用できるように準備するため、多数のレンダリング状態を設定する。特に、アルファ ブレンディングと双一次フィルタリングをセットアップする。パラメータは、z バッファを有効にするかどうかを制御する。
HRESULT D3DXPrepareDeviceForSprite( LPDIRECT3DDEVICE7 pd3dDevice, BOOL ZEnable = FALSE );
成功すれば、S_OK を返す。失敗すれば、D3DXERR_NULLPOINTER を返す。
C プログラマは、ZEnable パラメータでデフォルト値を使用できない。
この関数を呼び出して、D3DXDrawSpriteSimple 関数と D3DXDrawSprite3D 関数が適切に機能するために必要なすべてのレンダリング状態をセットアップする。ただし上級ユーザーは、デバイスにセットアップされたレンダリング状態とテクスチャ状態を D3DXDrawSpriteSimple 関数と D3DXDrawSprite3D 関数で使用する場合に、この関数を呼び出さないこともある。
メモ D3DXPrepareDeviceForSprite 関数は、レンダリング状態を修正するが、フレームごとに頻繁に呼び出されると 3D ハードウェアのパフォーマンスに悪影響を与える可能性がある。レンダリング状態が (D3DXDrawSpriteSimple 関数や D3DXDrawSprite3D 関数を呼び出す以外の方法で) 変更された場合、D3DXDrawSpriteSimple 関数や D3DXDrawSprite3D 関数を呼び出す前にこの関数を再度呼び出す必要がある。
D3DXPrepareDeviceForSprite 関数は、レンダリングの最初のテクスチャ ステージを修正し、デバイス全体のレンダリング状態をいくつか修正する。次に、そのリストを示す。
SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1); SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); SetTextureStageState(0, D3DTSS_MINFILTER, D3DTFN_LINEAR); SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTFG_LINEAR); SetRenderState(D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA); SetRenderState(D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA); SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, TRUE);
ZEnable パラメータの値に基づいて、次のいずれかが呼び出される。
SetRenderState(D3DRENDERSTATE_ZENABLE, FALSE);
または
SetRenderState(D3DRENDERSTATE_ZENABLE, TRUE);
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以上が必要。Windows 95 用に再配布可能な形で使用可能。
バージョン : DirectX 7.0 が必要。
ヘッダー : d3dxsprite.h で宣言。
ライブラリ : d3dx.lib を使用。