aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatvii Zorin <matvii.zorin@globallogic.com>2021-01-08 12:55:45 +0200
committerMatvii Zorin <matvii.zorin@globallogic.com>2021-04-06 12:46:22 +0300
commit704ea0e8fb58b68f46e8a1207dec3615514aa4ad (patch)
tree2bffb5dda65c73f263456a553ad9ad71375bfddb
parentd21071f7d5eaa8385fac8eabee73c17d2868775d (diff)
downloaddrm_hwcomposer-704ea0e8fb58b68f46e8a1207dec3615514aa4ad.tar.gz
drm_hwcomposer: Cleanup DrmDisplayComposition initialization
Remove unused members (drm, importer, frame_no). Move initialization from the proper function to the constructor. Signed-off-by: Matvii Zorin <matvii.zorin@globallogic.com>
-rw-r--r--DrmHwcTwo.cpp15
-rw-r--r--compositor/DrmDisplayComposition.cpp13
-rw-r--r--compositor/DrmDisplayComposition.h19
-rw-r--r--compositor/DrmDisplayCompositor.cpp19
-rw-r--r--compositor/DrmDisplayCompositor.h1
5 files changed, 13 insertions, 54 deletions
diff --git a/DrmHwcTwo.cpp b/DrmHwcTwo.cpp
index 056b167..617dddb 100644
--- a/DrmHwcTwo.cpp
+++ b/DrmHwcTwo.cpp
@@ -669,9 +669,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::CreateComposition(bool test) {
map.layers.emplace_back(std::move(layer));
}
- std::unique_ptr<DrmDisplayComposition> composition = compositor_
- .CreateComposition();
- composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
+ auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
+ planner_.get());
// TODO(nobody): Don't always assume geometry changed
int ret = composition->SetLayers(map.layers.data(), map.layers.size(), true);
@@ -748,9 +747,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetActiveConfig(hwc2_config_t config) {
return HWC2::Error::BadConfig;
}
- std::unique_ptr<DrmDisplayComposition> composition = compositor_
- .CreateComposition();
- composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
+ auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
+ planner_.get());
int ret = composition->SetDisplayMode(*mode);
if (ret) {
return HWC2::Error::BadConfig;
@@ -854,9 +852,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetPowerMode(int32_t mode_in) {
return HWC2::Error::BadParameter;
};
- std::unique_ptr<DrmDisplayComposition> composition = compositor_
- .CreateComposition();
- composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
+ auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
+ planner_.get());
composition->SetDpmsMode(dpms_value);
int ret = compositor_.ApplyComposition(std::move(composition));
if (ret) {
diff --git a/compositor/DrmDisplayComposition.cpp b/compositor/DrmDisplayComposition.cpp
index 31d8693..0d1278e 100644
--- a/compositor/DrmDisplayComposition.cpp
+++ b/compositor/DrmDisplayComposition.cpp
@@ -32,16 +32,9 @@
namespace android {
-int DrmDisplayComposition::Init(DrmDevice *drm, DrmCrtc *crtc,
- Importer *importer, Planner *planner,
- uint64_t frame_no) {
- drm_ = drm;
- crtc_ = crtc; // Can be NULL if we haven't modeset yet
- importer_ = importer;
- planner_ = planner;
- frame_no_ = frame_no;
-
- return 0;
+DrmDisplayComposition::DrmDisplayComposition(DrmCrtc *crtc, Planner *planner)
+ : crtc_(crtc), // Can be NULL if we haven't modeset yet
+ planner_(planner) {
}
bool DrmDisplayComposition::validate_composition_type(DrmCompositionType des) {
diff --git a/compositor/DrmDisplayComposition.h b/compositor/DrmDisplayComposition.h
index 5d99d23..3a10a8c 100644
--- a/compositor/DrmDisplayComposition.h
+++ b/compositor/DrmDisplayComposition.h
@@ -107,13 +107,10 @@ class DrmCompositionPlane {
class DrmDisplayComposition {
public:
- DrmDisplayComposition() = default;
DrmDisplayComposition(const DrmDisplayComposition &) = delete;
+ DrmDisplayComposition(DrmCrtc *crtc, Planner *planner);
~DrmDisplayComposition() = default;
- int Init(DrmDevice *drm, DrmCrtc *crtc, Importer *importer, Planner *planner,
- uint64_t frame_no);
-
int SetLayers(DrmHwcLayer *layers, size_t num_layers, bool geometry_changed);
int AddPlaneComposition(DrmCompositionPlane plane);
int AddPlaneDisable(DrmPlane *plane);
@@ -135,10 +132,6 @@ class DrmDisplayComposition {
return geometry_changed_;
}
- uint64_t frame_no() const {
- return frame_no_;
- }
-
DrmCompositionType type() const {
return type_;
}
@@ -155,10 +148,6 @@ class DrmDisplayComposition {
return crtc_;
}
- Importer *importer() const {
- return importer_;
- }
-
Planner *planner() const {
return planner_;
}
@@ -176,9 +165,7 @@ class DrmDisplayComposition {
private:
bool validate_composition_type(DrmCompositionType desired);
- DrmDevice *drm_ = NULL;
DrmCrtc *crtc_ = NULL;
- Importer *importer_ = NULL;
Planner *planner_ = NULL;
DrmCompositionType type_ = DRM_COMPOSITION_TYPE_EMPTY;
@@ -187,11 +174,9 @@ class DrmDisplayComposition {
UniqueFd out_fence_ = -1;
- bool geometry_changed_;
+ bool geometry_changed_ = true;
std::vector<DrmHwcLayer> layers_;
std::vector<DrmCompositionPlane> composition_planes_;
-
- uint64_t frame_no_ = 0;
};
} // namespace android
diff --git a/compositor/DrmDisplayCompositor.cpp b/compositor/DrmDisplayCompositor.cpp
index fd60f97..e063385 100644
--- a/compositor/DrmDisplayCompositor.cpp
+++ b/compositor/DrmDisplayCompositor.cpp
@@ -125,11 +125,6 @@ int DrmDisplayCompositor::Init(ResourceManager *resource_manager, int display) {
return 0;
}
-std::unique_ptr<DrmDisplayComposition> DrmDisplayCompositor::CreateComposition()
- const {
- return std::make_unique<DrmDisplayComposition>();
-}
-
std::unique_ptr<DrmDisplayComposition>
DrmDisplayCompositor::CreateInitializedComposition() const {
DrmDevice *drm = resource_manager_->GetDrmDevice(display_);
@@ -138,18 +133,8 @@ DrmDisplayCompositor::CreateInitializedComposition() const {
ALOGE("Failed to find crtc for display = %d", display_);
return std::unique_ptr<DrmDisplayComposition>();
}
- std::unique_ptr<DrmDisplayComposition> comp = CreateComposition();
- std::shared_ptr<Importer> importer = resource_manager_->GetImporter(display_);
- if (!importer) {
- ALOGE("Failed to find resources for display = %d", display_);
- return std::unique_ptr<DrmDisplayComposition>();
- }
- int ret = comp->Init(drm, crtc, importer.get(), planner_.get(), 0);
- if (ret) {
- ALOGE("Failed to init composition for display = %d", display_);
- return std::unique_ptr<DrmDisplayComposition>();
- }
- return comp;
+
+ return std::make_unique<DrmDisplayComposition>(crtc, planner_.get());
}
FlatteningState DrmDisplayCompositor::GetFlatteningState() const {
diff --git a/compositor/DrmDisplayCompositor.h b/compositor/DrmDisplayCompositor.h
index 9ce91b7..aebb6ff 100644
--- a/compositor/DrmDisplayCompositor.h
+++ b/compositor/DrmDisplayCompositor.h
@@ -65,7 +65,6 @@ class DrmDisplayCompositor {
refresh_callback_hook_ = reinterpret_cast<HWC2_PFN_REFRESH>(hook);
}
- std::unique_ptr<DrmDisplayComposition> CreateComposition() const;
std::unique_ptr<DrmDisplayComposition> CreateInitializedComposition() const;
int ApplyComposition(std::unique_ptr<DrmDisplayComposition> composition);
int TestComposition(DrmDisplayComposition *composition);