![]() |
ImFusion C++ SDK 4.4.0
|
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 | 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... | |