diff options
author | Long Ling <longling@google.com> | 2022-01-12 02:19:08 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-01-12 02:19:08 +0000 |
commit | 4b779bdb2ac7329a6550d8c502e9a5156f08e860 (patch) | |
tree | 36c468ca9c84af710a67b97be0e63bd347760f34 /hwc3/impl/HalImpl.cpp | |
parent | 88431dc0990b636bd9f565a596fc49fef3de2c7b (diff) | |
parent | e738bcf694db42aaee4fc9e8f416b4c1cf0cdb5b (diff) |
Merge "hwc3: support SDR and HDR blending"
Diffstat (limited to 'hwc3/impl/HalImpl.cpp')
-rw-r--r-- | hwc3/impl/HalImpl.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp index 3b41337..f7ffea2 100644 --- a/hwc3/impl/HalImpl.cpp +++ b/hwc3/impl/HalImpl.cpp @@ -510,6 +510,13 @@ int32_t HalImpl::getSupportedContentTypes(int64_t display, std::vector<ContentTy return HWC2_ERROR_NONE; } +int32_t HalImpl::flushDisplayBrightnessChange(int64_t display) { + ExynosDisplay* halDisplay; + RET_IF_ERR(getHalDisplay(display, halDisplay)); + + return halDisplay->flushDisplayBrightnessChange(); +} + int32_t HalImpl::presentDisplay(int64_t display, ndk::ScopedFileDescriptor& fence, std::vector<int64_t>* outLayers, std::vector<ndk::ScopedFileDescriptor>* outReleaseFences) { @@ -644,7 +651,7 @@ int32_t HalImpl::setDisplayBrightness(int64_t display, float brightness) { ExynosDisplay* halDisplay; RET_IF_ERR(getHalDisplay(display, halDisplay)); - return halDisplay->setDisplayBrightness(brightness); + return halDisplay->setDisplayBrightness(brightness, true /* wait present */); } int32_t HalImpl::setDisplayedContentSamplingEnabled( @@ -827,6 +834,13 @@ int32_t HalImpl::setLayerVisibleRegion(int64_t display, int64_t layer, return halLayer->setLayerVisibleRegion(region); } +int32_t HalImpl::setLayerWhitePointNits(int64_t display, int64_t layer, float nits) { + ExynosLayer *halLayer; + RET_IF_ERR(getHalLayer(display, layer, halLayer)); + + return halLayer->setLayerWhitePointNits(nits); +} + int32_t HalImpl::setLayerZOrder(int64_t display, int64_t layer, uint32_t z) { ExynosLayer *halLayer; RET_IF_ERR(getHalLayer(display, layer, halLayer)); @@ -889,7 +903,8 @@ int32_t HalImpl::validateDisplay(int64_t display, std::vector<int64_t>* outChang uint32_t* outDisplayRequestMask, std::vector<int64_t>* outRequestedLayers, std::vector<int32_t>* outRequestMasks, - ClientTargetProperty* outClientTargetProperty) { + ClientTargetProperty* outClientTargetProperty, + float* outClientTargetWhitePointNits) { ExynosDisplay* halDisplay; RET_IF_ERR(getHalDisplay(display, halDisplay)); @@ -912,6 +927,8 @@ int32_t HalImpl::validateDisplay(int64_t display, std::vector<int64_t>* outChang RET_IF_ERR(halDisplay->getDisplayRequests(&displayReqs, &reqsCount, hwcRequestedLayers.data(), outRequestMasks->data())); + RET_IF_ERR(halDisplay->getClientTargetWhitePointNits(outClientTargetWhitePointNits)); + h2a::translate(hwcChangedLayers, *outChangedLayers); h2a::translate(hwcCompositionTypes, *outCompositionTypes); *outDisplayRequestMask = displayReqs; |