Current Development Release: --- |
|
Hermes is a library that does the dirty work of a graphics library or application that nobody else wants to do, and it does it fast because the effort is concentrated on just that. The thing nobody wants to do is conversion between pixel formats - between all pixel formats that is, not between any two. There are handwritten assembler routines in Hermes that should make anything look fast. An application or library that uses Hermes will for example be able to render into one buffer and convert it to whatever pixel format is available on the target platform at the time. Other services provided by Hermes include palette handling including caching of lookup tables, and surface clearing to a specific colour value. Hermes is free software (speech, not beer! :) under the
terms of the GNU Library General Public
License (LGPL).
There are three things Hermes will do for you:
On x86 or MMX CPUs, Hermes will also accomplish this task using handwritten assembler routines, depending on the processor it is autodetecting. Although in many areas it is futile to try to outperform a compiler using handwritten routines, on CISC CPUs like Intel's and specific tasks like shift-and-add colour conversion, handwritten routines are still ahead by sometimes up to 30%. As for platforms, Hermes does not include any system calls at all apart from stdio things, therefore, when assembler routines are left out, it should compile with any ANSI C compiler. Hermes is known to work on the following:
Hermes is intended for use in graphics libraries or directly in graphics programs. In the beginning the goal was to provide the fastest possible routines for the purpose Hermes was designed for, thus the target were fast graphics libraries for games and the sort. However, lately more and more choice for high-quality rendering is being built in so things like photorealistic rendering software might profit from the speed of Hermes in the very near future. The library is straight-forward to use. There are about 8 functions
you will need to know about for a simple application and probably
twice as many for a more complicated one. It should take about 10 minutes
to build Hermes into your code.
|