diff options
author | kkinnunen <kkinnunen@nvidia.com> | 2015-04-26 23:18:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-26 23:18:50 -0700 |
commit | 1899651ffc459f5462aa989cd6d08507947b67e4 (patch) | |
tree | 5f7c2c314e932dd8b7053401819f8d8bcba0436a /src/gpu/GrDashLinePathRenderer.h | |
parent | 5d23c3824fd95785110c37e09eeaef8b3d9b9594 (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.h | 46 |
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 |