blob: be8edac7c59f7f70c73d65f25c5203b61abf0c85 [file] [log] [blame]
Florin Malita4aa44412017-12-19 12:21:02 -05001/*
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#include "SkSGPaintNode.h"
9
10namespace sksg {
11
12PaintNode::PaintNode() {}
13
14const SkPaint& PaintNode::makePaint() {
Florin Malitac75e2402018-01-03 16:17:29 -050015 SkASSERT(!this->hasInval());
Florin Malita4aa44412017-12-19 12:21:02 -050016
17 return fPaint;
18}
19
Florin Malita0ebf4192018-01-04 19:21:58 -050020Node::RevalidationResult PaintNode::onRevalidate(InvalidationController*, const SkMatrix&) {
Florin Malitac75e2402018-01-03 16:17:29 -050021 SkASSERT(this->hasInval());
Florin Malita4aa44412017-12-19 12:21:02 -050022
Florin Malitac75e2402018-01-03 16:17:29 -050023 if (this->hasSelfInval()) {
24 fPaint.reset();
25 fPaint.setAntiAlias(fAntiAlias);
26 fPaint.setStyle(fStyle);
27 fPaint.setStrokeWidth(fStrokeWidth);
28 fPaint.setStrokeMiter(fStrokeMiter);
29 fPaint.setStrokeJoin(fStrokeJoin);
30 fPaint.setStrokeCap(fStrokeCap);
Florin Malitafa8d49a2017-12-29 11:52:44 -050031
Florin Malitac75e2402018-01-03 16:17:29 -050032 this->onApplyToPaint(&fPaint);
33 }
34
Florin Malita0ebf4192018-01-04 19:21:58 -050035 // Paints have no bounds and don't contribute to damage.
36 return { SkRect::MakeEmpty(), Damage::kBlockSelf };
Florin Malita4aa44412017-12-19 12:21:02 -050037}
38
39} // namespace sksg