PFND3DDDI_BLT回调函数 (d3dumddi.h)
Blt 函数将源图面的内容复制到目标图面。
语法
PFND3DDDI_BLT Pfnd3dddiBlt;
HRESULT Pfnd3dddiBlt(
HANDLE hDevice,
const D3DDDIARG_BLT *unnamedParam2
)
{...}
参数
hDevice
显示设备的句柄(图形上下文)。
unnamedParam2
pData [in]
指向描述位块传输(bitblt)参数的 D3DDDIARG_BLT 结构的指针。
返回值
Blt 返回以下值之一:
返回代码 | 说明 |
---|---|
S_OK | 已成功执行资源的 bitblt。 |
E_OUTOFMEMORY | Blt 无法为其分配所需的内存才能完成。 |
言论
Microsoft Direct3D 运行时调用用户模式显示驱动程序 Blt 函数,将源图面的内容复制到目标图面。 将图面引用映射到分配引用后,用户模式显示驱动程序应发出相应的硬件命令。 如果源或目标分配位于系统内存中,则如果未完成的硬件命令流包含对系统内存分配的引用,则可能需要用户模式显示驱动程序同步(即调用 pfnRenderCb 函数)。 如果源分配和目标分配都位于系统内存中,驱动程序应根据需要同步,但不应复制源图面的内容。 Direct3D 运行时在调用 pfnRenderCb 返回后复制内容。
用户模式显示驱动程序必须处理复制作期间可能发生的以下条件:
- 目标图面和源图面是同一资源的一部分(即 hSrcResource,hDstResourceD3DDDIARG_BLT 指定同一资源的句柄)。
- 源矩形和目标矩形重叠(即 SrcRect 中的 RECT 结构的坐标,以及 D3DDDIARG_BLT 重叠的 DstRect 成员)。
用户模式显示驱动程序必须仅支持使用在 Microsoft DirectX 8.0 之前引入的格式进行着色键。 对于 DirectX 8.0 及更高版本中引入的格式,不需要配色键支持。
要执行的 bitblt 类型通过 标志D3DDDIARG_BLT成员中指定的位字段标志指示。 视频内存到视频内存位可以包括颜色键、拉伸、镜像和线性到 sRGB 格式转换。 系统内存到视频内存位可以包括拉伸和线性到 sRGB 格式转换;但是,这些类型的比特永远不会包括镜像或颜色键。 系统内存位的所有视频内存和系统内存到系统内存位的直接副本:也就是说,这些类型的比特永远不会包括拉伸、镜像、颜色键或线性到 sRGB 格式转换。 有关 sRGB 格式的详细信息,请参阅 sRGB 网站。
有关转换深度模具值时 Blt 函数必须遵循的规则的详细信息,请参阅 复制 Depth-Stencil 值。
Direct3D 运行时可以调用用户模式显示驱动程序的 Blt 函数,将任何源图面类型(如屏幕外纯类型、呈现目标类型或纹理类型)的内容复制到任何其他目标图面类型。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |