I'm trying to learn DirectX 11 and am writing a small application using Visual Studio 2013 for Windows 7. I'm following the book "Introduction to 3D Game Programming with DirectX 11" and so far everything's gone okay. I've just come up to the part of the book where it shows the BoxApp example and I'm just working through the code trying to implement something similar in my app just to get a better understanding of whats going on.
I've come across an issue with the following deprecated library functions used in the example code:
D3DX11CompileFromFile(....);
D3DX11CreateEffectFromMemory(...);
Firstly just to see if I understand why these are no longer available, my understanding as to why these functions no longer exist is that the D3DX header files and libraries have been deprecated for Windows 8. Originally they were helper libraries provided in the DirectX SDK for Dx9, and then provided by the Os for Dx10 before being deprecated for Dx11.1(2)?
Now my main question is how would I go about compiling shaders and effects without the deprecated D3DX headers? I'm just a bit confused about the correct way to go about this.
To me it seems there are two options:
- Download the helper libraries Effects11 which'll give similar previous functionality.
- Use the D3DCompiler library and compile effects manually.
Like I said I'm not quite sure which the best option would be (or even if there's a better alternative option(s)). My understanding is Effects11 was introduced more for support of older Dx10 that needed to be ported to Dx11. As I've not got any Dx10 code to port I'm not too fussed about that support, I'm not too fussed about Metro app support in Windows 8 (I think thats the right term for them?) either but if the D3DCompiler path would mean support for metro apps as well then I guess that'd be desirable.
Anyway, any advice or insight would be appreciated. Thanks in advance.