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;
};