summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3drenderer
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire.ecortex.kdab.com>2014-10-27 12:24:37 +0100
committerPaul Lemire <paul.lemire@kdab.com>2014-10-30 07:15:13 +0100
commit2144f9c8204b27adfd298fd984ad314fbf28c0de (patch)
tree2d837856939f1aaa6b156ea07df5ad5723984924 /src/quick3d/quick3drenderer
parentc2ba286730162091865ea32af648579c7d662d01 (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.cpp74
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dtexture.h87
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;