skia2/samplecode
Ben Wagner 668995122f Fix when a glyph has a path
Always call generateMetrics before generatePath so that generateMetrics
can determine which glyph representation to use and if that glyph
representation can be modeled as a path.

Pass an allocator into generateMetrics so that it can set the path to
not existing. This allows generatePath to continue to work as it used
to, creating a path if any path is available. However, generateMetrics
may first set the path to not existing.

Update getPath and internalGetPath to use the path on the glyph if it
has already been set. Update makeGlyph and internalMakeGlyph to always
call generateMetrics first (which is now more like initGlyph).

Update the SkGlyph::PathData to indicate that it is a dev-path and not a
user-path. A user-path will have effects applied to it. A dev-path is
always a resolved path which is always filled -- unless it is hairline.

Update everything else for the knock on effects and to take advantage of
this information.

Bug: chromium:1266022
Change-Id: Id3f3cf5a534ab99f3a5779c910c1d1e191e68b1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/478658
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-12-07 14:58:29 +00:00
..
DecodeFile.h
Sample2PtRadial.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
Sample3D.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
Sample.cpp Almost remove GrContext 2020-10-20 15:52:01 +00:00
Sample.h add std::function option to Click to simplify callsites 2020-04-22 15:41:28 +00:00
SampleAARectModes.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
SampleAARects.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
SampleAndroidShadows.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleAnimatedImage.cpp Fix implicit fallthroughs throughout Skia. 2020-06-11 22:29:53 +00:00
SampleAnimatedText.cpp Reland "Add new virts, hide old ones" 2020-12-30 15:21:01 +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 Migrate to drawImage w/ sampling 2021-01-22 22:38:02 +00:00
SampleAudio.cpp Reland "Add format-specifier warnings to SkDebugf." 2021-06-25 17:57:43 +00:00
SampleCamera.cpp Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
SampleChart.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleChineseFling.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleCircle.cpp Samples: clean up cruft 2019-07-17 18:29:50 +00:00
SampleClip.cpp Fix cases of variable shadowing in /samplecode/. 2021-08-11 13:40:50 +00:00
SampleClock.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
SampleComplexClip.cpp Use SkClipOp::kFoo instead of kFoo_SkClipOp from SkClipOpPriv 2021-08-03 18:08:21 +00:00
SampleCowboy.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleCusp.cpp Reland "Add format-specifier warnings to SkDebugf." 2021-06-25 17:57:43 +00:00
SampleDegenerateQuads.cpp Move more classes to skgpu::v1 namespace 2021-09-16 14:04:16 +00:00
SampleDegenerateTwoPtRadials.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleEffects.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleEmboss.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleFatBits.cpp Use SkClipOp::kFoo instead of kFoo_SkClipOp from SkClipOpPriv 2021-08-03 18:08:21 +00:00
SampleFillType.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleFilterBounds.cpp Don't assume DecomposeCTM and setDeviceCoordSystem always succeed 2021-08-26 14:21:45 +00:00
SampleFitCubicToCircle.cpp Add an interactive sample that fits cubics to circular arcs 2020-06-09 23:04:03 +00:00
SampleFlutterAnimate.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleGlyphTransform.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleGradients.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleHairCurves.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleHairModes.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
SampleImageFilterDAG.cpp Don't assume DecomposeCTM and setDeviceCoordSystem always succeed 2021-08-26 14:21:45 +00:00
SampleLayers.cpp Use SkClipOp::kFoo instead of kFoo_SkClipOp from SkClipOpPriv 2021-08-03 18:08:21 +00:00
SampleLCD.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleManyRects.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleMaterialShadows.cpp Reland "Fix directional shadows." 2021-07-16 16:49:52 +00:00
SampleMegaStroke.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleMixer.cpp Migrate to drawImage w/ sampling 2021-01-22 22:38:02 +00:00
SamplePatch.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
SamplePath.cpp Fix cases of variable shadowing in samplecode/. 2021-08-02 19:25:01 +00:00
SamplePathClip.cpp Redraw duing mouse drag 2021-08-31 00:34:58 +00:00
SamplePathEffects.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SamplePathOverstroke.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SamplePathTessellators.cpp Move breadcrumb and inner-fan triangles out of PathCurveTessellator 2021-11-12 15:26:51 +00:00
SamplePathText.cpp Fix when a glyph has a path 2021-12-07 14:58:29 +00:00
SamplePolyToPoly.cpp Fix cases of variable shadowing in /samplecode/. 2021-08-11 13:40:50 +00:00
SampleQuadStroker.cpp Pass sampling to surface.draw 2021-01-06 19:05:00 +00:00
SampleRectanizer.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleRepeatTile.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
SampleSG.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleShadowColor.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleShadowReference.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleShadowUtils.cpp Fix cases of variable shadowing in /samplecode/. 2021-08-11 13:40:50 +00:00
SampleShip.cpp More hiding of legacy drawImage calls 2021-01-22 13:53:42 +00:00
SampleSimpleStroker.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleSlides.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
SampleStringArt.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleStrokePath.cpp Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
SampleStrokeRect.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleStrokeVerb.cpp Reland "Purge ccpr" 2021-06-19 18:42:38 +00:00
SampleSVGFile.cpp Reland "Fix compilation w/ "skia_enable_svg = false" (take 2)" 2021-09-01 17:54:08 +00:00
SampleTextBox.cpp Add SkShaper::PurgeCaches. 2021-01-27 17:50:30 +00:00
SampleTextureUpload.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleThinAA.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleTiming.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleVariableWidthStroker.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
SampleVertices.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
SampleWritePixels.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SampleXfer.cpp Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
SampleXfermodesBlur.cpp Fix cases of variable shadowing in samplecode/. 2021-08-02 19:25:01 +00:00
vertexdump.cpp