diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-04-19 21:57:08 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-04-19 21:57:08 +0000 |
commit | baf35cc85a17e4aa8fa94f15af04f888b755dfdd (patch) | |
tree | a1aeafb9701d4d260bbf9efc65482167a19ba596 | |
parent | 57e1c24be892c2e3f8351759a920a0e89367aef5 (diff) | |
parent | b1c41792dc6ac521025f0395ecc4343b5aae1918 (diff) | |
download | common-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.h | 5 | ||||
-rw-r--r-- | hwc3/ComposerServiceWriter.h | 128 |
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 |