diff options
Diffstat (limited to 'hwc3/impl/HalImpl.cpp')
-rw-r--r-- | hwc3/impl/HalImpl.cpp | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp index d5588b4..ea632f3 100644 --- a/hwc3/impl/HalImpl.cpp +++ b/hwc3/impl/HalImpl.cpp @@ -516,6 +516,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) { @@ -577,6 +584,27 @@ int32_t HalImpl::setActiveConfigWithConstraints( return HWC2_ERROR_NONE; } +int32_t HalImpl::setBootDisplayConfig(int64_t display, int32_t config) { + ExynosDisplay* halDisplay; + RET_IF_ERR(getHalDisplay(display, halDisplay)); + + return halDisplay->setBootDisplayConfig(config); +} + +int32_t HalImpl::clearBootDisplayConfig(int64_t display) { + ExynosDisplay* halDisplay; + RET_IF_ERR(getHalDisplay(display, halDisplay)); + + return halDisplay->clearBootDisplayConfig(); +} + +int32_t HalImpl::getPreferredBootDisplayConfig(int64_t display, int32_t* config) { + ExynosDisplay* halDisplay; + RET_IF_ERR(getHalDisplay(display, halDisplay)); + + return halDisplay->getPreferredBootDisplayConfig(config); +} + int32_t HalImpl::setAutoLowLatencyMode(int64_t display, bool on) { ExynosDisplay* halDisplay; RET_IF_ERR(getHalDisplay(display, halDisplay)); @@ -650,7 +678,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( @@ -833,6 +861,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)); @@ -895,7 +930,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)); @@ -918,6 +954,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; |