david_gallagher at June 14th, 2012 20:15 — #1
i just saw the "Note The D3DX (D3DX 9, D3DX 10, and D3DX 11) utility library is deprecated for Windows 8 Release Preview and is not supported for Metro style apps." in the D3DX 11 Reference and am a little concerned and confused.
What does this mean?
Does it mean if I use D3DX functions in my engine my game just won't run on windows8 and higher? does it mean my past games that use these function won't run either. If i update dx on my current system (vista) when a later version of dx11 is released or greater will that cause a problem? I hope this doesn't mean i have to make my own math and texture loading library, man i really don't need the extra workload if this is the case.
anyway really just want to know how this effects someone makeing a pc (not interested in mobile devices) only engine for thier game for windows and what i'll have to do differently. thanks.
reedbeta at June 14th, 2012 20:26 — #2
I don't know the specifics of this case, but typically "deprecated" does *not* mean that the library will be altogether removed and games/engines that require it will crash. It's more of a gentle suggestion that you shouldn't use this library anymore for new projects (presumably there's something else you're supposed to use instead). DirectDraw, for instance, has been deprecated for years yet DirectDraw apps still work, AFAIK.
In any case, it seems it would be easy enough to install the D3DX .dll alongside your app when you install it. Microsoft allows these .dlls to be redistributed with your project. In fact, that might be just what "deprecated" means in this case - that you have to install it yourself rather than relying on it to be on the user's system already.
david_gallagher at June 14th, 2012 20:35 — #3
Thanks Reedbeta will keep that in mind and hope that is the case, It does make sense what you say, it just shocked me to see this and i was curious i had missed something vital for future development.
alphadog at June 15th, 2012 09:44 — #4
i just saw the "Note The D3DX (D3DX 9, D3DX 10, and D3DX 11) utility library is deprecated for Windows 8 Release Preview and is not supported for Metro style apps." in the D3DX 11 Reference and am a little concerned and confused. What does this mean?
Deprecated generally means you should not use it if at all possible. It means the vendor is starting the legwork to get dependecies dropped so that the entire system can be dropped. Usually, this is because there is a "better" replacement, but not always. In this case, Microsoft is alerting you to the fact that this utility library will not work in the WinRT/Metro app stack.
As far as Win8/Metro, Microsoft is embarking on a diversification (and/or yet another migration) of the development ecosystem. They do it often, mostly to support a continued reason for endless certification as a revenue stream, but in this case it has a basis in technology too.
Windows has always been stuck in a symbiotic relationship with Intel, but with the growing success of ARM, they realize they have to start being able to support very different hardware or risk die off. So, they built a new version of Win32, called WinRT. Win32 and WinRT are both ABIs. But, instead of beating devs into WinRT, they are making it alluring. Lots of Metro libraries, lots of new tools and "stuff", and the Metro store, will operate solely through your involvement of WinRT, not Win32, in your application. Also, for selfish reasons, WinRT has an API focus on allowing Microsoft to strictly and quickly review your app for store placement. There's lots you can't do through the WinRT API as it currently stands. You can write a WinRT disk formatter, for example, and especially not sell it on the Metro Store.
I suspect that eventually WinRT grows to replace Win32, but this will take a long time. Win32 is "too big too fail" quickly; it must be nursed into oblivion very carefully and very slowly.
david_gallagher at June 15th, 2012 18:12 — #5
Thanks very much alphadog for expanding on this, I guess i have been in been buried in my hole a little too long and totally missed hearing about winRT, hopefully I'll have a few more cycles with win32 before being a must change situation. I think I will continue to use D3DX at least for now and down the line if it becomes absolutley neccessary to ditch it, i guess i'll have no choice. Thanks for the insight into things to keep an eye on for the future.