diff options
-rw-r--r-- | libhwc2.1/libdevice/ExynosDevice.cpp | 5 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDevice.h | 2 | ||||
-rw-r--r-- | libhwc2.1/libdevice/ExynosDisplay.h | 1 | ||||
-rw-r--r-- | libhwc2.1/pixel-display.cpp | 6 |
4 files changed, 13 insertions, 1 deletions
diff --git a/libhwc2.1/libdevice/ExynosDevice.cpp b/libhwc2.1/libdevice/ExynosDevice.cpp index b20f090..2056ff0 100644 --- a/libhwc2.1/libdevice/ExynosDevice.cpp +++ b/libhwc2.1/libdevice/ExynosDevice.cpp @@ -1015,6 +1015,11 @@ bool ExynosDevice::isLbeSupported() { return mLbeSupported; } +bool ExynosDevice::isColorCalibratedByDevice() { + ExynosDisplay *display = getDisplay(getDisplayId(HWC_DISPLAY_PRIMARY, 0)); + return display->isColorCalibratedByDevice(); +} + template <class Operator> void ExynosDevice::findActiveDisplay(Operator optor) { for (uint32_t i = 0; i < mDisplays.size(); i++) { diff --git a/libhwc2.1/libdevice/ExynosDevice.h b/libhwc2.1/libdevice/ExynosDevice.h index 0532938..12c82c5 100644 --- a/libhwc2.1/libdevice/ExynosDevice.h +++ b/libhwc2.1/libdevice/ExynosDevice.h @@ -333,6 +333,8 @@ class ExynosDevice { int32_t setLhbmState(bool enabled); bool getLhbmState(); + bool isColorCalibratedByDevice(); + template <class Operator> void findActiveDisplay(Operator optor); diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h index 296f543..67d3ede 100644 --- a/libhwc2.1/libdevice/ExynosDisplay.h +++ b/libhwc2.1/libdevice/ExynosDisplay.h @@ -1113,6 +1113,7 @@ class ExynosDisplay { virtual int32_t updateColorConversionInfo() { return NO_ERROR; }; virtual int32_t updatePresentColorConversionInfo() { return NO_ERROR; }; virtual bool checkRrCompensationEnabled() { return false; }; + virtual bool isColorCalibratedByDevice() { return false; }; virtual int32_t getColorAdjustedDbv(uint32_t &) { return NO_ERROR; } virtual int32_t SetCurrentPanelGammaSource(const displaycolor::DisplayType /* type */, const PanelGammaSource& /* source */) { diff --git a/libhwc2.1/pixel-display.cpp b/libhwc2.1/pixel-display.cpp index b6d0eb3..4f5f07d 100644 --- a/libhwc2.1/pixel-display.cpp +++ b/libhwc2.1/pixel-display.cpp @@ -137,7 +137,11 @@ ndk::ScopedAStatus Display::getLhbmState(bool *_aidl_return) { ndk::ScopedAStatus Display::setCompensationImageHandle(const NativeHandle &native_handle, const std::string &imageName, int *_aidl_return) { - *_aidl_return = readCompensationImage(native_handle, imageName); + if (mDevice && mDevice->isColorCalibratedByDevice()) { + *_aidl_return = readCompensationImage(native_handle, imageName); + } else { + *_aidl_return = -1; + } return ndk::ScopedAStatus::ok(); } } // namespace display |