From: Pablo Ceballos Date: Fri, 23 Oct 2015 19:10:13 +0000 (-0700) Subject: SF: Connect the VDS scratch surface producer X-Git-Tag: android-x86-7.1-r1~774^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f133d003aaac80a0932a2d8f9efd8493e56f7814;p=android-x86%2Fframeworks-native.git SF: Connect the VDS scratch surface producer - VirtualDisplaySurface has a BufferQueue for producing scratch buffers when doing mixed composition for a virtual display. - Connect/disconnect the producer end of this BufferQueue in the VirtualDisplaySurface constructor/destructor to avoid using it in a disconnected state. Bug 24733179 Change-Id: I87dab9ff4f46d422b7796670b0b4d17b7fd09165 --- diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp index 48971bc2d0..571b904545 100644 --- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp +++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp @@ -19,6 +19,7 @@ #include "HWComposer.h" #include +#include // --------------------------------------------------------------------------- namespace android { @@ -93,9 +94,12 @@ VirtualDisplaySurface::VirtualDisplaySurface(HWComposer& hwc, int32_t dispId, mConsumer->setConsumerUsageBits(GRALLOC_USAGE_HW_COMPOSER); mConsumer->setDefaultBufferSize(sinkWidth, sinkHeight); sink->setAsyncMode(true); + IGraphicBufferProducer::QueueBufferOutput output; + mSource[SOURCE_SCRATCH]->connect(NULL, NATIVE_WINDOW_API_EGL, false, &output); } VirtualDisplaySurface::~VirtualDisplaySurface() { + mSource[SOURCE_SCRATCH]->disconnect(NATIVE_WINDOW_API_EGL); } status_t VirtualDisplaySurface::beginFrame(bool mustRecompose) {