Direct3D 图面句柄
Microsoft DirectX 7.0 设备驱动程序接口 (DDI) 旨在推广一种模型,即 Direct3D 运行时组件在将命令传递给驱动程序之前分析尽可能少的命令流。 此外,应设置命令流的格式,以便将来的硬件可以使用它。
针对这些目标的一个重要更改是将所有与图面相关的数据从 Direct3D/DirectDraw 运行时拥有的中间结构移动到驱动程序拥有、更新和格式化的结构中。
图面由命令流中嵌入的句柄引用。 在这些高频率操作中,驱动程序可以从手柄中查找其自己的图面表示形式,而无需通过 EngLockDirectDrawSurface 等帮助程序函数锁定图面。
分配这些句柄的机制是名为 D3dCreateSurfaceEx 的驱动程序入口点。 在调用现有 DdCanCreateSurface 和 DdCreateSurface 入口点之后,以及将视频内存地址和句柄分配给图面后,直接调用此入口点。 在 D3dCreateSurfaceEx 时间,驱动程序将所有相关信息从 DirectDraw 运行时的图面结构副本复制到其自己的图面结构中。 图面数据(如大小、格式和 fpVidMem )需要驱动程序端副本, (DD_SURFACE_GLOBAL 结构) 的成员。
运行时保证句柄对于每个设备和每个进程都是唯一的。 不保证每个上下文的句柄都是唯一的,这对 创建Driver-Side Surface 结构中更详细地讨论的驱动程序有一些影响。
没有相应的 DestroySurfaceEx 调用,因此驱动程序端表面结构会在 DdDestroySurface 时间销毁。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈