1
/****************************************************************************
3
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/
6
** This file is part of the QtQml module of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** GNU Lesser General Public License Usage
10
** This file may be used under the terms of the GNU Lesser General Public
11
** License version 2.1 as published by the Free Software Foundation and
12
** appearing in the file LICENSE.LGPL included in the packaging of this
13
** file. Please review the following information to ensure the GNU Lesser
14
** General Public License version 2.1 requirements will be met:
15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17
** In addition, as a special exception, Nokia gives you certain additional
18
** rights. These rights are described in the Nokia Qt LGPL Exception
19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21
** GNU General Public License Usage
22
** Alternatively, this file may be used under the terms of the GNU General
23
** Public License version 3.0 as published by the Free Software Foundation
24
** and appearing in the file LICENSE.GPL included in the packaging of this
25
** file. Please review the following information to ensure the GNU General
26
** Public License version 3.0 requirements will be met:
27
** http://www.gnu.org/copyleft/gpl.html.
30
** Alternatively, this file may be used in accordance with the terms and
31
** conditions contained in a signed written agreement between you and Nokia.
40
****************************************************************************/
42
#ifndef QQUICKPAINTEDITEM_P_H
43
#define QQUICKPAINTEDITEM_P_H
45
#include <QtQuick/qquickitem.h>
46
#include <QtGui/qcolor.h>
52
class QQuickPaintedItemPrivate;
53
class Q_QUICK_EXPORT QQuickPaintedItem : public QQuickItem
58
Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize NOTIFY contentsSizeChanged)
59
Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged)
60
Q_PROPERTY(qreal contentsScale READ contentsScale WRITE setContentsScale NOTIFY contentsScaleChanged)
61
Q_PROPERTY(RenderTarget renderTarget READ renderTarget WRITE setRenderTarget NOTIFY renderTargetChanged)
63
QQuickPaintedItem(QQuickItem *parent = 0);
64
virtual ~QQuickPaintedItem();
69
InvertedYFramebufferObject
72
enum PerformanceHint {
75
Q_DECLARE_FLAGS(PerformanceHints, PerformanceHint)
77
void update(const QRect &rect = QRect());
79
bool opaquePainting() const;
80
void setOpaquePainting(bool opaque);
82
bool antialiasing() const;
83
void setAntialiasing(bool enable);
86
void setMipmap(bool enable);
88
PerformanceHints performanceHints() const;
89
void setPerformanceHint(PerformanceHint hint, bool enabled = true);
90
void setPerformanceHints(PerformanceHints hints);
92
QRectF contentsBoundingRect() const;
94
QSize contentsSize() const;
95
void setContentsSize(const QSize &);
96
void resetContentsSize();
98
qreal contentsScale() const;
99
void setContentsScale(qreal);
101
QColor fillColor() const;
102
void setFillColor(const QColor&);
104
RenderTarget renderTarget() const;
105
void setRenderTarget(RenderTarget target);
107
virtual void paint(QPainter *painter) = 0;
110
void fillColorChanged();
111
void contentsSizeChanged();
112
void contentsScaleChanged();
113
void renderTargetChanged();
116
QQuickPaintedItem(QQuickPaintedItemPrivate &dd, QQuickItem *parent = 0);
117
virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *);
120
Q_DISABLE_COPY(QQuickPaintedItem)
121
Q_DECLARE_PRIVATE(QQuickPaintedItem)
124
Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickPaintedItem::PerformanceHints)
130
#endif // QQUICKPAINTEDITEM_P_H