skia2/samplecode
Chris Dalton f9aea7f7e5 Add a tessellation mode that triangulates the inner polygon separately
Wedges fanning out from the center work fine for relatively simple
paths, but for paths made up of thousands of verbs, a fan is an
inefficient triangulation to give the rasterizer. This CL adds a
tessellation mode that draws the inner polygon and standalone cubics
separately, and triangulates the inner polygon by recursive
subdivision.

This reduces the stencil time from 7.4ms -> 3.0ms on desk_ynevsvg.skp.

Change-Id: Ie56e760d98e6c69e9a97752fe851726f36a7f574
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265522
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-01-22 17:01:06 +00:00
..
DecodeFile.h Sample/Filter2View: make it work without /skimages 2019-07-08 17:05:23 +00:00
PerlinPatch.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
Sample2PtRadial.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
Sample3D.cpp remove fun operator overloads 2020-01-22 15:42:44 +00:00
Sample.cpp clean up: remove artificial mouse loc rejects 2020-01-18 17:45:29 +00:00
Sample.h tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleAAClip.cpp Revert "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +00:00
SampleAAGeometry.cpp Move "set_path_pt" from SampleAAGeometry into ToolUtils 2020-01-06 19:00:13 +00:00
SampleAARectModes.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleAARects.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
SampleAndroidShadows.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleAnimatedImage.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleAnimatedText.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleAnimBlur.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleArc.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
SampleAtlas.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleBackdropBounds.cpp Clean up prior backdrop-filter CL 2019-09-05 19:59:46 +00:00
SampleBitmapRect.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleCamera.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleCCPRGeometry.cpp Reland "Remove GrPaint::addColorTextureProcessor" 2020-01-13 16:46:42 +00:00
SampleChart.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleChineseFling.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleCircle.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleClip.cpp Make converting from 4x4 to 3x3 explicit 2020-01-16 22:15:30 +00:00
SampleClipDrawMatch.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleClock.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
SampleColorFilter.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
SampleComplexClip.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleCowboy.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleCusp.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleDegenerateQuads.cpp Allow Tessellator to operate on provided GrQuads 2019-11-26 14:57:44 +00:00
SampleDegenerateTwoPtRadials.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleEffects.cpp SkColorMatrix cleanup 2019-11-04 15:20:15 +00:00
SampleEmboss.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleFatBits.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleFillType.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleFilter2.cpp Sample/Filter2View: make it work without /skimages 2019-07-08 17:05:23 +00:00
SampleFilterQuality.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleFlutterAnimate.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleFontCache.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleGlyphTransform.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleGradients.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
SampleHairCurves.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleHairline.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleHairModes.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleHT.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleIdentityScale.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleImageFilterDAG.cpp Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"" 2019-10-03 19:14:22 +00:00
SampleLayerMask.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleLayers.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleLCD.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleLighting.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleLitAtlas.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleLua.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleManyRects.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleMegaStroke.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
SampleMixer.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleParagraph.cpp Calculating drawing area for a line with shadows 2020-01-21 22:30:52 +00:00
SamplePatch.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SamplePath.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SamplePathClip.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SamplePathEffects.cpp Revert "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +00:00
SamplePathOverstroke.cpp Samples: simplify Sample::Event 2019-07-08 19:09:42 +00:00
SamplePathText.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SamplePolyToPoly.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleQuadStroker.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleRectanizer.cpp Samples: simplify Sample::Event 2019-07-08 19:09:42 +00:00
SampleRegion.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
SampleRepeatTile.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleSG.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleShaders.cpp re-run tools/rewrite_includes.py 2019-07-25 15:40:33 +00:00
SampleShadowColor.cpp Samples: simplify Sample::Event 2019-07-08 19:09:42 +00:00
SampleShadowReference.cpp Samples: simplify Sample::Event 2019-07-08 19:09:42 +00:00
SampleShadowUtils.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleShip.cpp Remove WallTimer class. 2019-07-15 16:06:11 +00:00
SampleSlides.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleStringArt.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleStrokePath.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SampleStrokeRect.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleSubpixelTranslate.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleSVGFile.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleTessellatedWedge.cpp Add a tessellation mode that triangulates the inner polygon separately 2020-01-22 17:01:06 +00:00
SampleTextBox.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleTextEffects.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleTextureDomain.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
SampleTextureUpload.cpp Add adjustable max size for Metal dynamic allocation ring buffer. 2019-08-07 15:59:42 +00:00
SampleThinAA.cpp tools: separate TimeUtils from AnimTimer 2019-07-12 15:05:01 +00:00
SampleUnpremul.cpp remove code now that loopers are dead (w.r.t. canvas and paint) 2019-07-30 12:49:28 +00:00
SampleVertices.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleWritePixels.cpp Samples: add name() virtual 2019-07-03 17:41:16 +00:00
SampleXfer.cpp tools/skui: put all enums in a common namespace 2019-08-29 15:39:32 +00:00
SampleXfermodesBlur.cpp SkBlurMaskFilter.h is only needed for (deprecated) emboss 2019-12-30 15:40:46 +00:00
vertexdump.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00