#include <QtGui/qpaintengine.h>
#ifndef QPAINTENGINE_H
class QPaintEngine{
   private: inline struct QPaintEnginePrivate* d_func();
   private: inline struct QPaintEnginePrivate const * d_func() const
   public: enum PaintEngineFeature{
      PrimitiveTransform = 1,
      PatternTransform = 2,
      PixmapTransform = 4,
      PatternBrush = 8,
      LinearGradientFill = 16,
      RadialGradientFill = 32,
      ConicalGradientFill = 64,
      AlphaBlend = 128,
      PorterDuff = 256,
      PainterPaths = 512,
      Antialiasing = 1024,
      BrushStroke = 2048,
      ConstantOpacity = 4096,
      MaskedBrush = 8192,
      PaintOutsidePaintEvent = 536870912,
      AllFeatures = -1,
   };
   public: typedef class QFlags < enum QPaintEngine::PaintEngineFeature > PaintEngineFeatures;
   public: enum DirtyFlag{
      DirtyPen = 1,
      DirtyBrush = 2,
      DirtyBrushOrigin = 4,
      DirtyFont = 8,
      DirtyBackground = 16,
      DirtyBackgroundMode = 32,
      DirtyTransform = 64,
      DirtyClipRegion = 128,
      DirtyClipPath = 256,
      DirtyHints = 512,
      DirtyCompositionMode = 1024,
      DirtyClipEnabled = 2048,
      DirtyOpacity = 4096,
      AllDirty = 65535,
   };
   public: typedef class QFlags < enum QPaintEngine::DirtyFlag > DirtyFlags;
   public: enum PolygonDrawMode{
      OddEvenMode = 0,
      WindingMode = 1,
      ConvexMode = 2,
      PolylineMode = 3,
   };
   public: explicit QPaintEngine(class QFlags < enum QPaintEngine::PaintEngineFeature > features = 0);
   public: virtual ~QPaintEngine();
   public: inline bool isActive() const
   public: inline void setActive(bool newState);
   public: virtual bool begin(class QPaintDevice* pdev) = 0;
   public: virtual bool end() = 0;
   public: virtual void updateState(class QPaintEngineState const & state) = 0;
   public: virtual void drawRects(class QRect const * rects, int rectCount);
   public: virtual void drawRects(class QRectF const * rects, int rectCount);
   public: virtual void drawLines(class QLine const * lines, int lineCount);
   public: virtual void drawLines(class QLineF const * lines, int lineCount);
   public: virtual void drawEllipse(class QRectF const & r);
   public: virtual void drawEllipse(class QRect const & r);
   public: virtual void drawPath(struct QPainterPath const & path);
   public: virtual void drawPoints(class QPointF const * points, int pointCount);
   public: virtual void drawPoints(class QPoint const * points, int pointCount);
   public: virtual void drawPolygon(class QPointF const * points, int pointCount, enum QPaintEngine::PolygonDrawMode mode);
   public: virtual void drawPolygon(class QPoint const * points, int pointCount, enum QPaintEngine::PolygonDrawMode mode);
   public: virtual void drawPixmap(class QRectF const & r, class QPixmap const & pm, class QRectF const & sr) = 0;
   public: virtual void drawTextItem(class QPointF const & p, class QTextItem const & textItem);
   public: virtual void drawTiledPixmap(class QRectF const & r, class QPixmap const & pixmap, class QPointF const & s);
   public: virtual void drawImage(class QRectF const & r, class QImage const & pm, class QRectF const & sr, Qt::ImageConversionFlags flags = Qt::AutoColor);
   public: void setPaintDevice(class QPaintDevice* device);
   public: class QPaintDevice* paintDevice() const
   public: void setSystemClip(class QRegion const & baseClip);
   public: class QRegion systemClip() const
   public: void setSystemRect(class QRect const & rect);
   public: class QRect systemRect() const
   public: virtual class QPoint coordinateOffset() const
   public: enum Type{
      X11 = 0,
      Windows = 1,
      QuickDraw = 2,
      CoreGraphics = 3,
      MacPrinter = 4,
      QWindowSystem = 5,
      PostScript = 6,
      OpenGL = 7,
      Picture = 8,
      SVG = 9,
      Raster = 10,
      User = 50,
      MaxUser = 100,
   };
   public: virtual enum QPaintEngine::Type type() const = 0;
   public: inline bool hasFeature(class QFlags < enum QPaintEngine::PaintEngineFeature > feature) const
   public: class QPainter* painter() const
   public: inline void syncState();
   protected: QPaintEngine(struct QPaintEnginePrivate& data, class QFlags < enum QPaintEngine::PaintEngineFeature > devcaps = 0);
   protected: class QPaintEngineState* state;
   protected: class QFlags < enum QPaintEngine::PaintEngineFeature > gccaps;
   protected: unsigned int active:1;
   protected: unsigned int selfDestruct:1;
   protected: struct QPaintEnginePrivate* d_ptr;
   private: inline void setAutoDestruct(bool autoDestr);
   private: inline bool autoDestruct() const
   private: QPaintEngine(class QPaintEngine const &);
   private: class QPaintEngine& operator =(class QPaintEngine const &);
   public: inline void fix_neg_rect(int* x, int* y, int* w, int* h);
   public: inline bool testDirty(class QFlags < enum QPaintEngine::DirtyFlag > df);
   public: inline void setDirty(class QFlags < enum QPaintEngine::DirtyFlag > df);
   public: inline void clearDirty(class QFlags < enum QPaintEngine::DirtyFlag > df);
   friend struct QPaintEnginePrivate;
   friend struct QFontEngineBox;
   friend struct QFontEngineMac;
   friend struct QFontEngineWin;
   friend struct QFontEngineFT;
   friend struct QFontEngineQPF;
   friend struct QPSPrintEngine;
   friend struct QMacPrintEngine;
   friend struct QMacPrintEnginePrivate;
   friend class QPainter;
   friend struct QPainterPrivate;
   friend struct QWidget;
   friend struct QWin32PaintEngine;
   friend struct QWin32PaintEnginePrivate;
   friend struct QMacCGContext;
};
#endif // QPAINTENGINE_H