I haven't tried it, but my understanding is that D3DImage is based on D3D 9, while Direct2D is based on D3D 10.1, so while it's perhaps possible, I'm not sure it's straightforward. I'd like to see a code sample before digging in. Also, the Windows API
Codepack is only Vista / Win7, not XP, so I'd have to use something other than D2D on XP.
Sorry, I don't think I was specific enough. If there was a "D2DImage" ImageSource object in WPF4, that would work really well for now. We could directly render all of our unmanaged objects into the WPF container without creating any corresponding WPF objects
that have the architectural overhead you mention. We wouldn't have to deal with WPF air-space issues. And we would have support on XP, Vista, and Win7 (assuming that "D2DImage" includes Direct2D software rendering on XP).
Ultimately, though, they need to improve WPF's architecture to make it a more efficient retained-mode graphics system that can scale with large numbers of objects. I hope that's high on the priority list. In the meantime, improved interop with Direct2D
would be very helpful.
So, if DirectWrite got embedded into WPF4, how about Direct2D? You're halfway there! My biggest beef with WPF performance is that it doesn't scale well with lots of 2D graphics objects (i.e., > 1000). It's possible to use light-weight objects like
StreamGeometries to make things a little better, and there are a few other hidden tricks we're finding. I'd like to try a Direct2D surface on a D3DImage in WPF4 (apparently there's a code sample for this being worked on somewhere), but ideally, WPF4 would
just scale nicely with lots of objects!