Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QRasterPaintEngine Class Reference

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

#include <qpaintengine_raster_p.h>

Inheritance diagram for QRasterPaintEngine:
Collaboration diagram for QRasterPaintEngine:

Public Types

enum  ClipType { RectClip , ComplexClip }
Public Types inherited from QPaintEngineEx
enum  Flags { DoNotEmulate = 0x01 , IsEmulationEngine = 0x02 }
Public Types inherited from QPaintEngine
enum  PaintEngineFeature {
  PrimitiveTransform = 0x00000001 , PatternTransform = 0x00000002 , PixmapTransform = 0x00000004 , PatternBrush = 0x00000008 ,
  LinearGradientFill = 0x00000010 , RadialGradientFill = 0x00000020 , ConicalGradientFill = 0x00000040 , AlphaBlend = 0x00000080 ,
  PorterDuff = 0x00000100 , PainterPaths = 0x00000200 , Antialiasing = 0x00000400 , BrushStroke = 0x00000800 ,
  ConstantOpacity = 0x00001000 , MaskedBrush = 0x00002000 , PerspectiveTransform = 0x00004000 , BlendModes = 0x00008000 ,
  ObjectBoundingModeGradients = 0x00010000 , RasterOpModes = 0x00020000 , PaintOutsidePaintEvent = 0x20000000 , AllFeatures = 0xffffffff
}
 This enum is used to describe the features or capabilities that the paint engine has. More...
enum  DirtyFlag {
  DirtyPen = 0x0001 , DirtyBrush = 0x0002 , DirtyBrushOrigin = 0x0004 , DirtyFont = 0x0008 ,
  DirtyBackground = 0x0010 , DirtyBackgroundMode = 0x0020 , DirtyTransform = 0x0040 , DirtyClipRegion = 0x0080 ,
  DirtyClipPath = 0x0100 , DirtyHints = 0x0200 , DirtyCompositionMode = 0x0400 , DirtyClipEnabled = 0x0800 ,
  DirtyOpacity = 0x1000 , AllDirty = 0xffff
}
 \value DirtyPen The pen is dirty and needs to be updated. More...
enum  PolygonDrawMode { OddEvenMode , WindingMode , ConvexMode , PolylineMode }
 \value OddEvenMode The polygon should be drawn using OddEven fill rule. More...
enum  Type {
  X11 , Windows , QuickDraw , CoreGraphics ,
  MacPrinter , QWindowSystem , OpenGL , Picture ,
  SVG , Raster , Direct3D , Pdf ,
  OpenVG , OpenGL2 , PaintBuffer , Blitter ,
  Direct2D , User = 50 , MaxUser = 100
}
 \value X11 \value Windows \value MacPrinter \value CoreGraphics \macos's Quartz2D (CoreGraphics) \value QuickDraw \macos's QuickDraw \value QWindowSystem Qt for Embedded Linux \value OpenGL \value Picture QPicture format \value SVG Scalable Vector Graphics XML format \value Raster \value Direct3D Windows only, Direct3D based engine \value Pdf Portable Document Format \value OpenVG \value User First user type ID \value MaxUser Last user type ID \value OpenGL2 \value PaintBuffer \value Blitter \value Direct2D Windows only, Direct2D based engine More...

Public Member Functions

 QRasterPaintEngine (QPaintDevice *device)
 ~QRasterPaintEngine ()
 Destroys this paint engine.
bool begin (QPaintDevice *device) override
 \reimp
bool end () override
 \reimp
void penChanged () override
void brushChanged () override
void brushOriginChanged () override
void opacityChanged () override
void compositionModeChanged () override
void renderHintsChanged () override
void transformChanged () override
void clipEnabledChanged () override
void setState (QPainterState *s) override
QPainterStatecreateState (QPainterState *orig) const override
QRasterPaintEngineStatestate ()
const QRasterPaintEngineStatestate () const
void updateBrush (const QBrush &brush)
void updatePen (const QPen &pen)
void updateMatrix (const QTransform &matrix)
virtual void fillPath (const QPainterPath &path, QSpanData *fillData)
virtual void fillPolygon (const QPointF *points, int pointCount, PolygonDrawMode mode)
void drawPolygon (const QPointF *points, int pointCount, PolygonDrawMode mode) override
 \reimp
void drawPolygon (const QPoint *points, int pointCount, PolygonDrawMode mode) override
 \reimp
void drawEllipse (const QRectF &rect) override
 \reimp
void fillRect (const QRectF &rect, const QBrush &brush) override
 \reimp
void fillRect (const QRectF &rect, const QColor &color) override
 \reimp
void drawRects (const QRect *rects, int rectCount) override
 \reimp
void drawRects (const QRectF *rects, int rectCount) override
 \reimp
void drawPixmap (const QPointF &p, const QPixmap &pm) override
void drawPixmap (const QRectF &r, const QPixmap &pm, const QRectF &sr) override
 \reimp
void drawImage (const QPointF &p, const QImage &img) override
void drawImage (const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags=Qt::AutoColor) override
 \reimp
void drawTiledPixmap (const QRectF &r, const QPixmap &pm, const QPointF &sr) override
 \reimp
void drawTextItem (const QPointF &p, const QTextItem &textItem) override
 \reimp
void drawLines (const QLine *line, int lineCount) override
 \reimp
void drawLines (const QLineF *line, int lineCount) override
 \reimp
void drawPoints (const QPointF *points, int pointCount) override
 \reimp
void drawPoints (const QPoint *points, int pointCount) override
 Draws the first pointCount points in the buffer points.
void stroke (const QVectorPath &path, const QPen &pen) override
void fill (const QVectorPath &path, const QBrush &brush) override
void clip (const QVectorPath &path, Qt::ClipOperation op) override
void clip (const QRect &rect, Qt::ClipOperation op) override
void clip (const QRegion &region, Qt::ClipOperation op) override
const QClipDataclipData () const
void drawStaticTextItem (QStaticTextItem *textItem) override
 \reimp
virtual bool drawCachedGlyphs (int numGlyphs, const glyph_t *glyphs, const QFixedPoint *positions, QFontEngine *fontEngine)
ClipType clipType () const
QRectF clipBoundingRect () const
QRasterBufferrasterBuffer ()
void alphaPenBlt (const void *src, int bpl, int depth, int rx, int ry, int w, int h, bool useGammaCorrection)
Type type () const override
 Reimplement this function to return the paint engine \l{Type}.
QPoint coordinateOffset () const override
bool requiresPretransformedGlyphPositions (QFontEngine *fontEngine, const QTransform &m) const override
bool shouldDrawCachedGlyphs (QFontEngine *fontEngine, const QTransform &m) const override
 Returns whether glyph caching is supported by the font engine fontEngine with the given transform m applied.
Public Member Functions inherited from QPaintEngineEx
 QPaintEngineEx ()
virtual void draw (const QVectorPath &path)
virtual void clip (const QPainterPath &path, Qt::ClipOperation op)
virtual void drawRoundedRect (const QRectF &rect, qreal xrad, qreal yrad, Qt::SizeMode mode)
virtual void drawEllipse (const QRect &r) override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.The default implementation of this function calls the floating point version of this function.
virtual void drawPath (const QPainterPath &path) override
 The default implementation ignores the path and does nothing.
virtual void drawPixmapFragments (const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QFlags< QPainter::PixmapFragmentHint > hints)
virtual void updateState (const QPaintEngineState &state) override
 Reimplement this function to update the state of a paint engine.
QPainterStatestate ()
const QPainterStatestate () const
virtual void sync ()
virtual void beginNativePainting ()
virtual void endNativePainting ()
virtual uint flags () const
Public Member Functions inherited from QPaintEngine
 QPaintEngine (PaintEngineFeatures features=PaintEngineFeatures())
 Creates a paint engine with the featureset specified by caps.
virtual ~QPaintEngine ()
 Destroys the paint engine.
bool isActive () const
 Returns true if the paint engine is actively drawing; otherwise returns false.
void setActive (bool newState)
 Sets the active state of the paint engine to state.
void setPaintDevice (QPaintDevice *device)
QPaintDevicepaintDevice () const
 Returns the device that this engine is painting on, if painting is active; otherwise returns \nullptr.
void setSystemClip (const QRegion &baseClip)
QRegion systemClip () const
void setSystemRect (const QRect &rect)
QRect systemRect () const
void fix_neg_rect (int *x, int *y, int *w, int *h)
bool testDirty (DirtyFlags df)
void setDirty (DirtyFlags df)
void clearDirty (DirtyFlags df)
bool hasFeature (PaintEngineFeatures feature) const
 Returns true if the paint engine supports the specified feature; otherwise returns false.
QPainterpainter () const
 Returns the paint engine's painter.
void syncState ()
bool isExtended () const
virtual QPixmap createPixmap (QSize size)
virtual QPixmap createPixmapFromImage (QImage image, Qt::ImageConversionFlags flags=Qt::AutoColor)

Protected Member Functions

 QRasterPaintEngine (QRasterPaintEnginePrivate &d, QPaintDevice *)
Protected Member Functions inherited from QPaintEngineEx
 QPaintEngineEx (QPaintEngineExPrivate &data)
Protected Member Functions inherited from QPaintEngine
 QPaintEngine (QPaintEnginePrivate &data, PaintEngineFeatures devcaps=PaintEngineFeatures())

Friends

struct QSpanData
class QBlitterPaintEngine
class QBlitterPaintEnginePrivate

Additional Inherited Members

Protected Attributes inherited from QPaintEngine
QPaintEngineStatestate
PaintEngineFeatures gccaps
uint active: 1
uint selfDestruct: 1
uint extended: 1
QScopedPointer< QPaintEnginePrivated_ptr

Detailed Description

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

\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

Definition at line 94 of file qpaintengine_raster_p.h.

Member Enumeration Documentation

◆ ClipType

\value RectClip Indicates that the currently set clip is a single rectangle. \value ComplexClip Indicates that the currently set clip is a combination of several shapes.

Enumerator
RectClip 
ComplexClip 

Definition at line 167 of file qpaintengine_raster_p.h.

Constructor & Destructor Documentation

◆ QRasterPaintEngine() [1/2]

QRasterPaintEngine::QRasterPaintEngine ( QPaintDevice * device)
Since
4.5

Creates a raster based paint engine for operating on the given device, with the complete set of \l {QPaintEngine::PaintEngineFeature}{paint engine features and capabilities}.

Definition at line 285 of file qpaintengine_raster.cpp.

◆ ~QRasterPaintEngine()

QRasterPaintEngine::~QRasterPaintEngine ( )

Destroys this paint engine.

Definition at line 375 of file qpaintengine_raster.cpp.

◆ QRasterPaintEngine() [2/2]

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

Definition at line 295 of file qpaintengine_raster.cpp.

Member Function Documentation

◆ alphaPenBlt()

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

Definition at line 2530 of file qpaintengine_raster.cpp.

◆ begin()

bool QRasterPaintEngine::begin ( QPaintDevice * device)
overridevirtual

\reimp

Implements QPaintEngine.

Definition at line 385 of file qpaintengine_raster.cpp.

◆ brushChanged()

void QRasterPaintEngine::brushChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 685 of file qpaintengine_raster.cpp.

◆ brushOriginChanged()

void QRasterPaintEngine::brushOriginChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 671 of file qpaintengine_raster.cpp.

◆ clip() [1/3]

void QRasterPaintEngine::clip ( const QRect & rect,
Qt::ClipOperation op )
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 1194 of file qpaintengine_raster.cpp.

◆ clip() [2/3]

void QRasterPaintEngine::clip ( const QRegion & region,
Qt::ClipOperation op )
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 1270 of file qpaintengine_raster.cpp.

◆ clip() [3/3]

void QRasterPaintEngine::clip ( const QVectorPath & path,
Qt::ClipOperation op )
overridevirtual

Implements QPaintEngineEx.

Definition at line 1120 of file qpaintengine_raster.cpp.

◆ clipBoundingRect()

QRectF QRasterPaintEngine::clipBoundingRect ( ) const

Returns the bounding rect of the currently set clip.

Definition at line 3489 of file qpaintengine_raster.cpp.

◆ clipData()

const QClipData * QRasterPaintEngine::clipData ( ) const
inline

Definition at line 441 of file qpaintengine_raster_p.h.

◆ clipEnabledChanged()

void QRasterPaintEngine::clipEnabledChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 840 of file qpaintengine_raster.cpp.

◆ clipType()

QRasterPaintEngine::ClipType QRasterPaintEngine::clipType ( ) const

Returns the type of the clip currently set.

Definition at line 3474 of file qpaintengine_raster.cpp.

◆ compositionModeChanged()

void QRasterPaintEngine::compositionModeChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 765 of file qpaintengine_raster.cpp.

◆ coordinateOffset()

QPoint QRasterPaintEngine::coordinateOffset ( ) const
overridevirtual

Reimplemented from QPaintEngine.

Definition at line 3369 of file qpaintengine_raster.cpp.

◆ createState()

QPainterState * QRasterPaintEngine::createState ( QPainterState * orig) const
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 542 of file qpaintengine_raster.cpp.

◆ drawCachedGlyphs()

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

Reimplemented in QBlitterPaintEngine.

Definition at line 2757 of file qpaintengine_raster.cpp.

◆ drawEllipse()

void QRasterPaintEngine::drawEllipse ( const QRectF & rect)
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 3272 of file qpaintengine_raster.cpp.

◆ drawImage() [1/2]

void QRasterPaintEngine::drawImage ( const QPointF & p,
const QImage & img )
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 2093 of file qpaintengine_raster.cpp.

◆ drawImage() [2/2]

void QRasterPaintEngine::drawImage ( const QRectF & r,
const QImage & pm,
const QRectF & sr,
Qt::ImageConversionFlags flags = Qt::AutoColor )
overridevirtual

\reimp

Implements QPaintEngineEx.

Definition at line 2196 of file qpaintengine_raster.cpp.

◆ drawLines() [1/2]

void QRasterPaintEngine::drawLines ( const QLine * line,
int lineCount )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 3169 of file qpaintengine_raster.cpp.

◆ drawLines() [2/2]

void QRasterPaintEngine::drawLines ( const QLineF * line,
int lineCount )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 3246 of file qpaintengine_raster.cpp.

◆ drawPixmap() [1/2]

void QRasterPaintEngine::drawPixmap ( const QPointF & pos,
const QPixmap & pixmap )
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 1985 of file qpaintengine_raster.cpp.

◆ drawPixmap() [2/2]

void QRasterPaintEngine::drawPixmap ( const QRectF & r,
const QPixmap & pm,
const QRectF & sr )
overridevirtual

\reimp

Implements QPaintEngineEx.

Definition at line 2026 of file qpaintengine_raster.cpp.

◆ drawPoints() [1/2]

void QRasterPaintEngine::drawPoints ( const QPoint * points,
int pointCount )
overridevirtual

Draws the first pointCount points in the buffer points.

The default implementation converts the first pointCount QPoints in points to QPointFs and calls the floating point version of drawPoints.

Reimplemented from QPaintEngineEx.

Definition at line 3148 of file qpaintengine_raster.cpp.

◆ drawPoints() [2/2]

void QRasterPaintEngine::drawPoints ( const QPointF * points,
int pointCount )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 3129 of file qpaintengine_raster.cpp.

◆ drawPolygon() [1/2]

void QRasterPaintEngine::drawPolygon ( const QPoint * points,
int pointCount,
PolygonDrawMode mode )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1921 of file qpaintengine_raster.cpp.

◆ drawPolygon() [2/2]

void QRasterPaintEngine::drawPolygon ( const QPointF * points,
int pointCount,
PolygonDrawMode mode )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1880 of file qpaintengine_raster.cpp.

◆ drawRects() [1/2]

void QRasterPaintEngine::drawRects ( const QRect * rects,
int rectCount )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1436 of file qpaintengine_raster.cpp.

◆ drawRects() [2/2]

void QRasterPaintEngine::drawRects ( const QRectF * rects,
int rectCount )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1490 of file qpaintengine_raster.cpp.

◆ drawStaticTextItem()

void QRasterPaintEngine::drawStaticTextItem ( QStaticTextItem * textItem)
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 3031 of file qpaintengine_raster.cpp.

◆ drawTextItem()

void QRasterPaintEngine::drawTextItem ( const QPointF & p,
const QTextItem & textItem )
overridevirtual

\reimp

Reimplemented from QPaintEngine.

Definition at line 3067 of file qpaintengine_raster.cpp.

◆ drawTiledPixmap()

void QRasterPaintEngine::drawTiledPixmap ( const QRectF & r,
const QPixmap & pm,
const QPointF & sr )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 2443 of file qpaintengine_raster.cpp.

◆ end()

bool QRasterPaintEngine::end ( )
overridevirtual

\reimp

Implements QPaintEngine.

Definition at line 455 of file qpaintengine_raster.cpp.

◆ fill()

void QRasterPaintEngine::fill ( const QVectorPath & path,
const QBrush & brush )
overridevirtual

Implements QPaintEngineEx.

Definition at line 1628 of file qpaintengine_raster.cpp.

◆ fillPath()

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

Reimplemented in QBlitterPaintEngine.

Definition at line 1331 of file qpaintengine_raster.cpp.

◆ fillPolygon()

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

Reimplemented in QBlitterPaintEngine.

Definition at line 1846 of file qpaintengine_raster.cpp.

◆ fillRect() [1/2]

void QRasterPaintEngine::fillRect ( const QRectF & rect,
const QBrush & brush )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1737 of file qpaintengine_raster.cpp.

◆ fillRect() [2/2]

void QRasterPaintEngine::fillRect ( const QRectF & rect,
const QColor & color )
overridevirtual

\reimp

Reimplemented from QPaintEngineEx.

Definition at line 1767 of file qpaintengine_raster.cpp.

◆ opacityChanged()

void QRasterPaintEngine::opacityChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 747 of file qpaintengine_raster.cpp.

◆ penChanged()

void QRasterPaintEngine::penChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 581 of file qpaintengine_raster.cpp.

◆ rasterBuffer()

QRasterBuffer * QRasterPaintEngine::rasterBuffer ( )

Definition at line 2521 of file qpaintengine_raster.cpp.

◆ renderHintsChanged()

void QRasterPaintEngine::renderHintsChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 786 of file qpaintengine_raster.cpp.

◆ requiresPretransformedGlyphPositions()

bool QRasterPaintEngine::requiresPretransformedGlyphPositions ( QFontEngine * fontEngine,
const QTransform & m ) const
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 3332 of file qpaintengine_raster.cpp.

◆ setState()

void QRasterPaintEngine::setState ( QPainterState * s)
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 556 of file qpaintengine_raster.cpp.

◆ shouldDrawCachedGlyphs()

bool QRasterPaintEngine::shouldDrawCachedGlyphs ( QFontEngine * fontEngine,
const QTransform & m ) const
overridevirtual

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

Reimplemented from QPaintEngineEx.

Definition at line 3346 of file qpaintengine_raster.cpp.

◆ state() [1/2]

QRasterPaintEngineState * QRasterPaintEngine::state ( )
inline

Definition at line 115 of file qpaintengine_raster_p.h.

◆ state() [2/2]

const QRasterPaintEngineState * QRasterPaintEngine::state ( ) const
inline

Definition at line 118 of file qpaintengine_raster_p.h.

◆ stroke()

void QRasterPaintEngine::stroke ( const QVectorPath & path,
const QPen & pen )
overridevirtual

Reimplemented from QPaintEngineEx.

Definition at line 1542 of file qpaintengine_raster.cpp.

◆ transformChanged()

void QRasterPaintEngine::transformChanged ( )
overridevirtual

Implements QPaintEngineEx.

Definition at line 820 of file qpaintengine_raster.cpp.

◆ type()

Type QRasterPaintEngine::type ( ) const
inlineoverridevirtual

Reimplement this function to return the paint engine \l{Type}.

Implements QPaintEngine.

Definition at line 184 of file qpaintengine_raster_p.h.

◆ updateBrush()

void QRasterPaintEngine::updateBrush ( const QBrush & brush)

Definition at line 700 of file qpaintengine_raster.cpp.

◆ updateMatrix()

void QRasterPaintEngine::updateMatrix ( const QTransform & matrix)

Definition at line 471 of file qpaintengine_raster.cpp.

◆ updatePen()

void QRasterPaintEngine::updatePen ( const QPen & pen)

Definition at line 595 of file qpaintengine_raster.cpp.

◆ QBlitterPaintEngine

friend class QBlitterPaintEngine
friend

Definition at line 195 of file qpaintengine_raster_p.h.

◆ QBlitterPaintEnginePrivate

friend class QBlitterPaintEnginePrivate
friend

Definition at line 196 of file qpaintengine_raster_p.h.

◆ QSpanData

friend struct QSpanData
friend

Definition at line 194 of file qpaintengine_raster_p.h.


The documentation for this class was generated from the following files: