diff options
Diffstat (limited to 'composer/QtiComposerClient.cpp')
-rw-r--r-- | composer/QtiComposerClient.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/composer/QtiComposerClient.cpp b/composer/QtiComposerClient.cpp index 4c186720..aee1326b 100644 --- a/composer/QtiComposerClient.cpp +++ b/composer/QtiComposerClient.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. * Not a Contribution. * * Copyright (C) 2017 The Android Open Source Project @@ -97,8 +97,9 @@ QtiComposerClient::~QtiComposerClient() { uint32_t displayRequestMask = 0; std::vector<Layer> requestedLayers; std::vector<uint32_t> requestMasks; + IComposerClient::ClientTargetProperty clientTargetProperty; mReader.validateDisplay(dpy.first, changedLayers, compositionTypes, displayRequestMask, - requestedLayers, requestMasks); + requestedLayers, requestMasks, clientTargetProperty); hwc_session_->AcceptDisplayChanges(dpy.first); @@ -1386,7 +1387,8 @@ Error QtiComposerClient::CommandReader::validateDisplay(Display display, std::vector<IComposerClient::Composition>& compositionTypes, uint32_t& displayRequestMask, std::vector<Layer>& requestedLayers, - std::vector<uint32_t>& requestMasks) { + std::vector<uint32_t>& requestMasks, + IComposerClient::ClientTargetProperty& clientTargetProperty) { uint32_t types_count = 0; uint32_t reqs_count = 0; @@ -1438,6 +1440,12 @@ Error QtiComposerClient::CommandReader::validateDisplay(Display display, displayRequestMask = display_reqs; + err = mClient.hwc_session_->GetClientTargetProperty(mDisplay, &clientTargetProperty); + if (err != HWC2_ERROR_NONE) { + // todo: reset to default values + return static_cast<Error>(err); + } + return static_cast<Error>(err); } @@ -1451,13 +1459,17 @@ bool QtiComposerClient::CommandReader::parseValidateDisplay(uint16_t length) { uint32_t displayRequestMask; std::vector<Layer> requestedLayers; std::vector<uint32_t> requestMasks; + IComposerClient::ClientTargetProperty clientTargetProperty; auto err = validateDisplay(mDisplay, changedLayers, compositionTypes, displayRequestMask, - requestedLayers, requestMasks); + requestedLayers, requestMasks, clientTargetProperty); if (static_cast<Error>(err) == Error::NONE) { mWriter.setChangedCompositionTypes(changedLayers, compositionTypes); mWriter.setDisplayRequests(displayRequestMask, requestedLayers, requestMasks); + if (mClient.mUseCallback24_) { + mWriter.setClientTargetProperty(clientTargetProperty); + } } else { mWriter.setError(getCommandLoc(), static_cast<Error>(err)); } @@ -1553,14 +1565,18 @@ bool QtiComposerClient::CommandReader::parsePresentOrValidateDisplay(uint16_t le uint32_t displayRequestMask = 0x0; std::vector<Layer> requestedLayers; std::vector<uint32_t> requestMasks; + IComposerClient::ClientTargetProperty clientTargetProperty; auto err = validateDisplay(mDisplay, changedLayers, compositionTypes, displayRequestMask, - requestedLayers, requestMasks); + requestedLayers, requestMasks, clientTargetProperty); // mResources->setDisplayMustValidateState(mDisplay, false); if (err == Error::NONE) { mWriter.setPresentOrValidateResult(0); mWriter.setChangedCompositionTypes(changedLayers, compositionTypes); mWriter.setDisplayRequests(displayRequestMask, requestedLayers, requestMasks); + if (mClient.mUseCallback24_) { + mWriter.setClientTargetProperty(clientTargetProperty); + } } else { mWriter.setError(getCommandLoc(), err); } @@ -1878,7 +1894,7 @@ bool QtiComposerClient::CommandReader::parseSetLayerPerFrameMetadataBlobs(uint16 for (const auto& m : metadata) { keys.push_back(static_cast<int32_t>(m.key)); sizes_of_metablob_.push_back(m.blob.size()); - for (uint8_t i = 0; i < m.blob.size(); i++) { + for (size_t i = 0; i < m.blob.size(); i++) { blob_of_data_.push_back(m.blob[i]); } } |