1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2018 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkMatrix.h" 9*c8dee2aaSAndroid Build Coastguard Worker #include "modules/sksg/include/SkSGRenderNode.h" 10*c8dee2aaSAndroid Build Coastguard Worker #include "modules/sksg/include/SkSGScene.h" 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Worker #include <utility> 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Worker namespace sksg { 15*c8dee2aaSAndroid Build Coastguard Worker Make(sk_sp<RenderNode> root)16*c8dee2aaSAndroid Build Coastguard Workerstd::unique_ptr<Scene> Scene::Make(sk_sp<RenderNode> root) { 17*c8dee2aaSAndroid Build Coastguard Worker return root ? std::unique_ptr<Scene>(new Scene(std::move(root))) : nullptr; 18*c8dee2aaSAndroid Build Coastguard Worker } 19*c8dee2aaSAndroid Build Coastguard Worker Scene(sk_sp<RenderNode> root)20*c8dee2aaSAndroid Build Coastguard WorkerScene::Scene(sk_sp<RenderNode> root) : fRoot(std::move(root)) {} 21*c8dee2aaSAndroid Build Coastguard Worker 22*c8dee2aaSAndroid Build Coastguard Worker Scene::~Scene() = default; 23*c8dee2aaSAndroid Build Coastguard Worker render(SkCanvas * canvas) const24*c8dee2aaSAndroid Build Coastguard Workervoid Scene::render(SkCanvas* canvas) const { 25*c8dee2aaSAndroid Build Coastguard Worker fRoot->render(canvas); 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker revalidate(InvalidationController * ic)28*c8dee2aaSAndroid Build Coastguard Workervoid Scene::revalidate(InvalidationController* ic) { 29*c8dee2aaSAndroid Build Coastguard Worker fRoot->revalidate(ic, SkMatrix::I()); 30*c8dee2aaSAndroid Build Coastguard Worker } 31*c8dee2aaSAndroid Build Coastguard Worker nodeAt(const SkPoint & p) const32*c8dee2aaSAndroid Build Coastguard Workerconst RenderNode* Scene::nodeAt(const SkPoint& p) const { 33*c8dee2aaSAndroid Build Coastguard Worker return fRoot->nodeAt(p); 34*c8dee2aaSAndroid Build Coastguard Worker } 35*c8dee2aaSAndroid Build Coastguard Worker 36*c8dee2aaSAndroid Build Coastguard Worker } // namespace sksg 37