123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrWindowRectsState_DEFINED
- #define GrWindowRectsState_DEFINED
- #include "src/gpu/GrWindowRectangles.h"
- class GrWindowRectsState {
- public:
- enum class Mode : bool {
- kExclusive,
- kInclusive
- };
- GrWindowRectsState() : fMode(Mode::kExclusive) {}
- GrWindowRectsState(const GrWindowRectangles& windows, Mode mode)
- : fMode(mode)
- , fWindows(windows) {
- }
- bool enabled() const { return Mode::kInclusive == fMode || !fWindows.empty(); }
- Mode mode() const { return fMode; }
- const GrWindowRectangles& windows() const { return fWindows; }
- int numWindows() const { return fWindows.count(); }
- void setDisabled() {
- fMode = Mode::kExclusive;
- fWindows.reset();
- }
- void set(const GrWindowRectangles& windows, Mode mode) {
- fMode = mode;
- fWindows = windows;
- }
- bool operator==(const GrWindowRectsState& that) const {
- if (fMode != that.fMode) {
- return false;
- }
- return fWindows == that.fWindows;
- }
- bool operator!=(const GrWindowRectsState& that) const { return !(*this == that); }
- private:
- Mode fMode;
- GrWindowRectangles fWindows;
- };
- #endif
|