diff options
Diffstat (limited to 'gfx/skia/skia/src/gpu/GrRect.h')
-rw-r--r-- | gfx/skia/skia/src/gpu/GrRect.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/gpu/GrRect.h b/gfx/skia/skia/src/gpu/GrRect.h new file mode 100644 index 000000000..14130f831 --- /dev/null +++ b/gfx/skia/skia/src/gpu/GrRect.h @@ -0,0 +1,57 @@ +/* + * Copyright 2010 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrRect_DEFINED +#define GrRect_DEFINED + +#include "SkTypes.h" +#include "SkRect.h" + +struct GrIRect16 { + int16_t fLeft, fTop, fRight, fBottom; + + static GrIRect16 SK_WARN_UNUSED_RESULT MakeEmpty() { + GrIRect16 r; + r.setEmpty(); + return r; + } + + static GrIRect16 SK_WARN_UNUSED_RESULT MakeWH(int16_t w, int16_t h) { + GrIRect16 r; + r.set(0, 0, w, h); + return r; + } + + static GrIRect16 SK_WARN_UNUSED_RESULT MakeXYWH(int16_t x, int16_t y, int16_t w, int16_t h) { + GrIRect16 r; + r.set(x, y, x + w, y + h); + return r; + } + + int width() const { return fRight - fLeft; } + int height() const { return fBottom - fTop; } + int area() const { return this->width() * this->height(); } + bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; } + + void setEmpty() { memset(this, 0, sizeof(*this)); } + + void set(int16_t left, int16_t top, int16_t right, int16_t bottom) { + fLeft = left; + fTop = top; + fRight = right; + fBottom = bottom; + } + + void set(const SkIRect& r) { + fLeft = SkToS16(r.fLeft); + fTop = SkToS16(r.fTop); + fRight = SkToS16(r.fRight); + fBottom = SkToS16(r.fBottom); + } +}; + +#endif |