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