DXGK_PRESENTATIONCAPS 结构 (d3dkmddi.h)
DXGK_PRESENTATIONCAPS结构标识显示微型端口驱动程序的表示功能,驱动程序通过调用其 DxgkDdiQueryAdapterInfo 函数提供该驱动程序。
语法
typedef struct _DXGK_PRESENTATIONCAPS {
union {
struct {
UINT NoScreenToScreenBlt : 1;
UINT NoOverlapScreenBlt : 1;
UINT SupportKernelModeCommandBuffer : 1;
UINT NoSameBitmapAlphaBlend : 1;
UINT NoSameBitmapStretchBlt : 1;
UINT NoSameBitmapTransparentBlt : 1;
UINT NoSameBitmapOverlappedAlphaBlend : 1;
UINT NoSameBitmapOverlappedStretchBlt : 1;
UINT DriverSupportsCddDwmInterop : 1;
UINT Reserved0 : 1;
UINT AlignmentShift : 4;
UINT MaxTextureWidthShift : 3;
UINT MaxTextureHeightShift : 3;
UINT SupportAllBltRops : 1;
UINT SupportMirrorStretchBlt : 1;
UINT SupportMonoStretchBltModes : 1;
UINT StagingRectStartPitchAligned : 1;
UINT NoSameBitmapBitBlt : 1;
UINT NoSameBitmapOverlappedBitBlt : 1;
UINT Reserved1 : 1;
UINT NoTempSurfaceForClearTypeBlend : 1;
UINT SupportSoftwareDeviceBitmaps : 1;
UINT NoCacheCoherentApertureMemory : 1;
UINT SupportLinearHeap : 1;
#if ...
UINT Reserved : 1;
#else
UINT Reserved : 4;
#endif
};
UINT Value;
};
} DXGK_PRESENTATIONCAPS;
成员
[in] NoScreenToScreenBlt
一个 UINT 值,该值指定显示微型端口驱动程序是否可以执行位块传输 (bitblt) 从主图面到同一主图面。 如果设置了 NoScreenToScreenBlt ,则驱动程序无法执行屏幕到屏幕位块传输。 因此,microsoft DirectX 图形内核子系统 (Dxgkrnl.sys) 不会请求驱动程序执行此类位块传输。
设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。
[in] NoOverlapScreenBlt
一个 UINT 值,该值指定显示微型端口驱动程序是否可以执行重叠的位块传输。 如果设置了 NoOverlapScreenBlt ,则驱动程序无法执行重叠的位块传输。 因此,DirectX 图形内核子系统不会请求驱动程序执行此类位块传输。
设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。
SupportKernelModeCommandBuffer
[in]一个 UINT 值,该值指定显示微型端口驱动程序是否支持 GDI 硬件加速命令缓冲区处理。 如果设置了 SupportKernelModeCommandBuffer ,则当 DirectX 图形内核子系统调用显示微型端口驱动程序的 DxgkDdiRenderKm 函数时,驱动程序可以执行各种硬件加速位块传输 (bitblt) 和填充操作。
从 Windows 7 开始受支持。
[in] NoSameBitmapAlphaBlend
一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行 alpha 混合操作。 如果设置了 NoSameBitmapAlphaBlend ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。
从 Windows 7 开始受支持。
[in] NoSameBitmapStretchBlt
一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行拉伸位块传输操作。 如果设置了 NoSameBitmapStretchBlt ,驱动程序将无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员的第五位 (0x00000010) 。
从 Windows 7 开始受支持。
[in] NoSameBitmapTransparentBlt
一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行透明的位块传输操作。 如果设置了 NoSameBitmapStretchBlt ,驱动程序将无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。
从 Windows 7 开始受支持。
[in] NoSameBitmapOverlappedAlphaBlend
一个 UINT 值,该值指定当源和目标分配相同且源和目标矩形重叠时,显示微型端口驱动程序是否可以执行 alpha 混合操作。 如果设置了 NoSameBitmapOverlappedAlphaBlend ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。
从 Windows 7 开始受支持。
[in] NoSameBitmapOverlappedStretchBlt
一个 UINT 值,该值指定当源和目标分配相同且源和目标矩形重叠时,显示微型端口驱动程序是否可以执行拉伸位块传输操作。 如果设置了 NoSameBitmapOverlappedStretchBlt ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员 (0x00000080) 的 8 位。
从 Windows 7 开始受支持。
[in] DriverSupportsCddDwmInterop
一个 UINT 值,该值指定显示微型端口驱动程序是否支持规范显示驱动程序 (CDD) 为桌面 Windows 管理器 (DWM) 使用的用户模式驱动程序创建的纹理分配提供操作。 如果设置了 DriverSupportsCddDwmInterop ,则显示微型端口驱动程序支持此类当前操作。
如果显示微型端口驱动程序支持 GDI 硬件加速,则忽略 DriverSupportsCddDwmInterop 。 在这种情况下,驱动程序必须支持用户模式驱动程序创建的 DWM 纹理分配的当前 CDD 操作。
设置此成员等效于设置 32 位 Value 成员 (0x00000100) 的第 9 位。
从 Windows 7 开始受支持。
[in] Reserved0
此成员是保留成员,应设置为零。
设置此成员等效于设置 32 位 Value 成员 (0x00000200) 的第 10 位。
从 Windows 7 开始受支持。
[in] AlignmentShift
一个 UINT 值,该值指定DXGK_GDIARG_XXX结构的 XxxPitch 成员所需的最小对齐值(以字节为单位)。 AlignmentShift 作为二进制指数提供。 例如,若要将所需的对齐值指定为 16 字节,显示微型端口驱动程序应设置 AlignmentShift = 4。 最小值为 AlignmentShift = 2,指定 4 字节对齐方式。
设置此成员等效于设置 32 位 Value 成员 (0x00000400) 的第 11 位。
从 Windows 7 开始受支持。
[in] MaxTextureWidthShift
一个 UINT 值,该值指定显示微型端口驱动程序支持的最大纹理宽度,其计算方式如下:
最大支持的纹理宽度 = 2 ^ (MaxTextureWidthShift + 11) 纹素。
例如,如果 MaxTextureWidthShift = 0,则支持的最大纹理宽度为 2 ^ 11 = 2048。
设置此成员等效于设置 32 位 Value 成员 (0x00000800) 的第 12 位。
从 Windows 7 开始受支持。
[in] MaxTextureHeightShift
一个 UINT 值,该值指定显示微型端口驱动程序支持的最大纹理高度,其计算方式如下:
最大支持的纹理高度 = 2 ^ (MaxTextureHeightShift + 11) 纹素。
例如,如果 MaxTextureHeightShift = 0,则支持的最大纹理高度为 2 ^ 11 = 2048。
设置此成员等效于设置 32 位 Value 成员 (0x00001000) 的第 13 位。
从 Windows 7 开始受支持。
[in] SupportAllBltRops
一个 UINT 值,该值指定显示微型端口驱动程序是否支持在 BitBlt 和 ColorFill 命令中以纯色作为模式的所有 GDI ROP3 光栅操作。 如果设置了 SupportAllBltRops ,则驱动程序支持此类光栅操作。
设置此成员等效于设置 32 位 Value 成员 (0x00002000) 的第 14 位。
从 Windows 7 开始受支持。
[in] SupportMirrorStretchBlt
一个 UINT 值,该值指定显示微型端口驱动程序是否支持在镜像模式下使用DXGK_GDIARG_STRETCHBLT结构) (拉伸 Blt 操作。 如果设置了 SupportMirrorStretchBlt ,则驱动程序支持此类操作。
设置此成员等效于设置 32 位 Value 成员 (0x00004000) 的第 15 位。
从 Windows 7 开始受支持。
[in] SupportMonoStretchBltModes
一个 UINT 值,该值指定显示微型端口驱动程序是否支持在 BLACKONWHITE 或 WHITEONBLACK 单色呈现模式下使用 DXGK_GDIARG_STRETCHBLT 结构) (拉伸 Blt 操作。 如果设置了 SupportMonoStretchBltModes ,则驱动程序支持此类操作。
设置此成员等效于设置 32 位 Value 成员 (0x00008000) 的第 16 位。
从 Windows 7 开始受支持。
[in] StagingRectStartPitchAligned
一个 UINT 值,该值指定显示微型端口驱动程序是否要求 CPU 可见暂存图面上矩形中的起点 (左上角) 进行俯仰对齐,这意味着左侧坐标为 0。 如果设置了 AlignmentShift ,则矩形的左上角点与俯仰对齐。
设置此成员等效于设置 32 位 Value 成员 (0x00010000) 的第 17 位。
从 Windows 7 开始受支持。
[in] NoSameBitmapBitBlt
一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行位块传输操作。 如果设置了 NoSameBitmapBitBlt ,则驱动程序无法执行此类操作。 因此,DirectX 图形内核子系统不会请求驱动程序执行此类操作。
设置此成员等效于设置 32 位 Value 成员 (0x00020000) 的第 18 位。
从 Windows 7 开始受支持。
[in] NoSameBitmapOverlappedBitBlt
一个 UINT 值,该值指定当源和目标分配相同且源和目标矩形重叠时,显示微型端口驱动程序是否可以执行位块传输操作。 如果设置了 NoSameBitmapOverlappedBitBlt ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。
设置此成员等效于设置 32 位 Value 成员 (0x00040000) 的第 19 位。
从 Windows 7 开始受支持。
[in] Reserved1
此成员是保留成员,应设置为零。 将此成员设置为零等效于设置 32 位 Value 成员 (0x00080000) 的第 20 位。
从 Windows 7 开始受支持。
[in] NoTempSurfaceForClearTypeBlend
一个 UINT 值,该值指定驱动程序在处理由 DXGK_RENDERKM_COMMAND 结构的 ClearTypeBlend 成员指定的命令期间是否需要临时图面。 如果设置了 NoTempSurfaceForClearTypeBlend ,则驱动程序不需要临时图面。 在这种情况下,驱动程序将使用更少的视频内存。
将此成员设置为零等效于设置 32 位 Value 成员 (0x00100000) 的第 21 位。
从 Windows 7 开始受支持。
[in] SupportSoftwareDeviceBitmaps
此成员是保留成员,应设置为零。
设置此成员等效于设置 32 位 Value 成员 (0x00200000) 的 22 位。
从 Windows 8 开始支持。
[in] NoCacheCoherentApertureMemory
一个 UINT 值,该值指定驱动程序不支持缓存一致的光圈内存。
设置此成员等效于设置 32 位 Value 成员 (0x00400000) 的第 23 位。
从 Windows 8 开始支持。
[in] SupportLinearHeap
驱动程序支持从暂存图面进行线性堆分配。
设置此成员等效于设置 32 位 Value 成员 (0x00800000) 的第 24 位。
从 Windows 8 开始支持。
[in] Reserved
此成员是保留成员,应设置为零。
设置此成员等效于设置 32 位 Value 成员 (0x01000000) 的第 25 位。
从 Windows 8 开始支持。
[in]此成员是保留成员,应设置为零。
设置此成员等效于设置 32 位 Value 成员 (0x02000000) 的第 25 位。
从 Windows 8 开始支持。
Value
标识驱动程序的表示功能的 32 位值。
注解
显示微型端口驱动程序可以通过在 32 位 Value 成员中设置位或通过在DXGK_PRESENTATIONCAPS包含的联合中设置结构的各个成员来指定表示功能。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |