<class name="QPaintEngine" doc="/**
&lt;p&gt;The &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; class provides an abstract definition of how &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt; draws to a given device on a given platform.&lt;/p&gt;
&lt;p&gt;Qt 4.0 provides several premade implementations of &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; for the different painter backends we support. We provide one paint engine for each window system and painting framework we support. This includes X11 on Unix/Linux and &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;CoreGraphics&lt;/tt&gt;&lt;/a&gt; on Mac OS X. In addition we provide &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; implementations for &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;OpenGL&lt;/tt&gt;&lt;/a&gt; (accessible through &lt;a href=&quot;%2E%2E/opengl/QGLWidget.html&quot;&gt;&lt;tt&gt;QGLWidget&lt;/tt&gt;&lt;/a&gt;) and &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;PostScript&lt;/tt&gt;&lt;/a&gt; (accessible through QPSPrinter on X11). Additionally there is a raster-based paint engine that is a fallback for when an engine does not support a certain capability.&lt;/p&gt;
&lt;p&gt;If one wants to use &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt; to draw to a different backend, one must subclass &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; and reimplement all its virtual functions. The &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; implementation is then made available by subclassing &lt;a href=&quot;QPaintDevice.html&quot;&gt;&lt;tt&gt;QPaintDevice&lt;/tt&gt;&lt;/a&gt; and reimplementing the virtual function QPaintDevice::paintEngine().&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; is created and owned by the &lt;a href=&quot;QPaintDevice.html&quot;&gt;&lt;tt&gt;QPaintDevice&lt;/tt&gt;&lt;/a&gt; that created it.&lt;/p&gt;
&lt;p&gt;The big advantage of the &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; approach opposed to Qt 3's &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt;/QPaintDevice::cmd() approach is that it is now possible to adapt to multiple technologies on each platform and take advantage of each to the fullest.&lt;/p&gt;

@see &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QPaintDevice::paintEngine&lt;/tt&gt;
@see &lt;a href=&quot;%2E%2E/paintsystem.html&quot;&gt;The Paint System&lt;/tt&gt;&lt;/a&gt; */">
    <method name="public QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures features)" doc="/**
&lt;p&gt;Creates a paint engine with the featureset specified by &lt;tt&gt;features&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="public QPaintEngine()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt;(0). */"/>
    <method name="public final void clearDirty(com.trolltech.qt.gui.QPaintEngine.DirtyFlags df)" doc="/**
&lt;p&gt;&lt;/p&gt;
 */"/>
    <method name="public final boolean hasFeature(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures feature)" doc="/**
&lt;p&gt;Returns true if the paint engine supports the specified &lt;tt&gt;feature&lt;/tt&gt;; otherwise returns false.&lt;/p&gt;
 */"/>
    <method name="public final boolean isActive()" doc="/**
&lt;p&gt;Returns true if the paint engine is actively drawing; otherwise returns false.&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#setActive(boolean)&quot;&gt;&lt;tt&gt;setActive&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final com.trolltech.qt.gui.QPaintDeviceInterface paintDevice()" doc="/**
&lt;p&gt;Returns the device that this engine is painting on, if painting is active; otherwise returns 0.&lt;/p&gt;
 */"/>
    <method name="public final com.trolltech.qt.gui.QPainter painter()" doc="/**
&lt;p&gt;Returns the paint engine's painter.&lt;/p&gt;
 */"/>
    <method name="public final void setActive(boolean newState)" doc="/**
&lt;p&gt;Sets the active state of the paint engine to &lt;tt&gt;newState&lt;/tt&gt;.&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#active()&quot;&gt;&lt;tt&gt;active&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QPaintEngine.html#isActive()&quot;&gt;&lt;tt&gt;isActive&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void setDirty(com.trolltech.qt.gui.QPaintEngine.DirtyFlags df)" doc="/**
&lt;p&gt;&lt;/p&gt;
 */"/>
    <method name="public final void setSystemClip(com.trolltech.qt.gui.QRegion baseClip)" doc="/**
&lt;p&gt;&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#systemClip()&quot;&gt;&lt;tt&gt;systemClip&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void setSystemRect(com.trolltech.qt.core.QRect rect)" doc="/**
&lt;p&gt;&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#systemRect()&quot;&gt;&lt;tt&gt;systemRect&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void syncState()" doc="/**
&lt;p&gt;&lt;/p&gt;
 */"/>
    <method name="public final com.trolltech.qt.gui.QRegion systemClip()" doc="/**
&lt;p&gt;&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#setSystemClip(com.trolltech.qt.gui.QRegion)&quot;&gt;&lt;tt&gt;setSystemClip&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final com.trolltech.qt.core.QRect systemRect()" doc="/**
&lt;p&gt;&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#setSystemRect(com.trolltech.qt.core.QRect)&quot;&gt;&lt;tt&gt;setSystemRect&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final boolean testDirty(com.trolltech.qt.gui.QPaintEngine.DirtyFlags df)" doc="/**
&lt;p&gt;&lt;/p&gt;
 */"/>
    <method name="public abstract boolean begin(com.trolltech.qt.gui.QPaintDeviceInterface pdev)" doc="/**
&lt;p&gt;Reimplement this function to initialise your paint engine when painting is to start on the paint device &lt;tt&gt;pdev&lt;/tt&gt;. Return true if the initialization was successful; otherwise return false.&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#end()&quot;&gt;&lt;tt&gt;end&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QPaintEngine.html#isActive()&quot;&gt;&lt;tt&gt;isActive&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public com.trolltech.qt.core.QPoint coordinateOffset()" doc="/**
&lt;p&gt;&lt;/p&gt;
 */"/>
    <method name="public void drawEllipse(com.trolltech.qt.core.QRect r)" doc="/**
&lt;p&gt;The default implementation of this function calls the floating point version of this function&lt;/p&gt;
 */"/>
    <method name="public void drawEllipse(com.trolltech.qt.core.QRectF r)" doc="/**
&lt;p&gt;Reimplement this function to draw the largest ellipse that can be contained within rectangle &lt;tt&gt;r&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;The default implementation calls &lt;a href=&quot;QPaintEngine.html#drawPolygon(com.trolltech.qt.core.QPointF[], com.trolltech.qt.gui.QPaintEngine.PolygonDrawMode)&quot;&gt;&lt;tt&gt;drawPolygon&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
 */"/>
    <method name="public void drawImage(com.trolltech.qt.core.QRectF r, com.trolltech.qt.gui.QImage pm, com.trolltech.qt.core.QRectF sr, com.trolltech.qt.core.Qt.ImageConversionFlags flags)" doc="/**
&lt;p&gt;Reimplement this function to draw the part of the &lt;tt&gt;pm&lt;/tt&gt; specified by the &lt;tt&gt;sr&lt;/tt&gt; rectangle in the given &lt;tt&gt;r&lt;/tt&gt; using the given conversion flags &lt;tt&gt;flags&lt;/tt&gt;, to convert it to a pixmap.&lt;/p&gt;
 */"/>
    <method name="public final void drawImage(com.trolltech.qt.core.QRectF r, com.trolltech.qt.gui.QImage pm, com.trolltech.qt.core.QRectF sr)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawImage(com.trolltech.qt.core.QRectF, com.trolltech.qt.gui.QImage, com.trolltech.qt.core.QRectF, com.trolltech.qt.core.Qt.ImageConversionFlags)&quot;&gt;&lt;tt&gt;drawImage&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;r&lt;/tt&gt;, &lt;tt&gt;pm&lt;/tt&gt;, &lt;tt&gt;sr&lt;/tt&gt;, Qt::AutoColor). */"/>
    <method name="public void drawLines(com.trolltech.qt.gui.QLineF[] lines)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawLines(com.trolltech.qt.gui.QLineF[])&quot;&gt;&lt;tt&gt;drawLines&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;lines&lt;/tt&gt;, ). */"/>
    <method name="public void drawLines(com.trolltech.qt.gui.QLine[] lines)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawLines(com.trolltech.qt.gui.QLineF[])&quot;&gt;&lt;tt&gt;drawLines&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;lines&lt;/tt&gt;, ). */"/>
    <method name="public void drawPath(com.trolltech.qt.gui.QPainterPath path)" doc="/**
&lt;p&gt;The default implementation ignores the &lt;tt&gt;path&lt;/tt&gt; and does nothing.&lt;/p&gt;
 */"/>
    <method name="public abstract void drawPixmap(com.trolltech.qt.core.QRectF r, com.trolltech.qt.gui.QPixmap pm, com.trolltech.qt.core.QRectF sr)" doc="/**
&lt;p&gt;Reimplement this function to draw the part of the &lt;tt&gt;pm&lt;/tt&gt; specified by the &lt;tt&gt;sr&lt;/tt&gt; rectangle in the given &lt;tt&gt;r&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="public void drawPoints(com.trolltech.qt.core.QPointF[] points)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawPoints(com.trolltech.qt.core.QPointF[])&quot;&gt;&lt;tt&gt;drawPoints&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;points&lt;/tt&gt;, ). */"/>
    <method name="public void drawPoints(com.trolltech.qt.core.QPoint[] points)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawPoints(com.trolltech.qt.core.QPointF[])&quot;&gt;&lt;tt&gt;drawPoints&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;points&lt;/tt&gt;, ). */"/>
    <method name="public void drawPolygon(com.trolltech.qt.core.QPointF[] points, com.trolltech.qt.gui.QPaintEngine.PolygonDrawMode mode)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawPolygon(com.trolltech.qt.core.QPointF[], com.trolltech.qt.gui.QPaintEngine.PolygonDrawMode)&quot;&gt;&lt;tt&gt;drawPolygon&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;points&lt;/tt&gt;, &lt;tt&gt;mode&lt;/tt&gt;, ). */"/>
    <method name="public void drawPolygon(com.trolltech.qt.core.QPoint[] points, com.trolltech.qt.gui.QPaintEngine.PolygonDrawMode mode)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawPolygon(com.trolltech.qt.core.QPointF[], com.trolltech.qt.gui.QPaintEngine.PolygonDrawMode)&quot;&gt;&lt;tt&gt;drawPolygon&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;points&lt;/tt&gt;, &lt;tt&gt;mode&lt;/tt&gt;, ). */"/>
    <method name="public void drawRects(com.trolltech.qt.core.QRect[] rects)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawRects(com.trolltech.qt.core.QRect[])&quot;&gt;&lt;tt&gt;drawRects&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;rects&lt;/tt&gt;, ). */"/>
    <method name="public void drawRects(com.trolltech.qt.core.QRectF[] rects)" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QPaintEngine.html#drawRects(com.trolltech.qt.core.QRect[])&quot;&gt;&lt;tt&gt;drawRects&lt;/tt&gt;&lt;/a&gt;(&lt;tt&gt;rects&lt;/tt&gt;, ). */"/>
    <method name="public void drawTextItem(com.trolltech.qt.core.QPointF p, com.trolltech.qt.gui.QTextItem textItem)" doc="/**
&lt;p&gt;This function draws the text item &lt;tt&gt;textItem&lt;/tt&gt; at position &lt;tt&gt;p&lt;/tt&gt;. The default implementation of this function converts the text to a &lt;a href=&quot;QPainterPath.html&quot;&gt;&lt;tt&gt;QPainterPath&lt;/tt&gt;&lt;/a&gt; and paints the resulting path.&lt;/p&gt;
 */"/>
    <method name="public void drawTiledPixmap(com.trolltech.qt.core.QRectF r, com.trolltech.qt.gui.QPixmap pixmap, com.trolltech.qt.core.QPointF s)" doc="/**
&lt;p&gt;Reimplement this function to draw the &lt;tt&gt;pixmap&lt;/tt&gt; in the given &lt;tt&gt;r&lt;/tt&gt;, starting at the given &lt;tt&gt;s&lt;/tt&gt;. The pixmap will be drawn repeatedly until the &lt;tt&gt;r&lt;/tt&gt; is filled.&lt;/p&gt;
 */"/>
    <method name="public abstract boolean end()" doc="/**
&lt;p&gt;Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngine.html#begin(com.trolltech.qt.gui.QPaintDeviceInterface)&quot;&gt;&lt;tt&gt;begin&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QPaintEngine.html#isActive()&quot;&gt;&lt;tt&gt;isActive&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public abstract com.trolltech.qt.gui.QPaintEngine.Type type()" doc="/**
&lt;p&gt;Reimplement this function to return the paint engine &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;Type&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
 */"/>
    <method name="public abstract void updateState(com.trolltech.qt.gui.QPaintEngineState state)" doc="/**
&lt;p&gt;Reimplement this function to update the state of a paint engine.&lt;/p&gt;
&lt;p&gt;When implemented, this function is responsible for checking the paint engine's current &lt;tt&gt;state&lt;/tt&gt; and update the properties that are changed. Use the QPaintEngineState::state() function to find out which properties that must be updated, then use the corresponding &lt;a href=&quot;QPaintEngineState.html#getfunction&quot;&gt;get function&lt;/tt&gt;&lt;/a&gt; to retrieve the current values for the given properties.&lt;/p&gt;

@see &lt;a href=&quot;QPaintEngineState.html&quot;&gt;&lt;tt&gt;QPaintEngineState&lt;/tt&gt;&lt;/a&gt; */"/>
    <enum name="PolygonDrawMode">
        <enum-value name="OddEvenMode" doc="/**
&lt;p&gt;The polygon should be drawn using OddEven fill rule.&lt;/p&gt;
 */"/>
        <enum-value name="WindingMode" doc="/**
&lt;p&gt;The polygon should be drawn using Winding fill rule.&lt;/p&gt;
 */"/>
        <enum-value name="ConvexMode" doc="/**
&lt;p&gt;The polygon is a convex polygon and can be drawn using specialized algorithms where available.&lt;/p&gt;
 */"/>
        <enum-value name="PolylineMode" doc="/**
&lt;p&gt;Only the outline of the polygon should be drawn.&lt;/p&gt;
 */"/>
</enum>
    <enum name="Type">
        <enum-value name="X11" doc="/**
Internal. */"/>
        <enum-value name="Windows" doc="/**
Internal. */"/>
        <enum-value name="QuickDraw" doc="/**
&lt;p&gt;Mac OS X's &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;QuickDraw&lt;/tt&gt;&lt;/a&gt;&lt;/p&gt;
 */"/>
        <enum-value name="CoreGraphics" doc="/**
&lt;p&gt;Mac OS X's Quartz2D (&lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;CoreGraphics&lt;/tt&gt;&lt;/a&gt;)&lt;/p&gt;
 */"/>
        <enum-value name="MacPrinter" doc="/**
Internal. */"/>
        <enum-value name="QWindowSystem" doc="/**
&lt;p&gt;Qtopia Core&lt;/p&gt;
 */"/>
        <enum-value name="PostScript" doc="/**
Internal. */"/>
        <enum-value name="OpenGL" doc="/**
Internal. */"/>
        <enum-value name="Picture" doc="/**
&lt;p&gt;&lt;a href=&quot;QPicture.html&quot;&gt;&lt;tt&gt;QPicture&lt;/tt&gt;&lt;/a&gt; format&lt;/p&gt;
 */"/>
        <enum-value name="SVG" doc="/**
&lt;p&gt;Scalable Vector Graphics XML format&lt;/p&gt;
 */"/>
        <enum-value name="Raster" doc="/**
Internal. */"/>
        <enum-value name="Direct3D" doc="/**
&lt;p&gt;Windows only, &lt;a href=&quot;QPaintEngine.html#Type-enum&quot;&gt;&lt;tt&gt;Direct3D&lt;/tt&gt;&lt;/a&gt; based engine&lt;/p&gt;
 */"/>
        <enum-value name="User" doc="/**
&lt;p&gt;First user type ID&lt;/p&gt;
 */"/>
        <enum-value name="MaxUser" doc="/**
&lt;p&gt;Last user type ID&lt;/p&gt;
 */"/>
</enum>
    <enum name="PaintEngineFeature" doc="/**
&lt;p&gt;This enum is used to describe the features or capabilities that the paint engine has. If a feature is not supported by the engine, &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt; will do a best effort to emulate that feature through other means and pass on an alpha blended &lt;a href=&quot;QImage.html&quot;&gt;&lt;tt&gt;QImage&lt;/tt&gt;&lt;/a&gt; to the engine with the emulated results. Some features cannot be emulated: &lt;a href=&quot;QPaintEngine.html#PaintEngineFeature-enum&quot;&gt;&lt;tt&gt;AlphaBlend&lt;/tt&gt;&lt;/a&gt; and &lt;a href=&quot;QPaintEngine.html#PaintEngineFeature-enum&quot;&gt;&lt;tt&gt;PorterDuff&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
 */">
        <enum-value name="PrimitiveTransform" doc="/**
&lt;p&gt;The engine has support for transforming drawing primitives.&lt;/p&gt;
 */"/>
        <enum-value name="PatternTransform" doc="/**
&lt;p&gt;The engine has support for transforming brush patterns.&lt;/p&gt;
 */"/>
        <enum-value name="PixmapTransform" doc="/**
&lt;p&gt;The engine can transform pixmaps, including rotation and shearing.&lt;/p&gt;
 */"/>
        <enum-value name="PatternBrush" doc="/**
&lt;p&gt;The engine is capable of rendering brushes with the brush patterns specified in Qt::BrushStyle.&lt;/p&gt;
 */"/>
        <enum-value name="LinearGradientFill" doc="/**
&lt;p&gt;The engine supports linear gradient fills.&lt;/p&gt;
 */"/>
        <enum-value name="RadialGradientFill" doc="/**
&lt;p&gt;The engine supports radial gradient fills.&lt;/p&gt;
 */"/>
        <enum-value name="ConicalGradientFill" doc="/**
&lt;p&gt;The engine supports conical gradient fills.&lt;/p&gt;
 */"/>
        <enum-value name="AlphaBlend" doc="/**
&lt;p&gt;The engine can alpha blend primitives.&lt;/p&gt;
 */"/>
        <enum-value name="PorterDuff" doc="/**
&lt;p&gt;The engine supports Porter-Duff operations&lt;/p&gt;
 */"/>
        <enum-value name="PainterPaths" doc="/**
&lt;p&gt;The engine has path support.&lt;/p&gt;
 */"/>
        <enum-value name="Antialiasing" doc="/**
&lt;p&gt;The engine can use antialising to improve the appearance of rendered primitives.&lt;/p&gt;
 */"/>
        <enum-value name="BrushStroke" doc="/**
&lt;p&gt;The engine supports drawing strokes that contain brushes as fills, not just solid colors (e.g&amp;#x2e; a dashed gradient line of width 2).&lt;/p&gt;
 */"/>
        <enum-value name="ConstantOpacity" doc="/**
&lt;p&gt;The engine supports the feature provided by QPainter::setOpacity().&lt;/p&gt;
 */"/>
        <enum-value name="MaskedBrush" doc="/**
&lt;p&gt;The engine is capable of rendering brushes that has a texture with an alpha channel or a mask.&lt;/p&gt;
 */"/>
        <enum-value name="PerspectiveTransform" doc="/**
&lt;p&gt;The engine has support for performing perspective transformations on primitives.&lt;/p&gt;
 */"/>
        <enum-value name="BlendModes" doc="/**
&lt;p&gt;The engine supports blending modes.&lt;/p&gt;
 */"/>
        <enum-value name="PaintOutsidePaintEvent" doc="/**
&lt;p&gt;The engine is capable of painting outside of paint events.&lt;/p&gt;
 */"/>
        <enum-value name="AllFeatures" doc="/**
&lt;p&gt;All of the above features. This enum value is usually used as a bit mask.&lt;/p&gt;
 */"/>
</enum>
    <enum name="DirtyFlag" doc="/**
&lt;p&gt;These types are used by &lt;a href=&quot;QPainter.html&quot;&gt;&lt;tt&gt;QPainter&lt;/tt&gt;&lt;/a&gt; to trigger lazy updates of the various states in the &lt;a href=&quot;QPaintEngine.html#QPaintEngine(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures)&quot;&gt;&lt;tt&gt;QPaintEngine&lt;/tt&gt;&lt;/a&gt; using QPaintEngine::updateState().&lt;/p&gt;
&lt;p&gt;A paint engine must update every dirty state.&lt;/p&gt;
 */">
        <enum-value name="DirtyPen" doc="/**
&lt;p&gt;The pen is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyBrush" doc="/**
&lt;p&gt;The brush is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyBrushOrigin" doc="/**
&lt;p&gt;The brush origin is dirty and needs to updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyFont" doc="/**
&lt;p&gt;The font is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyBackground" doc="/**
&lt;p&gt;The background is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyBackgroundMode" doc="/**
&lt;p&gt;The background mode is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyTransform" doc="/**
&lt;p&gt;The transform is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyClipRegion" doc="/**
&lt;p&gt;The clip region is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyClipPath" doc="/**
&lt;p&gt;The clip path is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyHints" doc="/**
&lt;p&gt;The render hints is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyCompositionMode" doc="/**
&lt;p&gt;The composition mode is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyClipEnabled" doc="/**
&lt;p&gt;Whether clipping is enabled or not is dirty and needs to be updated.&lt;/p&gt;
 */"/>
        <enum-value name="DirtyOpacity" doc="/**
&lt;p&gt;The constant opacity has changed and needs to be updated as part of the state change in QPaintEngine::updateState().&lt;/p&gt;
 */"/>
        <enum-value name="AllDirty" doc="/**
&lt;p&gt;Convenience enum used internally.&lt;/p&gt;
 */"/>
</enum>
    <method name="protected final int selfDestruct()"/>
    <method name="protected final void setSelfDestruct(int selfDestruct)"/>
    <method name="protected final int active()"/>
    <method name="protected final void setActive(int active)"/>
    <method name="protected final com.trolltech.qt.gui.QPaintEngineState state()"/>
    <method name="protected final void setState(com.trolltech.qt.gui.QPaintEngineState state)"/>
    <method name="protected final com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures gccaps()"/>
    <method name="protected final void setGccaps(com.trolltech.qt.gui.QPaintEngine.PaintEngineFeatures gccaps)"/>
</class>
