Description:
Jay Link knows a lot about graphics programming in C, as well as about the Linux OS. He fuses his skills elegantly in Linux Graphics Programming with SVGAlib, a definitive document on using the low-level C graphics library known as SVGAlib. If you know C and have done a bit of programming in Linux, you're ready for what Link has to say in these pages. That is, you're ready if you have a lot of spare time, because Link's descriptions of his adventures in Linux graphics are sure to inspire you to spend a lot more time hacking away at your graphics code. It's that kind of book. Link clearly likes his subject and lets his personal explorations guide the organization of the manuscript. As you follow him through one "aha!" solution after another, you'll get inspired to work harder on your own imaginings. Typical sections show how to generate a Julia set, apply antialiasing to lines and shapes, perform color gradients, and simulate landscapes through fractal techniques. Link knows that he's not the authority on all aspects of Linux graphics programming, so he's not shy about crediting others for their development of special-purpose algorithms that generally are accepted as good practice. In a typical section, he'll explain a problem first (such as getting graphics to appear at startup time, à la Mac OS or Windows 98), and then the best solution he's located or developed himself. In some cases (as in the aforementioned graphics-at-startup scenario), he admits that there appears to be no SVGAlib solution, so he offers a workaround. Plenty of code listings pepper the pages of this book; they appear on the companion CD-ROM, too. --David Wall Topics covered: Linux graphics programming in C, with emphasis on the SVGAlib library of functions. All aspects of graphics programming get attention, including pixels, lines, shapes, colors, fonts, and image files. There's also protracted coverage of more specialized subjects, including raytracing, game graphics, interactions with mice and joysticks, and hardware issues. References to the Libvga and Libvgagl library functions conclude the book.
|