aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLCreateNullInterface.cpp
Commit message (Collapse)AuthorAge
* API to cache shader binaries between runs of Skia.Gravatar Ethan Nicholas2017-11-02
| | | | | | | | | | | | This CL does not include an actual implementation of said cache. Stan is working on the cache implementation on the Android side of things. Bug: skia: Change-Id: Iabe4f19b2dbacaaa1ead8bb3fa68d88c687b9a84 Reviewed-on: https://skia-review.googlesource.com/54780 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Replace SkFAIL with SK_ABORT.Gravatar Ben Wagner2017-08-16
| | | | | | | | | | | | SkFAIL is a legacy macro which is just SK_ABORT. This CL mechanically changes uses of SkFAIL to SK_ABORT in preparation for its removal. The related sk_throw macro will be changed independently, due to needing to actually clean up its users. Change-Id: Id70b5c111a02d2458dc60c8933f444df27d9cebb Reviewed-on: https://skia-review.googlesource.com/35284 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Fix -Wshadow-field warning in class NullInterfaceGravatar Brian Salomon2017-02-18
| | | | | | | | | This warning fires in a tip of tree clang build because the base class to NullInterface also has a field called fExtensions. Change-Id: I5e2a901583ae223a85d562f2d8b082e4d0cbf690 Reviewed-on: https://skia-review.googlesource.com/8691 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* src/gpu: s/SkAutoTUnref/sk_sp/gGravatar Hal Canary2016-11-07
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4527 Change-Id: I23f0548f98e7c355da05e143e8baa330d4bc04cc Reviewed-on: https://skia-review.googlesource.com/4527 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Remove stray semicolons.Gravatar Mike Klein2016-09-27
| | | | | | | | | | | | | | | | Turns out function declarations don't end in semicolons... BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2720 No public API changes. TBR=reed@google.com Change-Id: I72b56d52e1ff7fa6e89c295b0de8c46599791ebb Reviewed-on: https://skia-review.googlesource.com/2720 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Support GL_SAMPLES queries in null contextsGravatar csmartdalton2016-06-23
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085043002 Committed: https://skia.googlesource.com/skia/+/64b92a59294a2f73448b3fa8f36f39079f032521 Committed: https://skia.googlesource.com/skia/+/57e98530c113066c4c2d9c64505c52dc25e66c00 Review-Url: https://codereview.chromium.org/2085043002
* Revert of Support GL_SAMPLES queries in null contexts (patchset #4 id:60001 ↵Gravatar brianosman2016-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/2085043002/ ) Reason for revert: ASAN failures (including DEPS roll). Original issue's description: > Support GL_SAMPLES queries in null contexts > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085043002 > > Committed: https://skia.googlesource.com/skia/+/64b92a59294a2f73448b3fa8f36f39079f032521 > Committed: https://skia.googlesource.com/skia/+/57e98530c113066c4c2d9c64505c52dc25e66c00 TBR=bsalomon@google.com,csmartdalton@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2091773002
* Support GL_SAMPLES queries in null contextsGravatar csmartdalton2016-06-22
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085043002 Committed: https://skia.googlesource.com/skia/+/64b92a59294a2f73448b3fa8f36f39079f032521 Review-Url: https://codereview.chromium.org/2085043002
* Revert of Support GL_SAMPLES queries in null contexts (patchset #2 id:20001 ↵Gravatar brianosman2016-06-22
| | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/2085043002/ ) Reason for revert: Chrome unit tests failing (eg https://codereview.chromium.org/2085243002) Original issue's description: > Support GL_SAMPLES queries in null contexts > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085043002 > > Committed: https://skia.googlesource.com/skia/+/64b92a59294a2f73448b3fa8f36f39079f032521 TBR=bsalomon@google.com,csmartdalton@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2089013003
* Support GL_SAMPLES queries in null contextsGravatar csmartdalton2016-06-21
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085043002 Review-Url: https://codereview.chromium.org/2085043002
* Support texel and draw-indirect buffers in null GL contextsGravatar csmartdalton2016-06-21
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2081183002 Review-Url: https://codereview.chromium.org/2081183002
* Enable NV_path_rendering in the Null GL.Gravatar svaisanen2016-04-20
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1882563002 Review URL: https://codereview.chromium.org/1882563002
* Fix null context GenBuffersGravatar cdalton2016-04-06
| | | | | | | | | Fixes the null context to not return 0 for GenBuffers. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1863923003 Review URL: https://codereview.chromium.org/1863923003
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* Make the debug interface a GrGLTestInterface subclass.Gravatar bsalomon2016-03-21
| | | | | | | | | | | The debug interface subsumes the GrDebugGL singleton which allows multiple instances. Fixes a few issues that existed before this CL (pack alignment wasn't tracked or respected, and we weren't initializing a texture id to 0 in one GM). Apparently this is not currently run on the bots. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1812323002 Review URL: https://codereview.chromium.org/1812323002
* Fix uninitialized fCurrProgramID in GrGLCreateNullInterfaceGravatar fmalita2016-03-19
| | | | | | | TBR=bsalomon@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1817793002 Review URL: https://codereview.chromium.org/1817793002
* Store null GL context's state in interface objectGravatar bsalomon2016-03-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1814113002 Review URL: https://codereview.chromium.org/1814113002
* Add caps and GL API for buffer textureGravatar cdalton2016-03-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1784063003 Review URL: https://codereview.chromium.org/1784063003
* Include glGetMultisamplefv APIGravatar cdalton2016-02-26
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1720963002 Committed: https://skia.googlesource.com/skia/+/69c1b24bcaa7cffd59753a75a7f3d155696fcac4 Review URL: https://codereview.chromium.org/1720963002
* Revert of Include glGetMultisamplefv API (patchset #1 id:1 of ↵Gravatar ethannicholas2016-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1720963002/ ) Reason for revert: This is in the blamelist for Visualbench failures: https://build.chromium.org/p/client.skia/builders/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-VisualBench/builds/1035 and seems the most likely candidate for the failure, so I am tentatively reverting. Original issue's description: > Include glGetMultisamplefv API > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1720963002 > > Committed: https://skia.googlesource.com/skia/+/69c1b24bcaa7cffd59753a75a7f3d155696fcac4 TBR=bsalomon@google.com,joshualitt@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1731333002
* Include glGetMultisamplefv APIGravatar cdalton2016-02-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1720963002 Review URL: https://codereview.chromium.org/1720963002
* Improve GLSL integer supportGravatar cdalton2016-02-08
| | | | | | | | | | | | | - Adds shader types for uint. - Adds a cap for integer support. - Uses glVertexAttribIPointer for integer attribs. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1669853002 Committed: https://skia.googlesource.com/skia/+/3a2caf8ecf38124f4ad21a0f6c4dabfcfa17911a Review URL: https://codereview.chromium.org/1669853002
* Revert of Improve GLSL integer support (patchset #1 id:1 of ↵Gravatar dcheng2016-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1669853002/ ) Reason for revert: MSAN bots are unhappy with this change: https://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20ChromeOS%20MSan%20Tests/builds/7068 Original issue's description: > Improve GLSL integer support > > - Adds shader types for uint. > - Adds a cap for integer support. > - Uses glVertexAttribIPointer for integer attribs. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1669853002 > > Committed: https://skia.googlesource.com/skia/+/3a2caf8ecf38124f4ad21a0f6c4dabfcfa17911a TBR=bsalomon@google.com,egdaniel@google.com,ethannicholas@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1674813004
* Improve GLSL integer supportGravatar cdalton2016-02-05
| | | | | | | | | | | - Adds shader types for uint. - Adds a cap for integer support. - Uses glVertexAttribIPointer for integer attribs. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1669853002 Review URL: https://codereview.chromium.org/1669853002
* Add support for EGLImage to GrGLInterfaceGravatar bsalomon2015-11-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1434813002
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* remove SkInstCntGravatar mtklein2015-06-26
| | | | | | | | | | | | | | It's been outclassed by Valgrind and leak sanitizer, and it seems to be causing problems for external folks building Skia. I'm not sure why our own builds seem unaffected. Latest thread: https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0 BUG=skia: Review URL: https://codereview.chromium.org/1217573002
* Import functionality for new GL backendGravatar cdalton2015-06-12
| | | | | | | | | | | | | | | | | | Brings in the following functionality: ARB_draw_instanced ARB_instanced_arrays NV_bindless_texture EXT_direct_state_access KHR_debug Also cleans up some of the NVPR extension loading. BUG=skia: Committed: https://skia.googlesource.com/skia/+/202c4c75fb806f751cf796850bf67fe9793e0643 Review URL: https://codereview.chromium.org/1185573003
* Revert of Import functionality for new GL backend (patchset #2 id:20001 of ↵Gravatar djsollen2015-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1185573003/) Reason for revert: breaking multiple builds. For example... https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/667 Original issue's description: > Import functionality for new GL backend > > Brings in the following functionality: > > ARB_draw_instanced > ARB_instanced_arrays > NV_bindless_texture > EXT_direct_state_access > KHR_debug > > Also cleans up some of the NVPR extension loading. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/202c4c75fb806f751cf796850bf67fe9793e0643 TBR=bsalomon@google.com,cdalton@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1184863002
* Import functionality for new GL backendGravatar cdalton2015-06-12
| | | | | | | | | | | | | | | | Brings in the following functionality: ARB_draw_instanced ARB_instanced_arrays NV_bindless_texture EXT_direct_state_access KHR_debug Also cleans up some of the NVPR extension loading. BUG=skia: Review URL: https://codereview.chromium.org/1185573003
* Add tokens and entry points for KHR_blend_equation_advancedGravatar cdalton2015-04-22
| | | | | | | | | | Also adds glBlendEquation, which the extension interacts with, to the core of GrGLInterface. Validation of this function is temporarily disabled until Chrome hooks it up. BUG=skia: Review URL: https://codereview.chromium.org/1039693004
* Revert of Add tokens and entry points for KHR_blend_equation_advanced ↵Gravatar tomhudson2015-04-21
| | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1039693004/) Reason for revert: We're getting repeated crashes since this CL landed when we try to evaluate a roll into Chrome on our bots. (https://uberchromegw.corp.google.com/i/client.skia/builders/Linux%20Tests/builds/1902) Our initial reflex is to put a #if 0 around this code (just like the immediately following lines 334-338 in GrGLInterface.cpp), but the error isn't what the GPU team expected to see if that was all we needed, so we're reverting now and asking you to resubmit tomorrow after running more thorough tests. Original issue's description: > Add tokens and entry points for KHR_blend_equation_advanced > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/8e578859f80b46a63144add215955221017d3609 TBR=markkilgard@gmail.com,bsalomon@google.com,cdalton@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1101593002
* Add tokens and entry points for KHR_blend_equation_advancedGravatar cdalton2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1039693004
* Add GrGLCreateNullInterface.cpp back to gyp, and put contents in namespace.Gravatar bsalomon2015-02-11
| | | | | | TBR=robertphillips@google.com Review URL: https://codereview.chromium.org/899803004
* Simplify SkInstCntGravatar mtklein2015-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code requires fewer macros to use it (just one), has less code in macro definitions, and has simpler synchronization code (just atomic ints, no SkOnce, no SkMutex, etc.) A minor downside, we lose indentation and reverse-ordering in the final report: Leaked SkRefCntBase: 7 Leaked SkFontMgr: 1 Leaked SkWeakRefCnt: 1 Leaked SkTypeface: 1 Leaked SkFlattenable: 3 Leaked SkXfermode: 3 Leaked SkPathRef: 1 Leaked SkPixelRef: 1 Leaked SkMallocPixelRef: 1 becomes Leaked SkXfermode: 3 Leaked SkMallocPixelRef: 1 Leaked SkPixelRef: 1 Leaked SkPathRef: 1 Leaked SkFlattenable: 3 Leaked SkTypeface: 1 Leaked SkWeakRefCnt: 1 Leaked SkFontMgr: 1 Leaked SkRefCntBase: 7 This is motivated by wanting to land https://codereview.chromium.org/806473006/, which makes sure all static use of SkOnce are in global scope. The current implementation of SkInstCnt uses them in function scope, which isn't safe. BUG=skia: No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/841263004
* Add gpu support for glVertexAttrb1f, 2fv, and 3fvGravatar egdaniel2014-10-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/662583003
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Make null gpu context threadsafe(r) and make sure buffer objects are destroyed.Gravatar bsalomon2014-08-14
| | | | | | | | | NOTREECHECKS=true R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/470993002
* Add support for glCompressedTexSubImage2DGravatar krajcevski2014-06-11
| | | | | | | | R=bsalomon@google.com, robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/329213002
* Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData.Gravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | BUG=skia:2402 Committed: http://code.google.com/p/skia/source/detail?r=14533 R=robertphillips@google.com, djsollen@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/243413002 git-svn-id: http://skia.googlecode.com/svn/trunk@14564 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Add support for glMapBufferRange. Use glMapBufferRange and ↵Gravatar djsollen@google.com2014-05-02
| | | | | | | | | | | | | | | | glMapBufferSubData. (https://codereview.chromium.org/243413002/) Reason for revert: This is firing an assert on many of the Android debug bots Original issue's description: > Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData. > > BUG=skia:2402 > > Committed: http://code.google.com/p/skia/source/detail?r=14533 git-svn-id: http://skia.googlecode.com/svn/trunk@14541 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData.Gravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | BUG=skia:2402 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/243413002 git-svn-id: http://skia.googlecode.com/svn/trunk@14533 2bbb7eff-a529-9590-31e7-b0007b416f81
* Convert GrCrash->SkFAIL GrDebugCrash->SkDEBUGFAILGravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | R=robertphillips@google.com, reed@google.com, mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/257393004 git-svn-id: http://skia.googlecode.com/svn/trunk@14460 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use EXT_direct_state_access for path matrix manipulationGravatar commit-bot@chromium.org2014-04-25
| | | | | | | | | | | | | | | | Use EXT_direct_state_access for path matrix manipulation when using NV_path_rendering extension. This makes Chromium command buffer integration easier, since the current matrix mode does not need to be exposed as state and fewer function calls and enums are needed. BUG=chromium:344330 R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/245963009 git-svn-id: http://skia.googlecode.com/svn/trunk@14374 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use fixed function pipeline only when drawing pathsGravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | Use fixed function pipeline only when drawing paths. Previously FF vertex shader was used when drawing normal geometry if path rendering was enabled. This is required to make Chromium integration easier. This way fixed function vertex shading, including vertexshader-less programs, need not be implemented in the Chromium command buffer. Removes FF TexGen functionality, as it is not used anymore. Likewise removes the fixedFunctionSupport GL capability flag. BUG=chromium:344330 R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/212753002 git-svn-id: http://skia.googlecode.com/svn/trunk@14334 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup GrGLInterface after Chromium changesGravatar commit-bot@chromium.org2014-02-28
| | | | | | | | | | | | Depends on landing https://codereview.chromium.org/143263014 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/149533002 git-svn-id: http://skia.googlecode.com/svn/trunk@13630 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use vertex buffer objects instead of client side arrays in fixed-function ↵Gravatar commit-bot@chromium.org2014-02-24
| | | | | | | | | | | | | | | | | | | | | | | codepaths Pass vertices to the fixed-function shaders in vertex buffer object stored at attribute 0. This is specified in OpenGL Compatibility Profile Section 10.8.2 (Transferring Vertices With Vertex Attribute Zero). This makes future integration to Chromium command buffer better, since the command buffer already has code for vertex buffer objects but not vertex arrays. Delete unused function pointers related to fixed-function codepaths. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/130423013 git-svn-id: http://skia.googlecode.com/svn/trunk@13557 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add hooks for GL_EXT_debug_marker in gpuGravatar commit-bot@chromium.org2014-02-21
| | | | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/174123003 git-svn-id: http://skia.googlecode.com/svn/trunk@13538 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move GrGLInterface function pointers into a nested structGravatar commit-bot@chromium.org2014-01-21
| | | | | | | | | | | BUG=skia:2042 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/133073009 git-svn-id: http://skia.googlecode.com/svn/trunk@13130 2bbb7eff-a529-9590-31e7-b0007b416f81