diff options
Diffstat (limited to 'src/render/texture/qtexture_p.h')
-rw-r--r-- | src/render/texture/qtexture_p.h | 28 |
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 |