diff options
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderImage.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp b/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp index 4fff9ca..5382818 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp +++ b/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp @@ -86,6 +86,8 @@ bool SImage::ClearDirty(IBufferManager &inBufferManager, IOffscreenRenderManager HandleOffscreenResult(*this, newImage, theResult, replaceTexture, wasDirty); inBufferManager.checkAlwaysPremultiplied(QString::fromLatin1(m_ImagePath.c_str()), newImage.m_TextureFlags); + if (newImage.m_Texture && m_MinFilter > NVRenderTextureMinifyingOp::Linear && wasDirty) + newImage.m_Texture->GenerateMipmaps(); } } @@ -97,13 +99,14 @@ bool SImage::ClearDirty(IBufferManager &inBufferManager, IOffscreenRenderManager HandleOffscreenResult(*this, newImage, theResult, replaceTexture, wasDirty); inBufferManager.checkAlwaysPremultiplied(QString::fromLatin1(m_ImagePath.c_str()), newImage.m_TextureFlags); + if (newImage.m_Texture && m_MinFilter > NVRenderTextureMinifyingOp::Linear && wasDirty) + newImage.m_Texture->GenerateMipmaps(); + } else if (!wasDirty) { + // Do not recheck image path if we are not dirty and we already have a texture + newImage.m_Texture = m_TextureData.m_Texture; } } - // Do not recheck image path if we are not dirty and we already have a texture - if (!wasDirty) - newImage.m_Texture = m_TextureData.m_Texture; - if (newImage.m_Texture == nullptr) { m_LastFrameOffscreenRenderer = nullptr; if (m_ImagePath.IsValid() && !m_OffscreenRendererId.IsValid() |