diff options
author | Paul Lemire <paul.lemire.ecortex.kdab.com> | 2014-10-27 12:24:37 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2014-10-30 07:15:13 +0100 |
commit | 2144f9c8204b27adfd298fd984ad314fbf28c0de (patch) | |
tree | 2d837856939f1aaa6b156ea07df5ad5723984924 /src/quick3d/quick3drenderer | |
parent | c2ba286730162091865ea32af648579c7d662d01 (diff) |
QTexture refactoring
Target is now set in the ctor from C++. On the QML side, there's a QTexture
subclass for each target.
WrapMode on s, t, r for texture, accessible as a grouped property in QML.
Note: I left out the static fromImage as I didn't really understand their
purpose. Please let me know what I'm missing.
Change-Id: I16f75283ae459cbd8ab2d1ec53584b3022bc965b
Task-number: QTBUG-41537
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/quick3drenderer')
-rw-r--r-- | src/quick3d/quick3drenderer/items/quick3dtexture.cpp | 74 | ||||
-rw-r--r-- | src/quick3d/quick3drenderer/items/quick3dtexture.h | 87 |
2 files changed, 137 insertions, 24 deletions
diff --git a/src/quick3d/quick3drenderer/items/quick3dtexture.cpp b/src/quick3d/quick3drenderer/items/quick3dtexture.cpp index 2cbd338a9..c609fb884 100644 --- a/src/quick3d/quick3drenderer/items/quick3dtexture.cpp +++ b/src/quick3d/quick3drenderer/items/quick3dtexture.cpp @@ -50,20 +50,73 @@ namespace Render { namespace Quick { +Quick3DTexture1D::Quick3DTexture1D(QNode *parent) + : QTexture(Target1D, parent) +{ +} + +Quick3DTexture1DArray::Quick3DTexture1DArray(QNode *parent) + : QTexture(Target1DArray, parent) +{ +} + +Quick3DTexture2D::Quick3DTexture2D(QNode *parent) + : QTexture(Target2D, parent) +{ +} + +Quick3DTexture2DArray::Quick3DTexture2DArray(QNode *parent) + : QTexture(Target2DArray, parent) +{ +} + +Quick3DTexture3D::Quick3DTexture3D(QNode *parent) + : QTexture(Target3D, parent) +{ +} + +Quick3DTextureCubeMap::Quick3DTextureCubeMap(QNode *parent) + : QTexture(TargetCubeMap, parent) +{ +} + +Quick3DTextureCubeMapArray::Quick3DTextureCubeMapArray(QNode *parent) + : QTexture(TargetCubeMapArray, parent) +{ +} + +Quick3DTexture2DMultisample::Quick3DTexture2DMultisample(QNode *parent) + : QTexture(Target2DMultisample, parent) +{ +} + +Quick3DTexture2DMultisampleArray::Quick3DTexture2DMultisampleArray(QNode *parent) + : QTexture(Target2DMultisampleArray, parent) +{ +} + +Quick3DTextureRectangle::Quick3DTextureRectangle(QNode *parent) + : QTexture(TargetRectangle, parent) +{ +} + +Quick3DTextureBuffer::Quick3DTextureBuffer(QNode *parent) + : QTexture(TargetBuffer, parent) +{ +} + // TO DO: This needs to be reworked to handle more than just 2D images -Quick3DTexture::Quick3DTexture(QObject *parent) +Quick3DTexture2DExtension::Quick3DTexture2DExtension(QObject *parent) : QObject(parent) { - parentTexture()->setTarget(QTexture::Target2D); - parentTexture()->setFormat(QTexture::RGBA8_UNorm); } -QUrl Quick3DTexture::source() const +QUrl Quick3DTexture2DExtension::source() const { return m_source; } -void Quick3DTexture::setSource(QUrl arg) +void Quick3DTexture2DExtension::setSource(QUrl arg) { if (m_source != arg) { m_source = arg; @@ -88,17 +141,6 @@ void Quick3DTexture::setSource(QUrl arg) } } -void Quick3DTexture::setRectangle(bool r) -{ - parentTexture()->setTarget(r ? QTexture::TargetRectangle : - QTexture::Target2D); -} - -bool Quick3DTexture::isRectangle() const -{ - return (parentTexture()->target() == QTexture::TargetRectangle); -} - } // Quick } // Render diff --git a/src/quick3d/quick3drenderer/items/quick3dtexture.h b/src/quick3d/quick3drenderer/items/quick3dtexture.h index 1ab75f994..554cb44f5 100644 --- a/src/quick3d/quick3drenderer/items/quick3dtexture.h +++ b/src/quick3d/quick3drenderer/items/quick3dtexture.h @@ -56,24 +56,95 @@ namespace Render { namespace Quick { -class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture : - public QObject +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture1D : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture1D(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture1DArray : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture1DArray(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture2D : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture2D(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture2DArray : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture2DArray(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture3D : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture3D(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTextureCubeMap : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTextureCubeMap(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTextureCubeMapArray : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTextureCubeMapArray(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture2DMultisample : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture2DMultisample(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture2DMultisampleArray : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTexture2DMultisampleArray(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTextureRectangle : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTextureRectangle(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTextureBuffer : public QTexture +{ + Q_OBJECT +public: + explicit Quick3DTextureBuffer(QNode *parent = 0); +}; + +class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTexture2DExtension : public QObject { Q_OBJECT Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(bool rectangle READ isRectangle WRITE setRectangle NOTIFY isRectangleChanged) public: - explicit Quick3DTexture(QObject *parent = 0); + explicit Quick3DTexture2DExtension(QObject *parent = 0); QUrl source() const; void setSource(QUrl arg); - void setRectangle(bool r); - bool isRectangle() const; - Q_SIGNALS: void sourceChanged(); - void isRectangleChanged(); private: QUrl m_source; |