diff options
author | Janne Kangas <janne.kangas@qt.io> | 2019-12-05 07:37:47 +0200 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2019-12-12 11:12:47 +0200 |
commit | 7f1f071d9e924a8c2ed1ffccf6c7354d40d480b4 (patch) | |
tree | 5a2ec5c962301d30d01d09defe057794f12c4ec7 /src/runtimerender/graphobjects | |
parent | 56e145b99add8dfe3c8067322abdbeecab9cf853 (diff) |
Add project setting for automatically flipping compressed textures
Flip ktx and astc textures in shader if project settings has
flipCompressedTextures flag set as true. Also, fix bug in shader generator
UV flipping code.
Task-id: QT3DS-4015
Change-Id: Ic406569c15e172c513f5d412ba41ab84348a392b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/runtimerender/graphobjects')
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderImage.cpp | 4 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderImage.h | 3 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderPresentation.h | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp b/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp index 1910d70..69cc35b 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp +++ b/src/runtimerender/graphobjects/Qt3DSRenderImage.cpp @@ -67,7 +67,7 @@ static void HandleOffscreenResult(SImage &theImage, SImageTextureData &newImage, } bool SImage::ClearDirty(IBufferManager &inBufferManager, IOffscreenRenderManager &inRenderManager, - IRenderPluginManager &inPluginManager, bool forIbl) + IRenderPluginManager &inPluginManager, bool forIbl, bool flipCompressed) { bool wasDirty = m_Flags.IsDirty(); @@ -103,7 +103,7 @@ bool SImage::ClearDirty(IBufferManager &inBufferManager, IOffscreenRenderManager m_LoadedTextureData->m_callbacks.removeOne(this); forIbl = forIbl || m_MappingMode == ImageMappingModes::LightProbe; m_LoadedTextureData = inBufferManager.CreateReloadableImage(m_ImagePath, false, - forIbl); + forIbl, flipCompressed); m_LoadedTextureData->m_callbacks.push_back(this); } if (m_LoadedTextureData) { diff --git a/src/runtimerender/graphobjects/Qt3DSRenderImage.h b/src/runtimerender/graphobjects/Qt3DSRenderImage.h index 9b71d3f..26b4377 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderImage.h +++ b/src/runtimerender/graphobjects/Qt3DSRenderImage.h @@ -89,7 +89,8 @@ namespace render { // Or finds the image. // and sets up the texture transform bool ClearDirty(IBufferManager &inBufferManager, IOffscreenRenderManager &inRenderManager, - IRenderPluginManager &pluginManager, bool forIbl = false); + IRenderPluginManager &pluginManager, bool forIbl = false, + bool flipCompressed = false); void CalculateTextureTransform(); diff --git a/src/runtimerender/graphobjects/Qt3DSRenderPresentation.h b/src/runtimerender/graphobjects/Qt3DSRenderPresentation.h index 2403e3b..f777347 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderPresentation.h +++ b/src/runtimerender/graphobjects/Qt3DSRenderPresentation.h @@ -54,6 +54,7 @@ namespace render { QT3DSVec2 m_PresentationDimensions; RenderRotationValues::Enum m_PresentationRotation; bool m_preferKTX; + bool m_flipCompressedTextures; SScene *m_Scene; CRegisteredString m_PresentationDirectory; @@ -63,6 +64,7 @@ namespace render { , m_PresentationDimensions(800, 400) , m_PresentationRotation(RenderRotationValues::NoRotation) , m_preferKTX(false) + , m_flipCompressedTextures(false) , m_Scene(NULL) { } @@ -72,6 +74,7 @@ namespace render { , m_PresentationDimensions(w, h) , m_PresentationRotation(RenderRotationValues::NoRotation) , m_preferKTX(preferKTX) + , m_flipCompressedTextures(false) , m_Scene(NULL) , m_PresentationDirectory(presDir) { |