From c42d5abff1f5f51facc169dd593725d819c4c868 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Sun, 18 Sep 2011 04:26:20 +0200 Subject: separation into lib and plugins complete --- metawatch/metawatchpaintengine.cpp | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'metawatch/metawatchpaintengine.cpp') diff --git a/metawatch/metawatchpaintengine.cpp b/metawatch/metawatchpaintengine.cpp index 71ad452..58a7b9d 100644 --- a/metawatch/metawatchpaintengine.cpp +++ b/metawatch/metawatchpaintengine.cpp @@ -3,19 +3,37 @@ using namespace sowatch; -MetaWatchPaintEngine::MetaWatchPaintEngine(MetaWatch* watch, QImage* image) : - WatchPaintEngine(watch, image), _watch(watch), - _imageRect(image->rect()) +MetaWatchPaintEngine::MetaWatchPaintEngine(MetaWatch* watch) : + WatchPaintEngine(watch), _watch(watch), + _imageRect(0, 0, MetaWatch::screenWidth, MetaWatch::screenHeight) { } +bool MetaWatchPaintEngine::begin(QPaintDevice *pdev) +{ + _damaged = QRegion(); + _watch = static_cast(pdev); + _mode = _watch->paintTargetMode(); + + return _painter.begin(_watch->imageFor(_mode)); +} + +bool MetaWatchPaintEngine::end() +{ + bool ret = _painter.end(); + if (ret) { + _watch->update(_mode, _damaged.rects().toList()); + } + return ret; +} + void MetaWatchPaintEngine::drawRects(const QRectF *rects, int rectCount) { int i; for (i = 0; i < rectCount; i++) { const QRectF& r = rects[i]; if (_hasBrush && fillsEntireImage(r.toRect()) && (_isBrushBlack | _isBrushWhite)) { - _watch->clear(_isBrushWhite); + _watch->clear(_mode, _isBrushBlack); _damaged = QRegion(); continue; } @@ -38,7 +56,7 @@ void MetaWatchPaintEngine::drawRects(const QRect *rects, int rectCount) for (i = 0; i < rectCount; i++) { const QRect& r = rects[i]; if (_hasBrush && fillsEntireImage(r) && (_isBrushBlack | _isBrushWhite)) { - _watch->clear(_isBrushWhite); + _watch->clear(_mode, _isBrushBlack); _damaged = QRegion(); continue; } -- cgit v1.2.3