summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/pointtool.cpp
authorleseb <leseb>2002-06-19 07:10:53 (UTC)
committer leseb <leseb>2002-06-19 07:10:53 (UTC)
commit1d60bfb5925c5009122ae04009f8e99658436b35 (patch) (unidiff)
treeb2f81f2bda14b2228fb1d70dc194a4e112f0f66b /noncore/graphics/drawpad/pointtool.cpp
parentb1fd4450c70522551361c6138688777cb29e1e2f (diff)
downloadopie-1d60bfb5925c5009122ae04009f8e99658436b35.zip
opie-1d60bfb5925c5009122ae04009f8e99658436b35.tar.gz
opie-1d60bfb5925c5009122ae04009f8e99658436b35.tar.bz2
Anti-aliasing support
Diffstat (limited to 'noncore/graphics/drawpad/pointtool.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/pointtool.cpp40
1 files changed, 35 insertions, 5 deletions
diff --git a/noncore/graphics/drawpad/pointtool.cpp b/noncore/graphics/drawpad/pointtool.cpp
index 656044b..22bb089 100644
--- a/noncore/graphics/drawpad/pointtool.cpp
+++ b/noncore/graphics/drawpad/pointtool.cpp
@@ -19,2 +19,3 @@
19 19
20#include <qimage.h>
20#include <qpainter.h> 21#include <qpainter.h>
@@ -50,5 +51,2 @@ void PointTool::mouseMoveEvent(QMouseEvent* e)
50 if (m_mousePressed) { 51 if (m_mousePressed) {
51 QPainter painter;
52 painter.begin(m_pDrawPadCanvas->currentPage());
53 painter.setPen(m_pDrawPad->pen());
54 m_polyline[2] = m_polyline[1]; 52 m_polyline[2] = m_polyline[1];
@@ -56,4 +54,5 @@ void PointTool::mouseMoveEvent(QMouseEvent* e)
56 m_polyline[0] = e->pos(); 54 m_polyline[0] = e->pos();
57 painter.drawPolyline(m_polyline); 55
58 painter.end(); 56 QPainter painter;
57 painter.begin(m_pDrawPadCanvas->currentPage());
59 58
@@ -66,2 +65,33 @@ void PointTool::mouseMoveEvent(QMouseEvent* e)
66 65
66 QPixmap areaPixmap(r.width(), r.height());
67 bitBlt(&areaPixmap, QPoint(0, 0), painter.device(), r);
68
69 QImage areaImage = areaPixmap.convertToImage();
70 QImage bigAreaImage = areaImage.smoothScale(areaImage.width() * 3, areaImage.height() * 3);
71
72 QPixmap bigAreaPixmap;
73 bigAreaPixmap.convertFromImage(bigAreaImage);
74
75 QPen bigAreaPen = m_pDrawPad->pen();
76 bigAreaPen.setWidth(bigAreaPen.width() * 3);
77
78 QPainter bigAreaPainter;
79 bigAreaPainter.begin(&bigAreaPixmap);
80 bigAreaPainter.setPen(bigAreaPen);
81
82 QPointArray bigAreaPolyline(3);
83 bigAreaPolyline.setPoint(0, (m_polyline[0].x() - r.x()) * 3 + 1, (m_polyline[0].y() - r.y()) * 3 + 1);
84 bigAreaPolyline.setPoint(1, (m_polyline[1].x() - r.x()) * 3 + 1, (m_polyline[1].y() - r.y()) * 3 + 1);
85 bigAreaPolyline.setPoint(2, (m_polyline[2].x() - r.x()) * 3 + 1, (m_polyline[2].y() - r.y()) * 3 + 1);
86
87 bigAreaPainter.drawPolyline(bigAreaPolyline);
88 bigAreaPainter.end();
89
90 bigAreaImage = bigAreaPixmap.convertToImage();
91 areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3);
92 areaPixmap.convertFromImage(areaImage);
93
94 painter.drawPixmap(r.x(), r.y(), areaPixmap);
95 painter.end();
96
67 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()), 97 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()),