D3DDEVICEDESC_V1 结构 (d3dhal.h)
D3DDeviceDesc_V1 在 DirectX 8.0 及更高版本中已过时;请参阅备注。 此结构描述设备的 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
标识包含有效数据的此结构的成员。 此成员可以是以下任何值的按位或:
值 | 含义 |
---|---|
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
标识设备的功能。 此成员可以是以下任何值的按位或:
值 | 含义 |
---|---|
D3DDEVCAPS_CANBLTSYSTONONLOCAL | 设备支持从系统内存到子本地视频内存的 TexBlt。 |
D3DDEVCAPS_CANRENDERAFTERFLIP | 设备可以在翻页后对呈现命令进行排队。 设备必须在 Windows 2000 及更高版本上支持此功能,这意味着驱动程序将始终设置此标志。 |
D3DDEVCAPS_DRAWPRIMITIVES2 | 设备可以支持 D3dDrawPrimitives2 。 |
D3DDEVCAPS_DRAWPRIMITIVES2EX | 设备可以支持 Extended D3dDrawPrimitives2 ;即符合 DX7 的驱动程序。 |
D3DDEVCAPS_DRAWPRIMTLVERTEX | 设备可以绘制 TLVERTEX 基元。 此标志已过时,但必须由驱动程序设置。 |
D3DDEVCAPS_EXECUTESYSTEMMEMORY | 设备可以使用系统内存中的执行缓冲区。 驱动程序必须始终设置此位。 |
D3DDEVCAPS_EXECUTEVIDEOMEMORY | 设备可以使用显示内存中的执行缓冲区。 驱动程序绝不能设置此位。 |
D3DDEVCAPS_FLOATTLVERTEX | 设备接受后转换顶点数据的浮点。 此标志已过时,但必须由驱动程序设置。 |
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 及更高版本运行时的 DirectX 8.0 SDK 文档) ,但对于旧运行时 (DirectX 7.0 及更早版本) 兼容性是必需的。 有关详细信息 ,请参阅 Reporting DirectX 8.0 Style Direct3D Capabilities 。
驱动程序的 DrvGetDirectDrawInfo 函数在 DD_HALINFO 结构的 lpD3DGlobalDriverData 成员指向 的 D3DHAL_GLOBALDRIVERDATA 结构中返回此信息。
Direct3D 运行时基于D3DDEVICEDESC_V1结构中返回的信息以及通过驱动程序 (的 DdGetDriverInfo 函数查询的扩展功能,构造Microsoft Windows SDK文档中记录的应用程序级D3DDEVICEDESC7结构) 。 虽然某些 dwDevCaps 标志在驱动程序级别已过时,但驱动程序必须正确设置它们,以便应用程序正常工作。
要求
要求 | 值 |
---|---|
Header | d3dhal.h (包括 D3dhal.h) |