diff options
Diffstat (limited to 'libsowatch/metawatchpaintengine.h')
-rw-r--r-- | libsowatch/metawatchpaintengine.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libsowatch/metawatchpaintengine.h b/libsowatch/metawatchpaintengine.h new file mode 100644 index 0000000..efc3d6e --- /dev/null +++ b/libsowatch/metawatchpaintengine.h @@ -0,0 +1,34 @@ +#ifndef METAWATCHPAINTENGINE_H +#define METAWATCHPAINTENGINE_H + +#include <QtCore/QRect> +#include "watchpaintengine.h" + +namespace sowatch +{ + +class MetaWatch; + +/** This WatchPaintEngine accelerates fillRects by using the MetaWatch's template command. */ +class MetaWatchPaintEngine : public WatchPaintEngine +{ +public: + explicit MetaWatchPaintEngine(MetaWatch* watch, QImage* image); + + void drawRects(const QRectF *rects, int rectCount); + void drawRects(const QRect *rects, int rectCount); + + void updateState(const QPaintEngineState &state); + +protected: + bool fillsEntireImage(const QRect& rect); + + MetaWatch* _watch; + QRect _imageRect; + bool _isBrushBlack; + bool _isBrushWhite; +}; + +} + +#endif // METAWATCHPAINTENGINE_H |