[Interest] Qt3D texture from memory (QImage)
Klos, Andreas
andreas.klos at izfp.fraunhofer.de
Tue Oct 18 13:56:58 CEST 2016
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/97e08ce8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: failedTexture.png
Type: image/png
Size: 187077 bytes
Desc: failedTexture.png
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20161018/97e08ce8/attachment.png>
More information about the Interest
mailing list