summaryrefslogtreecommitdiffstats
path: root/src/render/io/texturedata.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2015-09-18 18:04:22 +0100
committerPaul Lemire <paul.lemire@kdab.com>2015-10-13 12:13:09 +0000
commitb6756277908e1d8e15dd3e35da72c42569494152 (patch)
tree237ea333015f4479f9fbafd4184b89789983a304 /src/render/io/texturedata.cpp
parent9c1281f56317bfb8c050d0c464a5a1da1ca885bd (diff)
Final batch of file moves for now
Change-Id: I0c9e83e3142e6b083feb2cbcabcc4279de64b95b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/io/texturedata.cpp')
-rw-r--r--src/render/io/texturedata.cpp127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/render/io/texturedata.cpp b/src/render/io/texturedata.cpp
deleted file mode 100644
index b54c526f9..000000000
--- a/src/render/io/texturedata.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt3D module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later 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 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "texturedata.h"
-
-#include <QDebug>
-#include <QOpenGLTexture>
-#include <QFileInfo>
-#include <QFile>
-#include <qendian.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace Qt3DRender {
-
-TexImageData::TexImageData()
- : m_width(-1)
- , m_height(-1)
- , m_depth(-1)
- , m_isCompressed(false)
- , m_format(QOpenGLTexture::RGBA8_UNorm)
-{
-}
-
-TexImageData::~TexImageData()
-{
-}
-
-void TexImageData::cleanup()
-{
- m_width = -1;
- m_height = -1;
- m_depth = -1;
- m_isCompressed = false;
- m_data.clear();
-}
-
-void TexImageData::setImage(const QImage &image)
-{
- m_width = image.width();
- m_height = image.height();
- m_depth = 1;
-
- QImage glImage = image.convertToFormat(QImage::Format_RGBA8888);
- Q_ASSERT_X(glImage.bytesPerLine() == (glImage.width() * glImage.depth() + 7) / 8, "TexImageData::setImage", "glImage is not packed"); // QTBUG-48330
- QByteArray imageBytes((const char*) glImage.constBits(), glImage.byteCount());
- setData(imageBytes, QOpenGLTexture::RGBA, QOpenGLTexture::UInt8);
- m_format = QOpenGLTexture::RGBA8_UNorm;
-}
-
-void TexImageData::setData(const QByteArray &data, QOpenGLTexture::PixelFormat fmt, QOpenGLTexture::PixelType ptype)
-{
- m_isCompressed = false;
- m_data = data;
- m_pixelFormat = fmt;
- m_pixelType = ptype;
-}
-
-bool TexImageData::setCompressedFile(const QString &source)
-{
- const bool isPkm = QFileInfo(source).suffix() == QStringLiteral("pkm");
- if (!isPkm)
- return false;
-
- QFile f(source);
- if (!f.open(QIODevice::ReadOnly)) {
- qWarning() << "Failed to open" << source;
- return false;
- }
-
- // ETC1 in PKM, as generated by f.ex. Android's etc1tool
- static const char pkmMagic[] = { 'P', 'K', 'M', ' ', '1', '0' };
- const int pkmHeaderSize = 6 + 2 + 4 * 2;
- QByteArray header = f.read(pkmHeaderSize);
- if (header.size() >= pkmHeaderSize && !qstrncmp(header.constData(), pkmMagic, 6)) {
- m_format = QOpenGLTexture::RGB8_ETC1; // may get changed to RGB8_ETC2 later on
- // get the extended (multiple of 4) width and height
- m_width = qFromBigEndian(*(reinterpret_cast<const quint16 *>(header.constData() + 6 + 2)));
- m_height = qFromBigEndian(*(reinterpret_cast<const quint16 *>(header.constData() + 6 + 2 + 2)));
- m_depth = 1;
- QByteArray data = f.readAll();
- if (data.size() < (m_width / 4) * (m_height / 4) * 8)
- qWarning() << "Unexpected end of ETC1 data in" << source;
- setData(data, QOpenGLTexture::RGBA, QOpenGLTexture::UInt8);
- m_isCompressed = true;
- return true;
- }
-
- return false;
-}
-
-} // namespace Qt3DRender
-
-QT_END_NAMESPACE