QRasterPaintEngine Class

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

Header: #include <QRasterPaintEngine>
Inherits: QPaintEngineEx

Public Types

enum ClipType { RectClip, ComplexClip }

Public Functions

QRasterPaintEngine(QPaintDevice *device)
virtual ~QRasterPaintEngine()
void alphaPenBlt(const void *src, int bpl, int depth, int rx, int ry, int w, int h, bool useGammaCorrection)
QRectF clipBoundingRect() const
ClipType clipType() const
virtual bool drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs, const QFixedPoint *positions, QFontEngine *fontEngine)
virtual void fillPath(const QPainterPath &path, QSpanData *fillData)
virtual void fillPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
HDC getDC() const
QRasterBuffer *rasterBuffer()
void releaseDC(HDC hdc) const
void setDC(HDC hdc)
void updateBrush(const QBrush &brush)
void updateMatrix(const QTransform &matrix)
void updatePen(const QPen &pen)

Reimplemented Public Functions

virtual bool begin(QPaintDevice *device) override
virtual void brushChanged() override
virtual void brushOriginChanged() override
virtual void clip(const QVectorPath &path, Qt::ClipOperation op) override
virtual void clip(const QRect &rect, Qt::ClipOperation op) override
virtual void clip(const QRegion &region, Qt::ClipOperation op) override
virtual void clipEnabledChanged() override
virtual void compositionModeChanged() override
virtual QPoint coordinateOffset() const override
virtual QPainterState *createState(QPainterState *orig) const override
virtual void drawEllipse(const QRectF &rect) override
virtual void drawImage(const QPointF &p, const QImage &img) 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 QPointF &pos, const QPixmap &pixmap) 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, PolygonDrawMode mode) override
virtual void drawPolygon(const QPoint *points, int pointCount, 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 fill(const QVectorPath &path, const QBrush &brush) override
virtual void fillRect(const QRectF &r, const QBrush &brush) override
virtual void fillRect(const QRectF &r, const QColor &color) override
virtual void opacityChanged() override
virtual void penChanged() override
virtual void renderHintsChanged() override
virtual bool requiresPretransformedGlyphPositions(QFontEngine *fontEngine, const QTransform &m) const override
virtual void setState(QPainterState *s) override
virtual bool shouldDrawCachedGlyphs(QFontEngine *fontEngine, const QTransform &m) const override
virtual void stroke(const QVectorPath &path, const QPen &pen) override
virtual void transformChanged() override

Static Public Members

Protected Functions

QRasterPaintEngine(QRasterPaintEnginePrivate &dd, QPaintDevice *device)

Detailed Description

\internal\inmodule QtGui \since 4.2

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 Type Documentation

enum QRasterPaintEngine::ClipType

\internal

ConstantValueDescription
QRasterPaintEngine::RectClip0Indicates that the currently set clip is a single rectangle.
QRasterPaintEngine::ComplexClip1Indicates that the currently set clip is a combination of several shapes.

Member Function Documentation

QRasterPaintEngine::QRasterPaintEngine(QPaintDevice *device)

\since4.5

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

[protected] QRasterPaintEngine::QRasterPaintEngine(QRasterPaintEnginePrivate &dd, QPaintDevice *device)

\internal

[virtual noexcept] QRasterPaintEngine::~QRasterPaintEngine()

Destroys this paint engine.

void QRasterPaintEngine::alphaPenBlt(const void *src, int bpl, int depth, int rx, int ry, int w, int h, bool useGammaCorrection)

\internal

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

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

[override virtual] void QRasterPaintEngine::brushChanged()

\internal

[override virtual] void QRasterPaintEngine::brushOriginChanged()

\internal

[static] bool QRasterPaintEngine::clearTypeFontsEnabled()

\internal

[override virtual] void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)

\internal

[override virtual] void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op)

\internal

[override virtual] void QRasterPaintEngine::clip(const QRegion &region, Qt::ClipOperation op)

\internal

QRectF QRasterPaintEngine::clipBoundingRect() const

\internalReturns the bounding rect of the currently set clip.

[override virtual] void QRasterPaintEngine::clipEnabledChanged()

\internal

ClipType QRasterPaintEngine::clipType() const

\internalReturns the type of the clip currently set.

[override virtual] void QRasterPaintEngine::compositionModeChanged()

\internal

[override virtual] QPoint QRasterPaintEngine::coordinateOffset() const

Reimplements: QPaintEngine::coordinateOffset() const.

\internal

[override virtual] QPainterState *QRasterPaintEngine::createState(QPainterState *orig) const

\internal

[virtual] bool QRasterPaintEngine::drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs, const QFixedPoint *positions, QFontEngine *fontEngine)

\internal

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

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

[override virtual] void QRasterPaintEngine::drawImage(const QPointF &p, const QImage &img)

\internal

[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 QPointF &pos, const QPixmap &pixmap)

\internal

[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, PolygonDrawMode mode)

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

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

Reimplements: QPaintEngine::drawPolygon(const QPoint *points, int pointCount, 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::fill(const QVectorPath &path, const QBrush &brush)

\internal

[virtual] void QRasterPaintEngine::fillPath(const QPainterPath &path, QSpanData *fillData)

\internal

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

\internal

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

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

HDC QRasterPaintEngine::getDC() const

\internal

[override virtual] void QRasterPaintEngine::opacityChanged()

\internal

[override virtual] void QRasterPaintEngine::penChanged()

\internal

QRasterBuffer *QRasterPaintEngine::rasterBuffer()

\internal

void QRasterPaintEngine::releaseDC(HDC hdc) const

\internal

[override virtual] void QRasterPaintEngine::renderHintsChanged()

\internal

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

\internal

void QRasterPaintEngine::setDC(HDC hdc)

\internal

[override virtual] void QRasterPaintEngine::setState(QPainterState *s)

\internal

[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.

[override virtual] void QRasterPaintEngine::stroke(const QVectorPath &path, const QPen &pen)

\internal

[override virtual] void QRasterPaintEngine::transformChanged()

\internal

void QRasterPaintEngine::updateBrush(const QBrush &brush)

\internal

void QRasterPaintEngine::updateMatrix(const QTransform &matrix)

\internal

void QRasterPaintEngine::updatePen(const QPen &pen)

\internal