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 6.10 Task-number: QTBUG-136174 Change-Id: I94f6c80e4c9e9e36a6399058bdd74866d2c0b202 Reviewed-by: Sakaria Pouke <sakaria.pouke@qt.io> Reviewed-by: Kwanghyo Park <kwanghyo.park@qt.io>
This commit is contained in:
parent
f9fe3c37ee
commit
7deeaa5196
|
|
@ -2685,7 +2685,10 @@ void QQuickGraphsItem::synchData()
|
||||||
m_changeTracker.axisZTitleOffsetChanged = false;
|
m_changeTracker.axisZTitleOffsetChanged = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateCamera();
|
if (m_changeTracker.cameraChanged) {
|
||||||
|
updateCamera();
|
||||||
|
m_changeTracker.cameraChanged = false;
|
||||||
|
}
|
||||||
|
|
||||||
QVector3D forward = camera()->forward();
|
QVector3D forward = camera()->forward();
|
||||||
auto targetRotation = cameraTarget()->eulerRotation();
|
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::cameraYRotationChanged, m_scene, &Q3DScene::needRender);
|
||||||
connect(this, &QQuickGraphsItem::cameraZoomLevelChanged, m_scene, &Q3DScene::needRender);
|
connect(this, &QQuickGraphsItem::cameraZoomLevelChanged, m_scene, &Q3DScene::needRender);
|
||||||
}
|
}
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QQuickGraphsItem::setCameraXRotation(float rotation)
|
void QQuickGraphsItem::setCameraXRotation(float rotation)
|
||||||
|
|
@ -6290,6 +6294,7 @@ void QQuickGraphsItem::setCameraXRotation(float rotation)
|
||||||
if (rotation != m_xRotation) {
|
if (rotation != m_xRotation) {
|
||||||
m_xRotation = rotation;
|
m_xRotation = rotation;
|
||||||
qCDebug(lcEvents3D, "%s x rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
qCDebug(lcEvents3D, "%s x rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
emit cameraXRotationChanged(m_xRotation);
|
emit cameraXRotationChanged(m_xRotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -6303,6 +6308,7 @@ void QQuickGraphsItem::setCameraYRotation(float rotation)
|
||||||
if (rotation != m_yRotation) {
|
if (rotation != m_yRotation) {
|
||||||
m_yRotation = rotation;
|
m_yRotation = rotation;
|
||||||
qCDebug(lcEvents3D, "%s y rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
qCDebug(lcEvents3D, "%s y rotation: %.1f ", qUtf8Printable(QLatin1String(__FUNCTION__)), rotation);
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
emit cameraYRotationChanged(m_yRotation);
|
emit cameraYRotationChanged(m_yRotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -6441,6 +6447,7 @@ void QQuickGraphsItem::setCameraZoomLevel(float level)
|
||||||
|
|
||||||
m_zoomLevel = level;
|
m_zoomLevel = level;
|
||||||
qCDebug(lcEvents3D, "%s zoom level: %.1f", qUtf8Printable(QLatin1String(__FUNCTION__)), level);
|
qCDebug(lcEvents3D, "%s zoom level: %.1f", qUtf8Printable(QLatin1String(__FUNCTION__)), level);
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
emit cameraZoomLevelChanged(level);
|
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.setX(std::clamp(target.x(), -1.0f, 1.0f));
|
||||||
m_requestedTarget.setY(std::clamp(target.y(), -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_requestedTarget.setZ(std::clamp(target.z(), -1.0f, 1.0f));
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
emit cameraTargetPositionChanged(target);
|
emit cameraTargetPositionChanged(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7082,6 +7090,7 @@ void QQuickGraphsItem::setUpCamera()
|
||||||
setCamera(m_oCamera);
|
setCamera(m_oCamera);
|
||||||
else
|
else
|
||||||
setCamera(m_pCamera);
|
setCamera(m_pCamera);
|
||||||
|
m_changeTracker.cameraChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QQuickGraphsItem::setUpLight()
|
void QQuickGraphsItem::setUpLight()
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,7 @@ struct Abstract3DChangeBitField
|
||||||
bool labelMarginChanged : 1;
|
bool labelMarginChanged : 1;
|
||||||
bool radialLabelOffsetChanged : 1;
|
bool radialLabelOffsetChanged : 1;
|
||||||
bool marginChanged : 1;
|
bool marginChanged : 1;
|
||||||
|
bool cameraChanged : 1;
|
||||||
|
|
||||||
Abstract3DChangeBitField()
|
Abstract3DChangeBitField()
|
||||||
: themeChanged(true)
|
: themeChanged(true)
|
||||||
|
|
@ -156,6 +157,7 @@ struct Abstract3DChangeBitField
|
||||||
, labelMarginChanged(true)
|
, labelMarginChanged(true)
|
||||||
, radialLabelOffsetChanged(true)
|
, radialLabelOffsetChanged(true)
|
||||||
, marginChanged(true)
|
, marginChanged(true)
|
||||||
|
, cameraChanged(true)
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue