![]() |
ImFusion SDK 4.3
|
Interfaces and wrapper classes for managing OpenGL contexts. More...
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... | |