DirectX development in Visual Studio 2012
#1 Members - Reputation: 296
Posted 08 October 2012 - 04:54 AM
Whilst its true that apps developed with Visual Studio 2010 and the DirectX SDK from June 2010 will work fine on Windows 8 Desktop mode, from what I can see now that DirextX is part of the Windows SDK and included with Visual Studio 2012 it appears that you cannot develop Windows 7\Windows 8 Desktop apps that use D3DX\Effects using Visual Studio 2012. Is this correct, as I've not seen that mentioned anywhere before?
I suspect you can do a bit of hacking to get Visual Studio 2012 to use the June 2010 version of the DriectX SDK, but I'd imagine you could get into a right mess doing that.
Ultimately what I want to do is to continue developing my Windows 7 game but using the latest and greatest version of the Visual Studio... is this possible?
Thanks
Ben
#2 Members - Reputation: 2043
Posted 08 October 2012 - 05:17 AM
All math-related systems from D3DX have been moved to a new library called DirectXMath, so that's a possible alternative if you have been using the D3DX math functions.
If you really want to use the latest windows SDK and VS2012 to develop your game you'll probably have to write your own alternatives to the D3DX functions you're depending on, which shouldn't be all too hard I believe.
Writing an alternative to Effects11 can be somewhat trickier, but it can also be a good learning experience as it'll actually encourage you to think more about what you need in a shader system and how your shaders should be organized. A good place to start with writing your own alternative to the Effects11 library would be the shader reflection system provided by D3D11.
#3 Members - Reputation: 296
Posted 08 October 2012 - 06:06 AM
To be honest, I'm not a fan of the Effects framework either, however the code that I used as the starting point for my project used it and now it'd be a bit of a pain to have to refactor that part of the code. Oh well, I guess its not too bad.
Thanks
Ben
#4 Members - Reputation: 304
Posted 08 October 2012 - 06:08 AM
You can find most of the info on the right-hand side of the main page of gamedev.net.
Moving from D3DXMath to DirectXMath might take a bit of time, since DirectXMath uses SIMD and needs to be handled in a certain way. There should be some threads on this somewhere on the forums though, and there are docs available explaining how to do the conversion.
Edited by Corvwyn, 08 October 2012 - 06:19 AM.
#5 Members - Reputation: 296
Posted 08 October 2012 - 06:52 AM
Ok, so I've decided to start making the move.
The first problem I've got is that XMCOLOR doesn't seem to exist in DirectXMath.h, even though the DirectXMath documentation says it does:
http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xmcolor(v=vs.85).aspx
What am I missing?
Thanks
Ben
#6 Members - Reputation: 3801
Posted 08 October 2012 - 07:17 AM
There's a second documentation bug on that MSDN page - the b/g/r/a values are uint8_t, not uint32_t.The correct header and namespace required for XMCOLOR is DirectXPackedVector.h and DirectX::PackedVector.
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.
#7 Members - Reputation: 296
Posted 08 October 2012 - 07:21 AM
It's at the bottom of the page you linked:
There's a second documentation bug on that MSDN page - the b/g/r/a values are uint8_t, not uint32_t.The correct header and namespace required for XMCOLOR is DirectXPackedVector.h and DirectX::PackedVector.
Excellent thanks. I obviously missed the Community Additions section at the bottom.
Thanks
Ben






