summaryrefslogtreecommitdiffstats
path: root/src/Viewer/studio3d/q3dscommandqueue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Viewer/studio3d/q3dscommandqueue.cpp')
-rw-r--r--src/Viewer/studio3d/q3dscommandqueue.cpp35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/Viewer/studio3d/q3dscommandqueue.cpp b/src/Viewer/studio3d/q3dscommandqueue.cpp
index cf7bd3f9..9882fea6 100644
--- a/src/Viewer/studio3d/q3dscommandqueue.cpp
+++ b/src/Viewer/studio3d/q3dscommandqueue.cpp
@@ -138,31 +138,32 @@ ElementCommand &CommandQueue::queueRequest(const QString &elementPath, CommandTy
void CommandQueue::copyCommands(const CommandQueue &fromQueue)
{
- m_visibleChanged = fromQueue.m_visibleChanged;
- m_scaleModeChanged = fromQueue.m_scaleModeChanged;
- m_shadeModeChanged = fromQueue.m_shadeModeChanged;
- m_showRenderStatsChanged = fromQueue.m_showRenderStatsChanged;
- m_matteColorChanged = fromQueue.m_matteColorChanged;
- m_sourceChanged = fromQueue.m_sourceChanged;
- m_globalAnimationTimeChanged = fromQueue.m_globalAnimationTimeChanged;
-
- if (m_visibleChanged)
+ m_visibleChanged = m_visibleChanged || fromQueue.m_visibleChanged;
+ m_scaleModeChanged = m_scaleModeChanged || fromQueue.m_scaleModeChanged;
+ m_shadeModeChanged = m_shadeModeChanged || fromQueue.m_shadeModeChanged;
+ m_showRenderStatsChanged = m_showRenderStatsChanged || fromQueue.m_showRenderStatsChanged;
+ m_matteColorChanged = m_matteColorChanged || fromQueue.m_matteColorChanged;
+ m_sourceChanged = m_sourceChanged || fromQueue.m_sourceChanged;
+ m_globalAnimationTimeChanged
+ = m_globalAnimationTimeChanged || fromQueue.m_globalAnimationTimeChanged;
+
+ if (fromQueue.m_visibleChanged)
m_visible = fromQueue.m_visible;
- if (m_scaleModeChanged)
+ if (fromQueue.m_scaleModeChanged)
m_scaleMode = fromQueue.m_scaleMode;
- if (m_shadeModeChanged)
+ if (fromQueue.m_shadeModeChanged)
m_shadeMode = fromQueue.m_shadeMode;
- if (m_showRenderStatsChanged)
+ if (fromQueue.m_showRenderStatsChanged)
m_showRenderStats = fromQueue.m_showRenderStats;
- if (m_matteColorChanged)
+ if (fromQueue.m_matteColorChanged)
m_matteColor = fromQueue.m_matteColor;
- if (m_sourceChanged)
+ if (fromQueue.m_sourceChanged)
m_source = fromQueue.m_source;
- if (m_globalAnimationTimeChanged)
+ if (fromQueue.m_globalAnimationTimeChanged)
m_globalAnimationTime = fromQueue.m_globalAnimationTime;
- m_size = 0;
-
+ // Pending queue may be synchronized multiple times between queue processing, so let's append
+ // to the existing queue rather than clearing it.
for (int i = 0; i < fromQueue.m_size; i++) {
const ElementCommand &source = fromQueue.commandAt(i);
switch (source.m_commandType) {