Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QKmsDevice Class Referenceabstract

#include <qkmsdevice_p.h>

Inheritance diagram for QKmsDevice:
Collaboration diagram for QKmsDevice:

Classes

struct  OrderedScreen
struct  ScreenInfo

Public Member Functions

 QKmsDevice (QKmsScreenConfig *screenConfig, const QString &path=QString())
virtual ~QKmsDevice ()
virtual bool open ()=0
virtual void close ()=0
virtual voidnativeDisplay () const =0
bool hasAtomicSupport ()
void checkConnectedScreens ()
void updateScreens ()
void createScreens ()
int fd () const
QString devicePath () const
QKmsScreenConfigscreenConfig () const

Protected Types

typedef std::function< void(drmModePropertyPtr, quint64)> PropCallback

Protected Member Functions

void registerScreens (QList< uint32_t > newConnects=QList< uint32_t >())
virtual QPlatformScreencreateScreen (const QKmsOutput &output)=0
virtual QPlatformScreencreateHeadlessScreen ()
virtual void registerScreenCloning (QPlatformScreen *screen, QPlatformScreen *screenThisScreenClones, const QList< QPlatformScreen * > &screensCloningThisScreen)
virtual void registerScreen (QPlatformScreen *screen, bool isPrimary, const QPoint &virtualPos, const QList< QPlatformScreen * > &virtualSiblings)=0
virtual void unregisterScreen (QPlatformScreen *screen)
virtual void updateScreen (QPlatformScreen *screen, const QPoint &virtualPos, const QList< QPlatformScreen * > &virtualSiblings)
virtual void updateScreenOutput (QPlatformScreen *screen, const QKmsOutput &output)
void setFd (int fd)
int crtcForConnector (drmModeResPtr resources, drmModeConnectorPtr connector)
bool createScreenInfoForConnector (drmModeResPtr resources, drmModeConnectorPtr connector, ScreenInfo &vinfo)
drmModePropertyPtr connectorProperty (drmModeConnectorPtr connector, const QByteArray &name)
drmModePropertyBlobPtr connectorPropertyBlob (drmModeConnectorPtr connector, const QByteArray &name)
void enumerateProperties (drmModeObjectPropertiesPtr objProps, PropCallback callback)
void discoverPlanes ()
void parseConnectorProperties (uint32_t connectorId, QKmsOutput *output)
void parseCrtcProperties (uint32_t crtcId, QKmsOutput *output)

Protected Attributes

QKmsScreenConfigm_screenConfig
QString m_path
int m_dri_fd
bool m_has_atomic_support
quint32 m_crtc_allocator
QList< QKmsPlanem_planes
QMap< uint32_t, OrderedScreenm_registeredScreens
QPlatformScreenm_headlessScreen = nullptr

Detailed Description

Definition at line 190 of file qkmsdevice_p.h.

Member Typedef Documentation

◆ PropCallback

typedef std::function<void(drmModePropertyPtr, quint64)> QKmsDevice::PropCallback
protected

Definition at line 253 of file qkmsdevice_p.h.

Constructor & Destructor Documentation

◆ QKmsDevice()

QKmsDevice::QKmsDevice ( QKmsScreenConfig * screenConfig,
const QString & path = QString() )

Definition at line 581 of file qkmsdevice.cpp.

References QKmsDevice(), m_dri_fd, m_has_atomic_support, and m_screenConfig.

Referenced by QKmsDevice().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~QKmsDevice()

QKmsDevice::~QKmsDevice ( )
virtual

Definition at line 598 of file qkmsdevice.cpp.

Member Function Documentation

◆ checkConnectedScreens()

void QKmsDevice::checkConnectedScreens ( )

Definition at line 605 of file qkmsdevice.cpp.

References QKmsScreenConfig::headless(), m_dri_fd, and m_screenConfig.

Here is the call graph for this function:

◆ close()

virtual void QKmsDevice::close ( )
pure virtual

◆ connectorProperty()

drmModePropertyPtr QKmsDevice::connectorProperty ( drmModeConnectorPtr connector,
const QByteArray & name )
protected

Definition at line 548 of file qkmsdevice.cpp.

References m_dri_fd.

◆ connectorPropertyBlob()

drmModePropertyBlobPtr QKmsDevice::connectorPropertyBlob ( drmModeConnectorPtr connector,
const QByteArray & name )
protected

Definition at line 564 of file qkmsdevice.cpp.

References m_dri_fd.

◆ createHeadlessScreen()

QPlatformScreen * QKmsDevice::createHeadlessScreen ( )
protectedvirtual

Reimplemented in QEglFSKmsGbmDevice, and QEglFSKmsVsp2Device.

Definition at line 1089 of file qkmsdevice.cpp.

◆ createScreen()

virtual QPlatformScreen * QKmsDevice::createScreen ( const QKmsOutput & output)
protectedpure virtual

◆ createScreenInfoForConnector()

bool QKmsDevice::createScreenInfoForConnector ( drmModeResPtr resources,
drmModeConnectorPtr connector,
ScreenInfo & vinfo )
protected

Definition at line 184 of file qkmsdevice.cpp.

References QKmsOutput::connector_id, QKmsOutput::crtc_id, QKmsOutput::crtc_index, crtcForConnector(), QKmsOutput::drm_format_requested_by_user, QKmsOutput::eglfs_plane, QKmsOutput::forced_plane_id, QKmsOutput::forced_plane_set, QKmsDevice::ScreenInfo::isPrimary, m_dri_fd, m_screenConfig, QKmsOutput::mode, QKmsOutput::mode_set, OutputConfigCurrent, OutputConfigMode, OutputConfigModeline, OutputConfigOff, OutputConfigPreferred, OutputConfigSkip, QKmsOutput::preferred_mode, QKmsOutput::saved_crtc, QKmsOutput::subpixel, and QKmsOutput::wants_forced_plane.

Referenced by createScreens(), and updateScreens().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createScreens()

void QKmsDevice::createScreens ( )

Definition at line 834 of file qkmsdevice.cpp.

References createScreenInfoForConnector(), discoverPlanes(), QKmsScreenConfig::headless(), m_dri_fd, and m_screenConfig.

Here is the call graph for this function:

◆ crtcForConnector()

int QKmsDevice::crtcForConnector ( drmModeResPtr resources,
drmModeConnectorPtr connector )
protected

Definition at line 33 of file qkmsdevice.cpp.

References m_dri_fd.

Referenced by createScreenInfoForConnector().

Here is the caller graph for this function:

◆ devicePath()

QString QKmsDevice::devicePath ( ) const

Definition at line 1261 of file qkmsdevice.cpp.

◆ discoverPlanes()

void QKmsDevice::discoverPlanes ( )
protected

Definition at line 1170 of file qkmsdevice.cpp.

References QKmsPlane::blendOpPropertyId, QKmsPlane::crtcheightPropertyId, QKmsPlane::crtcPropertyId, QKmsPlane::crtcwidthPropertyId, QKmsPlane::crtcXPropertyId, QKmsPlane::crtcYPropertyId, enumerateProperties(), QKmsPlane::framebufferPropertyId, m_dri_fd, QKmsPlane::possibleCrtcs, QKmsPlane::rotationPropertyId, QKmsPlane::srcheightPropertyId, QKmsPlane::srcwidthPropertyId, QKmsPlane::srcXPropertyId, QKmsPlane::srcYPropertyId, QKmsPlane::type, and QKmsPlane::zposPropertyId.

Referenced by createScreens().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ enumerateProperties()

void QKmsDevice::enumerateProperties ( drmModeObjectPropertiesPtr objProps,
PropCallback callback )
protected

Definition at line 1132 of file qkmsdevice.cpp.

References m_dri_fd, and propTypeIs().

Referenced by discoverPlanes(), parseConnectorProperties(), and parseCrtcProperties().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fd()

int QKmsDevice::fd ( ) const

Definition at line 1256 of file qkmsdevice.cpp.

References m_dri_fd.

Referenced by QKmsOutput::restoreMode(), and QKmsOutput::setPowerState().

Here is the caller graph for this function:

◆ hasAtomicSupport()

bool QKmsDevice::hasAtomicSupport ( )

Definition at line 1272 of file qkmsdevice.cpp.

References m_has_atomic_support.

◆ nativeDisplay()

virtual void * QKmsDevice::nativeDisplay ( ) const
pure virtual

◆ open()

virtual bool QKmsDevice::open ( )
pure virtual

◆ parseConnectorProperties()

void QKmsDevice::parseConnectorProperties ( uint32_t connectorId,
QKmsOutput * output )
protected

Definition at line 1327 of file qkmsdevice.cpp.

References QKmsOutput::crtcIdPropertyId, and enumerateProperties().

Here is the call graph for this function:

◆ parseCrtcProperties()

void QKmsDevice::parseCrtcProperties ( uint32_t crtcId,
QKmsOutput * output )
protected

Definition at line 1344 of file qkmsdevice.cpp.

References QKmsOutput::activePropertyId, enumerateProperties(), and QKmsOutput::modeIdPropertyId.

Here is the call graph for this function:

◆ registerScreen()

virtual void QKmsDevice::registerScreen ( QPlatformScreen * screen,
bool isPrimary,
const QPoint & virtualPos,
const QList< QPlatformScreen * > & virtualSiblings )
protectedpure virtual

◆ registerScreenCloning()

void QKmsDevice::registerScreenCloning ( QPlatformScreen * screen,
QPlatformScreen * screenThisScreenClones,
const QList< QPlatformScreen * > & screensCloningThisScreen )
protectedvirtual

Reimplemented in QEglFSKmsGbmDevice, and QEglFSKmsVsp2Device.

Definition at line 1096 of file qkmsdevice.cpp.

◆ registerScreens()

void QKmsDevice::registerScreens ( QList< uint32_t > newConnects = QList<uint32_t>())
protected

Definition at line 927 of file qkmsdevice.cpp.

References m_screenConfig, and QKmsScreenConfig::separateScreens().

Here is the call graph for this function:

◆ screenConfig()

QKmsScreenConfig * QKmsDevice::screenConfig ( ) const

Definition at line 1363 of file qkmsdevice.cpp.

References m_screenConfig.

◆ setFd()

void QKmsDevice::setFd ( int fd)
protected

Definition at line 1266 of file qkmsdevice.cpp.

References m_dri_fd.

◆ unregisterScreen()

void QKmsDevice::unregisterScreen ( QPlatformScreen * screen)
protectedvirtual

Reimplemented in QEglFSKmsDevice, and QEglFSKmsGbmDevice.

Definition at line 1105 of file qkmsdevice.cpp.

◆ updateScreen()

void QKmsDevice::updateScreen ( QPlatformScreen * screen,
const QPoint & virtualPos,
const QList< QPlatformScreen * > & virtualSiblings )
protectedvirtual

Reimplemented in QEglFSKmsDevice.

Definition at line 1110 of file qkmsdevice.cpp.

◆ updateScreenOutput()

void QKmsDevice::updateScreenOutput ( QPlatformScreen * screen,
const QKmsOutput & output )
protectedvirtual

Reimplemented in QEglFSKmsDevice.

Definition at line 1118 of file qkmsdevice.cpp.

◆ updateScreens()

void QKmsDevice::updateScreens ( )

Definition at line 733 of file qkmsdevice.cpp.

References createScreenInfoForConnector(), QKmsScreenConfig::headless(), m_dri_fd, and m_screenConfig.

Here is the call graph for this function:

Member Data Documentation

◆ m_crtc_allocator

quint32 QKmsDevice::m_crtc_allocator
protected

Definition at line 272 of file qkmsdevice_p.h.

◆ m_dri_fd

◆ m_has_atomic_support

bool QKmsDevice::m_has_atomic_support
protected

Definition at line 263 of file qkmsdevice_p.h.

Referenced by QKmsDevice(), and hasAtomicSupport().

◆ m_headlessScreen

QPlatformScreen* QKmsDevice::m_headlessScreen = nullptr
protected

Definition at line 276 of file qkmsdevice_p.h.

◆ m_path

QString QKmsDevice::m_path
protected

Definition at line 260 of file qkmsdevice_p.h.

◆ m_planes

QList<QKmsPlane> QKmsDevice::m_planes
protected

Definition at line 274 of file qkmsdevice_p.h.

◆ m_registeredScreens

QMap<uint32_t, OrderedScreen> QKmsDevice::m_registeredScreens
protected

Definition at line 275 of file qkmsdevice_p.h.

◆ m_screenConfig


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