aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrDashLinePathRenderer.h
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2015-04-26 23:18:49 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-26 23:18:50 -0700
commit1899651ffc459f5462aa989cd6d08507947b67e4 (patch)
tree5f7c2c314e932dd8b7053401819f8d8bcba0436a /src/gpu/GrDashLinePathRenderer.h
parent5d23c3824fd95785110c37e09eeaef8b3d9b9594 (diff)
Extract gpu line dashing to GrDashLinePathRenderer
Move line dashing logic from GrContext::drawPath to GrDashLinePathRenderer. This makes it possible to let path renderers render arbitrary dashed paths. End goal is to implement dashing in GrStencilAndCoverPathRenderer. Review URL: https://codereview.chromium.org/1100073003
Diffstat (limited to 'src/gpu/GrDashLinePathRenderer.h')
-rw-r--r--src/gpu/GrDashLinePathRenderer.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/gpu/GrDashLinePathRenderer.h b/src/gpu/GrDashLinePathRenderer.h
new file mode 100644
index 0000000000..632f30a898
--- /dev/null
+++ b/src/gpu/GrDashLinePathRenderer.h
@@ -0,0 +1,46 @@
+
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrDashLinePathRenderer_DEFINED
+#define GrDashLinePathRenderer_DEFINED
+
+#include "GrPathRenderer.h"
+
+class GrDashLinePathRenderer : public GrPathRenderer {
+public:
+ GrDashLinePathRenderer(GrContext*);
+ ~GrDashLinePathRenderer();
+
+ bool canDrawPath(const GrDrawTarget*,
+ const GrPipelineBuilder*,
+ const SkMatrix& viewMatrix,
+ const SkPath&,
+ const GrStrokeInfo&,
+ bool antiAlias) const override;
+
+protected:
+ StencilSupport onGetStencilSupport(const GrDrawTarget*,
+ const GrPipelineBuilder*,
+ const SkPath&,
+ const GrStrokeInfo&) const override {
+ return kNoSupport_StencilSupport;
+ }
+
+ bool onDrawPath(GrDrawTarget*,
+ GrPipelineBuilder*,
+ GrColor,
+ const SkMatrix& viewMatrix,
+ const SkPath&,
+ const GrStrokeInfo&,
+ bool antiAlias) override;
+ SkAutoTUnref<GrGpu> fGpu;
+ typedef GrPathRenderer INHERITED;
+};
+
+
+#endif