![]() |
Qt 6.x
The Qt SDK
|
#include <qxcbbackingstore.h>
Public Member Functions | |
QXcbBackingStore (QWindow *window) | |
~QXcbBackingStore () | |
QPaintDevice * | paintDevice () override |
Implement this function to return the appropriate paint device. | |
void | flush (QWindow *window, const QRegion ®ion, const QPoint &offset) override |
Flushes the given region from the specified window. | |
FlushResult | rhiFlush (QWindow *window, qreal sourceDevicePixelRatio, const QRegion ®ion, const QPoint &offset, QPlatformTextureList *textures, bool translucentBackground) override |
Flushes the given region from the specified window, and compositing it with the specified textures list. | |
QImage | toImage () const override |
Implemented in subclasses to return the content of the backingstore as a QImage. | |
QPlatformGraphicsBuffer * | graphicsBuffer () const override |
Accessor for a backingstores graphics buffer abstraction. | |
void | resize (const QSize &size, const QRegion &staticContents) override |
bool | scroll (const QRegion &area, int dx, int dy) override |
Scrolls the given area dx pixels to the right and dy downward; both dx and dy may be negative. | |
void | beginPaint (const QRegion &) override |
This function is called before painting onto the surface begins, with the region in which the painting will occur. | |
void | endPaint () override |
This function is called after painting onto the surface has ended. | |
![]() | |
QXcbObject (QXcbConnection *connection=nullptr) | |
void | setConnection (QXcbConnection *connection) |
QXcbConnection * | connection () const |
xcb_atom_t | atom (QXcbAtom::Atom atom) const |
xcb_connection_t * | xcb_connection () const |
![]() | |
QPlatformBackingStore (QWindow *window) | |
Constructs an empty surface for the given top-level window. | |
virtual | ~QPlatformBackingStore () |
Destroys this surface. | |
QWindow * | window () const |
Returns a pointer to the top-level window associated with this surface. | |
QBackingStore * | backingStore () const |
Returns a pointer to the backing store associated with this surface. | |
virtual QPaintDevice * | paintDevice ()=0 |
Implement this function to return the appropriate paint device. | |
virtual void | flush (QWindow *window, const QRegion ®ion, const QPoint &offset) |
Flushes the given region from the specified window. | |
virtual FlushResult | rhiFlush (QWindow *window, qreal sourceDevicePixelRatio, const QRegion ®ion, const QPoint &offset, QPlatformTextureList *textures, bool translucentBackground) |
Flushes the given region from the specified window, and compositing it with the specified textures list. | |
virtual QImage | toImage () const |
Implemented in subclasses to return the content of the backingstore as a QImage. | |
virtual QRhiTexture * | toTexture (QRhiResourceUpdateBatch *resourceUpdates, const QRegion &dirtyRegion, TextureFlags *flags) const |
May be reimplemented in subclasses to return the content of the backingstore as an QRhiTexture. | |
virtual QPlatformGraphicsBuffer * | graphicsBuffer () const |
Accessor for a backingstores graphics buffer abstraction. | |
virtual void | resize (const QSize &size, const QRegion &staticContents)=0 |
virtual bool | scroll (const QRegion &area, int dx, int dy) |
Scrolls the given area dx pixels to the right and dy downward; both dx and dy may be negative. | |
virtual void | beginPaint (const QRegion &) |
This function is called before painting onto the surface begins, with the region in which the painting will occur. | |
virtual void | endPaint () |
This function is called after painting onto the surface has ended. | |
void | setRhiConfig (const QPlatformBackingStoreRhiConfig &config) |
QRhi * | rhi () const |
QRhiSwapChain * | rhiSwapChain () const |
void | surfaceAboutToBeDestroyed () |
void | graphicsDeviceReportedLost () |
Static Public Member Functions | |
static bool | createSystemVShmSegment (xcb_connection_t *c, size_t segmentSize=1, void *shmInfo=nullptr) |
Protected Member Functions | |
virtual void | render (xcb_window_t window, const QRegion ®ion, const QPoint &offset) |
virtual void | recreateImage (QXcbWindow *win, const QSize &size) |
Protected Attributes | |
QXcbBackingStoreImage * | m_image = nullptr |
QStack< QRegion > | m_paintRegions |
QImage | m_rgbImage |
Additional Inherited Members | |
![]() | |
enum | FlushResult { FlushSuccess , FlushFailed , FlushFailedDueToLostDevice } |
enum | TextureFlag { TextureSwizzle = 0x01 , TextureFlip = 0x02 , TexturePremultiplied = 0x04 } |
Definition at line 18 of file qxcbbackingstore.h.
QXcbBackingStore::QXcbBackingStore | ( | QWindow * | window | ) |
Definition at line 744 of file qxcbbackingstore.cpp.
References QScreen::handle(), screen, QXcbObject::setConnection(), and QPlatformBackingStore::window().
QXcbBackingStore::~QXcbBackingStore | ( | ) |
Definition at line 751 of file qxcbbackingstore.cpp.
References m_image.
This function is called before painting onto the surface begins, with the region in which the painting will occur.
Reimplemented from QPlatformBackingStore.
Reimplemented in QXcbSystemTrayBackingStore.
Definition at line 763 of file qxcbbackingstore.cpp.
References QPainter::CompositionMode_Source, QXcbBackingStoreImage::hasAlpha(), m_image, m_paintRegions, paintDevice(), QXcbBackingStoreImage::preparePaint(), QStack< T >::push(), rect, and Qt::transparent.
Referenced by QXcbSystemTrayBackingStore::beginPaint().
|
static |
Definition at line 738 of file qxcbbackingstore.cpp.
References QXcbBackingStoreImage::createSystemVShmSegment(), and info.
Referenced by QXcbBasicConnection::initializeShm().
|
overridevirtual |
This function is called after painting onto the surface has ended.
Reimplemented from QPlatformBackingStore.
Definition at line 780 of file qxcbbackingstore.cpp.
References QRegion::begin(), QImage::copy(), QRegion::end(), QXcbBackingStoreImage::image(), QXcbWindow::imageNeedsRgbSwap(), QList< T >::isEmpty(), it, m_image, m_paintRegions, m_rgbImage, QStack< T >::pop(), QXcbBackingStoreImage::preparePaint(), Q_FUNC_INFO, Q_UNLIKELY, qCWarning, rect, QImage::rgbSwapped(), and QPlatformBackingStore::window().
|
overridevirtual |
Flushes the given region from the specified window.
Unlike rhiFlush(), this function's default implementation does nothing. It is expected that subclasses provide a platform-specific (non-QRhi-based) implementation, if applicable on the given platform.
Reimplemented from QPlatformBackingStore.
Definition at line 831 of file qxcbbackingstore.cpp.
References QRegion::boundingRect(), QXcbBackingStoreImage::flushScrolledRegion(), QSize::isEmpty(), QRect::isNull(), m_image, QXcbWindow::needsSync(), Q_FUNC_INFO, qCWarning, render(), QXcbBackingStoreImage::size(), QWindow::size(), QHighDpi::toNativePixels(), QRect::translated(), QXcbWindow::updateSyncRequestCounter(), QPlatformBackingStore::window(), QXcbObject::xcb_connection(), and QXcbWindow::xcb_window().
|
overridevirtual |
Accessor for a backingstores graphics buffer abstraction.
Reimplemented from QPlatformBackingStore.
Definition at line 826 of file qxcbbackingstore.cpp.
References QXcbBackingStoreImage::graphicsBuffer(), and m_image.
|
overridevirtual |
Implement this function to return the appropriate paint device.
Implements QPlatformBackingStore.
Definition at line 756 of file qxcbbackingstore.cpp.
References QXcbBackingStoreImage::image(), QImage::isNull(), m_image, and m_rgbImage.
Referenced by beginPaint(), and QXcbSystemTrayBackingStore::beginPaint().
|
protectedvirtual |
Reimplemented in QXcbSystemTrayBackingStore.
Definition at line 909 of file qxcbbackingstore.cpp.
References m_image, m_rgbImage, QXcbBackingStoreImage::resize(), and win.
Referenced by QXcbSystemTrayBackingStore::recreateImage(), and resize().
|
protectedvirtual |
Reimplemented in QXcbSystemTrayBackingStore.
Definition at line 863 of file qxcbbackingstore.cpp.
References m_image, QXcbBackingStoreImage::put(), and QPlatformBackingStore::window().
Referenced by flush(), and QXcbSystemTrayBackingStore::render().
|
overridevirtual |
Implements QPlatformBackingStore.
Definition at line 894 of file qxcbbackingstore.cpp.
References m_image, recreateImage(), QXcbBackingStoreImage::size(), win, and QPlatformBackingStore::window().
|
overridevirtual |
Flushes the given region from the specified window, and compositing it with the specified textures list.
The default implementation retrieves the contents using toTexture() and composes using QRhi with OpenGL, Metal, Vulkan, or Direct 3D underneath. May be reimplemented in subclasses if customization is desired.
Reimplemented from QPlatformBackingStore.
Definition at line 868 of file qxcbbackingstore.cpp.
References QPlatformBackingStore::FlushFailed, QXcbBackingStoreImage::flushScrolledRegion(), QPlatformBackingStore::FlushSuccess, QSize::isEmpty(), m_image, QXcbWindow::needsSync(), QPlatformBackingStore::rhiFlush(), QXcbBackingStoreImage::size(), QXcbWindow::updateSyncRequestCounter(), QPlatformBackingStore::window(), and QXcbObject::xcb_connection().
|
overridevirtual |
Scrolls the given area dx pixels to the right and dy downward; both dx and dy may be negative.
Returns true
if the area was scrolled successfully; false otherwise.
Reimplemented from QPlatformBackingStore.
Definition at line 923 of file qxcbbackingstore.cpp.
References area(), m_image, and QXcbBackingStoreImage::scroll().
|
overridevirtual |
Implemented in subclasses to return the content of the backingstore as a QImage.
If composition via a 3D graphics API is supported, either this function or toTexture() must be implemented.
The returned image is only valid until the next operation (resize, paint, scroll, or flush) on the backingstore. The caller must not store the return value between calls, but instead call this function before each use, or make an explicit copy.
Reimplemented from QPlatformBackingStore.
Definition at line 807 of file qxcbbackingstore.cpp.
References QXcbBackingStoreImage::flushScrolledRegion(), QXcbBackingStoreImage::image(), QImage::isNull(), m_image, and m_rgbImage.
|
protected |
Definition at line 49 of file qxcbbackingstore.h.
Referenced by ~QXcbBackingStore(), beginPaint(), endPaint(), flush(), graphicsBuffer(), paintDevice(), recreateImage(), QXcbSystemTrayBackingStore::recreateImage(), render(), QXcbSystemTrayBackingStore::render(), resize(), rhiFlush(), scroll(), and toImage().
Definition at line 50 of file qxcbbackingstore.h.
Referenced by beginPaint(), and endPaint().
|
protected |
Definition at line 51 of file qxcbbackingstore.h.
Referenced by endPaint(), paintDevice(), recreateImage(), and toImage().