Lines Matching refs:stroke
82 // Will a stroke with the given number of parametric segments and a worst-case rotation of 180
87 // Will a worst-case 180-degree stroke with the given number of parametric segments, and a
92 // Will a stroke with the given number of parametric segments and a worst-case rotation of 360
97 // Will a worst-case 360-degree stroke with the given number of parametric segments, and a
107 // current stroke radius, in the event that there are also enough radial segments to rotate
141 void updateDynamicStroke(const SkStrokeRec& stroke) {
143 fDynamicStroke.set(stroke);
213 // Writes out the given stroke patch exactly as provided, without chopping or checking the
221 // The first stroke doesn't have a previous join (yet). If the current contour ends up
223 // first stroke until we know whether the contour will close. This will allow us to use
245 const SkStrokeRec& stroke) {
249 // "Any zero length subpath ... shall be stroked if the 'stroke-linecap' property has
254 this->writeCaps(contourEndpoint, viewMatrix, stroke);
266 void writeCaps(SkPoint contourEndpoint, const SkMatrix& viewMatrix, const SkStrokeRec& stroke) {
272 if (!stroke.isHairlineStyle()) {
275 // If the stroke is hairline, orient the square on the post-transform x-axis
302 switch (stroke.getCap()) {
308 JoinType roundCapJoinType = (stroke.getJoin() == SkPaint::kRound_Join)
318 auto strokeJoinType = JoinType(stroke.getJoin());
320 if (!stroke.isHairlineStyle()) {
321 // Extend the cap by 1/2 stroke width.
322 lastTangent *= (.5f * stroke.getWidth()) / lastTangent.length();
331 if (!stroke.isHairlineStyle()) {
332 // Set the the cap back by 1/2 stroke width.
333 firstTangent *= (-.5f * stroke.getWidth()) / firstTangent.length();
438 // The stroke tessellation shader assigns special meaning to p0==p1==p2 and p1==p2==p3. If
485 // Writes out the given stroke patch exactly as provided, without chopping or checking the
533 // The first stroke doesn't have a previous join.
617 // Set fLastControlPoint to the next stroke's p0 (which will be equal to the final point of
618 // this stroke). This has the effect of disabling the next stroke's join.
633 // the current stroke radius.
637 // our hardware can support for the current stroke radius. They assume curve rotations of 180
644 // Maximum number of segments we can allocate for a stroke if we are stuffing it in a patch
648 // Additional info on the current stroke radius/join type.
720 const SkStrokeRec& stroke = pathStrokeList->fStroke;
722 stroke.getWidth());
725 patchWriter.updateTolerances(numRadialSegmentsPerRadian, stroke.getJoin());
733 const SkStrokeRec& stroke = pathStroke->fStroke;
735 // Strokes are dynamic. Update tolerances with every new stroke.
737 stroke.getJoin());
738 patchWriter.updateDynamicStroke(stroke);
756 patchWriter.writeCaps(p[-1], shaderMatrix, stroke);
762 patchWriter.writeClose(p[0], shaderMatrix, stroke);
854 // The stroke tessellation shader assigns special meaning to p0==p1==p2 and
884 patchWriter.writeCaps(p[path.countPoints() - 1], shaderMatrix, stroke);