1 /* 2 * Copyright 2018 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 #include <compositionengine/impl/CompositionEngine.h> 18 #include <compositionengine/impl/Display.h> 19 #include <compositionengine/impl/Layer.h> 20 #include <renderengine/RenderEngine.h> 21 22 #include "DisplayHardware/HWComposer.h" 23 24 namespace android::compositionengine { 25 26 CompositionEngine::~CompositionEngine() = default; 27 28 namespace impl { 29 createCompositionEngine()30std::unique_ptr<compositionengine::CompositionEngine> createCompositionEngine() { 31 return std::make_unique<CompositionEngine>(); 32 } 33 34 CompositionEngine::CompositionEngine() = default; 35 CompositionEngine::~CompositionEngine() = default; 36 createDisplay(DisplayCreationArgs && args)37std::shared_ptr<compositionengine::Display> CompositionEngine::createDisplay( 38 DisplayCreationArgs&& args) { 39 return compositionengine::impl::createDisplay(*this, std::move(args)); 40 } 41 createLayer(LayerCreationArgs && args)42std::shared_ptr<compositionengine::Layer> CompositionEngine::createLayer(LayerCreationArgs&& args) { 43 return compositionengine::impl::createLayer(*this, std::move(args)); 44 } 45 getHwComposer() const46HWComposer& CompositionEngine::getHwComposer() const { 47 return *mHwComposer.get(); 48 } 49 setHwComposer(std::unique_ptr<HWComposer> hwComposer)50void CompositionEngine::setHwComposer(std::unique_ptr<HWComposer> hwComposer) { 51 mHwComposer = std::move(hwComposer); 52 } 53 getRenderEngine() const54renderengine::RenderEngine& CompositionEngine::getRenderEngine() const { 55 return *mRenderEngine.get(); 56 } 57 setRenderEngine(std::unique_ptr<renderengine::RenderEngine> renderEngine)58void CompositionEngine::setRenderEngine(std::unique_ptr<renderengine::RenderEngine> renderEngine) { 59 mRenderEngine = std::move(renderEngine); 60 } 61 62 } // namespace impl 63 } // namespace android::compositionengine 64