aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Use rounding to 8888 in lighting filters, raster path.Gravatar senorblanco@chromium.org2014-03-19
| | | | | | | | | | | | | | | | when converting float -> 8-bit BGRA in lighting filters, use rounding rather than floor(). This makes the GPU and raster paths match more closely (as tested by Blink test feDiffuseLighting-linearrgb-lighting-color.svg). Will affect the LSB of lighting, imagefiltersscaled GMs. R=junov@chromium.org BUG=skia: Review URL: https://codereview.chromium.org/205073002 git-svn-id: http://skia.googlecode.com/svn/trunk@13863 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed cross compilation with mingw.Gravatar commit-bot@chromium.org2014-03-19
| | | | | | | | | | | | | | | | | | | | | Tested in Mozilla source tree. I tried to use skia build system, but it's up to the task for cross compilation. SkHRESULT.cpp - Use proper file name (that matters on case sensitive OSes) SkAtomics_win.h - Don't use pragma intrinsic on GCC (this causes massive warnings) SkOSFile_win.cpp - This one is tricky. GCC doesn't allow (void*) casts in template argument constants and INVALID_HANDLE_VALUE looks like this: ((HANDLE)(LONG_PTR)-1) where HANDLE is typedefed to void*. Changed the code to use LONG_PTR as template argument and cast it when needed. BUG=skia: R=bungeman@google.com, reed@google.com Author: cjacek@gmail.com Review URL: https://codereview.chromium.org/198643004 git-svn-id: http://skia.googlecode.com/svn/trunk@13862 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix accessBitmap() with deferred clear, GPU path.Gravatar senorblanco@chromium.org2014-03-19
| | | | | | | | | | | | | | | | | | | When accessBitmap() is called on a GPU device which has deferred clear, and no drawing has been done, force the clear before returning the bitmap. This is covered by the top right test case in the imagefilterscropexpand GM, where an offset image filter is drawn but the resulting bitmap is cropped out, resulting in no drawing to the offscreen. It should be empty, but without this fix it results in garbage (previous scratch texture contents). BUG=skia: R=bsalomon@google.com Review URL: https://codereview.chromium.org/204903002 git-svn-id: http://skia.googlecode.com/svn/trunk@13860 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of SkPaint: eliminate some dead bytes in 64-bit build. ↵Gravatar commit-bot@chromium.org2014-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/203203003/) Reason for revert: Causing RunTest failures on Android. Original issue's description: > SkPaint: eliminate some dead bytes in 64-bit build. > > + memcpy-based copy constructor was hiding this gap -> manual copy constructor. > + Split tests for finer-grained failures. > > BUG=skia: > > Committed: http://code.google.com/p/skia/source/detail?r=13856 R=reed@google.com, mtklein@google.com, mtklein@chromium.org TBR=mtklein@chromium.org, mtklein@google.com, reed@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: jcgregorio@google.com Review URL: https://codereview.chromium.org/204543002 git-svn-id: http://skia.googlecode.com/svn/trunk@13858 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkPaint: eliminate some dead bytes in 64-bit build.Gravatar commit-bot@chromium.org2014-03-19
| | | | | | | | | | | | | | + memcpy-based copy constructor was hiding this gap -> manual copy constructor. + Split tests for finer-grained failures. BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/203203003 git-svn-id: http://skia.googlecode.com/svn/trunk@13856 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13855 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a means of extracting active operations from SkPictureGravatar commit-bot@chromium.org2014-03-18
| | | | | | | | | | | | | | | | | | For the "pull forward" task I will be comparing the two cases: analyze the whole skp and use the BBH information analyze only the active portion of the skp In the first case we need a way to get the BBH information out of the picture in order to extract the relevant portions of the whole-skp analysis. This adds caching of the active ops so that work isn't duplicated between when the optimization path queries for that information and when the usual draw path queries for it. Committed: http://code.google.com/p/skia/source/detail?r=13836 R=reed@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/195793010 git-svn-id: http://skia.googlecode.com/svn/trunk@13853 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of r13836 due to Chromium cc_unittests failuresGravatar robertphillips@google.com2014-03-18
| | | | | | | | https://codereview.chromium.org/203333005/ git-svn-id: http://skia.googlecode.com/svn/trunk@13850 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove SkCanvas matrix ops return value.Gravatar commit-bot@chromium.org2014-03-18
| | | | | | | | | | | | | The internal SkMatrix ops can no longer fail -> we can remove the bool return value. R=bsalomon@google.com, reed@google.com, robertphillips@google.com, scroggo@google.com, fmalita@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/200223008 git-svn-id: http://skia.googlecode.com/svn/trunk@13849 2bbb7eff-a529-9590-31e7-b0007b416f81
* Slightly faster quadtree searchingGravatar commit-bot@chromium.org2014-03-18
| | | | | | | | | | | BUG=skia:2125 R=tomhudson@google.com, mtklein@google.com, robertphillips@google.com, reed@google.com Author: iancottrell@google.com Review URL: https://codereview.chromium.org/196383026 git-svn-id: http://skia.googlecode.com/svn/trunk@13847 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13845 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix GPU displacement with expanding crop rects.Gravatar senorblanco@chromium.org2014-03-17
| | | | | | | | | | | | | Fix GPU displacement with expanding crop rects, and re-enable the imagefilterscropexpand GM. There were two bugs: the result texture was being created at input color bitmap size, not the cropped bounds size, and the matrix in GrContext was not being set to identity before draw. R=junov@chromium.org Review URL: https://codereview.chromium.org/195973007 git-svn-id: http://skia.googlecode.com/svn/trunk@13844 2bbb7eff-a529-9590-31e7-b0007b416f81
* add initial scraper for dashingGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | BUG=skia: R=bsalomon@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/196603027 git-svn-id: http://skia.googlecode.com/svn/trunk@13843 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update SkXPSDevice.cpp tooGravatar robertphillips@google.com2014-03-17
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13842 2bbb7eff-a529-9590-31e7-b0007b416f81
* add new readPixels with direct memory parametersGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | BUG=skia: R=scroggo@google.com, bsalomon@google.com, robertphillips@google.com, fmalita@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/199413013 git-svn-id: http://skia.googlecode.com/svn/trunk@13840 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add nine patch type to SkRRect.Gravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | | | | BUG=skia:2181 Committed: http://code.google.com/p/skia/source/detail?r=13833 R=robertphillips@google.com, reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/196343015 git-svn-id: http://skia.googlecode.com/svn/trunk@13839 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Add nine patch type to SkRRect. ↵Gravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/196343015/) Reason for revert: causes tests to have infinite loop Original issue's description: > Add nine patch type to SkRRect. > > BUG=skia:2181 > > Committed: http://code.google.com/p/skia/source/detail?r=13833 R=robertphillips@google.com, reed@google.com TBR=reed@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2181 Author: bsalomon@google.com Review URL: https://codereview.chromium.org/202163004 git-svn-id: http://skia.googlecode.com/svn/trunk@13837 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a means of extracting active operations from SkPictureGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | | | | | | For the "pull forward" task I will be comparing the two cases: analyze the whole skp and use the BBH information analyze only the active portion of the skp In the first case we need a way to get the BBH information out of the picture in order to extract the relevant portions of the whole-skp analysis. This adds caching of the active ops so that work isn't duplicated between when the optimization path queries for that information and when the usual draw path queries for it. R=reed@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/195793010 git-svn-id: http://skia.googlecode.com/svn/trunk@13836 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SUPPORT_LEGACY_WRITEPIXELSCONFIG -- dead codeGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | BUG=skia: R=halcanary@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/201973003 git-svn-id: http://skia.googlecode.com/svn/trunk@13834 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add nine patch type to SkRRect.Gravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | BUG=skia:2181 R=robertphillips@google.com, reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/196343015 git-svn-id: http://skia.googlecode.com/svn/trunk@13833 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r13831 (Add a means of extracting active operations from ↵Gravatar robertphillips@google.com2014-03-17
| | | | | | SkPicture) due to Mac compiler issue git-svn-id: http://skia.googlecode.com/svn/trunk@13832 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a means of extracting active operations from SkPictureGravatar robertphillips@google.com2014-03-17
| | | | | | | | https://codereview.chromium.org/195793010/ git-svn-id: http://skia.googlecode.com/svn/trunk@13831 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkFontStyleSet_DirectWrite::getStyle to properly handle NULL out params.Gravatar bungeman@google.com2014-03-17
| | | | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/201213003 git-svn-id: http://skia.googlecode.com/svn/trunk@13829 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fast implementation of QuadTreeGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | | | Rewritten to avoid memory allocations. BUG=skia:2242 R=tomhudson@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com Author: iancottrell@google.com Review URL: https://codereview.chromium.org/187233002 git-svn-id: http://skia.googlecode.com/svn/trunk@13826 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-17
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13825 2bbb7eff-a529-9590-31e7-b0007b416f81
* add NewRasterDirect for creating a canvas drawing to pre-allocated pixelsGravatar commit-bot@chromium.org2014-03-17
| | | | | | | | | | | R=reed@google.com TBR=scroggo@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/196923004 git-svn-id: http://skia.googlecode.com/svn/trunk@13824 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkNoSaveLayerCanvas.h to include/utilsGravatar robertphillips@google.com2014-03-16
| | | | | | | | https://codereview.chromium.org/197243005 git-svn-id: http://skia.googlecode.com/svn/trunk@13823 2bbb7eff-a529-9590-31e7-b0007b416f81
* Proposed SkCanvas API for preLoading textures to VRAM v2.0Gravatar commit-bot@chromium.org2014-03-16
| | | | | | | | | | | | | | This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)). Committed: http://code.google.com/p/skia/source/detail?r=13810 R=reed@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/197123003 git-svn-id: http://skia.googlecode.com/svn/trunk@13822 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13820 2bbb7eff-a529-9590-31e7-b0007b416f81
* change tooBitForLCD to compare against linear size of the text, not the areaGravatar commit-bot@chromium.org2014-03-14
| | | | | | | | | | | BUG=skia: R=bungeman@google.com, alokp@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/200643003 git-svn-id: http://skia.googlecode.com/svn/trunk@13817 2bbb7eff-a529-9590-31e7-b0007b416f81
* Get correct text metrics for distance fields, and fix dropouts due to thin ↵Gravatar commit-bot@chromium.org2014-03-14
| | | | | | | | | | | | | features. BUG=skia:2173 R=robertphillips@google.com, reed@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/200423003 git-svn-id: http://skia.googlecode.com/svn/trunk@13815 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r13810 (Proposed SkCanvas API for preLoading textures to VRAM v2.0)Gravatar robertphillips@google.com2014-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13811 2bbb7eff-a529-9590-31e7-b0007b416f81
* Proposed SkCanvas API for preLoading textures to VRAM v2.0Gravatar commit-bot@chromium.org2014-03-14
| | | | | | | | | | | | This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)). R=reed@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/197123003 git-svn-id: http://skia.googlecode.com/svn/trunk@13810 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement support for expanding crop rects in image filtersGravatar senorblanco@chromium.org2014-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: this patch set is based on https://codereview.chromium.org/189913021/, and needs that patch to land first. Until now, crop rects in Skia have only been able to reduce the size of the destination bounds, but not expand them. SVG semantics require the latter as well. The heart of the change is in applyCropRect(), which now assigns each edge, instead of doing an intersection with the crop rect. In order to support this (and still work well with tiled drawing) we need to clip the resulting crop rect to the clipping region of the filters. This uses the Context struct previously landed from https://codereview.chromium.org/189913021/. Many of the pixel loops are not yet ready to handle a destination rect larger than the source rect. So we provide a convenience version of applyCropRect() which creates an offscreen and pads it out with transparent black. Once the pixel loops and shaders have been fixed to support larger destination bounds, they should be switched back to the non-drawing version of applyCropRect(). BUG=skia: R=bsalomon@google.com, reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=13805 Review URL: https://codereview.chromium.org/198003008 git-svn-id: http://skia.googlecode.com/svn/trunk@13809 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Implement support for expanding crop rects in image filters"Gravatar senorblanco@chromium.org2014-03-14
| | | | | | | | | | | Breaking ImageFilterTests unit test. TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/196353021 git-svn-id: http://skia.googlecode.com/svn/trunk@13806 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement support for expanding crop rects in image filtersGravatar senorblanco@chromium.org2014-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: this patch set is based on https://codereview.chromium.org/189913021/, and needs that patch to land first. Until now, crop rects in Skia have only been able to reduce the size of the destination bounds, but not expand them. SVG semantics require the latter as well. The heart of the change is in applyCropRect(), which now assigns each edge, instead of doing an intersection with the crop rect. In order to support this (and still work well with tiled drawing) we need to clip the resulting crop rect to the clipping region of the filters. This uses the Context struct previously landed from https://codereview.chromium.org/189913021/. Many of the pixel loops are not yet ready to handle a destination rect larger than the source rect. So we provide a convenience version of applyCropRect() which creates an offscreen and pads it out with transparent black. Once the pixel loops and shaders have been fixed to support larger destination bounds, they should be switched back to the non-drawing version of applyCropRect(). BUG=skia: R=bsalomon@google.com, reed@google.com Review URL: https://codereview.chromium.org/198003008 git-svn-id: http://skia.googlecode.com/svn/trunk@13805 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement support for a Context parameter in image filtersGravatar senorblanco@chromium.org2014-03-14
| | | | | | | | | | | | | | | Some upcoming work (support for expanding crop rects) requires the clip bounds to be available during filter traversal. This change replaces the SkMatrix parameter in the onFilterImage() traversals with a Context parameter. It contains the CTM, as well as the clip bounds. BUG=skia: R=reed@google.com Review URL: https://codereview.chromium.org/189913021 git-svn-id: http://skia.googlecode.com/svn/trunk@13803 2bbb7eff-a529-9590-31e7-b0007b416f81
* check for null-device pixels in onWritePixels, so we don't crashGravatar reed@google.com2014-03-14
| | | | | | | | https://code.google.com/p/chromium/issues/detail?id=352616 Review URL: https://codereview.chromium.org/196223013 git-svn-id: http://skia.googlecode.com/svn/trunk@13802 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13800 2bbb7eff-a529-9590-31e7-b0007b416f81
* De-virtualize SkCanvas matrix ops.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | | This moves the matrix management logic into non-virtual SkCanvas methods, and turns the virtuals into protected notifiers. R=reed@google.com, robertphillips@google.com, bsalomon@google.com BUG=skia:2297 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/195793012 git-svn-id: http://skia.googlecode.com/svn/trunk@13799 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added Z scale when X and Y scale to spot lights and point lightsGravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | Z scale is set as the average of X scale and Y scale. BUG=skia: R=senorblanco@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/198013002 git-svn-id: http://skia.googlecode.com/svn/trunk@13798 2bbb7eff-a529-9590-31e7-b0007b416f81
* getDeviceCapabilities is no longer need, so remove itGravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | BUG=skia: R=bungeman@google.com, vandebo@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/198943003 git-svn-id: http://skia.googlecode.com/svn/trunk@13797 2bbb7eff-a529-9590-31e7-b0007b416f81
* Attempt to fix -1->unsigned warning on mac 10.6Gravatar bsalomon@google.com2014-03-13
| | | | | | | | TBR=bungeman@google.com Review URL: https://codereview.chromium.org/199433002 git-svn-id: http://skia.googlecode.com/svn/trunk@13796 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow toString capability to be toggled independent of developer mode.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | This change is motivated by the desire to see the text information in the debugger when not in developer mode. It is structured so user's can disable it if the capability is not wanted. R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/197763008 git-svn-id: http://skia.googlecode.com/svn/trunk@13795 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add effect-based clip for nine-patch SkRRects.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | BUG=skia:2181 R=jvanverth@google.com, robertphillips@google.com, rmistry@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/194703011 git-svn-id: http://skia.googlecode.com/svn/trunk@13794 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix distance field edge detection.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | | When computing the initial edges for distance field generation, I was skipping the outer pixels of glyphs to avoid accessing out of range memory. However, there might be an edge transition on those pixels. This detects those cases. R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/197423003 git-svn-id: http://skia.googlecode.com/svn/trunk@13791 2bbb7eff-a529-9590-31e7-b0007b416f81
* Changes to SkFontHost_linuxGravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | | | | | | * Use SkOSPath::SkPathJoin() rather than append so that SK_FONT_FILE_PREFIX does not have to end in a '/'. * Add another font to the default font list. Motivation: Some tests fail when there are no default fonts. BUG=skia:2282 R=bungeman@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/195733007 git-svn-id: http://skia.googlecode.com/svn/trunk@13789 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13782 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SUPPORT_LEGACY_COPYTO_CONFIGGravatar commit-bot@chromium.org2014-03-12
| | | | | | | | | | TBR=robertphillips@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/196413009 git-svn-id: http://skia.googlecode.com/svn/trunk@13780 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix (1 << 31) to (1u << 31) in SkOTTable_OS_2.Gravatar bungeman@google.com2014-03-12
| | | | | | | | | | | | When ints are 32 bits, (1 << 31) is undefined. R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=13757 Review URL: https://codereview.chromium.org/189093020 git-svn-id: http://skia.googlecode.com/svn/trunk@13779 2bbb7eff-a529-9590-31e7-b0007b416f81