skia2/gn/gm.gni
Stephen White e7a364d435 GrTessellator: fix artifact with exactly-1-px-wide edges.
When path features are exactly a pixel wide, the extruded inner edges
can become collinear and then be removed, since their winding is
zero. We need these edges to be preserved through triangulation,
otherwise opaque portions of the geometry can become transparent.

Since the simplify() pass can handle zero-winding edges just fine, the
the fix is to simply not remove them.

In addition, this changes refactors out disconnect() from all the calls
to remove_edge_above()/remove_edge_below(). It also renames the remaining
function erase_edge() (since it's now unconditional).

Add a new test to a new "thinconcavepaths" GM.

BUG=680260
NOTRY=true

Change-Id: I1d3a436c95a01c4d4ef5dc05503de4312677f65d
Reviewed-on: https://skia-review.googlesource.com/6902
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>
2017-01-12 05:28:22 +00:00

314 lines
8.4 KiB
Plaintext

# Copyright 2016 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Things are easiest for everyone if these source paths are absolute.
_gm = get_path_info("../gm", "abspath")
gm_sources = [
"$_gm/aaa.cpp",
"$_gm/aaclip.cpp",
"$_gm/aarectmodes.cpp",
"$_gm/aaxfermodes.cpp",
"$_gm/addarc.cpp",
"$_gm/all_bitmap_configs.cpp",
"$_gm/alphagradients.cpp",
"$_gm/animatedGif.cpp",
"$_gm/animatedimageblurs.cpp",
"$_gm/anisotropic.cpp",
"$_gm/annotated_text.cpp",
"$_gm/arcofzorro.cpp",
"$_gm/arcto.cpp",
"$_gm/arithmode.cpp",
"$_gm/badpaint.cpp",
"$_gm/beziereffects.cpp",
"$_gm/beziers.cpp",
"$_gm/bigblurs.cpp",
"$_gm/bigmatrix.cpp",
"$_gm/bigrrectaaeffect.cpp",
"$_gm/bigtext.cpp",
"$_gm/bigtileimagefilter.cpp",
"$_gm/bitmapcopy.cpp",
"$_gm/bitmapfilters.cpp",
"$_gm/bitmapimage.cpp",
"$_gm/bitmappremul.cpp",
"$_gm/bitmaprect.cpp",
"$_gm/bitmaprecttest.cpp",
"$_gm/bitmapshader.cpp",
"$_gm/bleed.cpp",
"$_gm/blend.cpp",
"$_gm/blurcircles.cpp",
"$_gm/blurcircles2.cpp",
"$_gm/blurquickreject.cpp",
"$_gm/blurrect.cpp",
"$_gm/blurredclippedcircle.cpp",
"$_gm/blurroundrect.cpp",
"$_gm/blurs.cpp",
"$_gm/bmpfilterqualityrepeat.cpp",
"$_gm/bug5252.cpp",
"$_gm/bug530095.cpp",
"$_gm/bug615686.cpp",
"$_gm/cgm.c",
"$_gm/cgms.cpp",
"$_gm/codec_scaled.cpp",
"$_gm/circles.cpp",
"$_gm/circulararcs.cpp",
"$_gm/circularclips.cpp",
"$_gm/clip_error.cpp",
"$_gm/clip_strokerect.cpp",
"$_gm/clipdrawdraw.cpp",
"$_gm/clippedbitmapshaders.cpp",
"$_gm/color4f.cpp",
"$_gm/colorcube.cpp",
"$_gm/coloremoji.cpp",
"$_gm/colorfilteralpha8.cpp",
"$_gm/colorfilterimagefilter.cpp",
"$_gm/colorfilters.cpp",
"$_gm/colormatrix.cpp",
"$_gm/colorspacexform.cpp",
"$_gm/colortype.cpp",
"$_gm/colortypexfermode.cpp",
"$_gm/colorwheel.cpp",
"$_gm/complexclip.cpp",
"$_gm/complexclip_blur_tiled.cpp",
"$_gm/complexclip2.cpp",
"$_gm/complexclip3.cpp",
"$_gm/complexclip4.cpp",
"$_gm/composeshader.cpp",
"$_gm/concavepaths.cpp",
"$_gm/conicpaths.cpp",
"$_gm/constcolorprocessor.cpp",
"$_gm/convex_all_line_paths.cpp",
"$_gm/convexpaths.cpp",
"$_gm/convexpolyclip.cpp",
"$_gm/convexpolyeffect.cpp",
"$_gm/copyTo4444.cpp",
"$_gm/croppedrects.cpp",
"$_gm/cubicpaths.cpp",
"$_gm/dashcircle.cpp",
"$_gm/dashcubics.cpp",
"$_gm/dashing.cpp",
"$_gm/deferredtextureimage.cpp",
"$_gm/degeneratesegments.cpp",
"$_gm/dftext.cpp",
"$_gm/discard.cpp",
"$_gm/displacement.cpp",
"$_gm/distantclip.cpp",
"$_gm/downsamplebitmap.cpp",
"$_gm/draw_bitmap_rect_skbug4374.cpp",
"$_gm/drawable.cpp",
"$_gm/drawatlas.cpp",
"$_gm/drawatlascolor.cpp",
"$_gm/drawbitmaprect.cpp",
"$_gm/drawfilter.cpp",
"$_gm/drawlooper.cpp",
"$_gm/drawminibitmaprect.cpp",
"$_gm/drawregion.cpp",
"$_gm/drawregionmodes.cpp",
"$_gm/dropshadowimagefilter.cpp",
"$_gm/drrect.cpp",
"$_gm/dstreadshuffle.cpp",
"$_gm/emboss.cpp",
"$_gm/emptypath.cpp",
"$_gm/encode.cpp",
"$_gm/encode-platform.cpp",
"$_gm/encode-srgb.cpp",
"$_gm/extractbitmap.cpp",
"$_gm/fadefilter.cpp",
"$_gm/fatpathfill.cpp",
"$_gm/filltypes.cpp",
"$_gm/filltypespersp.cpp",
"$_gm/filterbitmap.cpp",
"$_gm/filterbug.cpp",
"$_gm/filterfastbounds.cpp",
"$_gm/filterindiabox.cpp",
"$_gm/fontcache.cpp",
"$_gm/fontmgr.cpp",
"$_gm/fontscaler.cpp",
"$_gm/fontscalerdistortable.cpp",
"$_gm/gamma.cpp",
"$_gm/gammacolorfilter.cpp",
"$_gm/gammatext.cpp",
"$_gm/gamut.cpp",
"$_gm/gaussianedge.cpp",
"$_gm/getpostextpath.cpp",
"$_gm/giantbitmap.cpp",
"$_gm/glyph_pos.cpp",
"$_gm/glyph_pos_align.cpp",
"$_gm/gm.cpp",
"$_gm/gradient_matrix.cpp",
"$_gm/gradientDirtyLaundry.cpp",
"$_gm/gradients.cpp",
"$_gm/gradients_2pt_conical.cpp",
"$_gm/gradients_no_texture.cpp",
"$_gm/gradtext.cpp",
"$_gm/grayscalejpg.cpp",
"$_gm/hairlines.cpp",
"$_gm/hairmodes.cpp",
"$_gm/hardstop_gradients.cpp",
"$_gm/hittestpath.cpp",
"$_gm/image.cpp",
"$_gm/image_pict.cpp",
"$_gm/image_shader.cpp",
"$_gm/imagealphathreshold.cpp",
"$_gm/imageblur.cpp",
"$_gm/imageblur2.cpp",
"$_gm/imageblurtiled.cpp",
"$_gm/imagefilters.cpp",
"$_gm/imagefiltersbase.cpp",
"$_gm/imagefiltersclipped.cpp",
"$_gm/imagefilterscropexpand.cpp",
"$_gm/imagefilterscropped.cpp",
"$_gm/imagefiltersgraph.cpp",
"$_gm/imagefiltersscaled.cpp",
"$_gm/imagefiltersstroked.cpp",
"$_gm/imagefilterstransformed.cpp",
"$_gm/imagefromyuvtextures.cpp",
"$_gm/imagegeneratorexternal.cpp",
"$_gm/imagemagnifier.cpp",
"$_gm/imagemakewithfilter.cpp",
"$_gm/imagemasksubset.cpp",
"$_gm/imageresizetiled.cpp",
"$_gm/imagescalealigned.cpp",
"$_gm/imagesource.cpp",
"$_gm/imagesource2.cpp",
"$_gm/imagetoyuvplanes.cpp",
"$_gm/internal_links.cpp",
"$_gm/inversepaths.cpp",
"$_gm/largeglyphblur.cpp",
"$_gm/lattice.cpp",
"$_gm/lcdblendmodes.cpp",
"$_gm/lcdoverlap.cpp",
"$_gm/lcdtext.cpp",
"$_gm/lighting.cpp",
"$_gm/lightingshader.cpp",
"$_gm/lightingshader2.cpp",
"$_gm/lightingshaderbevel.cpp",
"$_gm/linepaths.cpp",
"$_gm/localmatriximagefilter.cpp",
"$_gm/lumafilter.cpp",
"$_gm/matrixconvolution.cpp",
"$_gm/matriximagefilter.cpp",
"$_gm/megalooper.cpp",
"$_gm/mipmap.cpp",
"$_gm/mixedtextblobs.cpp",
"$_gm/modecolorfilters.cpp",
"$_gm/morphology.cpp",
"$_gm/multipicturedraw.cpp",
"$_gm/nested.cpp",
"$_gm/ninepatchstretch.cpp",
"$_gm/nonclosedpaths.cpp",
"$_gm/occludedrrectblur.cpp",
"$_gm/offsetimagefilter.cpp",
"$_gm/ovals.cpp",
"$_gm/overdrawcolorfilter.cpp",
"$_gm/OverStroke.cpp",
"$_gm/patch.cpp",
"$_gm/patchgrid.cpp",
"$_gm/path_stroke_with_zero_length.cpp",
"$_gm/pathcontourstart.cpp",
"$_gm/patheffects.cpp",
"$_gm/pathfill.cpp",
"$_gm/pathinterior.cpp",
"$_gm/pathmaskcache.cpp",
"$_gm/pathopsinverse.cpp",
"$_gm/pathopsskpclip.cpp",
"$_gm/pathreverse.cpp",
"$_gm/pdf_never_embed.cpp",
"$_gm/perlinnoise.cpp",
"$_gm/perspshaders.cpp",
"$_gm/picture.cpp",
"$_gm/pictureimagefilter.cpp",
"$_gm/pictureimagegenerator.cpp",
"$_gm/pictureshader.cpp",
"$_gm/pictureshadertile.cpp",
"$_gm/pixelsnap.cpp",
"$_gm/plus.cpp",
"$_gm/points.cpp",
"$_gm/poly2poly.cpp",
"$_gm/polygons.cpp",
"$_gm/quadpaths.cpp",
"$_gm/readpixels.cpp",
"$_gm/recordopts.cpp",
"$_gm/rectangletexture.cpp",
"$_gm/rects.cpp",
"$_gm/repeated_bitmap.cpp",
"$_gm/resizeimagefilter.cpp",
"$_gm/reveal.cpp",
"$_gm/roundrects.cpp",
"$_gm/rrect.cpp",
"$_gm/rrectclipdrawpaint.cpp",
"$_gm/rrects.cpp",
"$_gm/samplerstress.cpp",
"$_gm/scaledstrokes.cpp",
"$_gm/shaderbounds.cpp",
"$_gm/shadertext.cpp",
"$_gm/shadertext2.cpp",
"$_gm/shadertext3.cpp",
"$_gm/shadowmaps.cpp",
"$_gm/shadows.cpp",
"$_gm/shallowgradient.cpp",
"$_gm/shapes.cpp",
"$_gm/showmiplevels.cpp",
"$_gm/simpleaaclip.cpp",
"$_gm/simplerect.cpp",
"$_gm/skbug_257.cpp",
"$_gm/skbug_4868.cpp",
"$_gm/skbug_5321.cpp",
"$_gm/skbug1719.cpp",
"$_gm/SkLinearBitmapPipelineGM.cpp",
"$_gm/smallarc.cpp",
"$_gm/smallimage.cpp",
"$_gm/smallpaths.cpp",
"$_gm/spritebitmap.cpp",
"$_gm/srcmode.cpp",
"$_gm/stlouisarch.cpp",
"$_gm/stringart.cpp",
"$_gm/stroke_rect_shader.cpp",
"$_gm/strokedlines.cpp",
"$_gm/strokefill.cpp",
"$_gm/strokerect.cpp",
"$_gm/strokerects.cpp",
"$_gm/strokes.cpp",
"$_gm/stroketext.cpp",
"$_gm/subsetshader.cpp",
"$_gm/surface.cpp",
"$_gm/tablecolorfilter.cpp",
"$_gm/tallstretchedbitmaps.cpp",
"$_gm/texdata.cpp",
"$_gm/textblob.cpp",
"$_gm/textblobblockreordering.cpp",
"$_gm/textblobcolortrans.cpp",
"$_gm/textblobgeometrychange.cpp",
"$_gm/textbloblooper.cpp",
"$_gm/textblobmixedsizes.cpp",
"$_gm/textblobrandomfont.cpp",
"$_gm/textblobshader.cpp",
"$_gm/textblobtransforms.cpp",
"$_gm/textblobuseaftergpufree.cpp",
"$_gm/texteffects.cpp",
"$_gm/texturedomaineffect.cpp",
"$_gm/thinconcavepaths.cpp",
"$_gm/thinrects.cpp",
"$_gm/thinstrokedrects.cpp",
"$_gm/tiledscaledbitmap.cpp",
"$_gm/tileimagefilter.cpp",
"$_gm/tilemodes.cpp",
"$_gm/tilemodes_scaled.cpp",
"$_gm/tinybitmap.cpp",
"$_gm/transparency.cpp",
"$_gm/typeface.cpp",
"$_gm/variedtext.cpp",
"$_gm/vertices.cpp",
"$_gm/verttext.cpp",
"$_gm/verttext2.cpp",
"$_gm/verylargebitmap.cpp",
"$_gm/windowrectangles.cpp",
"$_gm/xfermodeimagefilter.cpp",
"$_gm/xfermodes.cpp",
"$_gm/xfermodes2.cpp",
"$_gm/xfermodes3.cpp",
"$_gm/yuvtorgbeffect.cpp",
]