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/include/gui/BufferItemConsumer.h b/include/gui/BufferItemConsumer.h
index 56c7a3f..ec77ec7 100644
--- a/include/gui/BufferItemConsumer.h
+++ b/include/gui/BufferItemConsumer.h
@@ -18,18 +18,13 @@
#define ANDROID_GUI_BUFFERITEMCONSUMER_H
#include <gui/ConsumerBase.h>
-
-#include <ui/GraphicBuffer.h>
-
-#include <utils/String8.h>
-#include <utils/Vector.h>
-#include <utils/threads.h>
+#include <gui/BufferQueue.h>
#define ANDROID_GRAPHICS_BUFFERITEMCONSUMER_JNI_ID "mBufferItemConsumer"
namespace android {
-class BufferQueue;
+class String8;
/**
* BufferItemConsumer is a BufferQueue consumer endpoint that allows clients
diff --git a/include/gui/ConsumerBase.h b/include/gui/ConsumerBase.h
index ce85fc3..7912528 100644
--- a/include/gui/ConsumerBase.h
+++ b/include/gui/ConsumerBase.h
@@ -17,19 +17,23 @@
#ifndef ANDROID_GUI_CONSUMERBASE_H
#define ANDROID_GUI_CONSUMERBASE_H
-#include <gui/BufferQueue.h>
+#include <gui/BufferQueueDefs.h>
+#include <gui/IConsumerListener.h>
+#include <gui/IGraphicBufferConsumer.h>
+#include <gui/OccupancyTracker.h>
-#include <ui/GraphicBuffer.h>
+#include <ui/PixelFormat.h>
#include <utils/String8.h>
#include <utils/Vector.h>
#include <utils/threads.h>
-#include <gui/IConsumerListener.h>
+
namespace android {
// ----------------------------------------------------------------------------
class String8;
+class GraphicBuffer;
// ConsumerBase is a base class for BufferQueue consumer end-points. It
// handles common tasks like management of the connection to the BufferQueue
@@ -222,7 +226,7 @@
// slot that has not yet been used. The buffer allocated to a slot will also
// be replaced if the requested buffer usage or geometry differs from that
// of the buffer allocated to a slot.
- Slot mSlots[BufferQueue::NUM_BUFFER_SLOTS];
+ Slot mSlots[BufferQueueDefs::NUM_BUFFER_SLOTS];
// mAbandoned indicates that the BufferQueue will no longer be used to
// consume images buffers pushed to it using the IGraphicBufferProducer
diff --git a/include/gui/CpuConsumer.h b/include/gui/CpuConsumer.h
index b7aa463..58602bf 100644
--- a/include/gui/CpuConsumer.h
+++ b/include/gui/CpuConsumer.h
@@ -17,18 +17,19 @@
#ifndef ANDROID_GUI_CPUCONSUMER_H
#define ANDROID_GUI_CPUCONSUMER_H
+#include <system/window.h>
+
#include <gui/ConsumerBase.h>
+#include <gui/BufferQueue.h>
-#include <ui/GraphicBuffer.h>
-
-#include <utils/String8.h>
#include <utils/Vector.h>
-#include <utils/threads.h>
namespace android {
class BufferQueue;
+class GraphicBuffer;
+class String8;
/**
* CpuConsumer is a BufferQueue consumer endpoint that allows direct CPU
diff --git a/include/gui/GLConsumer.h b/include/gui/GLConsumer.h
index 4a49f53..51d7666 100644
--- a/include/gui/GLConsumer.h
+++ b/include/gui/GLConsumer.h
@@ -20,8 +20,7 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
-#include <gui/IGraphicBufferProducer.h>
-#include <gui/BufferQueue.h>
+#include <gui/BufferQueueDefs.h>
#include <gui/ConsumerBase.h>
#include <ui/GraphicBuffer.h>
@@ -489,7 +488,7 @@
// slot that has not yet been used. The buffer allocated to a slot will also
// be replaced if the requested buffer usage or geometry differs from that
// of the buffer allocated to a slot.
- EglSlot mEglSlots[BufferQueue::NUM_BUFFER_SLOTS];
+ EglSlot mEglSlots[BufferQueueDefs::NUM_BUFFER_SLOTS];
// mCurrentTexture is the buffer slot index of the buffer that is currently
// bound to the OpenGL texture. It is initialized to INVALID_BUFFER_SLOT,
diff --git a/include/gui/IGraphicBufferConsumer.h b/include/gui/IGraphicBufferConsumer.h
index dcddca4..60b7d24 100644
--- a/include/gui/IGraphicBufferConsumer.h
+++ b/include/gui/IGraphicBufferConsumer.h
@@ -25,8 +25,9 @@
#include <utils/Timers.h>
#include <binder/IInterface.h>
+
#include <ui/PixelFormat.h>
-#include <ui/Rect.h>
+
#include <gui/OccupancyTracker.h>
#include <EGL/egl.h>