/* * Copyright 2017 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkSGNode_DEFINED #define SkSGNode_DEFINED #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/private/base/SkAssert.h" #include <cstdint> #include <vector> class SkMatrix; namespace sksg { class InvalidationController; /** * Base class for all scene graph nodes. * * Handles ingress edge management for the DAG (i.e. node -> "parent" node mapping), * and invalidation. * * Note: egress edges are only implemented/supported in container subclasses * (e.g. Group, Effect, Draw). */ class Node : public SkRefCnt { … }; // Helper for defining attribute getters/setters in subclasses. #define SG_ATTRIBUTE(attr_name, attr_type, attr_container) … #define SG_MAPPED_ATTRIBUTE(attr_name, attr_type, attr_container) … } // namespace sksg #endif // SkSGNode_DEFINED