xref: /aosp_15_r20/external/skia/modules/sksg/src/SkSGScene.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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 Worker std::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 Worker Scene::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 Worker void 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 Worker void 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 Worker const 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