From d87edf4e3e850d36c9d091b7bb62d9d0a481ad9f Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 29 Feb 2012 12:28:03 +0200 Subject: Remove internal class QVolatileImage. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This made sense only for Symbian where there was a special CFbsBitmap-based backend present and it was used from the Symbian-specific VG and GL pixmap implementations. The generic version is merely a useless wrapper over QImage and is not in use anywhere in the codebase. Change-Id: I1dabe22dfb8cbbc35dce8e22703a3aff810fb5f9 Reviewed-by: Samuel Rødal Reviewed-by: Gunnar Sletta Reviewed-by: Lars Knoll --- src/gui/image/image.pri | 7 +- src/gui/image/qvolatileimage.cpp | 285 ----------------------------------- src/gui/image/qvolatileimage_p.h | 100 ------------ src/gui/image/qvolatileimagedata.cpp | 114 -------------- src/gui/image/qvolatileimagedata_p.h | 84 ----------- 5 files changed, 1 insertion(+), 589 deletions(-) delete mode 100644 src/gui/image/qvolatileimage.cpp delete mode 100644 src/gui/image/qvolatileimage_p.h delete mode 100644 src/gui/image/qvolatileimagedata.cpp delete mode 100644 src/gui/image/qvolatileimagedata_p.h (limited to 'src/gui') diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri index f83e7e60c9..34a33aa0f0 100644 --- a/src/gui/image/image.pri +++ b/src/gui/image/image.pri @@ -23,8 +23,6 @@ HEADERS += \ image/qpixmapcache_p.h \ image/qplatformpixmap_qpa.h \ image/qimagepixmapcleanuphooks_p.h \ - image/qvolatileimage_p.h \ - image/qvolatileimagedata_p.h SOURCES += \ image/qbitmap.cpp \ @@ -42,13 +40,10 @@ SOURCES += \ image/qpixmap_raster.cpp \ image/qpixmap_blitter.cpp \ image/qnativeimage.cpp \ - image/qimagepixmapcleanuphooks.cpp \ - image/qvolatileimage.cpp + image/qimagepixmapcleanuphooks.cpp win32: SOURCES += image/qpixmap_win.cpp -SOURCES += image/qvolatileimagedata.cpp - # Built-in image format support HEADERS += \ image/qbmphandler_p.h \ diff --git a/src/gui/image/qvolatileimage.cpp b/src/gui/image/qvolatileimage.cpp deleted file mode 100644 index 8122c9cfe8..0000000000 --- a/src/gui/image/qvolatileimage.cpp +++ /dev/null @@ -1,285 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qvolatileimage_p.h" -#include "qvolatileimagedata_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -class QVolatileImagePaintEnginePrivate : public QRasterPaintEnginePrivate -{ -public: - QVolatileImagePaintEnginePrivate() { } - QVolatileImage *img; -}; - -class QVolatileImagePaintEngine : public QRasterPaintEngine -{ - Q_DECLARE_PRIVATE(QVolatileImagePaintEngine) - -public: - QVolatileImagePaintEngine(QPaintDevice *device, QVolatileImage *img); - bool begin(QPaintDevice *device); - bool end(); - void drawPixmap(const QPointF &p, const QPixmap &pm); - void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr); -}; - -QVolatileImage::QVolatileImage() - : d(new QVolatileImageData) -{ -} - -QVolatileImage::QVolatileImage(int w, int h, QImage::Format format) - : d(new QVolatileImageData(w, h, format)) -{ -} - -QVolatileImage::QVolatileImage(const QImage &sourceImage) - : d(new QVolatileImageData(sourceImage)) -{ -} - -QVolatileImage::QVolatileImage(void *nativeImage, void *nativeMask) - : d(new QVolatileImageData(nativeImage, nativeMask)) -{ -} - -// Need non-inline, non-autogenerated copy ctor, dtor, op= to keep the -// fwd declared QSharedData working. - -QVolatileImage::QVolatileImage(const QVolatileImage &other) - : d(other.d) -{ -} - -QVolatileImage::~QVolatileImage() -{ -} - -QVolatileImage &QVolatileImage::operator=(const QVolatileImage &rhs) -{ - d = rhs.d; - return *this; -} - -bool QVolatileImage::isNull() const -{ - return d->image.isNull(); -} - -QImage::Format QVolatileImage::format() const -{ - return d->image.format(); -} - -int QVolatileImage::width() const -{ - return d->image.width(); -} - -int QVolatileImage::height() const -{ - return d->image.height(); -} - -int QVolatileImage::bytesPerLine() const -{ - return d->image.bytesPerLine(); -} - -int QVolatileImage::byteCount() const -{ - return d->image.byteCount(); -} - -int QVolatileImage::depth() const -{ - return d->image.depth(); -} - -bool QVolatileImage::hasAlphaChannel() const -{ - return d->image.hasAlphaChannel(); -} - -void QVolatileImage::beginDataAccess() const -{ - d->beginDataAccess(); -} - -void QVolatileImage::endDataAccess(bool readOnly) const -{ - d->endDataAccess(readOnly); -} - -/*! - Access to pixel data via bits() or constBits() should be guarded by - begin/endDataAccess(). - */ -uchar *QVolatileImage::bits() -{ - return d->image.bits(); -} - -const uchar *QVolatileImage::constBits() const -{ - return d->image.constBits(); -} - -bool QVolatileImage::ensureFormat(QImage::Format format) -{ - return d->ensureFormat(format); -} - -/*! - This will always perform a copy of the pixel data. - */ -QImage QVolatileImage::toImage() const -{ - d->beginDataAccess(); - QImage newImage = d->image.copy(); // no sharing allowed - d->endDataAccess(true); - return newImage; -} - -/*! - Returns a reference to the image that is potentially using some native - buffer internally. Access to the image's pixel data should be guarded by - begin/endDataAccess(). Use it when there is a need for QImage APIs not provided - by this class. The returned QImage must never be shared or assigned to. - */ -QImage &QVolatileImage::imageRef() // non-const, in order to cause a detach -{ - d->ensureImage(); - return d->image; -} - -void *QVolatileImage::duplicateNativeImage() const -{ - return d->duplicateNativeImage(); -} - -void QVolatileImage::fill(uint pixelValue) -{ - beginDataAccess(); - imageRef().fill(pixelValue); - endDataAccess(); - d->ensureImage(); -} - -void QVolatileImage::copyFrom(QVolatileImage *source, const QRect &rect) -{ - if (source->isNull()) { - return; - } - QRect r = rect; - if (rect.isNull()) { - r = QRect(0, 0, source->width(), source->height()); - } - source->beginDataAccess(); - QImage &srcImgRef(source->imageRef()); - int srcbpl = srcImgRef.bytesPerLine(); - int srcbpp = srcImgRef.depth() / 8; - const uchar *sptr = srcImgRef.constBits() + r.y() * srcbpl; - beginDataAccess(); - QImage &dstImgRef(imageRef()); - int dstbpl = dstImgRef.bytesPerLine(); - uchar *dptr = dstImgRef.bits(); - for (int y = 0; y < r.height(); ++y) { - qMemCopy(dptr, sptr + r.x() * srcbpp, r.width() * srcbpp); - sptr += srcbpl; - dptr += dstbpl; - } - endDataAccess(); - source->endDataAccess(true); -} - -/*! - To be called from the PlatformPixmap's paintEngine(). - */ -QPaintEngine *QVolatileImage::paintEngine() -{ - if (!d->pengine) { - d->pengine = new QVolatileImagePaintEngine(&imageRef(), this); - } - return d->pengine; -} - -QVolatileImagePaintEngine::QVolatileImagePaintEngine(QPaintDevice *device, - QVolatileImage *img) - : QRasterPaintEngine(*(new QVolatileImagePaintEnginePrivate), device) -{ - Q_D(QVolatileImagePaintEngine); - d->img = img; -} - -bool QVolatileImagePaintEngine::begin(QPaintDevice *device) -{ - Q_D(QVolatileImagePaintEngine); - d->img->beginDataAccess(); - return QRasterPaintEngine::begin(device); -} - -bool QVolatileImagePaintEngine::end() -{ - Q_D(QVolatileImagePaintEngine); - bool ret = QRasterPaintEngine::end(); - d->img->endDataAccess(); - return ret; -} - -// For non-RasterClass pixmaps drawPixmap() would call toImage() which is slow in -// our case. Therefore drawPixmap() is rerouted to drawImage(). - -void QVolatileImagePaintEngine::drawPixmap(const QPointF &p, const QPixmap &pm) -{ - QRasterPaintEngine::drawPixmap(p, pm); -} - -void QVolatileImagePaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) -{ - QRasterPaintEngine::drawPixmap(r, pm, sr); -} - -QT_END_NAMESPACE diff --git a/src/gui/image/qvolatileimage_p.h b/src/gui/image/qvolatileimage_p.h deleted file mode 100644 index 808def7c32..0000000000 --- a/src/gui/image/qvolatileimage_p.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QVOLATILEIMAGE_P_H -#define QVOLATILEIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include - -QT_BEGIN_NAMESPACE - -class QVolatileImageData; - -class Q_GUI_EXPORT QVolatileImage -{ -public: - QVolatileImage(); - QVolatileImage(int w, int h, QImage::Format format); - explicit QVolatileImage(const QImage &sourceImage); - explicit QVolatileImage(void *nativeImage, void *nativeMask = 0); - QVolatileImage(const QVolatileImage &other); - ~QVolatileImage(); - QVolatileImage &operator=(const QVolatileImage &rhs); - - bool isNull() const; - QImage::Format format() const; - int width() const; - int height() const; - int bytesPerLine() const; - int byteCount() const; - int depth() const; - bool hasAlphaChannel() const; - void beginDataAccess() const; - void endDataAccess(bool readOnly = false) const; - uchar *bits(); - const uchar *constBits() const; - bool ensureFormat(QImage::Format format); - QImage toImage() const; - QImage &imageRef(); - QPaintEngine *paintEngine(); - void fill(uint pixelValue); - void *duplicateNativeImage() const; - void copyFrom(QVolatileImage *source, const QRect &rect); - -private: - QSharedDataPointer d; -}; - -QT_END_NAMESPACE - -#endif // QVOLATILEIMAGE_P_H diff --git a/src/gui/image/qvolatileimagedata.cpp b/src/gui/image/qvolatileimagedata.cpp deleted file mode 100644 index 3fcf24e187..0000000000 --- a/src/gui/image/qvolatileimagedata.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qvolatileimagedata_p.h" -#include - -QT_BEGIN_NAMESPACE - -QVolatileImageData::QVolatileImageData() - : pengine(0) -{ -} - -QVolatileImageData::QVolatileImageData(int w, int h, QImage::Format format) - : pengine(0) -{ - image = QImage(w, h, format); -} - -QVolatileImageData::QVolatileImageData(const QImage &sourceImage) - : pengine(0) -{ - image = sourceImage; -} - -QVolatileImageData::QVolatileImageData(void *, void *) - : pengine(0) -{ - // Not supported. -} - -QVolatileImageData::QVolatileImageData(const QVolatileImageData &other) - : QSharedData() -{ - image = other.image; - // The detach is not mandatory here but we do it nonetheless in order to - // keep the behavior consistent with other platforms. - image.detach(); - pengine = 0; -} - -QVolatileImageData::~QVolatileImageData() -{ - delete pengine; -} - -void QVolatileImageData::beginDataAccess() const -{ - // nothing to do here -} - -void QVolatileImageData::endDataAccess(bool readOnly) const -{ - Q_UNUSED(readOnly); - // nothing to do here -} - -bool QVolatileImageData::ensureFormat(QImage::Format format) -{ - if (image.format() != format) { - image = image.convertToFormat(format); - } - return true; -} - -void *QVolatileImageData::duplicateNativeImage() const -{ - return 0; -} - -void QVolatileImageData::ensureImage() -{ - // nothing to do here -} - -QT_END_NAMESPACE diff --git a/src/gui/image/qvolatileimagedata_p.h b/src/gui/image/qvolatileimagedata_p.h deleted file mode 100644 index 59e1be12e3..0000000000 --- a/src/gui/image/qvolatileimagedata_p.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QVOLATILEIMAGEDATA_P_H -#define QVOLATILEIMAGEDATA_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include - - -QT_BEGIN_NAMESPACE - -class QVolatileImageData : public QSharedData -{ -public: - QVolatileImageData(); - QVolatileImageData(int w, int h, QImage::Format format); - QVolatileImageData(const QImage &sourceImage); - QVolatileImageData(void *nativeImage, void *nativeMask); - QVolatileImageData(const QVolatileImageData &other); - ~QVolatileImageData(); - - void beginDataAccess() const; - void endDataAccess(bool readOnly = false) const; - bool ensureFormat(QImage::Format format); - void *duplicateNativeImage() const; - void ensureImage(); - - QImage image; - QPaintEngine *pengine; -}; - -QT_END_NAMESPACE - -#endif // QVOLATILEIMAGEDATA_P_H -- cgit v1.2.3