3 hours ago, jlandersadam@hotmail.com said:
ive worked with it learn c++ and java ive had worked with directx before it can be a little tricky the libraries have to be in a certain order
Ok Well first off I'll point you here:
https://www.3dgep.com/introduction-to-directx-11/
It's very basic but at least it compiles and runs with the latest Visual Studio and it's also up to date.
Second I should warn you that Microsoft made a bunch of changes to Direct X and so a lot of the stuff in old DX11 programming books is out of date and won't compile or run without going through a couple hoops. However since you said UWP you probably want to use the new stuff anyway. You can read something about the changes to Direct X here.
https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/
Frank Luna's books used to be excellent. Unfortunately his DX11 book is now out of date like the rest. It might be worth picking it up anyway and using it in conjunction with other sources. That's what I'm doing (mainly because I already had the book) but I'll say it's a bit iffy. Unfortunately I can't find a really good up to date Direct X11 book. I'm not sure one exists.
As for C++ the main difference you will have to deal with is the lack of a garbage collector, so you need to understand memory management. I strongly recommend using smart pointers (i.e. reference counting). That being said you shouldn't use them willy nilly. I tend to only use them where an object references another in a manner that implies ownership. In functions I typically just expand things to normal pointers to avoid the overhead. Also if you have something like a back pointer, say a child object that points back to a parent, you typically want to use a straight pointer for that too, otherwise you get a nasty loop. It's kind of a zen thing you have to get used to. The standard library gives your smart pointers in the form of the std::shared_ptr template and the like. You can read about it here
https://msdn.microsoft.com/en-us/library/hh279674.aspx
I typically roll my own by having a smart object base class with a reference count in it, but people tend to yell at you a lot for not using the standard library. Do what works for you.
The other thing about memory allocation is that when you get more advanced you tend to build your own allocators. Of course new and delete work fine, but for performance reasons people often build slab allocators and stuff like that. I literally have a memory allocation library that I've built up over the years with all sorts of allocators. You can read about "placement new" if you are curious. The name is a bit deceptive. It's just a facility that lets you implement custom heaps.
Well I guess that's it for now. If you have any other questions I'll try and see if I can answer them.
3 hours ago, fleabay said:
Your inability to come to a logical conclusion precludes you from obtaining your goal.
Dude, What does that even mean? LOL!