GPUmesh is a set of header files: there is no need to compile it separately
Nowadays there exist multiple ways of sending geometry to GPUs: displays lists, vertex buffer objects, indexed primitives are some of them. This changes from Direct3D to OpenGL, and new ways of managing geometry appear as APIs evolve. It is difficult to determine which method is the best. This depends on numerous factors (mesh size, number of vertex attributes, and some unknown driver/hardware mechanisms). Moreover some ways of sending the geometry are slow but very convenient (e.g. the OpenGL function calls).
The purpose of GPUmesh is to provide developers with a simple mechanism to send geometry to the GPU. The user chooses which type of mesh storage is desired (display list, vertex buffer, indexed vertex buffer, ...) and GPUmesh automatically performs the required conversions. The chosen mechanism can be changed very easily by changing only one typedef. This makes performance test with various storage solutions very easy. Since the whole library is built upon templates, only the code corresponding to the chosen storage is generated. Their is no runtime overhead.
GPUmesh offers the same mesh specification mechanism under Direct3D and OpenGL, thus simplifying the task of writing mesh loaders. GPUmesh relies on a mechanism similar to the begin/end approach of standard OpenGL. This mechanism has proven to be easy to use and very convenient. Thanks to GPUmesh it now also produces efficient meshes. A complete vertex format specification mechanism is also provided to manage vertex attributes.
Many thanks to Stephane Guy for fruitful discussions about this library !
GPUmesh uses the Loki Library by Andrei Alexandrescu.
Use, distribute and modify freely ! As usual this software comes with no warranty.