summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2022-04-19 21:57:08 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-19 21:57:08 +0000
commitbaf35cc85a17e4aa8fa94f15af04f888b755dfdd (patch)
treea1aeafb9701d4d260bbf9efc65482167a19ba596
parent57e1c24be892c2e3f8351759a920a0e89367aef5 (diff)
parentb1c41792dc6ac521025f0395ecc4343b5aae1918 (diff)
downloadcommon-baf35cc85a17e4aa8fa94f15af04f888b755dfdd.tar.gz
Merge "Use service writer in ComposerCommandEngine." into tm-dev am: b1c41792dc
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/17667674 Change-Id: I84e0b6dbbca787866ba8ebcd1ea045a5dec35a10 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--hwc3/ComposerCommandEngine.h5
-rw-r--r--hwc3/ComposerServiceWriter.h128
2 files changed, 3 insertions, 130 deletions
diff --git a/hwc3/ComposerCommandEngine.h b/hwc3/ComposerCommandEngine.h
index 27000cd..ae68285 100644
--- a/hwc3/ComposerCommandEngine.h
+++ b/hwc3/ComposerCommandEngine.h
@@ -16,10 +16,11 @@
#pragma once
-#include <memory>
+#include <android/hardware/graphics/composer3/ComposerServiceWriter.h>
#include <utils/Mutex.h>
-#include "ComposerServiceWriter.h"
+#include <memory>
+
#include "include/IComposerHal.h"
#include "include/IResourceManager.h"
diff --git a/hwc3/ComposerServiceWriter.h b/hwc3/ComposerServiceWriter.h
deleted file mode 100644
index 6c3970f..0000000
--- a/hwc3/ComposerServiceWriter.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/graphics/composer3/CommandResultPayload.h>
-#include <aidl/android/hardware/graphics/composer3/IComposerClient.h>
-#include <inttypes.h>
-#include <string.h>
-
-#include <algorithm>
-#include <limits>
-#include <memory>
-#include <vector>
-
-#include "Util.h"
-
-namespace aidl::android::hardware::graphics::composer3::impl {
-
-class ComposerServiceWriter {
-public:
- ComposerServiceWriter() { reset(); }
-
- virtual ~ComposerServiceWriter() { reset(); }
-
- void reset() { mCommandsResults.clear(); }
-
- void setError(int32_t index, int32_t errorCode) {
- CommandError error;
- error.commandIndex = index;
- error.errorCode = errorCode;
- mCommandsResults.emplace_back(std::move(error));
- }
-
- void setPresentOrValidateResult(int64_t display, PresentOrValidate::Result result) {
- PresentOrValidate presentOrValidate;
- presentOrValidate.display = display;
- presentOrValidate.result = result;
- mCommandsResults.emplace_back(std::move(presentOrValidate));
- }
-
- void setChangedCompositionTypes(int64_t display, const std::vector<int64_t>& layers,
- const std::vector<Composition>& types) {
- ChangedCompositionTypes changedCompositionTypes;
- changedCompositionTypes.display = display;
- changedCompositionTypes.layers.reserve(layers.size());
- for (int i = 0; i < layers.size(); i++) {
- auto layer = ChangedCompositionLayer{.layer = layers[i], .composition = types[i]};
- changedCompositionTypes.layers.emplace_back(std::move(layer));
- }
- mCommandsResults.emplace_back(std::move(changedCompositionTypes));
- }
-
- void setDisplayRequests(int64_t display, int32_t displayRequestMask,
- const std::vector<int64_t>& layers,
- const std::vector<int32_t>& layerRequestMasks) {
- DisplayRequest displayRequest;
- displayRequest.display = display;
- displayRequest.mask = displayRequestMask;
- displayRequest.layerRequests.reserve(layers.size());
- for (int i = 0; i < layers.size(); i++) {
- auto layerRequest =
- DisplayRequest::LayerRequest{.layer = layers[i], .mask = layerRequestMasks[i]};
- displayRequest.layerRequests.emplace_back(std::move(layerRequest));
- }
- mCommandsResults.emplace_back(std::move(displayRequest));
- }
-
- void setPresentFence(int64_t display, ::ndk::ScopedFileDescriptor presentFence) {
- if (presentFence.get() >= 0) {
- PresentFence presentFenceCommand;
- presentFenceCommand.fence = std::move(presentFence);
- presentFenceCommand.display = display;
- mCommandsResults.emplace_back(std::move(presentFenceCommand));
- } else {
- LOG(WARNING) << __func__ << ": invalid present fence " << presentFence.get();
- }
- }
-
- void setReleaseFences(int64_t display, const std::vector<int64_t>& layers,
- std::vector<::ndk::ScopedFileDescriptor> releaseFences) {
- ReleaseFences releaseFencesCommand;
- releaseFencesCommand.display = display;
- for (int i = 0; i < layers.size(); i++) {
- if (releaseFences[i].get() >= 0) {
- ReleaseFences::Layer layer;
- layer.layer = layers[i];
- layer.fence = std::move(releaseFences[i]);
- releaseFencesCommand.layers.emplace_back(std::move(layer));
- } else {
- LOG(WARNING) << __func__ << ": invalid release fence " << releaseFences[i].get();
- }
- }
- mCommandsResults.emplace_back(std::move(releaseFencesCommand));
- }
-
- void setClientTargetProperty(int64_t display, const ClientTargetProperty& clientTargetProperty,
- float brightness, const DimmingStage& dimmingStage) {
- ClientTargetPropertyWithBrightness clientTargetPropertyWithBrightness;
- clientTargetPropertyWithBrightness.display = display;
- clientTargetPropertyWithBrightness.clientTargetProperty = clientTargetProperty;
- clientTargetPropertyWithBrightness.brightness = brightness;
- clientTargetPropertyWithBrightness.dimmingStage = dimmingStage;
- mCommandsResults.emplace_back(std::move(clientTargetPropertyWithBrightness));
- }
-
- std::vector<CommandResultPayload> getPendingCommandResults() {
- return std::move(mCommandsResults);
- }
-
-private:
- std::vector<CommandResultPayload> mCommandsResults;
-};
-
-} // namespace aidl::android::hardware::graphics::composer3::impl