所以,我正在使用带有“板载”Windows SDK 8 的 Visual Studio 2012,编写 Direct3D11 应用程序,但我遇到了一个大问题。我有一个类可以处理 D3D11 之上的所有初始化、设置和绘制调用。我用它需要知道的所有数据正确地实例化了包含 D3D11 驱动程序类实例的应用程序类。
D3D11 驱动程序类构造函数获取应用程序的主窗口句柄并使用它将 D3D 挂钩到应用程序的主窗口。它正确地构建自己并返回app->run()
驱动主循环的调用位置。
在主循环中,调用该驱动程序来简单地测试绘制一个带红色的空白屏幕。观察调试信息,有问题的渲染目标是可操作的,创建是为了将交换链中的后备缓冲区绑定到管道。
renderTargetView
不为空。HRESULT 被验证为 S_OK。
如果我尝试在 D3D11 驱动程序类构造函数中调用 Draw 函数,它可以工作。它不会在调用之间被释放。
就像 Application 类的构造函数在 run() 函数之前没有完成一样,如果我尝试继续而不退出几个“帧”向前,则清除的渲染目标会显示为红色。有人可以启发我吗?我已经走投无路了。
它不为空。HRESULT 被验证为 S_OK。有报道称这已在 Windows 8 中得到修复,而 Win7 SDK 仍然受到影响。谷歌没有产生任何有用的东西,大多数人忘记为 OMGetRenderTargets 创建渲染目标视图(保持 NULL)或智能感知错过 OMSetRenderTargets。