1 /* 2 * Copyright 2017 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkSGRenderNode_DEFINED 9 #define SkSGRenderNode_DEFINED 10 11 #include "SkSGNode.h" 12 13 class SkCanvas; 14 15 namespace sksg { 16 17 /** 18 * Base class for nodes which can render to a canvas. 19 */ 20 class RenderNode : public Node { 21 public: 22 // Render the node and its descendants to the canvas. 23 void render(SkCanvas*) const; 24 25 protected: 26 RenderNode(); 27 28 virtual void onRender(SkCanvas*) const = 0; 29 30 private: 31 typedef Node INHERITED; 32 }; 33 34 } // namespace sksg 35 36 #endif // SkSGRenderNode_DEFINED 37