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