アプリケーションは、ビューポートオブジェクトと互いにやり取りするためにIDirect3DRMViewport2インターフェイスのメソッドを使用する。概念の概要については、「ビューポート」を参照すること。Microsoft DirectX version 6.0は、IDirect3DRMViewport2インターフェイスを導入している。IDirect3DRMViewport2は、何をクリアするかを示すフラグパラメータをClearメソッドに追加することで、それが置換する旧のIDirect3DRMViewportインターフェイスを拡張する。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。
IDirect3DRMViewport2インターフェイスのメソッドは、以下のグループにまとめることができる。
カメラ | GetCamera |
SetCamera | |
クリッピングプレーン | GetBack |
GetFront | |
GetPlane | |
SetBack | |
SetFront | |
SetPlane | |
サイズ | GetHeight |
GetWidth | |
ビューのフィールド | GetField |
SetField | |
初期化 | Init |
その他 | Clear |
Configure | |
ForceUpdate | |
GetDevice | |
GetDirect3DViewport | |
Pick | |
Render | |
オフセット | GetX |
GetY | |
射影タイプ | GetProjection |
SetProjection | |
スケーリング | GetUniformScaling |
SetUniformScaling | |
変換 | InverseTransform |
InverseTransformVectors | |
Transform | |
TransformVectors |
すべてのCOMインターフェイスと同様、IDirect3DRMViewport2インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
さらに、IDirect3DRMViewport2インターフェイスはIDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetAppData |
GetClassName |
GetName |
SetAppData |
SetName |
Direct3DRMViewportオブジェクトは、IDirect3DRM3::CreateViewportメソッドの使用によって取得される。
現在の背景色で、指定されたビューポートをクリアする。これは、何をクリアするかを示すフラグを提供するIDirect3DRMViewport::Clearの拡張バージョンである。IDirect3DRMViewport::Clearはパラメータをとらない。
構文
HRESULT Clear( DWORD dwFlags);
パラメータ
- dwFlags
- 次のフラグは、現在定義されているもので、論理的に組み合わせることが可能である。
- D3DRMCLEAR_TARGET
- 出力先レンダリングサーフェスのみをクリアする。
- D3DRMCLEAR_ZBUFFER
- zバッファサーフェスのみをクリアする。
- D3DRMCLEAR_DIRTYRECTS
- 使用済み方形リストのみをクリアする。
- D3DRMCLEAR_ALL
- ターゲット、zバッファ、使用済み方形リストをクリアする。このフラグはIDirect3DRMViewport::Clearの使用と類似している。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
ビューポートの原点とサイズを再設定する。
構文
HRESULT Configure(
LONG lX,
LONG lY,
DWORD dwWidth,
DWORD dwHeight
);
パラメータ
- lX, lY
- ビューポートの新しい位置。
- dwWidth, dwHeight
- ビューポートの新しい幅と高さ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
lX + dwWidthがデバイスの幅より大きい場合、lY + dwHeightがデバイスの高さより大きい場合、あるいはlX、lY、dwWidth、dwHeightのいずれかの値が0以下である場合、このメソッドはD3DRMERR_BADVALUEを返す。
ビューポートの領域を強制的に更新する。指定された領域は、次回のIDirect3DRMDevice3::Updateメソッドの呼び出しでスクリーンにコピーされる。
構文
HRESULT ForceUpdate(
DWORD dwX1,
DWORD dwY1,
DWORD dwX2,
DWORD dwY2
);
パラメータ
- dwX1, dwY1
- 更新領域の左上隅の座標。
- dwX2, dwY2
- 更新領域の右下隅の座標。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
システムは、指定された矩形よりも大きなリージョンを更新することがある。場合によっては、ウィンドウ全体が更新されることもある。
ビューポートのバッククリッピングプレーンの位置を取得する。
構文
D3DVALUE GetBack( );
戻り値
バッククリッピングプレーンとカメラとの距離を記述する値を返す。
参照
ビューポートのカメラを取得する。
構文
HRESULT GetCamera(
LPDIRECT3DRMFRAME3 *lpCamera
);
パラメータ
- lpCamera
- カメラを表すDirect3DRMFrameオブジェクトが入る変数へのポインタ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
ビューポートと関連付けられたデバイスを取得する。
構文
HRESULT GetDevice(
LPDIRECT3DRMDEVICE3 *lpD3DRMDevice
);
パラメータ
- lpD3DRMDevice
- デバイスオブジェクトを示す変数のアドレス。デバイスに関する詳細は、「出力デバイス」を参照すること。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
現在のDirect3DRMViewportに対応するDirect3Dビューポートを取得する。
構文
HRESULT GetDirect3DViewport(
LPDIRECT3DVIEWPORT *lplpD3DViewport
);
パラメータ
- lplpD3DViewport
- Direct3DViewportオブジェクトへのポインタが入るアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
ビューポートのビューフィールドを取得する。
構文
D3DVALUE GetField( );
戻り値
ビューのフィールドを示す値を返す。
参照
ビューポートのフロントクリッピングプレーンの位置を取得する。
構文
D3DVALUE GetFront( );
戻り値
カメラからフロントクリッピングプレーンまでの距離を記述する値を返す。
参照
ビューポートの高さをピクセル単位で取得する。
構文
DWORD GetHeight( );
戻り値
高さをピクセル単位で返す。
フロントクリッピングプレーン上のビューポートのサイズを取得する。
構文
HRESULT GetPlane(
D3DVALUE *lpd3dvLeft,
D3DVALUE *lpd3dvRight,
D3DVALUE *lpd3dvBottom,
D3DVALUE *lpd3dvTop
);
パラメータ
- lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop
- フロントクリッピングプレーン上のビューポートのサイズを受け取る変数のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
ビューポートの射影タイプを取得する。ビューポートには、平行投影と透視投影のどちらでも用いることができる。
構文
D3DRMPROJECTIONTYPE GetProjection( );
戻り値
D3DRMPROJECTIONTYPE列挙型のメンバの1つを返す。
参照
ウィンドウのサイズより大きな表示ボリュームをスケーリングするために用いられる、スケール特性を取得する。
構文
BOOL GetUniformScaling( );
戻り値
ビューポートが一定の比率でスケーリングされる場合はTRUE、そうでなければFALSEを返す。
参照
ビューポートの幅をピクセル単位で取得する。
構文
DWORD GetWidth( );
戻り値
幅をピクセル単位で返す。
デバイスの上のビューポート始点のx座標オフセットを取得する。
構文
LONG GetX( );
戻り値
xオフセットを返す。
デバイスの上のビューポート始点のy座標オフセットを取得する。
構文
LONG GetY( );
戻り値
yオフセットを返す。
Direct3DRMViewportオブジェクトを初期化する。
構文
HRESULT Init(
LPDIRECT3DRMDEVICE3 lpD3DRMDevice,
LPDIRECT3DRMFRAME3 lpD3DRMFrameCamera,
DWORD xpos,
DWORD ypos,
DWORD width,
DWORD height
);
パラメータ
- lpD3DRMDevice
- このビューポートに関連付けられたデバイスオブジェクトのアドレス。デバイスに関する詳細は、「出力デバイス」を参照すること。
- lpD3DRMFrameCamera
- このビューポートに関連付けられたカメラフレームのアドレス。
- xpos, ypos
- ビューポートの左上隅のx座標およびy座標。
- width, height
- ビューポートの幅と高さ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
lprvSrcパラメータが示すベクトルをワールド座標からモデル座標に変換し、結果をlprvDstパラメータに返す。
構文
HRESULT InverseTransform(
D3DVECTOR *lprvDst,
D3DRMVECTOR4D *lprvSrc
);
パラメータ
- lprvDst
- メソッドが制御を返すときに処理結果を受け取るD3DVECTOR構造体のアドレス。
- lprvSrc
- 変換されるD3DRMVECTOR4D構造体のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
IDirect3DRMViewport2::InverseTransformVectors, IDirect3DRMViewport2::Transform
これは、スクリーン座標におけるlpSrcVectorsパラメータのベクトルの配列をワールド座標に変換し、結果をlprvDstVectorsパラメータ中に返す。
構文
HRESULT InverseTransformVectors( DWORD dwNumVectors, LPD3DVECTOR lpDstVectors, LPD3DRMVECTOR4D lpSrcVectors);
パラメータ
- dwNumVectors
- 座標を変換する必要のあるベクトル数。
- lpDstVectors
- 変換の出力先。
- lpSrcVectors
- 変換するベクトルを表すD3DRMVECTOR4D構造体の配列。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
IDirect3DRMViewport2::TransformVectors, IDirect3DRMViewport2::InverseTransform
深度によって分類されたオブジェクト(関連があれば面も)のリストを見つけ出す。取得した配列には、ルートからオブジェクトを含むフレームに到達するまでの階層パスが格納される。
構文
HRESULT Pick(
LONG lX,
LONG lY,
LPDIRECT3DRMPICKEDARRAY *lplpVisuals
);
パラメータ
- lX, lY
- ピッキングに使われる座標。
- lplpVisuals
- 呼び出しが成功したとき、IDirect3DRMPickedArrayインターフェイスへの有効なポインタが入るポインタのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
フレーム階層を、指定されたビューポートにレンダリングする。指定されたフレーム上のビジュアルと、その下の階層のフレームだけがレンダリングされる。
構文
HRESULT Render(
LPDIRECT3DRMFRAME lpD3DRMFrame
);
パラメータ
- lpD3DRMFrame
- レンダリングするフレーム階層を示すDirect3DRMFrameオブジェクトを示す変数のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。このメソッドは、IDirect3DRM3::SetOptionsメソッドの使用により右手サポートを指示する際にエラーを返し、それと同時に旧の方法 (IDirect3DRMViewport2::SetProjection)を使用した右手サポートを提供する。
ビューポートのバッククリッピングプレーンの位置を設定する。
構文
HRESULT SetBack(
D3DVALUE rvBack
);
パラメータ
- rvBack
- カメラとバッククリッピングプレーンの間の距離。デフォルト値は100.0である。適正な値はその他の視錐台設定に依存する。詳細については、「ビューポート」を参照すること。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにバッククリッピングプレーンの位置キーを追加するためにも使用する。
参照
IDirect3DRMViewport2::GetBack, IDirect3DRMViewport2::SetFront, 「視錐台」
カメラフレームをビューポートに設定する。
構文
HRESULT SetCamera(
LPDIRECT3DRMFRAME3 lpCamera
);
パラメータ
- lpCamera
- カメラを示すDirect3DRMFrameオブジェクトを指す変数のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、ビューポートの位置、方向、向きを指定されたカメラフレームと同じに設定する。ビューは、カメラフレームの正のz軸方向に沿って、正のy軸の上方向に向けられる。
参照
ビューポートにビューのフィールドを設定する。
構文
HRESULT SetField(
D3DVALUE rvField
);
パラメータ
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにビューのフィールドキーを追加するためにも使用する。
参照
ビューポートのフロントクリッピングプレーンの位置を設定する。
構文
HRESULT SetFront(
D3DVALUE rvFront
);
パラメータ
- rvFront
- カメラからフロントクリッピングプレーンまでの距離。デフォルト値は1.0である。適正な値はその他の視錐台設定に依存する。詳細については、「ビューポート」を参照すること。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
0以下の値が渡されると、このメソッドはD3DRMERR_BADVALUEエラーを返す。
このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにフロントクリッピングプレーン位置キーを追加するためにも使用する。
参照
カメラのz軸に対するビューポートのサイズをフロントクリッピングプレーンに設定する。
構文
HRESULT SetPlane(
D3DVALUE rvLeft,
D3DVALUE rvRight,
D3DVALUE rvBottom,
D3DVALUE rvTop
);
パラメータ
- rvLeft, rvRight, rvBottom, rvTop
- ビューポートの最小のx座標 、最大のx座標、最小のy座標、最大のy座標。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
中央に調整されたビューポートを指定するIDirect3DRMViewport2::SetFieldメソッドと異なり、このメソッドによって、任意の比率と位置のビューポートを指定することができる。たとえば、分離した視錐台を構築して、右目や左目のステレオビューをインプリメントすることができる。
このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにプレーンキーを追加するためにも使用する。
参照
IDirect3DRMViewport2::GetPlane, IDirect3DRMViewport2::SetField
ビューポートに射影タイプを設定する。
構文
HRESULT SetProjection(
D3DRMPROJECTIONTYPE rptType
);
パラメータ
- rptType
- D3DRMPROJECTIONTYPE列挙型のメンバの1つ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
DirectX version 6.0以降では、IDirect3DRM3::SetOptionsを使用して右手ジオメトリを指定する。
参照
表示ボリュームをウィンドウのサイズよりも大きくスケーリングするときに用いられる、スケール特性を設定する。
構文
HRESULT SetUniformScaling(
BOOL bScale
);
パラメータ
- bScale
- 新しいスケール特性。このパラメータにTRUEを指定すると、水平方向と垂直方向に同じスケール係数が使用される。そうでなければ、表示ボリュームをウィンドウに一致させるため、異なるスケール係数が用いられる。デフォルトの設定はTRUEである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
通常このメソッドは、バンディングをサポートするためにIDirect3DRMViewport2::SetPlaneメソッドとともに使用される。
参照
lprvSrcパラメータが示すベクトルをワールド座標からスクリーン座標に変換し、結果をlprvDstパラメータに返す。
構文
HRESULT Transform(
D3DRMVECTOR4D *lprvDst,
D3DVECTOR *lprvSrc
);
パラメータ
- lprvDst
- 変換操作の出力先となるD3DRMVECTOR4D構造体のアドレス。
- lprvSrc
- 変換処理のソースとなるD3DVECTOR構造体のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
変換結果には、4要素の同種のベクトルが返される。以下の方程式が真であれば、結果のベクトルが示す点は可視状態である。
![]()
参照
IDirect3DRMViewport2::TransformVectors, IDirect3DRMViewport2::InverseTransform
これは、ワールド座標におけるlpSrcVectorsパラメータのベクトルの配列をスクリーン座標に変換し、結果をlprvDstVectorsパラメータ中に返す。
構文
HRESULT TransformVectors( DWORD dwNumVectors, LPD3DRMVECTOR4D lpDstVectors, LPD3DVECTOR lpSrcVectors);
パラメータ
- dwNumVectors
- 変換する必要のあるベクトル数。
- lpDstVectors
- スクリーン座標に変換されたベクトルを表すD3DRMVECTOR4D構造体の配列。
- lpSrcVectors
- 変換するベクトルの配列。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
IDirect3DRMViewport2::Transform, IDirect3DRMViewport2::InverseTransformVectors
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.