Ok thanks, i fixed it by my self.

Best Regards
Andreas

Von: Interest 
[mailto:interest-bounces+andreas.klos=izfp.fraunhofer...@qt-project.org] Im 
Auftrag von Klos, Andreas
Gesendet: 18 October 2016 13:57
An: interest@qt-project.org
Betreff: [Interest] Qt3D texture from memory (QImage)

Dear great Qt-Comunity,

I try to use a texture on a plain geometry. For this purpose i followed the 
instructions in this post:
http://interest.qt-project.narkive.com/cKrvD9nr/synchronous-update-of-qt3d-texture-data
and this bug report
https://bugreports.qt.io/browse/QTBUG-54311
and the comments in QabstractTextureImage.cpp file

However, there is only an empty mesh displayed l ike shown in the attached 
screenshot. I also receive a warning message which can be obtained by the cmd.

Here are my code snippets:

#ifndef TEXTUREIMAGE_H
#define TEXTUREIMAGE_H

#include <Qt3DRender>
#include "ImageTextureDataFunctor.h"

class TextureImage :public Qt3DRender::QAbstractTextureImage
{
public:
       TextureImage(Qt3DRender::QTextureImageDataPtr _textureImageDataPtr, 
Qt3DCore::QNode* parent = nullptr);

       Qt3DRender::QTextureImageDataGeneratorPtr dataGenerator()const;

private:
       Qt3DRender::QTextureImageDataPtr textureImageDataPtr;
};

#include "TextureImage.h"

TextureImage::TextureImage(Qt3DRender::QTextureImageDataPtr 
_textureImageDataPtr, Qt3DCore::QNode*  parent)
       :QAbstractTextureImage(parent)
       , textureImageDataPtr(_textureImageDataPtr)
{

}

Qt3DRender::QTextureImageDataGeneratorPtr TextureImage::dataGenerator()const{
       return Qt3DRender::QTextureImageDataGeneratorPtr(new 
ImageTextureDataFunctor(textureImageDataPtr));
}

#ifndef IMAGETEXTUREDATAFUNCTOR_H
#define      IMAGETEXTUREDATAFUNCTOR_H

#include <Qt3DRender>

class ImageTextureDataFunctor :public Qt3DRender::QTextureImageDataGenerator
{
public:
       ImageTextureDataFunctor(Qt3DRender::QTextureImageDataPtr 
_textureImageDataPtr);

       inline Qt3DRender::QTextureImageDataPtr operator ()() Q_DECL_FINAL{ 
return textureImageDataPtr; }

             inline bool operator ==(const QTextureImageDataGenerator &other) 
const Q_DECL_FINAL
       {
             const ImageTextureDataFunctor *otherFunctor = 
functor_cast<ImageTextureDataFunctor>(&other);
             return (otherFunctor != Q_NULLPTR && 
otherFunctor->textureImageDataPtr == textureImageDataPtr);
       }

             QT3D_FUNCTOR(ImageTextureDataFunctor)
private:
       Qt3DRender::QTextureImageDataPtr textureImageDataPtr;
};

#endif // !IMAGETEXTUREDATAFUNCTOR_H

#include "ImageTextureDataFunctor.h"

ImageTextureDataFunctor::ImageTextureDataFunctor(Qt3DRender::QTextureImageDataPtr
 _textureImageDataPtr)
       :Qt3DRender::QTextureImageDataGenerator()
       , textureImageDataPtr(_textureImageDataPtr)
{

}

I would be very grateful, if somebody can give me a hint to solve my issue.
Best Regards,
Andreas
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to