Add BackendManager::CreateBackendForPipeline
Create a Backend for the given DrmDisplayPipeline using the same logic in CreateBackendForDisplay. A subsequent change will use this function and deprecate CreateBackendForDisplay. Change-Id: I72365f5c689f6643e2f6da11f76dde1ac68f3e2d
This commit is contained in:
parent
caa94f923e
commit
fbd684e3e0
2 changed files with 21 additions and 11 deletions
|
|
@ -44,27 +44,35 @@ int BackendManager::RegisterBackend(const std::string &name,
|
|||
}
|
||||
|
||||
int BackendManager::SetBackendForDisplay(HwcDisplay *display) {
|
||||
auto driver_name(display->GetPipe().device->GetName());
|
||||
display->set_backend(
|
||||
CreateBackendForConnector(display->GetPipe().connector->Get()));
|
||||
if (display->backend() == nullptr) {
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::unique_ptr<Backend> BackendManager::CreateBackendForConnector(
|
||||
const DrmConnector *connector) {
|
||||
auto driver_name(connector->GetDev().GetName());
|
||||
std::string backend_name = Properties::GetBackendOverride();
|
||||
if (backend_name.empty()) {
|
||||
backend_name = driver_name;
|
||||
}
|
||||
|
||||
display->set_backend(GetBackendByName(backend_name));
|
||||
if (display->backend() == nullptr) {
|
||||
ALOGE("Failed to set backend '%s' for '%s' and driver '%s'",
|
||||
backend_name.c_str(),
|
||||
display->GetPipe().connector->Get()->GetName().c_str(),
|
||||
auto backend = GetBackendByName(backend_name);
|
||||
if (backend == nullptr) {
|
||||
ALOGE("Failed to create backend '%s' for '%s' and driver '%s'",
|
||||
backend_name.c_str(), connector->GetName().c_str(),
|
||||
driver_name.c_str());
|
||||
return -EINVAL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ALOGI("Backend '%s' for '%s' and driver '%s' was successfully set",
|
||||
backend_name.c_str(),
|
||||
display->GetPipe().connector->Get()->GetName().c_str(),
|
||||
ALOGI("Backend '%s' for '%s' and driver '%s' was successfully created",
|
||||
backend_name.c_str(), connector->GetName().c_str(),
|
||||
driver_name.c_str());
|
||||
|
||||
return 0;
|
||||
return backend;
|
||||
}
|
||||
|
||||
std::unique_ptr<Backend> BackendManager::GetBackendByName(std::string &name) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ class BackendManager {
|
|||
int RegisterBackend(const std::string &name,
|
||||
BackendConstructorT backend_constructor);
|
||||
int SetBackendForDisplay(HwcDisplay *display);
|
||||
std::unique_ptr<Backend> CreateBackendForConnector(
|
||||
const DrmConnector *connector);
|
||||
std::unique_ptr<Backend> GetBackendByName(std::string &name);
|
||||
|
||||
private:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue