diff options
author | Antti Määttä <antti.maatta@qt.io> | 2020-10-04 13:22:50 +0300 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2020-10-14 12:26:00 +0300 |
commit | 4ff4abea88534aabdab9201140c7e610f0c709b9 (patch) | |
tree | 70eb1e4fef41d421fc8719c3a8482067e279050d /src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp | |
parent | ef7e3400211d275077596dd848898adb876efb6e (diff) |
Implement image filtering
This is needed to support custom material texture filter modes when
they are being implemented using images.
Task-number: QT3DS-4183
Change-Id: I9f16a9347379872a8f04ebdd08785df345939a70
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp')
-rw-r--r-- | src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp b/src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp index 7423c0e..a09a896 100644 --- a/src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp +++ b/src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp @@ -442,6 +442,12 @@ struct SShaderGenerator : public ICustomMaterialShaderGenerator inImage.m_Image.m_HorizontalTilingMode); inImage.m_Image.m_TextureData.m_Texture->SetTextureWrapT( inImage.m_Image.m_VerticalTilingMode); + if (inImage.m_Image.m_MinFilter > NVRenderTextureMinifyingOp::Linear + && inImage.m_Image.m_TextureData.m_Texture->GetNumMipmaps() == 0) { + inImage.m_Image.m_TextureData.m_Texture->GenerateMipmaps(); + } + inImage.m_Image.m_TextureData.m_Texture->SetMinFilter(inImage.m_Image.m_MinFilter); + inImage.m_Image.m_TextureData.m_Texture->SetMagFilter(inImage.m_Image.m_MagFilter); theShaderProps.m_Sampler.Set(inImage.m_Image.m_TextureData.m_Texture); theShaderProps.m_Offsets.Set(offsets); |