diff options
| -rw-r--r-- | services/surfaceflinger/DisplayDevice.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index 4a13bfb7ae..5700d72cae 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -272,13 +272,17 @@ void DisplayDevice::setProjection(int orientation, scissor = displayBounds; } + uint32_t transformOrientation; + if (isPrimary()) { sPrimaryDisplayOrientation = displayStateOrientationToTransformOrientation(orientation); + transformOrientation = displayStateOrientationToTransformOrientation( + (orientation + mDisplayInstallOrientation) % (DisplayState::eOrientation270 + 1)); + } else { + transformOrientation = displayStateOrientationToTransformOrientation(orientation); } - getCompositionDisplay()->setProjection(globalTransform, - displayStateOrientationToTransformOrientation( - orientation), + getCompositionDisplay()->setProjection(globalTransform, transformOrientation, frame, viewport, scissor, needsFiltering); } |