/* * Copyright 2020 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "experimental/skrive/include/SkRive.h" #include "experimental/skrive/src/reader/StreamReader.h" #include "include/core/SkCanvas.h" namespace skrive { namespace internal { template <typename T> size_t parse_node(StreamReader*, T*); template <> size_t parse_node<Rectangle>(StreamReader* sr, Rectangle* node) { const auto parent_id = parse_node<Node>(sr, node); node->setWidth(sr->readFloat("width")); node->setHeight(sr->readFloat("height")); node->setRadius(sr->readFloat("cornerRadius")); return parent_id; } } // namespace internal void Rectangle::onRevalidate() { SkASSERT(this->hasInval()); } void Rectangle::onDraw(SkCanvas* canvas, const SkPaint& paint, SkPathFillType) const { SkASSERT(!this->hasInval()); const auto rect = SkRect::MakeXYWH(-fWidth * 0.5f, -fHeight * 0.5f, fWidth, fHeight); canvas->drawRect(rect, paint); } } // namespace skrive