1/*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "GrDashLinePathRenderer.h"
9
10#include "GrGpu.h"
11#include "effects/GrDashingEffect.h"
12
13GrDashLinePathRenderer::GrDashLinePathRenderer(GrContext* context)
14        : fGpu(SkRef(context->getGpu())) {
15}
16
17GrDashLinePathRenderer::~GrDashLinePathRenderer() {
18}
19
20bool GrDashLinePathRenderer::canDrawPath(const GrDrawTarget* target,
21                                         const GrPipelineBuilder* pipelineBuilder,
22                                         const SkMatrix& viewMatrix,
23                                         const SkPath& path,
24                                         const GrStrokeInfo& stroke,
25                                         bool antiAlias) const {
26    SkPoint pts[2];
27    if (stroke.isDashed() && path.isLine(pts)) {
28        return GrDashingEffect::CanDrawDashLine(pts, stroke, viewMatrix);
29    }
30    return false;
31}
32
33bool GrDashLinePathRenderer::onDrawPath(GrDrawTarget* target,
34                                        GrPipelineBuilder* pipelineBuilder,
35                                        GrColor color,
36                                        const SkMatrix& viewMatrix,
37                                        const SkPath& path,
38                                        const GrStrokeInfo& stroke,
39                                        bool useAA) {
40    SkPoint pts[2];
41    SkAssertResult(path.isLine(pts));
42    return GrDashingEffect::DrawDashLine(target, pipelineBuilder, color,
43                                         viewMatrix, pts, useAA, stroke);
44}
45