History log of /external/skia/src/core/SkStrokeRec.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
897c9937636c2287bb217c76da9a56afb43050ac 20-Nov-2015 jvanverth <jvanverth@google.com> Pack and align SkStrokeRec to 4-byte boundary.

The new key for the distance field path cache will contain an
SkStrokeRec. This change guarantees that we don't have any hidden
padding that has garbage values, thereby preventing apparently
equal keys from hashing to two different values. This also has
the nice effect of reducing the size of SkStrokeRec from 24 bytes
to 16 bytes.

Review URL: https://codereview.chromium.org/1465773003
/external/skia/src/core/SkStrokeRec.cpp
a76b7a3b04bc0e937921a1eb38d713c619e60e4e 22-May-2015 caryclark <caryclark@google.com> remove SK_LEGACY_STROKE_CURVES

The change in Chrome has been landed so this guard is no longer needed.

R=reed@google.com,fmalita@chromium.org
BUG=102411

Review URL: https://codereview.chromium.org/1157623003
/external/skia/src/core/SkStrokeRec.cpp
d156d36af871c23ce471a18764f4597f09cfca95 19-May-2015 kkinnunen <kkinnunen@nvidia.com> Make GrStrokeInfo inherit from SkStrokeRec

Make the code more readable by inheriting GrStrokeInfo from SkStrokeRec.
This should avoid the long .getStrokeRec() and .getStrokeRecPtr(). These
were a bit cumbersome especially in cases where an alias variable was
created for these, and then the reader had to keep track to which
StrokeInfo member the StrokeRec alias was pointing.

Removes SkStrokeRec::SkStrokeRec(const SkStrokeRec&). It was memcpying.
Try to play it safe wrt compiler using the possible padding of
superclass for subclass members. Instead, let the compiler generate
the copy constructor. Assignment operator was already
compiler-generated, so at least in that way this is consistent.

Renames GrStrokeInfo::applyDash to applyDashToPath for consistency
with superclass applyToPath.

Review URL: https://codereview.chromium.org/1128113008
/external/skia/src/core/SkStrokeRec.cpp
1297ecfd1d1efaeee41153e491b160228ba4345a 24-Feb-2015 caryclark <caryclark@google.com> flip stroke to chrome compatible define

Review URL: https://codereview.chromium.org/932723003
/external/skia/src/core/SkStrokeRec.cpp
04e4d08556750ff6be4576a4cd4925964c63376f 20-Feb-2015 caryclark <caryclark@google.com> This uses quad approximations of the outer and inner paths describing a stroke. Cubics and conics' thick strokes are approximated with quads as well.

The approximation uses a similar error term as the fill scan converter to determine the number of quads to use.

This also updates SampleApp QuadStroker test with conics, ovals, and stroked text.

Review URL: https://codereview.chromium.org/932113002
/external/skia/src/core/SkStrokeRec.cpp
05d9044de4f1c6e791df66a425638752daac4c6b 12-Feb-2015 reed <reed@google.com> optional res-scale parameter to getFillPath

BUG=skia:
NOTREECHECKS=True
TBR=

Review URL: https://codereview.chromium.org/911053005
/external/skia/src/core/SkStrokeRec.cpp
20b373cf3116905fc5ca1928c9b504851335ca43 01-Dec-2014 cdalton <cdalton@nvidia.com> Add color emoji fallback for nvpr text

BUG=skia:

Review URL: https://codereview.chromium.org/759613005
/external/skia/src/core/SkStrokeRec.cpp
feff7d2d7719f52c7ea52db156003e609002bf04 09-Oct-2014 caryclark <caryclark@google.com> Draw more accurate thick-stroked Beziers (disabled)

Draw thick-stroked Beziers by computing the outset quadratic, measuring the error, and subdividing until the error is within a predetermined limit.

To try this CL out, change src/core/SkStroke.h:18 to

#define QUAD_STROKE_APPROXIMATION 1

or from the command line: CPPFLAGS="-D QUAD_STROKE_APPROXIMATION=1" ./gyp_skia

Here's what's in this CL:

bench/BezierBench.cpp : a microbench for examining where the time is going
gm/beziers.cpp : random Beziers with various thicknesses
gm/smallarc.cpp : a distillation of bug skia:2769
samplecode/SampleRotateCircles.cpp : controls added for error, limit, width
src/core/SkStroke.cpp : the new stroke implementation (disabled)
tests/StrokerTest.cpp : a stroke torture test that checks normal and extreme values

The new stroke algorithm has a tweakable parameter:

stroker.setError(1); (SkStrokeRec.cpp:112)

The stroke error is the allowable gap between the midpoint of the stroke quadratic and the center Bezier. As the projection from the quadratic approaches the endpoints, the error is decreased proportionally so that it is always inside the quadratic curve.

An overview of how this works:
- For a given T range of a Bezier, compute the perpendiculars and find the points outset and inset for some radius.
- Construct tangents for the quadratic stroke.
- If the tangent don't intersect between them (may happen with cubics), subdivide.
- If the quadratic stroke end points are close (again, may happen with cubics), draw a line between them.
- Compute the quadratic formed by the intersecting tangents.
- If the midpoint of the quadratic is close to the midpoint of the Bezier perpendicular, return the quadratic.
- If the end of the stroke at the Bezier midpoint doesn't intersect the quad's bounds, subdivide.
- Find where the Bezier midpoint ray intersects the quadratic.
- If the intersection is too close to the quad's endpoints, subdivide.
- If the error is large proportional to the intersection's distance to the quad's endpoints, subdivide.

BUG=skia:723,skia:2769

Review URL: https://codereview.chromium.org/558163005
/external/skia/src/core/SkStrokeRec.cpp
e61c411c1258a323a010558c08de3d9f8d170dca 12-Jun-2014 egdaniel <egdaniel@google.com> Use vertex attributes for dash effect in gpu

This will allow us to batch dashed lines together when drawing. Also, this removes the need for
a coord transform matrix in the shader, thus we save the cost of uploading a new matrix uniform
everytime we do a simple transform to the dashed line we are drawing.

BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/326103002
/external/skia/src/core/SkStrokeRec.cpp
330313a8a8343876ee596da39da06a5d69badd9c 22-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> My clang now doesn't complain about !"foo".

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22875037

git-svn-id: http://skia.googlecode.com/svn/trunk@10874 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkStrokeRec.cpp
e16efc1882ab34a0bb3ae361a2d37f840044cf87 26-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkStrokeRec.cpp
5f74cf8c49701f514b69dc6f1a8b5c0ffd78af0a 17-Dec-2012 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Follow up on the previous patch :
- Moved the SkStrokeRec class in its own file
- Replaced SkStroke by SkStrokeRec in Ganesh
- Moved path stroking to the Ganesh level in some cases (everytime it isn't required to do it directly in SkGpuDevice). PathEffect and MaskFilter still require path stroking at the SkGpuDevice for now.
- Renamed static functions in SkPath with proper names

* No functionality shold have changed with this patch. This is a step towards enabling Ganesh Path Renderers to decide whether or not to stroke the path rather than always receiving the stroked path as an input argument.

BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6946072

git-svn-id: http://skia.googlecode.com/svn/trunk@6861 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkStrokeRec.cpp