SkSGRect.h revision 4aa4441186b06565a597ec4a9baac5a972fddb51
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#ifndef SkSGRect_DEFINED 94aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita#define SkSGRect_DEFINED 104aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 114aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita#include "SkSGGeometryNode.h" 124aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 134aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita#include "SkRect.h" 144aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 154aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitaclass SkCanvas; 164aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitaclass SkPaint; 174aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 184aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitanamespace sksg { 194aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 204aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita/** 214aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita * Concrete Geometry node, wrapping an SkRect. 224aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita */ 234aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitaclass Rect : public GeometryNode { 244aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitapublic: 254aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita static sk_sp<Rect> Make() { return sk_sp<Rect>(new Rect(SkRect::MakeEmpty())); } 264aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita static sk_sp<Rect> Make(const SkRect& r) { return sk_sp<Rect>(new Rect(r)); } 274aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 284aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SG_ATTRIBUTE(L, SkScalar, fRect.fLeft ) 294aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SG_ATTRIBUTE(T, SkScalar, fRect.fTop ) 304aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SG_ATTRIBUTE(R, SkScalar, fRect.fRight ) 314aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SG_ATTRIBUTE(B, SkScalar, fRect.fBottom) 324aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 334aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitaprotected: 344aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita void onDraw(SkCanvas*, const SkPaint&) const override; 354aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 364aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SkRect onComputeBounds() const override; 374aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 384aa4441186b06565a597ec4a9baac5a972fddb51Florin Malitaprivate: 394aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita explicit Rect(const SkRect&); 404aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 414aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita SkRect fRect; 424aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita}; 434aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 444aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita} // namespace sksg 454aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita 464aa4441186b06565a597ec4a9baac5a972fddb51Florin Malita#endif // SkSGRect_DEFINED 47