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 结构。 驱动程序必须将该结构的 dwCapsdwLightingModeldwNumLights 成员设置为零。

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)

另请参阅

D3DHAL_GLOBALDRIVERDATA

D3DLIGHTINGCAPS

D3DPRIMCAPS

D3dDrawPrimitives2

DD_HALINFO

DdGetDriverInfo**

DrvGetDirectDrawInfo