diff options
author | susi_su <susisu@google.com> | 2022-05-22 19:59:19 +0800 |
---|---|---|
committer | Susi Su <susisu@google.com> | 2022-06-08 02:17:32 +0000 |
commit | 54bfb43b2840a69bb345d67b94fb6b6138ea0b2c (patch) | |
tree | 6321ed2524d448026f9c3673699c17dfbaf286fa /libhwc2.1/histogram_mediator.cpp | |
parent | b67d3b4ae5d243995c710b373d1160e0bceb8f66 (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.cpp | 16 |
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; +} |