1 /* 2 * Copyright 2010 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrRect_DEFINED 9 #define GrRect_DEFINED 10 11 #include "SkTypes.h" 12 #include "SkRect.h" 13 14 struct GrIRect16 { 15 int16_t fLeft, fTop, fRight, fBottom; 16 17 static GrIRect16 SK_WARN_UNUSED_RESULT MakeEmpty() { 18 GrIRect16 r; 19 r.setEmpty(); 20 return r; 21 } 22 23 int width() const { return fRight - fLeft; } 24 int height() const { return fBottom - fTop; } 25 int area() const { return this->width() * this->height(); } 26 bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; } 27 28 void setEmpty() { memset(this, 0, sizeof(*this)); } 29 30 void set(const SkIRect& r) { 31 fLeft = SkToS16(r.fLeft); 32 fTop = SkToS16(r.fTop); 33 fRight = SkToS16(r.fRight); 34 fBottom = SkToS16(r.fBottom); 35 } 36 }; 37 38 #endif 39