DD_MORESURFACECAPS 结构 (ddrawint.h)
除了 DDCORECAPS 中所述的功能外,DD_MORESURFACECAPS 结构还定义了更多驱动程序表面功能。
语法
typedef struct _DD_MORESURFACECAPS {
DWORD dwSize;
DDSCAPSEX ddsCapsMore;
struct {
DDSCAPSEX ddsCapsEx;
DDSCAPSEX ddsCapsExAlt;
} tagNTExtendedHeapRestrictions;
tagNTExtendedHeapRestrictions ddsExtendedHeapRestrictions[1];
} *PDD_MORESURFACECAPS, DD_MORESURFACECAPS;
成员
dwSize
指定此DD_MORESURFACECAPS结构的大小。 DD_MORESURFACECAPS结构的大小可变。 在此结构的数组成员中,ddsExtendedHeapRestrictions 结构的DD_HALINFO.vmiData.dwNumHeaps 副本应恰好存在。 因此,DD_MORESURFACECAPS结构的总大小为:
dwSize =
sizeof(DD_MORESURFACECAPS) +
(DD_HALINFO.vmiData.dwNumHeaps - 1) * sizeof(DDSCAPSEX) * 2
此计算考虑到DD_MORESURFACECAPS结构的最小大小,该结构仅包含一个 ddsExtendedHeapRestrictions 数组元素。 必须通过添加剩余数组元素的大小来考虑任何其他 ddsExtendedHeapRestrictions 数组元素。 也就是说,通过添加剩余 ddsExtendedHeapRestrictions 结构数乘以每个结构大小的乘积。
ddsCapsMore
指定一个 DDSCAPSEX 结构,该结构为 ddcaps.ddsCaps 提供扩展,用于描述驱动程序可以创建的扩展图面的类型。 将 DDCAPS 结构返回到应用程序时,它是由 DDCAPS.ddsCaps 和 DD_MORESURFACECAPS.ddsCaps 更多制造的 DDSCAPS2 结构。 DDSCAPSEX 结构与没有 dwCaps 成员的 DDSCAPS2 结构相同。
tagNTExtendedHeapRestrictions
tagNTExtendedHeapRestrictions.ddsCapsEx
tagNTExtendedHeapRestrictions.ddsCapsExAlt
ddsExtendedHeapRestrictions[1]
指定包含两个成员的结构。 这些成员由 Microsoft DirectX 6.0 感知驱动程序填充, (和驱动程序符合 DirectX) 的更高版本,以将公开给 Microsoft DirectDraw 的视频内存堆限制为特定DDSCAPS_Xxx 位集。 DirectDraw 版本是通过查看 ddrawi.h 中定义的 DDVERSIONINFO 来确定的。 DD_MORESURFACECAPS 结构的 ddsCapsEx 和 ddsCapsExAlt 成员与 DD_HALINFO.vmiData的 VIDMEMINFO.pvmList 成员中列出的 VIDEOMEMORY 结构的 ddsCaps 和 ddsCapsAlt 成员完全相同。
ddsCapsEx
指定一个 DDSCAPSEX 结构,驱动程序在其中返回不能使用此内存块的功能。
ddsCapsExAlt
指定一个 DDSCAPSEX 结构,驱动程序在其中返回当第一次传递上找不到其他内存时,此内存区块不能用于的功能。
备注
此结构包含添加到 DirectX 6.0 中的 DDCAPS.ddsCaps 结构的 caps 位。 有关 DDCAPS 结构的说明,请参阅 DirectDraw SDK 文档。
Microsoft Windows 98/Me 的说明: DD_MORESURFACECAPS是 Windows 2000 及更高版本的定义。 在 Windows 98/Me 上运行的驱动程序使用名称 DDMORESURFACECAPS,该名称在 dx95type.h 中别名。
要求
标头 | ddrawint.h (包括 Winddi.h) |