D3DDEVICEDESC_V1结构(d3dhal.h)

在 DirectX 8.0 及更高版本中,D3DDeviceDesc_V1 已过时;请参阅“备注”。 此结构描述设备的 3D 功能。

语法

typedef struct _D3DDeviceDesc_V1 {
  DWORD            dwSize;
  DWORD            dwFlags;
  D3DCOLORMODEL    dcmColorModel;
  DWORD            dwDevCaps;
  D3DTRANSFORMCAPS dtcTransformCaps;
  BOOL             bClipping;
  D3DLIGHTINGCAPS  dlcLightingCaps;
  D3DPRIMCAPS      dpcLineCaps;
  D3DPRIMCAPS      dpcTriCaps;
  DWORD            dwDeviceRenderBitDepth;
  DWORD            dwDeviceZBufferBitDepth;
  DWORD            dwMaxBufferSize;
  DWORD            dwMaxVertexCount;
} D3DDEVICEDESC_V1, *LPD3DDEVICEDESC_V1;

成员

dwSize

指定此D3DDEVICEDESC_V1结构的大小(以字节为单位)。

dwFlags

标识包含有效数据的此结构的成员。 此成员可以是以下任一值的按位 OR:

含义
D3DDD_BCLIPPING bClipping 成员包含有效数据。
D3DDD_COLORMODEL dcmColorModel 成员包含有效数据。
D3DDD_DEVCAPS dwDevCaps 成员包含有效数据。
D3DDD_DEVICERENDERBITDEPTH dwDeviceRenderBitDepthmember 包含有效数据。
D3DDD_DEVICEZBUFFERBITDEPTH dwDeviceZBufferBitDepthmember 包含有效数据。
D3DDD_LIGHTINGCAPS dlcLightingCaps 成员包含有效数据。
D3DDD_LINECAPS dpcLineCaps 成员包含有效数据。
D3DDD_MAXBUFFERSIZE dwMaxBufferSize 成员包含有效数据。
D3DDD_MAXVERTEXCOUNT dwMaxVertexCount 成员包含有效数据。
D3DDD_TRANSFORMCAPS dtcTransformCaps 成员包含有效数据。
D3DDD_TRICAPS dpcTriCaps 成员包含有效数据。

dcmColorModel

指定设备的颜色模型。

dwDevCaps

标识设备的功能。 此成员可以是以下任一值的按位 OR:

含义
D3DDEVCAPS_CANBLTSYSTONONLOCAL 设备支持从系统内存到子位置视频内存的 TexBlt。
D3DDEVCAPS_CANRENDERAFTERFLIP 设备可以在页面翻转后对呈现命令进行排队。 设备必须在 Windows 2000 及更高版本上支持此功能,这意味着驱动程序将始终设置此标志。
D3DDEVCAPS_DRAWPRIMITIVES2 设备可以支持 D3dDrawPrimitives2
D3DDEVCAPS_DRAWPRIMITIVES2EX 设备可以支持扩展 D3dDrawPrimitives2;即符合 DX7 标准的驱动程序。
D3DDEVCAPS_DRAWPRIMTLVERTEX 设备可以绘制 TLVERTEX 基元。 此标志已过时,但必须由驱动程序设置。
D3DDEVCAPS_EXECUTESYSTEMMEMORY 设备可以使用系统内存中的执行缓冲区。 驱动程序必须始终设置此位。
D3DDEVCAPS_EXECUTEVIDEOMEMORY 设备可以使用显示内存中的执行缓冲区。 驱动程序绝不能设置此位。
D3DDEVCAPS_FLOATTLVERTEX 设备接受 posttransform 顶点数据的浮点。 此标志已过时,但必须由驱动程序设置。
D3DDEVCAPS_HWRASTERIZATION 设备具有用于光栅化的硬件加速。
D3DDEVCAPS_HWTRANSFORMANDLIGHT 设备可以支持硬件中的转换和照明。 还必须设置D3DDEVCAPS_DRAWPRIMITIVES2EX。
D3DDEVCAPS_SEPARATETEXTUREMEMORIES 设备正在从单独的内存池进行文本处理。 将此功能位设置为 DirectX 8.0 及更高版本的应用程序,这些应用程序在使用多个纹理的同时被禁用。
D3DDEVCAPS_SORTDECREASINGZ 设备需要对数据进行排序以降低深度。
D3DDEVCAPS_SORTEXACT 设备需要完全排序的数据。
D3DDEVCAPS_SORTINCREASINGZ 设备需要对数据进行排序,以便增加深度。
D3DDEVCAPS_TEXTURENONLOCALVIDEOMEMORY 设备可以从非局部视频内存中纹理。
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 设备可以使用系统内存中的缓冲区进行转换和点亮。 此标志已过时,但必须由驱动程序设置。
D3DDEVCAPS_TLVERTEXVIDEOMEMORY 设备可以使用显示内存中的缓冲区进行转换和点亮。 此标志已过时,不能由驱动程序设置。
D3DDEVCAPS_TEXTURESYSTEMMEMORY 设备可以从系统内存中检索纹理。
D3DDEVCAPS_TEXTUREVIDEOMEMORY 设备可以从设备内存中检索纹理。

dtcTransformCaps

指定指定设备的转换功能的D3DTRANSFORMCAPS结构。 驱动程序必须将该结构的 dwCaps 成员设置为零。

bClipping

如果设备可以执行 3D 剪辑,则由驱动程序设置为 TRUE。

dlcLightingCaps

指定设备的照明功能。 这是一个 D3DLIGHTINGCAPS 结构。 驱动程序必须将 dwCapsdwLightingModel,并将该结构的 dwNumLights 成员设置为零。

dpcLineCaps

指定一个 D3DPRIMCAPS 结构,该结构定义设备的线条基元的绘图功能。

dpcTriCaps

指定一个 D3DPRIMCAPS 结构,该结构定义设备用于三角形基元的绘图功能。

dwDeviceRenderBitDepth

指定设备的呈现位深度。 此成员可以是以下 DirectDraw 位深度常量的按位 OR:DDBD_8、DDBD_16、DDBD_24 或DDBD_32。

dwDeviceZBufferBitDepth

指定设备的 z 缓冲区位深度。 此成员可以是以下 DirectDraw 位深度常量的按位 OR:DDBD_8、DDBD_16、DDBD_24 或DDBD_32。

dwMaxBufferSize

必须设置为零。

dwMaxVertexCount

DirectX 7 及更高版本

DirectX 6

言论

此结构已替换为 D3DCAPS8(请参阅 DirectX 8.0 SDK 文档),了解 DirectX 8.0 及更高版本的运行时,但旧运行时(DirectX 7.0 及更早版本)兼容性是必需的。 有关详细信息,请参阅 报告 DirectX 8.0 样式 Direct3D 功能

驱动程序的 DrvGetDirectDrawInfo 函数返回 D3DHAL_GLOBALDRIVERDATA 结构中 lpD3DGlobalDriverDataDD_HALINFO 结构成员指向的信息。

Direct3D 运行时从D3DDEVICEDESC_V1结构中返回的信息以及通过驱动程序的 DdGetDriverInfo 函数查询的扩展功能构造应用程序级D3DDEVICEDESC7结构(Microsoft Windows SDK 文档中记录)。 虽然某些 dwDevCaps 标志在驱动程序级别已过时,但驱动程序必须适当地设置它们,以便应用程序正常工作。

要求

要求 价值
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

D3DHAL_GLOBALDRIVERDATA

D3DLIGHTINGCAPS

D3DPRIMCAPS

D3dDrawPrimitives2

DD_HALINFO

DdGetDriverInfo**

DrvGetDirectDrawInfo