Break a dependency of libui on libandroid
This was only a header dependency, but it still
created a circular dependency, which will cause
problems in another CL.
We fix this by creating a libarect static library
containing only that header. both libui and
libandroid now depend on it and reexport the
header.
We also make sure rect.h ends-up in the right
place.
Test: built and booted device
Bug: 35164655
Change-Id: Iba25b8b801b26b26ec1401c00caf367a06f197ca
diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk
index 9e81a8c..ec47c8a 100644
--- a/services/surfaceflinger/Android.mk
+++ b/services/surfaceflinger/Android.mk
@@ -206,6 +206,7 @@
liblog \
libbinder \
libutils \
+ libui \
libdl
LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
diff --git a/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp b/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
index d3d0d51..ae6e0cc 100644
--- a/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
@@ -27,15 +27,16 @@
#include <utils/String8.h>
#include <log/log.h>
-#include <ui/Rect.h>
-
#include <EGL/egl.h>
#include <hardware/hardware.h>
#include <gui/BufferItem.h>
+#include <gui/BufferQueue.h>
#include <gui/GraphicBufferAlloc.h>
#include <gui/Surface.h>
+
#include <ui/GraphicBuffer.h>
+#include <ui/Rect.h>
#include "FramebufferSurface.h"
#include "HWComposer.h"
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
index 5f3c388..c5a4f99 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
@@ -19,6 +19,7 @@
#include "HWComposer.h"
#include <gui/BufferItem.h>
+#include <gui/BufferQueue.h>
#include <gui/IProducerListener.h>
// ---------------------------------------------------------------------------
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
index 2636667..fb5fcc8 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
@@ -179,7 +179,7 @@
// slot. Both mProducerSlotSource and mProducerBuffers are indexed by a
// "producer slot"; see the mapSlot*() functions.
uint64_t mProducerSlotSource;
- sp<GraphicBuffer> mProducerBuffers[BufferQueue::NUM_BUFFER_SLOTS];
+ sp<GraphicBuffer> mProducerBuffers[BufferQueueDefs::NUM_BUFFER_SLOTS];
// The QueueBufferOutput with the latest info from the sink, and with the
// transform hint cleared. Since we defer queueBuffer from the GLES driver
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 0eef708..9afc608 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -38,6 +38,7 @@
#include <ui/PixelFormat.h>
#include <gui/BufferItem.h>
+#include <gui/BufferQueue.h>
#include <gui/Surface.h>
#include "clz.h"
@@ -76,6 +77,7 @@
mPendingStates(),
mQueuedFrames(0),
mSidebandStreamChanged(false),
+ mActiveBufferSlot(BufferQueue::INVALID_BUFFER_SLOT),
mCurrentTransform(0),
mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
mOverrideScalingMode(-1),
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 8227dae..bc7e394 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -657,7 +657,7 @@
FenceTimeline mReleaseTimeline;
// main thread
- int mActiveBufferSlot = BufferQueue::INVALID_BUFFER_SLOT;
+ int mActiveBufferSlot;
sp<GraphicBuffer> mActiveBuffer;
sp<NativeHandle> mSidebandStream;
Rect mCurrentCrop;
diff --git a/services/surfaceflinger/LayerRejecter.cpp b/services/surfaceflinger/LayerRejecter.cpp
index 2bc0605..5ca7d39 100644
--- a/services/surfaceflinger/LayerRejecter.cpp
+++ b/services/surfaceflinger/LayerRejecter.cpp
@@ -16,6 +16,8 @@
#include "LayerRejecter.h"
+#include <gui/BufferItem.h>
+
#include "clz.h"
#define DEBUG_RESIZE 0
@@ -123,4 +125,4 @@
return false;
}
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.cpp b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
index 942af13..b3346b4 100644
--- a/services/surfaceflinger/SurfaceFlingerConsumer.cpp
+++ b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
@@ -23,6 +23,7 @@
#include <private/gui/SyncFeatures.h>
#include <gui/BufferItem.h>
+#include <gui/BufferQueue.h>
#include <utils/Errors.h>
#include <utils/NativeHandle.h>
diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.h b/services/surfaceflinger/SurfaceFlingerConsumer.h
index 7713ed2..9b8de08 100644
--- a/services/surfaceflinger/SurfaceFlingerConsumer.h
+++ b/services/surfaceflinger/SurfaceFlingerConsumer.h
@@ -18,6 +18,8 @@
#define ANDROID_SURFACEFLINGERCONSUMER_H
#include "DispSync.h"
+
+#include <ui/Region.h>
#include <gui/GLConsumer.h>
namespace android {