1 /* 2 * Copyright 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 19 #include <optional> 20 21 #include <compositionengine/CompositionEngine.h> 22 #include <compositionengine/LayerFE.h> 23 #include <compositionengine/Output.h> 24 #include <compositionengine/OutputLayer.h> 25 #include <compositionengine/impl/OutputLayerCompositionState.h> 26 #include <gmock/gmock.h> 27 #include <cstdint> 28 29 namespace android::compositionengine::mock { 30 31 class OutputLayer : public compositionengine::OutputLayer { 32 public: 33 OutputLayer(); 34 virtual ~OutputLayer(); 35 36 MOCK_METHOD1(setHwcLayer, void(std::shared_ptr<HWC2::Layer>)); 37 38 MOCK_METHOD1(uncacheBuffers, void(const std::vector<uint64_t>&)); 39 40 MOCK_CONST_METHOD0(getOutput, const compositionengine::Output&()); 41 MOCK_CONST_METHOD0(getLayerFE, compositionengine::LayerFE&()); 42 43 MOCK_CONST_METHOD0(getState, const impl::OutputLayerCompositionState&()); 44 MOCK_METHOD0(editState, impl::OutputLayerCompositionState&()); 45 46 MOCK_METHOD(void, updateCompositionState, 47 (bool, bool, ui::Transform::RotationFlags, 48 (const std::optional<std::vector<std::optional< 49 aidl::android::hardware::graphics::composer3::LutProperties>>>))); 50 MOCK_METHOD5(writeStateToHWC, void(bool, bool, uint32_t, bool, bool)); 51 MOCK_CONST_METHOD0(writeCursorPositionToHWC, void()); 52 53 MOCK_CONST_METHOD0(getHwcLayer, HWC2::Layer*()); 54 MOCK_CONST_METHOD0(requiresClientComposition, bool()); 55 MOCK_CONST_METHOD0(isHardwareCursor, bool()); 56 MOCK_METHOD1(applyDeviceCompositionTypeChange, 57 void(aidl::android::hardware::graphics::composer3::Composition)); 58 MOCK_METHOD0(prepareForDeviceLayerRequests, void()); 59 MOCK_METHOD1(applyDeviceLayerRequest, void(Hwc2::IComposerClient::LayerRequest request)); 60 MOCK_CONST_METHOD0(needsFiltering, bool()); 61 MOCK_CONST_METHOD0(getOverrideCompositionSettings, std::optional<LayerFE::LayerSettings>()); 62 MOCK_METHOD(void, applyDeviceLayerLut, 63 (ndk::ScopedFileDescriptor, 64 (std::vector<std::pair< 65 int, aidl::android::hardware::graphics::composer3::LutProperties>>))); 66 MOCK_METHOD(int64_t, getPictureProfilePriority, (), (const)); 67 MOCK_METHOD(const PictureProfileHandle&, getPictureProfileHandle, (), (const)); 68 MOCK_METHOD(void, commitPictureProfileToCompositionState, ()); 69 MOCK_CONST_METHOD1(dump, void(std::string&)); 70 }; 71 72 } // namespace android::compositionengine::mock 73