summaryrefslogtreecommitdiff
path: root/libhwc2.1/histogram_mediator.cpp
diff options
context:
space:
mode:
authorsusi_su <susisu@google.com>2022-05-22 19:59:19 +0800
committerSusi Su <susisu@google.com>2022-06-08 02:17:32 +0000
commit54bfb43b2840a69bb345d67b94fb6b6138ea0b2c (patch)
tree6321ed2524d448026f9c3673699c17dfbaf286fa /libhwc2.1/histogram_mediator.cpp
parentb67d3b4ae5d243995c710b373d1160e0bceb8f66 (diff)
libhwc2.1: add roi calculation for display RRS
This patch calculates roi for histogram sampling accoring to display RRS mode setups Bug: 233136164 Test: local test with a hist_client code by setting different display resolution switch Change-Id: I35aab6b776b1687c8ae1d37ca439a9409205932c
Diffstat (limited to 'libhwc2.1/histogram_mediator.cpp')
-rw-r--r--libhwc2.1/histogram_mediator.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/libhwc2.1/histogram_mediator.cpp b/libhwc2.1/histogram_mediator.cpp
index e7ee305..204c350 100644
--- a/libhwc2.1/histogram_mediator.cpp
+++ b/libhwc2.1/histogram_mediator.cpp
@@ -21,6 +21,7 @@ histogram::HistogramMediator::HistogramMediator(ExynosDisplay *display) {
static_cast<ExynosDisplayDrmInterface *>(display->mDisplayInterface.get());
moduleDisplayInterface->registerHistogramInfo(static_cast<IDLHistogram *>(&mIDLHistogram));
+ moduleDisplayInterface->getPanelResolution();
}
uint32_t histogram::HistogramMediator::getFrameCount() {
ExynosDisplayDrmInterface *moduleDisplayInterface =
@@ -110,3 +111,18 @@ histogram::HistogramErrorCode histogram::HistogramMediator::collectRoiLuma(
return histogram::HistogramErrorCode::NONE;
}
+
+histogram::RoiRect histogram::HistogramMediator::calRoi(RoiRect roi) {
+ RoiRect roi_return = {-1, -1, -1, -1};
+ ExynosDisplayDrmInterface *moduleDisplayInterface =
+ static_cast<ExynosDisplayDrmInterface *>(mDisplay->mDisplayInterface.get());
+ roi_return.left = roi.left * moduleDisplayInterface->getActiveModeHDisplay() /
+ moduleDisplayInterface->panelHsize();
+ roi_return.top = roi.top * moduleDisplayInterface->getActiveModeVDisplay() /
+ moduleDisplayInterface->panelVsize();
+ roi_return.right = roi.right * moduleDisplayInterface->getActiveModeHDisplay() /
+ moduleDisplayInterface->panelHsize();
+ roi_return.bottom = roi.bottom * moduleDisplayInterface->getActiveModeVDisplay() /
+ moduleDisplayInterface->panelVsize();
+ return roi_return;
+}