aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
Commit message (Collapse)AuthorAge
...
* Fix rendering artifacts in pull-saveLayers-forward modeGravatar commit-bot@chromium.org2014-05-08
| | | | | | | | | | | | | | | | | | | | This CL fixes 2 bugs in the pre-rendering of saveLayers: 1) The drawBitmapRect call wasn't occurring in device space so could sometimes be double transformed 2) The BBH op skipping in SkPicturePlayback could sometimes mess up the SkPictureStateTree's state It also reduces the number of layers that are pre-rendered when a BBH is not in use. Committed: http://code.google.com/p/skia/source/detail?r=14650 R=bsalomon@google.com, reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/267293007 git-svn-id: http://skia.googlecode.com/svn/trunk@14659 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split Star into Star (stores nothing) and List (stores matches).Gravatar commit-bot@chromium.org2014-05-08
| | | | | | | | | | | | | | | | | | | Just noticed that the cull noop pattern (PushCull, Star<NoOp>, PopCull) would trigger the Star that stores matches. We certainly don't need those matches here, so instead of magically determining which Star you need, we'll make you tell us which one you want. No one but List's unit test needs List. I'll leave it for now, but we might find it's not useful. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com, bungeman@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/275623002 git-svn-id: http://skia.googlecode.com/svn/trunk@14655 2bbb7eff-a529-9590-31e7-b0007b416f81
* Noop away PushCull/PopCull pairs with nothing between them.Gravatar commit-bot@chromium.org2014-05-08
| | | | | | | | | | | BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/277613002 git-svn-id: http://skia.googlecode.com/svn/trunk@14653 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-05-08
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14636 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move paints to the front of draw structs.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | The order of arguments in these structs is arbitrary, so we might as well arrange them to optimize something. Putting the paints at the front means the logic to find the paint is a lot more concise: it's usually just ptr+0, or *(ptr+0) when the SkPaint is optional. This considerably reduces the size of the jump table in IsDraw::operator(). BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/272673002 git-svn-id: http://skia.googlecode.com/svn/trunk@14634 2bbb7eff-a529-9590-31e7-b0007b416f81
* Convert all SkRecordPattern matchers into SkRecord mutators.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | - Allow any return type from SkRecord mutators and visitors; - update existing calls to mutate and visit; - convert match to operator() in SkRecordPattern; - tidy up a few inelegant bits of old code in tests. The net result is that the generated code is much clearer. All the mutate() calls inline as you'd hope, and you can now actually follow along with the disassembly. BUG=skia:2378 R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/273643007 git-svn-id: http://skia.googlecode.com/svn/trunk@14631 2bbb7eff-a529-9590-31e7-b0007b416f81
* Some small cleanups for image filter code.Gravatar senorblanco@chromium.org2014-05-07
| | | | | | | | | | | Use the 2-param flavour of mapVector instead of the 3-param, where possible. Add an SkMatrixImageFilter test case to the tiling unit test. R=junov@chromium.org Review URL: https://codereview.chromium.org/277543002 git-svn-id: http://skia.googlecode.com/svn/trunk@14630 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for SkDisplacementMap::onFilterBounds().Gravatar senorblanco@chromium.org2014-05-07
| | | | | | | | | | | | | Two problems: we were not applying the CTM to the scale parameter when modifying clip bounds, and the recursion for onFilterBounds() must be done in the reverse order. BUG=370914 R=junov@chromium.org Review URL: https://codereview.chromium.org/272643003 git-svn-id: http://skia.googlecode.com/svn/trunk@14627 2bbb7eff-a529-9590-31e7-b0007b416f81
* save-draw*-restore -> noop-draw*-noopGravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | save-drawA-drawB-drawC-restore always means drawA-drawB-drawC, no matter what flags we use for save(). This one triggers all over the silk SKPs and in several of the bot SKPs, typically as save-drawBitmap-restore. BUG=skia:2378 R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/267793006 git-svn-id: http://skia.googlecode.com/svn/trunk@14618 2bbb7eff-a529-9590-31e7-b0007b416f81
* When solving the cubic line intersection directly fails, use binary search ↵Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | as a fallback. The cubic line intersection math empirically works 99.99% of the time (fails 3100 out of 1B random tests) but when it fails, an intersection may be missed altogether. The binary search is may not find a solution if the cubic line failed to find any solutions at all, but so far that case hasn't arisen. BUG=skia:2504 TBR=reed@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/266063003 git-svn-id: http://skia.googlecode.com/svn/trunk@14614 2bbb7eff-a529-9590-31e7-b0007b416f81
* 4x allocation in PipeController is probably overkill.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | When verylargebitmap GM runs in cross-process pipe mode, we're requestBlock()ing ~200M to carry the bitmaps. The current implementation ends up allocating ~800M, which is a bit wasteful. SkGPipeWrite already rounds up to 16K, so just rely on that. This change exposed several bugs in pipe: - we don't reserve enough space in drawVertices - we don't reserve enough space for factory names in cross-process mode - we don't quite have the right check in needOpBytes to see if we needed to send off the current block and allocate a new one SETUP_NOTIFY and generally calling doNotify() more often than necessary made things hard to debug and understand. Now the pipe always waits to send off its current block until it needs more space than that block can provide, or it's the final block. We can put these back if we need the proactive flushing, but it seems not necessary? Removed an assert in DeferredCanvasTest, which is somtimes 2 (Debug), sometimes 3 (Release). It seemed like the other asserts were more essential, and this one was more of a white-box assertion. Still sound if we remove it? BUG=skia:2478 R=scroggo@google.com, mtklein@google.com, reed@google.com, junov@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/267863002 git-svn-id: http://skia.googlecode.com/svn/trunk@14613 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SaveLayer-Draw-Restore optimization.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | | This is like SkPictureRecord's remove_save_layer1 but works with all draw calls. Interesting patterns removed: SaveLayer-DrawRect-Restore: Silk SKPs, desk_weather SaveLayer-DrawPath-Restore: desk_carsvg, desk_wowwiki, tabl_androidpolice SaveLayer-DrawPosTextH-Restore: tabl_android_police There may be others, but I stopped looking. BUG=skia:2378 R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/269813010 git-svn-id: http://skia.googlecode.com/svn/trunk@14610 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split CPU and GPU DeferredCanvas testsGravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | Nothing important, just happened to notice this and figured it was good hygiene. DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially. BUG=skia: Committed: http://code.google.com/p/skia/source/detail?r=14603 R=junov@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/271483002 git-svn-id: http://skia.googlecode.com/svn/trunk@14608 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Split CPU and GPU DeferredCanvas tests ↵Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/271483002/) Reason for revert: breaking the run tests steps on ChromeOS. See http://108.170.220.120:10117/builders/Test-ChromeOS-Alex-GMA3150-x86-Debug/builds/1669 Original issue's description: > Split CPU and GPU DeferredCanvas tests > > Nothing important, just happened to notice this and figured it was good hygiene. > DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially. > > BUG=skia: > > Committed: http://code.google.com/p/skia/source/detail?r=14603 R=junov@chromium.org, mtklein@google.com, mtklein@chromium.org TBR=junov@chromium.org, mtklein@chromium.org, mtklein@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: djsollen@google.com Review URL: https://codereview.chromium.org/270283003 git-svn-id: http://skia.googlecode.com/svn/trunk@14607 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-05-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14605 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for empty saveLayer() with a filter which affects transparent black.Gravatar senorblanco@chromium.org2014-05-06
| | | | | | | | | | | | | | | | | | | | | If an saveLayer()/restore() is recorded, tilegrid/rtree will cull them out and not draw anything. This is correct for most cases, but if the paint in the saveLayer() is one that affects transparent black (e.g., it contains a color filter or image filter which affects transparent black), this is incorrect: the filter should be applied. Fixed by adding a no-op between the saveLayer() and restore(), and adding a bbox node pointing at that node with the saveLayer()'s bounds. This exposed a bug in SkPictureRecord.cpp's match(), where it would assert if the NOOP was the last op seen. Fixed with an early-out before calling peek_op_and_size(). BUG=skia:2254 Review URL: https://codereview.chromium.org/262363007 git-svn-id: http://skia.googlecode.com/svn/trunk@14604 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split CPU and GPU DeferredCanvas testsGravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | | | | Nothing important, just happened to notice this and figured it was good hygiene. DEF_TESTs run in parallel, while DEF_GPUTESTs run all run serially. BUG=skia: R=junov@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/271483002 git-svn-id: http://skia.googlecode.com/svn/trunk@14603 2bbb7eff-a529-9590-31e7-b0007b416f81
* SaveLayer is not a draw.Gravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | | | | | | | Will keep thinking about the best way to handle this: - leave as-is - tag the records - some range check on T::kType - just list all Draw* in IsDraw BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/269543023 git-svn-id: http://skia.googlecode.com/svn/trunk@14602 2bbb7eff-a529-9590-31e7-b0007b416f81
* Infrastructure changes to support pull-saveLayers-forward taskGravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | | | | | | | | | | | This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/). It mainly: Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it) Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it) Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize) Adds new fields to SaveLayerInfo that are needed to pull forward layers Committed: http://code.google.com/p/skia/source/detail?r=14571 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/266203003 git-svn-id: http://skia.googlecode.com/svn/trunk@14586 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add pattern matchers for SkRecordGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a mid-level library for finding patterns of commands in an SkRecord. At the API level, it's a bit regex inspired. Some examples: - Pattern1<Is<DrawRect>> matches a single DrawRect - Pattern1<Star<Is<DrawRect>>> matches 0 or more DrawRects - Pattern2<Is<ClipRect>, Is<DrawRect>> matches a single clip rect followed by a single draw rect - Pattern3<Is<Save>, Star<IsDraw>, Is<Restore>> matches a single Save, followed by any number of Draws, followed by Restore - Pattern1<Or<Is<DrawRect>, Is<ClipRect>>> matches a DrawRect or a ClipRect - Pattern1<Not<Is<ClipRect>>> matches a command that's notClipRect. Once you have a pattern, you can call .search() on it to step through ranges of matching commands. This means patterns can replace most of the custom iteration logic for optimization passes: the generic pattern searching steps through all the optimization candidates, which optimization-specific code further inspects and mutates. SkRecordTraits is now unused. Bye bye! Generated code and performance of SkRecordOpts is very similar to what it was before. (I had to use SK_ALWAYS_INLINE in a few places to make this so.) BUG=skia:2378 R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/263063002 git-svn-id: http://skia.googlecode.com/svn/trunk@14582 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r14571 (Infrastructure changes to support pull saveLayers forward ↵Gravatar robertphillips@google.com2014-05-05
| | | | | | task - https://codereview.chromium.org/266203003) due to breaking Android unit tests git-svn-id: http://skia.googlecode.com/svn/trunk@14578 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adds a mechanism for GrCacheable objects to notify the resource cacheGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | | | when their size has changed. GrResourceCacheEntry now holds a reference to the cache, and a cached value of the resource's most recent size. Also utilizes this new functionality for mipmaps, and adds a test for changing resource sizes. R=bsalomon@google.com, robertphillips@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/257093002 git-svn-id: http://skia.googlecode.com/svn/trunk@14576 2bbb7eff-a529-9590-31e7-b0007b416f81
* Infrastructure changes to support pull-saveLayers-forward taskGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | | | | | This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/). It mainly: Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it) Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it) Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize) Adds new fields to SaveLayerInfo that are needed to pull forward layers R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/266203003 git-svn-id: http://skia.googlecode.com/svn/trunk@14571 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update tests/RecordOptsTest.cppGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | - use REPORTER_ASSERT; - assert the type first, then the pointer != NULL. This helps explain why ptr == NULL; - add a simpler NoopSaveRestore test case, which can help debugging failures of the larger test case. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/264043012 git-svn-id: http://skia.googlecode.com/svn/trunk@14570 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix double->float warningGravatar reed@google.com2014-05-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14568 2bbb7eff-a529-9590-31e7-b0007b416f81
* add rounding-using-doubles methods on SkScalar and SkRectGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | Inspired by the excellent repro case for https://crbug.com/364224 patch from issue 265933010 BUG=skia: R=bungeman@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/267003002 git-svn-id: http://skia.googlecode.com/svn/trunk@14566 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split GrResource into GrCacheable/GrGpuObjectGravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, an object needed to inherit from GrResource (and thus be a GPU object) in order to live in the GrResourceCache. That was a problem for caching items that weren't GPU objects themselves, but owned GPU objects. This change splits GrResource into two classes: 1. GrCacheable: The base class for objects that can live in the GrResourceCache. 2. GrGpuObject, which inherits from GrCacheable: The base class for objects that get tracked by GrGpu. This change is purely a refactor; there is no change in functionality. Change-Id: I3e8daeb1f123041f414aa306c1366e959ae9e39e BUG=skia: R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/251013002 git-svn-id: http://skia.googlecode.com/svn/trunk@14553 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for SkMatrixConvolutionImageFilter with large borders.Gravatar senorblanco@chromium.org2014-05-02
| | | | | | | | | | | Intersect the requested processing rect with the destination bounds. R=junov@chromium.org Review URL: https://codereview.chromium.org/267863004 git-svn-id: http://skia.googlecode.com/svn/trunk@14543 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a fix for a spurious assert in SkMatrixConvolutionImageFilter.Gravatar senorblanco@chromium.org2014-05-01
| | | | | | | | | | | | | | | When matrix convolution processes border pixels with zero width, it asserts in getAddr32() with an invalid x coordinate. The assert is harmless, since the returned pointer is never accessed (the next line is a loop from left to right, which does nothing, since left == right). However, the fix is simple: early out on an empty rect before entering the outer loop. R=sugoi@chromium.org Review URL: https://codereview.chromium.org/265693005 git-svn-id: http://skia.googlecode.com/svn/trunk@14497 2bbb7eff-a529-9590-31e7-b0007b416f81
* one valgrind.supp to rule them all.Gravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | R=mtklein@google.com, robertphillips@google.com, borenet@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/268473004 git-svn-id: http://skia.googlecode.com/svn/trunk@14487 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add Valgrind suppressions for nvidia driver.Gravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | | | | Did we recently switch the machine Valgrind runs on from an ati card to an nvidia one? BUG=skia: R=bsalomon@google.com, borenet@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/266473010 git-svn-id: http://skia.googlecode.com/svn/trunk@14482 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid undefined behavior and enable asserts in ClampTest.Gravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | | | | | The old code here wasn't being careful to avoid int32_t overflow in slow_check. Fix that. R_ASSERT hasn't been doing anything for a while. As a result, there are a couple bugs in SkClampRange, marked as such and commented out. The asserts also weren't quite passing, so I fixed them up (allowing 0xFFFF to be considered either as part of the ramp or part of V1.) BUG=skia:2481 R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/260523004 git-svn-id: http://skia.googlecode.com/svn/trunk@14479 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix cubic/line intersection; add skp testsGravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | BUG=skia:2488 TBR=reed Author: caryclark@google.com Review URL: https://codereview.chromium.org/252243003 git-svn-id: http://skia.googlecode.com/svn/trunk@14458 2bbb7eff-a529-9590-31e7-b0007b416f81
* Backfill unit tests for SkRecordGravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/251133008 git-svn-id: http://skia.googlecode.com/svn/trunk@14455 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed issue found by clusterfuzzGravatar commit-bot@chromium.org2014-04-29
| | | | | | | | | | | | | An integer overflow was causing an issue when reading a string with a very large (or negative) size. BUG=367764 R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, borenet@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/255693003 git-svn-id: http://skia.googlecode.com/svn/trunk@14434 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't bother doing the empty clip check in SkRecordDraw.Gravatar commit-bot@chromium.org2014-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | On Mike's suggestion, I tested out not doing any empty-clip check at all in SkRecordDraw, given that mostly we'll do that again anyway inside SkCanvas. Most SKPs are identical to the status quo, whether bot or silk, played back in tiles or full. Average playback performance, both arithmetic and geometric mean, is also unchanged. A handful of SKPs do draw faster or slower reliably, particularly when tiled. E.g. a cnn tile draws about 40% faster, a cuteoverload tile about 20% slower. Their profiles look pretty much the same before and after, so I can't really explain the changes. I'd say, given that performance is mostly identical and very identical in bulk, we might as well remove this code. It's nice to keep SkRecordDraw as dumb as possible. BUG=skia:2378 R=reed@google.com, fmalita@chromium.org, mtklein@google.com, borenet@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/258183002 git-svn-id: http://skia.googlecode.com/svn/trunk@14433 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement bounds traversals for tile and matrix convolution filters.Gravatar senorblanco@chromium.org2014-04-29
| | | | | | | | | | | | | | | | | | Add a new GM that exercises tiled drawing all pixel-moving filters (and some non-pixel-moving ones) and compares it against non-tiled drawing of the same filters. Fixing this test revealed that tile and matrix convolution filters had no onFilterBounds() traversals (test-driven development FTW). Tile requires (conservatively) the bounds to include the whole source rect, since it may end up in the result. Matrix convolution requires the bounds to be offset by the kernel size and target. R=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/258243005 git-svn-id: http://skia.googlecode.com/svn/trunk@14432 2bbb7eff-a529-9590-31e7-b0007b416f81
* add asAShadowBlur for android to drawlooperGravatar reed@google.com2014-04-29
| | | | | | | | | BUG=skia: R=djsollen@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/253633003 git-svn-id: http://skia.googlecode.com/svn/trunk@14431 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | | | | | The current implementation relies on soon-to-be-deprecated kClip_SaveFlag behavior. Updated to use default save flags (kMatrixClip_SaveFlag) and stop assuming that the matrix survives restore() calls. R=junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com Committed: http://code.google.com/p/skia/source/detail?r=14319 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/246893005 git-svn-id: http://skia.googlecode.com/svn/trunk@14421 2bbb7eff-a529-9590-31e7-b0007b416f81
* move common blur types into central headerGravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | BUG=skia: R=scroggo@google.com, djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/253833002 git-svn-id: http://skia.googlecode.com/svn/trunk@14411 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start using type traits in src/record instead of macros.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | Simplified skip logic by always running clip commands. No performance difference on bot or silk SKPs. BUG=skia:2378 R=bungeman@google.com, fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/258693006 git-svn-id: http://skia.googlecode.com/svn/trunk@14410 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkShader::fLocalMatrix into SkShader constructor.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | | | | As a first step towards removing SkShader::setLocalMatrix, which will make SkShader thread-safe, remove calls to setLocalMatrix that happen immediately after the shader is being created. Instead, pass the matrix into the constructor or factory method. BUG=skia:1976 R=scroggo@google.com, reed@google.com, skyostil@google.com, mtklein@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/245963010 git-svn-id: http://skia.googlecode.com/svn/trunk@14401 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-04-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14387 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix minor skp-found bugsGravatar commit-bot@chromium.org2014-04-25
| | | | | | | | | | | | | remove globals from pathops_unittest BUG=skia:2460 TBR=mtklein Author: caryclark@google.com Review URL: https://codereview.chromium.org/239563004 git-svn-id: http://skia.googlecode.com/svn/trunk@14378 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix r14368 (First pass at GPU veto) for non-GPU buildsGravatar robertphillips@google.com2014-04-25
| | | | | | | | https://codereview.chromium.org/255733002/ git-svn-id: http://skia.googlecode.com/svn/trunk@14369 2bbb7eff-a529-9590-31e7-b0007b416f81
* First pass at GPU vetoGravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | | | As a short term solution this CL collects information during the recording process for use in suitableForGpuRasterization. BUG=366495 R=bsalomon@google.com, reed@google.com, alokp@chromium.org Author: robertphillips@google.com Review URL: https://codereview.chromium.org/251533004 git-svn-id: http://skia.googlecode.com/svn/trunk@14368 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland "Properly set alpha type in webp decode."Gravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also use the newer setConfig function. Add a test to confirm that we set the alpha type properly. Add some images with alpha for testing. (These images are also beneficial for the compare_unpremul test, which was previously not meaningful on 100% opaque images.) All of the added images are in the public domain. They were taken from https://developers.google.com/speed/webp/gallery2: yellow_rose: "Free Stock Photo in High Resolution - Yellow Rose 3 - Flowers" Image Author: Jon Sullivan This file is in the public domain. http://www.public-domain-photos.com/free-stock-photos-4/flowers/yellow-rose-3.jpg baby_tux: "baby tux for my user page" Image Author: Fizyplankton This file is in the public domain. http://www.minecraftwiki.net/images/8/85/Fizyplankton.png NOTRY=true TBR=halcanary@google.com BUG=skia:2388 Author: scroggo@google.com Review URL: https://codereview.chromium.org/252423008 git-svn-id: http://skia.googlecode.com/svn/trunk@14360 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove support for inheriting the paint color from SkColorShaderGravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | BUG=skia:2453 R=reed@google.com, mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/248033003 git-svn-id: http://skia.googlecode.com/svn/trunk@14355 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rearrange SkRecord public API to fit better with cc/resources/pictureGravatar commit-bot@chromium.org2014-04-24
| | | | | | | | | | | BUG=skia:2378 R=reed@google.com, danakj@chromium.org, enne@chromium.org, mtklein@google.com, robertphillips@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/248033002 git-svn-id: http://skia.googlecode.com/svn/trunk@14351 2bbb7eff-a529-9590-31e7-b0007b416f81
* First step in pulling SkPicturePlayback & SkPictureRecord out of SkPictureGravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | This CL begins the process of making SkPicturePlayback & SkPictureRecord independent of SkPicture. It just moves the PathHeap into SkPicture to get a feel for where all this is going to lead. Some items of note: SkTimedPicture (debugger/QT) should wind up being just an SkPicturePlayback-derived object. All the flattening & unflattening should migrate out of SkPicturePlayback and into SkPicture. SkPicture::initForPlayback should eventually become something just SkPictureRecorder::endRecording calls. SkPicture is passed into SkPicturePlayback's & SkPictureRecord's constructors. SkPicturePlayback only holds onto a "const SkPicture*". The SkPicturePlayback:: CreateFromStream & CreateFromBuffer methods pass a non-const SkPicture* down the call stack. BUG=skia:2315 R=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/249453002 git-svn-id: http://skia.googlecode.com/svn/trunk@14341 2bbb7eff-a529-9590-31e7-b0007b416f81