aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/ops/GrDefaultPathRenderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/ops/GrDefaultPathRenderer.h')
-rw-r--r--src/gpu/ops/GrDefaultPathRenderer.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/gpu/ops/GrDefaultPathRenderer.h b/src/gpu/ops/GrDefaultPathRenderer.h
new file mode 100644
index 0000000000..8e192478b1
--- /dev/null
+++ b/src/gpu/ops/GrDefaultPathRenderer.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrDefaultPathRenderer_DEFINED
+#define GrDefaultPathRenderer_DEFINED
+
+#include "GrPathRenderer.h"
+#include "GrPathStencilSettings.h"
+#include "SkTypes.h"
+
+/**
+ * Subclass that renders the path using the stencil buffer to resolve fill rules
+ * (e.g. winding, even-odd)
+ */
+class SK_API GrDefaultPathRenderer : public GrPathRenderer {
+public:
+ GrDefaultPathRenderer(bool separateStencilSupport, bool stencilWrapOpsSupport);
+
+private:
+
+ StencilSupport onGetStencilSupport(const GrShape&) const override;
+
+ bool onCanDrawPath(const CanDrawPathArgs&) const override;
+
+ bool onDrawPath(const DrawPathArgs&) override;
+
+ void onStencilPath(const StencilPathArgs&) override;
+
+ bool internalDrawPath(GrRenderTargetContext*,
+ const GrPaint&,
+ GrAAType,
+ const GrUserStencilSettings&,
+ const GrClip&,
+ const SkMatrix& viewMatrix,
+ const GrShape&,
+ bool stencilOnly);
+
+ bool fSeparateStencil;
+ bool fStencilWrapOps;
+
+ typedef GrPathRenderer INHERITED;
+};
+
+#endif