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 结构。 驱动程序必须将 dwCaps、dwLightingModel,并将该结构的 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) |