[Home Page] - [Reviews Main] | |
| Advanced Graphics on VGA and XGA Cards Using Borland C++ by Ian O. Angell & Dimitrios Tsoubelis |
| ISBN: 0-333-56765-X Publisher: MacMillan Pages: 380pp Price: £18-99. |
|
High Performance Graphics for Windows by Lee Adams Recommended |
| ISBN: 0-83063792-3 Publisher: McGraw-Hill Pages: 587pp Price: £28-50. |
| Windows Graphics Programming with Borland C++ by Loren Heiney |
| ISBN: 0-471-54891-X Publisher: Wiley Pages: 473pp Price: £26-95. |
| Categories: graphics borland |
| Reviewed by Alan Lenton in C Vu 5-3 (Mar 1993) |
For quite a time books available on graphics have been fairly esoteric, just dealing in algorithms, rather than the nitty gritty of how you actually program the stuff, but there is light at the end of the tunnel and more books written for programmers to learn the techniques of graphic programming are starting to make an appearance.
The three I am looking at in this review are in many ways typical. None are in any sense 'easy', but then graphics isn't really and easy topic. It requires a working knowledge (at the least) of matrices and vector algebra, and the further you want to go down the path the more you need to know. If, like me, you haven't had any experience of matrix algebra before, then make sure that the book you choose has at least an appendix on the subject.
Ian Angell and Dimitrios Tsoubelis's Advanced Graphics for VGA and XGA Cards using Borland C++ is a bit like a curate's egg - good in parts. It also provides perfect evidence for my advice to programmers coming new to 'C' and 'C++' - never try to learn programming style from examples in a book about anything other than 'C' and 'C++'.
The graphics teaching in this book is good. It is methodical, systematic and leads you through the concepts and techniques at what was for me the right speed. The programming was horrendous. The programs are incremental, in the sense that each program is built on preceding ones so that you don't have to keep typing in the code every time. An excellent concept, but gravely mismanaged by the authors.
The problems start with the choice of graphics cards - VGA (perfectly OK) and XGA (more a twinkle in IBM's eye than reality). Borland has a perfectly adequate graphics library - but there are no drivers for XGA, so the authors opt to provide their own assembler drivers for both VGA and XGA. Unfortunately they don't include font support in the drivers, so all their programs have to flip to a text mode when you want to output text. As an exercise I implemented the VGA driver using Borland BGI graphics without any problem.
Even more problematical is their decision to include main() in one of the library files! Add to this what seems like a lack of familiarity with object-oriented programming and you have the potential for some pretty dire code!
Read this book for its useful graphics info - avoid the code like the plague.
Loren Heiny takes an entirely different track in Windows Graphics Programming with Borland C++ . Windows programs are notoriously complex. Partly this springs from the nature of event-driven programming, partly it flows from the choices made by Microsoft in writing the system. This book attempts to cut through all this complexity and attendant clutter by using Borland's ObjectWindows class library.
This certainly simplifies the programs and enables them to concentrate on the central theme of the book, but means that it is only suitable for those who have bought the full BC++ 3.0/3.1 and Application Frameworks. The material is all there, and perhaps presented more from a programmer's perspective than the previous book, but it doesn't go into the subject in quite the same depth. In particular the three dimensional material is packed into quite a short section right at the end.
On the other hand it does have a good section on presentation graphics, and covers building an object orientated paint package in some depth. If you are looking for material on either of these topics, the book would be worth considering.
Finally I want to look at Lee Adams' High Performance C Graphics Programming for Windows. This is a hefty hardback tome with lots of code listed. I was a bit put off at first by all the code, but after a while I found that it was indeed useful. The code is properly annotated and all of it is full programs with their associated header and resource files. It would be a bind to type it in, and I'm sure you can get a disk if you have a friend in the States, but that is not the point. The code is good enough for you to be able to pick out the fragments you need and use them in your own programs.
More to the point, this book is not just about graphics, it is about windows programming so that it also discusses such matters as how to avoid having your animations hog the processor so that the user can't switch to a different application, and includes advice about writing an installation program.
I was very impressed by this book after I'd started to get into it. It is very thorough, for instance it has an excellent chapter on kinematic animation. It also has material on image processing - a topic usually only covered in more specialist books. Definitely worth considering for your library!
Angell
Elements of E-mail Style, The by David Angell & Brent Heslop (Reviewed Sep 1994)
High-Resolution Computer Graphics Using C by Ian O. Angell (Reviewed Jan 1991)
Instant Internet Guide, The by David Angell & Brent Heslop (Reviewed Sep 1994)
Word 97 Bible by David Angell & Brent Hislop (Reviewed May 1997)
Word for Windows 6 Handbook by David Angell & Brent Heslop (Reviewed Sep 1994)
Heiney
Power Graphics Using Turbo C++ (2nd ed) by Loren Heiney (Reviewed Sep 1994)
Power Graphics Using Turbo C++ by Loren Heiney & Keith Weiskamp (Reviewed May 1991)
Windows Graphics Programming with Borland C++ by Loren Heiney [Not Recommended] (Reviewed Jul 1992)
Windows Graphics Programming with Borland C++ by Loren Heiney [Recommended] (Reviewed Nov 1992)
To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/a/a000147.htm
Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.