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 |