diff options
author | 2020-09-12 15:49:39 +0000 | |
---|---|---|
committer | 2020-10-01 18:39:21 +0000 | |
commit | 11dcc2207f651acf836aa611e48ce75db90258b0 (patch) | |
tree | ff47bdb8a7bd426b1bc9be8f37b18dddbdd47f4b | |
parent | 97651d23e882aa8cb24d1a6b45808a549474bcb6 (diff) |
Pass surface control instead of handle as reference to layers in
LayerState
Allows us to have access to the layer id stored in surface control so that it can be dumped when tracing the transaction merges
Test: Existing tests
Change-Id: I3e466c69585937d8ce74a29a49fdbb7b3353a460
21 files changed, 171 insertions, 181 deletions
diff --git a/cmds/surfacereplayer/replayer/Replayer.cpp b/cmds/surfacereplayer/replayer/Replayer.cpp index 2b5667d8fe..86e4f5d773 100644 --- a/cmds/surfacereplayer/replayer/Replayer.cpp +++ b/cmds/surfacereplayer/replayer/Replayer.cpp @@ -584,9 +584,7 @@ void Replayer::setDeferredTransaction(SurfaceComposerClient::Transaction& t, return; } - auto handle = mLayers[dtc.layer_id()]->getHandle(); - - t.deferTransactionUntil_legacy(mLayers[id], handle, dtc.frame_number()); + t.deferTransactionUntil_legacy(mLayers[id], mLayers[dtc.layer_id()], dtc.frame_number()); } void Replayer::setDisplaySurface(SurfaceComposerClient::Transaction& t, @@ -706,11 +704,11 @@ status_t Replayer::loadSurfaceComposerClient() { void Replayer::setReparentChange(SurfaceComposerClient::Transaction& t, layer_id id, const ReparentChange& c) { - sp<IBinder> newParentHandle = nullptr; + sp<SurfaceControl> newSurfaceControl = nullptr; if (mLayers.count(c.parent_id()) != 0 && mLayers[c.parent_id()] != nullptr) { - newParentHandle = mLayers[c.parent_id()]->getHandle(); + newSurfaceControl = mLayers[c.parent_id()]; } - t.reparent(mLayers[id], newParentHandle); + t.reparent(mLayers[id], newSurfaceControl); } void Replayer::setRelativeParentChange(SurfaceComposerClient::Transaction& t, @@ -719,7 +717,7 @@ void Replayer::setRelativeParentChange(SurfaceComposerClient::Transaction& t, ALOGE("Layer %d not found in set relative parent transaction", c.relative_parent_id()); return; } - t.setRelativeLayer(mLayers[id], mLayers[c.relative_parent_id()]->getHandle(), c.z()); + t.setRelativeLayer(mLayers[id], mLayers[c.relative_parent_id()], c.z()); } void Replayer::setDetachChildrenChange(SurfaceComposerClient::Transaction& t, @@ -733,7 +731,7 @@ void Replayer::setReparentChildrenChange(SurfaceComposerClient::Transaction& t, ALOGE("Layer %d not found in reparent children transaction", c.parent_id()); return; } - t.reparentChildren(mLayers[id], mLayers[c.parent_id()]->getHandle()); + t.reparentChildren(mLayers[id], mLayers[c.parent_id()]); } void Replayer::setShadowRadiusChange(SurfaceComposerClient::Transaction& t, diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp index 4a57b1bfac..a4de66e8a7 100644 --- a/libs/gui/LayerState.cpp +++ b/libs/gui/LayerState.cpp @@ -18,16 +18,55 @@ #include <inttypes.h> -#include <utils/Errors.h> #include <binder/Parcel.h> -#include <gui/ISurfaceComposerClient.h> #include <gui/IGraphicBufferProducer.h> +#include <gui/ISurfaceComposerClient.h> #include <gui/LayerState.h> +#include <utils/Errors.h> #include <cmath> namespace android { +layer_state_t::layer_state_t() + : what(0), + x(0), + y(0), + z(0), + w(0), + h(0), + layerStack(0), + alpha(0), + flags(0), + mask(0), + reserved(0), + crop_legacy(Rect::INVALID_RECT), + cornerRadius(0.0f), + backgroundBlurRadius(0), + barrierFrameNumber(0), + overrideScalingMode(-1), + transform(0), + transformToDisplayInverse(false), + crop(Rect::INVALID_RECT), + orientedDisplaySpaceRect(Rect::INVALID_RECT), + dataspace(ui::Dataspace::UNKNOWN), + surfaceDamageRegion(), + api(-1), + colorTransform(mat4()), + bgColorAlpha(0), + bgColorDataspace(ui::Dataspace::UNKNOWN), + colorSpaceAgnostic(false), + shadowRadius(0.0f), + frameRateSelectionPriority(-1), + frameRate(0.0f), + frameRateCompatibility(ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT), + fixedTransformHint(ui::Transform::ROT_INVALID), + frameNumber(0) { + matrix.dsdx = matrix.dtdy = 1.0f; + matrix.dsdy = matrix.dtdx = 0.0f; + hdrMetadata.validTypes = 0; +} + status_t layer_state_t::write(Parcel& output) const { SAFE_PARCEL(output.writeStrongBinder, surface); @@ -44,13 +83,13 @@ status_t layer_state_t::write(Parcel& output) const SAFE_PARCEL(output.writeUint32, mask); SAFE_PARCEL(matrix.write, output); SAFE_PARCEL(output.write, crop_legacy); - SAFE_PARCEL(output.writeStrongBinder, barrierHandle_legacy); - SAFE_PARCEL(output.writeStrongBinder, reparentHandle); + SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, barrierSurfaceControl_legacy); + SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, reparentSurfaceControl); SAFE_PARCEL(output.writeUint64, barrierFrameNumber); SAFE_PARCEL(output.writeInt32, overrideScalingMode); SAFE_PARCEL(output.writeStrongBinder, IInterface::asBinder(barrierGbp_legacy)); - SAFE_PARCEL(output.writeStrongBinder, relativeLayerHandle); - SAFE_PARCEL(output.writeStrongBinder, parentHandleForChild); + SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, relativeLayerSurfaceControl); + SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, parentSurfaceControlForChild); SAFE_PARCEL(output.writeFloat, color.r); SAFE_PARCEL(output.writeFloat, color.g); SAFE_PARCEL(output.writeFloat, color.b); @@ -135,8 +174,8 @@ status_t layer_state_t::read(const Parcel& input) SAFE_PARCEL(matrix.read, input); SAFE_PARCEL(input.read, crop_legacy); - SAFE_PARCEL(input.readNullableStrongBinder, &barrierHandle_legacy); - SAFE_PARCEL(input.readNullableStrongBinder, &reparentHandle); + SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &barrierSurfaceControl_legacy); + SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &reparentSurfaceControl); SAFE_PARCEL(input.readUint64, &barrierFrameNumber); SAFE_PARCEL(input.readInt32, &overrideScalingMode); @@ -144,9 +183,10 @@ status_t layer_state_t::read(const Parcel& input) SAFE_PARCEL(input.readNullableStrongBinder, &tmpBinder); barrierGbp_legacy = interface_cast<IGraphicBufferProducer>(tmpBinder); + SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &relativeLayerSurfaceControl); + SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &parentSurfaceControlForChild); + float tmpFloat = 0; - SAFE_PARCEL(input.readNullableStrongBinder, &relativeLayerHandle); - SAFE_PARCEL(input.readNullableStrongBinder, &parentHandleForChild); SAFE_PARCEL(input.readFloat, &tmpFloat); color.r = tmpFloat; SAFE_PARCEL(input.readFloat, &tmpFloat); @@ -342,7 +382,7 @@ void layer_state_t::merge(const layer_state_t& other) { } if (other.what & eDeferTransaction_legacy) { what |= eDeferTransaction_legacy; - barrierHandle_legacy = other.barrierHandle_legacy; + barrierSurfaceControl_legacy = other.barrierSurfaceControl_legacy; barrierGbp_legacy = other.barrierGbp_legacy; barrierFrameNumber = other.barrierFrameNumber; } @@ -352,7 +392,7 @@ void layer_state_t::merge(const layer_state_t& other) { } if (other.what & eReparentChildren) { what |= eReparentChildren; - reparentHandle = other.reparentHandle; + reparentSurfaceControl = other.reparentSurfaceControl; } if (other.what & eDetachChildren) { what |= eDetachChildren; @@ -361,11 +401,11 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eRelativeLayerChanged; what &= ~eLayerChanged; z = other.z; - relativeLayerHandle = other.relativeLayerHandle; + relativeLayerSurfaceControl = other.relativeLayerSurfaceControl; } if (other.what & eReparent) { what |= eReparent; - parentHandleForChild = other.parentHandleForChild; + parentSurfaceControlForChild = other.parentSurfaceControlForChild; } if (other.what & eDestroySurface) { what |= eDestroySurface; diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 2f6a34bf4f..99d9ebaa92 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -875,8 +875,8 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setLayer return *this; } -SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setRelativeLayer(const sp<SurfaceControl>& sc, const sp<IBinder>& relativeTo, - int32_t z) { +SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setRelativeLayer( + const sp<SurfaceControl>& sc, const sp<SurfaceControl>& relativeTo, int32_t z) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; @@ -884,7 +884,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setRelat } s->what |= layer_state_t::eRelativeLayerChanged; s->what &= ~layer_state_t::eLayerChanged; - s->relativeLayerHandle = relativeTo; + s->relativeLayerSurfaceControl = relativeTo; s->z = z; registerSurfaceControlForCallback(sc); @@ -1028,16 +1028,16 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBackg } SurfaceComposerClient::Transaction& -SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<SurfaceControl>& sc, - const sp<IBinder>& handle, - uint64_t frameNumber) { +SurfaceComposerClient::Transaction::deferTransactionUntil_legacy( + const sp<SurfaceControl>& sc, const sp<SurfaceControl>& barrierSurfaceControl, + uint64_t frameNumber) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; return *this; } s->what |= layer_state_t::eDeferTransaction_legacy; - s->barrierHandle_legacy = handle; + s->barrierSurfaceControl_legacy = barrierSurfaceControl; s->barrierFrameNumber = frameNumber; registerSurfaceControlForCallback(sc); @@ -1062,30 +1062,28 @@ SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<Surfac } SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::reparentChildren( - const sp<SurfaceControl>& sc, - const sp<IBinder>& newParentHandle) { + const sp<SurfaceControl>& sc, const sp<SurfaceControl>& newParent) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; return *this; } s->what |= layer_state_t::eReparentChildren; - s->reparentHandle = newParentHandle; + s->reparentSurfaceControl = newParent; registerSurfaceControlForCallback(sc); return *this; } SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::reparent( - const sp<SurfaceControl>& sc, - const sp<IBinder>& newParentHandle) { + const sp<SurfaceControl>& sc, const sp<SurfaceControl>& newParent) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; return *this; } s->what |= layer_state_t::eReparent; - s->parentHandleForChild = newParentHandle; + s->parentSurfaceControlForChild = newParent; registerSurfaceControlForCallback(sc); return *this; diff --git a/libs/gui/SurfaceControl.cpp b/libs/gui/SurfaceControl.cpp index e37ff890b0..e842382ded 100644 --- a/libs/gui/SurfaceControl.cpp +++ b/libs/gui/SurfaceControl.cpp @@ -24,6 +24,7 @@ #include <android/native_window.h> #include <utils/Errors.h> +#include <utils/KeyedVector.h> #include <utils/Log.h> #include <utils/threads.h> diff --git a/libs/gui/include/gui/LayerState.h b/libs/gui/include/gui/LayerState.h index 65fd9ab588..06598e1fad 100644 --- a/libs/gui/include/gui/LayerState.h +++ b/libs/gui/include/gui/LayerState.h @@ -49,6 +49,7 @@ #include <gui/ISurfaceComposer.h> #include <gui/LayerMetadata.h> +#include <gui/SurfaceControl.h> #include <math/vec3.h> #include <ui/GraphicTypes.h> #include <ui/Rect.h> @@ -128,44 +129,7 @@ struct layer_state_t { eFrameNumberChanged = 0x400'00000000, }; - layer_state_t() - : what(0), - x(0), - y(0), - z(0), - w(0), - h(0), - layerStack(0), - alpha(0), - flags(0), - mask(0), - reserved(0), - crop_legacy(Rect::INVALID_RECT), - cornerRadius(0.0f), - backgroundBlurRadius(0), - barrierFrameNumber(0), - overrideScalingMode(-1), - transform(0), - transformToDisplayInverse(false), - crop(Rect::INVALID_RECT), - orientedDisplaySpaceRect(Rect::INVALID_RECT), - dataspace(ui::Dataspace::UNKNOWN), - surfaceDamageRegion(), - api(-1), - colorTransform(mat4()), - bgColorAlpha(0), - bgColorDataspace(ui::Dataspace::UNKNOWN), - colorSpaceAgnostic(false), - shadowRadius(0.0f), - frameRateSelectionPriority(-1), - frameRate(0.0f), - frameRateCompatibility(ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT), - fixedTransformHint(ui::Transform::ROT_INVALID), - frameNumber(0) { - matrix.dsdx = matrix.dtdy = 1.0f; - matrix.dsdy = matrix.dtdx = 0.0f; - hdrMetadata.validTypes = 0; - } + layer_state_t(); void merge(const layer_state_t& other); status_t write(Parcel& output) const; @@ -196,16 +160,16 @@ struct layer_state_t { Rect crop_legacy; float cornerRadius; uint32_t backgroundBlurRadius; - sp<IBinder> barrierHandle_legacy; - sp<IBinder> reparentHandle; + sp<SurfaceControl> barrierSurfaceControl_legacy; + sp<SurfaceControl> reparentSurfaceControl; uint64_t barrierFrameNumber; int32_t overrideScalingMode; sp<IGraphicBufferProducer> barrierGbp_legacy; - sp<IBinder> relativeLayerHandle; + sp<SurfaceControl> relativeLayerSurfaceControl; - sp<IBinder> parentHandleForChild; + sp<SurfaceControl> parentSurfaceControlForChild; half3 color; diff --git a/libs/gui/include/gui/SurfaceComposerClient.h b/libs/gui/include/gui/SurfaceComposerClient.h index cc82502d4e..f366c2935d 100644 --- a/libs/gui/include/gui/SurfaceComposerClient.h +++ b/libs/gui/include/gui/SurfaceComposerClient.h @@ -424,7 +424,7 @@ public: // If the relative is removed, the Surface will have no layer and be // invisible, until the next time set(Relative)Layer is called. Transaction& setRelativeLayer(const sp<SurfaceControl>& sc, - const sp<IBinder>& relativeTo, int32_t z); + const sp<SurfaceControl>& relativeTo, int32_t z); Transaction& setFlags(const sp<SurfaceControl>& sc, uint32_t flags, uint32_t mask); Transaction& setTransparentRegionHint(const sp<SurfaceControl>& sc, @@ -444,7 +444,8 @@ public: // by handle is removed, then we will apply this transaction regardless of // what frame number has been reached. Transaction& deferTransactionUntil_legacy(const sp<SurfaceControl>& sc, - const sp<IBinder>& handle, uint64_t frameNumber); + const sp<SurfaceControl>& barrierSurfaceControl, + uint64_t frameNumber); // A variant of deferTransactionUntil_legacy which identifies the Layer we wait for by // Surface instead of Handle. Useful for clients which may not have the // SurfaceControl for some of their Surfaces. Otherwise behaves identically. @@ -453,13 +454,12 @@ public: uint64_t frameNumber); // Reparents all children of this layer to the new parent handle. Transaction& reparentChildren(const sp<SurfaceControl>& sc, - const sp<IBinder>& newParentHandle); + const sp<SurfaceControl>& newParent); /// Reparents the current layer to the new parent handle. The new parent must not be null. // This can be used instead of reparentChildren if the caller wants to // only re-parent a specific child. - Transaction& reparent(const sp<SurfaceControl>& sc, - const sp<IBinder>& newParentHandle); + Transaction& reparent(const sp<SurfaceControl>& sc, const sp<SurfaceControl>& newParent); Transaction& setColor(const sp<SurfaceControl>& sc, const half3& color); diff --git a/libs/gui/include/gui/SurfaceControl.h b/libs/gui/include/gui/SurfaceControl.h index c0dfcdb087..35bdfc155d 100644 --- a/libs/gui/include/gui/SurfaceControl.h +++ b/libs/gui/include/gui/SurfaceControl.h @@ -20,7 +20,6 @@ #include <stdint.h> #include <sys/types.h> -#include <utils/KeyedVector.h> #include <utils/RefBase.h> #include <utils/threads.h> diff --git a/libs/gui/tests/EndToEndNativeInputTest.cpp b/libs/gui/tests/EndToEndNativeInputTest.cpp index ef4d870ec7..483f171564 100644 --- a/libs/gui/tests/EndToEndNativeInputTest.cpp +++ b/libs/gui/tests/EndToEndNativeInputTest.cpp @@ -381,7 +381,7 @@ TEST_F(InputSurfacesTest, input_respects_cropped_surface_insets) { childSurface->doTransaction([&](auto &t, auto &sc) { t.setPosition(sc, -5, -5); - t.reparent(sc, parentSurface->mSurfaceControl->getHandle()); + t.reparent(sc, parentSurface->mSurfaceControl); }); injectTap(106, 106); diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 152d872aff..ce90f1cb14 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3298,7 +3298,7 @@ status_t SurfaceFlinger::setTransactionState( applyTransactionState(frameTimelineVsyncId, states, displays, flags, inputWindowCommands, desiredPresentTime, uncacheBuffer, postTime, privileged, hasListenerCallbacks, listenerCallbacks, originPid, originUid, - /*isMainThread*/ false); + transactionId, /*isMainThread*/ false); return NO_ERROR; } @@ -3591,7 +3591,8 @@ uint32_t SurfaceFlinger::setClientStateLocked( const auto& p = layer->getParent(); if (p == nullptr) { ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer); - if (layer->setRelativeLayer(s.relativeLayerHandle, s.z) && idx >= 0) { + if (layer->setRelativeLayer(s.relativeLayerSurfaceControl->getHandle(), s.z) && + idx >= 0) { mCurrentState.layersSortedByZ.removeAt(idx); mCurrentState.layersSortedByZ.add(layer); // we need traversal (state changed) @@ -3599,7 +3600,7 @@ uint32_t SurfaceFlinger::setClientStateLocked( flags |= eTransactionNeeded|eTraversalNeeded; } } else { - if (p->setChildRelativeLayer(layer, s.relativeLayerHandle, s.z)) { + if (p->setChildRelativeLayer(layer, s.relativeLayerSurfaceControl->getHandle(), s.z)) { flags |= eTransactionNeeded|eTraversalNeeded; } } @@ -3685,8 +3686,9 @@ uint32_t SurfaceFlinger::setClientStateLocked( } } if (what & layer_state_t::eDeferTransaction_legacy) { - if (s.barrierHandle_legacy != nullptr) { - layer->deferTransactionUntil_legacy(s.barrierHandle_legacy, s.barrierFrameNumber); + if (s.barrierSurfaceControl_legacy != nullptr) { + layer->deferTransactionUntil_legacy(s.barrierSurfaceControl_legacy->getHandle(), + s.barrierFrameNumber); } else if (s.barrierGbp_legacy != nullptr) { const sp<IGraphicBufferProducer>& gbp = s.barrierGbp_legacy; if (authenticateSurfaceTextureLocked(gbp)) { @@ -3702,7 +3704,7 @@ uint32_t SurfaceFlinger::setClientStateLocked( // changed, we don't want this to cause any more work } if (what & layer_state_t::eReparentChildren) { - if (layer->reparentChildren(s.reparentHandle)) { + if (layer->reparentChildren(s.reparentSurfaceControl->getHandle())) { flags |= eTransactionNeeded|eTraversalNeeded; } } @@ -3789,7 +3791,10 @@ uint32_t SurfaceFlinger::setClientStateLocked( // lose its relative z order. if (what & layer_state_t::eReparent) { bool hadParent = layer->hasParent(); - if (layer->reparent(s.parentHandleForChild)) { + auto parentHandle = (s.parentSurfaceControlForChild) + ? s.parentSurfaceControlForChild->getHandle() + : nullptr; + if (layer->reparent(parentHandle)) { if (!hadParent) { mCurrentState.layersSortedByZ.remove(layer); } diff --git a/services/surfaceflinger/SurfaceInterceptor.cpp b/services/surfaceflinger/SurfaceInterceptor.cpp index 4407f4c1da..2687313733 100644 --- a/services/surfaceflinger/SurfaceInterceptor.cpp +++ b/services/surfaceflinger/SurfaceInterceptor.cpp @@ -472,9 +472,10 @@ void SurfaceInterceptor::addSurfaceChangesLocked(Transaction* transaction, } if (state.what & layer_state_t::eDeferTransaction_legacy) { sp<Layer> otherLayer = nullptr; - if (state.barrierHandle_legacy != nullptr) { - otherLayer = - static_cast<Layer::Handle*>(state.barrierHandle_legacy.get())->owner.promote(); + if (state.barrierSurfaceControl_legacy != nullptr) { + otherLayer = static_cast<Layer::Handle*>( + state.barrierSurfaceControl_legacy->getHandle().get()) + ->owner.promote(); } else if (state.barrierGbp_legacy != nullptr) { auto const& gbp = state.barrierGbp_legacy; if (mFlinger->authenticateSurfaceTextureLocked(gbp)) { @@ -489,17 +490,23 @@ void SurfaceInterceptor::addSurfaceChangesLocked(Transaction* transaction, addOverrideScalingModeLocked(transaction, layerId, state.overrideScalingMode); } if (state.what & layer_state_t::eReparent) { - addReparentLocked(transaction, layerId, getLayerIdFromHandle(state.parentHandleForChild)); + auto parentHandle = (state.parentSurfaceControlForChild) + ? state.parentSurfaceControlForChild->getHandle() + : nullptr; + addReparentLocked(transaction, layerId, getLayerIdFromHandle(parentHandle)); } if (state.what & layer_state_t::eReparentChildren) { - addReparentChildrenLocked(transaction, layerId, getLayerIdFromHandle(state.reparentHandle)); + addReparentChildrenLocked(transaction, layerId, + getLayerIdFromHandle(state.reparentSurfaceControl->getHandle())); } if (state.what & layer_state_t::eDetachChildren) { addDetachChildrenLocked(transaction, layerId, true); } if (state.what & layer_state_t::eRelativeLayerChanged) { addRelativeParentLocked(transaction, layerId, - getLayerIdFromHandle(state.relativeLayerHandle), state.z); + getLayerIdFromHandle( + state.relativeLayerSurfaceControl->getHandle()), + state.z); } if (state.what & layer_state_t::eShadowRadiusChanged) { addShadowRadiusLocked(transaction, layerId, state.shadowRadius); diff --git a/services/surfaceflinger/tests/DetachChildren_test.cpp b/services/surfaceflinger/tests/DetachChildren_test.cpp index 3261308560..9c7b1fcc04 100644 --- a/services/surfaceflinger/tests/DetachChildren_test.cpp +++ b/services/surfaceflinger/tests/DetachChildren_test.cpp @@ -61,7 +61,7 @@ TEST_F(DetachChildren, RelativesAreNotDetached) { TransactionUtils::fillSurfaceRGBA8(relative, relativeColor); Transaction{} - .setRelativeLayer(relative, mMainSurface->getHandle(), 1) + .setRelativeLayer(relative, mMainSurface, 1) .setPosition(relative, relBounds.left, relBounds.top) .apply(); @@ -204,7 +204,7 @@ TEST_F(DetachChildren, DetachChildrenThenAttach) { .setLayer(newParentSurface, INT32_MAX - 1) .show(newParentSurface) .setPosition(newParentSurface, newParentBounds.left, newParentBounds.top) - .reparent(childNewClient, newParentSurface->getHandle()) + .reparent(childNewClient, newParentSurface) .apply(); { mCapture = screenshot(); @@ -238,7 +238,7 @@ TEST_F(DetachChildren, DetachChildrenWithDeferredTransaction) { } Transaction() - .deferTransactionUntil_legacy(childNewClient, mMainSurface->getHandle(), + .deferTransactionUntil_legacy(childNewClient, mMainSurface, mMainSurface->getSurface()->getNextFrameNumber()) .apply(); Transaction().detachChildren(mMainSurface).apply(); @@ -290,7 +290,7 @@ TEST_F(DetachChildren, DeferredTransactionOnDetachedChildren) { Transaction().detachChildren(mMainSurface).apply(); Transaction() .setCrop_legacy(childNewClient, {0, 0, childBounds.width(), childBounds.height()}) - .deferTransactionUntil_legacy(childNewClient, mMainSurface->getHandle(), + .deferTransactionUntil_legacy(childNewClient, mMainSurface, mMainSurface->getSurface()->getNextFrameNumber()) .apply(); @@ -352,7 +352,7 @@ TEST_F(DetachChildren, ReparentParentLayerOfDetachedChildren) { mCapture->expectColor(mMainSurfaceBounds, Color::BLACK); } - Transaction().reparent(mMainSurface, mBlackBgSurface->getHandle()).apply(); + Transaction().reparent(mMainSurface, mBlackBgSurface).apply(); { mCapture = screenshot(); mCapture->expectBorder(childBounds, mMainSurfaceColor); diff --git a/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp b/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp index 83e5060830..494728953b 100644 --- a/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp @@ -211,16 +211,13 @@ void LayerRenderTypeTransactionTest::setRelativeZBasicHelper(uint32_t layerType) switch (layerType) { case ISurfaceComposerClient::eFXSurfaceBufferQueue: - Transaction() - .setPosition(layerG, 16, 16) - .setRelativeLayer(layerG, layerR->getHandle(), 1) - .apply(); + Transaction().setPosition(layerG, 16, 16).setRelativeLayer(layerG, layerR, 1).apply(); break; case ISurfaceComposerClient::eFXSurfaceBufferState: Transaction() .setFrame(layerR, Rect(0, 0, 32, 32)) .setFrame(layerG, Rect(16, 16, 48, 48)) - .setRelativeLayer(layerG, layerR->getHandle(), 1) + .setRelativeLayer(layerG, layerR, 1) .apply(); break; default: @@ -233,7 +230,7 @@ void LayerRenderTypeTransactionTest::setRelativeZBasicHelper(uint32_t layerType) shot->expectColor(Rect(16, 16, 48, 48), Color::GREEN); } - Transaction().setRelativeLayer(layerG, layerR->getHandle(), -1).apply(); + Transaction().setRelativeLayer(layerG, layerR, -1).apply(); { SCOPED_TRACE("layerG below"); auto shot = getScreenCapture(); @@ -266,7 +263,7 @@ void LayerRenderTypeTransactionTest::setRelativeZGroupHelper(uint32_t layerType) case ISurfaceComposerClient::eFXSurfaceBufferQueue: Transaction() .setPosition(layerG, 8, 8) - .setRelativeLayer(layerG, layerR->getHandle(), 3) + .setRelativeLayer(layerG, layerR, 3) .setPosition(layerB, 16, 16) .setLayer(layerB, mLayerZBase + 2) .apply(); @@ -275,7 +272,7 @@ void LayerRenderTypeTransactionTest::setRelativeZGroupHelper(uint32_t layerType) Transaction() .setFrame(layerR, Rect(0, 0, 32, 32)) .setFrame(layerG, Rect(8, 8, 40, 40)) - .setRelativeLayer(layerG, layerR->getHandle(), 3) + .setRelativeLayer(layerG, layerR, 3) .setFrame(layerB, Rect(16, 16, 48, 48)) .setLayer(layerB, mLayerZBase + 2) .apply(); @@ -303,7 +300,7 @@ void LayerRenderTypeTransactionTest::setRelativeZGroupHelper(uint32_t layerType) } // layerR = 4, layerG = layerR - 3, layerB = 2 - Transaction().setRelativeLayer(layerG, layerR->getHandle(), -3).apply(); + Transaction().setRelativeLayer(layerG, layerR, -3).apply(); { SCOPED_TRACE("layerB < (layerG < layerR)"); auto shot = getScreenCapture(); @@ -810,7 +807,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetColorWithParentAlpha_Bug74220420) { // channel) should be less than one const uint8_t tolerance = 1; Transaction() - .reparent(colorLayer, parentLayer->getHandle()) + .reparent(colorLayer, parentLayer) .setColor(colorLayer, color) .setAlpha(parentLayer, alpha) .setLayer(parentLayer, mLayerZBase + 1) @@ -1225,7 +1222,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetFrameDefaultBSParent_BufferState) { child = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); ASSERT_NO_FATAL_FAILURE(fillBufferStateLayerColor(child, Color::BLUE, 10, 10)); - Transaction().reparent(child, parent->getHandle()).apply(); + Transaction().reparent(child, parent).apply(); // A layer will default to the frame of its parent auto shot = getScreenCapture(); @@ -1242,7 +1239,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetFrameDefaultBQParent_BufferState) { child = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); ASSERT_NO_FATAL_FAILURE(fillBufferStateLayerColor(child, Color::BLUE, 10, 10)); - Transaction().reparent(child, parent->getHandle()).apply(); + Transaction().reparent(child, parent).apply(); // A layer will default to the frame of its parent auto shot = getScreenCapture(); @@ -1272,7 +1269,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetFrameOutsideBounds_BufferState) { parent = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); ASSERT_NO_FATAL_FAILURE( child = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); - Transaction().reparent(child, parent->getHandle()).apply(); + Transaction().reparent(child, parent).apply(); ASSERT_NO_FATAL_FAILURE(fillBufferStateLayerColor(parent, Color::RED, 32, 32)); Transaction().setFrame(parent, Rect(0, 0, 32, 32)).apply(); diff --git a/services/surfaceflinger/tests/LayerTransaction_test.cpp b/services/surfaceflinger/tests/LayerTransaction_test.cpp index 8d715e1597..ef992d6a40 100644 --- a/services/surfaceflinger/tests/LayerTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerTransaction_test.cpp @@ -50,7 +50,7 @@ TEST_F(LayerTransactionTest, ReparentToSelf) { sp<SurfaceControl> layer; ASSERT_NO_FATAL_FAILURE(layer = createLayer("test", 32, 32)); ASSERT_NO_FATAL_FAILURE(fillBufferQueueLayerColor(layer, Color::RED, 32, 32)); - Transaction().reparent(layer, layer->getHandle()).apply(); + Transaction().reparent(layer, layer).apply(); { // We expect the transaction to be silently dropped, but for SurfaceFlinger diff --git a/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp b/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp index 7d4314f4df..c57ad4364a 100644 --- a/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp @@ -87,10 +87,7 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetRelativeZBug64572777) { ASSERT_NO_FATAL_FAILURE(layerG = createLayer("test G", 32, 32)); ASSERT_NO_FATAL_FAILURE(fillLayerColor(layerG, Color::GREEN, 32, 32)); - Transaction() - .setPosition(layerG, 16, 16) - .setRelativeLayer(layerG, layerR->getHandle(), 1) - .apply(); + Transaction().setPosition(layerG, 16, 16).setRelativeLayer(layerG, layerR, 1).apply(); Transaction().reparent(layerG, nullptr).apply(); @@ -154,10 +151,7 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetZNegative) { ASSERT_NO_FATAL_FAILURE(layerG = createLayer("test G", 32, 32)); ASSERT_NO_FATAL_FAILURE(fillLayerColor(layerG, Color::GREEN, 32, 32)); - Transaction() - .reparent(layerR, parent->getHandle()) - .reparent(layerG, parent->getHandle()) - .apply(); + Transaction().reparent(layerR, parent).reparent(layerG, parent).apply(); Transaction().setLayer(layerR, -1).setLayer(layerG, -2).apply(); { SCOPED_TRACE("layerR"); @@ -241,7 +235,7 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetCornerRadiusRotated) { auto transaction = Transaction() .setCornerRadius(parent, cornerRadius) .setCrop_legacy(parent, Rect(0, 0, size, size)) - .reparent(child, parent->getHandle()) + .reparent(child, parent) .setPosition(child, 0, size) // Rotate by half PI .setMatrix(child, 0.0f, -1.0f, 1.0f, 0.0f); @@ -283,14 +277,14 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetCornerRadiusChildCrop) { Transaction() .setCornerRadius(parent, cornerRadius) .setCrop_legacy(parent, Rect(0, 0, size, size)) - .reparent(child, parent->getHandle()) + .reparent(child, parent) .setPosition(child, 0, size / 2) .apply(); } else { Transaction() .setCornerRadius(parent, cornerRadius) .setFrame(parent, Rect(0, 0, size, size)) - .reparent(child, parent->getHandle()) + .reparent(child, parent) .setFrame(child, Rect(0, size / 2, size, size)) .apply(); } diff --git a/services/surfaceflinger/tests/LayerTypeTransaction_test.cpp b/services/surfaceflinger/tests/LayerTypeTransaction_test.cpp index ab74c50323..f8a0bc1124 100644 --- a/services/surfaceflinger/tests/LayerTypeTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerTypeTransaction_test.cpp @@ -54,10 +54,10 @@ TEST_P(LayerTypeTransactionTest, SetRelativeZNegative) { ASSERT_NO_FATAL_FAILURE(layerB = createLayer("test B", 32, 32)); ASSERT_NO_FATAL_FAILURE(fillLayerColor(layerB, Color::BLUE, 32, 32)); - Transaction().reparent(layerB, parent->getHandle()).apply(); + Transaction().reparent(layerB, parent).apply(); // layerR = mLayerZBase, layerG = layerR - 1, layerB = -2 - Transaction().setRelativeLayer(layerG, layerR->getHandle(), -1).setLayer(layerB, -2).apply(); + Transaction().setRelativeLayer(layerG, layerR, -1).setLayer(layerB, -2).apply(); std::unique_ptr<ScreenCapture> screenshot; // only layerB is in this range @@ -88,10 +88,7 @@ TEST_P(LayerTypeTransactionTest, SetLayerAndRelative) { .setCrop_legacy(childLayer, Rect(0, 0, 20, 30)) .apply(); - Transaction() - .setRelativeLayer(childLayer, parent->getHandle(), -1) - .setLayer(childLayer, 1) - .apply(); + Transaction().setRelativeLayer(childLayer, parent, -1).setLayer(childLayer, 1).apply(); { SCOPED_TRACE("setLayer above"); @@ -101,10 +98,7 @@ TEST_P(LayerTypeTransactionTest, SetLayerAndRelative) { screenshot->expectColor(Rect(0, 0, 20, 30), Color::RED); } - Transaction() - .setLayer(childLayer, 1) - .setRelativeLayer(childLayer, parent->getHandle(), -1) - .apply(); + Transaction().setLayer(childLayer, 1).setRelativeLayer(childLayer, parent, -1).apply(); { SCOPED_TRACE("setRelative below"); @@ -141,7 +135,7 @@ TEST_P(LayerTypeTransactionTest, HideRelativeParentHidesLayer) { .setLayer(relativeParent, mLayerZBase) .apply(); - Transaction().setRelativeLayer(childLayer, relativeParent->getHandle(), 1).apply(); + Transaction().setRelativeLayer(childLayer, relativeParent, 1).apply(); { SCOPED_TRACE("setLayer above"); diff --git a/services/surfaceflinger/tests/LayerUpdate_test.cpp b/services/surfaceflinger/tests/LayerUpdate_test.cpp index c56d473394..38da0b195b 100644 --- a/services/surfaceflinger/tests/LayerUpdate_test.cpp +++ b/services/surfaceflinger/tests/LayerUpdate_test.cpp @@ -173,13 +173,13 @@ TEST_F(LayerUpdateTest, DeferredTransactionTest) { // set up two deferred transactions on different frames asTransaction([&](Transaction& t) { t.setAlpha(mFGSurfaceControl, 0.75); - t.deferTransactionUntil_legacy(mFGSurfaceControl, mSyncSurfaceControl->getHandle(), + t.deferTransactionUntil_legacy(mFGSurfaceControl, mSyncSurfaceControl, mSyncSurfaceControl->getSurface()->getNextFrameNumber()); }); asTransaction([&](Transaction& t) { t.setPosition(mFGSurfaceControl, 128, 128); - t.deferTransactionUntil_legacy(mFGSurfaceControl, mSyncSurfaceControl->getHandle(), + t.deferTransactionUntil_legacy(mFGSurfaceControl, mSyncSurfaceControl, mSyncSurfaceControl->getSurface()->getNextFrameNumber() + 1); }); @@ -480,9 +480,8 @@ TEST_F(ChildLayerTest, ReparentChildren) { mCapture->expectFGColor(84, 84); } - asTransaction([&](Transaction& t) { - t.reparentChildren(mFGSurfaceControl, mBGSurfaceControl->getHandle()); - }); + asTransaction( + [&](Transaction& t) { t.reparentChildren(mFGSurfaceControl, mBGSurfaceControl); }); { mCapture = screenshot(); @@ -516,7 +515,7 @@ TEST_F(ChildLayerTest, ChildrenSurviveParentDestruction) { mCapture->expectFGColor(64, 64); } - asTransaction([&](Transaction& t) { t.reparent(mGrandChild, mFGSurfaceControl->getHandle()); }); + asTransaction([&](Transaction& t) { t.reparent(mGrandChild, mFGSurfaceControl); }); { SCOPED_TRACE("After reparenting grandchild"); @@ -531,9 +530,7 @@ TEST_F(ChildLayerTest, ChildrenRelativeZSurvivesParentDestruction) { TransactionUtils::fillSurfaceRGBA8(mGrandChild, 111, 111, 111); // draw grand child behind the foreground surface - asTransaction([&](Transaction& t) { - t.setRelativeLayer(mGrandChild, mFGSurfaceControl->getHandle(), -1); - }); + asTransaction([&](Transaction& t) { t.setRelativeLayer(mGrandChild, mFGSurfaceControl, -1); }); { SCOPED_TRACE("Child visible"); @@ -543,7 +540,7 @@ TEST_F(ChildLayerTest, ChildrenRelativeZSurvivesParentDestruction) { asTransaction([&](Transaction& t) { t.reparent(mChild, nullptr); - t.reparentChildren(mChild, mFGSurfaceControl->getHandle()); + t.reparentChildren(mChild, mFGSurfaceControl); }); { @@ -739,7 +736,7 @@ TEST_F(ChildLayerTest, Bug36858924) { // Show the child layer in a deferred transaction asTransaction([&](Transaction& t) { - t.deferTransactionUntil_legacy(mChild, mFGSurfaceControl->getHandle(), + t.deferTransactionUntil_legacy(mChild, mFGSurfaceControl, mFGSurfaceControl->getSurface()->getNextFrameNumber()); t.show(mChild); }); @@ -776,7 +773,7 @@ TEST_F(ChildLayerTest, Reparent) { mCapture->expectFGColor(84, 84); } - asTransaction([&](Transaction& t) { t.reparent(mChild, mBGSurfaceControl->getHandle()); }); + asTransaction([&](Transaction& t) { t.reparent(mChild, mBGSurfaceControl); }); { mCapture = screenshot(); @@ -838,7 +835,7 @@ TEST_F(ChildLayerTest, ReparentFromNoParent) { mCapture->checkPixel(10, 10, 63, 195, 63); } - asTransaction([&](Transaction& t) { t.reparent(newSurface, mFGSurfaceControl->getHandle()); }); + asTransaction([&](Transaction& t) { t.reparent(newSurface, mFGSurfaceControl); }); { mCapture = screenshot(); @@ -869,7 +866,7 @@ TEST_F(ChildLayerTest, ChildLayerRelativeLayer) { Transaction t; t.setLayer(relative, INT32_MAX) - .setRelativeLayer(mChild, relative->getHandle(), 1) + .setRelativeLayer(mChild, relative, 1) .setPosition(mFGSurfaceControl, 0, 0) .apply(true); diff --git a/services/surfaceflinger/tests/MirrorLayer_test.cpp b/services/surfaceflinger/tests/MirrorLayer_test.cpp index b49bd54599..16826c1f61 100644 --- a/services/surfaceflinger/tests/MirrorLayer_test.cpp +++ b/services/surfaceflinger/tests/MirrorLayer_test.cpp @@ -68,7 +68,7 @@ TEST_F(MirrorLayerTest, MirrorColorLayer) { // Add mirrorLayer as child of mParentLayer so it's shown on the display Transaction() - .reparent(mirrorLayer, mParentLayer->getHandle()) + .reparent(mirrorLayer, mParentLayer) .setPosition(mirrorLayer, 500, 500) .show(mirrorLayer) .apply(); @@ -127,7 +127,7 @@ TEST_F(MirrorLayerTest, MirrorColorLayer) { } // Add grandchild layer to offscreen layer - Transaction().reparent(grandchild, mChildLayer->getHandle()).apply(); + Transaction().reparent(grandchild, mChildLayer).apply(); { SCOPED_TRACE("Added Grandchild Layer"); auto shot = screenshot(); @@ -138,7 +138,7 @@ TEST_F(MirrorLayerTest, MirrorColorLayer) { } // Add child layer - Transaction().reparent(mChildLayer, mParentLayer->getHandle()).apply(); + Transaction().reparent(mChildLayer, mParentLayer).apply(); { SCOPED_TRACE("Added Child Layer"); auto shot = screenshot(); @@ -157,7 +157,7 @@ TEST_F(MirrorLayerTest, MirrorBufferLayer) { sp<SurfaceControl> mirrorLayer = mClient->mirrorSurface(mChildLayer.get()); Transaction() - .reparent(mirrorLayer, mParentLayer->getHandle()) + .reparent(mirrorLayer, mParentLayer) .setPosition(mirrorLayer, 500, 500) .show(mirrorLayer) .apply(); diff --git a/services/surfaceflinger/tests/RelativeZ_test.cpp b/services/surfaceflinger/tests/RelativeZ_test.cpp index 3e0b3c64e7..fde6e6eff8 100644 --- a/services/surfaceflinger/tests/RelativeZ_test.cpp +++ b/services/surfaceflinger/tests/RelativeZ_test.cpp @@ -70,10 +70,7 @@ TEST_F(RelativeZTest, LayerRemoved) { sp<SurfaceControl> childLayer = createColorLayer("Child layer", Color::BLUE, mBackgroundLayer.get()); - Transaction{} - .setRelativeLayer(childLayer, mForegroundLayer->getHandle(), 1) - .show(childLayer) - .apply(); + Transaction{}.setRelativeLayer(childLayer, mForegroundLayer, 1).show(childLayer).apply(); { // The childLayer should be in front of the FG control. @@ -88,7 +85,7 @@ TEST_F(RelativeZTest, LayerRemoved) { // Background layer (RED) // Child layer (WHITE) // Foregroud layer (GREEN) - Transaction{}.reparent(childLayer, mBackgroundLayer->getHandle()).apply(); + Transaction{}.reparent(childLayer, mBackgroundLayer).apply(); { // The relative z info for child layer should be reset, leaving FG control on top. @@ -118,7 +115,7 @@ TEST_F(RelativeZTest, LayerRemovedOffscreenRelativeParent) { createColorLayer("child level 3", Color::GREEN, childLevel2a.get()); Transaction{} - .setRelativeLayer(childLevel3, childLevel2b->getHandle(), 1) + .setRelativeLayer(childLevel3, childLevel2b, 1) .show(childLevel2a) .show(childLevel2b) .show(childLevel3) @@ -140,7 +137,7 @@ TEST_F(RelativeZTest, LayerRemovedOffscreenRelativeParent) { // child level 2 back (BLUE) // child level 3 (GREEN) (relative to child level 2b) // child level 2 front (BLACK) - Transaction{}.reparent(childLevel1, mForegroundLayer->getHandle()).apply(); + Transaction{}.reparent(childLevel1, mForegroundLayer).apply(); { // Nothing should change at this point since relative z info was preserved. @@ -162,7 +159,7 @@ TEST_F(RelativeZTest, LayerAndRelativeRemoved) { createColorLayer("Relative layer", Color::WHITE, mForegroundLayer.get()); Transaction{} - .setRelativeLayer(childLayer, relativeToLayer->getHandle(), 1) + .setRelativeLayer(childLayer, relativeToLayer, 1) .show(childLayer) .show(relativeToLayer) .apply(); @@ -199,7 +196,7 @@ TEST_F(RelativeZTest, LayerAndRelativeRemoved) { // Background layer (RED) // Foregroud layer (GREEN) // Child layer (BLUE) - Transaction{}.reparent(childLayer, mForegroundLayer->getHandle()).apply(); + Transaction{}.reparent(childLayer, mForegroundLayer).apply(); { // The relative z info for child layer should be reset, leaving the child layer on top. @@ -230,7 +227,7 @@ TEST_F(RelativeZTest, LayerWithRelativeReparentedToOffscreen) { createColorLayer("child level 2b", Color::BLACK, childLevel1b.get()); Transaction{} - .setRelativeLayer(childLevel1a, childLevel2b->getHandle(), 1) + .setRelativeLayer(childLevel1a, childLevel2b, 1) .show(childLevel1a) .show(childLevel1b) .show(childLevel2a) @@ -250,7 +247,7 @@ TEST_F(RelativeZTest, LayerWithRelativeReparentedToOffscreen) { // // Background layer (RED) // // Foregroud layer (GREEN) - Transaction{}.reparent(childLevel1a, childLevel2a->getHandle()).apply(); + Transaction{}.reparent(childLevel1a, childLevel2a).apply(); { // The childLevel1a and childLevel1b are no longer on screen @@ -264,7 +261,7 @@ TEST_F(RelativeZTest, LayerWithRelativeReparentedToOffscreen) { // child level 2a (BLUE) // child level 1a (testLayerColor) (relative to child level 2b) // child level 2b (BLACK) - Transaction{}.reparent(childLevel1b, mForegroundLayer->getHandle()).apply(); + Transaction{}.reparent(childLevel1b, mForegroundLayer).apply(); { // Nothing should change at this point since relative z info was preserved. diff --git a/services/surfaceflinger/tests/ScreenCapture_test.cpp b/services/surfaceflinger/tests/ScreenCapture_test.cpp index 3ab2ad183c..e1739968c0 100644 --- a/services/surfaceflinger/tests/ScreenCapture_test.cpp +++ b/services/surfaceflinger/tests/ScreenCapture_test.cpp @@ -239,7 +239,7 @@ TEST_F(ScreenCaptureTest, DontCaptureRelativeOutsideTree) { SurfaceComposerClient::Transaction() .show(child) // Set relative layer above fg layer so should be shown above when computing all layers. - .setRelativeLayer(relative, mFGSurfaceControl->getHandle(), 1) + .setRelativeLayer(relative, mFGSurfaceControl, 1) .show(relative) .apply(true); @@ -264,7 +264,7 @@ TEST_F(ScreenCaptureTest, CaptureRelativeInTree) { // Set relative layer below fg layer but relative to child layer so it should be shown // above child layer. .setLayer(relative, -1) - .setRelativeLayer(relative, child->getHandle(), 1) + .setRelativeLayer(relative, child, 1) .show(relative) .apply(true); @@ -707,7 +707,7 @@ TEST_F(ScreenCaptureTest, CaptureLayerWithUid) { .setLayer(layerWithFakeUid, INT32_MAX) .setPosition(layerWithFakeUid, 128, 128) // reparent a layer that was created with a different uid to the new layer. - .reparent(layer, layerWithFakeUid->getHandle()) + .reparent(layer, layerWithFakeUid) .apply(); // Screenshot from the fakeUid caller with the uid requested allows the layer diff --git a/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp b/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp index 8570032aae..104d919216 100644 --- a/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp +++ b/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp @@ -397,16 +397,15 @@ void SurfaceInterceptorTest::secureFlagUpdate(Transaction& t) { } void SurfaceInterceptorTest::deferredTransactionUpdate(Transaction& t) { - t.deferTransactionUntil_legacy(mBGSurfaceControl, mBGSurfaceControl->getHandle(), - DEFERRED_UPDATE); + t.deferTransactionUntil_legacy(mBGSurfaceControl, mBGSurfaceControl, DEFERRED_UPDATE); } void SurfaceInterceptorTest::reparentUpdate(Transaction& t) { - t.reparent(mBGSurfaceControl, mFGSurfaceControl->getHandle()); + t.reparent(mBGSurfaceControl, mFGSurfaceControl); } void SurfaceInterceptorTest::relativeParentUpdate(Transaction& t) { - t.setRelativeLayer(mBGSurfaceControl, mFGSurfaceControl->getHandle(), RELATIVE_Z); + t.setRelativeLayer(mBGSurfaceControl, mFGSurfaceControl, RELATIVE_Z); } void SurfaceInterceptorTest::detachChildrenUpdate(Transaction& t) { @@ -414,7 +413,7 @@ void SurfaceInterceptorTest::detachChildrenUpdate(Transaction& t) { } void SurfaceInterceptorTest::reparentChildrenUpdate(Transaction& t) { - t.reparentChildren(mBGSurfaceControl, mFGSurfaceControl->getHandle()); + t.reparentChildren(mBGSurfaceControl, mFGSurfaceControl); } void SurfaceInterceptorTest::shadowRadiusUpdate(Transaction& t) { diff --git a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp index 87fc08a828..07c558f342 100644 --- a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp +++ b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp @@ -1322,7 +1322,7 @@ protected: { TransactionScope ts(*sFakeComposer); ts.setAlpha(mFGSurfaceControl, 0.75); - ts.deferTransactionUntil_legacy(mFGSurfaceControl, syncSurfaceControl->getHandle(), + ts.deferTransactionUntil_legacy(mFGSurfaceControl, syncSurfaceControl, syncSurfaceControl->getSurface()->getNextFrameNumber()); } EXPECT_TRUE(framesAreSame(referenceFrame, sFakeComposer->getLatestFrame())); @@ -1330,7 +1330,7 @@ protected: { TransactionScope ts(*sFakeComposer); ts.setPosition(mFGSurfaceControl, 128, 128); - ts.deferTransactionUntil_legacy(mFGSurfaceControl, syncSurfaceControl->getHandle(), + ts.deferTransactionUntil_legacy(mFGSurfaceControl, syncSurfaceControl, syncSurfaceControl->getSurface()->getNextFrameNumber() + 1); } @@ -1376,7 +1376,7 @@ protected: TransactionScope ts(*sFakeComposer); ts.setPosition(relativeSurfaceControl, 64, 64); ts.show(relativeSurfaceControl); - ts.setRelativeLayer(relativeSurfaceControl, mFGSurfaceControl->getHandle(), 1); + ts.setRelativeLayer(relativeSurfaceControl, mFGSurfaceControl, 1); } auto referenceFrame = mBaseFrame; // NOTE: All three layers will be visible as the surfaces are @@ -1606,7 +1606,7 @@ protected: { TransactionScope ts(*Base::sFakeComposer); - ts.reparentChildren(Base::mFGSurfaceControl, Base::mBGSurfaceControl->getHandle()); + ts.reparentChildren(Base::mFGSurfaceControl, Base::mBGSurfaceControl); } auto referenceFrame2 = referenceFrame; @@ -1761,7 +1761,7 @@ protected: // Show the child layer in a deferred transaction { TransactionScope ts(*Base::sFakeComposer); - ts.deferTransactionUntil_legacy(mChild, Base::mFGSurfaceControl->getHandle(), + ts.deferTransactionUntil_legacy(mChild, Base::mFGSurfaceControl, Base::mFGSurfaceControl->getSurface() ->getNextFrameNumber()); ts.show(mChild); |