LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/gpu/ops - GrDashLinePathRenderer.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 25 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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 "GrAuditTrail.h"
      11             : #include "GrGpu.h"
      12             : #include "GrPipelineBuilder.h"
      13             : #include "ops/GrDashOp.h"
      14             : #include "ops/GrMeshDrawOp.h"
      15             : 
      16           0 : bool GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const {
      17             :     SkPoint pts[2];
      18             :     bool inverted;
      19           0 :     if (args.fShape->style().isDashed() && args.fShape->asLine(pts, &inverted)) {
      20           0 :         if (args.fAAType == GrAAType::kMixedSamples) {
      21           0 :             return false;
      22             :         }
      23             :         // We should never have an inverse dashed case.
      24           0 :         SkASSERT(!inverted);
      25           0 :         return GrDashOp::CanDrawDashLine(pts, args.fShape->style(), *args.fViewMatrix);
      26             :     }
      27           0 :     return false;
      28             : }
      29             : 
      30           0 : bool GrDashLinePathRenderer::onDrawPath(const DrawPathArgs& args) {
      31           0 :     GR_AUDIT_TRAIL_AUTO_FRAME(args.fRenderTargetContext->auditTrail(),
      32             :                               "GrDashLinePathRenderer::onDrawPath");
      33           0 :     GrDashOp::AAMode aaMode = GrDashOp::AAMode::kNone;
      34           0 :     switch (args.fAAType) {
      35             :         case GrAAType::kNone:
      36           0 :             break;
      37             :         case GrAAType::kCoverage:
      38             :         case GrAAType::kMixedSamples:
      39           0 :             aaMode = GrDashOp::AAMode::kCoverage;
      40           0 :             break;
      41             :         case GrAAType::kMSAA:
      42             :             // In this mode we will use aa between dashes but the outer border uses MSAA. Otherwise,
      43             :             // we can wind up with external edges antialiased and internal edges unantialiased.
      44           0 :             aaMode = GrDashOp::AAMode::kCoverageWithMSAA;
      45           0 :             break;
      46             :     }
      47             :     SkPoint pts[2];
      48           0 :     SkAssertResult(args.fShape->asLine(pts, nullptr));
      49             :     std::unique_ptr<GrLegacyMeshDrawOp> op = GrDashOp::MakeDashLineOp(
      50           0 :             args.fPaint.getColor(), *args.fViewMatrix, pts, aaMode, args.fShape->style());
      51           0 :     if (!op) {
      52           0 :         return false;
      53             :     }
      54             : 
      55           0 :     GrPipelineBuilder pipelineBuilder(std::move(args.fPaint), args.fAAType);
      56           0 :     pipelineBuilder.setUserStencil(args.fUserStencilSettings);
      57             : 
      58           0 :     args.fRenderTargetContext->addLegacyMeshDrawOp(
      59           0 :             std::move(pipelineBuilder), *args.fClip, std::move(op));
      60           0 :     return true;
      61             : }

Generated by: LCOV version 1.13