Qt 4.8
qt-4.8.6
src
gui
image
qpixmapcache_p.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
5
**
6
** This file is part of the QtGui module of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
**
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
**
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
#ifndef QPIXMAPCACHE_P_H
43
#define QPIXMAPCACHE_P_H
44
45
//
46
// W A R N I N G
47
// -------------
48
//
49
// This file is not part of the Qt API. This header
50
// file may change from version to version without notice, or even be removed.
51
//
52
// We mean it.
53
//
54
55
#include "
qpixmapcache.h
"
56
#include "
qpaintengine.h
"
57
#include <private/qimage_p.h>
58
#include <private/qpixmap_raster_p.h>
59
#include "
qcache.h
"
60
61
QT_BEGIN_NAMESPACE
62
63
uint
qHash
(
const
QPixmapCache::Key
&k);
64
65
class
QPixmapCache::KeyData
66
{
67
public
:
68
KeyData
() :
isValid
(true),
key
(0),
ref
(1) {}
69
KeyData
(
const
KeyData
&other)
70
:
isValid
(other.
isValid
),
key
(other.
key
),
ref
(1) {}
71
~KeyData
() {}
72
73
bool
isValid
;
74
int
key
;
75
int
ref
;
76
};
77
78
// XXX: hw: is this a general concept we need to abstract?
79
class
QPixmapCacheEntry
:
public
QPixmap
80
{
81
public
:
82
QPixmapCacheEntry
(
const
QPixmapCache::Key
&
key
,
const
QPixmap
&pix) :
QPixmap
(pix), key(key)
83
{
84
QPixmapData
*pd = pixmapData();
85
if
(pd && pd->
classId
() ==
QPixmapData::RasterClass
) {
86
QRasterPixmapData
*
d
=
static_cast<
QRasterPixmapData
*
>
(pd);
87
if
(!d->
image
.
isNull
() && d->
image
.
d
->
paintEngine
88
&& !d->
image
.
d
->
paintEngine
->
isActive
())
89
{
90
delete
d->
image
.
d
->
paintEngine
;
91
d->
image
.
d
->
paintEngine
= 0;
92
}
93
}
94
}
95
~
QPixmapCacheEntry
();
96
QPixmapCache::Key
key
;
97
};
98
99
inline
bool
qIsDetached
(
QPixmapCacheEntry
&t) {
return
t.
isDetached
(); }
100
101
QT_END_NAMESPACE
102
103
#endif // QPIXMAPCACHE_P_H
d
double d
Definition:
qnumeric_p.h:62
QPixmapCache::KeyData::~KeyData
~KeyData()
Definition:
qpixmapcache_p.h:71
QT_END_NAMESPACE
#define QT_END_NAMESPACE
This macro expands to.
Definition:
qglobal.h:90
QImage::isNull
bool isNull() const
Returns true if it is a null image, otherwise returns false.
Definition:
qimage.cpp:1542
QPixmapCacheEntry::QPixmapCacheEntry
QPixmapCacheEntry(const QPixmapCache::Key &key, const QPixmap &pix)
Definition:
qpixmapcache_p.h:82
QPixmapCache::KeyData::isValid
bool isValid
Definition:
qpixmapcache_p.h:73
QRasterPixmapData::image
QImage image
Definition:
qpixmap_raster_p.h:94
QImage::d
QImageData * d
Definition:
qimage.h:336
QPixmapData
Definition:
qpixmapdata_p.h:67
QPixmapCache::KeyData::key
int key
Definition:
qpixmapcache_p.h:74
QPixmapCache::KeyData::KeyData
KeyData(const KeyData &other)
Definition:
qpixmapcache_p.h:69
QPixmapCacheEntry::key
QPixmapCache::Key key
Definition:
qpixmapcache_p.h:96
QPixmapCacheEntry
Definition:
qpixmapcache_p.h:79
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition:
qglobal.h:89
QPaintEngine::isActive
bool isActive() const
Returns true if the paint engine is actively drawing; otherwise returns false.
Definition:
qpaintengine.h:154
QPixmap::isDetached
bool isDetached() const
Definition:
qpixmap.cpp:1495
qpixmapcache.h
QImageData::paintEngine
QPaintEngine * paintEngine
Definition:
qimage_p.h:110
uint
unsigned int uint
Definition:
qglobal.h:996
QPixmapData::classId
ClassId classId() const
Definition:
qpixmapdata_p.h:122
qpaintengine.h
QRasterPixmapData
Definition:
qpixmap_raster_p.h:65
qcache.h
QUrl::qHash
uint qHash(const QUrl &url)
Definition:
qurl.h:285
QPixmapCache::Key
The QPixmapCache::Key class can be used for efficient access to the QPixmapCache. ...
Definition:
qpixmapcache.h:61
QPixmap
The QPixmap class is an off-screen image representation that can be used as a paint device...
Definition:
qpixmap.h:71
qIsDetached
bool qIsDetached(QPixmapCacheEntry &t)
Definition:
qpixmapcache_p.h:99
QPixmapCache::KeyData::KeyData
KeyData()
Definition:
qpixmapcache_p.h:68
QPixmapCache::KeyData
Definition:
qpixmapcache_p.h:65
QPixmapCache::KeyData::ref
int ref
Definition:
qpixmapcache_p.h:75
QPixmapData::RasterClass
Definition:
qpixmapdata_p.h:83
Qt 4.8 Source Code Browser