IDirect3DRMViewport2

アプリケーションは、ビューポートオブジェクトと互いにやり取りするために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メソッドの使用によって取得される。

IDirect3DRMViewport2::Clear

IDirect3DRMViewport2

現在の背景色で、指定されたビューポートをクリアする。これは、何をクリアするかを示すフラグを提供する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とともに導入された。

IDirect3DRMViewport2::Configure

IDirect3DRMViewport2

ビューポートの原点とサイズを再設定する。

構文

HRESULT Configure(
  LONG lX,
  LONG lY,
  DWORD dwWidth,
  DWORD dwHeight
  );

パラメータ

lX, lY
ビューポートの新しい位置。
dwWidth, dwHeight
ビューポートの新しい幅と高さ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

lX + dwWidthがデバイスの幅より大きい場合、lY + dwHeightがデバイスの高さより大きい場合、あるいはlXlYdwWidthdwHeightのいずれかの値が0以下である場合、このメソッドはD3DRMERR_BADVALUEを返す。

IDirect3DRMViewport2::ForceUpdate

IDirect3DRMViewport2

ビューポートの領域を強制的に更新する。指定された領域は、次回のIDirect3DRMDevice3::Updateメソッドの呼び出しでスクリーンにコピーされる。

構文

HRESULT ForceUpdate(
  DWORD dwX1,
  DWORD dwY1,
  DWORD dwX2,
  DWORD dwY2
  );

パラメータ

dwX1, dwY1
更新領域の左上隅の座標。
dwX2, dwY2
更新領域の右下隅の座標。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

システムは、指定された矩形よりも大きなリージョンを更新することがある。場合によっては、ウィンドウ全体が更新されることもある。

IDirect3DRMViewport2::GetBack

IDirect3DRMViewport2

ビューポートのバッククリッピングプレーンの位置を取得する。

構文

D3DVALUE GetBack( );

戻り値

バッククリッピングプレーンとカメラとの距離を記述する値を返す。

参照

IDirect3DRMViewport2::SetBack, 「視錐台

IDirect3DRMViewport2::GetCamera

IDirect3DRMViewport2

ビューポートのカメラを取得する。

構文

HRESULT GetCamera(
  LPDIRECT3DRMFRAME3 *lpCamera
  );

パラメータ

lpCamera
カメラを表すDirect3DRMFrameオブジェクトが入る変数へのポインタ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMViewport2::SetCamera, 「カメラ

IDirect3DRMViewport2::GetDevice

IDirect3DRMViewport2

ビューポートと関連付けられたデバイスを取得する。

構文

HRESULT GetDevice(
  LPDIRECT3DRMDEVICE3 *lpD3DRMDevice
  );

パラメータ

lpD3DRMDevice
デバイスオブジェクトを示す変数のアドレス。デバイスに関する詳細は、「出力デバイス」を参照すること。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMViewport2::GetDirect3DViewport

IDirect3DRMViewport2

現在のDirect3DRMViewportに対応するDirect3Dビューポートを取得する。

構文

HRESULT GetDirect3DViewport(
  LPDIRECT3DVIEWPORT *lplpD3DViewport
  );

パラメータ

lplpD3DViewport
Direct3DViewportオブジェクトへのポインタが入るアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMViewport2::GetField

IDirect3DRMViewport2

ビューポートのビューフィールドを取得する。

構文

D3DVALUE GetField( );

戻り値

ビューのフィールドを示す値を返す。

参照

IDirect3DRMViewport2::SetField, 「視錐台

IDirect3DRMViewport2::GetFront

IDirect3DRMViewport2

ビューポートのフロントクリッピングプレーンの位置を取得する。

構文

D3DVALUE GetFront( );

戻り値

カメラからフロントクリッピングプレーンまでの距離を記述する値を返す。

参照

IDirect3DRMViewport2::SetFront, 「視錐台

IDirect3DRMViewport2::GetHeight

IDirect3DRMViewport2

ビューポートの高さをピクセル単位で取得する。

構文

DWORD GetHeight( );

戻り値

高さをピクセル単位で返す。

IDirect3DRMViewport2::GetPlane

IDirect3DRMViewport2

フロントクリッピングプレーン上のビューポートのサイズを取得する。

構文

HRESULT GetPlane(
  D3DVALUE *lpd3dvLeft,
  D3DVALUE *lpd3dvRight,
  D3DVALUE *lpd3dvBottom,
  D3DVALUE *lpd3dvTop
  );

パラメータ

lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop
フロントクリッピングプレーン上のビューポートのサイズを受け取る変数のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMViewport2::SetPlane

IDirect3DRMViewport2::GetProjection

IDirect3DRMViewport2

ビューポートの射影タイプを取得する。ビューポートには、平行投影と透視投影のどちらでも用いることができる。

構文

D3DRMPROJECTIONTYPE GetProjection( );

戻り値

D3DRMPROJECTIONTYPE列挙型のメンバの1つを返す。

参照

IDirect3DRMViewport2::SetProjection

IDirect3DRMViewport2::GetUniformScaling

IDirect3DRMViewport2

ウィンドウのサイズより大きな表示ボリュームをスケーリングするために用いられる、スケール特性を取得する。

構文

BOOL GetUniformScaling( );

戻り値

ビューポートが一定の比率でスケーリングされる場合はTRUE、そうでなければFALSEを返す。

参照

IDirect3DRMViewport2::SetUniformScaling

IDirect3DRMViewport2::GetWidth

IDirect3DRMViewport2

ビューポートの幅をピクセル単位で取得する。

構文

DWORD GetWidth( );

戻り値

幅をピクセル単位で返す。

IDirect3DRMViewport2::GetX

IDirect3DRMViewport2

デバイスの上のビューポート始点のx座標オフセットを取得する。

構文

LONG GetX( );

戻り値

xオフセットを返す。

IDirect3DRMViewport2::GetY

IDirect3DRMViewport2

デバイスの上のビューポート始点のy座標オフセットを取得する。

構文

LONG GetY( );

戻り値

yオフセットを返す。

IDirect3DRMViewport2::Init

IDirect3DRMViewport2

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保持モードの戻り値」を参照すること。

IDirect3DRMViewport2::InverseTransform

IDirect3DRMViewport2

lprvSrcパラメータが示すベクトルをワールド座標からモデル座標に変換し、結果をlprvDstパラメータに返す。

構文

HRESULT InverseTransform(
  D3DVECTOR *lprvDst,
  D3DRMVECTOR4D *lprvSrc
  );

パラメータ

lprvDst
メソッドが制御を返すときに処理結果を受け取るD3DVECTOR構造体のアドレス。
lprvSrc
変換されるD3DRMVECTOR4D構造体のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMViewport2::InverseTransformVectors, IDirect3DRMViewport2::Transform

IDirect3DRMViewport2::InverseTransformVectors

IDirect3DRMViewport2

これは、スクリーン座標における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

IDirect3DRMViewport2::Pick

IDirect3DRMViewport2

深度によって分類されたオブジェクト(関連があれば面も)のリストを見つけ出す。取得した配列には、ルートからオブジェクトを含むフレームに到達するまでの階層パスが格納される。

構文

HRESULT Pick(
  LONG lX,
  LONG lY,
  LPDIRECT3DRMPICKEDARRAY *lplpVisuals
  );

パラメータ

lX, lY
ピッキングに使われる座標。
lplpVisuals
呼び出しが成功したとき、IDirect3DRMPickedArrayインターフェイスへの有効なポインタが入るポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMViewport2::Render

IDirect3DRMViewport2

フレーム階層を、指定されたビューポートにレンダリングする。指定されたフレーム上のビジュアルと、その下の階層のフレームだけがレンダリングされる。

構文

HRESULT Render(
  LPDIRECT3DRMFRAME lpD3DRMFrame
  );

パラメータ

lpD3DRMFrame
レンダリングするフレーム階層を示すDirect3DRMFrameオブジェクトを示す変数のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。このメソッドは、IDirect3DRM3::SetOptionsメソッドの使用により右手サポートを指示する際にエラーを返し、それと同時に旧の方法 (IDirect3DRMViewport2::SetProjection)を使用した右手サポートを提供する。

IDirect3DRMViewport2::SetBack

IDirect3DRMViewport2

ビューポートのバッククリッピングプレーンの位置を設定する。

構文

HRESULT SetBack(
  D3DVALUE rvBack
  );

パラメータ

rvBack
カメラとバッククリッピングプレーンの間の距離。デフォルト値は100.0である。適正な値はその他の視錐台設定に依存する。詳細については、「ビューポート」を参照すること。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにバッククリッピングプレーンの位置キーを追加するためにも使用する。

参照

IDirect3DRMViewport2::GetBack, IDirect3DRMViewport2::SetFront, 「視錐台

IDirect3DRMViewport2::SetCamera

IDirect3DRMViewport2

カメラフレームをビューポートに設定する。

構文

HRESULT SetCamera(
  LPDIRECT3DRMFRAME3 lpCamera
  );

パラメータ

lpCamera
カメラを示すDirect3DRMFrameオブジェクトを指す変数のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、ビューポートの位置、方向、向きを指定されたカメラフレームと同じに設定する。ビューは、カメラフレームの正のz軸方向に沿って、正のy軸の上方向に向けられる。

参照

IDirect3DRMViewport2::GetCamera, 「カメラ

IDirect3DRMViewport2::SetField

IDirect3DRMViewport2

ビューポートにビューのフィールドを設定する。

構文

HRESULT SetField(
  D3DVALUE rvField
  );

パラメータ

rvField
ビューの新しいフィールド。この値は視角の端数である。デフォルト値は0.5である。この値に0以下を指定すると、このメソッドはD3DRMERR_BADVALUEエラーを返す。視角は、フロントクリッピングプレーンのアークタンジェントの2倍割るカメラからの距離として定義される。視角の詳細については、「視錐台」を参照すること。rvFieldの値0.5は、「視錐台」の項で示す視角Aの半分である。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにビューのフィールドキーを追加するためにも使用する。

参照

IDirect3DRMViewport2::GetField, 「視錐台

IDirect3DRMViewport2::SetFront

IDirect3DRMViewport2

ビューポートのフロントクリッピングプレーンの位置を設定する。

構文

HRESULT SetFront(
  D3DVALUE rvFront
  );

パラメータ

rvFront
カメラからフロントクリッピングプレーンまでの距離。デフォルト値は1.0である。適正な値はその他の視錐台設定に依存する。詳細については、「ビューポート」を参照すること。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

0以下の値が渡されると、このメソッドはD3DRMERR_BADVALUEエラーを返す。

このメソッドは、Direct3DRMViewportInterpolatorオブジェクトにフロントクリッピングプレーン位置キーを追加するためにも使用する。

参照

IDirect3DRMViewport2::GetFront, 「視錐台

IDirect3DRMViewport2::SetPlane

IDirect3DRMViewport2

カメラの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

IDirect3DRMViewport2::SetProjection

IDirect3DRMViewport2

ビューポートに射影タイプを設定する。

構文

HRESULT SetProjection(
  D3DRMPROJECTIONTYPE rptType
  );

パラメータ

rptType
D3DRMPROJECTIONTYPE列挙型のメンバの1つ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

DirectX version 6.0以降では、IDirect3DRM3::SetOptionsを使用して右手ジオメトリを指定する。

参照

IDirect3DRMViewport2::GetProjection

IDirect3DRMViewport2::SetUniformScaling

IDirect3DRMViewport2

表示ボリュームをウィンドウのサイズよりも大きくスケーリングするときに用いられる、スケール特性を設定する。

構文

HRESULT SetUniformScaling(
  BOOL bScale
  );

パラメータ

bScale
新しいスケール特性。このパラメータにTRUEを指定すると、水平方向と垂直方向に同じスケール係数が使用される。そうでなければ、表示ボリュームをウィンドウに一致させるため、異なるスケール係数が用いられる。デフォルトの設定はTRUEである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

通常このメソッドは、バンディングをサポートするためにIDirect3DRMViewport2::SetPlaneメソッドとともに使用される。

参照

IDirect3DRMViewport2::GetUniformScaling

IDirect3DRMViewport2::Transform

IDirect3DRMViewport2

lprvSrcパラメータが示すベクトルをワールド座標からスクリーン座標に変換し、結果をlprvDstパラメータに返す。

構文

HRESULT Transform(
  D3DRMVECTOR4D *lprvDst,
  D3DVECTOR *lprvSrc
  );

パラメータ

lprvDst
変換操作の出力先となるD3DRMVECTOR4D構造体のアドレス。
lprvSrc
変換処理のソースとなるD3DVECTOR構造体のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

変換結果には、4要素の同種のベクトルが返される。以下の方程式が真であれば、結果のベクトルが示す点は可視状態である。

点が可視状態かどうかをテストする方程式

参照

IDirect3DRMViewport2::TransformVectors, IDirect3DRMViewport2::InverseTransform

IDirect3DRMViewport2::TransformVectors

IDirect3DRMViewport2

これは、ワールド座標における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.