skia2/bench
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
..
graphite [graphite] Add an IntersectionTree class 2021-10-19 19:45:01 +00:00
AAClipBench.cpp Simplify SkAAClip to use SkClipOp, not SkRegion::Op 2021-09-20 20:12:38 +00:00
AlternatingColorPatternBench.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
AndroidCodecBench.cpp Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"" 2019-10-03 19:14:22 +00:00
AndroidCodecBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BenchLogger.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BenchLogger.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Benchmark.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Benchmark.h Collect DMSAA stats 2021-05-01 00:46:22 +00:00
BezierBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BigPath.cpp Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +00:00
BigPath.h Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +00:00
BigPathBench.cpp Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +00:00
BitmapRegionDecoderBench.cpp Move SkBitmapRegionCodec into client_utils/android 2020-05-20 20:06:48 +00:00
BitmapRegionDecoderBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlendmodeBench.cpp Extend blendmodes bench to time sprites 2021-07-07 16:21:23 +00:00
BlurBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurImageFilterBench.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
BlurRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurRectsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BulkRectBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
CanvasSaveRestoreBench.cpp Microbench for canvas save/restore calls 2021-07-27 21:08:11 +00:00
ChartBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
check_bench_regressions.py Fix Python3 compatibility 2021-03-25 14:15:35 +00:00
ChecksumBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ChromeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ClearBench.cpp Rename GrSurfaceDrawContext to skgpu::v1::SurfaceDrawContext 2021-07-28 20:12:10 +00:00
ClipMaskBench.cpp remove (unused) clipmask from savelayer 2020-06-15 14:26:44 +00:00
ClipStrategyBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CmapBench.cpp Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
CodecBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CodecBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CodecBenchPriv.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ColorFilterBench.cpp Convert some SkRuntimeEffect::Make to use stage-specific factories 2021-04-21 16:19:57 +00:00
ColorPrivBench.cpp Fix Wunused-but-set-variable warnings 2021-08-05 21:49:18 +00:00
CompositingImagesBench.cpp Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
ControlBench.cpp Fix Wunused-but-set-variable warnings 2021-08-05 21:49:18 +00:00
CoverageBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CreateBackendTextureBench.cpp Rename SkTArray::reserve to reserve_back. 2020-10-14 21:42:11 +00:00
CubicMapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DashBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DDLRecorderBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DecodeBench.cpp Reland "bench: Add PhoneHub assets to skottie-vs-png decode bench" 2021-09-23 17:40:09 +00:00
DisplacementBench.cpp filter-quality is deprecated, pass sampling to drawImage 2021-01-28 03:22:51 +00:00
DrawBitmapAABench.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
EncodeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FilteringBench.cpp other ways to organize samplingoptions? 2020-11-21 02:00:26 +00:00
FindCubicConvex180ChopsBench.cpp Move tessellation-specific functions out of GrPathUtils 2021-11-20 02:47:40 +00:00
FontCacheBench.cpp Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
FSRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GameBench.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
GeometryBench.cpp Only expose isConvex on path publicly. 2020-08-28 16:56:29 +00:00
GlyphQuadFillBench.cpp make drawMatrix use more explicit 2021-11-18 20:57:32 +00:00
GMBench.cpp Add a convenience to downcast contexts into GrDirectContext 2020-07-07 18:13:50 +00:00
GMBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GradientBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrMemoryPoolBench.cpp Move GR_MAKE_BITFIELD_OPS and GrAlignTo to non-GPU files 2021-11-01 17:26:59 +00:00
GrMipmapBench.cpp Don't use filter-quality 2021-01-30 16:09:23 +00:00
GrQuadBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
GrResourceCacheBench.cpp Add scratch-only version of performDeferredCleanup 2021-06-10 18:13:23 +00:00
gUniqueGlyphIDs.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
HairlinePathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_ScaleNumColors.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_ScaleNumHardStops.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_SpecialHardStops.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ImageBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ImageCacheBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ImageCacheBudgetBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
ImageCycleBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
ImageFilterCollapse.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
ImageFilterDAGBench.cpp Add SkImageFilters::Blend rename for Xfermode filter 2020-10-13 14:28:26 +00:00
InterpBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
JSONBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
LightingBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
LineBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
Matrix44Bench.cpp Add mapRect function and RectToRect constructor to SkM44 2021-05-05 19:57:26 +00:00
MatrixBench.cpp Fix Wunused-but-set-variable warnings 2021-08-05 21:49:18 +00:00
MatrixConvolutionBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MemsetBench.cpp Move sk_memset* from SkUtils to SkOpts 2021-11-03 17:03:21 +00:00
MergeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
microbench.json
MipmapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MorphologyBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MSKPBench.cpp MSKP support in nanobench 2021-04-30 20:04:08 +00:00
MSKPBench.h MSKP support in nanobench 2021-04-30 20:04:08 +00:00
MutexBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
nanobench.cpp Use CommonFlags namespace for other flags/functions 2021-10-14 14:34:21 +00:00
nanobench.h Remove neglected fillOptions function from nanobench. 2021-09-14 19:49:03 +00:00
ParagraphBench.cpp Fix compilation with "skia_enable_skparagraph = false" 2021-08-31 18:50:20 +00:00
PatchBench.cpp Remove drawPatch/Vertices helpers that don't take SkBlendMode 2021-11-18 21:57:32 +00:00
PathBench.cpp Pass CTM to path effects (experimental) 2021-07-13 18:42:55 +00:00
PathIterBench.cpp Fix shadowed-variable warning in PathIter bench code. 2021-08-19 13:21:20 +00:00
PathOpsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathTextBench.cpp Fix when a glyph has a path 2021-12-07 14:58:29 +00:00
PDFBench.cpp Bitmap.asImage() 2020-12-23 15:54:57 +00:00
PerlinNoiseBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PictureNestingBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PictureOverheadBench.cpp Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
PicturePlaybackBench.cpp Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
PolyUtilsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PremulAndUnpremulAlphaOpsBench.cpp Bitmap.asImage() 2020-12-23 15:54:57 +00:00
QuickRejectBench.cpp Revert "Revert "move onto new factories for SkMatrix"" 2020-05-21 16:58:39 +00:00
ReadPixBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RecordingBench.cpp Can we remove this flag to picture-recording? 2020-08-20 12:29:42 +00:00
RecordingBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RectanizerBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
RectBench.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
RefCntBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RegionBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RegionContainBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RepeatTileBench.cpp Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
ResultsWriter.h Revert "Don't keep "outResultsFile" open in nanobench" 2021-06-19 22:12:48 +00:00
RotatedRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RTreeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ScalarBench.cpp Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
ShaderMaskFilterBench.cpp Reland "remove drawing from ShaderMaskBench ctor" 2021-09-24 17:14:10 +00:00
ShadowBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ShaperBench.cpp Shaper Tests: fix g3 build 2019-05-03 18:10:46 +00:00
ShapesBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
Sk4fBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkGlyphCacheBench.cpp Remove SkTextBlobDiffCanvas, use tracking device directly with base SkCanvas 2021-05-06 16:11:57 +00:00
SkGlyphCacheBench.h nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
SKPAnimationBench.cpp Remove uses of SkCanvas::flush 2020-11-20 21:42:38 +00:00
SKPAnimationBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SKPBench.cpp Collect DMSAA stats 2021-05-01 00:46:22 +00:00
SKPBench.h Collect DMSAA stats 2021-05-01 00:46:22 +00:00
skpbench.json
SkSLBench.cpp Update SkSL benchmarks to use currently generated shaders 2021-11-23 18:01:08 +00:00
SkSLBench.h Add heap usage of SkSL::Compiler to nanobench output 2020-07-09 00:05:28 +00:00
SortBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
StreamBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
StrokeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SwizzleBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TableBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TessellateBench.cpp Move Ganesh-specific bits of StrokeTessellator into an #ifdef 2021-11-20 02:35:39 +00:00
TextBlobBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TileBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
TileImageFilterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TopoSortBench.cpp Move SkTTopoSort to src/gpu and rename it to GrTTopoSort 2020-11-17 14:17:03 +00:00
TriangulatorBench.cpp Move triangulators and tessellators into gpu/geometry 2021-08-17 19:25:25 +00:00
TypefaceBench.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
VertBench.cpp If we have no textures, suppress the shader 2021-07-23 23:59:08 +00:00
VertexColorSpaceBench.cpp Store the correct number of samples in GrProgramInfo 2021-08-26 17:24:47 +00:00
WritePixelsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
WriterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00