summaryrefslogtreecommitdiffstats
path: root/src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp')
-rw-r--r--src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp140
1 files changed, 0 insertions, 140 deletions
diff --git a/src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp b/src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp
deleted file mode 100644
index e7e3c2dcea..0000000000
--- a/src/declarative/scenegraph/adaptationlayers/default/default_textureatlas.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-
-#include "default_textureatlas.h"
-
-#include "qgltexture2d_p.h"
-
-QT_BEGIN_NAMESPACE
-
-#ifndef GL_UNSIGNED_SHORT_5_6_5
-#define GL_UNSIGNED_SHORT_5_6_5 0x8363
-#endif
-
-DefaultTextureAtlas::DefaultTextureAtlas(const QSize &size, uint flags)
- : TextureAtlasInterface(flags)
- , m_texture(new QGLTexture2D)
- , m_allocator(size)
-{
- QImage image(size, QImage::Format_ARGB32_Premultiplied);
- image.fill(0);
- m_texture->setImage(image);
-
- m_texture->setHorizontalWrap(QSG::ClampToEdge);
- m_texture->setVerticalWrap(QSG::ClampToEdge);
- m_texture->setBindOptions(QGLContext::InternalBindOption);
-}
-
-QGLTexture2DConstPtr DefaultTextureAtlas::texture()
-{
- return m_texture.constCast<const QGLTexture2D>();
-}
-
-QRect DefaultTextureAtlas::allocate(const QImage &image, bool clampToEdge)
-{
- QSize size(image.width() + 2, image.height() + 2);
- QRect allocated = m_allocator.allocate(size);
- if (allocated.isNull())
- return allocated;
-
- QGLTexture2DPrivate *d = QGLTexture2DPrivate::get(m_texture.data());
- QPainter p(&d->image);
- p.setCompositionMode(QPainter::CompositionMode_Source);
-
- int dstLoX = allocated.x();
- int dstLoY = allocated.y();
- int dstHiX = allocated.x() + allocated.width() - 1;
- int dstHiY = allocated.y() + allocated.height() - 1;
- int srcLoX = (clampToEdge ? 0 : image.width() - 1);
- int srcLoY = (clampToEdge ? 0 : image.height() - 1);
- int srcHiX = (clampToEdge ? image.width() - 1 : 0);
- int srcHiY = (clampToEdge ? image.height() - 1 : 0);
-
- p.drawImage(dstLoX + 1, dstLoY + 1, image);
-
- // Fill margins.
- p.drawImage(QPoint(dstLoX, dstLoY), image, QRect(srcLoX, srcLoY, 1, 1));
- p.drawImage(QPoint(dstLoX, dstHiY), image, QRect(srcLoX, srcHiY, 1, 1));
- p.drawImage(QPoint(dstHiX, dstLoY), image, QRect(srcHiX, srcLoY, 1, 1));
- p.drawImage(QPoint(dstHiX, dstHiY), image, QRect(srcHiX, srcHiY, 1, 1));
-
- p.drawImage(QPoint(dstLoX + 1, dstLoY), image, QRect(0, srcLoY, image.width(), 1));
- p.drawImage(QPoint(dstLoX, dstLoY + 1), image, QRect(srcLoX, 0, 1, image.height()));
- p.drawImage(QPoint(dstLoX + 1, dstHiY), image, QRect(0, srcHiY, image.width(), 1));
- p.drawImage(QPoint(dstHiX, dstLoY + 1), image, QRect(srcHiX, 0, 1, image.height()));
- p.end();
-
- if (QGLContext::currentContext() != 0) {
- m_texture->bind();
-#ifdef QT_OPENGL_ES_2
- const QImage atlasImage = d->image.copy(allocated);
- if (atlasImage.format() == QImage::Format_RGB16)
- glTexSubImage2D(GL_TEXTURE_2D, 0, allocated.x(), allocated.y(), allocated.width(), allocated.height(), GL_RGB, GL_UNSIGNED_SHORT_5_6_5, atlasImage.constBits());
- else
- glTexSubImage2D(GL_TEXTURE_2D, 0, allocated.x(), allocated.y(), allocated.width(), allocated.height(), GL_BGRA, GL_UNSIGNED_BYTE, atlasImage.constBits());
-#else
- const QImage &atlasImage = d->image;
- if (atlasImage.format() == QImage::Format_RGB16) {
- glPixelStorei(GL_UNPACK_ROW_LENGTH, atlasImage.bytesPerLine() >> 1);
- const ushort *p = (const ushort *)atlasImage.scanLine(dstLoY) + dstLoX;
- glTexSubImage2D(GL_TEXTURE_2D, 0, allocated.x(), allocated.y(), allocated.width(), allocated.height(), GL_RGB, GL_UNSIGNED_SHORT_5_6_5, p);
- } else {
- glPixelStorei(GL_UNPACK_ROW_LENGTH, atlasImage.bytesPerLine() >> 2);
- const QRgb *p = (const QRgb *)atlasImage.scanLine(dstLoY) + dstLoX;
- glTexSubImage2D(GL_TEXTURE_2D, 0, allocated.x(), allocated.y(), allocated.width(), allocated.height(), GL_BGRA, GL_UNSIGNED_BYTE, p);
- }
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
-#endif
- } else {
- m_texture->setImage(d->image); // Make sure texture is updated.
- }
- return allocated.adjusted(1, 1, -1, -1);
-}
-
-void DefaultTextureAtlas::deallocate(const QRect &rect)
-{
- m_allocator.deallocate(rect.adjusted(-1, -1, 1, 1));
-}
-
-QT_END_NAMESPACE