diff options
Diffstat (limited to 'src/render/backend/rendertextureimage_p.h')
-rw-r--r-- | src/render/backend/rendertextureimage_p.h | 48 |
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 |