skia2/gn/gm.gni
Michael Ludwig 397fdfdf18 Implement separate crop filter
Right now the crop image filter is hidden in src/ and is only used in
a new GM to test out its functionality. In later CLs the plan will be to
migrate individual filter effects away from the built-in crop rect to
composing themselves with this image filter.

Eventually, the crop filter will be made public as part of the
SkImageFilters factories so there can be independent control on input
and output cropping. Its features will also be expanded to support more
tile modes than just kDecal.

Once all other effects rely on this crop filter, the legacy system can
be deleted and the effects can be more easily updated to the rest of the
new image filter API. This crop filter is actually the first image
filter to be implemented only in terms of the new API (and skif coord
space types). This highlighted a few pain points that still exist in
terms of the API, where I have added comments to capture how they could
be improved. Unfortunately, they aren't addressable until the rest of
the implementations have been migrated.

Bug: skia:9296
Change-Id: I12e96b679c246a9ec4e1e61f640414a11f1b6bb5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451597
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-09-24 20:18:36 +00:00

427 lines
11 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/3d.cpp",
"$_gm/aaa.cpp",
"$_gm/aaclip.cpp",
"$_gm/aarectmodes.cpp",
"$_gm/aaxfermodes.cpp",
"$_gm/addarc.cpp",
"$_gm/all_bitmap_configs.cpp",
"$_gm/alpha_image.cpp",
"$_gm/alphagradients.cpp",
"$_gm/analytic_gradients.cpp",
"$_gm/androidblendmodes.cpp",
"$_gm/animated_gif.cpp",
"$_gm/animated_image_orientation.cpp",
"$_gm/animatedimageblurs.cpp",
"$_gm/anisotropic.cpp",
"$_gm/annotated_text.cpp",
"$_gm/arcofzorro.cpp",
"$_gm/arcto.cpp",
"$_gm/arithmode.cpp",
"$_gm/asyncrescaleandread.cpp",
"$_gm/b_119394958.cpp",
"$_gm/backdrop.cpp",
"$_gm/backdrop_imagefilter_croprect.cpp",
"$_gm/badpaint.cpp",
"$_gm/bc1_transparency.cpp",
"$_gm/beziers.cpp",
"$_gm/bicubic.cpp",
"$_gm/bigblurs.cpp",
"$_gm/bigmatrix.cpp",
"$_gm/bigrect.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/bitmaptiled.cpp",
"$_gm/bleed.cpp",
"$_gm/blend.cpp",
"$_gm/blurcircles.cpp",
"$_gm/blurcircles2.cpp",
"$_gm/blurignorexform.cpp",
"$_gm/blurimagevmask.cpp",
"$_gm/blurpositioning.cpp",
"$_gm/blurquickreject.cpp",
"$_gm/blurrect.cpp",
"$_gm/blurredclippedcircle.cpp",
"$_gm/blurroundrect.cpp",
"$_gm/blurs.cpp",
"$_gm/blurtextsmallradii.cpp",
"$_gm/bmpfilterqualityrepeat.cpp",
"$_gm/bug5252.cpp",
"$_gm/bug530095.cpp",
"$_gm/bug615686.cpp",
"$_gm/bug6643.cpp",
"$_gm/bug6783.cpp",
"$_gm/bug9331.cpp",
"$_gm/cgm.c",
"$_gm/cgms.cpp",
"$_gm/circle_sizes.cpp",
"$_gm/circulararcs.cpp",
"$_gm/circularclips.cpp",
"$_gm/clear_swizzle.cpp",
"$_gm/clip_error.cpp",
"$_gm/clip_sierpinski_region.cpp",
"$_gm/clip_strokerect.cpp",
"$_gm/clipdrawdraw.cpp",
"$_gm/clippedbitmapshaders.cpp",
"$_gm/collapsepaths.cpp",
"$_gm/color4f.cpp",
"$_gm/coloremoji.cpp",
"$_gm/coloremoji_blendmodes.cpp",
"$_gm/colorfilteralpha8.cpp",
"$_gm/colorfilterimagefilter.cpp",
"$_gm/colorfilters.cpp",
"$_gm/colormatrix.cpp",
"$_gm/colorspace.cpp",
"$_gm/colorwheel.cpp",
"$_gm/colrv1.cpp",
"$_gm/complexclip.cpp",
"$_gm/complexclip2.cpp",
"$_gm/complexclip3.cpp",
"$_gm/complexclip4.cpp",
"$_gm/complexclip_blur_tiled.cpp",
"$_gm/composecolorfilter.cpp",
"$_gm/composeshader.cpp",
"$_gm/compositor_quads.cpp",
"$_gm/compressed_textures.cpp",
"$_gm/concavepaths.cpp",
"$_gm/conicpaths.cpp",
"$_gm/convex_all_line_paths.cpp",
"$_gm/convexpaths.cpp",
"$_gm/convexpolyclip.cpp",
"$_gm/copy_to_4444.cpp",
"$_gm/crbug_1041204.cpp",
"$_gm/crbug_1073670.cpp",
"$_gm/crbug_1086705.cpp",
"$_gm/crbug_1113794.cpp",
"$_gm/crbug_1139750.cpp",
"$_gm/crbug_1156804.cpp",
"$_gm/crbug_1162942.cpp",
"$_gm/crbug_1167277.cpp",
"$_gm/crbug_1174186.cpp",
"$_gm/crbug_1174354.cpp",
"$_gm/crbug_1177833.cpp",
"$_gm/crbug_224618.cpp",
"$_gm/crbug_691386.cpp",
"$_gm/crbug_788500.cpp",
"$_gm/crbug_847759.cpp",
"$_gm/crbug_884166.cpp",
"$_gm/crbug_887103.cpp",
"$_gm/crbug_892988.cpp",
"$_gm/crbug_899512.cpp",
"$_gm/crbug_905548.cpp",
"$_gm/crbug_908646.cpp",
"$_gm/crbug_913349.cpp",
"$_gm/crbug_918512.cpp",
"$_gm/crbug_938592.cpp",
"$_gm/crbug_946965.cpp",
"$_gm/crbug_947055.cpp",
"$_gm/crbug_996140.cpp",
"$_gm/crop_imagefilter.cpp",
"$_gm/croppedrects.cpp",
"$_gm/crosscontextimage.cpp",
"$_gm/cubicpaths.cpp",
"$_gm/daa.cpp",
"$_gm/dashcircle.cpp",
"$_gm/dashcubics.cpp",
"$_gm/dashing.cpp",
"$_gm/degeneratesegments.cpp",
"$_gm/dftext.cpp",
"$_gm/dftext_blob_persp.cpp",
"$_gm/discard.cpp",
"$_gm/displacement.cpp",
"$_gm/distantclip.cpp",
"$_gm/draw_bitmap_rect_skbug4374.cpp",
"$_gm/drawable.cpp",
"$_gm/drawatlas.cpp",
"$_gm/drawatlascolor.cpp",
"$_gm/drawbitmaprect.cpp",
"$_gm/drawglyphs.cpp",
"$_gm/drawimageset.cpp",
"$_gm/drawminibitmaprect.cpp",
"$_gm/drawregion.cpp",
"$_gm/drawregionmodes.cpp",
"$_gm/dropshadowimagefilter.cpp",
"$_gm/drrect.cpp",
"$_gm/drrect_small_inner.cpp",
"$_gm/dsl_processor_test.cpp",
"$_gm/dstreadshuffle.cpp",
"$_gm/ducky_yuv_blend.cpp",
"$_gm/emboss.cpp",
"$_gm/emptypath.cpp",
"$_gm/encode.cpp",
"$_gm/encode_alpha_jpeg.cpp",
"$_gm/encode_color_types.cpp",
"$_gm/encode_platform.cpp",
"$_gm/encode_srgb.cpp",
"$_gm/exoticformats.cpp",
"$_gm/fadefilter.cpp",
"$_gm/fatpathfill.cpp",
"$_gm/filltypes.cpp",
"$_gm/filltypespersp.cpp",
"$_gm/filterbug.cpp",
"$_gm/filterfastbounds.cpp",
"$_gm/filterindiabox.cpp",
"$_gm/flippity.cpp",
"$_gm/fontcache.cpp",
"$_gm/fontmgr.cpp",
"$_gm/fontregen.cpp",
"$_gm/fontscaler.cpp",
"$_gm/fontscalerdistortable.cpp",
"$_gm/fpcoordinateoverride.cpp",
"$_gm/gammatext.cpp",
"$_gm/getpostextpath.cpp",
"$_gm/giantbitmap.cpp",
"$_gm/glyph_pos.cpp",
"$_gm/gm.cpp",
"$_gm/gm.h",
"$_gm/gradient_dirty_laundry.cpp",
"$_gm/gradient_matrix.cpp",
"$_gm/gradients.cpp",
"$_gm/gradients_2pt_conical.cpp",
"$_gm/gradients_degenerate.cpp",
"$_gm/gradients_no_texture.cpp",
"$_gm/gradtext.cpp",
"$_gm/grayscalejpg.cpp",
"$_gm/hairlines.cpp",
"$_gm/hairmodes.cpp",
"$_gm/hardstop_gradients.cpp",
"$_gm/highcontrastfilter.cpp",
"$_gm/hittestpath.cpp",
"$_gm/hsl.cpp",
"$_gm/hugepath.cpp",
"$_gm/image.cpp",
"$_gm/image_pict.cpp",
"$_gm/image_shader.cpp",
"$_gm/imagealphathreshold.cpp",
"$_gm/imageblur.cpp",
"$_gm/imageblur2.cpp",
"$_gm/imageblurclampmode.cpp",
"$_gm/imageblurrepeatmode.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/imagemagnifier.cpp",
"$_gm/imagemakewithfilter.cpp",
"$_gm/imagemasksubset.cpp",
"$_gm/imageresizetiled.cpp",
"$_gm/imagescalealigned.cpp",
"$_gm/imagesource.cpp",
"$_gm/imagesource2.cpp",
"$_gm/internal_links.cpp",
"$_gm/inverseclip.cpp",
"$_gm/inversepaths.cpp",
"$_gm/jpg_color_cube.cpp",
"$_gm/labyrinth.cpp",
"$_gm/largeclippedpath.cpp",
"$_gm/largeglyphblur.cpp",
"$_gm/lattice.cpp",
"$_gm/lcdblendmodes.cpp",
"$_gm/lcdoverlap.cpp",
"$_gm/lcdtext.cpp",
"$_gm/lighting.cpp",
"$_gm/linepaths.cpp",
"$_gm/localmatriximagefilter.cpp",
"$_gm/localmatriximageshader.cpp",
"$_gm/localmatrixshader.cpp",
"$_gm/lumafilter.cpp",
"$_gm/mac_aa_explorer.cpp",
"$_gm/make_raster_image.cpp",
"$_gm/makecolorspace.cpp",
"$_gm/mandoline.cpp",
"$_gm/manypathatlases.cpp",
"$_gm/manypaths.cpp",
"$_gm/matrixconvolution.cpp",
"$_gm/matriximagefilter.cpp",
"$_gm/mipmap.cpp",
"$_gm/mixedtextblobs.cpp",
"$_gm/mixercolorfilter.cpp",
"$_gm/modecolorfilters.cpp",
"$_gm/morphology.cpp",
"$_gm/nested.cpp",
"$_gm/ninepatchstretch.cpp",
"$_gm/nonclosedpaths.cpp",
"$_gm/offsetimagefilter.cpp",
"$_gm/orientation.cpp",
"$_gm/ovals.cpp",
"$_gm/overdrawcanvas.cpp",
"$_gm/overdrawcolorfilter.cpp",
"$_gm/overstroke.cpp",
"$_gm/p3.cpp",
"$_gm/particles.cpp",
"$_gm/patch.cpp",
"$_gm/path_stroke_with_zero_length.cpp",
"$_gm/patharcto.cpp",
"$_gm/pathcontourstart.cpp",
"$_gm/patheffects.cpp",
"$_gm/pathfill.cpp",
"$_gm/pathinterior.cpp",
"$_gm/pathmaskcache.cpp",
"$_gm/pathmeasure.cpp",
"$_gm/pathopsinverse.cpp",
"$_gm/pathreverse.cpp",
"$_gm/pdf_never_embed.cpp",
"$_gm/perlinnoise.cpp",
"$_gm/perspimages.cpp",
"$_gm/perspshaders.cpp",
"$_gm/picture.cpp",
"$_gm/pictureimagefilter.cpp",
"$_gm/pictureimagegenerator.cpp",
"$_gm/pictureshader.cpp",
"$_gm/pictureshadercache.cpp",
"$_gm/pictureshadertile.cpp",
"$_gm/pixelsnap.cpp",
"$_gm/plus.cpp",
"$_gm/points.cpp",
"$_gm/poly2poly.cpp",
"$_gm/polygonoffset.cpp",
"$_gm/polygons.cpp",
"$_gm/postercircle.cpp",
"$_gm/quadpaths.cpp",
"$_gm/radial_gradient_precision.cpp",
"$_gm/rasterhandleallocator.cpp",
"$_gm/readpixels.cpp",
"$_gm/recordopts.cpp",
"$_gm/repeated_bitmap.cpp",
"$_gm/resizeimagefilter.cpp",
"$_gm/roundrects.cpp",
"$_gm/rrect.cpp",
"$_gm/rrectclipdrawpaint.cpp",
"$_gm/rsxtext.cpp",
"$_gm/runtimecolorfilter.cpp",
"$_gm/runtimeeffectimage.cpp",
"$_gm/runtimefunctions.cpp",
"$_gm/runtimeimagefilter.cpp",
"$_gm/runtimeintrinsics.cpp",
"$_gm/runtimeshader.cpp",
"$_gm/samplerstress.cpp",
"$_gm/savelayer.cpp",
"$_gm/scaledemoji.cpp",
"$_gm/scaledemoji_rendering.cpp",
"$_gm/scaledstrokes.cpp",
"$_gm/shadermaskfilter.cpp",
"$_gm/shadertext3.cpp",
"$_gm/shadowutils.cpp",
"$_gm/shallowgradient.cpp",
"$_gm/shapes.cpp",
"$_gm/sharedcorners.cpp",
"$_gm/showmiplevels.cpp",
"$_gm/simple_magnification.cpp",
"$_gm/simpleaaclip.cpp",
"$_gm/simplerect.cpp",
"$_gm/skbug1719.cpp",
"$_gm/skbug_12212.cpp",
"$_gm/skbug_257.cpp",
"$_gm/skbug_4868.cpp",
"$_gm/skbug_5321.cpp",
"$_gm/skbug_8664.cpp",
"$_gm/skbug_8955.cpp",
"$_gm/skbug_9319.cpp",
"$_gm/skbug_9819.cpp",
"$_gm/smallarc.cpp",
"$_gm/smallpaths.cpp",
"$_gm/spritebitmap.cpp",
"$_gm/srcmode.cpp",
"$_gm/srgb.cpp",
"$_gm/stlouisarch.cpp",
"$_gm/stringart.cpp",
"$_gm/stroke_rect_shader.cpp",
"$_gm/strokedlines.cpp",
"$_gm/strokefill.cpp",
"$_gm/strokerect.cpp",
"$_gm/strokerect_anisotropic.cpp",
"$_gm/strokerects.cpp",
"$_gm/strokes.cpp",
"$_gm/stroketext.cpp",
"$_gm/subsetshader.cpp",
"$_gm/surface.cpp",
"$_gm/swizzle.cpp",
"$_gm/tablecolorfilter.cpp",
"$_gm/tallstretchedbitmaps.cpp",
"$_gm/testgradient.cpp",
"$_gm/text_scale_skew.cpp",
"$_gm/textblob.cpp",
"$_gm/textblobblockreordering.cpp",
"$_gm/textblobcolortrans.cpp",
"$_gm/textblobgeometrychange.cpp",
"$_gm/textblobmixedsizes.cpp",
"$_gm/textblobrandomfont.cpp",
"$_gm/textblobshader.cpp",
"$_gm/textblobtransforms.cpp",
"$_gm/textblobuseaftergpufree.cpp",
"$_gm/texteffects.cpp",
"$_gm/thinconcavepaths.cpp",
"$_gm/thinrects.cpp",
"$_gm/thinstrokedrects.cpp",
"$_gm/tiledscaledbitmap.cpp",
"$_gm/tileimagefilter.cpp",
"$_gm/tilemodes.cpp",
"$_gm/tilemodes_alpha.cpp",
"$_gm/tilemodes_scaled.cpp",
"$_gm/tinybitmap.cpp",
"$_gm/transparency.cpp",
"$_gm/trickycubicstrokes.cpp",
"$_gm/typeface.cpp",
"$_gm/unpremul.cpp",
"$_gm/userfont.cpp",
"$_gm/variedtext.cpp",
"$_gm/verifiers/gmverifier.cpp",
"$_gm/vertices.cpp",
"$_gm/verylargebitmap.cpp",
"$_gm/wacky_yuv_formats.cpp",
"$_gm/windowrectangles.cpp",
"$_gm/xfermodeimagefilter.cpp",
"$_gm/xfermodes.cpp",
"$_gm/xfermodes2.cpp",
"$_gm/xfermodes3.cpp",
"$_gm/ycbcrimage.cpp",
"$_gm/yuv420_odd_dim.cpp",
]
gl_gm_sources = [ "$_gm/rectangletexture.cpp" ]
skgpu_v1_gm_sources = [
"$_gm/aarecteffect.cpp",
"$_gm/beziereffects.cpp",
"$_gm/bigrrectaaeffect.cpp",
"$_gm/clockwise.cpp",
"$_gm/constcolorprocessor.cpp",
"$_gm/convexpolyeffect.cpp",
"$_gm/destcolor.cpp",
"$_gm/drawquadset.cpp",
"$_gm/fp_sample_chaining.cpp",
"$_gm/fwidth_squircle.cpp",
"$_gm/gpu_blur_utils.cpp",
"$_gm/lazytiling.cpp",
"$_gm/preservefillrule.cpp",
"$_gm/rrects.cpp",
"$_gm/tessellation.cpp",
"$_gm/texelsubset.cpp",
"$_gm/widebuttcaps.cpp",
"$_gm/yuvtorgbsubset.cpp",
]
gm_sources += skgpu_v1_gm_sources