[Interest] Qt3D texture from memory (QImage)
Klos, Andreas
andreas.klos at izfp.fraunhofer.de
Tue Oct 18 15:55:03 CEST 2016
Ok thanks, i fixed it by my self.
Best Regards
Andreas
Von: Interest [mailto:interest-bounces+andreas.klos=izfp.fraunhofer.de at qt-project.org] Im Auftrag von Klos, Andreas
Gesendet: 18 October 2016 13:57
An: interest at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20161018/0ca7e9a7/attachment.html>
More information about the Interest
mailing list