D3D11_VIEWPORT 结构 (d3d11.h)

定义视区的尺寸。

语法

typedef struct D3D11_VIEWPORT {
  FLOAT TopLeftX;
  FLOAT TopLeftY;
  FLOAT Width;
  FLOAT Height;
  FLOAT MinDepth;
  FLOAT MaxDepth;
} D3D11_VIEWPORT;

成员

TopLeftX

类型: FLOAT

视区左侧的 X 位置。 范围介于 D3D11_VIEWPORT_BOUNDS_MIN 和 D3D11_VIEWPORT_BOUNDS_MAX 之间。

TopLeftY

类型: FLOAT

视区顶部的 Y 位置。 范围介于 D3D11_VIEWPORT_BOUNDS_MIN 和 D3D11_VIEWPORT_BOUNDS_MAX 之间。

Width

类型: FLOAT

视区宽度。

Height

类型: FLOAT

视区的高度。

MinDepth

类型: FLOAT

视区最小深度。 范围介于 0 和 1 之间。

MaxDepth

类型: FLOAT

视区的最大深度。 范围介于 0 和 1 之间。

注解

在所有情况下,WidthHeight 必须为 >= 0,TopLeftX + WidthTopLeftY + Height 必须为 <= D3D11_VIEWPORT_BOUNDS_MAX。

Direct3D 11 和 Direct3D 10 之间的视区大小和功能级别支持差异:

最小和最大视区大小的范围取决于 D3D_FEATURE_LEVEL定义的功能级别。

  • Direct3D 11 支持小数视区;参数类型是浮点数。 功能级别D3D_FEATURE_LEVEL_11_0支持 (D3D11_VIEWPORT_BOUNDS_MIN,D3D11_VIEWPORT_BOUNDS_MAX) (-32768、32,767) 之间的值。
  • Direct3D 10 不支持小数视区。 功能级别(D3D_FEATURE_LEVEL_10_1 (或低于) )支持 (D3D10_VIEWPORT_BOUNDS_MIN,D3D10_VIEWPORT_BOUNDS_MAX) (-16384、16383) 之间的值。
 
注意尽管在调用 ID3D11DeviceContext::RSSetViewports 时为功能级别9_xpViewports 数组的 D3D11_VIEWPORT 结构成员指定浮点值,但 RSSetViewports 内部使用 DWORD。 由于此行为,当对视区使用负左上角时,对 功能级别的 RSSetViewports 的调用9_x失败。 发生此失败的原因是,9_x的 RSSetViewports 在没有验证的情况下将浮点值强制转换为无符号整数,从而导致整数溢出。
 

要求

要求
Header d3d11.h

另请参阅

核心结构