diff options
Diffstat (limited to 'src/render/renderers/opengl/textures/gltexture.cpp')
-rw-r--r-- | src/render/renderers/opengl/textures/gltexture.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/render/renderers/opengl/textures/gltexture.cpp index 8efc34f23..47a97c688 100644 --- a/src/render/renderers/opengl/textures/gltexture.cpp +++ b/src/render/renderers/opengl/textures/gltexture.cpp @@ -80,6 +80,7 @@ GLTexture::GLTexture(TextureDataManager *texDataMgr, , m_textureImageDataManager(texImgDataMgr) , m_dataFunctor(texGen) , m_sharedTextureId(-1) + , m_pendingDataFunctor(nullptr) , m_externalRendering(false) { // make sure texture generator is executed @@ -199,7 +200,10 @@ GLTexture::TextureUpdateInfo GLTexture::createOrUpdateGLTexture() setDirtyFlag(Properties, true); needUpload = true; } else { - qWarning() << "[Qt3DRender::GLTexture] No QTextureData generated from Texture Generator yet. Texture will be invalid for this frame"; + if (m_pendingDataFunctor != m_dataFunctor.get()) { + qWarning() << "[Qt3DRender::GLTexture] No QTextureData generated from Texture Generator yet. Texture will be invalid for this frame"; + m_pendingDataFunctor = m_dataFunctor.get(); + } textureInfo.properties.status = QAbstractTexture::Loading; return textureInfo; } @@ -292,7 +296,10 @@ RenderBuffer *GLTexture::getOrCreateRenderBuffer() setDirtyFlag(Properties); } else { - qWarning() << "[Qt3DRender::GLTexture] [renderbuffer] No QTextureData generated from Texture Generator yet. Texture will be invalid for this frame"; + if (m_pendingDataFunctor != m_dataFunctor.get()) { + qWarning() << "[Qt3DRender::GLTexture] [renderbuffer] No QTextureData generated from Texture Generator yet. Texture will be invalid for this frame"; + m_pendingDataFunctor = m_dataFunctor.get(); + } return nullptr; } } |