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