aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-01-04 16:02:55 +0200
committerRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-01-12 11:27:07 +0200
commit3627bebf7b119d2f71a8abbcf55fdc633de7d327 (patch)
tree09ed658e9191717b034ff9ebae352b1ebd3bf381 /backend
parent03fd35cdfab014e8f833fdea7ac4e38da0e9c67e (diff)
downloaddrm_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.cpp9
-rw-r--r--backend/Backend.h9
-rw-r--r--backend/BackendClient.cpp4
-rw-r--r--backend/BackendClient.h3
-rw-r--r--backend/BackendManager.cpp2
-rw-r--r--backend/BackendManager.h6
-rw-r--r--backend/BackendRCarDu.cpp3
-rw-r--r--backend/BackendRCarDu.h2
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