diff options
Diffstat (limited to 'backend/Backend.h')
-rw-r--r-- | backend/Backend.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/backend/Backend.h b/backend/Backend.h index 898fece..82b8fca 100644 --- a/backend/Backend.h +++ b/backend/Backend.h @@ -17,21 +17,28 @@ #ifndef ANDROID_BACKEND_H #define ANDROID_BACKEND_H -#include "DrmHwcTwo.h" +#include "hwc2_device/DrmHwcTwo.h" namespace android { class Backend { public: virtual ~Backend() = default; - virtual HWC2::Error ValidateDisplay(DrmHwcTwo::HwcDisplay *display, - uint32_t *num_types, + virtual HWC2::Error ValidateDisplay(HwcDisplay *display, uint32_t *num_types, uint32_t *num_requests); - virtual std::tuple<int, int> GetClientLayers( - DrmHwcTwo::HwcDisplay *display, - const std::map<uint32_t, DrmHwcTwo::HwcLayer *> &z_map); - virtual bool IsClientLayer(DrmHwcTwo::HwcDisplay *display, - DrmHwcTwo::HwcLayer *layer); + virtual std::tuple<int, size_t> GetClientLayers( + HwcDisplay *display, const std::vector<HwcLayer *> &layers); + virtual bool IsClientLayer(HwcDisplay *display, HwcLayer *layer); + + protected: + static bool HardwareSupportsLayerType(HWC2::Composition comp_type); + static uint32_t CalcPixOps(const std::vector<HwcLayer *> &layers, + size_t first_z, size_t size); + static void MarkValidated(std::vector<HwcLayer *> &layers, + size_t client_first_z, size_t client_size); + static std::tuple<int, int> GetExtraClientRange( + HwcDisplay *display, const std::vector<HwcLayer *> &layers, + int client_start, size_t client_size); }; } // namespace android |