summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/graphobjects
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2019-12-05 07:37:47 +0200
committerJanne Kangas <janne.kangas@qt.io>2019-12-12 11:12:47 +0200
commit7f1f071d9e924a8c2ed1ffccf6c7354d40d480b4 (patch)
tree5a2ec5c962301d30d01d09defe057794f12c4ec7 /src/runtimerender/graphobjects
parent56e145b99add8dfe3c8067322abdbeecab9cf853 (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.cpp4
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderImage.h3
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderPresentation.h3
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)
{