Refactor how layer metadata for use by VR is propagated
from WindowManager based on feedback in frameworks/base.
Since windowType and ownerUid are immutable, they are sent
on creation instead of separate IPC.
Bug: 30984984
Test: built locally
Change-Id: I380b3cdcf6aec471fc23f1e27846ab80492e8add
diff --git a/include/gui/ISurfaceComposerClient.h b/include/gui/ISurfaceComposerClient.h
index 0a4d35d..1f4387d 100644
--- a/include/gui/ISurfaceComposerClient.h
+++ b/include/gui/ISurfaceComposerClient.h
@@ -60,7 +60,7 @@
virtual status_t createSurface(
const String8& name, uint32_t w, uint32_t h,
PixelFormat format, uint32_t flags,
- const sp<IBinder>& parent,
+ const sp<IBinder>& parent, uint32_t windowType, uint32_t ownerUid,
sp<IBinder>* handle,
sp<IGraphicBufferProducer>* gbp) = 0;
diff --git a/include/gui/SurfaceComposerClient.h b/include/gui/SurfaceComposerClient.h
index f537020..8302160 100644
--- a/include/gui/SurfaceComposerClient.h
+++ b/include/gui/SurfaceComposerClient.h
@@ -106,8 +106,10 @@
uint32_t w, // width in pixel
uint32_t h, // height in pixel
PixelFormat format, // pixel-format desired
- uint32_t flags = 0, // usage flags
- SurfaceControl* parent = nullptr // parent
+ uint32_t flags = 0, // usage flags
+ SurfaceControl* parent = nullptr, // parent
+ uint32_t windowType = 0, // from WindowManager.java (STATUS_BAR, INPUT_METHOD, etc.)
+ uint32_t ownerUid = 0 // UID of the task
);
//! Create a virtual display
@@ -145,7 +147,6 @@
status_t setFlags(const sp<IBinder>& id, uint32_t flags, uint32_t mask);
status_t setTransparentRegionHint(const sp<IBinder>& id, const Region& transparent);
status_t setLayer(const sp<IBinder>& id, int32_t layer);
- status_t setLayerInfo(const sp<IBinder>& id, uint32_t type, uint32_t appid);
status_t setAlpha(const sp<IBinder>& id, float alpha=1.0f);
status_t setMatrix(const sp<IBinder>& id, float dsdx, float dtdx, float dsdy, float dtdy);
status_t setPosition(const sp<IBinder>& id, float x, float y);
diff --git a/include/gui/SurfaceControl.h b/include/gui/SurfaceControl.h
index 2dcbfa7..54c8fa9 100644
--- a/include/gui/SurfaceControl.h
+++ b/include/gui/SurfaceControl.h
@@ -62,7 +62,6 @@
status_t setLayerStack(uint32_t layerStack);
status_t setLayer(int32_t layer);
- status_t setLayerInfo(uint32_t type, uint32_t appid);
status_t setPosition(float x, float y);
status_t setSize(uint32_t w, uint32_t h);
status_t hide();
diff --git a/include/private/gui/LayerState.h b/include/private/gui/LayerState.h
index aac76d2..2a1801b 100644
--- a/include/private/gui/LayerState.h
+++ b/include/private/gui/LayerState.h
@@ -56,8 +56,7 @@
eFinalCropChanged = 0x00000400,
eOverrideScalingModeChanged = 0x00000800,
eGeometryAppliesWithResize = 0x00001000,
- eLayerInfoChanged = 0x00002000,
- eReparentChildren = 0x00004000,
+ eReparentChildren = 0x00002000,
};
layer_state_t()
@@ -66,7 +65,7 @@
alpha(0), flags(0), mask(0),
reserved(0), crop(Rect::INVALID_RECT),
finalCrop(Rect::INVALID_RECT), frameNumber(0),
- overrideScalingMode(-1), type(0), appid(0)
+ overrideScalingMode(-1)
{
matrix.dsdx = matrix.dtdy = 1.0f;
matrix.dsdy = matrix.dtdx = 0.0f;
@@ -100,8 +99,6 @@
sp<IBinder> reparentHandle;
uint64_t frameNumber;
int32_t overrideScalingMode;
- uint32_t type;
- uint32_t appid;
// non POD must be last. see write/read
Region transparentRegion;
};