skia2/experimental/svg/model/SkSVGContainer.h
fmalita 397a517d1a [SVGDom] Add viewBox support
The main feature is <svg> viewBox and proper viewport support, but the CL
touches a few other things:

* refactor SkSVGRenderContext to auto-restore canvas state, and split the
  presentation bits into a separate CoW SkSVGPresentationContext

* introduce SkSVGNode::onPrepareToRender(), as a way for nodes to push their
  custom state before the actual onRender() call (instead of relying on
  non-virtual SkSVGNode to know about all possible state bits)

* add a "Type" suffix to SVG types, to disambiguate (e.g. SkSVGRectType vs.
  SkSVGRect)

R=robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222793002

Review-Url: https://codereview.chromium.org/2222793002
2016-08-08 11:38:55 -07:00

32 lines
665 B
C++

/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkSVGContainer_DEFINED
#define SkSVGContainer_DEFINED
#include "SkSVGTransformableNode.h"
#include "SkTArray.h"
class SkSVGContainer : public SkSVGTransformableNode {
public:
virtual ~SkSVGContainer() = default;
void appendChild(sk_sp<SkSVGNode>) override;
protected:
SkSVGContainer(SkSVGTag);
void onRender(const SkSVGRenderContext&) const override;
private:
SkSTArray<1, sk_sp<SkSVGNode>, true> fChildren;
typedef SkSVGTransformableNode INHERITED;
};
#endif // SkSVGSVG_DEFINED