Pup*_*ppy 1 directx-11 direct2d c++11
我叫这个方法:
http://msdn.microsoft.com/en-us/library/dd371264(VS.85).aspx
呼叫失败了E_NOINTERFACE
.文档对于为什么会发生这种情况特别无益.我启用了所有DirectX 11调试的东西,这是我得到的最好的.我知道我有一个有效的IDXGISurface1*
(也尝试过IDXGISurface
),其他参数设置正确.关于为什么这个电话会失败的任何想法?
编辑:
我也在创建D3D11设备时遇到问题.如果我将nullptr作为D3D11CreateDeviceAndSwapChain中的IDXGIAdapter*参数传递,它可以正常工作,但是如果我自己枚举适配器并传入一个指针(唯一返回的),它将失败并带有无效参数.MSDN文档明确说明如果传递nullptr,则系统使用EnumAdapters1的第一个返回.我正在运行DX11系统.
Direct2D仅在您创建Direct3D 10.1设备时有效,但它可以与Direct3D 11共享曲面.您只需要创建两个设备并将所有Direct2D内容渲染到您在它们之间共享的纹理.我在自己的应用程序中使用这种技术将Direct2D与Direct3D 11一起使用.它会产生很小的成本,但它每帧都很小且不变.
您需要使用的流程的基本概要是:
这不是微不足道的,但它运作良好,并且它是他们希望您在它们之间进行互操作的方式.Windows 8看起来会引入完整的D3D11兼容性,因此它会像您期望的那样简单.