Platform SDK: DirectX

D3DVIEWPORT7

D3DVIEWPORT7 構造体は、3D ボリュームが射影されるレンダリング ターゲット サーフェスのウィンドウの大きさを定義する。この構造体は IDirect3DDevice7::GetViewport および IDirect3DDevice7::SetViewport メソッドで使用される。

typedef struct _D3DVIEWPORT7{
    DWORD       dwX;
    DWORD       dwY;
    DWORD       dwWidth;
    DWORD       dwHeight;
    D3DVALUE    dvMinZ;
    D3DVALUE    dvMaxZ;
} D3DVIEWPORT7, *LPD3DVIEWPORT7

メンバ

dwX および dwY
レンダリング ターゲット サーフェス上のビューポートの左上隅を表すピクセル座標。サーフェスのサブセットにレンダリングするのでなければ、これらのメンバは 0 に設定できる。
dwWidth および dwHeight
レンダリングの対象となるサーフェス上のビューポートの大きさをピクセル単位で表す。サーフェスのサブセットに限定してレンダリングするのでなければ、これらのメンバにはレンダリング ターゲット サーフェスの大きさをセットする。
dvMinZ および dvMaxZ
シーンをレンダリングする深度範囲を記述する D3DVALUE 型の値ほとんどのアプリケーションでは、これらの値をそれぞれ 0.0 および 1.0 に設定する。これらのメンバの値の解釈は、従来の D3DVIEWPORT2 構造体で対応するメンバの場合とはまったく異なる。DirectX 7.0 では、射影行列の適用後にクリッピングが行われる。詳細については、「クリッピング ボリューム」および「射影トランスフォーム」を参照すること。

注意

DirectX 7.0 で導入されたこの構造体は、旧バージョンの DirectX で使用された D3DVIEWPORT2 および D3DVIEWPORT 構造体に代わって使用される。

dwX、dwY、dwWidth および dwHeight メンバは、レンダリングの対象となるサーフェス上のビューポートの位置と大きさを記述する。通常、アプリケーションは対象となるサーフェス全体のレンダリングを実行するので、640 x 480 のサーフェスでレンダリングを行う場合には、これらのメンバはそれぞれ 0、0、640、480 の値を取る。一般に、dvMinZ および dvMaxZ は 0.0 および 1.0 に設定されるが、ほかの値を設定して特殊エフェクトを出すこともできる。たとえば、両方の値を 0.0 に設定すると、シーンのフォアグラウンドにオブジェクトがレンダリングされる。また、両方の値を 1.0 に設定すると、オブジェクトがバックグラウンドにレンダリングされる。

デバイスのビューポート パラメータが変更されると (IDirect3DDevice7::SetViewport メソッドの呼び出しにより)、ドライバは新しいトランスフォーム配列を作成する。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン :DirectX 7.0 が必要。
  ヘッダー : d3dtypes.h で宣言。

参照

D3DVALUEIDirect3DDevice7::GetViewportIDirect3DDevice7::SetViewportクリッピング ボリュームビューポートとクリッピング