QRasterPaintEngine Class

The QRasterPaintEngine class enables hardware acceleration of painting operations in Qt for Embedded Linux. More...

Header: #include <QRasterPaintEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: QPaintEngineEx

This class is under development and is subject to change.

Public Functions

QRasterPaintEngine(QPaintDevice *device)
virtual ~QRasterPaintEngine()

Reimplemented Public Functions

virtual bool begin(QPaintDevice *device) override
virtual void drawEllipse(const QRectF &rect) override
virtual void drawImage(const QRectF &r, const QImage &img, const QRectF &sr, Qt::ImageConversionFlags flags = Qt::AutoColor) override
virtual void drawLines(const QLine *lines, int lineCount) override
virtual void drawLines(const QLineF *lines, int lineCount) override
virtual void drawPixmap(const QRectF &r, const QPixmap &pixmap, const QRectF &sr) override
virtual void drawPoints(const QPointF *points, int pointCount) override
virtual void drawPolygon(const QPointF *points, int pointCount, QPaintEngine::PolygonDrawMode mode) override
virtual void drawPolygon(const QPoint *points, int pointCount, QPaintEngine::PolygonDrawMode mode) override
virtual void drawRects(const QRect *rects, int rectCount) override
virtual void drawRects(const QRectF *rects, int rectCount) override
virtual void drawStaticTextItem(QStaticTextItem *textItem) override
virtual void drawTextItem(const QPointF &p, const QTextItem &textItem) override
virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &sr) override
virtual bool end() override
virtual void fillRect(const QRectF &r, const QBrush &brush) override
virtual void fillRect(const QRectF &r, const QColor &color) override
virtual bool shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &m) const override

Detailed Description

Note that this functionality is only available in Qt for Embedded Linux.

In Qt for Embedded Linux, painting is a pure software implementation. But starting with Qt 4.2, it is possible to add an accelerated graphics driver to take advantage of available hardware resources.

Hardware acceleration is accomplished by creating a custom screen driver, accelerating the copying from memory to the screen, and implementing a custom paint engine accelerating the various painting operations. Then a custom paint device and a custom window surface must be implemented to make Qt for Embedded Linux aware of the accelerated driver.

Note: The QRasterPaintEngine class does not support 8-bit images. Instead, they need to be converted to a supported format, such as QImage::Format_ARGB32_Premultiplied.

See also QPaintEngine.

Member Function Documentation

QRasterPaintEngine::QRasterPaintEngine(QPaintDevice *device)

Creates a raster based paint engine for operating on the given device, with the complete set of paint engine features and capabilities.

[virtual] QRasterPaintEngine::~QRasterPaintEngine()

Destroys this paint engine.

[override virtual] bool QRasterPaintEngine::begin(QPaintDevice *device)

Reimplements: QPaintEngine::begin(QPaintDevice *pdev).

[override virtual] void QRasterPaintEngine::drawEllipse(const QRectF &rect)

Reimplements: QPaintEngine::drawEllipse(const QRectF &rect).

[override virtual] void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRectF &sr, Qt::ImageConversionFlags flags = Qt::AutoColor)

Reimplements: QPaintEngine::drawImage(const QRectF &rectangle, const QImage &image, const QRectF &sr, Qt::ImageConversionFlags flags).

[override virtual] void QRasterPaintEngine::drawLines(const QLine *lines, int lineCount)

Reimplements: QPaintEngine::drawLines(const QLine *lines, int lineCount).

[override virtual] void QRasterPaintEngine::drawLines(const QLineF *lines, int lineCount)

Reimplements: QPaintEngine::drawLines(const QLineF *lines, int lineCount).

[override virtual] void QRasterPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pixmap, const QRectF &sr)

Reimplements: QPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr).

[override virtual] void QRasterPaintEngine::drawPoints(const QPointF *points, int pointCount)

Reimplements: QPaintEngine::drawPoints(const QPointF *points, int pointCount).

[override virtual] void QRasterPaintEngine::drawPolygon(const QPointF *points, int pointCount, QPaintEngine::PolygonDrawMode mode)

Reimplements: QPaintEngine::drawPolygon(const QPointF *points, int pointCount, QPaintEngine::PolygonDrawMode mode).

[override virtual] void QRasterPaintEngine::drawPolygon(const QPoint *points, int pointCount, QPaintEngine::PolygonDrawMode mode)

Reimplements: QPaintEngine::drawPolygon(const QPoint *points, int pointCount, QPaintEngine::PolygonDrawMode mode).

[override virtual] void QRasterPaintEngine::drawRects(const QRect *rects, int rectCount)

Reimplements: QPaintEngine::drawRects(const QRect *rects, int rectCount).

[override virtual] void QRasterPaintEngine::drawRects(const QRectF *rects, int rectCount)

Reimplements: QPaintEngine::drawRects(const QRectF *rects, int rectCount).

[override virtual] void QRasterPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)

[override virtual] void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem)

Reimplements: QPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem).

[override virtual] void QRasterPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &sr)

Reimplements: QPaintEngine::drawTiledPixmap(const QRectF &rect, const QPixmap &pixmap, const QPointF &p).

[override virtual] bool QRasterPaintEngine::end()

Reimplements: QPaintEngine::end().

[override virtual] void QRasterPaintEngine::fillRect(const QRectF &r, const QBrush &brush)

[override virtual] void QRasterPaintEngine::fillRect(const QRectF &r, const QColor &color)

[override virtual] bool QRasterPaintEngine::shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &m) const

Returns whether glyph caching is supported by the font engine fontEngine with the given transform m applied.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.