diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 3677c2e09d..e3a3ff45fa 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -44,6 +44,7 @@ #include <gui/GuiConfig.h> #include <gui/IDisplayEventConnection.h> #include <gui/Surface.h> +#include <gui/GraphicBufferAlloc.h> #include <ui/GraphicBufferAllocator.h> #include <ui/PixelFormat.h> @@ -325,6 +326,12 @@ sp<IBinder> SurfaceFlinger::getBuiltInDisplay(int32_t id) { return mBuiltinDisplays[id]; } +sp<IGraphicBufferAlloc> SurfaceFlinger::createGraphicBufferAlloc() +{ + sp<GraphicBufferAlloc> gba(new GraphicBufferAlloc()); + return gba; +} + void SurfaceFlinger::bootFinished() { if (mStartBootAnimThread->join() != NO_ERROR) { @@ -1130,7 +1137,8 @@ void SurfaceFlinger::onHotplugReceived(int32_t disp, bool connected) { sp<IGraphicBufferProducer> producer; sp<IGraphicBufferConsumer> consumer; - BufferQueue::createBufferQueue(&producer, &consumer); + BufferQueue::createBufferQueue(&producer, &consumer, + new GraphicBufferAlloc()); sp<FramebufferSurface> fbs = new FramebufferSurface(*mHwc, DisplayDevice::DISPLAY_PRIMARY, consumer); @@ -1891,7 +1899,8 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) sp<IGraphicBufferProducer> producer; sp<IGraphicBufferProducer> bqProducer; sp<IGraphicBufferConsumer> bqConsumer; - BufferQueue::createBufferQueue(&bqProducer, &bqConsumer); + BufferQueue::createBufferQueue(&bqProducer, &bqConsumer, + new GraphicBufferAlloc()); int32_t hwcId = -1; if (state.isVirtualDisplay()) { |