From 52f95ffc2257015c04f0310c428e66b3cf79dfbf Mon Sep 17 00:00:00 2001 From: Jerome Gaillard Date: Tue, 23 Apr 2024 12:58:59 +0100 Subject: Add missing methods in host version of Surface The version of Surface in libhostgraphics was not complete enough to render on host platforms. Bug: 322360037 Test: build libhwui on host Change-Id: I701dba9ed2eb8d7958082df4d27e03ebdd907d8f --- libs/hostgraphics/HostBufferQueue.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'libs/hostgraphics/HostBufferQueue.cpp') diff --git a/libs/hostgraphics/HostBufferQueue.cpp b/libs/hostgraphics/HostBufferQueue.cpp index ec304378c6c4..b4fd5d9aab3d 100644 --- a/libs/hostgraphics/HostBufferQueue.cpp +++ b/libs/hostgraphics/HostBufferQueue.cpp @@ -16,12 +16,15 @@ #include +#include + namespace android { class HostBufferQueue : public IGraphicBufferProducer, public IGraphicBufferConsumer { public: HostBufferQueue() : mWidth(0), mHeight(0) { } +// Consumer virtual status_t setConsumerIsProtected(bool isProtected) { return OK; } virtual status_t detachBuffer(int slot) { return OK; } @@ -51,6 +54,28 @@ public: virtual status_t setMaxAcquiredBufferCount(int maxAcquiredBuffers) { return OK; } virtual status_t setConsumerUsageBits(uint64_t usage) { return OK; } + +// Producer + virtual int query(int what, int* value) { + switch(what) { + case NATIVE_WINDOW_WIDTH: + *value = mWidth; + break; + case NATIVE_WINDOW_HEIGHT: + *value = mHeight; + break; + default: + *value = 0; + break; + } + return OK; + } + + virtual status_t requestBuffer(int slot, sp* buf) { + *buf = mBuffer; + return OK; + } + private: sp mBuffer; uint32_t mWidth; -- cgit v1.2.3-59-g8ed1b