Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f133d003 authored by Pablo Ceballos's avatar Pablo Ceballos
Browse files

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
parent 4daca51a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include "HWComposer.h"

#include <gui/BufferItem.h>
#include <gui/IProducerListener.h>

// ---------------------------------------------------------------------------
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) {