class EE::Window::Engine¶
Overview¶
The window management class. Here the engine starts working. (Singleton Class). More…
#include <engine.hpp> class Engine { public: // classes class WindowContext; // construction ~Engine(); // methods EE::Window::Window* createWindow(WindowSettings Settings, ContextSettings Context = ContextSettings()); void destroyWindow(EE::Window::Window* window); EE::Window::Window* getCurrentWindow() const; void setCurrentWindow(EE::Window::Window* window); WindowContext makeWindowCurrent(EE::Window::Window* window); Uint32 getWindowCount() const; bool isRunning() const; bool existsWindow(EE::Window::Window* window); void forEachWindow(std::function<void(EE::Window::Window*)> cb); EE::Window::Window* getWindowID(const Uint32& winID); void updateInput(); WindowSettings createWindowSettings(std::string iniPath, std::string iniKeyName = "EEPP"); WindowSettings createWindowSettings(IniFile* ini, std::string iniKeyName = "EEPP"); ContextSettings createContextSettings(std::string iniPath, std::string iniKeyName = "EEPP"); ContextSettings createContextSettings(IniFile* ini, std::string iniKeyName = "EEPP", bool vsyncEnabledByDefault = true); void enableSharedGLContext(); void disableSharedGLContext(); bool isSharedGLContextEnabled(); bool isThreaded(); PlatformHelper* getPlatformHelper(); DisplayManager* getDisplayManager(); std::shared_ptr<Graphics::ResourceCatalog> getGlobalResourceCatalog() const; std::shared_ptr<Graphics::ResourceScope> getDefaultResourceScope() const; bool openURI(const std::string& url); static bool isEngineRunning(); static UintPtr getMainThreadId(); static bool isMainThread(); };
Detailed Documentation¶
The window management class. Here the engine starts working. (Singleton Class).
Methods¶
EE::Window::Window* createWindow(WindowSettings Settings, ContextSettings Context = ContextSettings())
Creates a new window.
void destroyWindow(EE::Window::Window* window)
Destroy the window instance, and set as current other window running ( if any ). This function is only useful for multi-window environment. Avoid using it with one window context.
EE::Window::Window* getCurrentWindow() const
Returns:
The current Window context.
void setCurrentWindow(EE::Window::Window* window)
Set the window as the current.
WindowContext makeWindowCurrent(EE::Window::Window* window)
Makes window and its graphics context current for the returned scope.
Uint32 getWindowCount() const
Returns:
The number of windows created.
bool isRunning() const
Returns:
If any window is created.
bool existsWindow(EE::Window::Window* window)
Returns:
If the window instance is inside the window list.
void updateInput()
Begins an input frame for every window, pumps the backend event queue once, routes events by window ID, and then completes every input frame.
WindowSettings createWindowSettings(std::string iniPath, std::string iniKeyName = "EEPP")
Constructs WindowSettings from an ini file It will search for the following properties: Width Window width Height Window height BitColor 32,16,8 Windowed bool Resizeable bool Backend SDL2 WinIcon The path to the window icon WinTitle The window default title
Parameters:
iniPath |
The ini file path |
iniKeyName |
The ini key name to search the properties |
WindowSettings createWindowSettings(IniFile* ini, std::string iniKeyName = "EEPP")
Constructs WindowSettings from an ini file instance It will search for the following properties: Width Window width Height Window height BitColor 32,16,8 Windowed bool Resizeable bool Backend SDL2 WinIcon The path to the window icon WinTitle The window default title
Parameters:
ini |
The ini file instance |
iniKeyName |
The ini key name to search the properties |
ContextSettings createContextSettings(std::string iniPath, std::string iniKeyName = "EEPP")
Constructs ContextSettings from an ini file
It will search for the following properties: VSync bool GLVersion Selects the default renderer: 2 for OpenGL 2, 3 for OpenGL 3, 4 for OpenGL ES 2 DoubleBuffering bool DepthBufferSize int StencilBufferSize int
@param iniPath The ini file path
@param iniKeyName The ini key name to search the properties
ContextSettings createContextSettings(IniFile* ini, std::string iniKeyName = "EEPP", bool vsyncEnabledByDefault = true)
Constructs ContextSettings from an ini file instance
It will search for the following properties: VSync bool GLVersion Selects the default renderer: 2 for OpenGL 2, 3 for OpenGL 3, 4 for OpenGL ES 2 DoubleBuffering bool DepthBufferSize int StencilBufferSize int
@param ini The ini file instance
@param iniKeyName The ini key name to search the properties
void enableSharedGLContext()
Enabling Shared GL Context allows asynchronous OpenGL resource loading ( only if is supported by the backend and the OS, SDL 2 backend is the only one supported ). * If the TextureLoader is threaded, will upload the texture in another thread to the GPU. So, it will not block the main rendering thread. * Shared GL Context is disabled by default.
void disableSharedGLContext()
Disable the Shared GL Context
See also:
bool isSharedGLContextEnabled()
Returns:
If the Shared GL Context is enabled and ready to use.
bool isThreaded()
Returns:
Indicates if the current running platform/OS supports threads (always true except for emscripten)
PlatformHelper* getPlatformHelper()
Returns:
The instance of platform class that provides some helpers for some platforms
DisplayManager* getDisplayManager()
Returns:
The display manager. Holds the physical displays information.
std::shared_ptr<Graphics::ResourceCatalog> getGlobalResourceCatalog() const
Returns:
The catalog used for resources intentionally exported application-wide.
std::shared_ptr<Graphics::ResourceScope> getDefaultResourceScope() const
Returns:
The default Graphics scope. It explicitly imports the global resource catalog.
bool openURI(const std::string& url)
Open a URL in a separate, system-provided application.
Returns:
true if success
static UintPtr getMainThreadId()
Returns:
The id of the thread that was used to initialize the OpenGL Context.
static bool isMainThread()
Returns:
True if the current thread is the main thread.