e3453cbd20
Here are the characteristics : - It uses the original path, before stroking - It supports traight lines only (no curves) - It supports butt or square caps only - It supports miter or bevel joins only - No AA support Support for these will be added step by step later on. A first pass at the benchmarks on my linux machine gave me these approximate speed improvements (running all bench with the option '--forceAA 0') : path_stroke_small_long_line 4X path_stroke_small_sawtooth 4X path_stroke_big_rect 4X path_stroke_small_rect 6X path_stroke_big_triangle 4X path_stroke_small_triangle 10X lines_1_BW 1.5X dashline_2_square 1.5X dashline_1_square 1.5X Also note that I can't submit this code until GrDrawTarget::isOpaque() is implemented, unless I just disable my renderer completely for now. BUG=chromium:135111 TEST=The following gms are affected and may require rebaselining : lineclosepath, linepath, strokes_poly Review URL: https://codereview.appspot.com/7026049 git-svn-id: http://skia.googlecode.com/svn/trunk@7047 2bbb7eff-a529-9590-31e7-b0007b416f81
31 lines
1.0 KiB
C++
31 lines
1.0 KiB
C++
/*
|
|
* Copyright 2012 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "GrPathRenderer.h"
|
|
|
|
// This path renderer is made to create geometry (i.e. primitives) from the original path (before
|
|
// the path is stroked) and render using the GPU directly rather than using any software rendering
|
|
// step. It can be rendered in a single pass for simple cases and use multiple passes for features
|
|
// like AA or opacity support.
|
|
|
|
class GrStrokePathRenderer : public GrPathRenderer {
|
|
|
|
public:
|
|
GrStrokePathRenderer();
|
|
|
|
virtual bool canDrawPath(const SkPath& path,
|
|
const SkStrokeRec& stroke,
|
|
const GrDrawTarget* target,
|
|
bool antiAlias) const SK_OVERRIDE;
|
|
|
|
protected:
|
|
virtual bool onDrawPath(const SkPath& path,
|
|
const SkStrokeRec& stroke,
|
|
GrDrawTarget* target,
|
|
bool antiAlias) SK_OVERRIDE;
|
|
};
|