W3cubDocs

/Qt 5.15

QWaylandSurfaceGrabber Class

The QWaylandSurfaceGrabber class allows to read the content of a QWaylandSurface. More...

Header: #include <QWaylandSurfaceGrabber>
qmake: QT += waylandcompositor
Since: Qt 5.8
Inherits: QObject

This class was introduced in Qt 5.8.

Public Types

enum Error { InvalidSurface, NoBufferAttached, UnknownBufferType, RendererNotReady }

Public Functions

QWaylandSurfaceGrabber(QWaylandSurface *surface, QObject *parent = nullptr)
void grab()
QWaylandSurface * surface() const

Detailed Description

Sometimes it is needed to get the contents of a surface, for example to provide a screenshot to the user. The QWaylandSurfaceGrabber class provides a simple method to do so, without having to care what type of buffer backs the surface, be it shared memory, OpenGL or something else.

Member Type Documentation

enum QWaylandSurfaceGrabber::Error

The Error enum describes the reason for a grab failure.

Constant Value Description
QWaylandSurfaceGrabber::InvalidSurface 0 The surface is null or otherwise not valid.
QWaylandSurfaceGrabber::NoBufferAttached 1 The client has not attached a buffer on the surface yet.
QWaylandSurfaceGrabber::UnknownBufferType 2 The buffer attached on the surface is of an unknown type.
QWaylandSurfaceGrabber::RendererNotReady 3 The compositor renderer is not ready to grab the surface content.

Member Function Documentation

QWaylandSurfaceGrabber::QWaylandSurfaceGrabber(QWaylandSurface *surface, QObject *parent = nullptr)

Create a QWaylandSurfaceGrabber object with the given surface and parent

void QWaylandSurfaceGrabber::grab()

Grab the content of the surface set on this object. It may not be possible to do that immediately so the success and failed signals should be used to be notified of when the grab is completed.

QWaylandSurface *QWaylandSurfaceGrabber::surface() const

Returns the surface set on this object

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qwaylandsurfacegrabber.html