We were not mirroring negative numbers about the y axis.
This is most visible when we hit the gamma-only fast path,
as the linear segment of a 7-parameter function will at
least still produce real-valued colors...
Bug is present when SK_LEGACY_EXTENDED_TRANSFER_FUNCTIONS,
fixed when not.
PS1 forgot from_srgb/to_srgb.
Bug: chromium:875650
Change-Id: I84a68be7f6a3cf6e847011cbab5aeab18f7fa38a
Reviewed-on: https://skia-review.googlesource.com/152000
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: I8fe8d4d6dfe5332e6a3995e8519cc42e4e74caff
Reviewed-on: https://skia-review.googlesource.com/152041
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Chrome's analyze step uses GN and doesn't see changes
to these files as mattering to anything.
I've kept the ones particular to old style opts in
each of their particular targets, and the ones that
are included multiple times (including from outside
src/opts) in core. Kind of arbitrary, but it's at
least close to the right slicing.
Change-Id: I2a5aaeca5b6287c13d7365ec1b63158f48e4e84a
Reviewed-on: https://skia-review.googlesource.com/152040
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The code generated from std::move()ing them should be fine.
Bug: skia:8355
Change-Id: I63ef650b5fbcf9fb6356006190eae5e0977ae642
Reviewed-on: https://skia-review.googlesource.com/151982
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:
Change-Id: I0ca1f3b60d05ce02d1e53bb8b989c9dc1babddd1
Reviewed-on: https://skia-review.googlesource.com/150915
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
When repeatedly insetting rings we can wind up with bisector vectors
that correspond to a slightly concave ring. This would cause the first
intersection when computing the next ring's inset depth to be outside
the current ring. Instead skip adjacent bisectors that intersect outside
the ring during the search.
Change-Id: I3efab5a9f44966888cfa86715876b7b177950732
Reviewed-on: https://skia-review.googlesource.com/151827
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Centralize the calculation to SkGlyphCacheCommon. This allows this
function to be used with NO_GPU.
In addition, this was used in the last remaining function in GrTest.
That function was used in a single place. I made the function a static
and remove GrTest.h. This had massive knock-on effects.
Change-Id: I80f874a988f9af4383a83acf7c273d23b8d67c22
Reviewed-on: https://skia-review.googlesource.com/151480
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This issue is seen in the existing GPU results for GM "strokes_round".
Detected while investigating the below bug. However, the real bug there
caused by bad tessellations appears to be coming from
GrAAConvexPathRenderer.
BUG=chromium:851637
Change-Id: If4e653d10823d53f68bb9bf6bb77875cf391426f
Reviewed-on: https://skia-review.googlesource.com/151368
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:
Change-Id: I2545c328a9e94250b09038ce869c94bce6377376
Reviewed-on: https://skia-review.googlesource.com/151823
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Rather that returning nullptr for a recording
canvas, return a raster canvas instead.
R=reed@google.com,robertphillips@google.com
Bug: skia:
Change-Id: I211d8ef368b9aec6d14cc72d1652ac6a03f3fa7b
Reviewed-on: https://skia-review.googlesource.com/151666
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
cc04663019..750e508722
git log cc0466301999..750e508722a9 --date=short --no-merges --format='%ad %ae %s'
2018-09-05 jmadill@chromium.org Update style guide.
Created with:
gclient setdep -r third_party/externals/angle2@750e508722a9
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=jvanverth@google.com
Change-Id: Id9c4620e41a327d761ee84c9add333d81ca8f3ca
Reviewed-on: https://skia-review.googlesource.com/151800
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
This may prevent unrecoverable crashes when attempting to create a
compatibility profile with Intel drivers.
Bug: skia:
Change-Id: I24c1bfe01fed40026c9b467144f454846d6b5b34
Reviewed-on: https://skia-review.googlesource.com/151760
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Before this CL, the new test would write out 2 copies of each typeface,
since each one is referenced twice in the picture.
Bug: skia:
Change-Id: I6ebfe6b5ea0bb0cca2869ef0cccad21a51e48411
Reviewed-on: https://skia-review.googlesource.com/151667
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Change-Id: I0eff3fd535472b97a9192de6ea87c2fab1d67568
Reviewed-on: https://skia-review.googlesource.com/151520
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
For incremental topological sorting to work we need a choke point for adding opLists and dependencies. This new class will be that choke point.
Change-Id: I47ad6aa20f99cd03cd7e051f977d146a96f1734b
Reviewed-on: https://skia-review.googlesource.com/150614
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This restores behavior from before SkColor4f (that was being enforced
via SkColorSetARGB).
Bug: skia:
Change-Id: I1f206366c96d20d87918117546de9bba08db28ad
Reviewed-on: https://skia-review.googlesource.com/151665
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
S16CPU is used only inside Skia, and only sparsely.
- SkRandom::nextS16() and nextU16() were used rarely enough
that it makes things simpler to get rid of them.
- SkAlphaBlend255() was unused outside tests.
- SkIntToFDot6() looks like it really wants to take an int.
Change-Id: I3ca773beb6c04c691947d4602f27c819b660554d
Reviewed-on: https://skia-review.googlesource.com/151700
Reviewed-by: Brian Osman <brianosman@google.com>
Add SkPaint::setColor4f and getColor4f.
R=brianosman@google.com
NOTRY=true
Docs-Preview: https://skia.org/?cl=151761
Bug: skia:6898
Change-Id: If7966a4e98318a145870f3d17bd6dbc1b3cf9439
Reviewed-on: https://skia-review.googlesource.com/151761
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Note: This is also used by the infra repository.
Bug: skia:
Change-Id: Icc0dd23783ea96c0eacf123e70f9c1e2129d4365
Reviewed-on: https://skia-review.googlesource.com/151668
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Stephan Altmueller <stephana@google.com>
All PDFs are identical.
Change-Id: If2af8519a6440a5b61f91bf78fc7ae241f728183
Reviewed-on: https://skia-review.googlesource.com/151220
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
The default behavior is to not let the user move the slide to the top or
left. Implement for SampleSlide and stub out for NIMASlide (which isn't
so easy to implement).
Change-Id: I16074e704f4086199932d83e28c28d1ee39fbd9d
Reviewed-on: https://skia-review.googlesource.com/151600
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This time with infinitely less stack usage.
Change-Id: Ic0b4662203eb2787fd9d793fee65ebcd592ad5f3
Reviewed-on: https://skia-review.googlesource.com/151420
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit cacf496a9d.
Reason for revert: Android tests have been updated.
Original change's description:
> Revert "Switch SkPaint's color to SkColor4f"
>
> This reverts commit ee87c8629c.
>
> Reason for revert: Android tests.
>
> Original change's description:
> > Switch SkPaint's color to SkColor4f
> >
> > Change-Id: Ic2b83a05739720013a7c30ec014df0747b3f99a5
> > Reviewed-on: https://skia-review.googlesource.com/149229
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > Reviewed-by: Mike Klein <mtklein@google.com>
>
> TBR=djsollen@google.com,mtklein@google.com,brianosman@google.com,reed@google.com
>
> Change-Id: I85efd020598d70cbfb90c4f4af7d33482a3d7280
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/151544
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=djsollen@google.com,mtklein@google.com,brianosman@google.com,reed@google.com
Change-Id: Ifb817ab496fef22a7b1306af82186c6badbfa992
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/151664
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
No-Try: true
Docs-Preview: https://skia.org/?cl=151663
Bug: skia:
Change-Id: I7c535c6c13251210d9842f1ddbb7425dd222a423
Reviewed-on: https://skia-review.googlesource.com/151663
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
If the CreateVkBackendContext fails, we need to make the
VkphysicalDeviceFeatures2 struct at least has null filled into its
pNext so the FreeVulkanFeaturesStructs calls doesn't try to free
random memory.
Bug: skia:
Change-Id: I171d125ccba087cdd39595aca815d95463115b19
Reviewed-on: https://skia-review.googlesource.com/150139
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
3d61ac27ae..cc04663019
git log 3d61ac27ae8f..cc0466301999 --date=short --no-merges --format='%ad %ae %s'
2018-09-05 tobine@google.com Use chromium mirror for jsoncpp
Created with:
gclient setdep -r third_party/externals/angle2@cc0466301999
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=jvanverth@google.com
Change-Id: Ie191bdcfefc2ad888a0eaf8bd0bd7f7d1501456a
Reviewed-on: https://skia-review.googlesource.com/151621
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
913ff54db0..3d61ac27ae
git log 913ff54db050..3d61ac27ae8f --date=short --no-merges --format='%ad %ae %s'
2018-09-04 jmadill@chromium.org Vulkan: More micro-optimizations.
2018-09-04 syoussefi@google.com Add support for EGL_ANDROID_blob_cache
Created with:
gclient setdep -r third_party/externals/angle2@3d61ac27ae8f
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=jvanverth@google.com
Change-Id: I6f58ef73172f8602d2f06bfea357e6a823d7110a
Reviewed-on: https://skia-review.googlesource.com/151620
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
remove temporary bookmaker files
Add checks to bookmaker so it doesn't write status
if generated files are unchanged; and deletes temporary
files in working directory.
TBR=caryclark@google.com
Bug: skia:6898
Change-Id: Id4e8dec78a4febfdf2a0a466fceef1024ff4859d
Reviewed-on: https://skia-review.googlesource.com/151546
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
This reverts commit 5bcab74e7a.
Reason for revert: ASAN/MSAN/UBSAN
Original change's description:
> Revert "Revert "Add support for gray + colorspace to SkCodec""
>
> This reverts commit a51d1b45a3.
>
> Bug: skia:
> Change-Id: I9536dc32e9616c700445a996264ef811f131b6e9
> Reviewed-on: https://skia-review.googlesource.com/150913
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=mtklein@google.com,scroggo@google.com,brianosman@google.com
Change-Id: Ief6353cc07fa30f89371967e50a2c9dd9ddc0ba5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/151443
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit ee87c8629c.
Reason for revert: Android tests.
Original change's description:
> Switch SkPaint's color to SkColor4f
>
> Change-Id: Ic2b83a05739720013a7c30ec014df0747b3f99a5
> Reviewed-on: https://skia-review.googlesource.com/149229
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
TBR=djsollen@google.com,mtklein@google.com,brianosman@google.com,reed@google.com
Change-Id: I85efd020598d70cbfb90c4f4af7d33482a3d7280
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/151544
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 434b80f82f.
Reason for revert: Reverting 4f CL.
Original change's description:
> add color4f to docs
>
> Add SkPaint::setColor4f and getColor4f. Another pass will
> be required later once fiddle updates itself.
>
> Also add checks to bookmaker so it doesn't write status
> if generated files are unchanged; and deletes temporary
> files in working directory.
>
> R=brianosman@google.com
>
> Docs-Preview: https://skia.org/?cl=151365
> Bug: skia:6898
> Change-Id: I8059641f19017a86fc4b63ebd9ff784716365967
> Reviewed-on: https://skia-review.googlesource.com/151365
> Commit-Queue: Cary Clark <caryclark@skia.org>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Cary Clark <caryclark@skia.org>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=brianosman@google.com,caryclark@skia.org
Change-Id: Ice33fe50105959f104b3907a07eb3e8c51641ec2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:6898
Reviewed-on: https://skia-review.googlesource.com/151543
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit b84576af0a.
Reason for revert: Need to revert original CL.
Original change's description:
> enable color4f doc examples
>
> fiddle has picked up the SkPaint::(get)(set)Color4f
> include change, so the doc examples are ready to
> check in.
>
> NOTRY=true
> R=brianosman@google.com
>
> Docs-Preview: https://skia.org/?cl=151370
> Bug: skia:6898
> Change-Id: I2c7ad3ce892ea6c8fde524df8e48a3c5713e2ba9
> Reviewed-on: https://skia-review.googlesource.com/151370
> Reviewed-by: Cary Clark <caryclark@skia.org>
> Commit-Queue: Cary Clark <caryclark@skia.org>
> Auto-Submit: Cary Clark <caryclark@skia.org>
TBR=brianosman@google.com,caryclark@skia.org
Change-Id: Iec47490505b532eb496f0eab8de9678fb5b7dcbf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:6898
Reviewed-on: https://skia-review.googlesource.com/151542
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit a51d1b45a3.
Bug: skia:
Change-Id: I9536dc32e9616c700445a996264ef811f131b6e9
Reviewed-on: https://skia-review.googlesource.com/150913
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
When calculating the units per em with FreeType, FreeType tends to leave
the value on the FT_Face object at zero if the font is a bitmap only
font, even if the font does have an em size and linear metrics
available. Centralize the UPEM calculation so that all users agree on
the value.
Change-Id: I906abc2aa42400dc11b73feea8c528e8b5cd8f92
Reviewed-on: https://skia-review.googlesource.com/150919
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
With an incrementally sorted list of opLists we will no longer be able to
assume that the last opList is the active one.
This is pulled out of: https://skia-review.googlesource.com/c/skia/+/150614 (Begin centralizing opList DAG) and also contains some of the non-substantive changes from that CL.
Change-Id: I2d122889e595f7240c9a99e4f0a2ede2d9813112
Reviewed-on: https://skia-review.googlesource.com/151371
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Most of the time when doing fallback there is a simple ping pong between
the requested font and a given fallback font. Use the fallback entry as
a cache of one. This greatly speeds up the example layout.
In the future more work will be done on caching.
Change-Id: I3efe819d6d08d096715cf505cc8d894a282a745b
Reviewed-on: https://skia-review.googlesource.com/151100
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>