How does Direct2D know the "best" size of texture to use for the current video card? In the future, if new cards are released that have improved performance charateristics with larger textures, how will Direct2D scale upwards?
Direct2D is a very policy free API. It creates a texture the same size as the bitmap that you ask it to create – there are no tricks done under the covers to try and glom textures together for you, or use multiple small bitmaps to make a big one. It is up to the developer to measure the performance with the bitmap sizes used.
So what' s the plan going forward? Is D2D going to be *the* 2D API, and GDI reduced to a legacy/backwards compatibility role? (please say yes). Or are the two going to live side by side, requiring you developers to switch between them depending on which task we need to do?
Short answer: Yes.
More detailed answer: There are no plans to remove GDI from the system, and there are many applications that will continue to use GDI because the cost to rewrite everything with D2D will be too high. The vision going forward is that D2D is *the* 2D API. We are very interested in any feedback that could tell us what is blocking this going forward.
Features such as ID2D1DCRenderTarget and ID2D1GdiInteropRenderTarget::GetDC were put into the system not as a signal that D2D is meant to always augment GDI, but to enable applications to be ported gradually from GDI to D2D.
By the way, how does the decision to use DX10.1 as a base impact D3D9 applications? Most apps still use that, after all. Will they be able to make use of D2D in any way?
There are two issues here. The first is hardware support – D3D10.1 ships with D3D10Level9 in Windows 7, and this allows D3D10.1 to utilize D3D9 hardware through D3D9 drivers, bypassing the D3D9 runtime entirely. This allows D2D and other applications to use the capabilities of D3D10.1 while still having reach with hardware.
The issue of using D2D to (for example) draw to D3D9 textures is something that is supported, but requires more code than using D3D10.1. This will be covered in more detail in future white papers and blog posts.
Going forward we anticipate that new applications will be written with D3D10.1 so that features like WARP can be taken advantage of.
Hi, where can I find information about when the final version of Direct2D/DirectWrite is being released? I need at least a time frame.
When will DirectX 11 be available for Vista? What is the redistributable vehicle for D3D11, D2D, DirectWrite and when will the RTM redistributable for Vista ship?
The final versions of all of the new DirectX APIs (including D2D, DirectWrite, WARP and D3D11) will ship first with Windows 7, and will be made available on Vista afterwards. We are still in the process of finalizing the dates and the logistics for downlevel - stay tuned to hear more from us. You can read more about our Windows 7 shipping plans here:
http://blogs.msdn.com/e7/archive/2009/05/11/OurNextEngineeringMilestone2.aspx