/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "GrDashLinePathRenderer.h" #include "GrGpu.h" #include "effects/GrDashingEffect.h" bool GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { SkPoint pts[2]; if (args.fStyle->isDashed() && args.fPath->isLine(pts)) { return GrDashingEffect::CanDrawDashLine(pts, *args.fStyle, *args.fViewMatrix); } return false; } bool GrDashLinePathRenderer::onDrawPath(const DrawPathArgs& args) { GR_AUDIT_TRAIL_AUTO_FRAME(args.fTarget->getAuditTrail(), "GrDashLinePathRenderer::onDrawPath"); bool msaaIsEnabled = args.fPipelineBuilder->getRenderTarget()->isUnifiedMultisampled(); SkPoint pts[2]; SkAssertResult(args.fPath->isLine(pts)); SkAutoTUnref batch(GrDashingEffect::CreateDashLineBatch(args.fColor, *args.fViewMatrix, pts, args.fAntiAlias, msaaIsEnabled, *args.fStyle)); if (!batch) { return false; } args.fTarget->drawBatch(*args.fPipelineBuilder, *args.fClip, batch); return true; }