Class holding a valid drawing context. More...
#include <SFML/Window/Context.hpp>
Public Member Functions | |
Context () | |
Default constructor. | |
~Context () | |
Destructor. | |
Context (const Context &)=delete | |
Deleted copy constructor. | |
Context & | operator= (const Context &)=delete |
Deleted copy assignment. | |
Context (Context &&context) noexcept | |
Move constructor. | |
Context & | operator= (Context &&context) noexcept |
Move assignment. | |
bool | setActive (bool active) |
Activate or deactivate explicitly the context. | |
const ContextSettings & | getSettings () const |
Get the settings of the context. | |
Context (const ContextSettings &settings, Vector2u size) | |
Construct a in-memory context. | |
Static Public Member Functions | |
static bool | isExtensionAvailable (std::string_view name) |
Check whether a given OpenGL extension is available. | |
static GlFunctionPointer | getFunction (const char *name) |
Get the address of an OpenGL function. | |
static const Context * | getActiveContext () |
Get the currently active context. | |
static std::uint64_t | getActiveContextId () |
Get the currently active context's ID. | |
Detailed Description
Class holding a valid drawing context.
If you need to make OpenGL calls without having an active window (like in a thread), you can use an instance of this class to get a valid context.
Having a valid context is necessary for every OpenGL call.
Note that a context is only active in its current thread, if you create a new thread it will have no valid context by default.
To use a sf::Context
instance, just construct it and let it live as long as you need a valid context. No explicit activation is needed, all it has to do is to exist. Its destructor will take care of deactivating and freeing all the attached resources.
Usage example:
Definition at line 57 of file Context.hpp.
Constructor & Destructor Documentation
◆ Context() [1/4]
sf::Context::Context | ( | ) |
Default constructor.
The constructor creates and activates the context
◆ ~Context()
sf::Context::~Context | ( | ) |
Destructor.
The destructor deactivates and destroys the context
◆ Context() [2/4]
|
delete |
Deleted copy constructor.
◆ Context() [3/4]
|
noexcept |
Move constructor.
◆ Context() [4/4]
sf::Context::Context | ( | const ContextSettings & | settings, |
Vector2u | size ) |
Construct a in-memory context.
This constructor is for internal use, you don't need to bother with it.
- Parameters
-
settings Creation parameters size Back buffer size
Member Function Documentation
◆ getActiveContext()
|
staticnodiscard |
Get the currently active context.
This function will only return sf::Context
objects. Contexts created e.g. by RenderTargets or for internal use will not be returned by this function.
- Returns
- The currently active context or
nullptr
if none is active
◆ getActiveContextId()
|
staticnodiscard |
Get the currently active context's ID.
The context ID is used to identify contexts when managing unshareable OpenGL resources.
- Returns
- The active context's ID or 0 if no context is currently active
◆ getFunction()
|
staticnodiscard |
Get the address of an OpenGL function.
On Windows when not using OpenGL ES, a context must be active for this function to succeed.
- Parameters
-
name Name of the function to get the address of
- Returns
- Address of the OpenGL function, 0 on failure
◆ getSettings()
|
nodiscard |
Get the settings of the context.
Note that these settings may be different than the ones passed to the constructor; they are indeed adjusted if the original settings are not directly supported by the system.
- Returns
- Structure containing the settings
◆ isExtensionAvailable()
|
staticnodiscard |
Check whether a given OpenGL extension is available.
- Parameters
-
name Name of the extension to check for
- Returns
true
if available,false
if unavailable
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ setActive()
|
nodiscard |
Activate or deactivate explicitly the context.
- Parameters
-
active true
to activate,false
to deactivate
- Returns
true
on success,false
on failure
The documentation for this class was generated from the following file: