SF: Abstract out buffer queue creation
Modifies SurfaceFlinger so that the type of the buffer queue
producer/consumer pair produced for framebuffers can be changed at
runtime.
Test: Builds
Bug: None
Change-Id: If108059c43e5c0d03de9645966d9b8eca2b9ed16
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 08c4a5e..37024ae 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -87,6 +87,8 @@
class DisplayEventConnection;
class EventControlThread;
class EventThread;
+class IGraphicBufferConsumer;
+class IGraphicBufferProducer;
class InjectVSyncSource;
class Layer;
class Surface;
@@ -822,6 +824,12 @@
float mSaturation = 1.0f;
bool mForceNativeColorMode = false;
+ using CreateBufferQueueFunction =
+ std::function<void(sp<IGraphicBufferProducer>* /* outProducer */,
+ sp<IGraphicBufferConsumer>* /* outConsumer */,
+ bool /* consumerIsSurfaceFlinger */)>;
+ CreateBufferQueueFunction mCreateBufferQueue;
+
SurfaceFlingerBE mBE;
};
}; // namespace android