diff options
Diffstat (limited to 'src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp')
-rw-r--r-- | src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp | 43 |
1 files changed, 7 insertions, 36 deletions
diff --git a/src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp b/src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp index ccf028529..345a29174 100644 --- a/src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp +++ b/src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp @@ -46,36 +46,15 @@ QT_BEGIN_NAMESPACE -static QPointF rotateNormalizedPoint(const QPointF &point, int rotation) -{ - const qreal one(1.0f); - - switch (rotation) { - case 0: - default: - return point; - case 90: - return QPointF(point.y(), one - point.x()); - case 180: - return QPointF(one - point.x(), one - point.y()); - case 270: - return QPointF(one - point.y(), point.x()); - } -} - -static QRect adjustedArea(const QRectF &area, int rotation) +static QRect adjustedArea(const QRectF &area) { // Qt maps focus points in the range (0.0, 0.0) -> (1.0, 1.0) // Android maps focus points in the range (-1000, -1000) -> (1000, 1000) // Converts an area in Qt coordinates to Android coordinates - // Applies 'rotation' in the counter-clockwise direction - QRectF rotated(rotateNormalizedPoint(area.topLeft(), rotation), - rotateNormalizedPoint(area.bottomRight(), rotation)); - - return QRect(-1000 + qRound(rotated.x() * 2000), - -1000 + qRound(rotated.y() * 2000), - qRound(rotated.width() * 2000), - qRound(rotated.height() * 2000)) + return QRect(-1000 + qRound(area.x() * 2000), + -1000 + qRound(area.y() * 2000), + qRound(area.width() * 2000), + qRound(area.height() * 2000)) .intersected(QRect(-1000, -1000, 2000, 2000)); } @@ -263,9 +242,6 @@ void QAndroidCameraFocusControl::updateFocusZones(QCameraFocusZone::FocusZoneSta if (!viewportSize.isValid()) return; - if (m_session->camera()->getDisplayOrientation() % 180) - viewportSize.transpose(); - QSizeF focusSize(50.f / viewportSize.width(), 50.f / viewportSize.height()); float x = qBound(qreal(0), m_actualFocusPoint.x() - (focusSize.width() / 2), @@ -288,13 +264,8 @@ void QAndroidCameraFocusControl::setCameraFocusArea() // in FocusPointAuto mode, leave the area list empty // to let the driver choose the focus point. - for (int i = 0; i < m_focusZones.size(); ++i) { - // The area passed to Android should be in sensor orientation. - // What we have in m_focusZones is in viewport orientation, so revert the rotation set - // on the viewport to get sensor coordinates. - areas.append(adjustedArea(m_focusZones.at(i).area(), - m_session->camera()->getDisplayOrientation())); - } + for (int i = 0; i < m_focusZones.size(); ++i) + areas.append(adjustedArea(m_focusZones.at(i).area())); } m_session->camera()->setFocusAreas(areas); |