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/ui/GraphicBuffer.h b/libs/hostgraphics/ui/GraphicBuffer.h
index ac88e44..eec9b23 100644
--- a/libs/hostgraphics/ui/GraphicBuffer.h
+++ b/libs/hostgraphics/ui/GraphicBuffer.h
@@ -22,24 +22,27 @@
 
 #include <vector>
 
+#include <ui/ANativeObjectBase.h>
 #include <ui/PixelFormat.h>
 #include <ui/Rect.h>
-
 #include <utils/RefBase.h>
 
 namespace android {
 
-class GraphicBuffer : virtual public RefBase {
+class GraphicBuffer : public ANativeObjectBase<ANativeWindowBuffer, GraphicBuffer, RefBase> {
 public:
-    GraphicBuffer(uint32_t w, uint32_t h):width(w),height(h) {
+    GraphicBuffer(uint32_t w, uint32_t h) {
         data.resize(w*h);
+        reserved[0] = data.data();
+        width = w;
+        height = h;
     }
     uint32_t getWidth() const           { return static_cast<uint32_t>(width); }
     uint32_t getHeight() const          { return static_cast<uint32_t>(height); }
     uint32_t getStride() const          { return static_cast<uint32_t>(width); }
     uint64_t getUsage() const           { return 0; }
     PixelFormat getPixelFormat() const  { return PIXEL_FORMAT_RGBA_8888; }
-    //uint32_t getLayerCount() const      { return static_cast<uint32_t>(layerCount); }
+
     Rect getBounds() const              { return Rect(width, height); }
 
     status_t lockAsyncYCbCr(uint32_t inUsage, const Rect& rect,
@@ -54,8 +57,6 @@
     status_t unlockAsync(int *fenceFd) { return OK; }
 
 private:
-    uint32_t width;
-    uint32_t height;
     std::vector<uint32_t> data;
 };