gpucalc Namespace Reference

Main namespace in our library. More...


Classes

class  Application
 Represent application. More...
class  Bindable
 Abstract class for bindable objects, such as Shader, Texture, FrameBuffer. More...
class  Communicator
class  Data
 Class representing external (CPU-side) data. More...
class  Exception
 When thrown, provides information about an error that has occurred inside the library. More...
class  ExceptionFactory
 Class implementing dispatch methods in order to construct by-value exceptions of a derived type based just on an exception code. More...
class  FileNotFoundException
class  FrameBuffer
 FrameBuffer gives a mechanism to get rendered data from GPU side to CPU side. More...
class  GLCgShader
class  GLCgShaderSystem
class  GLCgShaderSystemPlugin
class  GLCgUniform
 Declaration of class GLCgUniform. More...
class  GLFrameBuffer
class  GLGLSLShader
class  GLGLSLShaderSystem
class  GLGLSLShaderSystemPlugin
class  GLGLSLUniform
class  GLGraphicCore
 Declaration of OpenGL GraphicCore. More...
class  GLGraphicCorePlugin
 This class represents Plugin for GLGraphicCore. More...
class  GLTexture
class  GPUResource
class  GraphicCore
 Abstract class representing graphical core. More...
class  InputArgParser
class  InputArguments
struct  Int2Type
 Template struct which creates a distinct type for each exception code. More...
class  InternalErrorException
class  InvalidParametersException
class  InvalidStateException
class  IOException
class  ItemIdentityException
class  Iterator
class  Kernel
 This class representing kernel - a computation unit. More...
class  Library
 This class represnt dynamically loaded libraries (DLLs). More...
class  Log
 Class provides writing information to log file and standart error output. More...
class  LogListener
 Pure abstract class, derive this class and register to the Log to listen to log messages. More...
class  LogManager
 This class provides logging. More...
class  Object
 Base class in our class ierarchy. More...
class  Plugin
 Plugin abstract class. More...
class  Profiler
class  RenderingAPIException
class  RuntimeAssertionException
class  Shader
 Class representing abstract shader - program for GPU. More...
class  ShaderSystem
 Class representing storage for our shader objects. More...
class  SharedPtr
class  SimpleTask
 Simple task. More...
class  SimpleTaskManager
class  Singleton
 Singleton class. More...
class  SourceCompilationException
class  Task
 Main class for our computation. More...
class  TaskManager
 This class is a storage for all tasks. More...
class  Texture
 This class represent data on GPU side. More...
class  Timer
 This class represent timer in Unix-like OSes. More...
class  Uniform
 Class, representing abstract uniform variable. More...
class  UnimplementedException
class  ValueNotDeletedException

Namespaces

namespace  _workaround
 Very dirty hack for win32 project.
namespace  auxillary
 Auxillary namespace in our library.
namespace  debugger

Typedefs

typedef void(* DLL_START_PLUGIN )()
typedef void(* DLL_STOP_PLUGIN )()
typedef std::vector< std::string > StringList
typedef std::map< std::string,
std::string > 
StringMap

Enumerations

enum  ArrayDataType { NOTArray = 0, Array1D = 1, Array2D, Array3D }
 Represent type of storage of our array data in GPU side. More...
enum  ElementDataType { NOTElement = 0, ElementNumber = 1 }
 Represent type of storage of our element data in GPU side. More...
enum  ExceptionCodes {
  ERR_CANNOT_WRITE_TO_FILE, ERR_INVALID_STATE, ERR_INVALIDPARAMS, ERR_RENDERINGAPI_ERROR,
  ERR_DUPLICATE_ITEM, ERR_ITEM_NOT_FOUND, ERR_FILE_NOT_FOUND, ERR_INTERNAL_ERROR,
  ERR_RT_ASSERTION_FAILED, ERR_SOURCE_COMPILATION_ERROR, ERR_VALUE_NOT_DELETED_ERROR, ERR_NOT_IMPLEMENTED
}
enum  LoggingLevel { LL_Low = 1, LL_Normal = 2, LL_Verbose = 3 }
 The level of detail to which the log will go into. More...
enum  LogMessageLevel { LML_Trivial = 1, LML_Normal = 2, LML_Critical = 3 }
 The importance of a logged message. More...
enum  TextureUsage { TU_Static = 0, TU_Render = 1 }
 This enumeration defines usage of Texture object. More...
enum  ValueType {
  NOTType = 0, FloatType = 1, DoubleType, IntType,
  UnsignedIntType, CharType, UnsignedCharType
}
 Type of element in our data. More...
enum  Vendor {
  DEFAULT = 0, NVIDIA = 1, MESA = 2, GDI = 3,
  ATI = 4
}
 Defines vendor of GPU. More...

Functions

template<typename T, typename Y>
bool addToContainer (const T &what, const Y &where, std::map< Y, T > &Container)
template<typename T>
bool addToContainer (const T &what, std::vector< T > &Container)
template<typename T>
bool addToContainer (const T &what, std::list< T > &Container)
void cgErrorCallBackFunction ()
template<typename T, typename Y>
void clearContainer (std::map< Y, T > &Container)
template<typename T>
void clearContainer (std::vector< T > &Container)
template<typename T>
void clearContainer (std::list< T > &Container)
void _GpuCalcGLCgExport dllStartPlugin () throw ()
void _GpuCalcGLCgExport dllStopPlugin ()
template<ExceptionCodes Value>
void Except (const Object &obj, const std::string &Description, const std::string &Source, const std::string &File, int Line)
template<ExceptionCodes Value>
void Except (const Object *obj, const std::string &Description, const std::string &Source, const std::string &File, int Line)
 Throw exception.
template<class T, class U>
bool operator!= (SharedPtr< T > const &a, SharedPtr< U > const &b)
template<class T, class U>
bool operator< (SharedPtr< T > const &a, SharedPtr< U > const &b)
template<class T, class U>
bool operator== (SharedPtr< T > const &a, SharedPtr< U > const &b)
template<typename T, typename Y>
bool removeFromContainer (const Y &where, std::map< Y, T > &Container)
template<typename T>
bool removeFromContainer (const T &what, std::vector< T > &Container)
template<typename T>
bool removeFromContainer (const T &what, std::list< T > &Container)
template<ExceptionCodes Value>
void Warning (const Object &obj, const std::string &Description, const std::string &Source, const std::string &File, int Line)
template<ExceptionCodes Value>
void Warning (const Object *obj, const std::string &Description, const std::string &Source, const std::string &File, int Line)

Variables

const char _ApplicationClassName [] = "Application"
const char _CommunicatorClassName [] = "Communicator"
const char _DataClassName [] = "Data"
const char _GLCgShaderClassName [] = "GLCgShader"
const char _GLCgShaderSystemObjectName [] = "GLCgShaderSystem"
const char _GLCgShaderSystemPluginObjectName [] = "GLCgShaderSystemPlugin"
const char _GLCgUniformClassName [] = "GLCgUniform"
const char _GLFrameBufferClassName [] = "GLFrameBuffer"
const char _GLGLSLShaderClassName [] = "GLGLSLShader"
const char _GLGLSLShaderSystemObjectName [] = "GLGLSLShaderSystem"
const char _GLGLSLShaderSystemPluginObjectName [] = "GLGLSLShaderSystemPlugin"
const char _GLGLSLUniformClassName [] = "GLGLSLUniform"
const char _GLGraphicCoreObjectName [] = "GLGraphicCore"
const char _GLGraphicCorePluginObjectName [] = "GLGraphicCorePlugin"
const char _GLTextureClassName [] = "GLTexture"
const char _GraphicCoreClassName [] = "GraphicCore"
static GLGraphicCorePlugin_GraphicCorePlugin
const char _KernelClassName [] = "Kernel"
const char _LibraryClassName [] = "Library"
const char _LogClassName [] = "Log"
const char _LogListenerClassName [] = "LogListener"
const char _LogManagerObjectName [] = "LogManager"
const char _PluginClassName [] = "Plugin"
const char _ProfilerName [] = "Profiler"
const char _ShaderSystemClassName [] = "ShaderSystem"
const char _SimpleTaskClassName [] = "SimpleTask"
const char _SimpleTaskManagerName [] = "SimpleTaskManager"
const char _SingletonClassName [] = "Singleton"
const char _TaskManagerClassName [] = "TaskManager"
const char _TextureClassName [] = "Texture"
const char _UnixTimerName [] = "UnixTimer"
const char _Win32TimerName [] = "Win32Timer"
const char gpucalc_name [] = "is there anybody out there"
 Defines current name of our gpucalc library.
const char gpucalc_version [] = "0.9.1"
 Defines version of our gpucalc library.
CGcontext LocalCGContext
const int Log_Threshold = 4
 Threshold for logging.
static GLCgShaderSystemPluginShaderSystemPlugin


Detailed Description

Main namespace in our library.

All classes, definitions, enumerations and all other entities are located in this namespace.
In user application, programmer can use this namespace: using namespace gpucalc;


Typedef Documentation

typedef void(* gpucalc::DLL_START_PLUGIN)()

Definition at line 40 of file application.cpp.

typedef void(* gpucalc::DLL_STOP_PLUGIN)()

Definition at line 41 of file application.cpp.

typedef std::vector<std::string> gpucalc::StringList

Definition at line 44 of file string_util.h.

typedef std::map<std::string, std::string> gpucalc::StringMap

Definition at line 45 of file string_util.h.


Enumeration Type Documentation

Represent type of storage of our array data in GPU side.

Data in GPU side can be represented as textures

Enumerator:
NOTArray  Cpecial constant, representing, that our data is not array.
Array1D  Treated as one dimensional sampler in Shader.

In shader code we must work with this variable as with one dimensional texture sampler, and must use corresponding "get" methods

Array2D  Treated as two dimensional sampler in Shader.

In shader code we must work with this variable as with two dimensional texture sampler, and must use corresponding "get" methods

Array3D  Treated as three dimensional sampler in Shader.

In shader code we must work with this variable as with three dimensional texture sampler and must use corresponding "get" methods

Definition at line 89 of file data.h.

00090  {
00094   NOTArray = 0,
00095 
00102   Array1D = 1,
00103   
00110   Array2D,
00111   
00118   Array3D
00119  };

Represent type of storage of our element data in GPU side.

Data in GPU can be represented as uniform variables.

Enumerator:
NOTElement  Cpecial constant, representing, that our data is not element.
ElementNumber 

Definition at line 126 of file data.h.

00127  {
00131   NOTElement = 0,
00132   
00133   
00134   ElementNumber = 1
00135  };

Static definitions of error codes.

Todo:
Add many more exception codes, since we want the user to be able to catch most of them.
Enumerator:
ERR_CANNOT_WRITE_TO_FILE 
ERR_INVALID_STATE 
ERR_INVALIDPARAMS 
ERR_RENDERINGAPI_ERROR 
ERR_DUPLICATE_ITEM 
ERR_ITEM_NOT_FOUND 
ERR_FILE_NOT_FOUND 
ERR_INTERNAL_ERROR 
ERR_RT_ASSERTION_FAILED 
ERR_SOURCE_COMPILATION_ERROR 
ERR_VALUE_NOT_DELETED_ERROR 
ERR_NOT_IMPLEMENTED 

Definition at line 54 of file exception.h.

The level of detail to which the log will go into.

Enumerator:
LL_Low 
LL_Normal 
LL_Verbose 

Definition at line 54 of file log.h.

00055  {
00056   LL_Low = 1,
00057   LL_Normal = 2,
00058   LL_Verbose = 3
00059  };

The importance of a logged message.

Enumerator:
LML_Trivial 
LML_Normal 
LML_Critical 

Definition at line 65 of file log.h.

00066  {
00067   LML_Trivial = 1,
00068   LML_Normal = 2,
00069   LML_Critical = 3
00070  };

This enumeration defines usage of Texture object.

Enumerator:
TU_Static  Defines usage of texture as static texture.
TU_Render  Defines usage of texture as render texture.

Definition at line 57 of file graphic_core.h.

00058  {
00062   TU_Static = 0,
00063   
00067   TU_Render = 1
00068  };

Type of element in our data.

Data can be of different types: floating point values, integer and so on.

Enumerator:
NOTType  Special constant, representing unintialized value.
FloatType  Single precision floating point value type.
DoubleType  Double precision floating point value type.
IntType  Integer value type.
UnsignedIntType  Unsigned int value type.
CharType  Integer value type with size equal one byte.
UnsignedCharType  Unsigned integer value type with size equal one byte.

Definition at line 46 of file data.h.

00047  {
00051   NOTType = 0,
00052   
00056   FloatType = 1,
00057 
00061   DoubleType,
00062 
00066   IntType,
00067 
00071   UnsignedIntType,
00072 
00076   CharType,
00077 
00081   UnsignedCharType
00082  };

Defines vendor of GPU.

Enumerator:
DEFAULT 
NVIDIA 
MESA 
GDI 
ATI 

Definition at line 45 of file graphic_core.h.

00046  {
00047   DEFAULT = 0,
00048   NVIDIA = 1,
00049   MESA = 2,
00050   GDI = 3,
00051   ATI = 4
00052  };


Function Documentation

template<typename T, typename Y>
bool gpucalc::addToContainer ( const T &  what,
const Y &  where,
std::map< Y, T > &  Container 
) [inline]

Definition at line 212 of file std_headers.h.

00213  {
00214   typename std::map<Y, T>::iterator i = Container.find(where);
00215   if (i != Container.end())
00216   {
00217    return false;
00218   }
00219   else
00220   {
00221    Container.insert(std::make_pair(where, what));
00222    return true;
00223   }
00224  }

template<typename T>
bool gpucalc::addToContainer ( const T &  what,
std::vector< T > &  Container 
) [inline]

Definition at line 172 of file std_headers.h.

00173  {
00174   typename std::vector<T>::iterator i = std::find(Container.begin(), Container.end(), what);
00175   if (i != Container.end())
00176   {
00177    return false;
00178   }
00179   else
00180   {
00181    Container.push_back(what);
00182    return true;
00183   }
00184  }

template<typename T>
bool gpucalc::addToContainer ( const T &  what,
std::list< T > &  Container 
) [inline]

Definition at line 132 of file std_headers.h.

00133  {
00134   typename std::list<T>::iterator i = std::find(Container.begin(), Container.end(), what);
00135   if (i != Container.end())
00136   {
00137    return false;
00138   }
00139   else
00140   {
00141    Container.push_back(what);
00142    return true;
00143   }
00144  }

void gpucalc::cgErrorCallBackFunction (  ) 

Definition at line 256 of file gl_Cg_shader_system.cpp.

00257  {
00258   CGerror LastError = cgGetError();
00259   if (LastError != CG_NO_ERROR)
00260   {
00261    Except<ERR_RENDERINGAPI_ERROR>(Object(_ShaderSystemClassName, _GLCgShaderSystemObjectName),
00262     std::string(cgGetErrorString(LastError)) + cgGetLastListing(LocalCGContext), "somewhere...", __FILE__, __LINE__);
00263   }
00264  }

template<typename T, typename Y>
void gpucalc::clearContainer ( std::map< Y, T > &  Container  )  [inline]

Definition at line 242 of file std_headers.h.

00243  {
00244   for (typename std::map<Y, T>::iterator i = Container.begin(); i != Container.end(); ++i)
00245   {
00246    delete (i->second);
00247   }
00248   Container.clear();
00249  }

template<typename T>
void gpucalc::clearContainer ( std::vector< T > &  Container  )  [inline]

Definition at line 202 of file std_headers.h.

00203  {
00204   for (typename std::vector<T>::iterator i = Container.begin(); i != Container.end(); ++i)
00205   {
00206    delete (*i);
00207   }
00208   Container.clear();
00209  }

template<typename T>
void gpucalc::clearContainer ( std::list< T > &  Container  )  [inline]

Definition at line 162 of file std_headers.h.

00163  {
00164   for (typename std::list<T>::iterator i = Container.begin(); i != Container.end(); ++i)
00165   {
00166    delete (*i);
00167   }
00168   Container.clear();
00169  }

void _GpuCalcGLExport gpucalc::dllStartPlugin (  )  throw ()

Definition at line 42 of file gl_Cg_shader_system_plugin_dll.cpp.

00043  {
00044   ShaderSystemPlugin = new GLCgShaderSystemPlugin();
00045   Application::getSingleton().installPlugin(ShaderSystemPlugin);
00046  }

void _GpuCalcGLExport gpucalc::dllStopPlugin (  ) 

Definition at line 49 of file gl_Cg_shader_system_plugin_dll.cpp.

00050  {
00051   Application::getSingleton().uninstallPlugin(ShaderSystemPlugin);
00052   delete ShaderSystemPlugin;
00053  }

template<ExceptionCodes Value>
void gpucalc::Except ( const Object &  obj,
const std::string &  Description,
const std::string &  Source,
const std::string &  File,
int  Line 
) [inline]

Definition at line 532 of file exception.h.

00534  {
00535   Except<Value>(&obj, Description, Source, File, Line);
00536  }

template<ExceptionCodes Value>
void gpucalc::Except ( const Object *  obj,
const std::string &  Description,
const std::string &  Source,
const std::string &  File,
int  Line 
) [inline]

Throw exception.

This define eases throwing exception.

Parameters:
obj - Object, who throws exception.
Description - short description of exception.
Source - where this exception thrown.
File - name of file in which exception is thrown.
Line - line in file where exception is thrown.

Definition at line 526 of file exception.h.

00528  {
00529   throw ExceptionFactory::create(Int2Type<Value>(), obj, Description, Source, File.c_str(), Line);
00530  }

template<class T, class U>
bool gpucalc::operator!= ( SharedPtr< T > const &  a,
SharedPtr< U > const &  b 
) [inline]

Definition at line 256 of file utils.h.

00257  {
00258   return a.get() != b.get();
00259  }

template<class T, class U>
bool gpucalc::operator< ( SharedPtr< T > const &  a,
SharedPtr< U > const &  b 
) [inline]

Definition at line 262 of file utils.h.

00263  {
00264   return std::less<const void *>()(a.get(), b.get());
00265  }

template<class T, class U>
bool gpucalc::operator== ( SharedPtr< T > const &  a,
SharedPtr< U > const &  b 
) [inline]

Definition at line 250 of file utils.h.

00251  {
00252   return a.get() == b.get();
00253  }

template<typename T, typename Y>
bool gpucalc::removeFromContainer ( const Y &  where,
std::map< Y, T > &  Container 
) [inline]

Definition at line 227 of file std_headers.h.

00228  {
00229   typename std::map<Y, T>::iterator i = Container.find(where);
00230   if (i != Container.end())
00231   {
00232    Container.erase(i);
00233    return true;
00234   }
00235   else
00236   {
00237    return false;
00238   }
00239  }

template<typename T>
bool gpucalc::removeFromContainer ( const T &  what,
std::vector< T > &  Container 
) [inline]

Definition at line 187 of file std_headers.h.

00188  {
00189   typename std::vector<T>::iterator i = std::find(Container.begin(), Container.end(), what);
00190   if (i != Container.end())
00191   {
00192    Container.erase(i);
00193    return true;
00194   }
00195   else
00196   {
00197    return false;
00198   }
00199  }

template<typename T>
bool gpucalc::removeFromContainer ( const T &  what,
std::list< T > &  Container 
) [inline]

Definition at line 147 of file std_headers.h.

00148  {
00149   typename std::list<T>::iterator i = std::find(Container.begin(), Container.end(), what);
00150   if (i != Container.end())
00151   {
00152    Container.erase(i);
00153    return true;
00154   }
00155   else
00156   {
00157    return false;
00158   }
00159  }

template<ExceptionCodes Value>
void gpucalc::Warning ( const Object &  obj,
const std::string &  Description,
const std::string &  Source,
const std::string &  File,
int  Line 
) [inline]

Definition at line 554 of file exception.h.

00556  {
00557   Warning<Value>(&obj, Description, Source, File, Line);
00558  }

template<ExceptionCodes Value>
void gpucalc::Warning ( const Object *  obj,
const std::string &  Description,
const std::string &  Source,
const std::string &  File,
int  Line 
) [inline]

Definition at line 548 of file exception.h.

00550  {
00551   _workaround::DoWarning::doWarning(obj, Description, Source, File, Line);
00552  }


Variable Documentation

const char gpucalc::_ApplicationClassName[] = "Application"

Definition at line 45 of file application.h.

const char gpucalc::_CommunicatorClassName[] = "Communicator"

Definition at line 45 of file communicator.h.

const char gpucalc::_DataClassName[] = "Data"

Definition at line 138 of file data.h.

const char gpucalc::_GLCgShaderClassName[] = "GLCgShader"

Definition at line 43 of file gl_Cg_shader.h.

const char gpucalc::_GLCgShaderSystemObjectName[] = "GLCgShaderSystem"

Definition at line 43 of file gl_Cg_shader_system.h.

const char gpucalc::_GLCgShaderSystemPluginObjectName[] = "GLCgShaderSystemPlugin"

Definition at line 43 of file gl_Cg_shader_system_plugin.h.

const char gpucalc::_GLCgUniformClassName[] = "GLCgUniform"

Definition at line 42 of file gl_Cg_uniform.h.

const char gpucalc::_GLFrameBufferClassName[] = "GLFrameBuffer"

Definition at line 109 of file gl_framebuffer.h.

const char gpucalc::_GLGLSLShaderClassName[] = "GLGLSLShader"

Definition at line 43 of file gl_glsl_shader.h.

const char gpucalc::_GLGLSLShaderSystemObjectName[] = "GLGLSLShaderSystem"

Definition at line 43 of file gl_glsl_shader_system.h.

const char gpucalc::_GLGLSLShaderSystemPluginObjectName[] = "GLGLSLShaderSystemPlugin"

Definition at line 43 of file gl_glsl_shader_system_plugin.h.

const char gpucalc::_GLGLSLUniformClassName[] = "GLGLSLUniform"

Definition at line 47 of file gl_glsl_uniform.h.

const char gpucalc::_GLGraphicCoreObjectName[] = "GLGraphicCore"

Definition at line 65 of file gl_graphic_core.h.

const char gpucalc::_GLGraphicCorePluginObjectName[] = "GLGraphicCorePlugin"

Definition at line 42 of file gl_graphic_core_plugin.h.

const char gpucalc::_GLTextureClassName[] = "GLTexture"

Definition at line 46 of file gl_texture.h.

const char gpucalc::_GraphicCoreClassName[] = "GraphicCore"

Definition at line 71 of file graphic_core.h.

Definition at line 40 of file gl_graphic_core_plugin_dll.cpp.

const char gpucalc::_KernelClassName[] = "Kernel"

Definition at line 54 of file kernel.h.

const char gpucalc::_LibraryClassName[] = "Library"

Definition at line 70 of file library.h.

const char gpucalc::_LogClassName[] = "Log"

Definition at line 40 of file log.h.

const char gpucalc::_LogListenerClassName[] = "LogListener"

Definition at line 72 of file log.h.

const char gpucalc::_LogManagerObjectName[] = "LogManager"

Definition at line 41 of file log_manager.h.

const char gpucalc::_PluginClassName[] = "Plugin"

Definition at line 41 of file plugin.h.

const char gpucalc::_ProfilerName[] = "Profiler"

Definition at line 43 of file profiler.h.

const char gpucalc::_ShaderSystemClassName[] = "ShaderSystem"

Definition at line 42 of file shader_system.h.

const char gpucalc::_SimpleTaskClassName[] = "SimpleTask"

Definition at line 42 of file simple_task.h.

const char gpucalc::_SimpleTaskManagerName[] = "SimpleTaskManager"

Definition at line 42 of file simple_task_manager.h.

const char gpucalc::_SingletonClassName[] = "Singleton"

Definition at line 41 of file singleton.h.

const char gpucalc::_TaskManagerClassName[] = "TaskManager"

Definition at line 40 of file task_manager.h.

const char gpucalc::_TextureClassName[] = "Texture"

Definition at line 48 of file texture.h.

const char gpucalc::_UnixTimerName[] = "UnixTimer"

Definition at line 40 of file unix_timer_impl.h.

const char gpucalc::_Win32TimerName[] = "Win32Timer"

Definition at line 41 of file win32_timer_impl.h.

const char gpucalc::gpucalc_name[] = "is there anybody out there"

Defines current name of our gpucalc library.

Definition at line 366 of file gpucalc.h.

const char gpucalc::gpucalc_version[] = "0.9.1"

Defines version of our gpucalc library.

Definition at line 361 of file gpucalc.h.

Definition at line 253 of file gl_Cg_shader_system.cpp.

const int gpucalc::Log_Threshold = 4

Threshold for logging.

LogMessageLevel + LoggingLevel >= Log_Threshold = message logged

Definition at line 48 of file log.h.

Definition at line 39 of file gl_Cg_shader_system_plugin_dll.cpp.


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