DDSCAPS2 结构 (ddraw.h)

DDSCAPS2 结构定义了 Microsoft DirectDraw Surface 对象的附加功能。

语法

typedef struct _DDSCAPS2 {
  DWORD dwCaps;
  DWORD dwCaps2;
  DWORD dwCaps3;
  union {
    DWORD dwCaps4;
    DWORD dwVolumeDepth;
  } DUMMYUNIONNAMEN;
} DDSCAPS2;

成员

dwCaps

指定一组表示图面功能的标志。 此成员中的标志与 DDSCAPS 结构的相应成员中的标志相同。

dwCaps2

指定一组指示其他表面功能的标志。 此成员可以包含以下一个或多个功能标志。 这些标志(DDSCAPS2_TEXTUREMANAGE除外)在应用程序调用其 CreateSurface 方法时由应用程序设置。

标志 含义

DDSCAPS2_ADDITIONALPRIMARY

仅限 Microsoft DirectX 9.0 及更高版本。

指示在为具有此位集的从属头创建图面后,多头卡的从属头不再控制其视频内存。 一旦这种表面被破坏,从属头重新控制他们的记忆。 有关详细信息,请参阅 管理 Multiple-Head 内存

DDSCAPS2_COMMANDBUFFER

标记由 Microsoft Direct3D 用于批处理命令的命令缓冲区。

DDSCAPS2_CUBEMAP

此图面是立方体环境映射。 使用此标志时,还要指定要创建的立方环境映射的人脸。

DDSCAPS2_CUBEMAP_POSITIVEX

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方环境映射的正 X 面。

DDSCAPS2_CUBEMAP_NEGATIVEX

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方体环境映射的负 X 面。

DDSCAPS2_CUBEMAP_POSITIVEY

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方体环境映射的正 Y 面。

DDSCAPS2_CUBEMAP_NEGATIVEY

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方环境映射的负 Y 面。

DDSCAPS2_CUBEMAP_POSITIVEZ

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方体环境映射的正 Z 面。

DDSCAPS2_CUBEMAP_NEGATIVEZ

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建立方体环境映射的负 Z 面。

DDSCAPS2_CUBEMAP_ALLFACES

此标志与 DDSCAPS2_CUBEMAP 标志一起使用,以创建三方环境映射的所有六个面。

DDSCAPS2_D3DTEXTUREMANAGE

纹理始终由 Direct3D 管理。

DDSCAPS2_DISCARDBACKBUFFER

仅限 DirectX 8.0 及更高版本。

指示不需要保留后台缓冲区。 如果应用程序已在“当前 API”上设置了D3DSWAPEFFECT_DISCARD,则会在主图面和后台缓冲区上设置它。 仅限 DirectX 9.0 及更高版本。 指示不需要保留深度模具表面。

DDSCAPS2_DONOTPERSIST

托管表面可以安全地丢失。

DDSCAPS2_ENABLEALPHACHANNEL

仅限 DirectX 8.1 及更高版本。

指示创建属于主要翻转链的一部分或位于独立后台缓冲区的图面。 此标志打开 alpha 通道。 有关详细信息,请参阅 在 Full-Screen 后台缓冲区上启用 Alpha 通道

DDSCAPS2_EXTENDEDFORMATPRIMARY

仅限 DirectX 9.0 及更高版本。

指示创建用于非标准显示模式的虚拟主表面。 有关详细信息,请参阅 在标准模式和非标准模式之间切换

DDSCAPS2_HARDWAREDEINTERLACE

驱动程序必须将隔行信号转换为渐进帧。 还必须设置此结构中的DDSCAPS_VIDEOPORT和DDSCAPS_OVERLAY标志。

DDSCAPS2_HINTANTIALIASING

应用程序将使用抗锯齿。 仅当同时设置了DDSCAPS_3DDEVICE标志时,此标志才有效。

DDSCAPS2_HINTDYNAMIC

应用程序将频繁更新图面。 设置了此标志的图面还必须在此结构集中具有DDSCAPS_TEXTURE标志。 此标志不能与DDSCAPS2_HINTSTATIC或DDSCAPS2_OPAQUE标志一起使用。

DDSCAPS2_HINTSTATIC

应用程序不经常更新图面,但仍需要访问权限。 设置了此标志的图面还必须在此结构集中具有DDSCAPS_TEXTURE标志。 此标志不能与DDSCAPS2_HINTDYNAMIC或DDSCAPS2_OPAQUE标志一起使用。

DDSCAPS2_INDEXBUFFER

仅限 DirectX 8.0 及更高版本。

标记由应用程序创建和控制的索引缓冲区。

DDSCAPS2_MIPMAPSUBLEVEL

它使 GetAttachedSurface(而不是 EnumAttachedSurface)可以更轻松地用于图面构造,例如多维数据集贴图,其中有多个 mipmap 图面附加到根图面。 应在误应用多维数据集地图中的所有非桌面图上设置此设置,以便调用 GetAttachedSurface 可以区分顶级人脸和附加 mipmap 级别。 此功能位被 CreateSurface 忽略。

DDSCAPS2_NOTUSERLOCKABLE

仅限 DirectX 8.0 及更高版本。

如果翻转链不可锁定,则对主缓冲区和后台缓冲区设置,或者在不可锁定的任何呈现器目标上设置。 这允许驱动程序在后台执行优化。 请注意,仍可以锁定表面,因此驱动程序必须处理这些情况,但此类锁很少出现,预计速度不快。 驱动程序还可以确定深度/模具缓冲区是否可通过存在此标志来锁定。

DDSCAPS2_NPATCHES

仅限 DirectX 8.0 及更高版本。

指示顶点缓冲区数据可用于呈现 n 个补丁。

DDSCAPS2_OPAQUE

在 Surface 的剩余生存期内,应用程序永远不会锁定、点亮或更新表面。 驱动程序可以压缩或重新排序图面,而无需对其进行解压缩。 设置了此标志的图面还必须在此结构集中具有DDSCAPS_TEXTURE标志。 此标志不能与 DDSCAPS2_HINTDYNAMIC 或 DDSCAPS2_HINTSTATIC 标志一起使用。

DDSCAPS2_POINTS

仅限 DirectX 8.0 及更高版本。

指示顶点缓冲区数据可用于呈现点和点子画面。

DDSCAPS2_RTPATCHES

仅限 DirectX 8.0 及更高版本。

指示顶点缓冲区数据可用于呈现 rt 补丁。

DDSCAPS2_STEREOSURFACELEFT

此表面是立体声翻转链的一部分。 在 CreateSurface 调用期间设置此标志时,会为主翻转链中的每个缓冲区创建一对立体声表面。 必须创建具有后台缓冲区) 的复杂翻转链 (。 不能创建一组立体声表面。 Flip 方法需要后台缓冲区,因此必须创建至少 4 个图面。

此外,如果由于 EnumDisplayModesGetDisplayMode 调用的结果在 DDSURFACEDESC 结构中设置此标志,则表示该模式下支持立体声。

DDSCAPS2_TEXTUREMANAGE

客户端指示此纹理图面应由驱动程序管理(如果可能);否则,它由 Direct3D 即时模式管理。 此标志只能用于 在 dwCaps 成员) 中设置 (DDSCAPS_TEXTURE 标志的纹理表面。 有关详细信息,请参阅 Direct3D 即时模式文档中的自动纹理管理。

DDSCAPS2_VERTEXBUFFER

标记由应用程序创建和控制的显式顶点缓冲区。

DDSCAPS2_VOLUME

仅限 DirectX 8.0 及更高版本。

如果纹理除宽度和高度外还有深度,则设置此标志。

dwCaps3

仅 DirectX 8.0 和 DirectX 8.1 版本。

指定多重采样图面的样本数。 此字段保存枚举类型的值之一D3DMULTISAMPLE_TYPE。 如果图面不是多重采样的, 则 dwCaps3 的值为 0) D3DMULTISAMPLE_NONE (。

仅限 DirectX 9.0 及更高版本。

指定一组指示其他表面功能的位。 此成员可以是以下位的按位或。

Bits 含义

DDSCAPS3_MULTISAMPLE_MASK掩码中的位 (0x0000001FL) 。

dwCaps3 的前五位指示多采样图面的样本数。 可以使用枚举类型的值之一D3DMULTISAMPLE_TYPE指定样本数。 如果图面不是多重采样的,则此值D3DMULTISAMPLE_NONE (0) 。

DDSCAPS3_MULTISAMPLE_QUALITY_MASK掩码中的位 (0x000000E0L) 。

接下来的三位 dwCaps3 指示多采样图面中呈现样本的质量级别。 质量级别必须为 0 到 7 的数字,分别表示 1 到 8 的质量级别。 请注意,即使图面不是使用D3DMULTISAMPLE_NONE) 在前五位中指定的多采样 (,它仍然可以使用大于 0) 的数字指定大于 1 的质量级别 (。

DDSCAPS3_RESERVED1 (0x00000100L)

保留

DDSCAPS3_VIDEO (0x00000200L)

指示呈现器目标包含视频数据。 请注意,可以使用此标志创建多个呈现目标,如果其中两个或更多个呈现目标属于同一 Direct3D 上下文,则驱动程序将确定这些呈现目标都显示相同的视频流,而不考虑呈现目标图面是否相互附加。

DDSCAPS3_LIGHTWEIGHTMIPMAP (0x00000400L)

指示此图面是否具有轻型 mip 级别

DDSCAPS3_AUTOGENMIPMAP (0x00000800L)

指示自动生成此图面的 mip 子级别。

DDSCAPS3_DMAP (0x00001000L)

指示可以由分割单元中的位移图采样器采样的位移贴图纹理。

DUMMYUNIONNAMEN

不适用

DUMMYUNIONNAMEN.dwCaps4

低字是音量纹理的深度。

DUMMYUNIONNAMEN.dwVolumeDepth

指定音量纹理位深度。

备注

驱动程序使用此结构来报告驱动程序支持的图面类型。 它还由应用程序填充,以指定要创建的图面的类型。

要求

   
标头 ddraw.h