diff options
author | joenchen <joenchen@google.com> | 2023-06-08 23:54:39 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-06-08 23:54:39 +0000 |
commit | 50e835c81cf75074e915bafb47a53e2cf3e8f7f4 (patch) | |
tree | 64ad64007027e7ba4042bd6c5db170499d7e9bb1 | |
parent | c565811c4dced09010adc0ea4c824e63eb8b0380 (diff) | |
parent | 07f6ff10889e0604473133981035bb509c1045b1 (diff) | |
download | gs101-50e835c81cf75074e915bafb47a53e2cf3e8f7f4.tar.gz |
libhwc2.1: provide resetColorMappingInfo() am: 07f6ff1088
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/gs101/+/23517016
Change-Id: I83b0a5c3e7f90e985e73df29104114f544bdc18f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 12 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp index 0c34654..596fe2d 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp @@ -480,7 +480,7 @@ int32_t ExynosPrimaryDisplayModule::DisplaySceneInfo::setLayerDataMappingInfo( uint32_t oldPlaneId = prev_layerDataMappingInfo.count(layer) != 0 && prev_layerDataMappingInfo[layer].dppIdx == index ? prev_layerDataMappingInfo[layer].planeId - : UINT_MAX; + : LayerMappingInfo::kPlaneIdNone; layerDataMappingInfo.insert(std::make_pair(layer, LayerMappingInfo{ index, oldPlaneId })); return NO_ERROR; @@ -736,6 +736,16 @@ int32_t ExynosPrimaryDisplayModule::updateColorConversionInfo() return ret; } +int32_t ExynosPrimaryDisplayModule::resetColorMappingInfo(ExynosMPPSource* mppSrc) { + if (mDisplaySceneInfo.layerDataMappingInfo.count(mppSrc) == 0) { + return -EINVAL; + } + + mDisplaySceneInfo.layerDataMappingInfo[mppSrc].planeId = + DisplaySceneInfo::LayerMappingInfo::kPlaneIdNone; + + return NO_ERROR; +} int32_t ExynosPrimaryDisplayModule::updatePresentColorConversionInfo() { int ret = NO_ERROR; diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h index 6d78453..1b1cade 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h @@ -116,6 +116,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay { HwcDimmingStage *outDimmingStage = nullptr) override; virtual int deliverWinConfigData(); virtual int32_t updateColorConversionInfo(); + virtual int32_t resetColorMappingInfo(ExynosMPPSource* mppSrc); virtual int32_t updatePresentColorConversionInfo(); virtual bool checkRrCompensationEnabled() { const DisplayType display = getDisplayTypeFromIndex(mIndex); @@ -148,6 +149,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay { uint32_t dppIdx; // assigned drm plane id in last color setting update uint32_t planeId; + static constexpr uint32_t kPlaneIdNone = std::numeric_limits<uint32_t>::max(); }; bool colorSettingChanged = false; bool displaySettingDelivered = false; |