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.ddsCapsDD_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 结构的 ddsCapsExddsCapsExAlt 成员与 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)

另请参阅

DDCORECAPS

DDSCAPS2