diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-04 11:37:57 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-05 09:25:08 +0200 |
commit | 5605d807030df8bfa1898c8fa05b86b40e6c2ebd (patch) | |
tree | 245abda67211ee62d58f341b799cb510988a9447 /src/runtimerender/Qt3DSRenderEffectSystem.cpp | |
parent | abc9048c6806083673b44a6bcf1176bfaadb4335 (diff) |
Fix subpresentations in custom shaders
Custom shaders don't have presentationIds separately. The property value
has to be interpreted as a presentationId. The main layer also has to be
set dirty if custom shader subpresentation changes so that it animates
even without other changes in the scene.
Task-number: QT3DS-4083
Change-Id: I0fef13a8c7d99a74c524e459bb5490ff48158e26
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtimerender/Qt3DSRenderEffectSystem.cpp')
-rw-r--r-- | src/runtimerender/Qt3DSRenderEffectSystem.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/runtimerender/Qt3DSRenderEffectSystem.cpp b/src/runtimerender/Qt3DSRenderEffectSystem.cpp index b10345c..faaf4d2 100644 --- a/src/runtimerender/Qt3DSRenderEffectSystem.cpp +++ b/src/runtimerender/Qt3DSRenderEffectSystem.cpp @@ -1082,9 +1082,10 @@ struct SEffectSystem : public IEffectSystem image->m_ImagePath = *theStrPtr; image->m_Flags.SetDirty(true); } else { - if (image->m_OffscreenRendererId.IsValid()) { - IOffscreenRenderManager &theOffscreenRenderer( - m_Context->GetOffscreenRenderManager()); + IOffscreenRenderManager &theOffscreenRenderer( + m_Context->GetOffscreenRenderManager()); + if (image->m_OffscreenRendererId.IsValid() + || theOffscreenRenderer.HasOffscreenRenderer(*theStrPtr)) { SOffscreenRenderResult theResult = theOffscreenRenderer.GetRenderedItem(*theStrPtr); needsAlphaMultiply = false; |