| Index: include/core/SkRSXform.h
|
| diff --git a/include/core/SkRSXform.h b/include/core/SkRSXform.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5dffdc25d954d00c42b4020c459a1f7a76c959f5
|
| --- /dev/null
|
| +++ b/include/core/SkRSXform.h
|
| @@ -0,0 +1,49 @@
|
| +/*
|
| + * 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 SkRSXform_DEFINED
|
| +#define SkRSXform_DEFINED
|
| +
|
| +#include "SkScalar.h"
|
| +
|
| +/**
|
| + * A compressed form of a rotation+scale matrix.
|
| + *
|
| + * [ fSCos -fSSin fTx ]
|
| + * [ fSSin fSCos fTy ]
|
| + * [ 0 0 1 ]
|
| + */
|
| +struct SkRSXform {
|
| + SkScalar fSCos;
|
| + SkScalar fSSin;
|
| + SkScalar fTx;
|
| + SkScalar fTy;
|
| +
|
| + bool rectStaysRect() const {
|
| + return 0 == fSCos || 0 == fSSin;
|
| + }
|
| +
|
| + void setIdentity() {
|
| + fSCos = 1;
|
| + fSSin = fTx = fTy = 0;
|
| + }
|
| +
|
| + void set(SkScalar scos, SkScalar ssin, SkScalar tx, SkScalar ty) {
|
| + fSCos = scos;
|
| + fSSin = ssin;
|
| + fTx = tx;
|
| + fTy = ty;
|
| + }
|
| +
|
| + void toQuad(SkScalar width, SkScalar height, SkPoint quad[4]) const;
|
| + void toQuad(const SkSize& size, SkPoint quad[4]) const {
|
| + this->toQuad(size.width(), size.height(), quad);
|
| + }
|
| +};
|
| +
|
| +#endif
|
| +
|
|
|