summaryrefslogtreecommitdiffstats
path: root/src/render/texture/qtexture_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/texture/qtexture_p.h')
-rw-r--r--src/render/texture/qtexture_p.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/render/texture/qtexture_p.h b/src/render/texture/qtexture_p.h
index a0ea71a58..4afb14d62 100644
--- a/src/render/texture/qtexture_p.h
+++ b/src/render/texture/qtexture_p.h
@@ -51,8 +51,11 @@
// We mean it.
//
+#include <Qt3DCore/QNodeId>
+#include <Qt3DCore/private/qdownloadhelperservice_p.h>
#include <Qt3DRender/private/qabstracttexture_p.h>
#include <Qt3DRender/qtexturegenerator.h>
+#include <Qt3DRender/qtexture.h>
QT_BEGIN_NAMESPACE
@@ -63,14 +66,30 @@ class QTextureLoaderPrivate : public QAbstractTexturePrivate
public:
QTextureLoaderPrivate();
+ void setScene(Qt3DCore::QScene *scene) override;
+ void updateFunctor();
+
QUrl m_source;
bool m_mirrored;
};
+class Q_AUTOTEST_EXPORT TextureDownloadRequest : public Qt3DCore::QDownloadRequest
+{
+public:
+ TextureDownloadRequest(Qt3DCore::QNodeId texture, const QUrl &url, Qt3DCore::QAspectEngine *engine);
+
+ void onCompleted() Q_DECL_OVERRIDE;
+
+private:
+ Qt3DCore::QNodeId m_texture;
+ Qt3DCore::QAspectEngine *m_engine;
+};
+
class Q_AUTOTEST_EXPORT QTextureFromSourceGenerator : public QTextureGenerator
{
public:
- explicit QTextureFromSourceGenerator(const QUrl &url, bool mirrored);
+ explicit QTextureFromSourceGenerator(Qt3DCore::QNodeId texture, const QUrl &url,
+ bool mirrored, Qt3DCore::QAspectEngine *engine);
QTextureDataPtr operator ()() Q_DECL_OVERRIDE;
bool operator ==(const QTextureGenerator &other) const Q_DECL_OVERRIDE;
inline QAbstractTexture::Status status() const { return m_status; }
@@ -81,9 +100,14 @@ public:
bool isMirrored() const;
private:
+ friend class TextureDownloadRequest;
+
QUrl m_url;
QAbstractTexture::Status m_status;
bool m_mirrored;
+ QByteArray m_sourceData;
+ Qt3DCore::QNodeId m_texture;
+ Qt3DCore::QAspectEngine *m_engine;
};
typedef QSharedPointer<QTextureFromSourceGenerator> QTextureFromSourceGeneratorPtr;
@@ -91,6 +115,8 @@ class Q_AUTOTEST_EXPORT TextureLoadingHelper
{
public:
static QTextureImageDataPtr loadTextureData(const QUrl &source, bool allow3D, bool mirrored);
+ static QTextureImageDataPtr loadTextureData(QIODevice *data, const QString& suffix,
+ bool allow3D, bool mirrored);
};
} // namespace Qt3DRender