diff options
Diffstat (limited to 'Gem/develop/include/Gem/Base/GemContext.h')
-rw-r--r-- | Gem/develop/include/Gem/Base/GemContext.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Gem/develop/include/Gem/Base/GemContext.h b/Gem/develop/include/Gem/Base/GemContext.h new file mode 100644 index 0000000..7081051 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemContext.h @@ -0,0 +1,59 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + a rendering context + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_BASE_GEMCONTEXT_H_ +#define _INCLUDE__GEM_BASE_GEMCONTEXT_H_ + +#include "Gem/ExportDef.h" +#include "Gem/GemGL.h" + + +# if defined _WIN32 +typedef struct WGLEWContextStruct WGLEWContext; +# define GemGlewXContext WGLEWContext +# elif defined __linux__ || defined HAVE_GL_GLX_H +typedef struct GLXEWContextStruct GLXEWContext; +# define GemGlewXContext GLXEWContext +# else +// no GemGlewXContext on this platform... +# endif + +typedef struct GLEWContextStruct GLEWContext; + +namespace gem { +class GEM_EXTERN Context { + private: + class PIMPL; + PIMPL*m_pimpl; + + public: + Context(void); + Context(const Context&); + virtual ~Context(void); + + Context&operator=(const Context&); + + // make context current + bool push(void); + + // make context uncurrent + bool pop(void); + + public: + static unsigned int getContextId(void); + static GLEWContext*getGlewContext(void); +#ifdef GemGlewXContext + static GemGlewXContext*getGlewXContext(void); +#endif /* GemGlewXContext */ +}; + +}; // namespace +#endif // for header file |