aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2012-02-14 09:41:26 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-15 06:27:46 +0100
commit732a86a11dbc20079e33c289af72762ce0125ced (patch)
tree2269c4dc9cf0e53d1ad2928d69b32696b23b50ab /src
parent16da679efc71293e097de7219fd855885c58dcb7 (diff)
Remove etcprovider plugin.
Handling image providers via QDeclarativeExtensionPlugin is not a pattern we want to promote for library code. The plugin was also missing documentation and autotests. It might be appropriate to be re-added later as an example showing the use of an image provider with a texture factory. Change-Id: I2d8f3208aebd55180bd627b3f9acc0679eb6328c Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/imports/etcprovider/etcprovider.pro19
-rw-r--r--src/imports/etcprovider/plugin.cpp72
-rw-r--r--src/imports/etcprovider/plugin.h67
-rw-r--r--src/imports/etcprovider/qetcprovider.cpp213
-rw-r--r--src/imports/etcprovider/qetcprovider.h99
-rw-r--r--src/imports/etcprovider/qmldir1
-rw-r--r--src/imports/imports.pro2
7 files changed, 1 insertions, 472 deletions
diff --git a/src/imports/etcprovider/etcprovider.pro b/src/imports/etcprovider/etcprovider.pro
deleted file mode 100644
index 3ec3ab5d09..0000000000
--- a/src/imports/etcprovider/etcprovider.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-TARGET = qmletcproviderplugin
-TARGETPATH = Qt/labs/etcprovider
-include(../qimportbase.pri)
-!contains(QT_CONFIG, egl):DEFINES += QT_NO_EGL
-
-QT += declarative quick opengl
-
-SOURCES += qetcprovider.cpp plugin.cpp
-HEADERS += qetcprovider.h plugin.h
-
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/imports/$$TARGETPATH
-target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-qmldir.files += $$PWD/qmldir
-qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-INSTALLS += target qmldir
-
-OTHER_FILES +=
diff --git a/src/imports/etcprovider/plugin.cpp b/src/imports/etcprovider/plugin.cpp
deleted file mode 100644
index 29de421ca5..0000000000
--- a/src/imports/etcprovider/plugin.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the demonstration applications 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 "plugin.h"
-#include "qetcprovider.h"
-
-#include <QDeclarativeEngine>
-#include <qdebug.h>
-
-QT_BEGIN_NAMESPACE
-
-class QEtcDummyObject : public QObject
-{
-public:
- QEtcDummyObject() {}
-};
-
-void EtcProviderPlugin::registerTypes(const char *uri)
-{
- //### this is required or "import Qt.labs.etcprovider 1.0" will give errors
- //### this plugin should eventually be replaced by a non-import type plugin
- // (once it is available)
- qmlRegisterType<QEtcDummyObject>(uri,1,0,"EtcObject");
-}
-
-void EtcProviderPlugin::initializeEngine(QDeclarativeEngine *engine, const char *uri)
-{
- qDebug () << uri;
- engine->addImageProvider(QLatin1String("etc"), new QEtcProvider());
-}
-
-QT_END_NAMESPACE
-
-Q_EXPORT_PLUGIN2(qmletcproviderplugin, QT_PREPEND_NAMESPACE(EtcProviderPlugin))
diff --git a/src/imports/etcprovider/plugin.h b/src/imports/etcprovider/plugin.h
deleted file mode 100644
index c7b388d6b2..0000000000
--- a/src/imports/etcprovider/plugin.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the demonstration applications 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 ETCPROVIDERPLUGIN_H
-#define ETCPROVIDERPLUGIN_H
-
-#include <QtDeclarative/qdeclarative.h>
-#include <QtDeclarative/QDeclarativeExtensionPlugin>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-
-class EtcProviderPlugin : public QDeclarativeExtensionPlugin
-{
- Q_OBJECT
-
-public:
- void registerTypes(const char *uri);
- void initializeEngine(QDeclarativeEngine *engine, const char *uri);
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // ETCPROVIDERPLUGIN_H
-
diff --git a/src/imports/etcprovider/qetcprovider.cpp b/src/imports/etcprovider/qetcprovider.cpp
deleted file mode 100644
index 15ece33312..0000000000
--- a/src/imports/etcprovider/qetcprovider.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the Declarative 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 "qetcprovider.h"
-
-#include <QtDebug>
-#include <QFile>
-
-#include <qopenglfunctions.h>
-#include <qopenglcontext.h>
-
-QT_BEGIN_NAMESPACE
-
-typedef struct {
- char aName[6];
- unsigned short iBlank;
- /* NB: Beware endianess issues here. */
- unsigned char iPaddedWidthMSB;
- unsigned char iPaddedWidthLSB;
- unsigned char iPaddedHeightMSB;
- unsigned char iPaddedHeightLSB;
- unsigned char iWidthMSB;
- unsigned char iWidthLSB;
- unsigned char iHeightMSB;
- unsigned char iHeightLSB;
-} ETCHeader;
-
-
-unsigned short getWidth(ETCHeader *pHeader)
-{
- return (pHeader->iWidthMSB << 8) | pHeader->iWidthLSB;
-}
-
-unsigned short getHeight(ETCHeader *pHeader)
-{
- return (pHeader->iHeightMSB << 8) | pHeader->iHeightLSB;
-}
-
-unsigned short getPaddedWidth(ETCHeader *pHeader)
-{
- return (pHeader->iPaddedWidthMSB << 8) | pHeader->iPaddedWidthLSB;
-}
-
-unsigned short getPaddedHeight(ETCHeader *pHeader)
-{
- return (pHeader->iPaddedHeightMSB << 8) | pHeader->iPaddedHeightLSB;
-}
-
-enum {GL_ETC1_RGB8_OES=0x8d64};
-
-EtcTexture::EtcTexture()
- : m_texture_id(0)
-{
-
-}
-
-EtcTexture::~EtcTexture()
-{
- if (m_texture_id)
- glDeleteTextures(1, &m_texture_id);
-}
-
-
-void EtcTexture::bind()
-{
- if (m_texture_id) {
- glBindTexture(GL_TEXTURE_2D, m_texture_id);
- return;
- }
-
-#ifdef ETC_DEBUG
- printf("EtcTextureProvider: about to update that texture...\n");
-#endif
-
- glGenTextures(1, &m_texture_id);
-
- glBindTexture(GL_TEXTURE_2D, m_texture_id);
-
-#ifdef ETC_DEBUG
- qDebug() << "glCompressedTexImage2D, width: " << m_size.width() << "height" << m_size.height() <<
- "paddedWidth: " << m_paddedSize.width() << "paddedHeight: " << m_paddedSize.height();
-#endif
-
- QOpenGLContext *ctx = QOpenGLContext::currentContext();
- Q_ASSERT(ctx != 0);
- ctx->functions()->glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_ETC1_RGB8_OES,
- m_size.width(), m_size.height(), 0,
- (m_paddedSize.width() * m_paddedSize.height()) >> 1,
- m_data.data() + 16);
-
- // Gracefully fail in case of an error...
- GLuint error = glGetError();
- if (error != GL_NO_ERROR) {
- qDebug () << "glCompressedTexImage2D for compressed texture failed, error: " << error;
- glBindTexture(GL_TEXTURE_2D, 0);
- glDeleteTextures(1, &m_texture_id);
- m_texture_id = 0;
- return;
- }
- updateBindOptions(true);
-}
-
-QSize EtcTexture::textureSize() const
-{
- return m_size;
-}
-
-
-class QEtcTextureFactory : public QDeclarativeTextureFactory
-{
-public:
- QByteArray m_data;
- QSize m_size;
- QSize m_paddedSize;
-
- QSize textureSize() const {
- return m_size;
- }
-
- int textureByteCount() const {
- return m_data.size();
- }
-
- QSGTexture *createTexture(QQuickCanvas *) const {
- EtcTexture *texture = new EtcTexture;
- texture->m_data = m_data;
- texture->m_size = m_size;
- texture->m_paddedSize = m_paddedSize;
- return texture;
- }
-
-};
-
-
-QDeclarativeTextureFactory *QEtcProvider::requestTexture(const QString &id, QSize *size, const QSize &requestedSize)
-{
- Q_UNUSED(requestedSize);
- QEtcTextureFactory *ret = 0;
-
- size->setHeight(0);
- size->setWidth(0);
-
- QFile file(id);
-#ifdef ETC_DEBUG
- qDebug() << "requestTexture opening file: " << id;
-#endif
- if (file.open(QIODevice::ReadOnly)) {
- ret = new QEtcTextureFactory;
- ret->m_data = file.readAll();
- if (!ret->m_data.isEmpty()) {
- ETCHeader *pETCHeader = NULL;
- pETCHeader = (ETCHeader *)ret->m_data.data();
- size->setHeight(getHeight(pETCHeader));
- size->setWidth(getWidth(pETCHeader));
- ret->m_size = *size;
- ret->m_paddedSize.setHeight(getPaddedHeight(pETCHeader));
- ret->m_paddedSize.setWidth(getPaddedWidth(pETCHeader));
- }
- else {
- delete ret;
- ret = 0;
- }
- }
-
-#ifdef ETC_DEBUG
- if (ret)
- qDebug() << "requestTexture returning: " << ret->m_data.length() << ", bytes; width: " << size->width() << ", height: " << size->height();
- else
- qDebug () << "File not found.";
-#endif
-
- return ret;
-}
-
-QT_END_NAMESPACE
diff --git a/src/imports/etcprovider/qetcprovider.h b/src/imports/etcprovider/qetcprovider.h
deleted file mode 100644
index 32e0d4097b..0000000000
--- a/src/imports/etcprovider/qetcprovider.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the Declarative 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 QETCPROVIDER_H
-#define QETCPROVIDER_H
-
-#include <qopengl.h>
-#include <QDeclarativeImageProvider>
-#include <QtQuick/QSGTexture>
-#include <QDeclarativeEngine>
-#include <QDeclarativeContext>
-#include <QFileInfo>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-
-// #define ETC_DEBUG
-
-class EtcTexture : public QSGTexture
-{
- Q_OBJECT
-public:
- EtcTexture();
- ~EtcTexture();
-
- void bind();
- QSize textureSize() const;
-
- int textureId() const { return m_texture_id; }
-
- void setImage(const QImage &image) { Q_UNUSED(image); }
-
- bool hasAlphaChannel() const { return false; }
- bool hasMipmaps() const { return false; }
-
- QByteArray m_data;
- QSize m_size;
- QSize m_paddedSize;
- GLuint m_texture_id;
-};
-
-class QEtcProvider : public QDeclarativeImageProvider
-{
-public:
- QEtcProvider()
- : QDeclarativeImageProvider(QDeclarativeImageProvider::Texture)
- {
-#ifdef ETC_DEBUG
- qDebug () << "Creating QEtcProvider.";
-#endif
- }
- QDeclarativeTextureFactory *requestTexture(const QString &id, QSize *size, const QSize &requestedSize);
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QETCPROVIDER_H
diff --git a/src/imports/etcprovider/qmldir b/src/imports/etcprovider/qmldir
deleted file mode 100644
index f731f581a3..0000000000
--- a/src/imports/etcprovider/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-plugin qmletcproviderplugin
diff --git a/src/imports/imports.pro b/src/imports/imports.pro
index 241ea18081..b62275b009 100644
--- a/src/imports/imports.pro
+++ b/src/imports/imports.pro
@@ -1,5 +1,5 @@
TEMPLATE = subdirs
-SUBDIRS += qtquick2 folderlistmodel etcprovider localstorage
+SUBDIRS += qtquick2 folderlistmodel localstorage
contains(QT_CONFIG, qmltest): SUBDIRS += testlib
contains(QT_CONFIG, xmlpatterns) : SUBDIRS += xmllistmodel