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

#include <WinSystemGbmEGLContext.h>

Inheritance diagram for KODI::WINDOWING::GBM::CWinSystemGbmEGLContext:
KODI::WINDOWING::LINUX::CWinSystemEGL KODI::WINDOWING::GBM::CWinSystemGbm CWinSystemBase KODI::WINDOWING::GBM::CWinSystemGbmGLContext KODI::WINDOWING::GBM::CWinSystemGbmGLESContext

Classes

struct  delete_CVaapiProxy
 

Public Member Functions

 ~CWinSystemGbmEGLContext () override=default
 
bool DestroyWindowSystem () override
 
bool CreateNewWindow (const std::string &name, bool fullScreen, RESOLUTION_INFO &res) override
 
bool DestroyWindow () override
 
bool BindTextureUploadContext () override
 Binds a shared context to the current thread, in order to upload textures asynchronously.
 
bool UnbindTextureUploadContext () override
 Unbinds the shared context.
 
bool HasContext () override
 Checks if a graphics context is already bound to the current thread.
 
- Public Member Functions inherited from KODI::WINDOWING::LINUX::CWinSystemEGL
 CWinSystemEGL (EGLenum platform, std::string const &platformExtension)
 
 ~CWinSystemEGL ()=default
 
EGLDisplay GetEGLDisplay () const
 
EGLSurface GetEGLSurface () const
 
EGLContext GetEGLContext () const
 
EGLConfig GetEGLConfig () const
 
- Public Member Functions inherited from KODI::WINDOWING::GBM::CWinSystemGbm
 CWinSystemGbm ()
 
 ~CWinSystemGbm () override
 
const std::string GetName () override
 
bool InitWindowSystem () override
 
bool ResizeWindow (int newWidth, int newHeight, int newLeft, int newTop) override
 
bool SetFullScreen (bool fullScreen, RESOLUTION_INFO &res, bool blankOtherDisplays) override
 
bool DisplayHardwareScalingEnabled () override
 
void UpdateDisplayHardwareScaling (const RESOLUTION_INFO &resInfo) override
 
void FlipPage (bool rendered, bool videoLayer, bool async)
 
bool CanDoWindowed () override
 
void UpdateResolutions () override
 
bool UseLimitedColor () override
 
bool Hide () override
 
bool Show (bool raise=true) override
 
void Register (IDispResource *resource) override
 
void Unregister (IDispResource *resource) override
 
bool SetHDR (const VideoPicture *videoPicture) override
 Set the HDR metadata. Passing nullptr as the parameter should disable HDR.
 
bool IsHDRDisplay () override
 
CHDRCapabilities GetDisplayHDRCapabilities () const override
 
std::shared_ptr< CVideoLayerBridgeGetVideoLayerBridge () const
 
void RegisterVideoLayerBridge (std::shared_ptr< CVideoLayerBridge > bridge)
 
CGBMUtils::CGBMDeviceGetGBMDevice () const
 
std::shared_ptr< CDRMUtilsGetDrm () const
 
std::vector< std::string > GetConnectedOutputs () override
 
- Public Member Functions inherited from CWinSystemBase
 CWinSystemBase ()
 
virtual ~CWinSystemBase ()
 
virtual CRenderSystemBaseGetRenderSystem ()
 
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 int NoOfBuffers ()
 
virtual void ForceFullScreen (const RESOLUTION_INFO &resInfo)
 Forces the window to fullscreen provided the window resolution.
 
virtual float GetDisplayLatency ()
 Get average display latency.
 
virtual float GetFrameLatencyAdjustment ()
 Get time that should be subtracted from the display latency for this frame in milliseconds.
 
virtual bool Minimize ()
 
virtual bool Restore ()
 
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)
 
virtual std::string GetClipboardText (void)
 
void RegisterRenderLoop (IRenderLoop *client)
 
void UnregisterRenderLoop (IRenderLoop *client)
 
void DriveRenderLoop ()
 
virtual bool MessagePump ()
 
virtual CGraphicContextGetGfxContext () const
 
virtual voidGetHWContext ()
 Get OS specific hardware context.
 
std::shared_ptr< CDPMSSupportGetDPMSManager ()
 
virtual HDR_STATUS ToggleHDR ()
 
virtual HDR_STATUS GetOSHDRStatus ()
 
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.
 

Protected Member Functions

 CWinSystemGbmEGLContext (EGLenum platform, std::string const &platformExtension)
 
bool InitWindowSystemEGL (EGLint renderableType, EGLint apiType)
 
virtual bool CreateContext ()=0
 
- Protected Member Functions inherited from KODI::WINDOWING::GBM::CWinSystemGbm
void OnLostDevice ()
 
std::unique_ptr< CVideoSyncGetVideoSync (CVideoReferenceClock *clock) override
 
- 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)
 
virtual std::unique_ptr< KODI::WINDOWING::IOSScreenSaverGetOSScreenSaverImpl ()
 

Protected Attributes

std::unique_ptr< KODI::UTILS::EGL::CEGLFencem_eglFence
 
std::unique_ptr< CVaapiProxy, delete_CVaapiProxym_vaapiProxy
 
- Protected Attributes inherited from KODI::WINDOWING::LINUX::CWinSystemEGL
CEGLContextUtils m_eglContext
 
- Protected Attributes inherited from KODI::WINDOWING::GBM::CWinSystemGbm
std::shared_ptr< CDRMUtilsm_DRM
 
std::unique_ptr< CGBMUtilsm_GBM
 
std::shared_ptr< CVideoLayerBridgem_videoLayerBridge
 
CCriticalSection m_resourceSection
 
std::vector< IDispResource * > m_resources
 
bool m_dispReset = false
 
XbmcThreads::EndTime m_dispResetTimer
 
std::unique_ptr< CLibInputHandlerm_libinput
 
- 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
 

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"
 

Constructor & Destructor Documentation

◆ ~CWinSystemGbmEGLContext()

KODI::WINDOWING::GBM::CWinSystemGbmEGLContext::~CWinSystemGbmEGLContext ( )
overridedefault

◆ CWinSystemGbmEGLContext()

KODI::WINDOWING::GBM::CWinSystemGbmEGLContext::CWinSystemGbmEGLContext ( EGLenum platform,
std::string const & platformExtension )
inlineprotected

Member Function Documentation

◆ BindTextureUploadContext()

bool CWinSystemGbmEGLContext::BindTextureUploadContext ( )
overridevirtual

Binds a shared context to the current thread, in order to upload textures asynchronously.

Returns
Return true if a texture upload context exists and the binding succeeds.

Reimplemented from CWinSystemBase.

◆ CreateContext()

virtual bool KODI::WINDOWING::GBM::CWinSystemGbmEGLContext::CreateContext ( )
protectedpure virtual

◆ CreateNewWindow()

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

Implements CWinSystemBase.

◆ DestroyWindow()

bool CWinSystemGbmEGLContext::DestroyWindow ( )
overridevirtual

Reimplemented from CWinSystemBase.

◆ DestroyWindowSystem()

bool CWinSystemGbmEGLContext::DestroyWindowSystem ( )
overridevirtual

◆ HasContext()

bool CWinSystemGbmEGLContext::HasContext ( )
overridevirtual

Checks if a graphics context is already bound to the current thread.

Returns
Return true if so.

Reimplemented from CWinSystemBase.

◆ InitWindowSystemEGL()

bool CWinSystemGbmEGLContext::InitWindowSystemEGL ( EGLint renderableType,
EGLint apiType )
protected

Inheriting classes should override InitWindowSystem() without parameters and call this function there with appropriate parameters

◆ UnbindTextureUploadContext()

bool CWinSystemGbmEGLContext::UnbindTextureUploadContext ( )
overridevirtual

Unbinds the shared context.

Returns
Return true if the texture upload context has been unbound.

Reimplemented from CWinSystemBase.

Member Data Documentation

◆ m_eglFence

std::unique_ptr<KODI::UTILS::EGL::CEGLFence> KODI::WINDOWING::GBM::CWinSystemGbmEGLContext::m_eglFence
protected

◆ m_vaapiProxy

std::unique_ptr<CVaapiProxy, delete_CVaapiProxy> KODI::WINDOWING::GBM::CWinSystemGbmEGLContext::m_vaapiProxy
protected

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