| DirectX9 User Interfaces: Design and Implementation (Wordware Game Developer's Library)
Publisher: Wordware Publishing, Inc. |
|
| ISBN: 1556222491 List Price: $44.95 Amazon Price: $29.67 Usually ships in 24 hours |
Avg Cusomer Rating: 2 Reviews: Summary: Originally very excited about the book Many other reviews covered this but I will briefly restate what others have said. PROS (not many) - Easy reading book. - Doesn't assume too much on the part of the reader. DirectX basics that are used was covered, etc. - I don't agree with all of the control messaging system but the author's coverage/design is not too bad. CONS - As stated before, code in book does not match code on CD. Code on CD has some compilation issues that upon investigation are fairly straight forward to fix. Fixing requires knowledge beyond the basics of programming. - The compiled executable examples, with very little happening on the screen, run very very poorly. I believe one of the basic issues with performance is with the overall design. That's a problem because then the book is pretty much useless. I suppose to be fair the writer might have been targeting a larger audience and not just gamers. WM_PAINT posted messages are done. That's slow. No respecting game engine will post paint messages, they will gain full control over rendering the window or full screen and "talk" directly to the Direct 3D device interface. - (This one is personal) I do not like the coding style. Also, anytime a C++ programmer use "this->" the "this" pointer within the object itself doesn't fully understand that you don't need to fully qualify the pointer. <sigh> If you're looking for decent code with somewhat decent comments then save yourself some money and just download the DirectX SDK. In it, you will get many examples of UI things. Microsoft created a CustomUI application which runs very, very fast and handles GUI things very similarly to this book. But Microsoft's runs much faster. The problem with that is you won't find a very detailed writeup on "why" things are done the way they are. At least I haven't found it. Summary: Delivers what it promises I see from prior reviews of this book that there are very mixed opinions regarding it. Its focus is quite narrow: it is only concerned with graphical user interfaces driven by DX9. As such it has no interest in the 3D capabilities of Direct3D, some interest in DirectInput and DirectShow but no real interest in the other DirectX APIs. A late beginner/early intermediate knowledge of C++ is assumed. An approach is taken of writing wrapper classes for the various DirectX APIs/interfaces and the book is worth purchasing just for its explanation of this methadology. The CD contains projects made in MS VC++ 6.0, but the ones I tried readily ran in MS VC++.NET (the DX SDK must first be installed). As has been alluded to by previous reviewers, there are some problems with the code in the book. One example is on page 101 where a class constructor calls itself, a very rudimentary mistake guaranteed to crash a program (by causing an infinite loop, assuming the compiler even compiles it). This error is however corrected in the code from the CD. A more general introduction to the 3D capabilities of DirectX may be found in Frank Luna's excellent book 'Introduction to 3D Game Programming with DirectX 9.0'. Thorn's book has a narrower focus, and covers the concepts of interface (graphical, not COM) quite well. It is a useful addition to my small DirectX library and I am pleased that I purchased it. The chapters are: 1. User interfaces 2. Introducing DirectX 3. Introducing Direct3D 4. Introducing DirectInput 5. Wrapping Direct3D 6. Abstracting DirectInput 7. Beginning CXControl 8. Continuing CXControl 9. Developing Windows 10. Labels and Buttons 11. Text Boxes and Check Boxes 12. Scrolling lists 13. Introducing DirectShow 14. Wrapping DirectShow 15. Building the Media Player Building a media player using a DX9 interface in the key project followed through the book. Summary: Dissapointing Being very favourable it could be called a code listing. But the code is incomplete, the naming of the variables and methods seem almost purposefully misleading and the actually logic in some of the code is just off. Avoid. Summary: |
| home |