Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
|
#include <WinSystemWayland.h>
Public Types | |
using | PresentationFeedbackHandler = std::function<void(timespec , std::uint32_t , std::uint32_t , float , std::uint64_t )> |
Public Member Functions | |
CWinSystemWayland () | |
~CWinSystemWayland () noexcept override | |
const std::string | GetName () override |
bool | InitWindowSystem () override |
bool | DestroyWindowSystem () override |
bool | CreateNewWindow (const std::string &name, bool fullScreen, RESOLUTION_INFO &res) override |
bool | DestroyWindow () override |
bool | ResizeWindow (int newWidth, int newHeight, int newLeft, int newTop) override |
bool | SetFullScreen (bool fullScreen, RESOLUTION_INFO &res, bool blankOtherDisplays) override |
void | FinishModeChange (RESOLUTION res) override |
void | FinishWindowResize (int newWidth, int newHeight) override |
bool | UseLimitedColor () override |
void | UpdateResolutions () override |
bool | CanDoWindowed () override |
bool | Minimize () override |
bool | HasCursor () override |
void | ShowOSMouse (bool show) override |
std::string | GetClipboardText () override |
float | GetSyncOutputRefreshRate () |
float | GetDisplayLatency () override |
Get average display latency. | |
float | GetFrameLatencyAdjustment () override |
Get time that should be subtracted from the display latency for this frame in milliseconds. | |
std::unique_ptr< CVideoSync > | GetVideoSync (CVideoReferenceClock *clock) override |
void | Register (IDispResource *resource) override |
void | Unregister (IDispResource *resource) override |
CSignalRegistration | RegisterOnPresentationFeedback (const PresentationFeedbackHandler &handler) |
std::vector< std::string > | GetConnectedOutputs () override |
bool | MessagePump () override |
Public Member Functions inherited from CWinSystemBase | |
CWinSystemBase () | |
virtual | ~CWinSystemBase () |
virtual CRenderSystemBase * | GetRenderSystem () |
virtual bool | DisplayHardwareScalingEnabled () |
virtual void | UpdateDisplayHardwareScaling (const RESOLUTION_INFO &resInfo) |
virtual bool | MoveWindow (int topLeft, int topRight) |
virtual bool | CenterWindow () |
virtual bool | IsCreated () |
virtual void | NotifyAppFocusChange (bool bGaining) |
virtual void | NotifyAppActiveChange (bool bActivated) |
virtual bool | HasInertialGestures () |
virtual int | NoOfBuffers () |
virtual void | ForceFullScreen (const RESOLUTION_INFO &resInfo) |
Forces the window to fullscreen provided the window resolution. | |
virtual bool | Restore () |
virtual bool | Hide () |
virtual bool | Show (bool raise=true) |
virtual void | OnMove (int x, int y) |
virtual unsigned int | GetScreenId (const std::string &screen) |
Get the screen ID provided the screen name. | |
virtual void | MoveToScreen (unsigned int screenIdx) |
Window was requested to move to the given screen. | |
virtual void | OnChangeScreen (unsigned int screenIdx) |
Used to signal the windowing system about the change of the current screen. | |
KODI::WINDOWING::COSScreenSaverManager * | GetOSScreenSaver () |
Get OS screen saver inhibit implementation if available. | |
unsigned int | GetWidth () |
unsigned int | GetHeight () |
bool | IsFullScreen () |
virtual bool | SupportsScreenMove () |
Check if the windowing system supports moving windows across screens. | |
void | SetWindowResolution (int width, int height) |
std::vector< RESOLUTION_WHR > | ScreenResolutions (float refreshrate) |
std::vector< REFRESHRATE > | RefreshRates (int width, int height, uint32_t dwFlags) |
REFRESHRATE | DefaultRefreshRate (const std::vector< REFRESHRATE > &rates) |
virtual bool | HasCalibration (const RESOLUTION_INFO &resInfo) |
void | RegisterRenderLoop (IRenderLoop *client) |
void | UnregisterRenderLoop (IRenderLoop *client) |
void | DriveRenderLoop () |
virtual CGraphicContext & | GetGfxContext () const |
virtual void * | GetHWContext () |
Get OS specific hardware context. | |
std::shared_ptr< CDPMSSupport > | GetDPMSManager () |
virtual bool | SetHDR (const VideoPicture *videoPicture) |
Set the HDR metadata. Passing nullptr as the parameter should disable HDR. | |
virtual bool | IsHDRDisplay () |
virtual HDR_STATUS | ToggleHDR () |
virtual HDR_STATUS | GetOSHDRStatus () |
virtual CHDRCapabilities | GetDisplayHDRCapabilities () const |
virtual float | GetGuiSdrPeakLuminance () const |
virtual bool | HasSystemSdrPeakLuminance () |
virtual bool | SupportsVideoSuperResolution () |
System supports Video Super Resolution HW upscaler i.e.: "NVIDIA RTX Video Super Resolution" or "Intel Video Super Resolution". | |
virtual DEBUG_INFO_RENDER | GetDebugInfo () |
Gets debug info from video renderer for use in "Debug Info OSD" (Alt + O) | |
bool | IsHDRDisplaySettingEnabled () |
Return true when HDR display is available and enabled in settings. | |
bool | IsVideoSuperResolutionSettingEnabled () |
Return true when "Video Super Resolution" is supported and enabled in settings. | |
bool | IsHighPrecisionProcessingSettingEnabled () |
Return true when setting "High Precision Processing" is enabled. | |
std::pair< bool, int > | GetDitherSettings () |
Get dither settings. | |
virtual bool | BindTextureUploadContext () |
Binds a shared context to the current thread, in order to upload textures asynchronously. | |
virtual bool | UnbindTextureUploadContext () |
Unbinds the shared context. | |
virtual bool | HasContext () |
Checks if a graphics context is already bound to the current thread. | |
Public Member Functions inherited from KODI::WINDOWING::WAYLAND::IInputHandler | |
virtual | ~IInputHandler ()=default |
Public Member Functions inherited from KODI::WINDOWING::WAYLAND::IWindowDecorationHandler | |
virtual | ~IWindowDecorationHandler ()=default |
Public Member Functions inherited from KODI::WINDOWING::WAYLAND::IShellSurfaceHandler | |
virtual | ~IShellSurfaceHandler ()=default |
Protected Member Functions | |
std::unique_ptr< KODI::WINDOWING::IOSScreenSaver > | GetOSScreenSaverImpl () override |
CSizeInt | GetBufferSize () const |
std::unique_ptr< CConnection > const & | GetConnection () |
wayland::surface_t | GetMainSurface () |
IShellSurface * | GetShellSurface () |
void | PrepareFramePresentation () |
void | FinishFramePresentation () |
virtual void | SetContextSize (CSizeInt size)=0 |
virtual IShellSurface * | CreateShellSurface (const std::string &name) |
void | OnConfigure (std::uint32_t serial, CSizeInt size, IShellSurface::StateBitset state) override |
void | OnClose () override |
virtual std::unique_ptr< CSeat > | CreateSeat (std::uint32_t name, wayland::seat_t &seat) |
Protected Member Functions inherited from CWinSystemBase | |
void | UpdateDesktopResolution (RESOLUTION_INFO &newRes, const std::string &output, int width, int height, float refreshRate, uint32_t dwFlags) |
void | UpdateDesktopResolution (RESOLUTION_INFO &newRes, const std::string &output, int width, int height, int screenWidth, int screenHeight, float refreshRate, uint32_t dwFlags) |
Additional Inherited Members | |
Static Public Member Functions inherited from CWinSystemBase | |
static std::unique_ptr< CWinSystemBase > | CreateWinSystem () |
Static Public Attributes inherited from CWinSystemBase | |
static const char * | SETTING_WINSYSTEM_IS_HDR_DISPLAY = "winsystem.ishdrdisplay" |
Protected Attributes inherited from CWinSystemBase | |
int | m_nWidth = 0 |
int | m_nHeight = 0 |
int | m_nTop = 0 |
int | m_nLeft = 0 |
bool | m_bWindowCreated = false |
bool | m_bFullScreen = false |
bool | m_bBlankOtherDisplay = false |
float | m_fRefreshRate = 0.0f |
std::unique_ptr< KODI::WINDOWING::COSScreenSaverManager > | m_screenSaverManager |
CCriticalSection | m_renderLoopSection |
std::vector< IRenderLoop * > | m_renderLoopClients |
std::unique_ptr< IWinEvents > | m_winEvents |
std::unique_ptr< CGraphicContext > | m_gfxContext |
std::shared_ptr< CDPMSSupport > | m_dpms |
using KODI::WINDOWING::WAYLAND::CWinSystemWayland::PresentationFeedbackHandler = std::function<void(timespec , std::uint32_t , std::uint32_t , float , std::uint64_t )> |
CWinSystemWayland::CWinSystemWayland | ( | ) |
|
overridenoexcept |
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overridevirtual |
Implements CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContext, and KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
protectedvirtual |
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
protectedvirtual |
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
overridevirtual |
Reimplemented from CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContext.
|
overridevirtual |
Reimplemented from CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContext.
|
protected |
|
overridevirtual |
Reimplemented from CWinSystemBase.
Reimplemented from CWinSystemBase.
|
inlineprotected |
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
inlineprotected |
|
overridevirtual |
Get average display latency.
The latency should be measured as the time between finishing the rendering of a frame, i.e. calling PresentRender, and the rendered content becoming visible on the screen.
Reimplemented from CWinSystemBase.
|
overridevirtual |
Get time that should be subtracted from the display latency for this frame in milliseconds.
Contrary to GetDisplayLatency, this value is calculated ad-hoc for the frame currently being rendered and not a value that is calculated/ averaged from past frames and their presentation times
Reimplemented from CWinSystemBase.
|
inlineprotected |
|
inlineoverridevirtual |
Reimplemented from CWinSystemBase.
|
overrideprotectedvirtual |
Reimplemented from CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
inlineprotected |
float CWinSystemWayland::GetSyncOutputRefreshRate | ( | ) |
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overridevirtual |
Reimplemented from CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
overridevirtual |
Reimplemented from CWinSystemBase.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContextGL, KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContextGLES, and KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overrideprotectedvirtual |
Implements KODI::WINDOWING::WAYLAND::IShellSurfaceHandler.
|
overrideprotectedvirtual |
Implements KODI::WINDOWING::WAYLAND::IShellSurfaceHandler.
Reimplemented in KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS.
|
protected |
|
overridevirtual |
Implements CWinSystemBase.
KODI::CSignalRegistration CWinSystemWayland::RegisterOnPresentationFeedback | ( | const PresentationFeedbackHandler & | handler | ) |
|
overridevirtual |
Implements CWinSystemBase.
|
overridevirtual |
Implements CWinSystemBase.
Reimplemented from CWinSystemBase.
|
overridevirtual |
Implements CWinSystemBase.
|
overridevirtual |
Reimplemented from CWinSystemBase.
|
overridevirtual |
Reimplemented from CWinSystemBase.
CSizeInt KODI::WINDOWING::WAYLAND::CWinSystemWayland::configuredSize |
std::uint32_t KODI::WINDOWING::WAYLAND::CWinSystemWayland::configureSerial {} |
bool KODI::WINDOWING::WAYLAND::CWinSystemWayland::mustBeAcked {false} |
int KODI::WINDOWING::WAYLAND::CWinSystemWayland::scale {1} |
IShellSurface::StateBitset KODI::WINDOWING::WAYLAND::CWinSystemWayland::shellSurfaceState |