ImFusion SDK 4.3
Context management

Interfaces and wrapper classes for managing OpenGL contexts. More...

+ Collaboration diagram for Context management:

Detailed Description

Interfaces and wrapper classes for managing OpenGL contexts.

Use can the GL::Context interface and its concrete platform-dependent specializations such as GL::ContextWindows or GL::ContextGLX to perform manual OpenGL context management.

The GL::ContextManager singleton class provides you with a more high-level interface to access, and create OpenGL contexts and have them managed by the ImFusion SDK. This interface is particularly useful if you are working in a multithreaded environment and/or need to use OpenGL context sharing.

The GL::InstanceManager interface enables you transparently manage a single instance of a class for each OpenGL context. This is a powerful feature to avoid constant reallocation of your class while at the same time avoiding race conditions (given that there is a 1-to-1 mapping between OpenGL contexts and threads) or issues if an OpenGL object is not shareable between contexts (such as VAOs).

Classes

class  OpenGLNotFoundException
 Specialization of std::runtime_error indicating that OpenGL was not able to initialize correctly. More...
 
class  Context
 Base class for low-level OpenGL context handling within the ImFusion SDK. More...
 
class  ContextManager
 Singleton class to manage access to OpenGL contexts. More...
 
class  ContextWindows
 OpenGL context using WGL as backend. More...
 
class  InstanceManagerBase
 Base class for context-aware caching of OpenGL object instances. More...
 
class  InstanceManager< T >
 Concrete CRTP class for context-aware caching of OpenGL object instances. More...
 
class  ContextGLX
 OpenGL context using GLX as backend. More...
 
Search Tab / S to search, Esc to close