Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
CWinSystemBase Class Referenceabstract

#include <WinSystem.h>

Inheritance diagram for CWinSystemBase:
CWinSystemAmlogic CWinSystemAndroid CWinSystemIOS CWinSystemOSX CWinSystemRpi CWinSystemWin10 CWinSystemWin32 CWinSystemX11 KODI::WINDOWING::GBM::CWinSystemGbm KODI::WINDOWING::WAYLAND::CWinSystemWayland

Public Member Functions

 CWinSystemBase ()
 
virtual ~CWinSystemBase ()
 
virtual CRenderSystemBaseGetRenderSystem ()
 
virtual bool InitWindowSystem ()
 
virtual bool DestroyWindowSystem ()
 
virtual bool CreateNewWindow (const std::string &name, bool fullScreen, RESOLUTION_INFO &res)=0
 
virtual bool DestroyWindow ()
 
virtual bool ResizeWindow (int newWidth, int newHeight, int newLeft, int newTop)=0
 
virtual bool SetFullScreen (bool fullScreen, RESOLUTION_INFO &res, bool blankOtherDisplays)=0
 
virtual bool MoveWindow (int topLeft, int topRight)
 
virtual void FinishModeChange (RESOLUTION res)
 
virtual void FinishWindowResize (int newWidth, int newHeight)
 
virtual bool CenterWindow ()
 
virtual bool IsCreated ()
 
virtual void NotifyAppFocusChange (bool bGaining)
 
virtual void NotifyAppActiveChange (bool bActivated)
 
virtual void ShowOSMouse (bool show)
 
virtual bool HasCursor ()
 
virtual bool HasInertialGestures ()
 
virtual bool UseLimitedColor ()
 
virtual int NoOfBuffers ()
 
virtual float GetDisplayLatency ()
 
virtual float GetFrameLatencyAdjustment ()
 
virtual bool Minimize ()
 
virtual bool Restore ()
 
virtual bool Hide ()
 
virtual bool Show (bool raise=true)
 
virtual std::unique_ptr< CVideoSyncGetVideoSync (void *clock)
 
virtual void OnMove (int x, int y)
 
KODI::WINDOWING::COSScreenSaverManagerGetOSScreenSaver ()
 
unsigned int GetWidth ()
 
unsigned int GetHeight ()
 
virtual bool CanDoWindowed ()
 
bool IsFullScreen ()
 
virtual void UpdateResolutions ()
 
void SetWindowResolution (int width, int height)
 
std::vector< RESOLUTION_WHRScreenResolutions (float refreshrate)
 
std::vector< REFRESHRATERefreshRates (int width, int height, uint32_t dwFlags)
 
REFRESHRATE DefaultRefreshRate (std::vector< REFRESHRATE > rates)
 
virtual bool HasCalibration (const RESOLUTION_INFO &resInfo)
 
virtual std::string GetClipboardText (void)
 
virtual void Register (IDispResource *resource)=0
 
virtual void Unregister (IDispResource *resource)=0
 
void RegisterRenderLoop (IRenderLoop *client)
 
void UnregisterRenderLoop (IRenderLoop *client)
 
void DriveRenderLoop ()
 
virtual bool MessagePump ()
 
CGraphicContextGetGfxContext ()
 

Static Public Member Functions

static std::unique_ptr< CWinSystemBaseCreateWinSystem ()
 

Protected Member Functions

void UpdateDesktopResolution (RESOLUTION_INFO &newRes, const std::string &output, int width, int height, float refreshRate, uint32_t dwFlags)
 
virtual std::unique_ptr< KODI::WINDOWING::IOSScreenSaverGetOSScreenSaverImpl ()
 

Protected Attributes

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
 

Constructor & Destructor Documentation

◆ CWinSystemBase()

CWinSystemBase::CWinSystemBase ( )

◆ ~CWinSystemBase()

CWinSystemBase::~CWinSystemBase ( )
virtualdefault

Member Function Documentation

◆ CanDoWindowed()

virtual bool CWinSystemBase::CanDoWindowed ( )
inlinevirtual

◆ CenterWindow()

virtual bool CWinSystemBase::CenterWindow ( )
inlinevirtual

Reimplemented in CWinSystemWin32.

◆ CreateNewWindow()

◆ CreateWinSystem()

std::unique_ptr< CWinSystemBase > CWinSystemBase::CreateWinSystem ( )
static

◆ DefaultRefreshRate()

REFRESHRATE CWinSystemBase::DefaultRefreshRate ( std::vector< REFRESHRATE rates)

◆ DestroyWindow()

◆ DestroyWindowSystem()

◆ DriveRenderLoop()

void CWinSystemBase::DriveRenderLoop ( )

◆ FinishModeChange()

virtual void CWinSystemBase::FinishModeChange ( RESOLUTION  res)
inlinevirtual

◆ FinishWindowResize()

virtual void CWinSystemBase::FinishWindowResize ( int  newWidth,
int  newHeight 
)
inlinevirtual

◆ GetClipboardText()

std::string CWinSystemBase::GetClipboardText ( void  )
virtual

◆ GetDisplayLatency()

virtual float CWinSystemBase::GetDisplayLatency ( )
inlinevirtual

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 in KODI::WINDOWING::WAYLAND::CWinSystemWayland.

◆ GetFrameLatencyAdjustment()

virtual float CWinSystemBase::GetFrameLatencyAdjustment ( )
inlinevirtual

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 in CWinSystemAndroidGLESContext, KODI::WINDOWING::WAYLAND::CWinSystemWayland, and CWinSystemX11GLContext.

◆ GetGfxContext()

CGraphicContext & CWinSystemBase::GetGfxContext ( )

◆ GetHeight()

unsigned int CWinSystemBase::GetHeight ( )
inline

◆ GetOSScreenSaver()

KODI::WINDOWING::COSScreenSaverManager * CWinSystemBase::GetOSScreenSaver ( )

Get OS screen saver inhibit implementation if available

Returns
OS screen saver implementation that can be used with this windowing system or nullptr if unsupported. Lifetime of the returned object will usually end with DestroyWindowSystem, so do not use any more after calling that.

◆ GetOSScreenSaverImpl()

virtual std::unique_ptr< KODI::WINDOWING::IOSScreenSaver > CWinSystemBase::GetOSScreenSaverImpl ( )
inlineprotectedvirtual

◆ GetRenderSystem()

◆ GetVideoSync()

◆ GetWidth()

unsigned int CWinSystemBase::GetWidth ( )
inline

◆ HasCalibration()

virtual bool CWinSystemBase::HasCalibration ( const RESOLUTION_INFO resInfo)
inlinevirtual

Reimplemented in CWinSystemX11.

◆ HasCursor()

virtual bool CWinSystemBase::HasCursor ( )
inlinevirtual

◆ HasInertialGestures()

virtual bool CWinSystemBase::HasInertialGestures ( )
inlinevirtual

Reimplemented in CWinSystemWin10, and CWinSystemWin32.

◆ Hide()

◆ InitWindowSystem()

◆ IsCreated()

virtual bool CWinSystemBase::IsCreated ( )
inlinevirtual

◆ IsFullScreen()

bool CWinSystemBase::IsFullScreen ( )
inline

◆ MessagePump()

virtual bool CWinSystemBase::MessagePump ( )
inlinevirtual

◆ Minimize()

virtual bool CWinSystemBase::Minimize ( )
inlinevirtual

◆ MoveWindow()

virtual bool CWinSystemBase::MoveWindow ( int  topLeft,
int  topRight 
)
inlinevirtual

◆ NoOfBuffers()

int CWinSystemBase::NoOfBuffers ( void  )
virtual

◆ NotifyAppActiveChange()

virtual void CWinSystemBase::NotifyAppActiveChange ( bool  bActivated)
inlinevirtual

Reimplemented in CWinSystemIOS, and CWinSystemX11.

◆ NotifyAppFocusChange()

virtual void CWinSystemBase::NotifyAppFocusChange ( bool  bGaining)
inlinevirtual

◆ OnMove()

virtual void CWinSystemBase::OnMove ( int  x,
int  y 
)
inlinevirtual

◆ RefreshRates()

std::vector< REFRESHRATE > CWinSystemBase::RefreshRates ( int  width,
int  height,
uint32_t  dwFlags 
)

◆ Register()

◆ RegisterRenderLoop()

void CWinSystemBase::RegisterRenderLoop ( IRenderLoop client)

◆ ResizeWindow()

◆ Restore()

virtual bool CWinSystemBase::Restore ( )
inlinevirtual

◆ ScreenResolutions()

std::vector< RESOLUTION_WHR > CWinSystemBase::ScreenResolutions ( float  refreshrate)

◆ SetFullScreen()

◆ SetWindowResolution()

void CWinSystemBase::SetWindowResolution ( int  width,
int  height 
)

◆ Show()

virtual bool CWinSystemBase::Show ( bool  raise = true)
inlinevirtual

◆ ShowOSMouse()

virtual void CWinSystemBase::ShowOSMouse ( bool  show)
inlinevirtual

◆ Unregister()

◆ UnregisterRenderLoop()

void CWinSystemBase::UnregisterRenderLoop ( IRenderLoop client)

◆ UpdateDesktopResolution()

void CWinSystemBase::UpdateDesktopResolution ( RESOLUTION_INFO newRes,
const std::string &  output,
int  width,
int  height,
float  refreshRate,
uint32_t  dwFlags 
)
protected

◆ UpdateResolutions()

◆ UseLimitedColor()

bool CWinSystemBase::UseLimitedColor ( )
virtual

Member Data Documentation

◆ m_bBlankOtherDisplay

bool CWinSystemBase::m_bBlankOtherDisplay = false
protected

◆ m_bFullScreen

bool CWinSystemBase::m_bFullScreen = false
protected

◆ m_bWindowCreated

bool CWinSystemBase::m_bWindowCreated = false
protected

◆ m_fRefreshRate

float CWinSystemBase::m_fRefreshRate = 0.0f
protected

◆ m_gfxContext

std::unique_ptr<CGraphicContext> CWinSystemBase::m_gfxContext
protected

◆ m_nHeight

int CWinSystemBase::m_nHeight = 0
protected

◆ m_nLeft

int CWinSystemBase::m_nLeft = 0
protected

◆ m_nTop

int CWinSystemBase::m_nTop = 0
protected

◆ m_nWidth

int CWinSystemBase::m_nWidth = 0
protected

◆ m_renderLoopClients

std::vector<IRenderLoop*> CWinSystemBase::m_renderLoopClients
protected

◆ m_renderLoopSection

CCriticalSection CWinSystemBase::m_renderLoopSection
protected

◆ m_screenSaverManager

std::unique_ptr<KODI::WINDOWING::COSScreenSaverManager> CWinSystemBase::m_screenSaverManager
protected

◆ m_winEvents

std::unique_ptr<IWinEvents> CWinSystemBase::m_winEvents
protected

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