mirror of https://github.com/qt/qtgraphs.git
Do not continuously update camera
Only call updateCamera if camera properties have changed.
Pick-to: 6.9
Task-number: QTBUG-136174
Change-Id: I94f6c80e4c9e9e36a6399058bdd74866d2c0b202
Reviewed-by: Sakaria Pouke <sakaria.pouke@qt.io>
Reviewed-by: Kwanghyo Park <kwanghyo.park@qt.io>
(cherry picked from commit 7deeaa5196)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
4c96f4b0c4
commit
aadd8fd9e7
|
|
@ -2685,7 +2685,10 @@ void QQuickGraphsItem::synchData()
|
|||
m_changeTracker.axisZTitleOffsetChanged = false;
|
||||
}
|
||||
|
||||
updateCamera();
|
||||
if (m_changeTracker.cameraChanged) {
|
||||
updateCamera();
|
||||
m_changeTracker.cameraChanged = false;
|
||||
}
|
||||
|
||||
QVector3D forward = camera()->forward();
|
||||
auto targetRotation = cameraTarget()->eulerRotation();
|
||||
|
|
@ -6279,6 +6282,7 @@ void QQuickGraphsItem::setCameraPreset(QtGraphs3D::CameraPreset preset)
|
|||
connect(this, &QQuickGraphsItem::cameraYRotationChanged, m_scene, &Q3DScene::needRender);
|
||||
connect(this, &QQuickGraphsItem::cameraZoomLevelChanged, m_scene, &Q3DScene::needRender);
|
||||
}
|
||||
m_changeTracker.cameraChanged = true;
|
||||
}
|
||||
|
||||
void QQuickGraphsItem::setCameraXRotation(float rotation)
|
||||
|
|
@ -6290,6 +6294,7 @@ void QQuickGraphsItem::setCameraXRotation(float rotation)
|
|||
if (rotation != m_xRotation) {
|
||||
m_xRotation = rotation;
|
||||
qCDebug(lcEvents3D, "%s x rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
||||
m_changeTracker.cameraChanged = true;
|
||||
emit cameraXRotationChanged(m_xRotation);
|
||||
}
|
||||
}
|
||||
|
|
@ -6303,6 +6308,7 @@ void QQuickGraphsItem::setCameraYRotation(float rotation)
|
|||
if (rotation != m_yRotation) {
|
||||
m_yRotation = rotation;
|
||||
qCDebug(lcEvents3D, "%s y rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
||||
m_changeTracker.cameraChanged = true;
|
||||
emit cameraYRotationChanged(m_yRotation);
|
||||
}
|
||||
}
|
||||
|
|
@ -6441,6 +6447,7 @@ void QQuickGraphsItem::setCameraZoomLevel(float level)
|
|||
|
||||
m_zoomLevel = level;
|
||||
qCDebug(lcEvents3D, "%s zoom level: %.1f", qUtf8Printable(QLatin1String(__FUNCTION__)), level);
|
||||
m_changeTracker.cameraChanged = true;
|
||||
emit cameraZoomLevelChanged(level);
|
||||
}
|
||||
|
||||
|
|
@ -6489,6 +6496,7 @@ void QQuickGraphsItem::setCameraTargetPosition(QVector3D target)
|
|||
m_requestedTarget.setX(std::clamp(target.x(), -1.0f, 1.0f));
|
||||
m_requestedTarget.setY(std::clamp(target.y(), -1.0f, 1.0f));
|
||||
m_requestedTarget.setZ(std::clamp(target.z(), -1.0f, 1.0f));
|
||||
m_changeTracker.cameraChanged = true;
|
||||
emit cameraTargetPositionChanged(target);
|
||||
}
|
||||
|
||||
|
|
@ -7082,6 +7090,7 @@ void QQuickGraphsItem::setUpCamera()
|
|||
setCamera(m_oCamera);
|
||||
else
|
||||
setCamera(m_pCamera);
|
||||
m_changeTracker.cameraChanged = true;
|
||||
}
|
||||
|
||||
void QQuickGraphsItem::setUpLight()
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ struct Abstract3DChangeBitField
|
|||
bool labelMarginChanged : 1;
|
||||
bool radialLabelOffsetChanged : 1;
|
||||
bool marginChanged : 1;
|
||||
bool cameraChanged : 1;
|
||||
|
||||
Abstract3DChangeBitField()
|
||||
: themeChanged(true)
|
||||
|
|
@ -156,6 +157,7 @@ struct Abstract3DChangeBitField
|
|||
, labelMarginChanged(true)
|
||||
, radialLabelOffsetChanged(true)
|
||||
, marginChanged(true)
|
||||
, cameraChanged(true)
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue