summaryrefslogtreecommitdiffstats
path: root/src/render/backend/rendertextureimage_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend/rendertextureimage_p.h')
-rw-r--r--src/render/backend/rendertextureimage_p.h48
1 files changed, 46 insertions, 2 deletions
diff --git a/src/render/backend/rendertextureimage_p.h b/src/render/backend/rendertextureimage_p.h
index 9b1a77086..cda5216b7 100644
--- a/src/render/backend/rendertextureimage_p.h
+++ b/src/render/backend/rendertextureimage_p.h
@@ -46,6 +46,7 @@
#include <Qt3DCore/qbackendnode.h>
#include <Qt3DRenderer/qabstracttextureprovider.h>
#include <Qt3DRenderer/qabstracttextureimage.h>
+#include <Qt3DRenderer/private/handle_types_p.h>
QT_BEGIN_NAMESPACE
@@ -53,6 +54,10 @@ namespace Qt3D {
namespace Render {
+class TextureManager;
+class TextureImageManager;
+class TextureDataManager;
+
class RenderTextureImage : public QBackendNode
{
public:
@@ -64,15 +69,54 @@ public:
int m_layer;
int m_mipmapLevel;
QAbstractTextureProvider::CubeMapFace m_face;
- bool m_isDirty;
+ bool m_dirty;
+
+ inline int layer() const { return m_layer; }
+ inline int mipmapLevel() const { return m_mipmapLevel; }
+ inline QAbstractTextureProvider::CubeMapFace face() const { return m_face; }
- inline bool isDirty() const { return m_isDirty; }
+ void setTextureManager(TextureManager *manager);
+ void setTextureImageManager(TextureImageManager *manager);
+ void setTextureDataManager(TextureDataManager *manager);
+ void unsetDirty();
+
+ inline bool isDirty() const { return m_dirty; }
inline QTextureDataFunctorPtr textureDataFunctor() const { return m_functor; }
+ void setTextureDataHandle(HTextureData handle);
+
+ inline HTextureData textureDataHandle() const { return m_textureDataHandle; }
+ inline QTextureDataFunctorPtr dataFunctor() const { return m_functor; }
+
private:
QTextureDataFunctorPtr m_functor;
+ HTextureData m_textureDataHandle;
+ TextureManager *m_textureManager;
+ TextureImageManager *m_textureImageManager;
+ TextureDataManager *m_textureDataManager;
+ QList<QNodeId> m_referencedTextures;
+ HTexture m_textureProvider;
+ QNodeId m_textureProviderId;
};
+class RenderTextureImageFunctor : public QBackendNodeFunctor
+{
+public:
+ explicit RenderTextureImageFunctor(TextureManager *textureManager,
+ TextureImageManager *textureImageManager,
+ TextureDataManager *textureDataManager);
+
+ QBackendNode *create(QNode *frontend, const QBackendNodeFactory *factory) const Q_DECL_FINAL;
+ QBackendNode *get(QNode *frontend) const Q_DECL_FINAL;
+ void destroy(QNode *frontend) const Q_DECL_FINAL;
+
+private:
+ TextureManager *m_textureManager;
+ TextureImageManager *m_textureImageManager;
+ TextureDataManager *m_textureDataManager;
+};
+
+
} // Render
} // Qt3D