skia2/gm
kkinnunen dc0f408a96 Fold alpha to the inner savelayer in savelayer-savelayer-restore patterns
Fold alpha to the inner savelayer in savelayer-savelayer-restore
patterns such as this:

  SaveLayer (non-opaque)
    Save
      ClipRect
      SaveLayer
      Restore
    Restore
  Restore

Current blink generates these for example for SVG content such as this:

<path style="opacity:0.5 filter:url(#blur_filter)"/>

The outer save layer is due to the opacity and the inner one is due to
blur filter being implemented with picture image filter.

Reduces layers in desk_carsvg.skp testcase from 115 to 78.

BUG=skia:3119

Review URL: https://codereview.chromium.org/835973005
2015-01-26 00:14:26 -08:00
..
aaclip.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
aarectmodes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
alphagradients.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
arcofzorro.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
arithmode.cpp use platform-independent font for gm 2014-06-23 11:25:00 -07:00
astcbitmap.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
beziereffects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
beziers.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
bigblurs.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
bigmatrix.cpp Add always-threaded SkRecord quilt tests. 2014-07-07 10:41:04 -07:00
bigtext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
bitmapcopy.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
bitmapfilters.cpp use platform-independent font for gm 2014-06-23 11:25:00 -07:00
bitmappremul.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
bitmaprect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
bitmaprecttest.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
bitmapscroll.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
bitmapshader.cpp Add always-threaded SkRecord quilt tests. 2014-07-07 10:41:04 -07:00
bitmapsource.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
bleed.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
blurcircles.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
blurquickreject.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
blurrect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
blurroundrect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
blurs.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
cgm.c disable using codecs until that can work in chrome 2014-12-25 20:41:13 -08:00
cgms.cpp more c 2014-11-24 19:11:48 -08:00
circles.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
circularclips.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
clip_strokerect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
clipdrawdraw.cpp Add repro GM for GPU clipped-AA vs. non-AA drawRect discrepancy 2015-01-14 09:44:02 -08:00
clippedbitmapshaders.cpp Move SkShader::fLocalMatrix into SkShader constructor. 2014-04-28 14:55:39 +00:00
cmykjpeg.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
colorcube.cpp Adding 3D lut color filter 2014-10-09 05:27:23 -07:00
coloremoji.cpp Make SkStream *not* ref counted. 2015-01-21 12:09:53 -08:00
colorfilterimagefilter.cpp Factory methods for heap-allocated SkImageFilter objects. 2014-03-10 10:51:58 +00:00
colorfilters.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
colormatrix.cpp Cleanup: Get rid of make_isize() function from gm.h. 2014-06-09 23:59:03 -07:00
colortype.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
colortypexfermode.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
colorwheel.cpp add ImageGenerator::NewFromData to porting layer 2015-01-07 18:04:45 -08:00
complexclip2.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
complexclip3.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
complexclip.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
composeshader.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
conicpaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
convexpaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
convexpolyclip.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
convexpolyeffect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
copyTo4444.cpp Cleanup usage of GetResourcePath() after commit bcbc1788b4. 2014-07-01 12:35:49 -07:00
cubicpaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
dashcubics.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
dashing.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
dcshader.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
degeneratesegments.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
dftext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
discard.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
displacement.cpp use platform-independent font for gm 2014-06-23 11:25:00 -07:00
distantclip.cpp Change SkPicture::draw to playback 2014-09-04 08:42:50 -07:00
downsamplebitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
drawbitmaprect.cpp add newImage API 2015-01-23 05:58:07 -08:00
drawlooper.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
dropshadowimagefilter.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
drrect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
emboss.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
emptypath.cpp There can be only one (SkRandom)! 2014-12-15 12:54:51 -08:00
etc1bitmap.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
extractbitmap.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
factory.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
fatpathfill.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
filltypes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
filltypespersp.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
filterbitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
filterfastbounds.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
filterindiabox.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
fontcache.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
fontmgr.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
fontscaler.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
gammatext.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
getpostextpath.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
giantbitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
glyph_pos_align.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
glyph_pos.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
gm_expectations.h In Android framework, make tools depend on jsoncpp 2014-06-18 10:31:40 -07:00
gm.cpp SIMPLE_GM generates less code 2015-01-12 15:27:46 -08:00
gm.h remove unused GM flags 2015-01-23 11:07:08 -08:00
gradient_matrix.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
gradientDirtyLaundry.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
gradients_2pt_conical.cpp Add always-threaded SkRecord quilt tests. 2014-07-07 10:41:04 -07:00
gradients_no_texture.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
gradients.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
gradtext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
grayscalejpg.cpp Remove PDF JPEG shortcut, since it fails on grayscale JPEGs. 2014-12-02 06:37:21 -08:00
hairlines.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
hairmodes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
hittestpath.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
image.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
image.h check-point for image/surface work 2012-07-29 20:38:16 +00:00
imagealphathreshold.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imageblur2.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imageblur.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imageblurtiled.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
imagefiltersbase.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imagefiltersclipped.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imagefilterscropexpand.cpp Adding an option to render only the shadow in SkDropShadowImageFilter 2014-10-23 13:59:52 -07:00
imagefilterscropped.cpp Revert of Fix Morphology effects sourcing outside of the crop rect. (patchset #6 id:100001 of https://codereview.chromium.org/781153002/) 2015-01-23 16:09:32 -08:00
imagefiltersgraph.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imagefiltersscaled.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imagemagnifier.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
imageresizetiled.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
internal_links.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
inversepaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
lcdtext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
lerpmode.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
lighting.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
linepaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
lumafilter.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
matrixconvolution.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
matriximagefilter.cpp Cleanup: Get rid of make_isize() function from gm.h. 2014-06-09 23:59:03 -07:00
megalooper.cpp move common blur types into central header 2014-04-28 16:25:35 +00:00
mixedxfermodes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
modecolorfilters.cpp Cleanup: Get rid of make_isize() function from gm.h. 2014-06-09 23:59:03 -07:00
morphology.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
multipicturedraw.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
nested.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
ninepatchstretch.cpp Add always-threaded SkRecord quilt tests. 2014-07-07 10:41:04 -07:00
nonclosedpaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
offsetimagefilter.cpp It is dangerous to ignore SkRect::intersect's return value 2015-01-07 12:16:10 -08:00
ovals.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
patch.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
patchgrid.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
patheffects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
pathfill.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
pathinterior.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
pathopsinverse.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
pathopsskpclip.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
pathreverse.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
peekpixels.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
perlinnoise.cpp Fix tiled perlin noise. 2014-06-12 11:24:20 -07:00
picture.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
pictureimagefilter.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
pictureshader.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
pictureshadertile.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
points.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
poly2poly.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
polygons.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
quadpaths.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
recordopts.cpp Fold alpha to the inner savelayer in savelayer-savelayer-restore patterns 2015-01-26 00:14:26 -08:00
rects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
resizeimagefilter.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
roundrects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
rrect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
rrects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
samplerstress.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
selftest.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
shaderbounds.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
shadertext2.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
shadertext3.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
shadertext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
shadows.cpp Add always-threaded SkRecord quilt tests. 2014-07-07 10:41:04 -07:00
shallowgradient.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
simpleaaclip.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
skbug1719.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
smallarc.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
smallimage.cpp work in progress 2014-12-02 14:01:46 -08:00
spritebitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
srcmode.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
stringart.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
strokefill.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
strokerect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
strokerects.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
strokes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
stroketext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
surface.cpp Require budget decision when creating a RenderTarget SkSurface. 2015-01-16 07:32:33 -08:00
system_preferences_default.cpp Set LCD font smoothing to "medium" for gm on Mac, regardless of system settings 2012-02-14 14:53:59 +00:00
system_preferences_mac.mm gm: Include system_preferences.h in mac file. 2012-09-26 15:41:42 +00:00
system_preferences.h Set LCD font smoothing to "medium" for gm on Mac, regardless of system settings 2012-02-14 14:53:59 +00:00
tablecolorfilter.cpp add legacy/helper allocN32Pixels, and convert gm to use it 2014-01-25 16:46:20 +00:00
tallstretchedbitmaps.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
techtalk1.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
testimagefilters.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
texdata.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
textblob.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
textblobshader.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
texteffects.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
texturedomaineffect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
thinrects.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
thinstrokedrects.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
tiledscaledbitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
tileimagefilter.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
tilemodes_scaled.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
tilemodes.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
tinybitmap.cpp Cleanup: Get rid of make_isize() function from gm.h. 2014-06-09 23:59:03 -07:00
transparency.cpp Modify transparency_check GM to always tile correctly. 2015-01-08 12:11:42 -08:00
twopointradial.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
typeface.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
variedtext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
vertices.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
verttext2.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
verttext.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
verylargebitmap.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00
xfermodeimagefilter.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
xfermodes2.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
xfermodes3.cpp Require budget decision when creating a RenderTarget SkSurface. 2015-01-16 07:32:33 -08:00
xfermodes.cpp Fix up all the easy virtual ... SK_OVERRIDE cases. 2015-01-09 10:06:40 -08:00
yuvtorgbeffect.cpp remove unused GM flags 2015-01-23 11:07:08 -08:00