![]() |
Qt 6.x
The Qt SDK
|
#include <qeglfskmsgbmscreen_p.h>
Classes | |
struct | CloneDestination |
struct | FrameBuffer |
Public Member Functions | |
QEglFSKmsGbmScreen (QEglFSKmsDevice *device, const QKmsOutput &output, bool headless) | |
~QEglFSKmsGbmScreen () | |
QPlatformCursor * | cursor () const override |
Reimplement this function in subclass to return the cursor of the screen. | |
gbm_surface * | createSurface (EGLConfig eglConfig) |
void | resetSurface () |
void | initCloning (QPlatformScreen *screenThisScreenClones, const QList< QPlatformScreen * > &screensCloningThisScreen) |
void | waitForFlip () override |
virtual void | flip () |
virtual void | updateFlipStatus () |
virtual uint32_t | gbmFlags () |
![]() | |
QEglFSKmsScreen (QEglFSKmsDevice *device, const QKmsOutput &output, bool headless=false) | |
~QEglFSKmsScreen () | |
void | setVirtualPosition (const QPoint &pos) |
QRect | rawGeometry () const override |
int | depth () const override |
Reimplement in subclass to return current depth of the screen. | |
QImage::Format | format () const override |
Reimplement in subclass to return the image format which corresponds to the screen format. | |
QSizeF | physicalSize () const override |
Reimplement this function in subclass to return the physical size of the screen, in millimeters. | |
QDpi | logicalDpi () const override |
Reimplement this function in subclass to return the logical horizontal and vertical dots per inch metrics of the screen. | |
QDpi | logicalBaseDpi () const override |
Reimplement to return the base logical DPI for the platform. | |
Qt::ScreenOrientation | nativeOrientation () const override |
Reimplement this function in subclass to return the native orientation of the screen, e.g. | |
Qt::ScreenOrientation | orientation () const override |
Reimplement this function in subclass to return the current orientation of the screen, for example based on accelerometer data to determine the device orientation. | |
QString | name () const override |
QString | manufacturer () const override |
Reimplement this function in subclass to return the manufacturer of this screen. | |
QString | model () const override |
Reimplement this function in subclass to return the model of this screen. | |
QString | serialNumber () const override |
Reimplement this function in subclass to return the serial number of this screen. | |
qreal | refreshRate () const override |
Reimplement this function in subclass to return the vertical refresh rate of the screen, in Hz. | |
QList< QPlatformScreen * > | virtualSiblings () const override |
Returns a list of all the platform screens that are part of the same virtual desktop. | |
void | setVirtualSiblings (QList< QPlatformScreen * > sl) |
QList< QPlatformScreen::Mode > | modes () const override |
Reimplement this function in subclass to return the list of modes for this screen. | |
int | currentMode () const override |
Reimplement this function in subclass to return the index of the current mode from the modes list. | |
int | preferredMode () const override |
Reimplement this function in subclass to return the preferred mode index from the modes list. | |
QEglFSKmsDevice * | device () const |
virtual void | waitForFlip () |
QKmsOutput & | output () |
void | restoreMode () |
SubpixelAntialiasingType | subpixelAntialiasingTypeHint () const override |
Returns a hint about this screen's subpixel layout structure. | |
QPlatformScreen::PowerState | powerState () const override |
Returns the current power state. | |
void | setPowerState (QPlatformScreen::PowerState state) override |
Sets the power state for this screen. | |
bool | isCursorOutOfRange () const |
void | setCursorOutOfRange (bool b) |
virtual void | pageFlipped (unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec) |
![]() | |
QEglFSScreen (EGLDisplay display) | |
~QEglFSScreen () | |
QRect | geometry () const override |
Reimplement in subclass to return the pixel geometry of the screen. | |
virtual QRect | rawGeometry () const |
int | depth () const override |
Reimplement in subclass to return current depth of the screen. | |
QImage::Format | format () const override |
Reimplement in subclass to return the image format which corresponds to the screen format. | |
QSizeF | physicalSize () const override |
Reimplement this function in subclass to return the physical size of the screen, in millimeters. | |
QDpi | logicalDpi () const override |
Reimplement this function in subclass to return the logical horizontal and vertical dots per inch metrics of the screen. | |
QDpi | logicalBaseDpi () const override |
Reimplement to return the base logical DPI for the platform. | |
Qt::ScreenOrientation | nativeOrientation () const override |
Reimplement this function in subclass to return the native orientation of the screen, e.g. | |
Qt::ScreenOrientation | orientation () const override |
Reimplement this function in subclass to return the current orientation of the screen, for example based on accelerometer data to determine the device orientation. | |
QPlatformCursor * | cursor () const override |
Reimplement this function in subclass to return the cursor of the screen. | |
qreal | refreshRate () const override |
Reimplement this function in subclass to return the vertical refresh rate of the screen, in Hz. | |
QPixmap | grabWindow (WId wid, int x, int y, int width, int height) const override |
This function is called when Qt needs to be able to grab the content of a window. | |
EGLSurface | primarySurface () const |
EGLDisplay | display () const |
void | handleCursorMove (const QPoint &pos) |
QWindow * | topLevelAt (const QPoint &point) const override |
Return the given top level window for a given position. | |
![]() | |
QPlatformScreen () | |
virtual | ~QPlatformScreen () |
virtual bool | isPlaceholder () const |
virtual QPixmap | grabWindow (WId window, int x, int y, int width, int height) const |
This function is called when Qt needs to be able to grab the content of a window. | |
virtual QRect | geometry () const =0 |
Reimplement in subclass to return the pixel geometry of the screen. | |
virtual QRect | availableGeometry () const |
Reimplement in subclass to return the pixel geometry of the available space This normally is the desktop screen minus the task manager, global menubar etc. | |
virtual int | depth () const =0 |
Reimplement in subclass to return current depth of the screen. | |
virtual QImage::Format | format () const =0 |
Reimplement in subclass to return the image format which corresponds to the screen format. | |
virtual QColorSpace | colorSpace () const |
virtual QSizeF | physicalSize () const |
Reimplement this function in subclass to return the physical size of the screen, in millimeters. | |
virtual QDpi | logicalDpi () const |
Reimplement this function in subclass to return the logical horizontal and vertical dots per inch metrics of the screen. | |
virtual QDpi | logicalBaseDpi () const |
Reimplement to return the base logical DPI for the platform. | |
virtual qreal | devicePixelRatio () const |
Reimplement this function in subclass to return the device pixel ratio for the screen. | |
virtual qreal | refreshRate () const |
Reimplement this function in subclass to return the vertical refresh rate of the screen, in Hz. | |
virtual Qt::ScreenOrientation | nativeOrientation () const |
Reimplement this function in subclass to return the native orientation of the screen, e.g. | |
virtual Qt::ScreenOrientation | orientation () const |
Reimplement this function in subclass to return the current orientation of the screen, for example based on accelerometer data to determine the device orientation. | |
virtual QWindow * | topLevelAt (const QPoint &point) const |
Return the given top level window for a given position. | |
QWindowList | windows () const |
Return all windows residing on this screen. | |
virtual QList< QPlatformScreen * > | virtualSiblings () const |
Returns a list of all the platform screens that are part of the same virtual desktop. | |
const QPlatformScreen * | screenForPosition (const QPoint &point) const |
Find the sibling screen corresponding to globalPos. | |
QScreen * | screen () const |
virtual QString | name () const |
virtual QString | manufacturer () const |
Reimplement this function in subclass to return the manufacturer of this screen. | |
virtual QString | model () const |
Reimplement this function in subclass to return the model of this screen. | |
virtual QString | serialNumber () const |
Reimplement this function in subclass to return the serial number of this screen. | |
virtual QPlatformCursor * | cursor () const |
Reimplement this function in subclass to return the cursor of the screen. | |
virtual SubpixelAntialiasingType | subpixelAntialiasingTypeHint () const |
Returns a hint about this screen's subpixel layout structure. | |
virtual PowerState | powerState () const |
Returns the current power state. | |
virtual void | setPowerState (PowerState state) |
Sets the power state for this screen. | |
virtual QList< Mode > | modes () const |
Reimplement this function in subclass to return the list of modes for this screen. | |
virtual int | currentMode () const |
Reimplement this function in subclass to return the index of the current mode from the modes list. | |
virtual int | preferredMode () const |
Reimplement this function in subclass to return the preferred mode index from the modes list. | |
Protected Member Functions | |
void | flipFinished () |
void | ensureModeSet (uint32_t fb) |
void | cloneDestFlipFinished (QEglFSKmsGbmScreen *cloneDestScreen) |
void | waitForFlipWithEventReader (QEglFSKmsGbmScreen *screen) |
FrameBuffer * | framebufferForBufferObject (gbm_bo *bo) |
![]() | |
void | resizeMaximizedWindows () |
Convenience method to resize all the maximized and fullscreen windows of this platform screen. | |
Static Protected Member Functions | |
static void | nonThreadedPageFlipHandler (int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
static void | bufferDestroyedHandler (gbm_bo *bo, void *data) |
Protected Attributes | |
gbm_surface * | m_gbm_surface |
gbm_bo * | m_gbm_bo_current |
gbm_bo * | m_gbm_bo_next |
bool | m_flipPending |
QMutex | m_flipMutex |
QWaitCondition | m_flipCond |
QScopedPointer< QEglFSKmsGbmCursor > | m_cursor |
QEglFSKmsGbmScreen * | m_cloneSource |
QList< CloneDestination > | m_cloneDests |
![]() | |
QEglFSKmsDevice * | m_device |
QKmsOutput | m_output |
QEdidParser | m_edid |
QPoint | m_pos |
bool | m_cursorOutOfRange |
QList< QPlatformScreen * > | m_siblings |
PowerState | m_powerState |
QEglFSKmsInterruptHandler * | m_interruptHandler |
bool | m_headless |
![]() | |
QScopedPointer< QPlatformScreenPrivate > | d_ptr |
Static Protected Attributes | |
static QMutex | m_nonThreadedFlipMutex |
Additional Inherited Members | |
![]() | |
enum | SubpixelAntialiasingType { Subpixel_None , Subpixel_RGB , Subpixel_BGR , Subpixel_VRGB , Subpixel_VBGR } |
enum | PowerState { PowerStateOn , PowerStateStandby , PowerStateSuspend , PowerStateOff } |
![]() | |
static QPlatformScreen * | platformScreenForWindow (const QWindow *window) |
static int | angleBetween (Qt::ScreenOrientation a, Qt::ScreenOrientation b) |
static QTransform | transformBetween (Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) |
static QRect | mapBetween (Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) |
static QDpi | overrideDpi (const QDpi &in) |
Definition at line 30 of file qeglfskmsgbmscreen_p.h.
QEglFSKmsGbmScreen::QEglFSKmsGbmScreen | ( | QEglFSKmsDevice * | device, |
const QKmsOutput & | output, | ||
bool | headless | ||
) |
Definition at line 80 of file qeglfskmsgbmscreen.cpp.
QEglFSKmsGbmScreen::~QEglFSKmsGbmScreen | ( | ) |
Definition at line 91 of file qeglfskmsgbmscreen.cpp.
References QEglFSKmsScreen::device(), qCDebug, and qGuiApp.
Definition at line 37 of file qeglfskmsgbmscreen.cpp.
References QEglFSKmsScreen::device(), and QEglFSKmsGbmScreen::FrameBuffer::fb.
Referenced by framebufferForBufferObject().
|
protected |
Definition at line 458 of file qeglfskmsgbmscreen.cpp.
References d, m_cloneDests, and updateFlipStatus().
Referenced by flipFinished().
gbm_surface * QEglFSKmsGbmScreen::createSurface | ( | EGLConfig | eglConfig | ) |
Definition at line 119 of file qeglfskmsgbmscreen.cpp.
References Qt::dec(), QEglFSKmsScreen::device(), QEglFSScreen::display(), QKmsOutput::drm_format, QKmsOutput::drm_format_requested_by_user, drmFormatToGbmFormat(), EGLBoolean(), gbmFlags(), gbmFormatToDrmFormat(), Qt::hex(), m_gbm_surface, QEglFSKmsScreen::m_output, QEglFSKmsScreen::name(), qCDebug, qPrintable, and QEglFSKmsScreen::rawGeometry().
Referenced by QEglFSKmsGbmWindow::resetSurface().
|
overridevirtual |
Reimplement this function in subclass to return the cursor of the screen.
The default implementation returns \nullptr.
Reimplemented from QPlatformScreen.
Definition at line 99 of file qeglfskmsgbmscreen.cpp.
References QEglFSScreen::cursor(), QScopedPointer< T, Cleanup >::data(), QEglFSKmsScreen::device(), QScopedPointer< T, Cleanup >::isNull(), m_cursor, QScopedPointer< T, Cleanup >::reset(), and QKmsDevice::screenConfig().
|
protected |
Definition at line 192 of file qeglfskmsgbmscreen.cpp.
References QKmsOutput::activePropertyId, QKmsOutput::connector_id, QKmsOutput::crtc_id, QKmsOutput::crtcIdPropertyId, QEglFSKmsScreen::currentMode(), QEglFSKmsScreen::device(), QKmsDevice::fd(), QKmsOutput::mode, QKmsOutput::mode_blob_id, QKmsOutput::mode_set, QKmsOutput::modeIdPropertyId, QKmsOutput::modes, QEglFSKmsScreen::name(), QEglFSKmsScreen::output(), QPlatformScreen::PowerStateOn, qCDebug, qErrnoWarning(), qPrintable, request, ret, and QEglFSKmsScreen::setPowerState().
Referenced by flip().
|
virtual |
Definition at line 332 of file qeglfskmsgbmscreen.cpp.
References QKmsPlane::blendOpPropertyId, QKmsOutput::crtc_id, d, QEglFSKmsScreen::device(), QKmsOutput::eglfs_plane, ensureModeSet(), QKmsDevice::fd(), framebufferForBufferObject(), QKmsPlane::id, m_cloneDests, m_cloneSource, m_flipPending, m_gbm_bo_next, m_gbm_surface, QEglFSKmsScreen::m_headless, QEglFSKmsScreen::name(), QEglFSKmsScreen::output(), qEnvironmentVariableIntValue(), qErrnoWarning(), qPrintable, qScopeGuard(), qWarning, request, ret, and QKmsPlane::zposPropertyId.
|
protected |
Definition at line 447 of file qeglfskmsgbmscreen.cpp.
References cloneDestFlipFinished(), m_cloneSource, m_flipPending, and updateFlipStatus().
|
protected |
Definition at line 49 of file qeglfskmsgbmscreen.cpp.
References bufferDestroyedHandler(), QEglFSKmsScreen::device(), gbmFormatToDrmFormat(), qCDebug, qWarning, and ret.
Referenced by flip().
|
inlinevirtual |
Definition at line 49 of file qeglfskmsgbmscreen_p.h.
Referenced by createSurface().
void QEglFSKmsGbmScreen::initCloning | ( | QPlatformScreen * | screenThisScreenClones, |
const QList< QPlatformScreen * > & | screensCloningThisScreen | ||
) |
Definition at line 170 of file qeglfskmsgbmscreen.cpp.
References d, QList< T >::isEmpty(), m_cloneDests, m_cloneSource, QEglFSKmsScreen::name(), qCDebug, qPrintable, and qWarning.
Referenced by QEglFSKmsGbmDevice::registerScreenCloning().
|
staticprotected |
Definition at line 237 of file qeglfskmsgbmscreen.cpp.
References Q_UNUSED, QPlatformScreen::screen(), and user_data.
Referenced by waitForFlip().
void QEglFSKmsGbmScreen::resetSurface | ( | ) |
Definition at line 162 of file qeglfskmsgbmscreen.cpp.
References m_flipPending, m_gbm_bo_current, m_gbm_bo_next, and m_gbm_surface.
Referenced by QEglFSKmsGbmWindow::invalidateSurface().
|
virtual |
Definition at line 469 of file qeglfskmsgbmscreen.cpp.
References d, m_cloneDests, m_cloneSource, m_flipPending, m_gbm_bo_current, m_gbm_bo_next, and m_gbm_surface.
Referenced by cloneDestFlipFinished(), and flipFinished().
|
overridevirtual |
Reimplemented from QEglFSKmsScreen.
Definition at line 260 of file qeglfskmsgbmscreen.cpp.
References d, QEglFSKmsScreen::device(), lock, m_cloneDests, m_cloneSource, m_gbm_bo_next, QEglFSKmsScreen::m_headless, m_nonThreadedFlipMutex, nonThreadedPageFlipHandler(), QEglFSKmsGbmDevice::usesEventReader(), and waitForFlipWithEventReader().
|
protected |
Definition at line 250 of file qeglfskmsgbmscreen.cpp.
References QEglFSKmsScreen::device(), QEglFSKmsGbmDevice::eventReader(), QMutex::lock(), m_flipCond, m_flipMutex, QPlatformScreen::screen(), QEglFSKmsEventReader::startWaitFlip(), QMutex::unlock(), and QWaitCondition::wait().
Referenced by waitForFlip().
|
protected |
Definition at line 85 of file qeglfskmsgbmscreen_p.h.
Referenced by cloneDestFlipFinished(), flip(), initCloning(), updateFlipStatus(), and waitForFlip().
|
protected |
Definition at line 80 of file qeglfskmsgbmscreen_p.h.
Referenced by flip(), flipFinished(), initCloning(), updateFlipStatus(), and waitForFlip().
|
protected |
Definition at line 72 of file qeglfskmsgbmscreen_p.h.
Referenced by cursor().
|
protected |
Definition at line 69 of file qeglfskmsgbmscreen_p.h.
Referenced by waitForFlipWithEventReader().
|
protected |
Definition at line 68 of file qeglfskmsgbmscreen_p.h.
Referenced by waitForFlipWithEventReader().
|
protected |
Definition at line 66 of file qeglfskmsgbmscreen_p.h.
Referenced by flip(), flipFinished(), resetSurface(), and updateFlipStatus().
|
protected |
Definition at line 64 of file qeglfskmsgbmscreen_p.h.
Referenced by resetSurface(), and updateFlipStatus().
|
protected |
Definition at line 65 of file qeglfskmsgbmscreen_p.h.
Referenced by flip(), resetSurface(), updateFlipStatus(), and waitForFlip().
|
protected |
Definition at line 62 of file qeglfskmsgbmscreen_p.h.
Referenced by createSurface(), flip(), resetSurface(), and updateFlipStatus().
|
staticprotected |
Definition at line 70 of file qeglfskmsgbmscreen_p.h.
Referenced by waitForFlip().