アプリケーションは、Direct3DRMShadow2オブジェクトおよびDirect3DRMShadowオブジェクトを初期化するためにIDirect3DRMShadow2インターフェイスおよびIDirect3DRMShadowインターフェイスのメソッドをそれぞれ使用する。アプリケーションがIDirect3DRM3::CreateShadowメソッドを使うときは、この初期化は不要である。初期化が必要なのは、IDirect3DRM3::CreateObjectメソッドを使って影を生成する場合だけである。 IDirect3DRM3::CreateObjectを呼び出すアプリケーションは、次にIDirect3DRMShadow2::Initメソッドを呼び出し、影を初期化する。
IDirect3DRMShadow2は、ビジュアル、照明、プレーン、オプションの影のパラメータを作成後に変更可能にすることで、IDirect3DRMShadowの機能を拡張する。 IDirect3DRMShadow2::SetOptionsによって、透明ブレンディングが有効なときにビジュアル効果を排除するオプションをセットできる。 IDirect3DRMShadow2は、IDirect3DRMShadowが提供するInitメソッドに加えて、SetVisual、GetVisual、SetLight、GetLight、SetPlane、GetPlane、SetOptions、GetOptionsメソッドを提供する。
IDirect3DRMShadow2インターフェイスのメソッドは、以下のグループにまとめることができる。
初期化 | Init |
パラメータの設定と取得 | GetLight |
GetOptions | |
GetPlane | |
GetVisual | |
SetLight | |
SetOptions | |
SetPlane | |
SetVisual |
すべてのCOMインターフェイスと同様、IDirect3DRMShadow2およびIDirect3DRMShadowインターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
さらに、IDirect3DRMShadow2およびIDirect3DRMShadowインターフェイスは、IDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetAppData |
GetClassName |
GetName |
SetAppData |
SetName |
Direct3DRMShadow2オブジェクトは、IDirect3DRM3::CreateShadowメソッドの使用によって取得される。
影の作成時に使用する照明ソースを取得する。照明が影に関連付けられていない場合、エラーが返される。
構文
HRESULT GetLight( LPDIRECT3DRMLIGHT *lplpDirect3DRMLight);
パラメータ
- lplpDirect3DRMLight
- 照明ソースを受け取るポインタ。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影のオプションフラグを取得する。
構文
HRESULT GetOptions( LPDWORD pdwOptions);
パラメータ
- pdwOptions
- 現在の影のオプションを取得するポインタ。有効なフラグは次の通りである。
- D3DRMSHADOW_TRUEALPHA
- 真のアルファが有効なときにレンダリングした場合、ビジュアル効果を持たない影を作成する。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影のプレーンを取得する。ポイントは 影のフレームを起点とする。法線はワールド空間中にある。
構文
HRESULT SetPlane( LPD3DVALUE pdvPX, LPD3DVALUE pdvPY, LPD3DVALUE pdvPZ, LPD3DVALUE pdvNX, LPD3DVALUE pdvNY, LPD3DVALUE pdvNZ);
パラメータ
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影を作成するビジュアルを取得する。
構文
HRESULT GetVisual( LPDIRECT3DRMVISUAL *lplpDirect3DRMVisual);
パラメータ
- lplpDirect3DRMVisual
- 影を作成するビジュアルを受け取るポインタ。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
Direct3DRMShadow2オブジェクトを初期化する。
構文
HRESULT Init( LPUNKNOWN pUnk, LPDIRECT3DRMLIGHT lpD3DRMLight, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz);
パラメータ
- pUnk
- 影を付けるオブジェクトへのポインタ。
- lpD3DRMLight
- 影の元になる照明を 提供するDirect3DRMLightオブジェクトへのポインタ。
- px, py, pz
- 影が付けられるプレーン上の点の座標。
- nx, ny, nz
- 影が付けられるプレーン上の法線ベクトルの座標。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
影を初期化するためこのメソッドを呼び出した後、IDirect3DRMFrame3::AddVisualを使用して、影を作成するビジュアルが存在するフレームと同じフレームに影を追加する。
影の作成時に使用する照明を設定する。
構文
HRESULT SetLight( LPDIRECT3DRMLIGHT lpDirect3DRMLight, DWORD dwFlags);
パラメータ
- lpDirect3DRMLight
- 影の作成時に使用する照明。
- dwFlags
- 予約済み。0でなければならない。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影のオプションフラグを設定する。
構文
HRESULT SetOptions( DWORD dwOptions);
パラメータ
- dwOptions
- 影のオプション。有効なフラグは次の通りである。
- D3DRMSHADOW_TRUEALPHA
- 透明ブレンディング (アルファブレンディング) が有効なときにビジュアル効果を持たない影を作成する。IDirect3DRMDevice3::SetRenderModeを呼び出し、透明ブレンディングを有効にする。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影のプレーンを設定する。ポイントは影のフレームを起点とする。法線はワールド空間中にある。
構文
HRESULT SetPlane( D3DVALUE dvPX, D3DVALUE dvPY, D3DVALUE dvPZ, D3DVALUE dvNX, D3DVALUE dvNY, D3DVALUE dvNZ, DWORD dwFlags);
パラメータ
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
影を作成するビジュアルを設定する。
構文
HRESULT SetVisual( LPDIRECT3DRMVISUAL lpDirect3DRMVisual, DWORD dwFlags);
パラメータ
- lpDirect3DRMVisual
- 影を作成するビジュアル。
- dwFlags
- 予約済み。0でなければならない。
戻り値
次の値のうち1つを返す。
DD_OK DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS
注意
このメソッドは、DirectX version 6.0とともに導入された。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.