drm_hwcomposer: Initialize HwcDisplay using DrmDisplayPIpeline
HwcDisplay can now take all necessary objects from DrmDisplayPipeline.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/drm/DrmDisplayPipeline.cpp b/drm/DrmDisplayPipeline.cpp
index 69d28b3..0ce1afc 100644
--- a/drm/DrmDisplayPipeline.cpp
+++ b/drm/DrmDisplayPipeline.cpp
@@ -25,6 +25,7 @@
#include "DrmPlane.h"
#include "compositor/DrmDisplayCompositor.h"
#include "utils/log.h"
+#include "utils/properties.h"
namespace android {
@@ -97,9 +98,13 @@
return {};
}
- bool use_overlay_planes = true; // TODO(rsglobal): restore
- // strtol(use_overlay_planes_prop, nullptr,
- // 10);
+ char use_overlay_planes_prop[PROPERTY_VALUE_MAX];
+ property_get("vendor.hwc.drm.use_overlay_planes", use_overlay_planes_prop,
+ "1");
+ constexpr int kStrtolBase = 10;
+ bool use_overlay_planes = strtol(use_overlay_planes_prop, nullptr,
+ kStrtolBase) != 0;
+
if (use_overlay_planes) {
for (auto *plane : overlay_planes) {
auto op = plane->BindPipeline(pipe.get());
@@ -109,6 +114,8 @@
}
}
+ pipe->compositor = std::make_unique<DrmDisplayCompositor>(pipe.get());
+
return pipe;
}