skia2/gm
Ben Wagner c19459bf1e Don't trust glyph runs in XPS.
In XPS if a glyph is out of range, ignore it. Also resolve the default
font in the new way, removing the last user of SkTypefacePriv.

In PDF handle fonts with zero glyphs correctly.

Rewrite SkBitSet to keep track of its size, move properly, and make it
more obvious when certain checks are actually made instead of relying on
undefined behavior.

Add a test in a GM to ensure we don't draw anything when a glyph is
out of range on all backends.

Fix the DirectWrite SkScalerContext to pass this new test for
consistency.

Bug: chromium:1071311
Change-Id: I2583970bf1425f59d0d64e3dd7d28109991f9ea9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-01 22:17:17 +00:00
..
verifiers Reland: Initial checkin of GM verifier framework 2020-02-06 15:01:31 +00:00
3d.cpp clean up public m44 and camera api 2020-04-06 15:34:17 +00:00
aaa.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
aaclip.cpp fix gm to test unpremul etc. 2020-02-11 14:04:02 +00:00
aarectmodes.cpp
aaxfermodes.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
addarc.cpp
all_bitmap_configs.cpp
alpha_image.cpp
alphagradients.cpp
analytic_gradients.cpp
androidblendmodes.cpp
animated_gif.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
animatedimageblurs.cpp
anisotropic.cpp
annotated_text.cpp
arcofzorro.cpp
arcto.cpp
arithmode.cpp
asyncrescaleandread.cpp Fix case of asyncRescaleAndReadPixelsYUV420 for case where SkSurface is 2020-01-27 21:17:56 +00:00
atlastext.cpp
b_119394958.cpp
backdrop_imagefilter_croprect.cpp
backdrop.cpp
badpaint.cpp
bc1_transparency.cpp Fix SW decompression of BC1 and add a GM to check it (take 2). 2020-02-04 13:41:10 +00:00
beziereffects.cpp Rename outputView->writeView and outputSwizzle->writeSwizzle 2020-04-02 15:06:16 +00:00
beziers.cpp
bicubic.cpp add Brian's fiddle as gm/bicubic 2020-01-08 16:40:53 +00:00
bigblurs.cpp
bigmatrix.cpp
bigrect.cpp
bigrrectaaeffect.cpp
bigtext.cpp
bigtileimagefilter.cpp
bitmapcopy.cpp basic, untested BGR 1010102 and 101010x 2020-02-11 21:44:57 +00:00
bitmapfilters.cpp
bitmapimage.cpp
bitmappremul.cpp
bitmaprect.cpp
bitmaprecttest.cpp
bitmapshader.cpp
bitmaptiled.cpp
bleed.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
blend.cpp
blurcircles2.cpp
blurcircles.cpp
blurignorexform.cpp
blurimagevmask.cpp
blurpositioning.cpp
blurquickreject.cpp
blurrect.cpp Remove GrAtlasManager.h from all other .h files 2020-04-07 12:43:46 +00:00
blurredclippedcircle.cpp
blurroundrect.cpp
blurs.cpp
blurtextsmallradii.cpp
bmpfilterqualityrepeat.cpp
bug5252.cpp
bug6643.cpp
bug6783.cpp
bug9331.cpp
bug530095.cpp
bug615686.cpp
cgm.c
cgms.cpp
circle_sizes.cpp
circles.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
circulararcs.cpp Fix stroked arcs for mirror matrices. 2019-12-11 14:44:30 +00:00
circularclips.cpp
clip_error.cpp
clip_sierpinski_region.cpp Support clipRegion on GPU backend 2019-12-13 17:34:33 +00:00
clip_strokerect.cpp
clipdrawdraw.cpp
clippedbitmapshaders.cpp
clockwise.cpp Rename outputView->writeView and outputSwizzle->writeSwizzle 2020-04-02 15:06:16 +00:00
collapsepaths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
color4f.cpp
coloremoji_blendmodes.cpp
coloremoji.cpp
colorfilteralpha8.cpp
colorfilterimagefilter.cpp
colorfilters.cpp
colormatrix.cpp
colorwheel.cpp
complexclip2.cpp
complexclip3.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
complexclip4.cpp
complexclip_blur_tiled.cpp
complexclip.cpp add gm for clipShader in a layer 2020-03-12 18:20:30 +00:00
composeshader.cpp remove localmatrix parameter from Blend and Lerp compose shaders 2020-03-25 17:56:26 +00:00
compositor_quads.cpp
compressed_textures.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
concavepaths.cpp
conicpaths.cpp
constcolorprocessor.cpp Plumb SkMatrixProvider throughout Ganesh 2020-04-20 13:48:40 +00:00
convex_all_line_paths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
convexpaths.cpp
convexpolyclip.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
convexpolyeffect.cpp
copy_to_4444.cpp
crbug_224618.cpp clean up public m44 and camera api 2020-04-06 15:34:17 +00:00
crbug_691386.cpp
crbug_788500.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
crbug_847759.cpp
crbug_884166.cpp
crbug_887103.cpp
crbug_892988.cpp
crbug_899512.cpp
crbug_905548.cpp
crbug_908646.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
crbug_913349.cpp
crbug_918512.cpp
crbug_938592.cpp
crbug_946965.cpp
crbug_947055.cpp
crbug_996140.cpp
crbug_1041204.cpp Add GM for crbug:10141204 2020-01-23 15:06:16 +00:00
crbug_1073670.cpp Reland "fix crbug 1073670" 2020-04-24 20:52:21 +00:00
croppedrects.cpp
crosscontextimage.cpp
cubicpaths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
daa.cpp
dashcircle.cpp
dashcubics.cpp
dashing.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
degeneratesegments.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
dftext_blob_persp.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
dftext.cpp
discard.cpp
displacement.cpp
distantclip.cpp
downsamplebitmap.cpp Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
draw_bitmap_rect_skbug4374.cpp
drawable.cpp
drawatlas.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
drawatlascolor.cpp
drawbitmaprect.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
drawimageset.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
drawminibitmaprect.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
drawquadset.cpp Plumb SkMatrixProvider throughout Ganesh 2020-04-20 13:48:40 +00:00
drawregion.cpp
drawregionmodes.cpp
dropshadowimagefilter.cpp
drrect_small_inner.cpp
drrect.cpp
dstreadshuffle.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
ducky_yuv_blend.cpp move ducky images into images 2020-03-25 12:19:56 +00:00
emboss.cpp
emptypath.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
encode_alpha_jpeg.cpp
encode_platform.cpp
encode_srgb.cpp
encode.cpp
exoticformats.cpp Make exoticformats GM a bit easier to triage 2020-02-03 18:04:25 +00:00
extractbitmap.cpp
fadefilter.cpp
fatpathfill.cpp
fiddle.cpp
filltypes.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
filltypespersp.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
filterbitmap.cpp Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
filterbug.cpp
filterfastbounds.cpp
filterindiabox.cpp Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
flippity.cpp Reland "Reland "Pass in a SkColorType into SkImage_Gpu ctor."" 2020-01-22 18:41:06 +00:00
fontcache.cpp
fontmgr.cpp Remove SkMin32/SkMax32 2020-02-06 17:31:51 +00:00
fontregen.cpp
fontscaler.cpp
fontscalerdistortable.cpp Update fontscalerdistortable to onOnceBeforeDraw. 2020-02-06 16:25:41 +00:00
fpcoordinateoverride.cpp Add sample(child, matrix) to SkSL. 2020-04-14 16:07:34 +00:00
fwidth_squircle.cpp Tracking uniform ownership 2020-04-06 19:02:37 +00:00
gammatext.cpp
getpostextpath.cpp
giantbitmap.cpp
glyph_pos.cpp
gm.cpp Reland: Initial checkin of GM verifier framework 2020-02-06 15:01:31 +00:00
gm.h Reland: Initial checkin of GM verifier framework 2020-02-06 15:01:31 +00:00
gpu_blur_utils.cpp Start on GM to directly test SkGpuBlurUtils 2020-04-29 16:50:56 +00:00
gradient_dirty_laundry.cpp
gradient_matrix.cpp
gradients_2pt_conical.cpp
gradients_degenerate.cpp
gradients_no_texture.cpp
gradients.cpp
gradtext.cpp
grayscalejpg.cpp
hairlines.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
hairmodes.cpp
hardstop_gradients.cpp
highcontrastfilter.cpp Include all tests, enlarge labels 2020-03-26 13:05:39 +00:00
hittestpath.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
hsl.cpp move ducky images into images 2020-03-25 12:19:56 +00:00
hugepath.cpp
image_pict.cpp Make copy proxy in GM budgeted when texgen policy is kDraw. 2020-04-03 20:31:44 +00:00
image_shader.cpp
image.cpp
imagealphathreshold.cpp
imageblur2.cpp
imageblur.cpp
imageblurclampmode.cpp
imageblurrepeatmode.cpp Add GM for blur + repeat bugs 2020-04-16 15:20:39 +00:00
imageblurtiled.cpp
imagefilters.cpp Fix GM for preAbandonGpu flag 2020-03-03 15:14:50 +00:00
imagefiltersbase.cpp
imagefiltersclipped.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
imagefilterscropexpand.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
imagefilterscropped.cpp
imagefiltersgraph.cpp
imagefiltersscaled.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
imagefiltersstroked.cpp
imagefilterstransformed.cpp Remove SkMaxScalar and SkMinScalar 2020-02-06 15:43:22 +00:00
imagefromyuvtextures.cpp Remove GrCaps::getYUVAColorTypeFromBackendFormat(). 2020-04-10 16:00:37 +00:00
imagemagnifier.cpp
imagemakewithfilter.cpp Add d3d support for creating command lists. 2020-03-09 19:42:48 +00:00
imagemasksubset.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
imageresizetiled.cpp
imagescalealigned.cpp
imagesource2.cpp
imagesource.cpp
internal_links.cpp
inverseclip.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
inversepaths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
jpg_color_cube.cpp
labyrinth.cpp
largeglyphblur.cpp
lattice.cpp Remove exotic legacy bitmap drawing entry points: Nine, Lattice 2020-03-11 13:11:47 +00:00
lcdblendmodes.cpp
lcdoverlap.cpp
lcdtext.cpp Restore SkCanvas::kPreserveLCDText_SaveLayerFlag 2020-05-01 20:33:04 +00:00
lighting.cpp
linepaths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
localmatriximagefilter.cpp
localmatriximageshader.cpp
localmatrixshader.cpp
lumafilter.cpp
mac_aa_explorer.cpp
make_raster_image.cpp
makecolorspace.cpp
mandoline.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
manypaths.cpp
matrixconvolution.cpp Add a new gm for large kernel matrix convolution 2020-01-15 14:44:54 +00:00
matriximagefilter.cpp
mipmap.cpp
mixedtextblobs.cpp
mixercolorfilter.cpp remove LerpRed shader 2020-03-12 18:37:17 +00:00
modecolorfilters.cpp Remove SkMin32/SkMax32 2020-02-06 17:31:51 +00:00
morphology.cpp
nested.cpp
ninepatchstretch.cpp Remove exotic legacy bitmap drawing entry points: Nine, Lattice 2020-03-11 13:11:47 +00:00
nonclosedpaths.cpp
offsetimagefilter.cpp
orientation.cpp
ovals.cpp
overdrawcanvas.cpp remove legacy factory for overdrawcolorfilter 2020-02-15 16:53:39 +00:00
overdrawcolorfilter.cpp example of overdraw CF that we can JIT 2020-04-09 18:08:36 +00:00
overstroke.cpp
p3.cpp add SkColorSpace param to SkPixmap::erase() 2020-04-24 14:20:54 +00:00
patch.cpp detect when the localmatrix forces us into a perspective stage 2020-03-04 23:16:41 +00:00
path_stroke_with_zero_length.cpp
patharcto.cpp
pathcontourstart.cpp
patheffects.cpp
pathfill.cpp remember to injectmoveto before arcTo 2020-04-28 19:52:20 +00:00
pathinterior.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
pathmaskcache.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
pathmeasure.cpp
pathopsinverse.cpp add gm to test pathops bug 2020-04-20 18:31:51 +00:00
pathreverse.cpp
pdf_never_embed.cpp
perlinnoise.cpp
perspimages.cpp
perspshaders.cpp Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
picture.cpp
pictureimagefilter.cpp
pictureimagegenerator.cpp
pictureshader.cpp
pictureshadercache.cpp
pictureshadertile.cpp
pixelsnap.cpp
plus.cpp
points.cpp
poly2poly.cpp
polygonoffset.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
polygons.cpp
postercircle.cpp clean up public m44 and camera api 2020-04-06 15:34:17 +00:00
preservefillrule.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
quadpaths.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
radial_gradient_precision.cpp
rasterhandleallocator.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
readpixels.cpp
recordopts.cpp
rectangletexture.cpp Revert "Revert "Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots"""" 2020-03-20 17:11:58 +00:00
rects.cpp
repeated_bitmap.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
resizeimagefilter.cpp
roundrects.cpp
rrect.cpp
rrectclipdrawpaint.cpp
rrects.cpp
runtimecolorfilter.cpp allow client to pass null if there are no uniforms 2020-02-19 14:21:39 +00:00
runtimefunctions.cpp Change SkSL main() from (float x, float y) to (float2 p) 2020-02-07 20:19:13 +00:00
runtimeshader.cpp Add layout(srgb_unpremul) to SkSL 2020-05-01 20:12:43 +00:00
sample_matrix_constant.cpp Plumb SkMatrixProvider throughout Ganesh 2020-04-20 13:48:40 +00:00
sample_matrix_variable.cpp Revert "Revert "Converted texture and runtime effects to use GrMatrixEffect"" 2020-04-28 20:37:44 +00:00
samplelocations.cpp Implement support for indirect draws 2020-04-07 19:41:18 +00:00
samplerstress.cpp
savelayer.cpp Enforce saveLayer ignoring restore paint's mask filter 2020-03-04 15:28:01 +00:00
scaledemoji_rendering.cpp
scaledemoji.cpp
scaledstrokes.cpp
shadermaskfilter.cpp Remove SkMaskFilter::makeWithMatrix() 2020-03-09 21:02:38 +00:00
shadertext3.cpp Remove SkMin32/SkMax32 2020-02-06 17:31:51 +00:00
shadowutils.cpp onProgram for SkGaussianColorFilter, plus gm and bench 2020-03-27 20:41:20 +00:00
shallowgradient.cpp
shapes.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
sharedcorners.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
showmiplevels.cpp
simple_magnification.cpp
simpleaaclip.cpp
simplerect.cpp
skbug1719.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
skbug_257.cpp
skbug_4868.cpp
skbug_5321.cpp
skbug_8664.cpp
skbug_8955.cpp
skbug_9319.cpp
skbug_9819.cpp tweak grading in gm/skbug_9819 for G8 2020-01-28 22:10:36 +00:00
smallarc.cpp
smallpaths.cpp Tweak smallpaths so new paths will show up in GM. 2019-12-19 18:51:49 +00:00
spritebitmap.cpp
srcmode.cpp
srgb.cpp
stlouisarch.cpp
stringart.cpp Remove SkMin32/SkMax32 2020-02-06 17:31:51 +00:00
stroke_rect_shader.cpp
strokedlines.cpp
strokefill.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
strokerect_anisotropic.cpp Improve handling of anisotropic scaling for stroked rects 2020-01-09 14:41:44 +00:00
strokerect.cpp
strokerects.cpp
strokes.cpp
stroketext.cpp Skip degenerate contours in glyphs. 2020-02-13 16:22:42 +00:00
subsetshader.cpp
surface.cpp
tablecolorfilter.cpp
tallstretchedbitmaps.cpp
tessellation.cpp Tracking uniform ownership 2020-04-06 19:02:37 +00:00
testgradient.cpp
texelsubset.cpp Add SkBudgeted parameter to SkImage::makeTextureImage(). 2020-03-18 17:27:41 +00:00
text_scale_skew.cpp
textblob.cpp
textblobblockreordering.cpp
textblobcolortrans.cpp
textblobgeometrychange.cpp
textbloblooper.cpp
textblobmixedsizes.cpp
textblobrandomfont.cpp
textblobshader.cpp
textblobtransforms.cpp
textblobuseaftergpufree.cpp
texteffects.cpp
thinconcavepaths.cpp
thinrects.cpp
thinstrokedrects.cpp
tiledscaledbitmap.cpp
tileimagefilter.cpp
tilemodes_alpha.cpp
tilemodes_scaled.cpp
tilemodes.cpp
tinybitmap.cpp
transparency.cpp
trickycubicstrokes.cpp Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
typeface.cpp Don't trust glyph runs in XPS. 2020-05-01 22:17:17 +00:00
unpremul.cpp
variedtext.cpp
vertices.cpp Change Marker IDs to be strings 2020-04-28 14:12:30 +00:00
verylargebitmap.cpp
video_decoder.cpp
wacky_yuv_formats.cpp Add BGR_10A2 support to Ganesh (take 2) 2020-04-30 15:25:20 +00:00
windowrectangles.cpp Remove unused GrTextureDomain 2020-04-21 18:51:24 +00:00
xfermodeimagefilter.cpp
xfermodes2.cpp
xfermodes3.cpp
xfermodes.cpp
xform.cpp
yuv420_odd_dim.cpp Stop including SkCanvas.h from GrTypesPriv.h 2020-03-30 20:43:34 +00:00
yuvtorgbeffect.cpp Add SkBudgeted parameter to SkImage::makeTextureImage(). 2020-03-18 17:27:41 +00:00