[HWUI] Get DeviceInfo through stable ABI

This also removes the dependency on ui/DeviceInfo other than in test
code.

Bug: 136263392
Bug: 136263238
Test: builds, boots
Change-Id: I6a4687e981359f0e6beb83be8a5501ed7fd16f15
diff --git a/libs/hwui/DeviceInfo.h b/libs/hwui/DeviceInfo.h
index 0e3f119..3431583 100644
--- a/libs/hwui/DeviceInfo.h
+++ b/libs/hwui/DeviceInfo.h
@@ -16,8 +16,8 @@
 #ifndef DEVICEINFO_H
 #define DEVICEINFO_H
 
+#include <apex/display.h>
 #include <SkImageInfo.h>
-#include <ui/DisplayInfo.h>
 
 #include "utils/Macros.h"
 
@@ -33,28 +33,44 @@
 
 public:
     static DeviceInfo* get();
+    static float getMaxRefreshRate() { return get()->mMaxRefreshRate; }
+    static int32_t getWidth() { return get()->mWidth; }
+    static int32_t getHeight() { return get()->mHeight; }
+    static float getDensity() { return get()->mDensity; }
+    static float getRefreshRate() { return get()->mRefreshRate; }
+    static int64_t getCompositorOffset() { return get()->mCompositorOffset; }
+    static int64_t getAppOffset() { return get()->mAppOffset; }
 
     // this value is only valid after the GPU has been initialized and there is a valid graphics
     // context or if you are using the HWUI_NULL_GPU
     int maxTextureSize() const;
-    const DisplayInfo& displayInfo() const { return mDisplayInfo; }
     sk_sp<SkColorSpace> getWideColorSpace() const { return mWideColorSpace; }
     SkColorType getWideColorType() const { return mWideColorType; }
-    float getMaxRefreshRate() const { return mMaxRefreshRate; }
 
     void onDisplayConfigChanged();
 
 private:
     friend class renderthread::RenderThread;
     static void setMaxTextureSize(int maxTextureSize);
+    void updateDisplayInfo();
 
     DeviceInfo();
+    ~DeviceInfo();
 
     int mMaxTextureSize;
-    DisplayInfo mDisplayInfo;
     sk_sp<SkColorSpace> mWideColorSpace;
     SkColorType mWideColorType;
-    const float mMaxRefreshRate;
+    ADisplayConfig* mCurrentConfig = nullptr;
+    ADisplay** mDisplays = nullptr;
+    int mDisplaysSize = 0;
+    int mPhysicalDisplayIndex = -1;
+    float mMaxRefreshRate = 60.0;
+    int32_t mWidth = 1080;
+    int32_t mHeight = 1920;
+    float mDensity = 2.0;
+    float mRefreshRate = 60.0;
+    int64_t mCompositorOffset = 0;
+    int64_t mAppOffset = 0;
 };
 
 } /* namespace uirenderer */