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
diff --git a/libs/hostgraphics/HostBufferQueue.cpp b/libs/hostgraphics/HostBufferQueue.cpp
index ec30437..b4fd5d9 100644
--- a/libs/hostgraphics/HostBufferQueue.cpp
+++ b/libs/hostgraphics/HostBufferQueue.cpp
@@ -16,12 +16,15 @@
 
 #include <gui/BufferQueue.h>
 
+#include <system/window.h>
+
 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 @@
     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<GraphicBuffer>* buf) {
+        *buf = mBuffer;
+        return OK;
+    }
+
 private:
     sp<GraphicBuffer> mBuffer;
     uint32_t mWidth;