summaryrefslogtreecommitdiff
path: root/libhwc2.1/libmaindisplay
diff options
context:
space:
mode:
authorLong Ling <longling@google.com>2020-09-03 14:05:55 -0700
committerLong Ling <longling@google.com>2020-10-21 11:02:59 -0700
commit77e1f3c46f004f5989c62f053d1461186aa4449c (patch)
tree5977386788c3c61ad99abec2b8e0e67bacaf8378 /libhwc2.1/libmaindisplay
parent46611318b035bb81e3b060fcd30103276be1f674 (diff)
downloadgs101-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.h6
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp13
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h4
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: