summaryrefslogtreecommitdiff
path: root/composer/QtiComposerClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'composer/QtiComposerClient.cpp')
-rw-r--r--composer/QtiComposerClient.cpp28
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]);
}
}