PFND3D10DDI_CREATERESOURCE回调函数 (d3d10umddi.h)
创建资源。
语法
PFND3D10DDI_CREATERESOURCE Pfnd3d10ddiCreateresource;
void Pfnd3d10ddiCreateresource(
D3D10DDI_HDEVICE unnamedParam1,
const D3D10DDIARG_CREATERESOURCE *unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3,
D3D10DDI_HRTRESOURCE unnamedParam4
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄(图形上下文)。
unnamedParam2
pCreateResource [in]
指向 D3D10DDIARG_CREATERESOURCE 结构的指针,该结构描述用户模式显示驱动程序用于创建资源的参数。
unnamedParam3
hResource [in]
资源的驱动程序专用数据的句柄。
unnamedParam4
hRTResource [in]
驱动程序应在调用 Direct3D 运行时时使用的资源句柄。
返回值
没有
言论
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
驱动程序可能内存不足。 因此,驱动程序可以在调用 pfnSetErrorCb 函数时传递E_OUTOFMEMORY或D3DDDIERR_DEVICEREMOVED。 驱动程序还可以在调用 pfnSetErrorCb中传递DXGI_DDI_ERR_UNSUPPORTED。 有关传递DXGI_DDI_ERR_UNSUPPORTED的详细信息,请参阅 BltDXGI 参考页的“备注”部分。 Direct3D 运行时将确定任何其他错误都至关重要。 如果驱动程序通过任何错误(包括D3DDDIERR_DEVICEREMOVED),Direct3D 运行时将确定句柄无效;因此,运行时不会调用 DestroyResource(D3D10) 函数来销毁 hResource 参数指定的句柄。
运行时将针对应用程序发送到创建资源的参数验证所有参数。 因此,驱动程序不应收到无效的组合。
如果应用程序不需要资源的内容跨演示文稿保留,运行时将在 MiscFlagsD3D10DDIARG_CREATERESOURCE 结构 pCreateResource 参数指向的 D3D10DDIARG_CREATERESOURCE 结构中设置 D3D10_DDI_RESOURCE_MISC_FLAG 枚举的D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT标志。 当调用驱动程序的 PresentDXGI 或 BltDXGI(调用 DXGI_DDI_ARG_BLT_FLAGS 结构中设置 Present 标志)时,会发生演示。 当应用程序使用DXGI_SWAP_EFFECT_DISCARD值请求交换链时,运行时使用D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT标志来创建交换链后缓冲区。
创建立体声后退缓冲区
从 Windows 8 开始,如果驱动程序必须创建立体声后退缓冲区,它应设置由 pCreateResource 指向D3D10DDIARG_CREATERESOURCE 结构的成员,如下所示:- 将 ArraySize 成员设置为值 2。
- 在 BindFlags 成员中设置D3D10_DDI_BIND_PRESENT标志值。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |