WPF host DX9 的surface通过d3dimage,wpf unleashed 这本书里有提到。
但是DX10,DX11之类的就比较麻烦,因为Dx10之后的surface与dx9的不一样。
目前所知有如下解决方案:
1.完全将dx11做一个c# wrapper。请搜索 Windows API Code Pack 1.1
2.参考kinect的一个wpf d3d demo。装上kinecct 的sdk就可以。
3.将dx11的surface转成dx9的。
第三个方法的原始demo是dx10的,后面有链接。我把它改成dx11的,也有链接。
关于修改后dx11的说明:
1.原demo只要旋转起来就闪烁,不知什么原因。
2.作者给backbuffer备份了一个texture2d对象,不知道干什么用,我给它注释掉了也没事。
3.dx11没有d3dxmath了,用的是xnamath,我偷懒没修改。结果库里面就出现d3dx9.lib这个破烂。路径也是绝对路径,也得修改。。。。。。
http://download.csdn.net/detail/lhy_ps6/4798270
http://download.csdn.net/detail/lhy_ps6/4798279
吐槽一下:为了wp8买了神州精盾笔记本,预装win8,才发现是家庭版,不能用模拟器。上淘宝买了盗版的win8 pro,结果装不了。想升级正版,被微软中国告知248元的升级服务针对win7以前版本。有488元的win8升级链接但是不见了,告知微软现在还没决定怎么处理。实在没有办法(一直用盗版,我是真想支持一下windows正版)遂作出如下决定:再买一台8G内存linux笔记本,准备装盗版win8 pro。神州笔记本就不装盗版了,等待以后升级或者不升级真机调试。
psm的正式版终于放出!试一下看看是否还是不能真机调试。