1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2015 The Qt Company Ltd. 4 ** Contact: http://www.qt.io/licensing/ 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 The Qt Company. For licensing terms 14 ** and conditions see http://www.qt.io/terms-conditions. For further 15 ** information use the contact form at http://www.qt.io/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 or version 3 as published by the Free 20 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and 21 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the 22 ** following information to ensure the GNU Lesser General Public License 23 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and 24 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 25 ** 26 ** As a special exception, The Qt Company gives you certain additional 27 ** rights. These rights are described in The Qt Company LGPL Exception 28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 29 ** 30 ** GNU General Public License Usage 31 ** Alternatively, this file may be used under the terms of the GNU 32 ** General Public License version 3.0 as published by the Free Software 33 ** Foundation and appearing in the file LICENSE.GPL included in the 34 ** packaging of this file. Please review the following information to 35 ** ensure the GNU General Public License version 3.0 requirements will be 36 ** met: http://www.gnu.org/copyleft/gpl.html. 37 ** 38 ** $QT_END_LICENSE$ 39 ** 40 ****************************************************************************/ 41 42 #include "qcolormap.h" 43 #include "qcolor.h" 44 45 QT_BEGIN_NAMESPACE 46 47 class QColormapPrivate 48 { 49 public: QColormapPrivate()50 inline QColormapPrivate() 51 : ref(1) 52 { } 53 54 QAtomicInt ref; 55 }; 56 static QColormap *qt_mac_global_map = 0; 57 initialize()58void QColormap::initialize() 59 { 60 qt_mac_global_map = new QColormap; 61 } 62 cleanup()63void QColormap::cleanup() 64 { 65 delete qt_mac_global_map; 66 qt_mac_global_map = 0; 67 } 68 instance(int)69QColormap QColormap::instance(int) 70 { 71 return *qt_mac_global_map; 72 } 73 QColormap()74QColormap::QColormap() : d(new QColormapPrivate) 75 {} 76 QColormap(const QColormap & colormap)77QColormap::QColormap(const QColormap &colormap) :d (colormap.d) 78 { d->ref.ref(); } 79 ~QColormap()80QColormap::~QColormap() 81 { 82 if (!d->ref.deref()) 83 delete d; 84 } 85 mode() const86QColormap::Mode QColormap::mode() const 87 { return QColormap::Direct; } 88 depth() const89int QColormap::depth() const 90 { 91 return 32; 92 } 93 size() const94int QColormap::size() const 95 { 96 return -1; 97 } 98 pixel(const QColor & color) const99uint QColormap::pixel(const QColor &color) const 100 { return color.rgba(); } 101 colorAt(uint pixel) const102const QColor QColormap::colorAt(uint pixel) const 103 { return QColor(pixel); } 104 colormap() const105const QVector<QColor> QColormap::colormap() const 106 { return QVector<QColor>(); } 107 operator =(const QColormap & colormap)108QColormap &QColormap::operator=(const QColormap &colormap) 109 { qAtomicAssign(d, colormap.d); return *this; } 110 111 QT_END_NAMESPACE 112