14aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita/*
24aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita * Copyright 2017 Google Inc.
34aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita *
44aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita * Use of this source code is governed by a BSD-style license that can be
54aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita * found in the LICENSE file.
64aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita */
74aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita
84aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita#include "SkSGGeometryNode.h"
94aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita
10e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita#include "SkPath.h"
11e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita
124aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitanamespace sksg {
134aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita
14c14f144484eff57f6861766510876d83b9046fa6Florin Malita// Geometry nodes don't generate damage on their own, but via their aggregation ancestor Draw nodes.
15c14f144484eff57f6861766510876d83b9046fa6Florin MalitaGeometryNode::GeometryNode() : INHERITED(kBubbleDamage_Trait) {}
16c14f144484eff57f6861766510876d83b9046fa6Florin Malita
1738ea40eb750596c75b8ffb5c8f94bcb84b94a7c3Florin Malitavoid GeometryNode::clip(SkCanvas* canvas, bool aa) const {
1838ea40eb750596c75b8ffb5c8f94bcb84b94a7c3Florin Malita    SkASSERT(!this->hasInval());
1938ea40eb750596c75b8ffb5c8f94bcb84b94a7c3Florin Malita    this->onClip(canvas, aa);
2038ea40eb750596c75b8ffb5c8f94bcb84b94a7c3Florin Malita}
2138ea40eb750596c75b8ffb5c8f94bcb84b94a7c3Florin Malita
224aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitavoid GeometryNode::draw(SkCanvas* canvas, const SkPaint& paint) const {
23c75e2401a82640c35b0b5f80a5684d0892904530Florin Malita    SkASSERT(!this->hasInval());
244aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita    this->onDraw(canvas, paint);
254aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita}
264aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita
27e6345d90f8f9d975128de9890d26b1af1fedc524Florin MalitaSkPath GeometryNode::asPath() const {
28e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita    SkASSERT(!this->hasInval());
29e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita    return this->onAsPath();
30e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita}
31e6345d90f8f9d975128de9890d26b1af1fedc524Florin Malita
324aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita} // namespace sksg
33