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>
This commit is contained in:
parent
d21071f7d5
commit
704ea0e8fb
5 changed files with 13 additions and 54 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue