diff options
author | Long Ling <longling@google.com> | 2020-09-03 14:05:55 -0700 |
---|---|---|
committer | Long Ling <longling@google.com> | 2020-10-21 11:02:59 -0700 |
commit | 77e1f3c46f004f5989c62f053d1461186aa4449c (patch) | |
tree | 5977386788c3c61ad99abec2b8e0e67bacaf8378 /libhwc2.1/libmaindisplay | |
parent | 46611318b035bb81e3b060fcd30103276be1f674 (diff) | |
download | gs101-77e1f3c46f004f5989c62f053d1461186aa4449c.tar.gz |
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
Diffstat (limited to 'libhwc2.1/libmaindisplay')
-rw-r--r-- | libhwc2.1/libmaindisplay/DisplayColorLoader.h | 6 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 13 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h | 4 |
3 files changed, 12 insertions, 11 deletions
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: |