aboutsummaryrefslogtreecommitdiff
path: root/backend/Backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'backend/Backend.h')
-rw-r--r--backend/Backend.h23
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