![]() |
Qt 6.x
The Qt SDK
|
Backing store for windows. More...
#include <qwindowsbackingstore.h>
Public Member Functions | |
QWindowsBackingStore (QWindow *window) | |
~QWindowsBackingStore () override | |
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. | |
void | resize (const QSize &size, const QRegion &r) 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. | |
HDC | getDC () const |
QImage | toImage () const override |
Implemented in subclasses to return the content of the backingstore as a QImage. | |
![]() | |
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 () |
Additional Inherited Members | |
![]() | |
enum | FlushResult { FlushSuccess , FlushFailed , FlushFailedDueToLostDevice } |
enum | TextureFlag { TextureSwizzle = 0x01 , TextureFlip = 0x02 , TexturePremultiplied = 0x04 } |
Backing store for windows.
Definition at line 17 of file qwindowsbackingstore.h.
QWindowsBackingStore::QWindowsBackingStore | ( | QWindow * | window | ) |
Definition at line 24 of file qwindowsbackingstore.cpp.
References qCDebug, and QPlatformBackingStore::window().
|
override |
Definition at line 31 of file qwindowsbackingstore.cpp.
References qCDebug.
This function is called before painting onto the surface begins, with the region in which the painting will occur.
Reimplemented from QPlatformBackingStore.
Definition at line 155 of file qwindowsbackingstore.cpp.
References QPainter::CompositionMode_Source, QWindowsNativeImage::image(), qCDebug, Qt::transparent, and QWindowsContext::verbose.
|
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 42 of file qwindowsbackingstore.cpp.
References arg, QRegion::boundingRect(), fileName, QWindow::flags, QWindowsWindow::format(), Qt::FramelessWindowHint, QWindowsWindow::frameMargins(), QString::fromLatin1(), QWindowsWindow::getDC(), QWindowsWindow::handle(), QSurfaceFormat::hasAlpha(), hasAlpha(), QWindowsNativeImage::hdc(), QRect::height(), QWindowsNativeImage::image(), info, QMargins::left(), QWindowsWindow::opacity(), Q_ASSERT, qCDebug, qErrnoWarning(), qRound(), QWindowsWindow::releaseDC(), QImage::save(), QWindowsWindow::setWindowLayered(), QImage::size(), SIZE, QHighDpi::toNativePixels(), QMargins::top(), QRect::translated(), QWindowsContext::verbose, QRect::width(), QPlatformBackingStore::window(), QWindowsWindow::windowsWindowOf(), QWindowsBaseWindow::winId(), QRect::x(), and QRect::y().
HDC QWindowsBackingStore::getDC | ( | ) | const |
Definition at line 169 of file qwindowsbackingstore.cpp.
References QWindowsNativeImage::hdc(), and QScopedPointer< T, Cleanup >::isNull().
Referenced by QWindowsGdiNativeInterface::nativeResourceForBackingStore().
|
overridevirtual |
Implement this function to return the appropriate paint device.
Implements QPlatformBackingStore.
Definition at line 36 of file qwindowsbackingstore.cpp.
References QWindowsNativeImage::image(), QScopedPointer< T, Cleanup >::isNull(), and Q_ASSERT.
Implements QPlatformBackingStore.
Definition at line 101 of file qwindowsbackingstore.cpp.
References QPainter::CompositionMode_Source, QScopedPointer< T, Cleanup >::data(), QPainter::drawImage(), QWindow::format(), QImage::Format_ARGB32_Premultiplied, QSurfaceFormat::hasAlpha(), QImage::height(), QWindowsNativeImage::image(), QRegion::isEmpty(), QScopedPointer< T, Cleanup >::isNull(), painter, qCDebug, qt_maybeAlphaVersionWithSameDepth(), rect, QScopedPointer< T, Cleanup >::reset(), QPainter::setCompositionMode(), QImage::size(), QWindowsNativeImage::systemFormat(), QImage::toPixelFormat(), QPixelFormat::UsesAlpha, QWindowsContext::verbose, QImage::width(), and QPlatformBackingStore::window().
|
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 143 of file qwindowsbackingstore.cpp.
References area(), QWindowsNativeImage::image(), QImage::isNull(), QScopedPointer< T, Cleanup >::isNull(), qt_scrollRectInImage(), and rect.
|
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 176 of file qwindowsbackingstore.cpp.
References QScopedPointer< T, Cleanup >::data(), QWindowsNativeImage::image(), QScopedPointer< T, Cleanup >::isNull(), and qCWarning.