summaryrefslogtreecommitdiff
path: root/libsowatch/metawatchpaintengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsowatch/metawatchpaintengine.h')
-rw-r--r--libsowatch/metawatchpaintengine.h34
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