summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2020-10-04 13:22:50 +0300
committerAntti Määttä <antti.maatta@qt.io>2020-10-14 12:26:00 +0300
commit4ff4abea88534aabdab9201140c7e610f0c709b9 (patch)
tree70eb1e4fef41d421fc8719c3a8482067e279050d /src/runtimerender/Qt3DSRenderCustomMaterialShaderGenerator.cpp
parentef7e3400211d275077596dd848898adb876efb6e (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.cpp6
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);