I’m developing WPF application that has a 3D view port where 3D scene is rendered using DX11. Now I’m hosting WinWorms control using WPF WindowsFormsHost to render into it, but for some reason I have to develop pure WPF control for DX11 rendering.
Found this http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/437/Direct3D-10-11-Direct2D-in-WPF.aspx article on how to share DX10 rendering surface with DX9 device, assign DX9 surface to D3DImage and display its content using WPF Image control.
I’ve tried the example from the link above, and it seems to work on video cards NVIDIA Quadro 2000/200M, but it doesn’t work on NVIDIA Quadro K4000M/K2100M/K2000 and Intel HD Graphics 4400.
Tried to turn on Debug version of DX9/10/11, set maximum validation level, but no errors/warnings were displayed. I have updated video driver to the same latest version on both groups of video cards - still the same problem - empty white client area instead of rotating DX logo.
Further investigation showed that on “bad” video cards D3DImage.IsFrontBufferAvailableChanged event gets fired once after program has started, notifying that device has been lost (even though I didn’t log off or switch the user), and never gets called again. On “good” video cards it never gets called and everything works okay.
Does anyone have an idea what’s going wrong here?
Please give possible solution on that.
Thank you in advance,