Documentation for gpucalc library.

0.9.1

Todo:
Write as much documentation as possible.
Todo:
Create classes for parsing input args for our library.
Todo:
Create profiling system.
Todo:
create correct CMakeLists.txt (we need to find packages glew, glut and Cg)
Todo:
Create "make install" rule
gpucalc is a library for computation using Graphical Processing Unit (GPU) and Central Processing Unit (CPU). The main concept is that GPU has many processors, which works independently. So if we have algorithm and data presented in special way we can compute this algorithm, sometimes much faster. Historically GPU are designed for computing graphic data: images, 3D scenes and so on, so we must create our algorithms to satisfy these methods of processing.

Some definitions

GPU side - means that data are located in GPU memory, so we cant obtain pointer to this data.

CPU side - means that data are located in operating memory, we have pointer to this data and can do with them almost anything.

See also TaskCreationHOWTO


Dependencies

These are the libraries and packages which the core of gpucalc depends on.


Plugins

GLGraphicCore
This plugin is OpenGL realization of abstract class GraphicCore, this plugin uses following libraries and packages:
GLEW - GL Extension Wrangler library, which allows to use OpenGL and all available extensions.
GLUT - GL Utility Toolkit library, which allows to create window and OpenGL context.

GLGLSLShaderSystem
This plugin is OpenGL GLSL realization of abstract class ShaderSystem, this plugin uses following libraries and packages:
GLEW
GLSL - as a part of OpenGL.

GLCgShaderSystem is OpenGL Cg realization of abstract class ShaderSystem, this plugin uses following libraries and packages:
Cg - nvidia Cg toolkit, allows to use Cg shading language.

Thanks

Special thanks to OGRE Rendering Engine, from this engine i have taken plugin system, logging system, exception, timer, singleton, platform independent code and many many other ideas.

Generated on Thu Mar 5 22:36:41 2009 for gpucalc by  doxygen 1.5.6