D3D11_TEXTURE2D_DESC1 结构 (d3d11_3.h)

描述 2D 纹理。

语法

typedef struct D3D11_TEXTURE2D_DESC1 {
  UINT                 Width;
  UINT                 Height;
  UINT                 MipLevels;
  UINT                 ArraySize;
  DXGI_FORMAT          Format;
  DXGI_SAMPLE_DESC     SampleDesc;
  D3D11_USAGE          Usage;
  UINT                 BindFlags;
  UINT                 CPUAccessFlags;
  UINT                 MiscFlags;
  D3D11_TEXTURE_LAYOUT TextureLayout;
} D3D11_TEXTURE2D_DESC1;

成员

Width

纹素) 中的纹理宽度 (。 范围从 1 到 D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) 。 对于纹理立方体贴图,范围从 1 到 D3D11_REQ_TEXTURECUBE_DIMENSION (16384) 。 但是,该范围实际上受创建呈现设备 时的功能级别 的约束。 有关限制的详细信息,请参阅备注。

Height

纹素) 中的纹理高度 (。 范围从 1 到 D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) 。 对于纹理立方体贴图,范围从 1 到 D3D11_REQ_TEXTURECUBE_DIMENSION (16384) 。 但是,该范围实际上受创建呈现设备 时的功能级别 的约束。 有关限制的详细信息,请参阅备注。

MipLevels

纹理中的最大 mipmap 级别数。 请参阅 D3D11_TEX1D_SRV中的备注。 使用 1 作为多重采样纹理;或 0 生成一组完整的子文本。

ArraySize

纹理数组中的纹理数。 范围为 1 到 D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048) 。 对于纹理立方体贴图,此值是 6 (的倍数,即 NumCubes D3D11_TEXCUBE_ARRAY_SRV) NumCubes 成员中的值的 6 倍,范围从 6 到 2046。 该范围实际上受创建呈现设备 时的功能级别 的约束。 有关限制的详细信息,请参阅备注。

Format

纹理格式 (请参阅 DXGI_FORMAT) 。

SampleDesc

为纹理指定多重采样参数的结构。 请参阅 DXGI_SAMPLE_DESC

Usage

标识如何读取和写入纹理的值。 最常见的值为 D3D11_USAGE_DEFAULT;有关所有可能的值 ,请参阅D3D11_USAGE

BindFlags

标志 (看到绑定到管道阶段 D3D11_BIND_FLAG) 。 标志可以按位 OR 组合。

CPUAccessFlags

(查看 D3D11_CPU_ACCESS_FLAG) 以指定允许的 CPU 访问类型的标志。 如果不需要 CPU 访问,请使用 0。 这些标志可以与按位 OR 组合使用。

MiscFlags

标志 (查看 标识 其他不太常见的资源选项的D3D11_RESOURCE_MISC_FLAG) 。 如果这些标志均不适用,请使用 0。 可以使用按位 OR 组合这些标志。 对于纹理立方体贴图,设置 D3D11_RESOURCE_MISC_TEXTURECUBE 标志。 多维数据集映射数组 (即 ArraySize> 6) 需要 功能级别D3D_FEATURE_LEVEL_10_1 或更高。

TextureLayout

一个D3D11_TEXTURE_LAYOUT类型的值,用于标识纹理的布局。

TextureLayout 参数选择内存中纹理的实际布局,以及映射纹理时应用程序可见的布局。 如果没有也请求 CPU 访问权限,则无法请求这些标志。

在不将 TextureLayout 设置为除 D3D11_TEXTURE_LAYOUT_UNDEFINED 以外的值的情况下,在默认纹理上设置 CPU 访问标志是非法的。

D3D11_TEXTURE_LAYOUT_ROW_MAJOR只能用于创建非多重采样,) 支持具有单个子资源 (平面 YUV 纹理的纹理。 这些纹理只能用作复制操作的源和目标,BindFlags 必须为零。

D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE只能用于创建非多重采样、非深度模具纹理。

备注

此结构用于调用 ID3D11Device3::CreateTexture2D1

除了此结构外,还可以使用 CD3D11_TEXTURE2D_DESC1 派生结构(在 D3D11_3.h 中定义,其行为类似于继承的类)来帮助创建纹理说明。

设备存在一些大小限制, (必须为子采样、块压缩或位格式资源) 最小大小的倍数。

纹理大小范围取决于创建设备 的功能级别 ,而不是 Microsoft Direct3D 接口版本。 例如,如果使用功能级别 10 的 Microsoft Direct3D 10 硬件 (D3D_FEATURE_LEVEL_10_0) 并调用 D3D11CreateDevice 来创建 ID3D11Device,则必须在创建 2D 纹理时将最大纹理大小限制为 D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192) 。

要求

   
标头 d3d11_3.h

另请参阅

资源结构