window显示驱动开发—覆盖 DDI

覆盖 DDI 是 Direct3D 版本 9 DDI 的扩展,用于验证覆盖支持。 覆盖 DDI 由以下入口点组成:

  • Direct3D 运行时使用D3DDDICAPS_TYPE枚举中的 D3DDDICAPS_CHECKOVERLAYSUPPORT 值来验证显示设备是否支持特定的覆盖。 运行时在D3DDDIARG_GETCAPS结构的Type 成员中设置D3DDDICAPS_CHECKOVERLAYSUPPORT,当运行时调用 GetCaps 时,驱动程序的 GetCaps 函数的 pData 参数指向该成员。 运行时还将 D3DDDIARG_GETCAPS 的 pInfo 成员设置为指向描述覆盖的 DDICHECKOVERLAYSUPPORTINPUT 结构的指针。 如果驱动程序支持覆盖,则驱动程序设置 D3DOVERLAYCAPS 结构的成员,并在 D3DDDIARG_GETCAPS 的 pData 成员中返回指向此结构的指针。 否则,如果驱动程序不支持覆盖,驱动程序将无法调用其 GetCaps 函数,并D3DDDIERR_UNSUPPORTEDOVERLAYFORMAT或D3DDDIERR_UNSUPPORTEDOVERLAY,具体取决于缺少支持是否基于覆盖格式。 DirectX SDK 文档中介绍了 D3DOVERLAYCAPS。

驱动程序设置 D3DOVERLAYCAPS 的 MaxOverlayDisplayWidth 和 MaxOverlayDisplayHeight 成员,以指示驱动程序和硬件可能具有的任何限制,这些限制涉及在拉伸覆盖数据) 后的最终覆盖大小 (。

驱动程序在 D3DOVERLAYCAPS 的 Caps 成员中设置D3DOVERLAYCAPS_STRETCHX (0x00000040) 和D3DOVERLAYCAPS_STRETCHY (0x00000080) 功能位,以指示覆盖硬件能够任意拉伸和收缩覆盖数据。 驱动程序不应尝试模拟通过 GPU 的覆盖拉伸,并且只应在覆盖硬件支持拉伸时设置这些上限。 应用程序在视频处理和合成阶段执行 GPU 拉伸所需的开销通常比驱动程序在最末端执行单独的传递来模拟覆盖拉伸所需的开销更少。

  • 驱动程序应处理 来自 D3DDDI_OVERLAYINFOFLAGS 结构的以下新位字段标志。 D3DDDI_OVERLAYINFOFLAGS 结构标识要执行的覆盖操作的类型。 D3DDDI_OVERLAYINFOFLAGS 结构在调用驱动程序的 CreateOverlay 或 UpdateOverlay 函数时,在 D3DDDI_OVERLAYINFO 结构的 Flags 成员中指定。

LimitedRGB

覆盖是有限的范围 RGB,而不是全范围 RGB。 在有限范围 RGB 中,RGB 范围被压缩为 16:16:16 为黑色,235:235:235 为白色。

YCbCrBT709

覆盖层为 BT.709,表示高清电视 (HDTV) ,而不是 BT.601。

YCbCrxvYCC

覆盖是扩展的 YCbCr (xvYCC) ,而不是传统的 YCbCr。

  • 例如,当显示格式为 64 位而不是 32 位 (时,当桌面 Windows 管理器 (DWM) 将D3DFMT_A16B16G16R16F用于显示模式) 时,运行时将覆盖色键的下 32 位放置在 D3DDDI_OVERLAYINFO 结构的 DstColorKeyLow 成员中,并将高 32 位放置在 D3DDDI_OVERLAYINFO 的 DstColorKeyHigh 成员中。
相关推荐
广药门徒32 分钟前
Linux 驱动开发中,主设备号和次设备号不同的两个驱动能否正常工作
linux·运维·驱动开发
脑洞代码2 小时前
ADXL345 SPI加速度传感器Linux驱动开发笔记
linux·驱动开发·笔记
熙xi.20 小时前
DHT11温湿度传感器Linux驱动开发完整流程
linux·运维·驱动开发
RT-Thread物联网操作系统2 天前
RT-Thread Studio 正式支持GD32H7高性能系列MCU | 技术集结
驱动开发·单片机·嵌入式硬件
被遗忘的旋律.2 天前
Linux驱动开发笔记(十三)——platform设备驱动
linux·驱动开发·笔记
Y unes4 天前
《i.MX6ULL LED 驱动实战:内核模块开发与 GPIO 控制》
linux·c语言·驱动开发·vscode·ubuntu·嵌入式
闻道且行之4 天前
KickPi RK3568平台SPI内核驱动开发
驱动开发·rk3568·kernel·spi·kickpi
sukalot4 天前
windows显示驱动开发-缩放桌面图像(二)
windows·驱动开发
趙小贞4 天前
字符设备驱动开发流程与实战:以 LED 驱动为例
linux·c语言·驱动开发
DeeplyMind5 天前
AMD rocr-libhsakmt分析系列3-4:svm-reserve模式实现分析
linux·驱动开发·1024程序员节·amdgpu·kfd·rocr