diff options
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-01-04 16:02:55 +0200 |
---|---|---|
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-01-12 11:27:07 +0200 |
commit | 3627bebf7b119d2f71a8abbcf55fdc633de7d327 (patch) | |
tree | 09ed658e9191717b034ff9ebae352b1ebd3bf381 /backend | |
parent | 03fd35cdfab014e8f833fdea7ac4e38da0e9c67e (diff) | |
download | drm_hwcomposer-3627bebf7b119d2f71a8abbcf55fdc633de7d327.tar.gz |
drm_hwcomposer: Move HwcDisplay out of DrmHwcTwo class
Reduces code complexity.
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/35
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Diffstat (limited to 'backend')
-rw-r--r-- | backend/Backend.cpp | 9 | ||||
-rw-r--r-- | backend/Backend.h | 9 | ||||
-rw-r--r-- | backend/BackendClient.cpp | 4 | ||||
-rw-r--r-- | backend/BackendClient.h | 3 | ||||
-rw-r--r-- | backend/BackendManager.cpp | 2 | ||||
-rw-r--r-- | backend/BackendManager.h | 6 | ||||
-rw-r--r-- | backend/BackendRCarDu.cpp | 3 | ||||
-rw-r--r-- | backend/BackendRCarDu.h | 2 |
8 files changed, 17 insertions, 21 deletions
diff --git a/backend/Backend.cpp b/backend/Backend.cpp index 7f87b05..98862ba 100644 --- a/backend/Backend.cpp +++ b/backend/Backend.cpp @@ -23,8 +23,7 @@ namespace android { -HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display, - uint32_t *num_types, +HWC2::Error Backend::ValidateDisplay(HwcDisplay *display, uint32_t *num_types, uint32_t *num_requests) { *num_types = 0; *num_requests = 0; @@ -67,7 +66,7 @@ HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display, } std::tuple<int, size_t> Backend::GetClientLayers( - DrmHwcTwo::HwcDisplay *display, const std::vector<HwcLayer *> &layers) { + HwcDisplay *display, const std::vector<HwcLayer *> &layers) { int client_start = -1; size_t client_size = 0; @@ -82,7 +81,7 @@ std::tuple<int, size_t> Backend::GetClientLayers( return GetExtraClientRange(display, layers, client_start, client_size); } -bool Backend::IsClientLayer(DrmHwcTwo::HwcDisplay *display, HwcLayer *layer) { +bool Backend::IsClientLayer(HwcDisplay *display, HwcLayer *layer) { return !HardwareSupportsLayerType(layer->GetSfType()) || !BufferInfoGetter::GetInstance()->IsHandleUsable(layer->GetBuffer()) || display->color_transform_hint() != HAL_COLOR_TRANSFORM_IDENTITY || @@ -118,7 +117,7 @@ void Backend::MarkValidated(std::vector<HwcLayer *> &layers, } std::tuple<int, int> Backend::GetExtraClientRange( - DrmHwcTwo::HwcDisplay *display, const std::vector<HwcLayer *> &layers, + HwcDisplay *display, const std::vector<HwcLayer *> &layers, int client_start, size_t client_size) { size_t avail_planes = display->primary_planes().size() + display->overlay_planes().size(); diff --git a/backend/Backend.h b/backend/Backend.h index 0273570..1a4833e 100644 --- a/backend/Backend.h +++ b/backend/Backend.h @@ -24,12 +24,11 @@ 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, size_t> GetClientLayers( - DrmHwcTwo::HwcDisplay *display, const std::vector<HwcLayer *> &layers); - virtual bool IsClientLayer(DrmHwcTwo::HwcDisplay *display, HwcLayer *layer); + HwcDisplay *display, const std::vector<HwcLayer *> &layers); + virtual bool IsClientLayer(HwcDisplay *display, HwcLayer *layer); protected: static bool HardwareSupportsLayerType(HWC2::Composition comp_type); @@ -38,7 +37,7 @@ class Backend { static void MarkValidated(std::vector<HwcLayer *> &layers, size_t client_first_z, size_t client_size); static std::tuple<int, int> GetExtraClientRange( - DrmHwcTwo::HwcDisplay *display, const std::vector<HwcLayer *> &layers, + HwcDisplay *display, const std::vector<HwcLayer *> &layers, int client_start, size_t client_size); }; } // namespace android diff --git a/backend/BackendClient.cpp b/backend/BackendClient.cpp index 73a3b3d..606dca2 100644 --- a/backend/BackendClient.cpp +++ b/backend/BackendClient.cpp @@ -20,10 +20,10 @@ namespace android { -HWC2::Error BackendClient::ValidateDisplay(DrmHwcTwo::HwcDisplay *display, +HWC2::Error BackendClient::ValidateDisplay(HwcDisplay *display, uint32_t *num_types, uint32_t * /*num_requests*/) { - for (auto & [ layer_handle, layer ] : display->layers()) { + for (auto &[layer_handle, layer] : display->layers()) { layer.SetValidatedType(HWC2::Composition::Client); ++*num_types; } diff --git a/backend/BackendClient.h b/backend/BackendClient.h index 13543f1..95abb0f 100644 --- a/backend/BackendClient.h +++ b/backend/BackendClient.h @@ -23,8 +23,7 @@ namespace android { class BackendClient : public Backend { public: - HWC2::Error ValidateDisplay(DrmHwcTwo::HwcDisplay *display, - uint32_t *num_types, + HWC2::Error ValidateDisplay(HwcDisplay *display, uint32_t *num_types, uint32_t *num_requests) override; }; } // namespace android diff --git a/backend/BackendManager.cpp b/backend/BackendManager.cpp index 0577e2f..aadef36 100644 --- a/backend/BackendManager.cpp +++ b/backend/BackendManager.cpp @@ -41,7 +41,7 @@ int BackendManager::RegisterBackend(const std::string &name, return 0; } -int BackendManager::SetBackendForDisplay(DrmHwcTwo::HwcDisplay *display) { +int BackendManager::SetBackendForDisplay(HwcDisplay *display) { std::string driver_name(display->drm()->GetName()); char backend_override[PROPERTY_VALUE_MAX]; property_get("vendor.hwc.backend_override", backend_override, diff --git a/backend/BackendManager.h b/backend/BackendManager.h index 274484c..751cb78 100644 --- a/backend/BackendManager.h +++ b/backend/BackendManager.h @@ -41,10 +41,10 @@ class BackendManager { static BackendManager &GetInstance(); int RegisterBackend(const std::string &name, BackendConstructorT backend_constructor); - int SetBackendForDisplay(DrmHwcTwo::HwcDisplay *display); + int SetBackendForDisplay(HwcDisplay *display); std::unique_ptr<Backend> GetBackendByName(std::string &name); - HWC2::Error ValidateDisplay(DrmHwcTwo::HwcDisplay *display, - uint32_t *num_types, uint32_t *num_requests); + HWC2::Error ValidateDisplay(HwcDisplay *display, uint32_t *num_types, + uint32_t *num_requests); private: BackendManager() = default; diff --git a/backend/BackendRCarDu.cpp b/backend/BackendRCarDu.cpp index b319d89..0750ee4 100644 --- a/backend/BackendRCarDu.cpp +++ b/backend/BackendRCarDu.cpp @@ -22,8 +22,7 @@ namespace android { -bool BackendRCarDu::IsClientLayer(DrmHwcTwo::HwcDisplay *display, - HwcLayer *layer) { +bool BackendRCarDu::IsClientLayer(HwcDisplay *display, HwcLayer *layer) { hwc_drm_bo_t bo; int ret = BufferInfoGetter::GetInstance()->ConvertBoInfo(layer->GetBuffer(), diff --git a/backend/BackendRCarDu.h b/backend/BackendRCarDu.h index 862bef2..1259c9f 100644 --- a/backend/BackendRCarDu.h +++ b/backend/BackendRCarDu.h @@ -23,7 +23,7 @@ namespace android { class BackendRCarDu : public Backend { public: - bool IsClientLayer(DrmHwcTwo::HwcDisplay *display, HwcLayer *layer) override; + bool IsClientLayer(HwcDisplay *display, HwcLayer *layer) override; }; } // namespace android |