First off, I was disappointed when I got this book. It appeared to be another "basics of Direct3D" book... I thought. It actually sat in my truck for about 2 weeks before I read it. I was not interested in another how to create a Direct3D object, blah blah, but then, bored one night, I started reading.
This book added alot beyond a SDK-two-sentence explanation of Direct3D objects and made me realize how much I DIDN'T know about Direct3D. The author DID cover the basics in this book (no Win32 mind you), but what happened was, the "why" and more "what" were revealed to me in this text.
The "why this enumeration is this value" and the "reason for performing this class call", etc. Alot of the details that were overlooked before in other books (I've read many) were explained well in this book, giving me the additional information I needed to push completely past a "beginner" status.
All the examples I ran compiled, and all the examples were related well with the text in the book. This book is not a monster either. It's about 258 pages and smaller in size. The author does not try to teach you the WIN32 API, so that takes a big chunk out making this a quick read.
Normally, I try to give a balanced review about a book, the good AND the bad. No book is perfect, so I will say this book is NOT for advanced programmers unless you need a good reference, but for a beginner to intermediate programmer, this is a good nugget of knowledge. Very useful beyond 2D. He does exclude alot of D3DX making you write your versions of their functions which helps in the understanding, but makes it hard sometimes in finding the equivalent D3DX functions since I choose to use them. But in searching for D3DX functions in combination with reading this book, I've noticed that I understand alot of the parameters better when using the D3DX functions! Not bad..
Great book for the beginner to intermediate programmer, and a great reference for anyone after that.