![]() |
OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
|
PBuffer implementation of EGL When supported, PBuffer is a surface-less implementation of OpenGL. More...
#include <OgreEglPBufferWindow.h>
PBuffer implementation of EGL When supported, PBuffer is a surface-less implementation of OpenGL.
This means the window is a dummy hidden window that can run without X11 or Wayland servers as long as DRM is supported.
This is ideal for running a headless server in a terminal, an SSH session or the cloud
While support has been geared mostly towards Linux, it may run on Windows. However I do not know whether drivers support it.
Pass parameter "Device" to RenderSystem::setConfigOption. Mesa drivers typically expose "EGL_EXT_device_drm" (an actual GPU) and "EGL_MESA_device_software" (SW emulation)
Instead we create a regular FBO for rendering with the requested settings (resolution, sRGB, depth buffer). This means implementation details such as requiresTextureFlipping must behave the same way as regular FBOs, and is inconsistent with the other GL Window backends
Ogre::EglPBufferWindow::EglPBufferWindow | ( | const String & | title, |
uint32 | width, | ||
uint32 | height, | ||
bool | fullscreenMode, | ||
const NameValuePairList * | miscParams, | ||
Ogre::EglPBufferSupport * | glsupport | ||
) |
|
virtual |
|
virtual |
Implements Ogre::Window.
Indicates that this is the primary window.
Only to be called by Ogre::Root
Internal method to notify the window it has been obscured or minimized.
Implements Ogre::Window.
Reimplemented from Ogre::Window.
|
inherited |
|
virtualinherited |
Overloaded version of getMetrics from RenderTarget, including extra details specific to windowing systems.
Result is in pixels.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
WARNING: Attempting to change the TextureGpu (e.g.
setResolution, setPixelFormat) is undefined behavior
Many windowing systems that support HiDPI displays use special points to specify size of the windows and controls, so that windows and controls with hardcoded sizes does not become too small on HiDPI displays.
Such points have constant density ~ 100 points per inch (probably 96 on Windows and 72 on Mac), that is independent of pixel density of real display, and are used through the all windowing system.
Sometimes, such view points are choosen bigger for output devices that are viewed from larger distances, like 30" TV comparing to 30" monitor, therefore maintaining constant points angular density rather than constant linear density.
In any case, all such windowing system provides the way to convert such view points to pixels, be it DisplayProperties::LogicalDpi on WinRT or backingScaleFactor on MacOSX. We use pixels consistently through the Ogre, but window/view management functions takes view points for convenience, as does the rest of windowing system. Such parameters are named using xxxxPt pattern, and should not be mixed with pixels without being converted using getViewPointToPixelScale() function.
Sometimes such scale factor can change on-the-fly, for example if window is dragged to monitor with different DPI. In such situation, window size in view points is usually preserved by windowing system, and Ogre should adjust pixel size of RenderWindow.
Reimplemented in Ogre::MetalWindow, and Ogre::CocoaWindow.
Returns true if we are currently in fullscreen mode.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
Implements Ogre::Window.
|
virtual |
Requests to toggle between fullscreen and windowed mode.
goFullscreen | True to go fullscreen, false to go windowed mode. |
borderless | Whether to be borderless. Only useful if goFullscreen == false; |
monitorIdx | |
width | New width. Leave 0 if you don't care. |
height | New height. Leave 0 if you don't care. |
frequencyNumerator | New frequency (fullscreen only). Leave 0 if you don't care. |
frequencyDenominator | New frequency (fullscreen only). Leave 0 if you don't care. |
Reimplemented from Ogre::Window.
|
inline |
Reimplemented in Ogre::Win32Window, and Ogre::VulkanWin32Window.
Set the FSAA mode to be used if hardware support it.
This option will be ignored if the hardware does not support it or setting can not be changed on the fly on per-target level.
fsaa | Requesed FSAA mode ( |
Reimplemented in Ogre::D3D11WindowSwapChainBased.
Turns VSync on/off.
vSync | |
vSyncInterval | When true, specifies how often the screen should be updated. e.g. at 60hz: vSyncInterval = 1 then update at 60hz vSyncInterval = 2 then update at 30hz vSyncInterval = 3 then update at 15hz vSyncInterval = 4 then update at 7.5hz |
If the 31st bit is set, i.e. 0x80000000, then lowest latency mode, aka mailbox, will be used (which doesn't limit the framerate)
Reimplemented from Ogre::Window.
|
virtual |
Returns true if we are in windowed mode right now, but want to go fullscreen.
Returns true if we are in fullscreen mode right now, but want to go windowed mode.
Notify that the window has been resized.
Reimplemented in Ogre::EGLWindow, Ogre::GLXWindow, Ogre::Win32Window, Ogre::MetalWindow, Ogre::VulkanAndroidWindow, Ogre::VulkanWin32Window, Ogre::VulkanXcbWindow, and Ogre::CocoaWindow.