summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderImage.cpp11
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()