From aad4ebf31b49ce52ce16d81d74c331624e593e4a Mon Sep 17 00:00:00 2001 From: Lloyd Pique Date: Thu, 3 Oct 2019 17:58:30 -0700 Subject: SF: Start restructuring display creation Create the compositionengine::Display first thing, outside of DisplayDevice, and pass it in as part of creating the DisplayDevice, rather than creating it internal to DisplayDevice. Also to start, move the logic to allocate a DisplayId for a HWC backed virtual display into the CompositionEngine class. This is a first step to moving the internal setup of the display to CompositionEngine, and eventually eliminating DisplayDevice entirely, as it is but a thin wrapper around the other class. DisplayTransactionTest is adjusted so the dummy created DisplayDevices have an appropriate compositionengine::Display. Test: atest libsurfaceflinger_unittest libcompositionengine_test Bug: 142831417 Change-Id: I8417682f4ead7b550a8973d4716c627e31b07b6e Merged-In: I8417682f4ead7b550a8973d4716c627e31b07b6e (cherry picked from commit 9370a480fc0a99575a57500b03c9c45d9e52bc1d) --- services/surfaceflinger/DisplayDevice.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'services/surfaceflinger/DisplayDevice.cpp') diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index cd6bbd1716..b72214d307 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -47,19 +47,17 @@ using android::base::StringAppendF; ui::Transform::RotationFlags DisplayDevice::sPrimaryDisplayRotationFlags = ui::Transform::ROT_0; -DisplayDeviceCreationArgs::DisplayDeviceCreationArgs(const sp& flinger, - const wp& displayToken, - std::optional displayId) - : flinger(flinger), displayToken(displayToken), displayId(displayId) {} +DisplayDeviceCreationArgs::DisplayDeviceCreationArgs( + const sp& flinger, const wp& displayToken, + std::shared_ptr compositionDisplay) + : flinger(flinger), displayToken(displayToken), compositionDisplay(compositionDisplay) {} -DisplayDevice::DisplayDevice(DisplayDeviceCreationArgs&& args) +DisplayDevice::DisplayDevice(DisplayDeviceCreationArgs& args) : mFlinger(args.flinger), mDisplayToken(args.displayToken), mSequenceId(args.sequenceId), mConnectionType(args.connectionType), - mCompositionDisplay{mFlinger->getCompositionEngine().createDisplay( - compositionengine::DisplayCreationArgs{args.isVirtual(), args.displayId, - args.powerAdvisor})}, + mCompositionDisplay{args.compositionDisplay}, mPhysicalOrientation(args.physicalOrientation), mIsPrimary(args.isPrimary) { mCompositionDisplay->editState().isSecure = args.isSecure; -- cgit v1.2.3-59-g8ed1b