Index: src/gpu/GrFixedClip.h |
diff --git a/src/gpu/GrFixedClip.h b/src/gpu/GrFixedClip.h |
index 8b3a9c1c9e9d7827f687a22be23b9f010502b0e8..6fb7d23ed1a317dc6584b838957f21ca523b553b 100644 |
--- a/src/gpu/GrFixedClip.h |
+++ b/src/gpu/GrFixedClip.h |
@@ -9,7 +9,8 @@ |
#define GrFixedClip_DEFINED |
#include "GrClip.h" |
-#include "GrTypesPriv.h" |
+#include "GrScissorState.h" |
+#include "GrWindowRectsState.h" |
/** |
* GrFixedClip is a clip that gets implemented by fixed-function hardware. |
@@ -29,32 +30,26 @@ public: |
return fScissorState.intersect(irect); |
} |
- bool quickContains(const SkRect& rect) const final { |
- return !fScissorState.enabled() || GrClip::IsInsideClip(fScissorState.rect(), rect); |
+ const GrWindowRectsState& windowRectsState() const { return fWindowRectsState; } |
+ bool hasWindowRectangles() const { return fWindowRectsState.enabled(); } |
+ |
+ void disableWindowRectangles() { fWindowRectsState.setDisabled(); } |
+ |
+ void setWindowRectangles(const GrWindowRectangles& windows, const SkIPoint& origin, |
+ GrWindowRectsState::Mode mode) { |
+ fWindowRectsState.set(windows, origin, mode); |
} |
- void getConservativeBounds(int width, int height, SkIRect* devResult, |
- bool* isIntersectionOfRects) const final; |
- |
- bool isRRect(const SkRect& rtBounds, SkRRect* rr, bool* aa) const override { |
- if (fScissorState.enabled()) { |
- SkRect rect = SkRect::Make(fScissorState.rect()); |
- if (!rect.intersects(rtBounds)) { |
- return false; |
- } |
- rr->setRect(rect); |
- *aa = false; |
- return true; |
- } |
- return false; |
- }; |
- |
- bool apply(GrContext*, GrDrawContext*, bool useHWAA, bool hasUserStencilSettings, |
- GrAppliedClip* out) const final; |
+ |
+ bool quickContains(const SkRect&) const override; |
+ void getConservativeBounds(int w, int h, SkIRect* devResult, bool* iior) const override; |
+ bool isRRect(const SkRect& rtBounds, SkRRect* rr, bool* aa) const override; |
+ bool apply(GrContext*, GrDrawContext*, bool, bool, GrAppliedClip* out) const override; |
static const GrFixedClip& Disabled(); |
private: |
- GrScissorState fScissorState; |
+ GrScissorState fScissorState; |
+ GrWindowRectsState fWindowRectsState; |
}; |
#endif |