OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright 2016 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 GrScissorState_DEFINED |
| 9 #define GrScissorState_DEFINED |
| 10 |
| 11 #include "SkRect.h" |
| 12 |
| 13 class GrScissorState { |
| 14 public: |
| 15 GrScissorState() : fEnabled(false) {} |
| 16 GrScissorState(const SkIRect& rect) : fEnabled(true), fRect(rect) {} |
| 17 void setDisabled() { fEnabled = false; } |
| 18 void set(const SkIRect& rect) { fRect = rect; fEnabled = true; } |
| 19 bool SK_WARN_UNUSED_RESULT intersect(const SkIRect& rect) { |
| 20 if (!fEnabled) { |
| 21 this->set(rect); |
| 22 return true; |
| 23 } |
| 24 return fRect.intersect(rect); |
| 25 } |
| 26 bool operator==(const GrScissorState& other) const { |
| 27 return fEnabled == other.fEnabled && |
| 28 (false == fEnabled || fRect == other.fRect); |
| 29 } |
| 30 bool operator!=(const GrScissorState& other) const { return !(*this == other
); } |
| 31 |
| 32 bool enabled() const { return fEnabled; } |
| 33 const SkIRect& rect() const { return fRect; } |
| 34 |
| 35 private: |
| 36 bool fEnabled; |
| 37 SkIRect fRect; |
| 38 }; |
| 39 |
| 40 #endif |
OLD | NEW |