| Index: src/gpu/GrQuad.h
|
| diff --git a/src/gpu/GrQuad.h b/src/gpu/GrQuad.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fc169ead6d2b56daebf2518b520e9354c4165402
|
| --- /dev/null
|
| +++ b/src/gpu/GrQuad.h
|
| @@ -0,0 +1,58 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef GrQuad_DEFINED
|
| +#define GrQuad_DEFINED
|
| +
|
| +#include "SkPoint.h"
|
| +#include "SkMatrix.h"
|
| +
|
| +/**
|
| + * GrQuad is a collection of 4 points which can be used to represent an arbitrary quadrilateral
|
| + */
|
| +class GrQuad {
|
| +public:
|
| + GrQuad(const GrQuad& that) {
|
| + *this = that;
|
| + }
|
| +
|
| + explicit GrQuad(const SkRect& rect) {
|
| + this->set(rect);
|
| + }
|
| +
|
| + void set(const SkRect& rect) {
|
| + fPoints->setRectFan(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
|
| + }
|
| +
|
| + void map(const SkMatrix& matrix) {
|
| + matrix.mapPoints(fPoints, kNumPoints);
|
| + }
|
| +
|
| + void setFromMappedRect(const SkRect& rect, const SkMatrix& matrix) {
|
| + this->set(rect);
|
| + matrix.mapPoints(fPoints, kNumPoints);
|
| + }
|
| +
|
| + const GrQuad& operator=(const GrQuad& that) {
|
| + memcpy(fPoints, that.fPoints, sizeof(SkPoint) * kNumPoints);
|
| + return *this;
|
| + }
|
| +
|
| + SkPoint* points() {
|
| + return fPoints;
|
| + }
|
| +
|
| + const SkPoint* points() const {
|
| + return fPoints;
|
| + }
|
| +
|
| +private:
|
| + static const int kNumPoints = 4;
|
| + SkPoint fPoints[kNumPoints];
|
| +};
|
| +
|
| +#endif
|
|
|