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/hwc2_device/HwcDisplay.h b/hwc2_device/HwcDisplay.h
index 3e8a548..b73404a 100644
--- a/hwc2_device/HwcDisplay.h
+++ b/hwc2_device/HwcDisplay.h
@@ -37,10 +37,10 @@
class HwcDisplay {
public:
- HwcDisplay(ResourceManager *resource_manager, DrmDevice *drm,
+ HwcDisplay(ResourceManager *resource_manager, DrmDisplayPipeline *pipeline,
hwc2_display_t handle, HWC2::DisplayType type, DrmHwcTwo *hwc2);
HwcDisplay(const HwcDisplay &) = delete;
- HWC2::Error Init(std::vector<DrmPlane *> *planes);
+ HWC2::Error Init();
HWC2::Error CreateComposition(AtomicCommitArgs &a_args);
std::vector<HwcLayer *> GetOrderLayersByZPos();
@@ -144,28 +144,12 @@
const Backend *backend() const;
void set_backend(std::unique_ptr<Backend> backend);
- const std::vector<DrmPlane *> &primary_planes() const {
- return primary_planes_;
- }
-
- const std::vector<DrmPlane *> &overlay_planes() const {
- return overlay_planes_;
- }
-
std::map<hwc2_layer_t, HwcLayer> &layers() {
return layers_;
}
- const DrmDisplayCompositor &compositor() const {
- return compositor_;
- }
-
- const DrmDevice *drm() const {
- return drm_;
- }
-
- const DrmConnector *connector() const {
- return connector_;
+ auto &GetPipe() {
+ return *pipeline_;
}
ResourceManager *resource_manager() const {
@@ -209,7 +193,8 @@
* https://source.android.com/devices/graphics/hotplug#handling-common-scenarios
*/
bool IsInHeadlessMode() {
- return handle_ == kPrimaryDisplay && !connector_->IsConnected();
+ return handle_ == kPrimaryDisplay &&
+ !GetPipe().connector->Get()->IsConnected();
}
private:
@@ -233,17 +218,12 @@
std::optional<DrmMode> staged_mode;
ResourceManager *resource_manager_;
- DrmDevice *drm_;
- DrmDisplayCompositor compositor_;
- std::vector<DrmPlane *> primary_planes_;
- std::vector<DrmPlane *> overlay_planes_;
+ DrmDisplayPipeline *const pipeline_;
std::unique_ptr<Backend> backend_;
VSyncWorker vsync_worker_;
- DrmConnector *connector_ = nullptr;
- DrmCrtc *crtc_ = nullptr;
hwc2_display_t handle_;
HWC2::DisplayType type_;
uint32_t layer_idx_ = 0;