aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp/gm.gyp
Commit message (Collapse)AuthorAge
* Allow GMs to be used as benchmarks. Make convex_poly_clip opt in.Gravatar commit-bot@chromium.org2014-02-03
| | | | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/151843002 git-svn-id: http://skia.googlecode.com/svn/trunk@13279 2bbb7eff-a529-9590-31e7-b0007b416f81
* If poppler is disable and native pdf is enabled, we still need ↵Gravatar commit-bot@chromium.org2014-01-10
| | | | | | | | | | | | | | | SkPDFRasterizer.cpp R=reed@google.com TBR=reed@google.com NOTREECHECKS=true NOTRY=true Author: vandebo@chromium.org Review URL: https://codereview.chromium.org/133583004 git-svn-id: http://skia.googlecode.com/svn/trunk@13025 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Mac fontconfig build (try 2)Gravatar commit-bot@chromium.org2014-01-09
| | | | | | | | | | | | | | The Mac fontconfig just #defines the cache directory, which works fine if fontconfig never has to look up any fonts (the case until now). If it has to actually find fonts from the disk, the cache directory and config directory need to be properly defined as well as running fc-cache to populate the cache directory. Populating the cache directory can take some time, but should only happen on a clean build. To remove this extra time, we have to not build poppler on Mac, which can now be accomplished with GYP_DEFINES="skia_mac_poppler=0" R=epoger@google.com Author: vandebo@chromium.org Review URL: https://codereview.chromium.org/132333002 git-svn-id: http://skia.googlecode.com/svn/trunk@13007 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of https://codereview.chromium.org/113203003/Gravatar commit-bot@chromium.org2014-01-09
| | | | | | | | | | | | | | | Reason for revert: Broken under XCode. R=bungeman@google.com, epoger@google.com TBR=bungeman@google.com, epoger@google.com NOTREECHECKS=true NOTRY=true Author: vandebo@chromium.org Review URL: https://codereview.chromium.org/132093003 git-svn-id: http://skia.googlecode.com/svn/trunk@12997 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Mac fontconfig buildGravatar commit-bot@chromium.org2014-01-09
| | | | | | | | | | | | | | The Mac fontconfig just #defines the cache directory, which works fine if fontconfig never has to look up any fonts (the case until now). If it has to actually find fonts from the disk, the cache directory and config directory need to be properly defined as well as running fc-cache to populate the cache directory. Populating the cache directory can take some time, but should only happen on a clean build. To remove this extra time, we have to not build poppler on Mac, which can now be accomplished with GYP_DEFINES="skia_mac_poppler=0" R=bungeman@google.com, epoger@google.com Author: vandebo@chromium.org Review URL: https://codereview.chromium.org/113203003 git-svn-id: http://skia.googlecode.com/svn/trunk@12994 2bbb7eff-a529-9590-31e7-b0007b416f81
* Big Cleanup: SkBitmapFactory, SkLazyPixelRef, SkImageCacheGravatar halcanary@google.com2013-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed SkBitmapFactory since no clients were using it. New cache selection mechanism can simply pass a SkDiscardableMemory::Factory into the SkDiscardablePixelRef if non-default SkDiscardableMemory should be used. Removed BitmapFactoryTest. SkDiscardableMemory::Factory interface. Android will need this functionality in the future inside their BitmapFactory. Removed SkLazyPixelRef, since it's functionality is now subsumed into SkDiscardablePixelRef. Removed LazyPixelRef test. Modified SkDiscardablePixelRef to optionally allow it to use a SkDiscardableMemory::Factory. This tiny change makes it a replacement for SkLazyPixelRef. This functioanlity is also necessary for moving Android over to SkDiscardablePixelRef from SkImageRef in a later CL. Added a test for this. SkDecodingImageGenerator::Install can optionally pass a factory in to SkDiscardablePixelRef. Removed SkImageCache, SkLruImageCache, and SkPurgeableImageCache. This functionality can be handled much more cleanly by SkDiscardableMemory. New SkDiscardableMemoryPool class to replace SkLruImageCache. In a later CL, we will replace SkImageRef_GlobalPool (used by android) as well. This is a concrete implementation of SkDiscardableMemory::Factory. Added a test for this. modified gm/factory.cpp to remove dependnce on SkBitmapFactory + SkLruImageCache. Now uses SkDecodingImageGenerator + SkDiscardablePixelRef + SkDiscardableMemoryPool. SkImageDecoder::Target replaces SkBitmapFactory::Target. The DecodeMemoryToTarget function may disappear in the future. Moved SkLazyCachingPixelRef::DecodeProc replaces SkBitmapFactory::DecodeProc. This is a short term change, since another CL changes SkLazyCachingPixelRef to use SkImageGenerator instead of DecodeProc. Modified DrawBitmapRectTest to use SkDiscardablePixelRef instead of SkLazyPixelRef. tools/LazyDecodeBitmap.cpp now uses SkDecodingImageGenerator + SkDiscardablePixelRef instead of a SkBitmapFactory. bench_pictures uses the Global SkDiscardableMemoryPool instead of a global gLruImageCache. R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/103033002 git-svn-id: http://skia.googlecode.com/svn/trunk@12515 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove the comments settings for vim tab width and expansion variables.Gravatar commit-bot@chromium.org2013-12-02
| | | | | | | | | | | | | | | | | | These add unnecessary bloat for everyone to carry around, so we just remove them now. The same change was made in chromium by Tony in http://codereview.chromium.org/7310019 - crrev.com/92046 BUG=None TEST=./gyp_skia R=mtklein@google.com Author: tfarina@chromium.org Review URL: https://codereview.chromium.org/92673003 git-svn-id: http://skia.googlecode.com/svn/trunk@12443 2bbb7eff-a529-9590-31e7-b0007b416f81
* Pdfviewer refactoring.Gravatar scroggo@google.com2013-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly superficial changes, to help me make sure I understand the code while making modifications. SkPdfRenderer: First class I'm modifying. Move it into include/ and src/ directories. Inherit from SkNoncopyable. Replace load() with factory function which returns NULL if the load fails. Remove unload() and loaded(), which no longer make sense, since the factory will return NULL on a failure to load, and unload() happens on destruction. Use a const char* for loading a PDF, following the convention of SkStream::NewFromFile. Remove unnecessary call to sqrt in SkPDFNativeRenderToBitmap. Also in SkPDFNativeRenderToBitmap, use an appropriate SkScalar macro to convert to an integer. Use this-> when calling member functions. pdf_viewer_main.cpp: Call the new interface for SkPdfRenderer. gyp files: Refer to the new location of SkPdfRenderer. R=edisonn@google.com Review URL: https://codereview.chromium.org/59493011 git-svn-id: http://skia.googlecode.com/svn/trunk@12296 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: compile pdfviewer in gm, only if the flag is set (currently we ↵Gravatar commit-bot@chromium.org2013-11-12
| | | | | | | | | | | | compile pdfviewer, even if it is not used) R=scroggo@google.com, jvanverth@google.com Author: edisonn@google.com Review URL: https://codereview.chromium.org/68533003 git-svn-id: http://skia.googlecode.com/svn/trunk@12249 2bbb7eff-a529-9590-31e7-b0007b416f81
* Initial draft code to run pdfviewer withg gmsGravatar commit-bot@chromium.org2013-11-11
| | | | | | | | | | | | draft cl to run pdfviewer with gms modified: gm/gmmain.cpp modified: gyp/gm.gyp modified: src/utils/SkPDFRasterizer.cpp modified: src/utils/SkPDFRasterizer.h R=scroggo@google.com, borenet@google.com Author: edisonn@google.com Review URL: https://codereview.chromium.org/26269002 git-svn-id: http://skia.googlecode.com/svn/trunk@12214 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create new target to hold gpu test code, enable direct testing of GrEffects ↵Gravatar commit-bot@chromium.org2013-08-21
| | | | | | | | | | | | in GM. R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com Author: bsalomon@google.com Review URL: https://chromiumcodereview.appspot.com/23352003 git-svn-id: http://skia.googlecode.com/svn/trunk@10866 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add libpoppler for PDF rendering, take 2Gravatar commit-bot@chromium.org2013-08-20
| | | | | | | | | | R=vandebo@chromium.org, edisonn@google.com Author: richardlin@chromium.org Review URL: https://chromiumcodereview.appspot.com/23301009 git-svn-id: http://skia.googlecode.com/svn/trunk@10833 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "The CL adds libpoppler to DEPS and adds a libpoppler-cpp gyp target ↵Gravatar vandebo@chromium.org2013-08-20
| | | | | | | | | | | for Linux, Windows, and Mac. This does not currently change the GM tool to use poppler - that will be a refactor job in a separate CL." This reverts commit r10823 TBR=richardlin@chromium.org Review URL: https://codereview.chromium.org/23190020 git-svn-id: http://skia.googlecode.com/svn/trunk@10828 2bbb7eff-a529-9590-31e7-b0007b416f81
* The CL adds libpoppler to DEPS and adds a libpoppler-cpp gyp target for ↵Gravatar commit-bot@chromium.org2013-08-20
| | | | | | | | | | | | | | Linux, Windows, and Mac. This does not currently change the GM tool to use poppler - that will be a refactor job in a separate CL. Several third-party libraries are pulled in, and platform-specific headers are included under third_party/(library name). Chromium style READMEs containing a description of the library, as well as a LICENSE file are also included in that directory. (is there a Skia-specific style for these?) R=vandebo@chromium.org, edisonn@google.com, djsollen@chromium.org, bungeman@chromium.org, open-source-third-party-reviews@google.com, thestig@chromium.org Author: richardlin@chromium.org Review URL: https://chromiumcodereview.appspot.com/20220002 git-svn-id: http://skia.googlecode.com/svn/trunk@10823 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update obvious deps.Gravatar bungeman@google.com2013-07-22
| | | | | | | | | | | | | | | This is a step toward targets declaring their deps in a sane fashion. This change resolves cycles by forcing core to the root, then everything in skia_lib pointing toward core as best possible, then everything outside skia_lib depending on skia_lib for things in skia_lib. This prevents double definitions where a symbol is provided by both the skia_lib shared object and and a statically linked component of skia_lib. R=djsollen@google.com Review URL: https://codereview.chromium.org/19823003 git-svn-id: http://skia.googlecode.com/svn/trunk@10231 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build fix after r9598.Gravatar fmalita@google.com2013-06-13
| | | | | | | | | | Updated include paths for debugger backend classes. R=bungeman@google.com Review URL: https://codereview.chromium.org/16866017 git-svn-id: http://skia.googlecode.com/svn/trunk@9600 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expose debugger backend classes externally.Gravatar fmalita@google.com2013-06-13
| | | | | | | | | | | | SkDebugCanvas & friends are useful beyond the Qt debugger app - Chromium's picture inspector (in development) is at the point where it could take advantage of it. This patch moves SkDrawCommand, SkDebugCanvas & SkObjectParser from trunk/debugger to trunk/src/utils (since several tools already use these, this seems appropriate), and makes SkDrawCommand & SkDebugCanvas' symbols visible externally (SK_API). R=reed@google.com Review URL: https://codereview.chromium.org/16638014 git-svn-id: http://skia.googlecode.com/svn/trunk@9598 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix gm on androidGravatar djsollen@google.com2013-06-03
| | | | | | | | R=borenet@google.com Review URL: https://codereview.chromium.org/15927011 git-svn-id: http://skia.googlecode.com/svn/trunk@9403 2bbb7eff-a529-9590-31e7-b0007b416f81
* Prepare skia for shared library build on androidGravatar djsollen@google.com2013-06-03
| | | | | | | | | | This reapplies revision 9378 after the buildbot has been updated. R=borenet@google.com, djsollen@google.com Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9395 2bbb7eff-a529-9590-31e7-b0007b416f81
* prepare skia for shared library build on androidGravatar djsollen@google.com2013-05-31
| | | | | | | | | | R=borenet@google.com, djsollen@google.com Committed: https://code.google.com/p/skia/source/detail?r=9378 Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9379 2bbb7eff-a529-9590-31e7-b0007b416f81
* prepare skia for shared library build on androidGravatar djsollen@google.com2013-05-31
| | | | | | | | R=borenet@google.com, djsollen@google.com Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9378 2bbb7eff-a529-9590-31e7-b0007b416f81
* Write/compare against expectations in skimage tool.Gravatar scroggo@google.com2013-05-08
| | | | | | | | | | | | | | | | | | | | | skimage: Add two new modes: one to write expectations to a json file, and another to compare results against expectations. Use SkPATH_SEPARATOR instead of '/'. gm_expectations: Split into a static library so it can be used by skimage. Make functions non static and move function definitions into source file. Capitalize static member functions to follow the coding style guidelines. BUG=https://code.google.com/p/skia/issues/detail?id=1241 R=epoger@google.com Review URL: https://codereview.chromium.org/14670021 git-svn-id: http://skia.googlecode.com/svn/trunk@9069 2bbb7eff-a529-9590-31e7-b0007b416f81
* GM: specify that currently used checksums are CityHashes of SkBitmapsGravatar epoger@google.com2013-04-26
| | | | | | | | | (distinct from other hash algorithms we may switch to, or hashes of files such as PDFs that cannot be read into an SkBitmap) Review URL: https://codereview.chromium.org/14284018 git-svn-id: http://skia.googlecode.com/svn/trunk@8877 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add testing of optimizations to GMGravatar robertphillips@google.com2013-04-12
| | | | | | | | https://codereview.chromium.org/12843028/ git-svn-id: http://skia.googlecode.com/svn/trunk@8658 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r8654Gravatar robertphillips@google.com2013-04-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8655 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add testing of optimizations to GMGravatar robertphillips@google.com2013-04-12
| | | | | | | | https://codereview.chromium.org/12843028/ git-svn-id: http://skia.googlecode.com/svn/trunk@8654 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland r8235 "Switch gm to use SkFlags."Gravatar scroggo@google.com2013-03-20
| | | | | | | | | | | | This time, using #if guards for gpuCacheSize consistently. Also fix some warnings. BUG=https://code.google.com/p/skia/issues/detail?id=1094 Review URL: https://codereview.chromium.org/12440052 git-svn-id: http://skia.googlecode.com/svn/trunk@8254 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Make gm use SkFlags."Gravatar scroggo@google.com2013-03-19
| | | | | | | | | | Fix the build. This reverts commit 6f1fe2aee39308fc56854b062be244a904c209e7. Review URL: https://codereview.chromium.org/12709005 git-svn-id: http://skia.googlecode.com/svn/trunk@8236 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make gm use SkFlags.Gravatar scroggo@google.com2013-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make flag parser its own project. It is still in the tools folder, but can now be used by other projects. Some changes to behavior in order to work with SkFlags: enable-missing-warning and disable-missing-warning have become enableMissingWarning and noenableMissingWarning. exclude-config is now excludeConfig --config now can only be listed once, but all configs listed after it will be included (same with excludeConfig and match). In addition, writeJsonSummary has been changed to writeJsonSummaryPath for consistency with other path flags. Provide an option to SkFlags to provide a short name, and use it for the flags which have short names. --tileGridReplayScales now takes space separated arguments, like other inputs. BUG=https://code.google.com/p/skia/issues/detail?id=1094 Review URL: https://codereview.chromium.org/12632015 git-svn-id: http://skia.googlecode.com/svn/trunk@8235 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added a new function to directly generate a blurred rectangle analytically.Gravatar humper@google.com2013-01-04
| | | | | | | | | Added two new microbenchmarks to demonstrate speedup over existing BlurSeparable approach. Added new GM tests for blurred rectangles. Review URL: https://codereview.appspot.com/7037050 git-svn-id: http://skia.googlecode.com/svn/trunk@7034 2bbb7eff-a529-9590-31e7-b0007b416f81
* Re-land r6843 with copied gyp file to (hopefully) fix Windows buildGravatar epoger@google.com2012-12-18
| | | | | | | BUG=https://code.google.com/p/skia/issues/detail?id=1023 Review URL: https://codereview.appspot.com/6943073 git-svn-id: http://skia.googlecode.com/svn/trunk@6880 2bbb7eff-a529-9590-31e7-b0007b416f81
* Roll out r6843 to hopefully fix Windows buildsGravatar epoger@google.com2012-12-17
| | | | | | | | BUG=https://code.google.com/p/skia/issues/detail?id=1023 TBR=borenet Review URL: https://codereview.appspot.com/6942061 git-svn-id: http://skia.googlecode.com/svn/trunk@6849 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add --writeJsonSummary option to gmGravatar epoger@google.com2012-12-17
| | | | | | | | This writes out a JSON file containing expected and actual checksum values for every test. Next step: allow the same checksum file to be compared against, instead of PNG files. Review URL: https://codereview.appspot.com/6940053 git-svn-id: http://skia.googlecode.com/svn/trunk@6843 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build Skia as a static libraryGravatar borenet@google.com2012-10-10
| | | | | | | | | | | - Roll GYP so that we get non-thin archives on Linux - Add merge_static_libs.py - Add skia_core_lib target which builds core, ports, opts*, and utils - Replace dependencies on core/ports/opts/utils with skia_core_libs - Rename exportable libraries with "skia_" Review URL: https://codereview.appspot.com/6619049 git-svn-id: http://skia.googlecode.com/svn/trunk@5889 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part II of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6474054 git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create GPU-less build of Skia.Gravatar bsalomon@google.com2012-08-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4912 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove texture/mask setters on GrPaintGravatar bsalomon@google.com2012-07-26
| | | | | | | | Review URL: http://codereview.appspot.com/6446052/ git-svn-id: http://skia.googlecode.com/svn/trunk@4790 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix the build for GM.Gravatar scroggo2012-06-06
| | | | | | | | Add src/pipe/utils as an include directory. git-svn-id: http://skia.googlecode.com/svn/trunk@4200 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add tiled rendering as an option to GM.Gravatar scroggo@google.com2012-06-06
| | | | | | | | | | | Use an SkGPipe to play back drawing into tiles. This will help us to debug differences in drawing while tiled. Pass --tiledPipe to gm to use the tiled pipe. Review URL: https://codereview.appspot.com/6295050 git-svn-id: http://skia.googlecode.com/svn/trunk@4199 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make the GM tool run GMs through an SkGPipe.Gravatar scroggo@google.com2012-06-04
| | | | | | | | | | | | Add pipe to core gyp project. Do not run samplerstress through the pipe, since its custom MaskFilter will not draw correctly. Fix an assert in SkGPipeWrite when writing a typeface. Review URL: https://codereview.appspot.com/6276044 git-svn-id: http://skia.googlecode.com/svn/trunk@4139 2bbb7eff-a529-9590-31e7-b0007b416f81
* Converted AAClips SampleApp slide to GM:simpleaaclipGravatar robertphillips@google.com2012-05-22
| | | | | | | | http://codereview.appspot.com/6220043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4025 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make all gyp targets automatically include common.gypiGravatar epoger@google.com2012-03-16
| | | | | | | Do this, rather than including common.gypi explicitly in all our gyp files, so that gyp files we use but do not maintain (e.g., third_party/externals/libjpeg/libjpeg.gyp) will include common.gypi too. Review URL: https://codereview.appspot.com/5820068 git-svn-id: http://skia.googlecode.com/svn/trunk@3411 2bbb7eff-a529-9590-31e7-b0007b416f81
* Set LCD font smoothing to "medium" for gm on Mac, regardless of system settingsGravatar epoger@google.com2012-02-14
| | | | | | | http://code.google.com/p/skia/issues/detail?id=382 ('make gm results consistent regardless of system LCDtext settings') Review URL: https://codereview.appspot.com/5661043 git-svn-id: http://skia.googlecode.com/svn/trunk@3184 2bbb7eff-a529-9590-31e7-b0007b416f81
* move ports into its own gyp fileGravatar caryclark@google.com2011-12-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2874 2bbb7eff-a529-9590-31e7-b0007b416f81
* Import all GMs as Samples.Gravatar bsalomon@google.com2011-10-31
| | | | | | | | Review URL: http://codereview.appspot.com/5332043/ git-svn-id: http://skia.googlecode.com/svn/trunk@2564 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add per-vertex coverage field, use in AA rects when alpha tweak is not ↵Gravatar bsalomon@google.com2011-10-10
| | | | | | | | | | valid, add relevant sample/gm Review URL: http://codereview.appspot.com/5181044/ git-svn-id: http://skia.googlecode.com/svn/trunk@2440 2bbb7eff-a529-9590-31e7-b0007b416f81
* Mac does not like empty projects.Gravatar bungeman@google.com2011-10-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2438 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add xps device to skia.Gravatar bungeman@google.com2011-10-10
| | | | | | | http://codereview.appspot.com/5076041/ git-svn-id: http://skia.googlecode.com/svn/trunk@2437 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixup rendering of empty paths (including inverted fills)Gravatar bsalomon@google.com2011-10-05
| | | | | | | | | | Add GM and Sample that draw empty paths with various styles and fills Review URL: http://codereview.appspot.com/5185047/ git-svn-id: http://skia.googlecode.com/svn/trunk@2414 2bbb7eff-a529-9590-31e7-b0007b416f81
* add gm test for drawing hairlines (and varying thin lines) in xfermodesGravatar reed@google.com2011-09-19
| | | | | | | | add --nopdf option to gm app git-svn-id: http://skia.googlecode.com/svn/trunk@2281 2bbb7eff-a529-9590-31e7-b0007b416f81