1a6aa590efc8201747c069f9da2285250957df01bBrian Salomon/*
2a6aa590efc8201747c069f9da2285250957df01bBrian Salomon * Copyright 2014 Google Inc.
3a6aa590efc8201747c069f9da2285250957df01bBrian Salomon *
4a6aa590efc8201747c069f9da2285250957df01bBrian Salomon * Use of this source code is governed by a BSD-style license that can be
5a6aa590efc8201747c069f9da2285250957df01bBrian Salomon * found in the LICENSE file.
6a6aa590efc8201747c069f9da2285250957df01bBrian Salomon */
7a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
8a6aa590efc8201747c069f9da2285250957df01bBrian Salomon#ifndef GrDashOp_DEFINED
9a6aa590efc8201747c069f9da2285250957df01bBrian Salomon#define GrDashOp_DEFINED
10a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
1198222ac41db83d060433fba0004acb580c54dfe4Brian Salomon#include "GrTypes.h"
12a6aa590efc8201747c069f9da2285250957df01bBrian Salomon#include "SkPathEffect.h"
13a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
1498222ac41db83d060433fba0004acb580c54dfe4Brian Salomonclass GrDrawOp;
1598222ac41db83d060433fba0004acb580c54dfe4Brian Salomonclass GrPaint;
16a6aa590efc8201747c069f9da2285250957df01bBrian Salomonclass GrStyle;
1798222ac41db83d060433fba0004acb580c54dfe4Brian Salomonstruct GrUserStencilSettings;
18a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
19a6aa590efc8201747c069f9da2285250957df01bBrian Salomonnamespace GrDashOp {
20a6aa590efc8201747c069f9da2285250957df01bBrian Salomonenum class AAMode {
21a6aa590efc8201747c069f9da2285250957df01bBrian Salomon    kNone,
22a6aa590efc8201747c069f9da2285250957df01bBrian Salomon    kCoverage,
23a6aa590efc8201747c069f9da2285250957df01bBrian Salomon    kCoverageWithMSAA,
24a6aa590efc8201747c069f9da2285250957df01bBrian Salomon};
25a6aa590efc8201747c069f9da2285250957df01bBrian Salomonstatic const int kAAModeCnt = static_cast<int>(AAMode::kCoverageWithMSAA) + 1;
26a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
2798222ac41db83d060433fba0004acb580c54dfe4Brian Salomonstd::unique_ptr<GrDrawOp> MakeDashLineOp(GrPaint&&, const SkMatrix& viewMatrix,
2898222ac41db83d060433fba0004acb580c54dfe4Brian Salomon                                         const SkPoint pts[2], AAMode, const GrStyle& style,
2998222ac41db83d060433fba0004acb580c54dfe4Brian Salomon                                         const GrUserStencilSettings*);
30a6aa590efc8201747c069f9da2285250957df01bBrian Salomonbool CanDrawDashLine(const SkPoint pts[2], const GrStyle& style, const SkMatrix& viewMatrix);
31a6aa590efc8201747c069f9da2285250957df01bBrian Salomon}
32a6aa590efc8201747c069f9da2285250957df01bBrian Salomon
33a6aa590efc8201747c069f9da2285250957df01bBrian Salomon#endif
34