From 6cf6af0299f7e48bc5bcdcd6a6c0f5a8725e9411 Mon Sep 17 00:00:00 2001 From: Albert Chaulk Date: Tue, 22 Nov 2016 13:52:43 -0500 Subject: VR: Add API to plumb surface type and owner through to SurfaceFlinger This is a cherry-pick of https://googleplex-android-review.git.corp.google.com/c/1648886/ Test: None Bug: None Change-Id: I338c84c2576ab85fa4f6d8e759c9e7ce912cdd61 --- libs/gui/SurfaceComposerClient.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libs/gui/SurfaceComposerClient.cpp') diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 58b2a8737a..3346a83f3a 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -149,6 +149,8 @@ public: uint32_t w, uint32_t h); status_t setLayer(const sp& client, const sp& id, uint32_t z); + status_t setLayerInfo(const sp& client, const sp& id, + uint32_t type, uint32_t appid); status_t setFlags(const sp& client, const sp& id, uint32_t flags, uint32_t mask); status_t setTransparentRegionHint( @@ -335,6 +337,18 @@ status_t Composer::setLayer(const sp& client, return NO_ERROR; } +status_t Composer::setLayerInfo(const sp& client, + const sp& id, uint32_t type, uint32_t appid) { + Mutex::Autolock _l(mLock); + layer_state_t* s = getLayerStateLocked(client, id); + if (!s) + return BAD_INDEX; + s->what |= layer_state_t::eLayerInfoChanged; + s->type = type; + s->appid = appid; + return NO_ERROR; +} + status_t Composer::setFlags(const sp& client, const sp& id, uint32_t flags, uint32_t mask) { @@ -704,6 +718,10 @@ status_t SurfaceComposerClient::setLayer(const sp& id, uint32_t z) { return getComposer().setLayer(this, id, z); } +status_t SurfaceComposerClient::setLayerInfo(const sp& id, uint32_t type, uint32_t appid) { + return getComposer().setLayerInfo(this, id, type, appid); +} + status_t SurfaceComposerClient::hide(const sp& id) { return getComposer().setFlags(this, id, layer_state_t::eLayerHidden, -- cgit v1.2.3-59-g8ed1b