FORMATOP 结构 (d3dumddi.h)

FORMATOP 结构描述可以使用此类图面执行的图面格式和作。

语法

typedef struct _FORMATOP {
  [in]  D3DDDIFORMAT Format;
  [out] UINT         Operations;
  [out] UINT         FlipMsTypes;
  [out] UINT         BltMsTypes;
  [out] UINT         PrivateFormatBitCount;
} FORMATOP;

成员

[in] Format

指示图面像素格式的 D3DDDIFORMAT类型值。

[out] Operations

以下标志的有效按位 OR,指示可以使用 Format 成员中指定的像素格式在图面上执行的作。 以下一些标志表示应使用其他标志。 如果驱动程序设置一个表示其他标志的标志,则不需要驱动程序来设置隐含标志,Direct3D 运行时将确定隐含标志的使用。

FORMATOP_TEXTURE (0x000000001L)

指定的像素格式的图面可用作 MIP 映射的纹理。

FORMATOP_VOLUMETEXTURE (0x000000002L)

此格式的图面可用作卷纹理。 请注意,此标志独立于FORMATOP_TEXTURE。 因此,像素格式可用于卷纹理,而不能用于传统的 MIP 映射纹理。

FORMATOP_CUBETEXTURE (0x000000004L)

此格式的图面可用作立方环境地图纹理。 请注意,此标志独立于FORMATOP_TEXTURE。 因此,像素格式可用于立方环境地图纹理,而不适用于传统的 MIP 映射纹理。

FORMATOP_OFFSCREEN_RENDERTARGET (0x000000008L)

无论显示模式的像素格式如何,此格式的图面都可以用作屏幕外呈现目标,前提是当前显示模式的像素格式报告了FORMATOP_DISPLAYMODE和FORMATOP_3DACCELERATION。 如果当前显示模式的像素格式未设置这些标志,则即使呈现目标处于屏幕外,此模式下也没有 3D 加速可用。 FORMATOP_OFFSCREEN_RENDERTARGET标志可以与FORMATOP_TEXTURE结合使用,以指示设备可以呈现为指定像素格式的纹理。

FORMATOP_OFFSCREEN_RENDERTARGET标志还表示FORMATOP_SAME_FORMAT_RENDERTARGET和FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET标志。

FORMATOP_SAME_FORMAT_RENDERTARGET (0x000000010L)

此格式的图面可用作呈现目标,但仅当图面的像素格式与当前显示模式的像素格式匹配时。 此标志不仅适用于屏幕外呈现目标,还可以在显示模式的像素格式上指定,以指示呈现目标功能。 此标志可以与FORMATOP_TEXTURE结合使用,以指示设备可以呈现为指定像素格式的纹理。

FORMATOP_SAME_FORMAT_RENDERTARGET标志还表示FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET标志。

FORMATOP_ZSTENCIL (0x000000040L)

此格式的图面可用作 Z/模具缓冲区,但前提是 Z/模具图面的深度与深度缓冲区附加到的呈现目标的颜色深度匹配。 在决定 Z/模具与颜色缓冲区深度之间的匹配时,请使用像素步幅。

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x000000080L)

无论图面附加到的呈现目标的颜色深度如何,此格式的图面都可以用作 Z/模具缓冲区。

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH标志还表示FORMATOP_ZSTENCIL标志。

FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x00000100L)

如果当前显示模式相同且忽略 alpha 通道,则此格式的图面可用作呈现目标。 例如,如果设备可以在显示模式X8R8G8B8时呈现为A8R8G8B8,则A8R8G8B8的格式作列表项应设置此标志。

FORMATOP_DISPLAYMODE (0x00000400L)

具有驱动程序模型支持的此像素格式的显示模式(包括 Flip)。 不应对 alpha 格式设置此标志。

FORMATOP_3DACCELERATION (0x000000800L)

图形加速器可以在具有此像素格式的显示模式下支持某种级别的 Microsoft Direct3D 加速,并且驱动程序可以在此模式下创建上下文(对于某些呈现目标格式)。 仅当报告显示模式格式(通过指定FORMATOP_DISPLAYMODE)时,才能使用此标志。 不应使用此标志来报告屏幕外呈现目标格式。

FORMATOP_PIXELSIZE (0x00001000L)

驱动程序在 PrivateFormatBitCount 成员中填充了格式的每像素位数。

如果驱动程序要求托管图面和纹理使用专用格式(驱动程序可以处理但不能由 Direct3D 运行时本机处理的格式),驱动程序必须指定FORMATOP_PIXELSIZE和 PrivateFormatBitCount中的像素大小。

FORMATOP_CONVERT_TO_ARGB (0x00002000L)

此格式的源图面可以转换为具有指定FORMATOP_MEMBEROFGROUP_ARGB标志的 RGB 像素格式的任何目标图面。

FORMATOP_OFFSCREENPLAIN (0x00004000L)

驱动程序可以延伸至此格式的填充图面和颜色填充图面。

FORMATOP_SRGBREAD (0x00008000L)

可以从 sRGB格式纹理(即采样器线性化查找数据)读取此格式的图面。

FORMATOP_BUMPMAP (0x00010000L)

此格式的图面可用作凹凸环境地图纹理。 请注意,此标志独立于FORMATOP_TEXTURE。 因此,像素格式可用于凹凸环境地图纹理,而不是用于传统的 MIP 映射纹理。

FORMATOP_DMAP (0x00020000L)

排量地图采样器可以采样此格式的图面。

FORMATOP_NOFILTER (0x00040000L)

此格式的图面不能用于纹理筛选。

FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)

此格式的目标图面可以从具有指定FORMATOP_CONVERT_TO_ARGB标志的像素格式的任何源图面转换。 驱动程序只能为每个通道指定至少 5 位颜色信息的 ARGB 图面FORMATOP_MEMBEROFGROUP_ARGB。 也就是说,D3DDDIFMT_A1R5G5B5格式有效,但D3DDDIFMT_A4R4G4B4格式无效。 如果驱动程序指定格式无效的FORMATOP_MEMBEROFGROUP_ARGB,Direct3D 运行时将阻止 Direct3D HAL 加载。 请注意,虽然此标志指示 ARGB 格式,但运行时还允许驱动程序使用 XRGB 格式指定图面(例如,D3DDDIFMT_X1R5G5B5)。

FORMATOP_SRGBWRITE (0x00100000L)

此格式的图面可以写入 sRGB格式的目标(即像素管道将输出中的数据划定为此格式)。

FORMATOP_NOALPHABLEND (0x00200000L)

此格式的图面不能与 alpha 混合一起使用。

FORMATOP_AUTOGENMIPMAP (0x004000000L)

可以自动生成具有此格式的 MIP 映射纹理的子级别。 要使驱动程序接收对其 GenerateMipSubLevels 函数的调用,必须公开此标志。

FORMATOP_VERTEXTEXTURE (0x008000000L)

顶点纹理采样器可以使用此格式的图面。 也就是说,只能将此格式的图面用作顶点纹理。

FORMATOP_NOTEXCOORDWRAPNORMIP (0x010000000L)

此格式的图面只能有条件地用于二维纹理的纹理映射,其尺寸不是 2。 有关详细信息,请参阅 D3DPRIMCAPS 参考页中D3DPTEXTURECAPS_POW2和D3DPTEXTURECAPS_NONPOW2CONDITIONAL的定义。

FORMATOP_PLANAR (0x020000000L)

此格式的图面是平面图面还是打包图面。 如果 Direct3D 运行时调用用户模式显示驱动程序的 函数在表面具有平面格式,而表面丢失,并且无法实现间距乘数高度的典型计算,则必须分配缓冲区。 除了 DirectX 视频加速使用Microsoft格式(例如 YUV 格式)之外,大多数格式都打包了。

FORMATOP_OVERLAY (0x040000000L)

此格式的图面用于覆盖作。

FORMATOP_CAPTURE (0x080000000L)

如果设置了 D3DDDI_RESOURCEFLAGS2 结构的 VideoEncoder 成员,则可以将此格式的图面用作捕获缓冲区。

从 Windows 8 开始支持。

FORMATOP_VIDEO_ENCODER (0x100000000L)

如果设置了 D3DDDI_RESOURCEFLAGS2 结构的 VideoEncoder 成员,则可以将此格式的图面用作视频编码器输入资源。

从 Windows 8 开始支持。

FORMATOP_MULTIPLANE_OVERLAY (0x200000000L)

此格式的图面支持多平面覆盖。

从 Windows 8 开始支持。

[out] FlipMsTypes

用于全屏多重采样的 32 位掩码。

[out] BltMsTypes

用于窗口化多个采样的 32 位掩码。

[out] PrivateFormatBitCount

驱动程序专用的像素格式(即,不是由 D3DDDIFORMAT 枚举类型定义的标准像素格式之一)的像素格式的每像素位数。

要求

要求 价值
最低支持的客户端 在 Windows Vista 和更高版本的 Windows作系统中可用。
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

D3DDDIFORMAT

D3DDDI_RESOURCEFLAGS2

GetCaps