Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
KODI::WINDOWING::WAYLAND::CWinSystemWayland Class Referenceabstract

#include <WinSystemWayland.h>

Inheritance diagram for KODI::WINDOWING::WAYLAND::CWinSystemWayland:
CWinSystemBase KODI::WINDOWING::WAYLAND::IInputHandler KODI::WINDOWING::WAYLAND::IWindowDecorationHandler KODI::WINDOWING::WAYLAND::IShellSurfaceHandler KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContext KODI::WINDOWING::WAYLAND::CWinSystemWaylandWebOS KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContextGL KODI::WINDOWING::WAYLAND::CWinSystemWaylandEGLContextGLES

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< CVideoSyncGetVideoSync (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 CRenderSystemBaseGetRenderSystem ()
 
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::COSScreenSaverManagerGetOSScreenSaver ()
 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_WHRScreenResolutions (float refreshrate)
 
std::vector< REFRESHRATERefreshRates (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 CGraphicContextGetGfxContext () const
 
virtual voidGetHWContext ()
 Get OS specific hardware context.
 
std::shared_ptr< CDPMSSupportGetDPMSManager ()
 
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, intGetDitherSettings ()
 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::IOSScreenSaverGetOSScreenSaverImpl () override
 
CSizeInt GetBufferSize () const
 
std::unique_ptr< CConnection > const & GetConnection ()
 
wayland::surface_t GetMainSurface ()
 
IShellSurfaceGetShellSurface ()
 
void PrepareFramePresentation ()
 
void FinishFramePresentation ()
 
virtual void SetContextSize (CSizeInt size)=0
 
virtual IShellSurfaceCreateShellSurface (const std::string &name)
 
void OnConfigure (std::uint32_t serial, CSizeInt size, IShellSurface::StateBitset state) override
 
void OnClose () override
 
virtual std::unique_ptr< CSeatCreateSeat (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< CWinSystemBaseCreateWinSystem ()
 
- 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::COSScreenSaverManagerm_screenSaverManager
 
CCriticalSection m_renderLoopSection
 
std::vector< IRenderLoop * > m_renderLoopClients
 
std::unique_ptr< IWinEventsm_winEvents
 
std::unique_ptr< CGraphicContextm_gfxContext
 
std::shared_ptr< CDPMSSupportm_dpms
 

Member Typedef Documentation

◆ PresentationFeedbackHandler

using KODI::WINDOWING::WAYLAND::CWinSystemWayland::PresentationFeedbackHandler = std::function<void(timespec , std::uint32_t , std::uint32_t , float , std::uint64_t )>

Constructor & Destructor Documentation

◆ CWinSystemWayland()

CWinSystemWayland::CWinSystemWayland ( )

◆ ~CWinSystemWayland()

CWinSystemWayland::~CWinSystemWayland ( )
overridenoexcept

Member Function Documentation

◆ CanDoWindowed()

bool CWinSystemWayland::CanDoWindowed ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ CreateNewWindow()

bool CWinSystemWayland::CreateNewWindow ( const std::string & name,
bool fullScreen,
RESOLUTION_INFO & res )
overridevirtual

◆ CreateSeat()

std::unique_ptr< CSeat > CWinSystemWayland::CreateSeat ( std::uint32_t name,
wayland::seat_t & seat )
protectedvirtual

◆ CreateShellSurface()

IShellSurface * CWinSystemWayland::CreateShellSurface ( const std::string & name)
protectedvirtual

◆ DestroyWindow()

bool CWinSystemWayland::DestroyWindow ( )
overridevirtual

◆ DestroyWindowSystem()

bool CWinSystemWayland::DestroyWindowSystem ( )
overridevirtual

◆ FinishFramePresentation()

void CWinSystemWayland::FinishFramePresentation ( )
protected

◆ FinishModeChange()

void CWinSystemWayland::FinishModeChange ( RESOLUTION res)
overridevirtual

Reimplemented from CWinSystemBase.

◆ FinishWindowResize()

void CWinSystemWayland::FinishWindowResize ( int newWidth,
int newHeight )
overridevirtual

Reimplemented from CWinSystemBase.

◆ GetBufferSize()

CSizeInt KODI::WINDOWING::WAYLAND::CWinSystemWayland::GetBufferSize ( ) const
inlineprotected

◆ GetClipboardText()

std::string CWinSystemWayland::GetClipboardText ( void )
overridevirtual

Reimplemented from CWinSystemBase.

◆ GetConnectedOutputs()

std::vector< std::string > CWinSystemWayland::GetConnectedOutputs ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ GetConnection()

std::unique_ptr< CConnection > const & KODI::WINDOWING::WAYLAND::CWinSystemWayland::GetConnection ( )
inlineprotected

◆ GetDisplayLatency()

float CWinSystemWayland::GetDisplayLatency ( )
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.

Returns
average display latency in seconds, or negative value if unknown

Reimplemented from CWinSystemBase.

◆ GetFrameLatencyAdjustment()

float CWinSystemWayland::GetFrameLatencyAdjustment ( )
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.

◆ GetMainSurface()

wayland::surface_t KODI::WINDOWING::WAYLAND::CWinSystemWayland::GetMainSurface ( )
inlineprotected

◆ GetName()

const std::string KODI::WINDOWING::WAYLAND::CWinSystemWayland::GetName ( )
inlineoverridevirtual

Reimplemented from CWinSystemBase.

◆ GetOSScreenSaverImpl()

std::unique_ptr< IOSScreenSaver > CWinSystemWayland::GetOSScreenSaverImpl ( )
overrideprotectedvirtual

◆ GetShellSurface()

IShellSurface * KODI::WINDOWING::WAYLAND::CWinSystemWayland::GetShellSurface ( )
inlineprotected

◆ GetSyncOutputRefreshRate()

float CWinSystemWayland::GetSyncOutputRefreshRate ( )

◆ GetVideoSync()

std::unique_ptr< CVideoSync > CWinSystemWayland::GetVideoSync ( CVideoReferenceClock * clock)
overridevirtual

Reimplemented from CWinSystemBase.

◆ HasCursor()

bool CWinSystemWayland::HasCursor ( )
overridevirtual

◆ InitWindowSystem()

◆ MessagePump()

bool CWinSystemWayland::MessagePump ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ Minimize()

bool CWinSystemWayland::Minimize ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ OnClose()

void CWinSystemWayland::OnClose ( )
overrideprotectedvirtual

◆ OnConfigure()

void CWinSystemWayland::OnConfigure ( std::uint32_t serial,
CSizeInt size,
IShellSurface::StateBitset state )
overrideprotectedvirtual

◆ PrepareFramePresentation()

void CWinSystemWayland::PrepareFramePresentation ( )
protected

◆ Register()

void CWinSystemWayland::Register ( IDispResource * resource)
overridevirtual

Implements CWinSystemBase.

◆ RegisterOnPresentationFeedback()

KODI::CSignalRegistration CWinSystemWayland::RegisterOnPresentationFeedback ( const PresentationFeedbackHandler & handler)

◆ ResizeWindow()

bool CWinSystemWayland::ResizeWindow ( int newWidth,
int newHeight,
int newLeft,
int newTop )
overridevirtual

Implements CWinSystemBase.

◆ SetContextSize()

virtual void KODI::WINDOWING::WAYLAND::CWinSystemWayland::SetContextSize ( CSizeInt size)
protectedpure virtual

◆ SetFullScreen()

bool CWinSystemWayland::SetFullScreen ( bool fullScreen,
RESOLUTION_INFO & res,
bool blankOtherDisplays )
overridevirtual

Implements CWinSystemBase.

◆ ShowOSMouse()

void CWinSystemWayland::ShowOSMouse ( bool show)
overridevirtual

Reimplemented from CWinSystemBase.

◆ Unregister()

void CWinSystemWayland::Unregister ( IDispResource * resource)
overridevirtual

Implements CWinSystemBase.

◆ UpdateResolutions()

void CWinSystemWayland::UpdateResolutions ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ UseLimitedColor()

bool CWinSystemWayland::UseLimitedColor ( )
overridevirtual

Reimplemented from CWinSystemBase.

Member Data Documentation

◆ configuredSize

CSizeInt KODI::WINDOWING::WAYLAND::CWinSystemWayland::configuredSize

◆ configureSerial

std::uint32_t KODI::WINDOWING::WAYLAND::CWinSystemWayland::configureSerial {}

◆ mustBeAcked

bool KODI::WINDOWING::WAYLAND::CWinSystemWayland::mustBeAcked {false}

◆ scale

int KODI::WINDOWING::WAYLAND::CWinSystemWayland::scale {1}

◆ shellSurfaceState

IShellSurface::StateBitset KODI::WINDOWING::WAYLAND::CWinSystemWayland::shellSurfaceState

The documentation for this class was generated from the following files: