From 77e1f3c46f004f5989c62f053d1461186aa4449c Mon Sep 17 00:00:00 2001 From: Long Ling Date: Thu, 3 Sep 2020 14:05:55 -0700 Subject: hwc/gs101: update for multiple display color data 1. Get the display color control interface with display number 2. Get the primary display color for ExynosPrimaryDisplayModule Change-Id: I80cac8a3488c2c2643112646c0805eda1a61081a --- libhwc2.1/libmaindisplay/DisplayColorLoader.h | 6 +++--- libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 13 +++++++------ libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) (limited to 'libhwc2.1/libmaindisplay') diff --git a/libhwc2.1/libmaindisplay/DisplayColorLoader.h b/libhwc2.1/libmaindisplay/DisplayColorLoader.h index c4d7bcd..95eaffe 100644 --- a/libhwc2.1/libmaindisplay/DisplayColorLoader.h +++ b/libhwc2.1/libmaindisplay/DisplayColorLoader.h @@ -40,9 +40,9 @@ class DisplayColorLoader { } } - displaycolor::IDisplayColorGS101* GetDisplayColorGS101() { + displaycolor::IDisplayColorGS101* GetDisplayColorGS101(size_t display_num) { if (get_display_color_gs101 != nullptr) { - return get_display_color_gs101(); + return get_display_color_gs101(display_num); } return nullptr; @@ -56,7 +56,7 @@ class DisplayColorLoader { private: void *lib_handle; - displaycolor::IDisplayColorGS101* (*get_display_color_gs101)(); + displaycolor::IDisplayColorGS101* (*get_display_color_gs101)(size_t); }; #endif //DISPLAY_COLOR_LOADER_H diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp index d08b7f2..1ef6c05 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp @@ -39,7 +39,7 @@ ExynosPrimaryDisplayModule::ExynosPrimaryDisplayModule(uint32_t __unused type, E exynosHWCControl.forceGpu = true; #endif - mDisplayColorInterface = mDisplayColorLoader.GetDisplayColorGS101(); + mDisplayColorInterface = mDisplayColorLoader.GetDisplayColorGS101(1); mDisplaySceneInfo.displayScene.dpu_bit_depth = BitDepth::kTen; } @@ -289,9 +289,9 @@ bool ExynosPrimaryDisplayModule::hasDppForLayer(ExynosLayer* layer) return false; uint32_t index = mDisplaySceneInfo.layerDataMappingInfo[layer]; - if (index >= mDisplayColorInterface->Dpp().size()) { - DISPLAY_LOGE("%s: invalid dpp index(%d) dpp size(%zu)", - __func__, index, mDisplayColorInterface->Dpp().size()); + auto size = mDisplayColorInterface->GetPipelineData(DisplayType::DISPLAY_PRIMARY)->Dpp().size(); + if (index >= size) { + DISPLAY_LOGE("%s: invalid dpp index(%d) dpp size(%zu)", __func__, index, size); return false; } @@ -301,7 +301,7 @@ bool ExynosPrimaryDisplayModule::hasDppForLayer(ExynosLayer* layer) const IDisplayColorGS101::IDpp& ExynosPrimaryDisplayModule::getDppForLayer(ExynosLayer* layer) { uint32_t index = mDisplaySceneInfo.layerDataMappingInfo[layer]; - return mDisplayColorInterface->Dpp()[index].get(); + return mDisplayColorInterface->GetPipelineData(DisplayType::DISPLAY_PRIMARY)->Dpp()[index].get(); } int32_t ExynosPrimaryDisplayModule::getDppIndexForLayer(ExynosLayer* layer) @@ -512,7 +512,8 @@ int32_t ExynosPrimaryDisplayModule::updateColorConversionInfo() if (hwcCheckDebugMessages(eDebugColorManagement)) mDisplaySceneInfo.printDisplayScene(); - if ((ret = mDisplayColorInterface->Update(mDisplaySceneInfo.displayScene)) != 0) { + if ((ret = mDisplayColorInterface->Update(DisplayType::DISPLAY_PRIMARY, + mDisplaySceneInfo.displayScene)) != 0) { DISPLAY_LOGE("Display Scene update error (%d)", ret); return ret; } diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h index a79028c..73792a8 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h @@ -125,12 +125,12 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay { const IDisplayColorGS101::IDpp& getDppForLayer(ExynosLayer* layer); int32_t getDppIndexForLayer(ExynosLayer* layer); size_t getNumOfDpp() { - return mDisplaySceneInfo.layerDataMappingInfo.size(); + return mDisplayColorInterface->GetPipelineData(DisplayType::DISPLAY_PRIMARY)->Dpp().size(); }; const IDisplayColorGS101::IDqe& getDqe() { - return mDisplayColorInterface->Dqe(); + return mDisplayColorInterface->GetPipelineData(DisplayType::DISPLAY_PRIMARY)->Dqe(); }; private: -- cgit v1.2.3