~ubuntu-branches/ubuntu/precise/koffice/precise

« back to all changes in this revision

Viewing changes to krita/ui/canvas/kis_projection_backend.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-10-27 17:52:57 UTC
  • mfrom: (0.12.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101027175257-s04zqqk5bs8ckm9o
Tags: 1:2.2.83-0ubuntu1
* Merge with Debian git remaining changes:
 - Add build-deps on librcps-dev, opengtl-dev, libqtgtl-dev, freetds-dev,
   create-resources, libspnav-dev
 - Remove needless build-dep on libwv2-dev
 - koffice-libs recommends create-resources
 - krita recommends pstoedit
 - Keep our patches
* New upstream release 2.3 beta 3
  - Remove debian/patches fixed by upstream
  - Update install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include "kis_projection_backend.h"
20
20
 
21
 
#include <QRect>
22
 
#include <QRectF>
23
 
#include <QPainter>
24
 
#include "kis_debug.h"
25
 
 
26
 
#include <math.h>
27
 
#include <qimageblitz.h>
28
 
 
29
21
KisProjectionBackend::~KisProjectionBackend()
30
22
{
31
23
}
35
27
    Q_UNUSED(rect);
36
28
    Q_UNUSED(scale);
37
29
}
38
 
 
39
 
void KisImagePatch::drawMe(QPainter &gc,
40
 
                           const QRectF &dstRect,
41
 
                           QPainter::RenderHints renderHints)
42
 
{
43
 
    gc.save();
44
 
    gc.setCompositionMode(QPainter::CompositionMode_Source);
45
 
    gc.setRenderHints(renderHints, true);
46
 
    gc.drawImage(dstRect, m_image, m_interestRect);
47
 
    gc.restore();
48
 
 
49
 
    /**
50
 
     * Just for debugging purposes
51
 
     */
52
 
    qreal scaleX = dstRect.width() / m_interestRect.width();
53
 
    qreal scaleY = dstRect.height() / m_interestRect.height();
54
 
    dbgRender << "## PATCH.DRAWME #####################";
55
 
    dbgRender << ppVar(scaleX) << ppVar(scaleY);
56
 
    dbgRender << ppVar(m_patchRect);
57
 
    dbgRender << ppVar(m_interestRect);
58
 
    dbgRender << ppVar(dstRect);
59
 
    dbgRender << "## EODM #############################";
60
 
}
61
 
 
62
 
#define ceiledSize(sz) QSize(ceil((sz).width()), ceil((sz).height()))
63
 
 
64
 
void KisImagePatch::prescaleWithBlitz(QRectF dstRect)
65
 
{
66
 
    qreal scaleX = dstRect.width() / m_interestRect.width();
67
 
    qreal scaleY = dstRect.height() / m_interestRect.height();
68
 
 
69
 
    QSize newImageSize = QSize(ceil(m_image.width() * scaleX),
70
 
                               ceil(m_image.height() * scaleY));
71
 
 
72
 
    // Calculating new _aligned_ scale
73
 
    scaleX = qreal(newImageSize.width()) / m_image.width();
74
 
    scaleY = qreal(newImageSize.height()) / m_image.height();
75
 
 
76
 
    m_scaleX *= scaleX;
77
 
    m_scaleY *= scaleY;
78
 
    scaleRect(m_interestRect, scaleX, scaleY);
79
 
 
80
 
    m_image = Blitz::smoothScale(m_image,
81
 
                                 newImageSize,
82
 
                                 Qt::IgnoreAspectRatio);
83
 
 
84
 
    dbgRender << "## PATCH.PRESCALEBLITZ ############";
85
 
    dbgRender << ppVar(scaleX) << ppVar(scaleY);
86
 
    dbgRender << ppVar(newImageSize);
87
 
    dbgRender << "## EOB ############################";
88
 
}