Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Combined Review
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)
Over the last few months, I have been reading up on computer graphics for a project due to start in the new year. The first couple of books that Francis sent me to look at were way above me, and I had to return them with the confession that they were well over my head! I guess they were probably meant for intermediate level university maths students, not a working programmer...

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!


Other Authors with the same surname

Adams
!%@:: A Directory of Electronic Mail by Adams & Frey  (Reviewed Jan 1994)
C++: An Introduction to Computing by Adams [Recommended]  (Reviewed Jul 1995)
High Performance CAD Graphics in C by Lee Adams  (Reviewed Mar 1992)
Supercharged C++ Graphics by Lee Adams  (Reviewed Sep 1992)
Visualization Graphics in C by Lee Adams [Recommended]  (Reviewed May 1992)
Windows Visualisation Programming with C/C++ by Adams  (Reviewed Sep 1994)
Writing DOS Device Drivers in C by Phillip M Adams & Clovis L Tondo  (Reviewed Nov 1991)

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)


Last Update - 13 May 2001.

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.

Mirrored from http://www.accu.org/