History log of /external/skia/src/core/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
48c55fe972572c0331ecf6b3d9e8f1a49108bd7e 13-Jul-2015 Chris Craik <ccraik@google.com> Disable SkColorShader optimization for Android Framework

bug:22390304

Change-Id: Ibf8cefc82948043d8241b27b2e2dabf4dc6829d5
kBitmapProcShader.cpp
6ffafee26a8b5fe61fba0f1ff07d7e96679d5d84 01-Jun-2015 caryclark <caryclark@google.com> Cherry-pick changes to fix rendering artifacts on curves
Bug: 21900179

don't square error term twice
BUG=skia:3877
Review URL: https://codereview.chromium.org/1163843003

another double square
BUG=skia:3877
Review URL: https://codereview.chromium.org/1152623005
kStroke.cpp
c375b0b5c5c03d381111bf7bff12507d5ed24769 20-May-2015 senorblanco <senorblanco@chromium.org> Cherry-pick changes from Skia's M44 branch
BUG: 21108081

Use high precision vertex attributes.
BUG:skia=3545,3771
Review URL: https://codereview.chromium.org/1145273002

Add adb_wait_for_device script
BUG=skia:3718
Review URL: https://codereview.chromium.org/1149163003

SkPDF: with opaque draws, treat SRC mode as SRC_OVER
BUG=chromium:473572
Review URL: https://codereview.chromium.org/1159763004

Better comments in SkXfermodeInterpretation
Review URL: https://codereview.chromium.org/1159493003

Change-Id: I1ecf6e8e44994fb2acfebe33f77d2b43638089e7
kBlitter.cpp
kXfermodeInterpretation.cpp
kXfermodeInterpretation.h
181f49c7acb67ad009f6deceb3b5cc0a45220ab4 18-May-2015 djsollen <djsollen@google.com> Prevent integer wrap around for malloc size when creating a SkRegion

Review URL: https://codereview.chromium.org/1143603003

bug:20883006
Change-Id: I0472c2b93bdf5f3bf291aaabe11a32e78497dcda
kRegionPriv.h
465706820d0d373f76ab4831c286115ee0d86b7a 15-May-2015 robertphillips <robertphillips@google.com> Revert of Font variations. (patchset #26 id:500001 of https://codereview.chromium.org/1027373002/)

Reason for revert:
Appears to be breaking Linux ARM bots:

FAILED:
/usr/local/google/home/mosaic-role/slave/repo_clients/chromium_tot/chromium/src/../../prebuilt/toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-g++
... -o obj/third_party/skia/src/ports/skia_library.SkFontHost_FreeType.o
../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:37:31: fatal error:
freetype/ftmm.h: No such file or directory
#include FT_MULTIPLE_MASTERS_H
^
compilation terminated.

Original issue's description:
> Font variations.
>
> Multiple Master and TrueType fonts support variation axes.
> This implements back-end support for axes on platforms which
> support it.
>
> Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97
>
> Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9

TBR=reed@google.com,mtklein@google.com,djsollen@google.com,halcanary@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1139123008
kAdvancedTypefaceMetrics.h
kFontDescriptor.cpp
kFontDescriptor.h
kFontMgr.cpp
kTypeface.cpp
daa57bfd4204f5a7d304c580bcf5ad99d0121e1f 15-May-2015 reed <reed@google.com> Revert of antialias matrix-image-filter to get smooth diagonals (patchset #6 id:80002 of https://codereview.chromium.org/1134743003/)

Reason for revert:
likely affect layouttests, so need to add a guard

Original issue's description:
> antialias matrix-image-filter to get smooth diagonals
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fa33f5a6b770130acdc55f2ffe19dd545665726a

TBR=senorblanco@google.com,robertphillips@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1128823010
kCanvas.cpp
kDeviceImageFilterProxy.h
kMatrixImageFilter.cpp
kMatrixImageFilter.h
0135a41e095a433414e21e37b277dab7dcbec373 15-May-2015 mtklein <mtklein@chromium.org> Sk4px: Difference and Exclusion

This will cause minor (off-by-one) diffs due to a little lost precision:
colortype_xfermodes
mixed_xfermodes
xfermodes2
xfermodeimagefilter
xfermodes3
xfermodes

Desktop:
Xfermode_Difference_aa 9.77ms -> 7.32ms 0.75x
Xfermode_Exclusion_aa 8.49ms -> 6.21ms 0.73x
Xfermode_Difference 17ms -> 7.54ms 0.44x
Xfermode_Exclusion 13.5ms -> 5.09ms 0.38x

N7:
Xfermode_Difference_aa 32.2ms -> 27.6ms 0.86x
Xfermode_Difference 43.9ms -> 32ms 0.73x
Xfermode_Exclusion_aa 40.5ms -> 26.7ms 0.66x
Xfermode_Exclusion 71.5ms -> 23.9ms 0.33x

This wraps up the xfermodes implemented in Sk4f.

BUG=skia:

Review URL: https://codereview.chromium.org/1141213002
k4px.h
kXfermode.cpp
fa33f5a6b770130acdc55f2ffe19dd545665726a 15-May-2015 reed <reed@google.com> antialias matrix-image-filter to get smooth diagonals

BUG=skia:

Review URL: https://codereview.chromium.org/1134743003
kCanvas.cpp
kDeviceImageFilterProxy.h
kMatrixImageFilter.cpp
kMatrixImageFilter.h
27e517ae533775889c98c65fa2f07b98357ecbc2 15-May-2015 mtklein <mtklein@chromium.org> add Min to SkNi, specialized for u8 and u16 on SSE and NEON

0x8001 / 0x7fff don't seem to work, but we were close: 0x8000 does.

I plan to use this to implement the Difference xfermode,
and it seems generally handy.

BUG=skia:

Review URL: https://codereview.chromium.org/1133933004
kNx.h
3489ee0f4fa34f124f9de090d12bdc2107d52aa9 14-May-2015 bungeman <bungeman@google.com> Font variations.

Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.

Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97

Review URL: https://codereview.chromium.org/1027373002
kAdvancedTypefaceMetrics.h
kFontDescriptor.cpp
kFontDescriptor.h
kFontMgr.cpp
kTypeface.cpp
86a17e7716c8db858e219a46b9db3817bb770bee 14-May-2015 reed <reed@google.com> Revert of Implement support for non-scale/translate CTM in image filters. (patchset #4 id:60001 of https://codereview.chromium.org/1140943004/)

Reason for revert:
matriximagefilter needs to antialias its draw, so we get smooth diagonals...

Original issue's description:
> Implement support for non-scale/translate CTM in image filters.
>
> Clone with tweaks of https://codereview.chromium.org/986623003/
>
> pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/
>
> BUG=skia:3288
>
> Committed: https://skia.googlesource.com/skia/+/35786b176c159d2e7a816e9da9b051ef3129d5cb

TBR=robertphillips@google.com,senorblanco@google.com,senorblanco@chromium.org,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3288

Review URL: https://codereview.chromium.org/1139173002
kCanvas.cpp
ec1f77d097fa86f5d126a1676b97eea7cff3fdbf 14-May-2015 mtklein <mtklein@google.com> Revert of Temporarily revert just Multiply to see if that's the source of NEON diffs. (patchset #2 id:20001 of https://codereview.chromium.org/1129293005/)

Reason for revert:
Undo Xor revert. Getting too confusing now.

Original issue's description:
> Temporarily revert just Multiply to see if that's the source of NEON diffs.
>
> Local testing is confusing and inconclusive. Pulling out the big guns.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3
>
> Committed: https://skia.googlesource.com/skia/+/6095260e55ac5f263df26cdde427531a0e7da8dd

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1138073005
kXfermode.cpp
6095260e55ac5f263df26cdde427531a0e7da8dd 14-May-2015 mtklein <mtklein@chromium.org> Temporarily revert just Multiply to see if that's the source of NEON diffs.

Local testing is confusing and inconclusive. Pulling out the big guns.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3

Review URL: https://codereview.chromium.org/1129293005
kXfermode.cpp
af953bbdfbd4edcd53fc4a5e1cb21bc9ce6f93e5 14-May-2015 mtklein <mtklein@google.com> Revert of Temporarily revert just Multiply to see if that's the source of NEON diffs. (patchset #1 id:1 of https://codereview.chromium.org/1129293005/)

Reason for revert:
Diff's still there. Multiply is not the culprit.

Original issue's description:
> Temporarily revert just Multiply to see if that's the source of NEON diffs.
>
> Local testing is confusing and inconclusive. Pulling out the big guns.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1143553004
kXfermode.cpp
5b9f352ff1e245dd48e200f8f8b683f4569547d3 14-May-2015 mtklein <mtklein@chromium.org> Temporarily revert just Multiply to see if that's the source of NEON diffs.

Local testing is confusing and inconclusive. Pulling out the big guns.

BUG=skia:

Review URL: https://codereview.chromium.org/1129293005
kXfermode.cpp
35786b176c159d2e7a816e9da9b051ef3129d5cb 14-May-2015 reed <reed@google.com> Implement support for non-scale/translate CTM in image filters.

Clone with tweaks of https://codereview.chromium.org/986623003/

pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/

BUG=skia:3288

Review URL: https://codereview.chromium.org/1140943004
kCanvas.cpp
c30806f9f16e6400036fdc25842b73a9d2a41cb3 14-May-2015 mtklein <mtklein@chromium.org> Perform SkPicture analysis lazily.

I realized when writing the comment on https://crrev.com/1135363002/
that I'd really just sketched out the entire thing, so I couldn't help
but actually write up a working CL. How does this do for your benchmark?

BUG=chromium:487075

Review URL: https://codereview.chromium.org/1130123006
kPicture.cpp
2d8d33e9e825f9919875be64a71b746189b385be 13-May-2015 mtklein <mtklein@chromium.org> Sk4px: SrcATop, DstATop, Xor, Multiply

SSE runs 2-3x faster (than 4f), NEON runs 1.2-1.4x faster (than existing NEON).

Small diffs on {aarectmodes, imagefilters_xfermodes, hairmodes, mixed_xfermodes} only on AA edges due to precision drop.

BUG=skia:

Review URL: https://codereview.chromium.org/1132853005
k4px.h
kXfermode.cpp
177cb8498662600e9866e260d52d6a2401ad78a8 13-May-2015 reed <reed@google.com> Revert of Implement support for non-scale/translate CTM in image filters. (patchset #4 id:60001 of https://codereview.chromium.org/1120043002/)

Reason for revert:
don't reference layer after its deleted

Original issue's description:
> Implement support for non-scale/translate CTM in image filters.
>
> Implemented by extracting out the non-scale/translate components
> and applying that post-filter as an SkMatrixImageFilter.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4f12b8bd2cb43daeffa4d1c53120ae94c5ccf486

TBR=robertphillips@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1128133005
kCanvas.cpp
4f12b8bd2cb43daeffa4d1c53120ae94c5ccf486 13-May-2015 reed <reed@google.com> Implement support for non-scale/translate CTM in image filters.

Implemented by extracting out the non-scale/translate components
and applying that post-filter as an SkMatrixImageFilter.

BUG=skia:

Review URL: https://codereview.chromium.org/1120043002
kCanvas.cpp
8a90edc2a58a4f8a4b4da73eb08e943be09538c0 13-May-2015 mtklein <mtklein@chromium.org> Sk4px: alphas() and Load[24]Alphas()

alphas() extracts the 4 alphas from an existing Sk4px as another Sk4px.
LoadNAlphas() constructs an Sk4px from N packed alphas.

In both cases, we end up with 4x repeated alphas aligned with their pixels.

alphas()
A0 R0 G0 B0 A1 R1 G1 B1 A2 R2 G2 B2 A3 R3 G3 B3
->
A0 A0 A0 A0 A1 A1 A1 A1 A2 A2 A2 A2 A3 A3 A3 A3

Load4Alphas()
A0 A1 A2 A3
->
A0 A0 A0 A0 A1 A1 A1 A1 A2 A2 A2 A2 A3 A3 A3 A3

Load2Alphas()
A0 A1
->
A0 A0 A0 A0 A1 A1 A1 A1 0 0 0 0 0 0 0 0

This is a 5-10% speedup for AA on Intel, and wash on ARM.
AA is still mostly dominated by the final lerp.

alphas() isn't used yet, but it's similar enough to Load[24]Alphas()
that it was easier to write all at once.

BUG=skia:

Review URL: https://codereview.chromium.org/1138333003
k4px.h
5ae1312c9faa25531c07e591b4dff6804020f121 13-May-2015 bungeman <bungeman@google.com> Revert of Font variations. (patchset #21 id:400001 of https://codereview.chromium.org/1027373002/)

Reason for revert:
Mac failing to build due to CFNumberType in Chromium Canary.

Original issue's description:
> Font variations.
>
> Multiple Master and TrueType fonts support variation axes.
> This implements back-end support for axes on platforms which
> support it.
>
> Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97

TBR=reed@google.com,mtklein@google.com,djsollen@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1128913008
kAdvancedTypefaceMetrics.h
kFontDescriptor.cpp
kFontDescriptor.h
kFontMgr.cpp
kTypeface.cpp
05773ed30920c0214d1433c07cf6360a05476c97 13-May-2015 bungeman <bungeman@google.com> Font variations.

Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.

Review URL: https://codereview.chromium.org/1027373002
kAdvancedTypefaceMetrics.h
kFontDescriptor.cpp
kFontDescriptor.h
kFontMgr.cpp
kTypeface.cpp
04d24a3f86b6f2382e5c6ffaf161ffc734a4d02a 13-May-2015 mtklein <mtklein@chromium.org> Turn on Sk4px xfermodes when we have NEON too.

For SSE, Sk4px is better than Sk4f is better than SkXfermodes_opts_SSE2 (where implemented).
For NEON, Sk4px is better than SkXfermodes_opts_arm_neon is better than Sk4f (where implemented).

This is a 1.6-1.9x speedup for Plus,Modulate, and Screen for NEON.

BUG=skia:

Review URL: https://codereview.chromium.org/1128053004
kXfermode.cpp
b56158118c4d30bf3002f61f824ea186a32acdfd 13-May-2015 reed <reed@chromium.org> simplify RawIter

BUG=skia:

Review URL: https://codereview.chromium.org/1137783006
kPath.cpp
6cbf18c70bf99f58b2bb1c49cdf8d41be561fee4 13-May-2015 mtklein <mtklein@chromium.org> Plus xfermode using Sk4px.

Xfermode_Plus runs 4-5x faster.

We expect mixed_xfermodes to have a small diff. This is because kFoldCoverageIntoSrcAlpha was incorrectly set to true.

This implementation handily beats the Sk4f impl, the portable impl, and the existing SSE2 impl. Reading the SkXfermodes_opts_SSE2.cpp file, I'm pretty confident that we'll be able to beat all SSE2 impls.

I believe this impl will beat or match the existing NEON impl too, but that may not be true for more complicated xfermodes. They can take advantage of transposing ARGBARGB... to AAAARRRR.... cheaply and I haven't figured out an abstraction for that yet that doesn't screw SSE.

Adds:
- MapDstSrc() to Sk4px
- saturatedAdd() to SkNi (only implemented as far as it's used).
- div255Narrow()

BUG=skia:

Review URL: https://codereview.chromium.org/1138893002
k4px.h
kNx.h
kXfermode.cpp
80ea19ca4bdd68c1493666a5fe7e4ce9d43ded8b 12-May-2015 reed <reed@google.com> Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of https://codereview.chromium.org/1138263002/)

Reason for revert:
android patched, blink has rolled

Original issue's description:
> Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/)
>
> Reason for revert:
> need to wait for Blink roll (and patch android)
>
> Original issue's description:
> > stop calling SkScalarDiv
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a
>
> TBR=
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2629697933b5cc975e45d2a45c48f803fc6cbcec

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1135693003
kGeometry.cpp
kPaint.cpp
kPathMeasure.cpp
kPictureShader.cpp
kRRect.cpp
kScalar.cpp
kStroke.cpp
kStrokerPriv.cpp
2629697933b5cc975e45d2a45c48f803fc6cbcec 12-May-2015 reed <reed@google.com> Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/)

Reason for revert:
need to wait for Blink roll (and patch android)

Original issue's description:
> stop calling SkScalarDiv
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1138263002
kGeometry.cpp
kPaint.cpp
kPathMeasure.cpp
kPictureShader.cpp
kRRect.cpp
kScalar.cpp
kStroke.cpp
kStrokerPriv.cpp
39a9a5069b25aa8b9529118cfd0ece5f412fb56b 12-May-2015 reed <reed@google.com> Make SkAdvancedTypefaceMetrics private.

Review URL: https://codereview.chromium.org/1129283003
kAdvancedTypefaceMetrics.h
kTypeface.cpp
67d71c898249a7af3523b16c6a69895a63bfae0a 12-May-2015 reed <reed@google.com> stop calling SkScalarDiv

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1135053002
kGeometry.cpp
kPaint.cpp
kPathMeasure.cpp
kPictureShader.cpp
kRRect.cpp
kScalar.cpp
kStroke.cpp
kStrokerPriv.cpp
d2ffd36eb62e99abe2920369d1e040954cc2044f 12-May-2015 mtklein <mtklein@chromium.org> Sk4px

Xfermode_SrcOver:
SSE: 2.08ms -> 2.03ms (~2% faster)
NEON: my N5 is noisy, but there appears to be no perf change

BUG=skia:

Review URL: https://codereview.chromium.org/1132273004
k4px.h
kBlitRow_D32.cpp
kNx.h
c6325cde797baeedebc515bc8610f96eacbd36c9 11-May-2015 caryclark <caryclark@google.com> remove near one check for arcs

Small arcs are pinned by SkSinCos and do not need to be additionally
pinned by SkConic::BuildUnitArc.

R=reed@google.com, djsollen@google.com

Review URL: https://codereview.chromium.org/1133113003
kGeometry.cpp
88f12dbe926df806cfb5b0641f613a2e256a713b 11-May-2015 gen.kim <gen.kim@samsung.com> SkPictureShader: floor scaledSize not to exceed maxTextureSize

scaledSize becomes larger than maxTextureSize by zoom level
because it is rounded.

BUG=chromium:485916

Review URL: https://codereview.chromium.org/1129413002
kPictureShader.cpp
f36cca8a61e0aa0730dea5e35ea781ac8ae59014 08-May-2015 fmalita <fmalita@chromium.org> Remove unused SK_SUPPORT_LEGACY_ROUND_MIPMAP_LEVEL_CHOICE guard

R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/1135823003
kMipMap.cpp
b7ed856fadae52401d3bbcac22cfc3391780ace8 08-May-2015 reed <reed@chromium.org> Revert of Sketch splitting SkPicture into an interface and SkBigPicture. (patchset #22 id:420001 of https://codereview.chromium.org/1112523006/)

Reason for revert:
speculative revert to fix failures in DEPS roll

Original issue's description:
> Sketch splitting SkPicture into an interface and SkBigPicture.
>
> Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
> These cover about 89% of draw calls from Blink SKPs,
> and about 25% of draw calls from our GMs.
>
> SkPicture handles:
> - serialization and deserialization
> - unique IDs
>
> Everything else is left to the subclasses:
> - playback(), cullRect()
> - hasBitmap(), hasText(), suitableForGPU(), etc.
> - LayerInfo / AccelData if applicable.
>
> The time to record a 1-op picture improves a good chunk
> (2 mallocs to 1), and the time to record a 0-op picture
> greatly improves (2 mallocs to none):
>
> picture_overhead_draw: 450ns -> 350ns
> picture_overhead_nodraw: 300ns -> 90ns
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b

TBR=reed@google.com,robertphillips@google.com,mtklein@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1130333002
kBigPicture.cpp
kBigPicture.h
kLayerInfo.cpp
kLayerInfo.h
kMiniRecorder.cpp
kMiniRecorder.h
kPicture.cpp
kPictureCommon.h
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
c92c129ff85b05a714bd1bf921c02d5e14651f8b 07-May-2015 mtklein <mtklein@chromium.org> Sketch splitting SkPicture into an interface and SkBigPicture.

Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
- serialization and deserialization
- unique IDs

Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

Review URL: https://codereview.chromium.org/1112523006
kBigPicture.cpp
kBigPicture.h
kLayerInfo.cpp
kLayerInfo.h
kMiniRecorder.cpp
kMiniRecorder.h
kPicture.cpp
kPictureCommon.h
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
c1e1faae076a26e0706146e490a60d2894835cd5 06-May-2015 reed <reed@google.com> use floor for mip-level choice

this chrome change must land first: https://codereview.chromium.org/1131663002/

BUG=skia:

Review URL: https://codereview.chromium.org/1131613002
kMipMap.cpp
a85d4d0814818e4ddabb9237da209d61d6cd5854 06-May-2015 reed <reed@google.com> Make drawImage a virtual on SkDevice

This reverts commit 06dad4b92f1fcb593bc686f9537d3e0d866b2241.

BUG=485243

Review URL: https://codereview.chromium.org/1129843003
kCanvas.cpp
kDevice.cpp
kPaintPriv.cpp
kPaintPriv.h
kPictureRecord.cpp
kPictureRecord.h
06dad4b92f1fcb593bc686f9537d3e0d866b2241 06-May-2015 reed <reed@google.com> Revert of Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1126273002/)

Reason for revert:
still breaking webglconformance

Original issue's description:
> Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)
>
> Reason for revert:
> retry now that some fixes (onDrawImage overrides) have landed in chrome/blink
>
> Original issue's description:
> > Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
> >
> > Reason for revert:
> > speculative to see if it unblocks DEPS roll
> >
> > Original issue's description:
> > > Make drawImage a virtual on SkDevice
> > >
> > > Now with patch for SkDeferredCanvas
> > >
> > > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
> >
> > TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/620ba3afe09d4173c87537040fe50c1c1895fb1a

TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1127993004
kCanvas.cpp
kDevice.cpp
kPaintPriv.cpp
kPaintPriv.h
kPictureRecord.cpp
kPictureRecord.h
620ba3afe09d4173c87537040fe50c1c1895fb1a 06-May-2015 reed <reed@google.com> Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)

Reason for revert:
retry now that some fixes (onDrawImage overrides) have landed in chrome/blink

Original issue's description:
> Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
>
> Reason for revert:
> speculative to see if it unblocks DEPS roll
>
> Original issue's description:
> > Make drawImage a virtual on SkDevice
> >
> > Now with patch for SkDeferredCanvas
> >
> > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b

TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1126273002
kCanvas.cpp
kDevice.cpp
kPaintPriv.cpp
kPaintPriv.h
kPictureRecord.cpp
kPictureRecord.h
0d992db1cf5003340409ed02993266004cc0a57c 06-May-2015 mtklein <mtklein@chromium.org> Make SkFunction copyable so it can go in containers.

This totally overhauls the implementation to use ordinary inheritance-based type erasure. I give up for now getting my manual vtable shenanigans to work with MSVC. Still those same "expected ; before ), also expected ) before ;" errors.

I added support for uninitialized SkFunctions and operator=(), because it was fairly straightforward with this implementation.

The main downside here is that I've removed the inline implementation. All SkFunctions involve a heap allocation, even when just wrapping function pointers.

BUG=skia:

Review URL: https://codereview.chromium.org/1056673002
kFunction.h
3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b 06-May-2015 reed <reed@chromium.org> Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)

Reason for revert:
speculative to see if it unblocks DEPS roll

Original issue's description:
> Make drawImage a virtual on SkDevice
>
> Now with patch for SkDeferredCanvas
>
> This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8

TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1124003002
kCanvas.cpp
kDevice.cpp
kPaintPriv.cpp
kPaintPriv.h
kPictureRecord.cpp
kPictureRecord.h
14fe8fd3e53b5e988aac189a8bc3ed28904d85c8 05-May-2015 reed <reed@google.com> Make drawImage a virtual on SkDevice

Now with patch for SkDeferredCanvas

This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57.

BUG=skia:

Review URL: https://codereview.chromium.org/1122643005
kCanvas.cpp
kDevice.cpp
kPaintPriv.cpp
kPaintPriv.h
kPictureRecord.cpp
kPictureRecord.h
d1290843c364dda7691817f3bb52aadee8391acf 05-May-2015 reed <reed@google.com> remove dead code behind BOOL_ONGETINFO

need this to land in chrome first https://codereview.chromium.org/1125573002

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1123473004
kImageGenerator.cpp
7d3bdc3aa53ef953318db2611c51e0eef4ee4214 05-May-2015 reed <reed@chromium.org> remove dead SK_SUPPORT_LEGACY_CUBIC_CHOPPER code

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1116263005
kEdgeClipper.cpp
119468b71f8f4f45657ab30ead331be665de5a57 05-May-2015 reed <reed@google.com> Revert of Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/11188… (patchset #2 id:20001 of https://codereview.chromium.org/1122813002/)

Reason for revert:
did not update DeferredCanvas

Original issue's description:
> Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)"
>
> Fixed serialization from prev CL
>
> This reverts commit 973d1f1f60f2710a268a3165aa4f3460502d4be5.
>
> BUG=skia:3803
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/5392785080001fe737fac9e5801fc2127a78d4fb

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3803

Review URL: https://codereview.chromium.org/1123743006
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
64fb51d36df5d4e857c3425fe4cb1b1ecbd169fb 04-May-2015 bungeman <bungeman@google.com> Fix typeface ids on Mac.

The current typeface ids with CoreText rely on ATS (which causes
memory use issues) or font data (which is unreliable, and will not
work with axes and synthetics). This changes the code so that stream
fonts never end up in the cache and always get a unique id, and
system fonts will be given an id as they are used.

Review URL: https://codereview.chromium.org/1125763002
kTypefaceCache.cpp
kTypefaceCache.h
5392785080001fe737fac9e5801fc2127a78d4fb 04-May-2015 reed <reed@google.com> Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)"

Fixed serialization from prev CL

This reverts commit 973d1f1f60f2710a268a3165aa4f3460502d4be5.

BUG=skia:3803
TBR=

Review URL: https://codereview.chromium.org/1122813002
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
973d1f1f60f2710a268a3165aa4f3460502d4be5 04-May-2015 reed <reed@google.com> Revert of make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)

Reason for revert:
need to make serialization work for pictures, now that images are "real"

Original issue's description:
> make drawImage a virtual on SkDevice
>
> default impl will turn the Image into a (raster) bitmap and call drawBitmap.
>
> BUG=skia:3803
>
> Committed: https://skia.googlesource.com/skia/+/f603fb3d0e5fa57c3f228d66945bef198b001135

TBR=bsalomon@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3803

Review URL: https://codereview.chromium.org/1122803002
kCanvas.cpp
kDevice.cpp
f603fb3d0e5fa57c3f228d66945bef198b001135 04-May-2015 reed <reed@google.com> make drawImage a virtual on SkDevice

default impl will turn the Image into a (raster) bitmap and call drawBitmap.

BUG=skia:3803

Review URL: https://codereview.chromium.org/1118823004
kCanvas.cpp
kDevice.cpp
b9ed8845783ec3c59b2b185d26801f251adbf68d 04-May-2015 gen.kim <gen.kim@samsung.com> SkPictureShader: scale down if width or height is larger than maxTextureSize

Grdient renders black because of failure onCreateTexture
if one of width or height is larger than maxTextureSize
with --force-gpu-rasterization.

BUG=chromium:473166

Review URL: https://codereview.chromium.org/1101513004
kPictureShader.cpp
kPictureShader.h
34fdcae28e14060672212017a9783415872da3d1 02-May-2015 reed <reed@chromium.org> remove unneeded SK_SUPPORT_LEGACY_IMAGEFILTER_TO_COLORFILTER flag

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1120033003
kCanvas.cpp
a499f905e9340e4935447f2562fd92e8853382b1 01-May-2015 reed <reed@google.com> clean up pre-storage in canvas

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1117213003
kCanvas.cpp
0b9d4118ba4f3f1190c063492894e324c63e8fd8 01-May-2015 halcanary <halcanary@google.com> SkTime: return timezone information; format in ISO-8601

Motivation: PDF/A metadata will need the creation date embedded in it.

Also, GetDateTime returns local time in Win32. This now behaves the
same as on Unix systems.

BUG=skia:3110

Review URL: https://codereview.chromium.org/1109593002
kTime.cpp
d309e7aa0efa2d5dd7e7b1af97026fcd3a047e98 30-Apr-2015 bsalomon <bsalomon@google.com> This replaces the texture creation/caching functions on GrContext with a GrTextureProvider interface. The goal is to pass this narrowly focused object in places that currently take a GrContext but don't need and shouldn't use its other methods. It also has an extended private interface for interacting with non-texture resource types.

Review URL: https://codereview.chromium.org/1107973004
kImageFilter.cpp
1c2c441fede0ae9573afc098017011e3439624a9 30-Apr-2015 reed <reed@google.com> add heuristic to pour small pictures into recordings, rather than ref'ing

BUG=skia:

Review URL: https://codereview.chromium.org/1118693003
kCanvas.cpp
069073547894944d439d31ea70bd06ffc23948b3 30-Apr-2015 mtklein <mtklein@chromium.org> Add missing include to SkPictureContentInfo.

BUG=skia:

Review URL: https://codereview.chromium.org/1113023003
kPictureContentInfo.h
dc3088570f945ed0ede84f0af0016eedc267dda3 30-Apr-2015 reed <reed@google.com> use pathops utils to improve precision of cubic chopping in scan converter

BUG=skia:

Review URL: https://codereview.chromium.org/1113963002
kEdgeClipper.cpp
kGeometry.cpp
kGeometry.h
30297c53bd233a6d9af7b422ad8a17912f1ef5e6 30-Apr-2015 dongseong.hwang <dongseong.hwang@intel.com> Fix build warning: 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to true [-Wtautological-undefined-compare]

Review URL: https://codereview.chromium.org/1109933003
kPath.cpp
181d7ba4cdb55e3fd53811200d5f7beb362b2437 30-Apr-2015 dongseong.hwang <dongseong.hwang@intel.com> Fix build warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to true [-Wtautological-undefined-compare]

Review URL: https://codereview.chromium.org/1110353003
kImageFilter.cpp
kPaint.cpp
kPath.cpp
kStroke.cpp
dbc3cefb0b624808ddb86d444e6103f216e12fa5 29-Apr-2015 reed <reed@google.com> Use colorfilter instead of imagefilter when possible

needs https://codereview.chromium.org/1115713003 to land first in chrome

BUG=skia:

Review URL: https://codereview.chromium.org/986353002
kCanvas.cpp
61f501f8c675da8d5915e5e7fd32dfdb113f1cfb 29-Apr-2015 reed <reed@google.com> onCreateDevice -> NULL now means the caller should create its own (bitmap) device

BUG=skia:

Review URL: https://codereview.chromium.org/1116453002
kCanvas.cpp
kDeviceImageFilterProxy.h
aec251012542e971100e218bf463adbfb5d21d20 29-Apr-2015 caryclark <caryclark@google.com> minor fixes to cubics code and overall alignment of how bounds and tops are computed for all curve types

All but 17 extended tests work.

A helper function is privately added to SkPath.h to permit a test to modify a given point in a path.

BUG=skia:3588

Review URL: https://codereview.chromium.org/1107353004
kPath.cpp
2420e10d5a86da1964a05a749ab9bb625ae9f13e 29-Apr-2015 mtklein <mtklein@chromium.org> Straighten out SkPicture::AccelData APIs.

Must have been we needed them to be weird (mutable, const setter) before.
It doesn't look like that's necessary now... we can just pass it to the
constructor.

BUG=skia:

Review URL: https://codereview.chromium.org/1112833003
kPicture.cpp
kPictureRecorder.cpp
5b6db07fb5d3b67476db6df126eb8290d49e564d 29-Apr-2015 reed <reed@chromium.org> SkRWBuffer for thread-safe 'stream' sharing

WIP
- Can accumulate (write) data in one thread, and share snapshots of it in other threads
... e.g. network accumulates image data, and periodically we want to decode/draw it
- If this sort of thing sticks, should we promote SkData to have the same generality as
SkRBuffer?

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1106113002
kRWBuffer.cpp
kRWBuffer.h
00ed9a909c06a139af54c1eded2e67c8354c6098 28-Apr-2015 dongseong.hwang <dongseong.hwang@intel.com> Fix SkTDynamicHash.h:183:29: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]

Review URL: https://codereview.chromium.org/1115433004
kTDynamicHash.h
a62d32d1e3112c7e5a26c27e5e967d124ef8dd81 28-Apr-2015 fmalita <fmalita@chromium.org> Decrement SkCanvas::fDeferredSaveCount in doSave()

We're currently decrementing early in checkForDeferredSave(), but that
means we break the getSaveCount() invariant during willSave() dispatch.

Instead, we can defer to doSave(), until after willSave() is called.
This allows overriders to call getSaveCount().

R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/1113603002
kCanvas.cpp
95cc012ccaea20f372893ae277ea0a8a6339d094 28-Apr-2015 mtklein <mtklein@chromium.org> De-proc Color32

Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

Committed: https://skia.googlesource.com/skia/+/d65dc0cedd5b50dd407b6ff8fdc39123f11511cc

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Mips-Debug-Android-Trybot

Review URL: https://codereview.chromium.org/1104183004
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
641c3ff7c680ef7935d47d2e68f8301acc79e3de 27-Apr-2015 mtklein <mtklein@google.com> Revert of De-proc Color32 (patchset #5 id:80001 of https://codereview.chromium.org/1104183004/)

Reason for revert:
duh

Original issue's description:
> De-proc Color32
>
> Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
> which is no longer needed.
>
> Seems handy to have SkTypes include the relevant intrinsics when
> we know we've got them, but I'm not married to it.
>
> Locally this looks like a pointlessly small perf win, but I'm mostly
> keen to get all the code together.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b
>
> Committed: https://skia.googlesource.com/skia/+/d65dc0cedd5b50dd407b6ff8fdc39123f11511cc

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1102363006
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
d65dc0cedd5b50dd407b6ff8fdc39123f11511cc 27-Apr-2015 mtklein <mtklein@chromium.org> De-proc Color32

Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

Review URL: https://codereview.chromium.org/1104183004
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
d7c014ff03d44d3ed7a6a2ddca59621a7e98f739 27-Apr-2015 mtklein <mtklein@chromium.org> Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM

This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot

Review URL: https://codereview.chromium.org/1109913002
kNx.h
498856ebc6f22d7018071bd6696756d7cd077ab8 27-Apr-2015 mtklein <mtklein@google.com> Revert of De-proc Color32 (patchset #4 id:60001 of https://codereview.chromium.org/1104183004/)

Reason for revert:
MIPS

Original issue's description:
> De-proc Color32
>
> Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
> which is no longer needed.
>
> Seems handy to have SkTypes include the relevant intrinsics when
> we know we've got them, but I'm not married to it.
>
> Locally this looks like a pointlessly small perf win, but I'm mostly
> keen to get all the code together.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1108163002
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
376e9bc206b69d9190f38dfebb132a8769bbd72b 27-Apr-2015 mtklein <mtklein@chromium.org> De-proc Color32

Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Review URL: https://codereview.chromium.org/1104183004
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
9a22f489e8722dd83c65f33fb886019d9f60e479 27-Apr-2015 mtklein <mtklein@google.com> Revert of Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM (patchset #2 id:20001 of https://codereview.chromium.org/1109913002/)

Reason for revert:
arm64 typos

Original issue's description:
> Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM
>
> This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1105233003
kNx.h
9de16283fdc8cc0d31a84f503578d0ecea4e8297 27-Apr-2015 mtklein <mtklein@chromium.org> Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM

This is a logical no-op. Everything was using the equivalent of rsqrt1() before, and is now after.

BUG=skia:

Review URL: https://codereview.chromium.org/1109913002
kNx.h
1113da72eced20480491bb87ade0ffcff4eb8ea7 27-Apr-2015 mtklein <mtklein@chromium.org> Mike's radial gradient CL with better float -> int.

patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)

This looks quite launchable. radial_gradient3, min of 100 samples:
N5: 985µs -> 946µs
MBP: 395µs -> 279µs

On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table?

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot,Build-Ubuntu-GCC-Arm7-Release-Android_NoNeon-Trybot

Committed: https://skia.googlesource.com/skia/+/abf6c5cf95e921fae59efb487480e5b5081cf0ec

Review URL: https://codereview.chromium.org/1109643002
kNx.h
8d3e9dff3f3db3fa77c383e4cd6c47b9898a8fcd 27-Apr-2015 mtklein <mtklein@google.com> Revert of Mike's radial gradient CL with better float -> int. (patchset #7 id:120001 of https://codereview.chromium.org/1109643002/)

Reason for revert:
compile failures.

Original issue's description:
> Mike's radial gradient CL with better float -> int.
>
> patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)
>
> This looks quite launchable. radial_gradient3, min of 100 samples:
> N5: 985µs -> 946µs
> MBP: 395µs -> 279µs
>
> On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table?
>
> BUG=skia:
>
> CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/abf6c5cf95e921fae59efb487480e5b5081cf0ec

TBR=reed@google.com,robertphillips@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1109883003
kNx.h
abf6c5cf95e921fae59efb487480e5b5081cf0ec 27-Apr-2015 mtklein <mtklein@chromium.org> Mike's radial gradient CL with better float -> int.

patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)

This looks quite launchable. radial_gradient3, min of 100 samples:
N5: 985µs -> 946µs
MBP: 395µs -> 279µs

On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time. Is that something we could do in float math rather than with a lookup table?

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot

Review URL: https://codereview.chromium.org/1109643002
kNx.h
00c2af8b731085a7fe456e689b70f019a34ef7dd 27-Apr-2015 mtklein <mtklein@chromium.org> Reduce ref counting in SkPictureRecorder.

This may be a small help to slimming paint:

picture_overhead_draw 1.25us -> 1.22us 0.98x
picture_overhead_nodraw 318ns -> 276ns 0.87x

It certainly cannot hurt performance.

BUG=chromium:470553

TBR=reed@google.com
No public API changes.

Review URL: https://codereview.chromium.org/1098183003
kPicture.cpp
kPictureRecorder.cpp
de8667b81f2fed2fbecba68e751756a48df5e0dd 27-Apr-2015 jbroman <jbroman@chromium.org> Reduce sizeof(SkPicture::Analysis) from 24 bytes to 2 bytes.

This saves "up to" 22 bytes per SkPicture.

Due to alignment, this reduces sizeof(SkPicture):
- from 88 to 72 bytes on Linux x64
- from 68 to 48 bytes on Android
(with Chrome's build settings)

It also somewhat simplifies the GPU veto logic.

BUG=skia:

[mtklein] No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1060863004
kPicture.cpp
567ff2f6143ecb993dbedede402a43feb71c420a 27-Apr-2015 tfarina <tfarina@chromium.org> Cleanup: Remove unnecessary double-semicolons.

The entries were found by the following command line:

$ find . -regex ".*\.[cChH]\(pp\)?" | xargs git grep -e ';;' --and --not
-e 'for *(.*;;'

Which is a combination of http://stackoverflow.com/a/3858879 and
http://gitster.livejournal.com/27674.html

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1088763005
kBitmap.cpp
kTypeface.cpp
91df6c273a310479af7c1c97e38cb0752d401cc6 24-Apr-2015 robertphillips <robertphillips@google.com> Fix some lingering typos

Review URL: https://codereview.chromium.org/1101293003
kReadBuffer.h
31d36b087168486228093f0322898953072f36f2 22-Apr-2015 senorblanco <senorblanco@chromium.org> Remove MSAA check from Ganesh veto (dashed paths are no longer slow).

R=egdaniel@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1098753004
kPicture.cpp
98b8485a4cc911420e20af2670d21a5478a06264 22-Apr-2015 mtklein <mtklein@chromium.org> O(1) SkPictureUtils::ApproxBytesUsed()

Chrome wants to call this more often, and it's quite slow today.

Seems like this could be clearer if SkPictureUtils::ApproxBytesUsed() were SkPicture::approxBytesUsed().

BUG=chromium:471873

Review URL: https://codereview.chromium.org/1090943004
kPicture.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
kVarAlloc.cpp
kVarAlloc.h
a4a0aeb74808a0860f3e94588d0ceb0da9fed386 21-Apr-2015 mtklein <mtklein@google.com> Revert of Convert Color32 code to perfect blend. (patchset #6 id:100001 of https://codereview.chromium.org/1098913002/)

Reason for revert:
Xfermode_SrcOver not looking encouraging. Up to 50% regressions.

https://perf.skia.org/#3242

Original issue's description:
> Convert Color32 code to perfect blend.
>
> Before we commit to blend_256_round_alt, let's make sure blend_perfect is
> really slower in practice (i.e. regresses on perf.skia.org).
>
> blend_perfect is really the most desirable algorithm if we can afford it. Not
> only is it correct, but it's easy to think about and break into correct pieces:
> for instance, its div255() doesn't require any coordination with the multiply.
>
> This looks like a 30% hit according to microbenches. That said, microbenches
> said my previous change would be a 20-25% perf improvement, but it didn't end
> up showing a significant effect at a high level.
>
> As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt
> (exactly what we'd expect), and one off-by-3 in a GM that looks like it has a
> bunch of overdraw.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/61221e7f87a99765b0e034020e06bb018e2a08c2

TBR=reed@google.com,fmalita@chromium.org,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1083923006
kBlitRow_D32.cpp
33d73c39dd3cca7594b3ad4304143872d5f7f570 21-Apr-2015 mtklein <mtklein@chromium.org> SkTHash: remove()

BUG=skia:

Review URL: https://codereview.chromium.org/1057043003
kTHash.h
61221e7f87a99765b0e034020e06bb018e2a08c2 20-Apr-2015 mtklein <mtklein@chromium.org> Convert Color32 code to perfect blend.

Before we commit to blend_256_round_alt, let's make sure blend_perfect is
really slower in practice (i.e. regresses on perf.skia.org).

blend_perfect is really the most desirable algorithm if we can afford it. Not
only is it correct, but it's easy to think about and break into correct pieces:
for instance, its div255() doesn't require any coordination with the multiply.

This looks like a 30% hit according to microbenches. That said, microbenches
said my previous change would be a 20-25% perf improvement, but it didn't end
up showing a significant effect at a high level.

As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt
(exactly what we'd expect), and one off-by-3 in a GM that looks like it has a
bunch of overdraw.

BUG=skia:

Review URL: https://codereview.chromium.org/1098913002
kBlitRow_D32.cpp
1049f1246e7be4ccb68001361efceb8933e6f81c 20-Apr-2015 caryclark <caryclark@google.com> Now, path ops natively intersect conics, quads, and cubics in any combination. There are still a class of cubic tests that fail and a handful of undiagnosed failures from skps and fuzz tests, but things are much better overall.

Extended tests (150M+) run to completion in release in about 6 minutes; the standard test suite exceeds 100K and finishes in a few seconds on desktops.

TBR=reed
BUG=skia:3588

Review URL: https://codereview.chromium.org/1037953004
kPath.cpp
5c476fb2776639bdbf0e974dd38d1c5d4c4ff1aa 20-Apr-2015 reed <reed@google.com> apply xfermode after imagefilter when we create a tmp layer

BUG=skia:3741

Review URL: https://codereview.chromium.org/1091173003
kCanvas.cpp
a8ec4805db3a3cfd34926b89d6963700fb0ff0c1 20-Apr-2015 reed <reed@google.com> remove dead code from SK_SUPPORT_LEGACY_BLITANTIH2V2

no image changes expected in skia or chrome/blink

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1050953003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kScan_Hairline.cpp
54b666b144e1281c0edf499e5ec1c59edaef6572 17-Apr-2015 enne <enne@chromium.org> Trace contention for lockPixels mutex

Review URL: https://codereview.chromium.org/1090103002
kPixelRef.cpp
afe2ffb8ba5e7362a2ee6f4e1540c9ab22df2c1e 17-Apr-2015 mtklein <mtklein@chromium.org> Rework SSE and NEON Color32 algorithms to be more correct and faster.

This algorithm changes the blend math, guarded by SK_LEGACY_COLOR32_MATH. The new math is more correct: it's never off by more than 1, and correct in all the interesting 0x00 and 0xFF edge cases, where the old math was never off by more than 2, and not always correct on the edges.

If you look at tests/BlendTest.cpp, the old code was using the `blend_256_plus1_trunc` algorithm, while the new code uses `blend_256_round_alt`. Neither uses `blend_perfect`, which is about ~35% slower than `blend_256_round_alt`.

This will require an unfathomable number of rebaselines, first to Skia, then to Blink when I remove the guard.

I plan to follow up with some integer SIMD abstractions that can unify these two implementations into a single algorithm. This was originally what I was working on here, but the correctness gains seem to be quite compelling. The only places these two algorithms really differ greatly now is the kernel function, and even there they can really both be expressed abstractly as:
- multiply 8-bits and 8-bits producing 16-bits
- add 16-bits to 16-bits, returning the top 8 bits.
All the constants are the same, except SSE is a little faster to keep 8 16-bit inverse alphas, NEON's a little faster to keep 8 8-bit inverse alphas. I may need to take this small speed win back to unify the two.

We should expect a ~25% speedup on Intel (mostly from unrolling to 8 pixels) and a ~20% speedup on ARM (mostly from using vaddhn to add `color`, round, and narrow back down to 8-bit all into one instruction.

(I am probably missing several more related bugs here.)
BUG=skia:3738,skia:420,chromium:111470

Review URL: https://codereview.chromium.org/1092433002
kBlitRow_D32.cpp
9d911d5a9323bda1e4a77c46a0c28708dcc2ad38 17-Apr-2015 bungeman <bungeman@google.com> Remove filename from SkFontDescriptor.

No one actually uses it, so remove it. Keep the string id for backward
compatibility.

TBR=reed@google.com
This doesn't change any public API.

Review URL: https://codereview.chromium.org/1057413005
kFontDescriptor.cpp
kFontDescriptor.h
kPaint.cpp
6ef68ab2cd0597a6f1141b686f82f64ac1e89ccf 16-Apr-2015 mtklein <mtklein@chromium.org> Don't serialize anything for SkEmptyShader.

BUG=skia:3735

Review URL: https://codereview.chromium.org/1097433002
kEmptyShader.h
0b71278679f1ce2bdbabe117285bc1b3166d372a 16-Apr-2015 reed <reed@chromium.org> remove older version of cubic->coeff

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084623004
kGeometry.cpp
kGeometry.h
6983f66d8b3a489133b751e2cef03e72a03bfeae 16-Apr-2015 reed <reed@chromium.org> Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of https://codereview.chromium.org/1078413003/)"

ah ha! Check for the define *after* we pull in SkUserConfig.h (indirectly)

This reverts commit 639a82855b94b93c4fa45560e67df8ec4a8bbb3a.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084283003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kGeometry.cpp
kGeometry.h
kScan_Hairline.cpp
a12225bd32d5172d0d07a7b6c75652f758dbb001 16-Apr-2015 reed <reed@chromium.org> Revert of make blitAntiH2 virtual, to prep for larger change (patchset #1 id:1 of https://codereview.chromium.org/1048323005/)

Reason for revert:
end of test

Original issue's description:
> make blitAntiH2 virtual, to prep for larger change
>
> testing...
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/33afdaa5213cf118b3ca290bb343253c8593756d

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1086293002
kBlitter.h
33afdaa5213cf118b3ca290bb343253c8593756d 16-Apr-2015 reed <reed@chromium.org> make blitAntiH2 virtual, to prep for larger change

testing...

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1048323005
kBlitter.h
639a82855b94b93c4fa45560e67df8ec4a8bbb3a 15-Apr-2015 reed <reed@google.com> Revert of Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of https://codereview.chromium.org/1078413003/)

Reason for revert:
Crazy failings in chrome tests
http://build.chromium.org/p/client.skia/builders/Linux%20Tests/builds/1862

Original issue's description:
> Speeup hairline curves (quads and cubics)
>
> /skia/trunk> cat ../old.txt
> maxrss loops min median mean max stddev samples config bench
> 9M 1 4.28ms 4.32ms 4.36ms 4.67ms 3% ▄▁▁▃▂▂▁▁▂█ 8888 path_hairline_small_AA_cubic
> 9M 1 743µs 767µs 770µs 825µs 4% ▃▃▇▃▁▁▅▁█▁ 8888 path_hairline_small_AA_conic
> 9M 1 533µs 606µs 598µs 680µs 9% ▁▂▂█▆▇▇▄▂▂ 8888 path_hairline_small_AA_quad
> 9M 1 451µs 452µs 456µs 495µs 3% ▁▁▁▁█▁▁▁▁▁ 8888 path_hairline_small_AA_line
>
> /skia/trunk> cat ../new.txt
> maxrss loops min median mean max stddev samples config bench
> 9M 1 827µs 827µs 831µs 869µs 2% ▁▁▁▁▁▁▁█▁▁ 8888 path_hairline_small_AA_cubic
> 9M 1 515µs 517µs 517µs 518µs 0% ▇█▆▅▃▃▁▁▁▅ 8888 path_hairline_small_AA_conic
> 9M 1 310µs 311µs 315µs 332µs 2% ▂▁█▆▁▁▁▁▁▁ 8888 path_hairline_small_AA_quad
> 9M 1 254µs 254µs 258µs 276µs 3% ▁▁▁▁▁▁▁█▇▂ 8888 path_hairline_small_AA_line
>
> Edited revert of https://codereview.chromium.org/1085013003
>
> TBR=
>
> Expectations:
> - no effect on chrome, as it is guarded
> - lots of tiny rebaselines for skia

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1092483003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kGeometry.cpp
kGeometry.h
kScan_Hairline.cpp
a0246165eab9018d07afc09ff826ea4c40898ebc 15-Apr-2015 reed <reed@google.com> Speeup hairline curves (quads and cubics)

/skia/trunk> cat ../old.txt
maxrss loops min median mean max stddev samples config bench
9M 1 4.28ms 4.32ms 4.36ms 4.67ms 3% ▄▁▁▃▂▂▁▁▂█ 8888 path_hairline_small_AA_cubic
9M 1 743µs 767µs 770µs 825µs 4% ▃▃▇▃▁▁▅▁█▁ 8888 path_hairline_small_AA_conic
9M 1 533µs 606µs 598µs 680µs 9% ▁▂▂█▆▇▇▄▂▂ 8888 path_hairline_small_AA_quad
9M 1 451µs 452µs 456µs 495µs 3% ▁▁▁▁█▁▁▁▁▁ 8888 path_hairline_small_AA_line

/skia/trunk> cat ../new.txt
maxrss loops min median mean max stddev samples config bench
9M 1 827µs 827µs 831µs 869µs 2% ▁▁▁▁▁▁▁█▁▁ 8888 path_hairline_small_AA_cubic
9M 1 515µs 517µs 517µs 518µs 0% ▇█▆▅▃▃▁▁▁▅ 8888 path_hairline_small_AA_conic
9M 1 310µs 311µs 315µs 332µs 2% ▂▁█▆▁▁▁▁▁▁ 8888 path_hairline_small_AA_quad
9M 1 254µs 254µs 258µs 276µs 3% ▁▁▁▁▁▁▁█▇▂ 8888 path_hairline_small_AA_line

Edited revert of https://codereview.chromium.org/1085013003

TBR=

Review URL: https://codereview.chromium.org/1078413003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kGeometry.cpp
kGeometry.h
kScan_Hairline.cpp
00b7e5eb973a1b1e4d1affa74fc0341e8c41e3da 15-Apr-2015 halcanary <halcanary@google.com> SkPDF/Device/ImageFilter: Fix ImageFilter fallback code

Broken in https://chromium.googlesource.com/skia/+/76033be

I have confirmed that this fixes 470083.

BUG=470083

Review URL: https://codereview.chromium.org/1080923004
kDeviceImageFilterProxy.h
793a6ddd447f9f7c2a388f74252538e36731f199 15-Apr-2015 reed <reed@google.com> add blitter api for aa-hairlines

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1088143002
kBlitter.h
kScan_Antihair.cpp
f91e676f941c7e9ec91ac298eaa32e4bf8f52762 15-Apr-2015 jcgregorio <jcgregorio@google.com> Revert of add new blit2 methods in support of antialiased hairlines guard flag SK_SUPPORT_LEGACY_BLITANTIH2V2 (patchset #2 id:20001 of https://codereview.chromium.org/1060153003/)

Reason for revert:
DEPS roll is failing, one such example:

http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_rel/builds/73847/steps/ash_unittests%20%28with%20patch%29/logs/stdio

More here:

https://codereview.chromium.org/1091483003

This CL was the only CL in the roll when things started to fail.

Original issue's description:
> add new blit2 methods in support of antialiased hairlines
>
> before:
> 9M 1 528µs 530µs 539µs 607µs 5% ▁▁▁▁▁▁▁▁█▂ 8888 path_hairline_small_AA_quad
>
> after:
> 9M 1 355µs 356µs 358µs 375µs 2% ▂▁▁▁▁▁▁▁▁█ 8888 path_hairline_small_AA_quad
>
> BUG=skia:
>
> does require new baselines (bug chrome is guarded)
>
> Committed: https://skia.googlesource.com/skia/+/dd83031b98db4c6d3d0de2353bf115152a7d1464

TBR=caryclark@google.com,reed@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1085013003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kScan_Antihair.cpp
dd83031b98db4c6d3d0de2353bf115152a7d1464 15-Apr-2015 reed <reed@google.com> add new blit2 methods in support of antialiased hairlines

before:
9M 1 528µs 530µs 539µs 607µs 5% ▁▁▁▁▁▁▁▁█▂ 8888 path_hairline_small_AA_quad

after:
9M 1 355µs 356µs 358µs 375µs 2% ▂▁▁▁▁▁▁▁▁█ 8888 path_hairline_small_AA_quad

BUG=skia:

does require new baselines (bug chrome is guarded)

Review URL: https://codereview.chromium.org/1060153003
kBlitter.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kScan_Antihair.cpp
115acee9386e685f9a5938fb2cf13fd5a475012a 14-Apr-2015 mtklein <mtklein@chromium.org> Sk4h and Sk8h for SSE

These will underly the SkPMFloat-like class for uint16_t components.

Sk4h will back a single-pixel version, and Sk8h any larger number than that.

BUG=skia:

Review URL: https://codereview.chromium.org/1088883005
kNx.h
9e36c1a9306f052331550dab4728b9875127bfb5 14-Apr-2015 joshualitt <joshualitt@chromium.org> Start canonicalizing color for all A8 textblobs

BUG=skia:

Review URL: https://codereview.chromium.org/1076593002
kPaint.cpp
kTextBlob.cpp
8fe8fffdfa7464c6f7da773b8660a2043f4998e0 14-Apr-2015 mtklein <mtklein@chromium.org> Rename SkNi to SkNb.

As used today, SkNi is used in bool-y contexts. This keeps that, but under a
new name, SkNb. This makes room for a new SkNi that's focused on integer-y
things like loads, stores, arithmetic, etc.

The main reason to split these is that we want different specializations for
each use case: for bools, it's important for us to specialize 32- and 64-bit to
support efficient float- and double- comparisons, but for integer work we're
more likely to be looking at 8- and 16- bit lanes. Keeping these use cases
siloed helps me manage the compexity of the backend NEON and SSE code.

BUG=skia:

Review URL: https://codereview.chromium.org/1083123002
kNx.h
kRect.cpp
5dc6b7d1a8bc591d62366ff83c434ff74f3e10fc 14-Apr-2015 reed <reed@google.com> change hairline procs to take array of points

BUG=skia:

Review URL: https://codereview.chromium.org/1085883002
kDraw.cpp
kScan.h
kScan_Antihair.cpp
kScan_Hairline.cpp
1dda2194e0c3a486032b2dd4d3eaea67fa47d818 13-Apr-2015 mtklein <mtklein@chromium.org> Fix minor undercounting in SkRecord::bytesUsed().

When an SkRecord has more than kInlineRecords ops in it (today, 5 or more), the
current logic undercounts the bytes used by the SkRecord by sizeof(Record) *
kInlineRecords, i.e. 32 bytes. This isn't a huge deal... by the time you've
recorded 5 ops, we're typically up around 1KB anyway, and it's only ever off by
that constant 32 bytes, so somewhere between 3% to 0% error as the picture grows.

But now that I've noticed, we might as well fix it. Basically, this is a
reminder that the inline space used to store those first kInlineRecords ops
goes to waste once we pass that threshold. In contrast, fInlineAlloc, the
space we preallocate for the SkVarAlloc, never goes to waste. It always holds
the first few ops' data even when we grow past it.

BUG=skia:

Review URL: https://codereview.chromium.org/1081433002
kRecord.cpp
64b309c35bfddb8382c3e38f1d8ff7efe4098cab 13-Apr-2015 reed <reed@chromium.org> use fast/inline SkRect::set(p0, p1) for 2 points

10% speedup for clipped haircubics

BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/1079343002
kLineClipper.cpp
51985e3f5e608d369e52832b7ce489d85d402422 11-Apr-2015 reed <reed@chromium.org> setDrawFilter needs to trigger any deferred saves

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1077353002
kCanvas.cpp
054eef2b5ca84bf5b03e5ddba0c30055f5e474cc 11-Apr-2015 reed <reed@chromium.org> change hairline procs to take SkPoint by value, more efficient on SSE and NEON

precursor for https://codereview.chromium.org/1074313002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084433002
kDraw.cpp
kScan.h
kScan_Antihair.cpp
kScan_Hairline.cpp
25c40d25d75c8ee5d9632608ba09eb2c5fb765d2 10-Apr-2015 robertphillips <robertphillips@google.com> Add serialization of SkBitmapSource's new filterQuality member variable

Missed this in https://codereview.chromium.org/1072603002/ (Add GM to repro crbug.com/472795)

Review URL: https://codereview.chromium.org/1078113002
kReadBuffer.h
9ff378b01be0b0a3fc35677a2155ba4ade286cc2 09-Apr-2015 mtklein <mtklein@chromium.org> Rewrite memset benches, then use results to add a small-N optimization.

The benches for N <= 10 get around 2x faster on my N7 and N9. I believe this
is because of the reduced function-call-then-function-pointer-call overhead on
the N7, and additionally because it seems autovectorization beats our NEON code
for small N on the N9.

My desktop is unchanged, though that's probably because N=10 lies well within a
region where memset's performance is essentially constant: N=100 takes only
about 2x as long as N=1 and N=10, which perform nearly identically.

BUG=skia:

Review URL: https://codereview.chromium.org/1073863002
kUtils.cpp
2df6fd650cb12af8eeb7884b2819d2bf8ba7a5bf 09-Apr-2015 tomhudson <tomhudson@google.com> Avoid sending empty bitmaps through proxy canvas

Some back ends may crash when asked to draw an empty bitmap, so we
filter it out here.

BUG=skia:3692
R=djsollen@google.com,reed@google.com

Review URL: https://codereview.chromium.org/1072033002
kCanvas.cpp
055f6b59d879b2adac52748ea5a58c8a05bf501c 09-Apr-2015 fmalita <fmalita@chromium.org> [SkTextBlob] Custom run font record

Instead of using a full-blown SkPaint to store run font info, use a
custom structure.

This saves 96 bytes / run on 64bit platforms.

R=reed@google.com,mtklein@google.com,joshualitt@google.com

Review URL: https://codereview.chromium.org/1070943002
kTextBlob.cpp
195f62d07d6e996d188b9b2065da073f665a7c5f 09-Apr-2015 stephana <stephana@google.com> BUG=skia:

Review URL: https://codereview.chromium.org/1054073003
kImageFilter.cpp
29b1afc169576cf5e708e46b74313b5666e66249 09-Apr-2015 mtklein <mtklein@chromium.org> Rearrange SkRecord with small N in mind

This rearranges the record pointers and types so they can go in a single array, then preallocates some space for them and for the SkVarAlloc.

picture_overhead_draw bench drops from ~1000ns to 500-600ns, with no effect on picture_overhead_nodraw.

I don't see any significant effect on large picture recording times from our .skps.

BUG=chromium:470553

Committed: https://skia.googlesource.com/skia/+/e2dd9408cd711777afaa9410427fb0d761ab004a

Review URL: https://codereview.chromium.org/1061783002
kRecord.cpp
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
f57546ec7f9ab116d80044e19aa5e72060dbff09 09-Apr-2015 fmalita <fmalita@chromium.org> Remove SK_SUPPORT_LEGACY_SCALAR_MAPPOINTS

No longer used in Chromium.

Also drop now-unused SkMatrix::Rot_pts() & SkMatrix::RotTrans_pts().

BUG=475022
R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1071833002
kMatrix.cpp
35f55764b81390a085fb90f624082c196fbd6229 08-Apr-2015 mtklein <mtklein@google.com> Revert of Rearrange SkRecord with small N in mind (patchset #8 id:120001 of https://codereview.chromium.org/1061783002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug/builds/149/steps/dm/logs/stdio

Original issue's description:
> Rearrange SkRecord with small N in mind
>
> This rearranges the record pointers and types so they can go in a single array, then preallocates some space for them and for the SkVarAlloc.
>
> picture_overhead_draw bench drops from ~1000ns to 500-600ns, with no effect on picture_overhead_nodraw.
>
> I don't see any significant effect on large picture recording times from our .skps.
>
> BUG=chromium:470553
>
> Committed: https://skia.googlesource.com/skia/+/e2dd9408cd711777afaa9410427fb0d761ab004a

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:470553

Review URL: https://codereview.chromium.org/1068383003
kRecord.cpp
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
e2dd9408cd711777afaa9410427fb0d761ab004a 08-Apr-2015 mtklein <mtklein@chromium.org> Rearrange SkRecord with small N in mind

This rearranges the record pointers and types so they can go in a single array, then preallocates some space for them and for the SkVarAlloc.

picture_overhead_draw bench drops from ~1000ns to 500-600ns, with no effect on picture_overhead_nodraw.

I don't see any significant effect on large picture recording times from our .skps.

BUG=chromium:470553

Review URL: https://codereview.chromium.org/1061783002
kRecord.cpp
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
16e833d5aac6570e134cf8e5356df635e01e092e 08-Apr-2015 halcanary <halcanary@google.com> SkString: remove fStr member

Motivation: I'd like sizeof(SkString) to be the same in Debug and Release.

Review URL: https://codereview.chromium.org/1073473003
kString.cpp
feaadee1c38e1d4e1ec0069a3509ef6fbc5fbeff 08-Apr-2015 mtklein <mtklein@chromium.org> SkCanvas::resetForNextPicture()

No diffs against head for DM --config 8888 gpu 2ndpic-8888 2ndpic-gpu.

picture_overhead_draw 1.62us -> 1.6us 0.99x
picture_overhead_nodraw 792ns -> 342ns 0.43x

tiles and serialization modes will also test this a bit.

BUG=chromium:470553

Committed: https://skia.googlesource.com/skia/+/f920e468ac66a36c9653d1b11181480295044c7d

Review URL: https://codereview.chromium.org/1067893002
kBitmapDevice.cpp
kCanvas.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
95bc5f349561fef2d6fbae71adb08cf5c2eec0c9 08-Apr-2015 caryclark <caryclark@google.com> change isNestedRect to isNestedFillRect

R=reed@google.com, bsalomon@google.com

Let isNested(Fill)Rect return true if drawn path describes filled
rectangles.

Review URL: https://codereview.chromium.org/1073473002
kMaskFilter.cpp
kPath.cpp
c654e9016a15985ebeb24f94f819d113ad48a251 08-Apr-2015 mtklein <mtklein@google.com> Revert of SkCanvas::resetForNextPicture() (patchset #4 id:60001 of https://codereview.chromium.org/1067893002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia/builders/Linux%20Tests/builds/1816

Original issue's description:
> SkCanvas::resetForNextPicture()
>
> No diffs against head for DM --config 8888 gpu 2ndpic-8888 2ndpic-gpu.
>
> picture_overhead_draw 1.62us -> 1.6us 0.99x
> picture_overhead_nodraw 792ns -> 342ns 0.43x
>
> tiles and serialization modes will also test this a bit.
>
> BUG=chromium:470553
>
> Committed: https://skia.googlesource.com/skia/+/f920e468ac66a36c9653d1b11181480295044c7d

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:470553

Review URL: https://codereview.chromium.org/1062353002
kBitmapDevice.cpp
kCanvas.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
f920e468ac66a36c9653d1b11181480295044c7d 07-Apr-2015 mtklein <mtklein@chromium.org> SkCanvas::resetForNextPicture()

No diffs against head for DM --config 8888 gpu 2ndpic-8888 2ndpic-gpu.

picture_overhead_draw 1.62us -> 1.6us 0.99x
picture_overhead_nodraw 792ns -> 342ns 0.43x

tiles and serialization modes will also test this a bit.

BUG=chromium:470553

Review URL: https://codereview.chromium.org/1067893002
kBitmapDevice.cpp
kCanvas.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
d762ca2586707cb808342b11832073e8b3df33ad 07-Apr-2015 senorblanco <senorblanco@chromium.org> Switch textures created by DeviceImageFilterProxy to
approx-match.

This revealed some further 0..1 texture coordinate
depedencies,specifically in SkDisplacementMapEffect and
SkXfermodeImageFilter, fixed through use of
GrTextureDomain.

Note: causes minor pixel diffs in pictureimagefilter,
testimagefilters GMs.

Also causes minor pixel diffs in some Blink layout tests,
suppressed here: https://codereview.chromium.org/1064943002

BUG=skia:3532

Review URL: https://codereview.chromium.org/1065683002
kDeviceImageFilterProxy.h
3006b2e013f29f8b00f6afabbe5b2a8737840bc6 07-Apr-2015 reed <reed@google.com> re-enable neon opts for some xfermodes

BUG=skia:

Review URL: https://codereview.chromium.org/1068783003
kXfermode.cpp
687fa1c745febb57f42b0d5f03d7c1f4be2530ca 07-Apr-2015 reed <reed@google.com> restore clipstack to heap-ptr, so clients can ref it

BUG=skia:

Review URL: https://codereview.chromium.org/1068883004
kCanvas.cpp
e35268ef4cdaa29600671cdf9d0ebb43b622d1a3 07-Apr-2015 mtklein <mtklein@chromium.org> Send SkPicture deletion message lazily.

If no one has read the picture's unique ID, there's no point invalidating it.

This is the same trick we pull with SkPixelRefs.

Before:
26M 1 1.49µs 1.6µs 1.77µs 6.25µs 42% picture_overhead_draw
13M 32 742ns 749ns 756ns 823ns 2% picture_overhead_nodraw

After:
26M 1 1.27µs 1.33µs 1.49µs 5.51µs 45% picture_overhead_draw
14M 43 677ns 680ns 681ns 701ns 1% picture_overhead_nodraw

BUG=skia:

Review URL: https://codereview.chromium.org/1061283002
kPicture.cpp
6cad1da6ef6a41c25258a42cd36e9a591a1cc076 07-Apr-2015 reed <reed@chromium.org> simplify xfers

BUG=skia:

Review URL: https://codereview.chromium.org/1061193003
kXfermode.cpp
b679ca8926a832274b14fdb512f88f64b61d32ea 07-Apr-2015 reed <reed@chromium.org> reduce alloc overhead for SkCanvas

use pre-allocated space in the canvas to avoid initial calls to malloc

BUG=skia:

Review URL: https://codereview.chromium.org/1060583007
kCanvas.cpp
7792dbf7ea089b3bcb81792a3ecda8a6f8b421e7 03-Apr-2015 mtklein <mtklein@chromium.org> Code's more readable when SkPMFloat is an Sk4f.
#floats

BUG=skia:
BUG=skia:3592

Committed: https://skia.googlesource.com/skia/+/6b5dab889579f1cc9e1b5278f4ecdc4c63fe78c9

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot

Review URL: https://codereview.chromium.org/1061603002
kPMFloat.h
kXfermode.cpp
e758579d4f85f4615d62e87847dd3f8b38e3a6e2 03-Apr-2015 mtklein <mtklein@google.com> Revert of Code's more readable when SkPMFloat is an Sk4f. (patchset #3 id:40001 of https://codereview.chromium.org/1061603002/)

Reason for revert:
missed some neon code

Original issue's description:
> Code's more readable when SkPMFloat is an Sk4f.
> #floats
>
> BUG=skia:
> BUG=skia:3592
>
> Committed: https://skia.googlesource.com/skia/+/6b5dab889579f1cc9e1b5278f4ecdc4c63fe78c9

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1056143004
kPMFloat.h
kXfermode.cpp
6b5dab889579f1cc9e1b5278f4ecdc4c63fe78c9 03-Apr-2015 mtklein <mtklein@chromium.org> Code's more readable when SkPMFloat is an Sk4f.
#floats

BUG=skia:
BUG=skia:3592

Review URL: https://codereview.chromium.org/1061603002
kPMFloat.h
kXfermode.cpp
aed98b80d9a0092e8e3d3fd3ebf237b1c652f9c8 03-Apr-2015 reed <reed@google.com> enable sk4f xfermodes

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1061543002
kXfermode.cpp
3d626834b4b5ee2d6dda34da365dfe40520253aa 03-Apr-2015 mtklein <mtklein@chromium.org> New names for SkPMFloat methods.

BUG=skia:

Review URL: https://codereview.chromium.org/1055123002
kPMFloat.h
kXfermode.cpp
a156a8ffbe1342a9c329e66ad1438934ac309d70 03-Apr-2015 mtklein <mtklein@chromium.org> Use switch operator[](int) to kth<int>() so we can use vget_lane.
#floats

BUG=skia:
BUG=skia:3592

Review URL: https://codereview.chromium.org/1059743002
kNx.h
kPMFloat.h
92dabe7421aa6ba4149901108d8ab72956f67eeb 03-Apr-2015 reed <reed@chromium.org> Exclusion and Difference modes using Sk4f

Before:
7M 1 15.3ms 15.5ms 15.8ms 17.2ms 4% ▁█▄▁▇▂▁▁▂▁ 8888 Xfermode_Exclusion
7M 1 16.5ms 17.1ms 17.3ms 18.8ms 5% ▁█▃█▃▂▂▃▂▂ 8888 Xfermode_Difference

After:
7M 1 9.06ms 9.34ms 9.42ms 10.4ms 4% ▁▁▅▄█▁▂▁▂▃ 8888 Xfermode_Exclusion
7M 1 10.5ms 10.9ms 11ms 12ms 5% ▃▁▆█▂▁▅▂▁▃ 8888 Xfermode_Difference

TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/1060493002
kXfermode.cpp
f8f5478f92d6bce30448203857156a4cda4a13d7 03-Apr-2015 reed <reed@chromium.org> impl Multiply mode using Sk4f

Before:
7M 1 14.4ms 14.8ms 15.4ms 17.5ms 7% ▆█▅▅▂▁▁▁▂▁ 8888 Xfermode_Multiply

After:
7M 1 12ms 12.1ms 12.5ms 14.1ms 6% ▃█▇▂▁▂▁▁▂▁ 8888 Xfermode_Multiply

TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/1056003002
kXfermode.cpp
028a4135aa6404ccd3a494813befe6e1a35e5e6c 02-Apr-2015 scroggo <scroggo@google.com> Add a method to read a stream without advancing it.

Add a virtual method on SkStream which will do a "peek" some bytes, so
that those bytes are read, but the next call to read will be
unaffected.

Implement peek for SkMemoryStream, where the implementation is simple
and obvious.

Implement peek on SkFrontBufferedStream.

Add tests.

Motivated by decoding streams which cannot be rewound.

TBR=reed@google.com

BUG=skia:3257

Review URL: https://codereview.chromium.org/1044953002
kStream.cpp
f92ace90d89cc99b34162dda26be564e34ca80ef 02-Apr-2015 reed <reed@chromium.org> experimental speedup some xfermodes with Sk4f

Old:
7M 1 11.1ms 11.3ms 11.3ms 11.6ms 1% ▅▄▂▂▁▁▄▄█▇ 8888 Xfermode_Screen
7M 1 10.7ms 10.9ms 10.9ms 11.1ms 1% ▄▄▄▇▃▁█▄▂▅ 8888 Xfermode_Modulate
7M 1 7.86ms 8.03ms 8ms 8.18ms 1% █▇▅▁▃▃▂▃▆▅ 8888 Xfermode_Plus
7M 1 14.6ms 14.8ms 14.8ms 15.1ms 1% ▄█▆▅▄▁▁▆▄▆ 8888 Xfermode_Xor
7M 1 13ms 13.5ms 13.4ms 13.8ms 2% ▅▃▇▁█▂▃▅▃▅ 8888 Xfermode_DstATop
7M 1 13.1ms 13.4ms 13.3ms 13.6ms 1% ▄▁▁▆▅▄▇▆█▂ 8888 Xfermode_SrcATop

New:
7M 1 6.99ms 7.19ms 7.4ms 8.98ms 8% ▁▂▁▃▂█▁▂▂▂ 8888 Xfermode_Screen
7M 1 5.27ms 5.46ms 5.46ms 5.89ms 3% ▁▁▅▁▂█▄▃▄▃ 8888 Xfermode_Modulate
7M 1 6.8ms 7.04ms 7.27ms 8.53ms 8% ▂▁█▁▁▂▂▂▂▇ 8888 Xfermode_Plus
7M 1 9ms 9.2ms 9.33ms 10.5ms 5% ▁█▃▁▂▁▁▁▅▂ 8888 Xfermode_Xor
7M 1 8.34ms 8.57ms 8.73ms 10.6ms 8% ▁▁▁▂▂▂▂▂▂█ 8888 Xfermode_DstATop
7M 1 8.38ms 8.62ms 8.91ms 10.3ms 8% ▁▃▁▂▇▂▁▂▁█ 8888 Xfermode_SrcATop

Need to define SK_SUPPORT_LEGACY_SCALAR_XFERMODES in chrome to suppress change (see https://codereview.chromium.org/1054083002/)

Review URL: https://codereview.chromium.org/1043413002
kXfermode.cpp
07342361a3cda94376230b37d9e863052449653c 02-Apr-2015 mtklein <mtklein@chromium.org> SkPMFloat: fewer internal this->isValid() assertions.

Each of these conversion functions now only asserts is output is valid.
For SkPMColor -> SkPMFloat, we assert isValid().
For SkPMFloat -> SkPMColor, we SkPMColorAssert.

#floats

BUG=skia:
BUG=skia:3592

Review URL: https://codereview.chromium.org/1055093002
kPMFloat.h
d0d37cace08f12abf8d316e6949e947551d418e6 02-Apr-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.

For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.

For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9

Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641

Committed: https://skia.googlesource.com/skia/+/46112cf2a7c7307f1c9eebb5f881cbda15aa460c

Review URL: https://codereview.chromium.org/1034733002
kCanvas.cpp
82973dbf4f22928e8dd75c8bc5b155f842c8a557 02-Apr-2015 rmistry <rmistry@google.com> Revert of Implement approx-match support in image filter saveLayer() offscreen. (patchset #31 id:590001 of https://codereview.chromium.org/1034733002/)

Reason for revert:
Spoke to Stephen about this. Reverting because failing debug builds:

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/51
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/54

Original issue's description:
> Implement approx-match support in image filter saveLayer() offscreen.
>
> Currently, the GPU-side image filter implementation creates
> exact-match textures for the offscreen backing stores for
> saveLayer(). This is because several filters have GPU
> implementations which depend on the texture coordinates
> being 0..1.
>
> The fix is three-fold:
>
> 1) Store the actual requested size in the SkGpuDevice, so
> that when wrapping it in an SkBitmap for passing to
> filterImage(), we can give it the original size.
> 2) Fix the filters (SkMagnifierImageFilter,
> SkLightingImageFilter, SkMatrixConvolutionImageFilter,
> SkMatrixImageFilter) whose GPU implementation depends on
> 0..1 texture coordinates.
> 3) Remove the exception for GPU-side image filters in
> SkCanvas::internalSaveLayer().
>
> For the lighting filters, there were two bugs which were
> cancelling each other out: the sobel filter matrix was
> being computed upside down, but then we'd negate the
> resulting normal. This worked fine in the exact-match case,
> but in the approx-match case we'd sample garbage along
> the edge pixels. Also, we never implemented the edge pixels
> according to spec in the GPU case. It requires a
> different fragment shader for each edge of the nine-patch,
> which meant we couldn't use asFragmentProcessor(), and had
> to implement the drawing via a filterImageGPU() override.
> In order to avoid polluting the public API, I inserted a
> new base class, SkLightingImageFilterInternal above
> Sk[Diffuse|Specular]LightingImageFilter to handle the
> implementation.
>
> For the SkMatrixConvolutionImageFilter, it seems the
> GLSL clamp() function occasionally returns values outside
> the clamped range, resulting in access of garbage
> texels even in GL_NEAREST. The fix here is to clamp to a
> rect inset by half a texel. There was also a bug in
> the unpremultiply step when fConvolveAlpha is false.
>
> For SkMatrixImageFilter, the fix was to make the generic
> draw path be more careful about when to use texture domain.
> If the bitmap already has a texture, use texture domain
> if the srcRect is smaller than the entire texture (not
> the entire bitmap).
>
> N.B.: this change will cause some minor pixel diffs in the
> GPU results of the following GMs (and possibly more):
> matriximagefilter, matrixconvolution, imagefiltersscaled,
> lighting, imagemagnifier, filterfastbounds,
> complexclip_aa_Layer_invert, complexclip_aa_layer,
> complexclip_bw_layer_invert, complexclip_bw_layer.
>
> BUG=skia:3532
>
> Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
>
> Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
>
> Committed: https://skia.googlesource.com/skia/+/46112cf2a7c7307f1c9eebb5f881cbda15aa460c

TBR=bsalomon@google.com,reed@chromium.org,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3532

Review URL: https://codereview.chromium.org/1057693002
kCanvas.cpp
46112cf2a7c7307f1c9eebb5f881cbda15aa460c 01-Apr-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.

For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.

For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9

Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641

Review URL: https://codereview.chromium.org/1034733002
kCanvas.cpp
be27a118c277af23377d38e9b3bfd3fcc276114f 01-Apr-2015 halcanary <halcanary@google.com> SkPDF: SkPDFGraphicState Lookup hashtabled

In Release, running `dm --src skp --config pdf`, I get a
speedup of about 1.2%.

SkPDFGraphicState class:
- Holds the subset of SkPaint that maps to a PDF Graphics
State
- These fields are easily comparable, making hashtable
comparisons easy.

SkPDFCanon:
- findGraphicState() takes a SkPDFGraphicState, not a SkPaint
- fGraphicStateRecords is a SkHashSet, not a SkTDArray

SkPDFGraphicState:
- mode_for_pdf() replaces logic inside equivalent(), but is
only called once per lookup.
- emitObject() no longer modifies the SkPDFGraphicState to
cache the SkPDFDict stucture. (Since it is de-duped,
this get no speedup).
- Static Functions that don't use the canon return a plain
SkPDFDict now. No need for fPopulated.

SkTHash.h
- SkHashSet::forall added

SkPDFDevice; SkPDFShader
- Updated for new SkPDFGraphicState interface.

BUG=skia:3585

Review URL: https://codereview.chromium.org/1046293002
kTHash.h
03e5161bed3bdfa0d9fb0867378237bac7d8bd12 01-Apr-2015 mtklein <mtklein@chromium.org> Implicit constructors for SkFunction are much more readable.

BUG=skia:

Review URL: https://codereview.chromium.org/1052663004
kFunction.h
2b6acb4ed52483bc2a89dbbaa6f0db4fdb217cd3 01-Apr-2015 joshualitt <joshualitt@chromium.org> Switch to one single bitmap text blob cache allocation

BUG=skia:

Review URL: https://codereview.chromium.org/1041953002
kDescriptor.h
kPaint.cpp
74415278ce23ed1b796e2def3b92724623dd44b0 01-Apr-2015 mtklein <mtklein@chromium.org> Constructor and call argument forwarding for SkFunction.

BUG=skia:

Review URL: https://codereview.chromium.org/1050113003
kFunction.h
fb8307c6b78bfbaa5e969a9df0c007c232d6251d 01-Apr-2015 mtklein <mtklein@chromium.org> Add SkTHashSet::find()

BUG=skia:

Review URL: https://codereview.chromium.org/1058553002
kTHash.h
97312d0f7946991d5c529a1edc53ed676eecb655 01-Apr-2015 mtklein <mtklein@chromium.org> small-object optimization for SkFunction

Anything <= sizeof(void*) will be inlined, avoiding heap allocation.

BUG=skia:

Review URL: https://codereview.chromium.org/1048243002
kFunction.h
7c0273f107d571a2147e4b2ad3f36c917bb12b22 01-Apr-2015 rmistry <rmistry@google.com> Revert of Implement approx-match support in image filter saveLayer() offscreen. (patchset #27 id:510001 of https://codereview.chromium.org/1034733002/)

Reason for revert:
Looks like this change is causing layout test failures which is blocking Skia's DEPS roll into Chromium:
https://codereview.chromium.org/1050563002/
https://codereview.chromium.org/1043133005/
https://codereview.chromium.org/1048273002/

Reverting to see if this fixes the DEPS roll.

Original issue's description:
> Implement approx-match support in image filter saveLayer() offscreen.
>
> Currently, the GPU-side image filter implementation creates
> exact-match textures for the offscreen backing stores for
> saveLayer(). This is because several filters have GPU
> implementations which depend on the texture coordinates
> being 0..1.
>
> The fix is three-fold:
>
> 1) Store the actual requested size in the SkGpuDevice, so
> that when wrapping it in an SkBitmap for passing to
> filterImage(), we can give it the original size.
> 2) Fix the filters (SkMagnifierImageFilter,
> SkLightingImageFilter) whose GPU implementation depends on
> 0..1 texture coordinates.
> 3) Remove the exception for GPU-side image filters in
> SkCanvas::internalSaveLayer().
>
> For the lighting filters, there were two bugs which were
> cancelling each other out: the sobel filter matrix was
> being computed upside down, but then we'd negate the
> resulting normal. This worked fine in the exact-match case,
> but in the approx-match case we'd sample garbage along
> the edge pixels. Also, we never implemented the edge pixels
> according to spec in the GPU case. It requires a
> different fragment shader for each edge of the nine-patch,
> which meant we couldn't use asFragmentProcessor(), and had
> to implement the drawing via a filterImageGPU() override.
> In order to avoid polluting the public API, I inserted a
> new base class, SkLightingImageFilterInternal above
> Sk[Diffuse|Specular]LightingImageFilter to handle the
> implementation.
>
> N.B.: this change will cause some minor pixel diffs in the
> GPU results of the following GMs (and possibly more):
> matriximagefilter, matrixconvolution, imagefiltersscaled,
> lighting, imagemagnifier, filterfastbounds,
> complexclip_aa_Layer_invert, complexclip_aa_layer,
> complexclip_bw_layer_invert, complexclip_bw_layer.
>
> BUG=skia:3532
>
> Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
>
> Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641

TBR=bsalomon@google.com,reed@chromium.org,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3532

Review URL: https://codereview.chromium.org/1057443003
kCanvas.cpp
4a9426f0fa812c0f1bffa84f0dae0926607a9543 31-Mar-2015 mtklein <mtklein@chromium.org> Sketch SkFunction

Let's start with baby steps in case some bot can't handle this.
I have left many TODOs, most of which I know how to do if this
looks feasible and useful.

BUG=skia:

Review URL: https://codereview.chromium.org/1049223003
kFunction.h
f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641 31-Mar-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9

Review URL: https://codereview.chromium.org/1034733002
kCanvas.cpp
af9c85dee116fdc5f32029ac6a4fa7882c6b9a63 31-Mar-2015 halcanary <halcanary@google.com> SkPDF: remove SK_NO_FLATE & dead code in SkPDFStream

SkPDFStream copy constructor
SkPDFStream Substitute mechanism
SkPDFStream::setData(NULL);
SkPDFStream SK_NO_FLATE logic

BUG=skia:3585
TBR=bsalomon@google.com,reed@google.com

Review URL: https://codereview.chromium.org/1041183002
kFlate.cpp
kFlate.h
0340df5b3698aff1c9540fcdbc3dafd9d5ddb0b0 31-Mar-2015 mtklein <mtklein@chromium.org> back to Sk4f for SkPMColor
#floats

BUG=skia:
BUG=skia:3592

Review URL: https://codereview.chromium.org/1047823002
kPMFloat.h
c9adb05b64fa0bfadf9d1a782afcda470da68c9e 30-Mar-2015 mtklein <mtklein@chromium.org> Refactor Sk2x<T> + Sk4x<T> into SkNf<N,T> and SkNi<N,T>

The primary feature this delivers is SkNf and SkNd for arbitrary power-of-two N. Non-specialized types or types larger than 128 bits should now Just Work (and we can drop in a specialization to make them faster). Sk4s is now just a typedef for SkNf<4, SkScalar>; Sk4d is SkNf<4, double>, Sk2f SkNf<2, float>, etc.

This also makes implementing new specializations easier and more encapsulated. We're now using template specialization, which means the specialized versions don't have to leak out so much from SkNx_sse.h and SkNx_neon.h.

This design leaves us room to grow up, e.g to SkNf<8, SkScalar> == Sk8s, and to grown down too, to things like SkNi<8, uint16_t> == Sk8h.

To simplify things, I've stripped away most APIs (swizzles, casts, reinterpret_casts) that no one's using yet. I will happily add them back if they seem useful.

You shouldn't feel bad about using any of the typedef Sk4s, Sk4f, Sk4d, Sk2s, Sk2f, Sk2d, Sk4i, etc. Here's how you should feel:
- Sk4f, Sk4s, Sk2d: feel awesome
- Sk2f, Sk2s, Sk4d: feel pretty good

No public API changes.
TBR=reed@google.com

BUG=skia:3592

Review URL: https://codereview.chromium.org/1048593002
k2x.h
k4x.h
kGeometry.cpp
kMatrix.cpp
kNx.h
kPMFloat.h
kRect.cpp
ff420217394e6e35e831b11e98b46202e37de23f 30-Mar-2015 robertphillips <robertphillips@google.com> Revert of Remove SkClipStack's manual rounding of BW clip rects (patchset #3 id:80001 of https://codereview.chromium.org/1033453003/)

Reason for revert:
Reverting due to performance regression: https://code.google.com/p/skia/issues/detail?id=3597

Original issue's description:
> Remove SkClipStack's manual rounding of BW clip rects
>
> The full fix for this bug is nudging the image in device space. That is going to be a large change. This CL should address the immediate problem.
>
> This CL will alter the following GMs:
> clipdrawdraw
> convex_poly_clip
> complexclip_bw_*
> filltypespersp
> complexclip3_simple
>
>
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/e523d4f90c3368c555282a98b41ca5ee2045103e

TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834

Review URL: https://codereview.chromium.org/1045853002
kClipStack.cpp
7da19014fda527a52381d85cc50b951031fa4754 29-Mar-2015 reed <reed@chromium.org> use Sk4f for matrix math

Need to land SK_SUPPORT_LEGACY_SCALAR_MAPPOINTS in chrome to suppress Affine
version which causes slight differences (which will need to be rebaselined)

BUG=skia:

Review URL: https://codereview.chromium.org/1045493002
kMatrix.cpp
06d3d682b4d26fb390c38ab2bb76853fd6e29be2 28-Mar-2015 senorblanco <senorblanco@chromium.org> Revert "Implement approx-match support in image filter saveLayer() offscreen."

This reverts commit b97dafefe63ea0a1bbce8e8b209f4920983fb8b9.

SkLightingImageFilter boundaries are incorrect (see GM:lighting).

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1048583002
kCanvas.cpp
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9 28-Mar-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates exact-match
textures for the offscreen backing stores for saveLayer(). This is
because several filters have GPU implementations which depend on the
texture coordinates being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so that when
wrapping it in an SkBitmap for passing to filterImage(), we can give
it the original size.
2) Fix the filters (SkMagnifierImageFilter, more TBD) whose GPU
implementation depends on 0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Review URL: https://codereview.chromium.org/1034733002
kCanvas.cpp
d8b34c26c2a2f8e37e0cc9a7910306aecacadd92 27-Mar-2015 reed <reed@google.com> use table of procs (and unrolling) to speed up mapPts

BUG=skia:

Review URL: https://codereview.chromium.org/1040783002
kMatrix.cpp
daee7eadd1b704078217e9a0f5ad218fcaeae099 27-Mar-2015 reed <reed@chromium.org> impl SkConvertQuadToCubic w/ Sk2s

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1041573002
kGeometry.cpp
a644116c3375b12c642d1b51ee1e5cf4a22c1f5b 26-Mar-2015 reed <reed@google.com> Revert of Make the canvas draw looper setup update the canvas save count (patchset #1 id:1 of https://codereview.chromium.org/1034033004/)

Reason for revert:
makes internalSave and internalSaveLayer inconsistent. Need to find a different solution.

Original issue's description:
> Make the canvas draw looper setup update the canvas save count
>
> Image filter in a paint would leave save count in wrong state
> for normal draws. This could be observed through the canvas
> references during the draw call. An example of this is
> inspecting the canvas during a draw looper.
>
> patch from issue 993863002 at patchset 20001 (http://crrev.com/993863002#ps20001)
>
> BUG=skia:
> TBR=kkinnunen@nvidia.com
>
> Committed: https://skia.googlesource.com/skia/+/fd3a91e1fc4de69611b5297f624a1cd65db4ced1

TBR=kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1037653004
kCanvas.cpp
fd3a91e1fc4de69611b5297f624a1cd65db4ced1 26-Mar-2015 reed <reed@google.com> Make the canvas draw looper setup update the canvas save count

Image filter in a paint would leave save count in wrong state
for normal draws. This could be observed through the canvas
references during the draw call. An example of this is
inspecting the canvas during a draw looper.

patch from issue 993863002 at patchset 20001 (http://crrev.com/993863002#ps20001)

BUG=skia:
TBR=kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/1034033004
kCanvas.cpp
3d4c4a5a9feff961c6ba70443fa40ea1ca0a503e 26-Mar-2015 mtklein <mtklein@chromium.org> SkPMFloat::trunc()

Add and test trunc(), which is what get() used to be before rounding.
Using trunc() is a ~40% speedup on our linear gradient bench.

#neon #floats
BUG=skia:3592
#n5
#n9
CQ_INCLUDE_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Debug-Trybot;client.skia.android:Test-Android-Nexus9-TegraK1-Arm64-Release-Trybot

Review URL: https://codereview.chromium.org/1032243002
kPMFloat.h
55011038816a3fc7f0c0a39d482fb85347cc2e78 26-Mar-2015 reed <reed@google.com> use new faster/vector impl for chopping conics

BUG=skia:

Review URL: https://codereview.chromium.org/1035943002
kGeometry.cpp
kGeometry.h
c08330f1601aeca7f10aeb2194118decbfbf83e1 26-Mar-2015 reed <reed@google.com> remove slower scalar code in favor of vectors

BUG=skia:

Review URL: https://codereview.chromium.org/1001833006
kGeometry.cpp
kGeometry.h
3756d810d47291c3540e7cb54c70110e46df3ebc 26-Mar-2015 reed <reed@chromium.org> remove #if 0 code

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1032273003
kRect.cpp
83e22e407e48acc4e23774edb2241c6a111e1db9 26-Mar-2015 reed <reed@chromium.org> use custom search for pathmeasure

BUG=skia:

Review URL: https://codereview.chromium.org/1037653002
kPathMeasure.cpp
36352bf5e38f45a70ee4f4fc132a38048d38206d 26-Mar-2015 mtklein <mtklein@chromium.org> C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}

NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
kAAClip.cpp
kAAClip.h
kBitmapCache.cpp
kBitmapFilter.h
kBitmapHeap.h
kBitmapProcShader.h
kBlitter.cpp
kBlitter.h
kBlitter_RGB16.cpp
kBuffer.h
kColorFilter.cpp
kColorShader.h
kCoreBlitters.h
kDeviceImageFilterProxy.h
kDraw.cpp
kEmptyShader.h
kFilterShader.h
kFlate.h
kFontMgr.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskCache.cpp
kMaskGamma.cpp
kMatrixImageFilter.h
kMipMap.h
kPictureRecord.h
kPictureRecorder.cpp
kPictureShader.cpp
kPictureShader.h
kRTree.h
kRecorder.h
kRegion_path.cpp
kResourceCache.cpp
kScalerContext.cpp
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Path.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kStream.cpp
kTypeface.cpp
kValidatingReadBuffer.h
kXfermode.cpp
kXfermode_proccoeff.h
kYUVPlanesCache.cpp
b25a83bd8802b7c3c5746c319e781f45337fe207 25-Mar-2015 reed <reed@google.com> Use Sk4x to speed-up bounds of an array of points

BUG=skia:

Review URL: https://codereview.chromium.org/1015633004
kRect.cpp
15391ee4acaa092f52742f64968ad8046b74ca81 25-Mar-2015 mtklein <mtklein@chromium.org> Update 4-at-a-time APIs.

There is no reason to require the 4 SkPMFloats (registers) to be adjacent.
The only potential win in loads and stores comes from the SkPMColors being adjacent.

Makes no difference to existing bench.

BUG=skia:

Review URL: https://codereview.chromium.org/1035583002
kPMFloat.h
2af858354d913397a6c316ef46a5d52d686e10ab 25-Mar-2015 joshualitt <joshualitt@chromium.org> simple patch to always init SkTextBlob uniqueID

BUG=skia:

Review URL: https://codereview.chromium.org/1036613002
kTextBlob.cpp
038cb5e8d8b095f3e1f87b7a68aa8b7fa6906826 25-Mar-2015 halcanary <halcanary@google.com> SkTHash: add checksum include

Review URL: https://codereview.chromium.org/1030883006
kTHash.h
e523d4f90c3368c555282a98b41ca5ee2045103e 25-Mar-2015 robertphillips <robertphillips@google.com> Remove SkClipStack's manual rounding of BW clip rects

The full fix for this bug is nudging the image in device space. That is going to be a large change. This CL should address the immediate problem.

This CL will alter the following GMs:
clipdrawdraw
convex_poly_clip
complexclip_bw_*
filltypespersp
complexclip3_simple

BUG=423834

Review URL: https://codereview.chromium.org/1033453003
kClipStack.cpp
6b9ef90c029c7c783f156ffd6fb1ba047bec63e0 25-Mar-2015 reed <reed@chromium.org> SkChopCubicAt2 using Sk2s -- 2x faster

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1036753002
kGeometry.cpp
kGeometry.h
4b65059e6eea7d90ff3547e4656f7659d3815dc4 24-Mar-2015 mtklein <mtklein@chromium.org> Go back to storeAligned / LoadAligned for SkPMFloat <->Sk4f.

This seems to fix the miscompilation bug on ARM64 / Release / GCC 4.9.

We switched this over originally for perf issues with NEON, but I can't see any now. Will keep an eye out.

BUG=skia:3570

Review URL: https://codereview.chromium.org/1026403002
kPMFloat.h
8c24d453a214c16d3b2fcb3478a245d14ac7e1a9 24-Mar-2015 senorblanco <senorblanco@chromium.org> Move SkMatrixImageFilter.h into src/core.

Callers in Blink have been updated to call
SkImageFilter::CreateMatrixFilter() instead.

BUG=skia:3568

Review URL: https://codereview.chromium.org/1013753013
kMatrixImageFilter.h
62a320c8d444cd04e4f2952c269ea4cbd58dee64 24-Mar-2015 reed <reed@google.com> Revert of Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #1 id:1 of https://codereview.chromium.org/1022673007/)

Reason for revert:
fix for chrome has landed...

Original issue's description:
> Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #2 id:20001 of https://codereview.chromium.org/1015533011/)
>
> Reason for revert:
> skia/ext/benchmarking_canvas.cc references HasFilter16 :(
>
> Original issue's description:
> > remove colorfilter native-565 support. complicating w/ no real value.
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/2151353d161fe389cdc0db62cfe1932c7680f710
>
> TBR=reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/92b47c49016749249ff8521e424c4373b4a74241

TBR=reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1016103004
kColorFilter.cpp
kFilterShader.cpp
kFilterShader.h
470fa6f74b8ed08d85af463d5b3ef6f19ed6522a 24-Mar-2015 mtklein <mtklein@chromium.org> aacc + bbdd

SkMatrix::mapPts() using aacc/bbdd was always worse than using badc():
- On Intel, it was faster than exisiting swizzle, but badc() is 10% faster still (one pshufd instead of two).
- On ARM, existing swizzle < badc() < aacc()+bbdd(), even though aacc() then bbdd() is really a single vtrn instruction.

I will revert SkMatrix.cpp before submitting. Just thought you might like to look.

Will think more and try to gear up Instruments on ARM.

BUG=skia:

Review URL: https://codereview.chromium.org/1012573003
k4x.h
92b47c49016749249ff8521e424c4373b4a74241 24-Mar-2015 reed <reed@google.com> Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #2 id:20001 of https://codereview.chromium.org/1015533011/)

Reason for revert:
skia/ext/benchmarking_canvas.cc references HasFilter16 :(

Original issue's description:
> remove colorfilter native-565 support. complicating w/ no real value.
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/2151353d161fe389cdc0db62cfe1932c7680f710

TBR=reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1022673007
kColorFilter.cpp
kFilterShader.cpp
kFilterShader.h
2151353d161fe389cdc0db62cfe1932c7680f710 24-Mar-2015 reed <reed@chromium.org> remove colorfilter native-565 support. complicating w/ no real value.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1015533011
kColorFilter.cpp
kFilterShader.cpp
kFilterShader.h
2e220fb9ece0fcce8a4c4a3838bbe64d7492b139 23-Mar-2015 mtklein <mtklein@chromium.org> Start fresh on swizzles

This removes all the existing Sk4x swizzles and adds badc(), which is
both fast on all implementations and currently useful.

BUG=skia:

Review URL: https://codereview.chromium.org/997353005
k4x.h
8010632f2408ce9d840c1dcd26a8be0e4967233e 23-Mar-2015 reed <reed@google.com> remove meaningless matrix benches, add mapPts() and add new benches

mapPts definitely faster than mapPoints (identity and perspective same speed). Up to 3x for large values of N.

cloned from https://codereview.chromium.org/1031443002/

BUG=skia:

Review URL: https://codereview.chromium.org/1030653002
kMatrix.cpp
4a8562ba640f9f88fa91f3a45cf768a5e218d803 21-Mar-2015 reed <reed@chromium.org> remove SK_SUPPORT_LEGACY_ARCTO_QUADS code

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1023103004
kPath.cpp
kStrokerPriv.cpp
2fcbcea3a402411e7cfa46dfface41687f3f6437 20-Mar-2015 reed <reed@chromium.org> change default impl to facilitate transition in blink/chrome

BUG=skia:
TBR=

need deps roll to see if this works... since skia can no longer build/test in this legacy mode.

Review URL: https://codereview.chromium.org/1026923002
kImageGenerator.cpp
5fedef1c312a72faf30c1292279e3792087eb789 20-Mar-2015 reed <reed@google.com> remove SK_SUPPORT_LEGACY_PIXELREF_UNFLATTENABLE code

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1020403002
kBitmap.cpp
02f46cf878535fb79317d15ebed66dfa3f2cd772 20-Mar-2015 mtklein <mtklein@chromium.org> Some usability ideas around SkTHash.

- By default, use new SkGoodHash to hash keys, which is:
* for 4 byte values, use SkChecksum::Mix,
* for SkStrings, use SkChecksum::Murmur3 on the data,
* for other structs, shallow hash the struct with Murmur3.
- Expand SkChecksum::Murmur3 to support non-4-byte-aligned data.
- Add const foreach() methods.
- Have foreach() take a functor, which allows lambdas.

BUG=skia:

Review URL: https://codereview.chromium.org/1021033002
kChecksum.h
kTHash.h
ce6acc91085c4b6d87d4bac84e66193908e648f9 20-Mar-2015 reed <reed@google.com> cleanup using constructors

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1024193002
kGeometry.cpp
b640203cd5733aaf110277e28e22007c5b541565 20-Mar-2015 reed <reed@google.com> use Sk2s for conics

BUG=skia:

Review URL: https://codereview.chromium.org/1025033002
kGeometry.cpp
kGeometry.h
cea9f35fee49866410c6e0b9b9256df27961f495 20-Mar-2015 mtklein <mtklein@chromium.org> Sk2x::invert() and Sk2x::approxInvert()

BUG=skia:

Review URL: https://codereview.chromium.org/1024993002
k2x.h
01a78130dc357e5ee746a37650dba622e0c07f8e 20-Mar-2015 mtklein <mtklein@chromium.org> Add divide to Sk2x, use native vdiv and vsqrt on ARM 64.

Tests pass on N7 + N9.

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Build-Ubuntu-GCC-Arm64-Release-Android-Trybot

Review URL: https://codereview.chromium.org/1027753003
k2x.h
b79ff56de23fef680ae7187040f2d6a9516b553d 20-Mar-2015 mtklein <mtklein@chromium.org> Specialize Sk2d for ARM64

The implementation is nearly identical to Sk2f, with these changes:
- float32x2_t -> float64x2_t
- vfoo -> vfooq
- one extra Newton's method step in sqrt().

Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
seem to set __ARM_NEON__), so this CL fixes everything up.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/e57b5cab261a243dcbefa74c91c896c28959bf09

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Build-Ubuntu-GCC-Arm64-Release-Android-Trybot

Review URL: https://codereview.chromium.org/1020963002
k2x.h
kPMFloat.h
kUtilsArm.h
70840cbd898df67f603987213164c798415d76bf 20-Mar-2015 henrik.smiding <henrik.smiding@intel.com> Replace SSE optimization of Color32A_D565

Adds an SSE2 version of the Color32A_D565 function, to replace
the existing SSE4 version. Also does some minor cleanup.

Performance improvement in the following Skia benchmarks.
Measured on Atom Silvermont:
Xfermode_SrcOver - x3
luma_colorfilter_large - x4.6
luma_colorfilter_small - x2
tablebench - ~15%
chart_bw - ~10%

Measured on Corei7 Haswell:
luma_colorfilter_large running SSE2 - x2
luma_colorfilter_large running SSE4 - x2.3

Also improves performance in WPS Office application and 2D subtest of 0xbenchmark on Android.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Review URL: https://codereview.chromium.org/923523002
kBlitRow_D16.cpp
c3ce1d28a53e70f4faa71f9d5bbda605b0664830 20-Mar-2015 mtklein <mtklein@google.com> Revert of Specialize Sk2d for ARM64 (patchset #3 id:40001 of https://codereview.chromium.org/1020963002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Mac10.7-Clang-Arm7-Debug-iOS/builds/2441/steps/build%20most/logs/stdio

https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Mac10.7-Clang-Arm7-Release-iOS/builds/2424/steps/build%20most/logs/stdio

https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-Arm64-Release-Android/builds/8/steps/build%20most/logs/stdio

Original issue's description:
> Specialize Sk2d for ARM64
>
> The implementation is nearly identical to Sk2f, with these changes:
> - float32x2_t -> float64x2_t
> - vfoo -> vfooq
> - one extra Newton's method step in sqrt().
>
> Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
> SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
> seem to set __ARM_NEON__), so this CL fixes everything up.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e57b5cab261a243dcbefa74c91c896c28959bf09

TBR=msarett@google.com,reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1028523003
k2x.h
kPMFloat.h
kUtilsArm.h
e57b5cab261a243dcbefa74c91c896c28959bf09 20-Mar-2015 mtklein <mtklein@chromium.org> Specialize Sk2d for ARM64

The implementation is nearly identical to Sk2f, with these changes:
- float32x2_t -> float64x2_t
- vfoo -> vfooq
- one extra Newton's method step in sqrt().

Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
seem to set __ARM_NEON__), so this CL fixes everything up.

BUG=skia:

Review URL: https://codereview.chromium.org/1020963002
k2x.h
kPMFloat.h
kUtilsArm.h
b502ee3acea9bca87ab75de808b4a7eda67aadff 20-Mar-2015 Mike Klein <mtklein@google.com> Fix ambiguity in negate()s.

BUG=skia:

Review URL: https://codereview.chromium.org/1027793002
k2x.h
k4x.h
92de013c9f1a53b8f47540b829bc7d90c84c0ba8 20-Mar-2015 mtklein <mtklein@chromium.org> Sk2x/Sk4x: add negate(), operator -()

BUG=skia:

Review URL: https://codereview.chromium.org/1027783002
k2x.h
k4x.h
8c874eee943bdea0fab5b4d2707083c863e37c55 20-Mar-2015 senorblanco <senorblanco@chromium.org> Move SkMatrixImageFilter into core, and add a factory fn for it.

BUG=skia:

Review URL: https://codereview.chromium.org/1011273003
kImageFilter.cpp
kMatrixImageFilter.cpp
3e490b714600d10aad9d17129cfa52a45b05896c 20-Mar-2015 mtklein <mtklein@chromium.org> Guard SIMD code with !defined(SKNX_NO_SIMD).

This should make it easy to compare performance of the non-SIMD Sk2x / Sk4x
code with our existing portable scalar code. I'm not adding this to SkPMFloat
only because we don't have an existing scalar baseline there to compare to.

We'll have to keep our wits about us: I just tried your new benchmarks, and
Clang's autovectorizer produced almost as good SSE as we did with intrinsics for
geo_evalquadat1 and geo_evalquadtangentat1, but not for geo_chopquadat1,
which went serial.

BUG=skia:

Review URL: https://codereview.chromium.org/1026723003
k2x.h
k4x.h
kNx.h
8dc0ccb8d33d1af7dd13228509e61fe915bc7705 20-Mar-2015 reed <reed@google.com> disable LCD for layers w/ filters

BUG=468311

see also skiabug.com/3567

Review URL: https://codereview.chromium.org/1002603003
kCanvas.cpp
kDevice.cpp
40b7dd57ef1f4e91af72512d8ca57459b99d71bd 20-Mar-2015 reed <reed@google.com> use Sk2s for EvalQuadTangent and ChopQuadAt

cloned from https://codereview.chromium.org/1026633002/

BUG=skia:

Review URL: https://codereview.chromium.org/1024873003
kGeometry.cpp
kGeometry.h
26bf90e5d63024585a8261b224ea4387079e2751 20-Mar-2015 mtklein <mtklein@chromium.org> operator overloads for Sk4x, use them all where possible

BUG=skia:
NOTRY=true

Review URL: https://codereview.chromium.org/1024633003
k4x.h
adf9990cb56ca389f37f02ac637496083b3c3cfc 20-Mar-2015 reed <reed@google.com> add SkMatrix::decomposeScale

BUG=skia:

Review URL: https://codereview.chromium.org/1006173005
kBitmapProcState.cpp
kMatrix.cpp
kPictureShader.cpp
d800d878caae5d25b275d488a1b5ae8c24cea492 19-Mar-2015 mtklein <mtklein@chromium.org> Try out operator overloads for Sk2x.

BUG=skia:

Review URL: https://codereview.chromium.org/1024473005
k2x.h
kGeometry.cpp
5553bedf603e1f1a55d2fd6c70c2ca3a831b3801 19-Mar-2015 mtklein <mtklein@chromium.org> Sk2x for NEON

Also decreases the precision of Sk4f::rsqrt() for speed, keeping Sk4f::sqrt() the same:
instead of doing two estimation steps in rsqrt(), do one there and one more in sqrt().

Tests pass on my Nexus 7. float64x2_t is still a TODO for when I get a hold of a Nexus 9.

BUG=skia:

Review URL: https://codereview.chromium.org/1018423003
k2x.h
950e986b1bc127af1f484572d2494091957486f9 19-Mar-2015 mtklein <mtklein@chromium.org> Port to real Sk2f.

The bench improves from 39 to 30, about half from porting to Sk2f, half from
x.add(x) instead of x.multiply(two).

Remove Sk4f Load2/store2 now that we have Sk2f.

BUG=skia:

Review URL: https://codereview.chromium.org/1019773004
k4x.h
kGeometry.cpp
a402e7654d2ce6a43f44a9e6e0ef44ca9ff12afa 19-Mar-2015 reed <reed@google.com> remove unneeded SK_SUPPORT_LEGACY_MIPMAP_EFFECTIVE_SCALE guard

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1019343002
kBitmapProcState.cpp
bbecae0832996b72d1f6e7d39d2754651300d31e 19-Mar-2015 mtklein <mtklein@chromium.org> Sk2x

This adds an API, an SSE impl, a portable impl, and some tests for Sk2f/Sk2d/Sk2s.

BUG=skia:

Review URL: https://codereview.chromium.org/1025463002
k2x.h
f87cbcdf9f10120ca1821b4d6de94f7a2e94f930 19-Mar-2015 mtklein <mtklein@chromium.org> Reorg Sk4x to match the pattern of SkPMFloat.

No real changes here, just moving files around:
- move impl files into src/opts
- rename _portable _none

BUG=skia:

Review URL: https://codereview.chromium.org/1021713004
k4x.h
k4x_neon.h
k4x_portable.h
k4x_sse.h
65cb2cd2f7ad4146f055810b8bd77bff03a4e76e 19-Mar-2015 reed <reed@chromium.org> alt SkEvalQuadAt that returns its answer, using Sk2f

BUG=skia:

Review URL: https://codereview.chromium.org/1011493003
kGeometry.cpp
kGeometry.h
e053ca4380713a5b9e6a31119a1bdd6d529208aa 19-Mar-2015 reed <reed@chromium.org> remove unused clip parameter to SkEdge::setClip

BUG=skia:

Review URL: https://codereview.chromium.org/1019183002
kEdge.cpp
kEdge.h
kEdgeBuilder.cpp
3ef71e343bf075888fb50892350390b4dd47de24 19-Mar-2015 reed <reed@google.com> guarded change to SkImageGenerator to make getInfo() const

BUG=skia:

Review URL: https://codereview.chromium.org/1017293002
kImageGenerator.cpp
562d0e1cd2286945cb73fca0233560071b052129 19-Mar-2015 reed <reed@chromium.org> remove unused SkXRay functions

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1016263002
kGeometry.cpp
kGeometry.h
4a22a433bfb972dcd96f76e3d3b0613c26d8fc86 18-Mar-2015 senorblanco <senorblanco@chromium.org> Bump picture version for uniqueID-less SkImageFilter.

Remove writing of the uniqueID, and put reading behind a version check.

BUG=skia:3559

Review URL: https://codereview.chromium.org/1010433003
kImageFilter.cpp
kReadBuffer.h
422677ceab3908060917adf4181aaebb48bbaf41 18-Mar-2015 reed <reed@google.com> Add Load2/store2 to Sk4x (dumb impl for now)

patch from issue 1001003002 at patchset 1 (http://crrev.com/1001003002#ps1)

BUG=skia:

Review URL: https://codereview.chromium.org/1001453006
k4x.h
24e06d5244ae96e440410e1d76e039983b2efac9 18-Mar-2015 senorblanco <senorblanco@chromium.org> Remove uniqueID from all filter serialization.

(This is essentially a revert of https://codereview.chromium.org/503833002/.)

This was necessary back when SkPaint was flattened even for in-process use. Now that we only flatten SkPaint for cross-process use, there's no need to serialize UniqueIDs.

Note: SkDropShadowImageFilter is being constructed with a croprect and UniqueID (of 0) in Blink. I've made the uniqueID param default to 0 temporarily, until this rolls in and Blink can be changed. (Blink can't be changed first, since unlike the other filters, there's no constructor that takes a cropRect but not a uniqueID.)

BUG=skia:

Review URL: https://codereview.chromium.org/1019493002
kImageFilter.cpp
f94fa7112f67af6fc5db19f86d8397307ba17105 18-Mar-2015 mtklein <mtklein@chromium.org> SkPMFloat: avoid loads and stores where possible.

A store/load pair like this is a redundant no-op:
store simd_register_a, memory_address
load memory_address, simd_register_a

Everyone seems to be good at removing those when using SSE, but GCC and Clang
are pretty terrible at this for NEON. We end up issuing both redundant
commands, usually to and from the stack. That's slow. Let's not do that.

This CL unions in the native SIMD register type into SkPMFloat, so that we can
assign to and from it directly, which is generating a lot better NEON code. On
my Nexus 5, the benchmarks improve from 36ns to 23ns.

SSE is just as fast either way, but I paralleled the NEON code for consistency.
It's a little terser. And because it needed the platform headers anyway, I
moved all includes into SkPMFloat.h, again only for consistency.

I'd union in Sk4f too to make its conversion methods a little clearer,
but MSVC won't let me (it has a copy constructor... they're apparently not up
to speed with C++11 unrestricted unions).

BUG=skia:

Review URL: https://codereview.chromium.org/1015083004
kPMFloat.h
0c9b1a8d05ea6ec5dfae0ead854304673d94d2c2 18-Mar-2015 reed <reed@chromium.org> add kGray_8_SkColorType

patch from issue 1014783003 at patchset 60001 (http://crrev.com/1014783003#ps60001)

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1010343002
kBitmap.cpp
kBitmapProcState.cpp
kBitmapProcState_procs.h
kConfig8888.cpp
kImageInfo.cpp
kMipMap.cpp
706d98ef5b4a62cbbbd5a2393c32b0660b8a7fc7 17-Mar-2015 reed <reed@google.com> imagefilters always need to disable lcd

This prev CL accidentally stopped forcing (indirectly) the pixel-geometry to unknown. https://codereview.chromium.org/1010503002

BUG=467882

Review URL: https://codereview.chromium.org/1012113002
kDeviceImageFilterProxy.h
d709ea8d142eba727dda568d0641a4a2c9d09851 17-Mar-2015 bungeman <bungeman@google.com> Remove SkLONGLONG.

All users now define SkLONGLONG.
This fixes a long outstanding TODO now that int64_t is required.

BUG=skia:179

Review URL: https://codereview.chromium.org/1000933003
kMath.cpp
9552662e9fee5eb0ef435e52ab9db505d7ebe4ad 17-Mar-2015 scroggo <scroggo@google.com> Option for SkCodec to treat dst as all zeroes.

This recreates SkImageDecoder's feature to skip writing zeroes for
SkCodec.

Review URL: https://codereview.chromium.org/980903002
kImageGenerator.cpp
b83205a538f420fd78220519540503616cf636cd 16-Mar-2015 smcgruer <smcgruer@google.com> Fix build for UCLIBC platforms

malloc_usable_size does not exist in UCLIBC, so fall back to just
returning 0 for SkVarAlloc::heap_size().

BUG=skia:

Review URL: https://codereview.chromium.org/1006073003
kVarAlloc.cpp
93a1215fe0ab007ce941c721f1fd3e9dcb5d4754 16-Mar-2015 reed <reed@google.com> SkPaint::FilterLevel -> SkFilterQuality

clone (+rebase) of https://codereview.chromium.org/1009183002/

BUG=skia:
TBR=scroggo@google.com

Review URL: https://codereview.chromium.org/1014533004
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
kPaint.cpp
903dcb08b146cbaf81420a734a64692038b467ca 16-Mar-2015 bungeman <bungeman@google.com> Add __STDC_LIMIT_MACROS to SkDraw.cpp.
kDraw.cpp
d095f2bf06ca810844233bea9fb06de585643b32 16-Mar-2015 bungeman <bungeman@google.com> Test for glyphs which straddle the edge of device space.

If a glyph ends up with a left edge near the extreme right edge of
device space, the right edge may end up at the extreme left. The
current clip tests do not test for this situation and attempt to
draw the glyphs. This results in the blitters never reaching the
right edge of the glyph and so reading from other memory.

BUG=chromium:467011

Review URL: https://codereview.chromium.org/1012763002
kDraw.cpp
76033be81b82c44fd5d4fdf2672eb22e505da1f0 14-Mar-2015 reed <reed@chromium.org> Revert[6] of Change device creation to see the (optional) layer-paint

This reverts commit 173e5fe5f4be28272246e5676f5d2e5c4b1f9167.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1010503002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
173e5fe5f4be28272246e5676f5d2e5c4b1f9167 14-Mar-2015 reed <reed@chromium.org> Revert of Revert of Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1005173004/)

Reason for revert:
arrrg. this is a staging nightmare. override required on the chrome side. must revert (again)

Original issue's description:
> Revert of Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1001423002/)
>
> Reason for revert:
> chrome now has the new virtual, so trying again
>
> Original issue's description:
> > Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1006923002/)
> >
> > Reason for revert:
> > platform_canvas tests failures
> >
> > skia_unittests (with patch) skia_unittests (with patch) PlatformCanvas.TranslateLayer failed 2
> > Flakiness dashboard
> >
> > failures:
> > PlatformCanvas.TranslateLayer
> > PlatformCanvas.FillLayer
> >
> > Original issue's description:
> > > Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)
> > >
> > > Reason for revert:
> > > guard in chrome has landed
> > >
> > > Original issue's description:
> > > > Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
> > > >
> > > > Reason for revert:
> > > > need to have chrome opt-in for the older API before this can land (in chrome)
> > > >
> > > > Original issue's description:
> > > > > Change device creation to see the (optional) layer-paint
> > > > >
> > > > > Motivation:
> > > > >
> > > > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> > > > >
> > > > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> > > > >
> > > > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
> > > >
> > > > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > >
> > > > Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90
> > >
> > > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > >
> > > Committed: https://skia.googlesource.com/skia/+/f7076a13e2d4269903b34ef2780e1c84723e4477
> >
> > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> >
> > Committed: https://skia.googlesource.com/skia/+/8e14d660b2a434bc708a70180c84210883611683
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/307d1ed129ff75eb64137dea75df858f9e250b69

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1005183003
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
307d1ed129ff75eb64137dea75df858f9e250b69 14-Mar-2015 reed <reed@chromium.org> Revert of Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1001423002/)

Reason for revert:
chrome now has the new virtual, so trying again

Original issue's description:
> Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1006923002/)
>
> Reason for revert:
> platform_canvas tests failures
>
> skia_unittests (with patch) skia_unittests (with patch) PlatformCanvas.TranslateLayer failed 2
> Flakiness dashboard
>
> failures:
> PlatformCanvas.TranslateLayer
> PlatformCanvas.FillLayer
>
> Original issue's description:
> > Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)
> >
> > Reason for revert:
> > guard in chrome has landed
> >
> > Original issue's description:
> > > Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
> > >
> > > Reason for revert:
> > > need to have chrome opt-in for the older API before this can land (in chrome)
> > >
> > > Original issue's description:
> > > > Change device creation to see the (optional) layer-paint
> > > >
> > > > Motivation:
> > > >
> > > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> > > >
> > > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> > > >
> > > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
> > >
> > > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > >
> > > Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90
> >
> > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> >
> > Committed: https://skia.googlesource.com/skia/+/f7076a13e2d4269903b34ef2780e1c84723e4477
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/8e14d660b2a434bc708a70180c84210883611683

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1005173004
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
8e14d660b2a434bc708a70180c84210883611683 13-Mar-2015 reed <reed@google.com> Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1006923002/)

Reason for revert:
platform_canvas tests failures

skia_unittests (with patch) skia_unittests (with patch) PlatformCanvas.TranslateLayer failed 2
Flakiness dashboard

failures:
PlatformCanvas.TranslateLayer
PlatformCanvas.FillLayer

Original issue's description:
> Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)
>
> Reason for revert:
> guard in chrome has landed
>
> Original issue's description:
> > Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
> >
> > Reason for revert:
> > need to have chrome opt-in for the older API before this can land (in chrome)
> >
> > Original issue's description:
> > > Change device creation to see the (optional) layer-paint
> > >
> > > Motivation:
> > >
> > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> > >
> > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> > >
> > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
> >
> > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> >
> > Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/f7076a13e2d4269903b34ef2780e1c84723e4477

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1001423002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
2a679ae8f5b80a337f67783dbc0a447a9f4312c7 13-Mar-2015 robertphillips <robertphillips@google.com> Fix bug with very large round rects with large radii

BUG=463920

Review URL: https://codereview.chromium.org/998903003
kRRect.cpp
c1b11f1db69bea8d64ebf656ae92ea9ec6dbb40f 13-Mar-2015 reed <reed@google.com> Handle paths that do not report empty, but have no edges.

patch from issue 999963005 at patchset 1 (http://crrev.com/999963005#ps1)

BUG=skia:3527

Review URL: https://codereview.chromium.org/1008883002
kRegion_path.cpp
f7076a13e2d4269903b34ef2780e1c84723e4477 13-Mar-2015 reed <reed@google.com> Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)

Reason for revert:
guard in chrome has landed

Original issue's description:
> Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
>
> Reason for revert:
> need to have chrome opt-in for the older API before this can land (in chrome)
>
> Original issue's description:
> > Change device creation to see the (optional) layer-paint
> >
> > Motivation:
> >
> > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> >
> > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> >
> > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1006923002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
fd45079314b739979492601fc7a242aff24c58a3 13-Mar-2015 joshualitt <joshualitt@chromium.org> Call to retrieve SkDescriptor for SkScalarContext from SkPaint.

Review URL: https://codereview.chromium.org/1005103003
kPaint.cpp
0e040f7da2fdfeb49aa60d24117306e3b1e6ea90 13-Mar-2015 reed <reed@google.com> Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)

Reason for revert:
need to have chrome opt-in for the older API before this can land (in chrome)

Original issue's description:
> Change device creation to see the (optional) layer-paint
>
> Motivation:
>
> PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
>
> This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
>
> Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1008863002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
1182d9a96b80bd12183ee7c81325a979a51ee0c0 13-Mar-2015 reed <reed@google.com> Change device creation to see the (optional) layer-paint

Motivation:

PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.

This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.

Review URL: https://codereview.chromium.org/988413003
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
511005b2ccf060bd8ca5f078f2c0c7c7da5cc084 13-Mar-2015 fmalita <fmalita@chromium.org> Lower SkPictureShader tile size limits

Let's drop this to 4M pixels - maybe it will help relieve DM pressure on
mobile devices.

R=reed@google.com,mtklein@google.com
BUG=462348

Review URL: https://codereview.chromium.org/998423004
kPictureShader.cpp
11fa2247b747eb75e2f158dc7571d458ed6c0115 13-Mar-2015 reed <reed@chromium.org> some utils for rect and matrix

BUG=skia:

Review URL: https://codereview.chromium.org/1003813003
kDraw.cpp
kRRect.cpp
kRasterizer.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
f93dd488d575b5d9448228e6516cbe01c474bdf6 12-Mar-2015 rmistry <rmistry@google.com> Add #include first in Sk4x_* files

BUG=skia:3362

Review URL: https://codereview.chromium.org/1004693002
k4x_neon.h
k4x_portable.h
k4x_sse.h
172b45518a6a2c9c924cce124dcf27de88b03788 12-Mar-2015 mtklein <mtklein@chromium.org> Clean up SkDynamicAnnotations.

Unprotected reads -> relaxed reads.
Unprotected write -> relaxed write.

The only unprotected write we had was in SkTraceEvent, which it looks like we nabbed from Chrome at some point and changed only to silence TSAN. Chrome's version uses AtomicWord / NoBarrier_Load / NoBarrier_Store, which boils down to the same as here, intptr_t / relaxed load / relaxed store.

This leaves one place where we're lying a bit to TSAN, in include/core/SkLazyPtr.h where we're doing a data-dependent consume load. We're telling TSAN it's consume, but telling any other compiler to compile it as relaxed, given how they all upgrade consume to acquire. This eliminates a barrier for us on ARM. How do you guys deal with this? Just use a consume memory order, take the hit, and hope compilers get smarter one day?

BUG=chromium:465721

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/996763002
kLazyFnPtr.h
kTraceEvent.h
79738cc7bf12d212bef4ff80591d1bf6f383663d 11-Mar-2015 bungeman <bungeman@google.com> Glyph positions maintain 32 bit integer part.

A glyph position when mapped from canvas space to device space may land
outside the bounds of the current 16 bit integer part of device space.
Device space is already limited to 32 bits for the integer part,
but for a short space in drawText and drawPosText it is currently
limited to 16 bits (SkFixed). Raise this limit by moving to 48.16.
This matches the current similar fix for measureText.

BUG=chromium:375322

Review URL: https://codereview.chromium.org/977623002
kDraw.cpp
kDrawProcs.h
kPaint.cpp
a0d7b7bf62f55cbead09ee5829ad0c5289d1014d 11-Mar-2015 mtklein <mtklein@chromium.org> delete dead code

BUG=skia:

Review URL: https://codereview.chromium.org/1003493002
kProcSpriteBlitter.cpp
1c762161d88f0ace8cee1eea43d1b7350c06242e 11-Mar-2015 qiankun.miao <qiankun.miao@intel.com> Use proper SkFDot6 instead of int

BUG=skia:

Review URL: https://codereview.chromium.org/960353005
kEdge.cpp
kEdge.h
180aec43451dd951fdaae81a92efc710ba093260 11-Mar-2015 reed <reed@google.com> Simplify clip inside a layer -- will be applied in restore

This reverts commit 44124650895833378938b4b174302fbf64403fe2.

NOTREECHECKS=True
BUG=skia:

Review URL: https://codereview.chromium.org/996233002
kCanvas.cpp
9b3aa54bc9605257c701cf465813f5fb1d7ba39e 11-Mar-2015 reed <reed@google.com> optimization/fix: dirty the clip-bounds when we mod the clip in savelayer

Before the fix, we could use a stale cache of the clipbounds in quickReject. Often this could return false negatives, meaning we would try to draw more than we should (it would eventually be really clipped). Occasionally this could also report false positives (if the layer were outside of the normal canvas bounds, e.g. a layer with an offset imagefilter).

BUG=skia:
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/983243003
kCanvas.cpp
44124650895833378938b4b174302fbf64403fe2 11-Mar-2015 reed <reed@chromium.org> Revert of simplify clip inside a layer -- will be applied in restore (patchset #2 id:20001 of https://codereview.chromium.org/997763002/)

Reason for revert:
slight rebaselines needed in layouttests

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/51755

Original issue's description:
> simplify clip inside a layer -- will be applied in restore
>
> BUG=skia:
> TBR=
> NOTREECHECKS=True
>
> speculative land to measure performance
>
> Committed: https://skia.googlesource.com/skia/+/c275493d4247a2c5ae845d340c4297258f4684bc

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/997103002
kCanvas.cpp
c275493d4247a2c5ae845d340c4297258f4684bc 11-Mar-2015 reed <reed@chromium.org> simplify clip inside a layer -- will be applied in restore

BUG=skia:
TBR=
NOTREECHECKS=True

speculative land to measure performance

Review URL: https://codereview.chromium.org/997763002
kCanvas.cpp
96e657d0e103b8358a77ecd913f6086929f792b8 11-Mar-2015 reed <reed@chromium.org> remove unused params to DeviceCM constructor

BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/999593002
kCanvas.cpp
33a4582a2537a986de9135227990842ac9289586 09-Mar-2015 fmalita <fmalita@chromium.org> Remove SK_SUPPORT_LEGACY_ADDOVAL

The flad has been retired from Chromium.

BUG=chromium:458898
R=reed@google.com

Review URL: https://codereview.chromium.org/994533002
kPath.cpp
1b110d6bf4aebd4452687a8294d222e3d7e1ed38 09-Mar-2015 reed <reed@chromium.org> Revert of use colorfilter instead of imagefilter when possible (patchset #6 id:100001 of https://codereview.chromium.org/966233002/)

Reason for revert:
Lots of PDF failures -- need to investigate

Original issue's description:
> use colorfilter instead of imagefilter when possible
>
> big speed win w/ nanobench --match colorfilter_
>
> BUG=skia:
> TBR=
>
> Will require rebaselining, so landing temporarily to trigger layouttests.
>
> Committed: https://skia.googlesource.com/skia/+/f641bd076d29666a5d2a10d5384e4924b0a0e524

TBR=sugoi@google.com,senorblanco@google.com,bsalomon@google.com,reed@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/991693002
kCanvas.cpp
f641bd076d29666a5d2a10d5384e4924b0a0e524 09-Mar-2015 reed <reed@chromium.org> use colorfilter instead of imagefilter when possible

big speed win w/ nanobench --match colorfilter_

BUG=skia:
TBR=

Will require rebaselining, so landing temporarily to trigger layouttests.

Review URL: https://codereview.chromium.org/966233002
kCanvas.cpp
cedc36f18b2254c5ee21f6348124886b6db4f4c2 08-Mar-2015 reed <reed@google.com> Use ComposColorFilter to collaps hierarchy (when possible).

Clarify asColorFilter ...
1. Rename to isColorFilterNode for DAG reduction
2. Add asAColorFilter for removing the imagefilter entirely (future use-case)

Need layouttest rebaseline suppression before this can land in chrome...
https://codereview.chromium.org/984023004/

BUG=skia:

Review URL: https://codereview.chromium.org/982933002
kImageFilter.cpp
23d8593f8127411d9d687b4565b34b4ecd6b11d3 07-Mar-2015 schenney <schenney@chromium.org> Update SkPicture cull rects with RTree information

When computed, the RTree for an SkPicture will have a root
bounds that reflects the best bounding information available,
rather than the best estimate at the time the picture recorder
is created. Given that creators frequently don't know ahead of
time what will be drawn, the RTree bound is often tighter.

Perf testing on Chrome indicates a small raster performance
advantage. For upcoming painting changes in Chrome the
performance advantage is much larger.

BUG=

Committed: https://skia.googlesource.com/skia/+/2dd3b6647dc726f36fd8774b3d0d2e83b493aeac

Review URL: https://codereview.chromium.org/971803002
kBBoxHierarchy.h
kPictureRecorder.cpp
kRTree.cpp
kRTree.h
kRecordDraw.cpp
a27cdefae19d1d40e6a9ca84935c72bde48236b3 07-Mar-2015 mtklein <mtklein@chromium.org> Make Sk4f(float) constructor explicit.

BUG=skia:

Review URL: https://codereview.chromium.org/985003003
k4x.h
c2ff52920b43304e83d7def592dfacc73b54373e 07-Mar-2015 herb <herb@google.com> Fix bit rot in SkGlyphCache validate code.

TESTED
CFLAGS=-DSK_DEBUG_GLYPH_CACHE CPPFLAGS=-DSK_DEBUG_GLYPH_CACHE ./gyp_skia

ninja -C out/Debug dm
out/Debug/dm

Review URL: https://codereview.chromium.org/989683002
kGlyphCache.cpp
91fd7371ec80724ec53aae8f2d5a6753499d8963 06-Mar-2015 mtklein <mtklein@chromium.org> SKPMFloat: we can beat the naive loops when clamping

Clamping 4 at a time is now about 15% faster than 1 at a time with SSSE3.
Clamping 4 at a time is now about 20% faster with SSE2,
and this applies to non-clamping too (we still just clamp there).

In all cases, 4 at a time is never worse than 1 at a time,
and not clamping is never slower than clamping.

Here's all the bench results, with the numbers for portable code as a fun point
of reference:

SSSE3:
maxrss loops min median mean max stddev samples config bench
10M 2291 4.66ns 4.66ns 4.66ns 4.68ns 0% ▆█▁▁▁▇▁▇▁▃ nonrendering SkPMFloat_get_1x
10M 2040 5.29ns 5.3ns 5.3ns 5.32ns 0% ▃▆▃▃▁▁▆▃▃█ nonrendering SkPMFloat_clamp_1x
10M 7175 4.62ns 4.62ns 4.62ns 4.63ns 0% ▁▄▃████▃▄▇ nonrendering SkPMFloat_get_4x
10M 5801 4.89ns 4.89ns 4.89ns 4.91ns 0% █▂▄▃▁▃▄█▁▁ nonrendering SkPMFloat_clamp_4x

SSE2:
maxrss loops min median mean max stddev samples config bench
10M 1601 6.02ns 6.05ns 6.04ns 6.08ns 0% █▅▄▅▄▂▁▂▂▂ nonrendering SkPMFloat_get_1x
10M 2918 6.05ns 6.06ns 6.05ns 6.06ns 0% ▂▇▁▇▇▁▇█▇▂ nonrendering SkPMFloat_clamp_1x
10M 3569 5.43ns 5.45ns 5.44ns 5.45ns 0% ▄█▂██▇▁▁▇▇ nonrendering SkPMFloat_get_4x
10M 4168 5.43ns 5.43ns 5.43ns 5.44ns 0% █▄▇▁▇▄▁▁▁▁ nonrendering SkPMFloat_clamp_4x

Portable:
maxrss loops min median mean max stddev samples config bench
10M 500 27.8ns 28.1ns 28ns 28.2ns 0% ▃█▆▃▇▃▆▁▇▂ nonrendering SkPMFloat_get_1x
10M 770 40.1ns 40.2ns 40.2ns 40.3ns 0% ▅▁▃▂▆▄█▂▅▂ nonrendering SkPMFloat_clamp_1x
10M 1269 28.4ns 28.8ns 29.1ns 32.7ns 4% ▂▂▂█▂▁▁▂▁▁ nonrendering SkPMFloat_get_4x
10M 1439 40.2ns 40.4ns 40.4ns 40.5ns 0% ▆▆▆█▁▆▅█▅▆ nonrendering SkPMFloat_clamp_4x

SkPMFloat_neon.h is still one big TODO as far as 4-at-a-time APIs go.

BUG=skia:

Review URL: https://codereview.chromium.org/982123002
kPMFloat.h
a0865b4620cc614586a5c02f258da2436ed3ab2b 05-Mar-2015 joshualitt <joshualitt@google.com> Revert of Update SkPicture cull rects with RTree information (patchset #6 id:140001 of https://codereview.chromium.org/971803002/)

Reason for revert:
Might be breaking deps roll

Original issue's description:
> Update SkPicture cull rects with RTree information
>
> When computed, the RTree for an SkPicture will have a root
> bounds that reflects the best bounding information available,
> rather than the best estimate at the time the picture recorder
> is created. Given that creators frequently don't know ahead of
> time what will be drawn, the RTree bound is often tighter.
>
> Perf testing on Chrome indicates a small raster performance
> advantage. For upcoming painting changes in Chrome the
> performance advantage is much larger.
>
> BUG=
>
> Committed: https://skia.googlesource.com/skia/+/2dd3b6647dc726f36fd8774b3d0d2e83b493aeac

TBR=mtklein@google.com,schenney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/977413003
kBBoxHierarchy.h
kPictureRecorder.cpp
kRTree.cpp
kRTree.h
kRecordDraw.cpp
c1e97b372e21edf9c7e45cfea0eca7f1a52fe9e5 05-Mar-2015 herb <herb@google.com> Fix uninitialized memory bug in the SkGlyphCache.

The core of the problem is that the system is asked to lookup the metrics for a character with id == 0. This causes a hit in the fCharToGlyphHash matching the sentinel glyph. This happens because fCharToGlpyhHash is initialized with all zeros, therefore, the fID is zero matching the char with id == 0. The fAdvanceX field of the sentinel glyph is in fact not initialized.

The bigger question is now did a zero character get passed to getUnicharMetrics?

The breaking code is basically as follows:
wchar_t glyph = L'S';
paint.measureText(&glyph, 2);

This get mischaracterized as a utf8 string instead of a utf16(?) string. Because of the little endian ordering, this is the character string 'L' '\0'. Since the size of the original string is two bytes (but a single character) the '\0' is treated as its own character and past to getUnicharMetrics.

TEST:
On windows failed using DrMemory. With this change does not fail.

BUG=463204

Review URL: https://codereview.chromium.org/977063002
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
548bf38b28986fab6770350b72247d7114d98184 05-Mar-2015 mtklein <mtklein@chromium.org> 4-at-a-time SkPMColor -> SkPMFloat API.

Please see if this looks usable. It may even give a perf boost if you use it, even without custom implementations for each instruction set.

I've been trying this morning to beat this naive loop implementation, but so far no luck with either _SSE2.h or _SSSE3.h. It's possible this is an artifact of the microbenchmark, because we're not doing anything between the conversions. I'd like to see how this fits into real code, what assembly's generated, what the hot spots are, etc.

I've updated the tests to test these new APIs, and splintered off a pair of new benchmarks that use the new APIs. This required some minor rejiggering in the benches.

BUG=skia:

Review URL: https://codereview.chromium.org/978213003
kPMFloat.h
2dd3b6647dc726f36fd8774b3d0d2e83b493aeac 05-Mar-2015 schenney <schenney@chromium.org> Update SkPicture cull rects with RTree information

When computed, the RTree for an SkPicture will have a root
bounds that reflects the best bounding information available,
rather than the best estimate at the time the picture recorder
is created. Given that creators frequently don't know ahead of
time what will be drawn, the RTree bound is often tighter.

Perf testing on Chrome indicates a small raster performance
advantage. For upcoming painting changes in Chrome the
performance advantage is much larger.

BUG=

Review URL: https://codereview.chromium.org/971803002
kBBoxHierarchy.h
kPictureRecorder.cpp
kRTree.cpp
kRTree.h
kRecordDraw.cpp
dc812222a7488d2a0e39b4a09c81c9f000d4b869 05-Mar-2015 reed <reed@google.com> add impl limit for number of leaf-nodes in composecolorfilter

BUG=skia:

Review URL: https://codereview.chromium.org/972153010
kColorFilter.cpp
a9baa652bb329b5a286e1638938f63433701efca 05-Mar-2015 kkinnunen <kkinnunen@nvidia.com> Revert of Add image as a draw type that can be filtered (patchset #4 id:60001 of https://codereview.chromium.org/960783003/)

Reason for revert:
Fails on mac for some reason.
Also is a bit wrong, but this should not be reason for the failure..

Original issue's description:
> Add image as a draw type that can be filtered
>
> Add image as a draw type that can be filtered.
>
> This is needed when SkImage is added as an object to be drawn so that
> the draw is forwarded to SkBaseDevice. This would be used in making
> filters use SkImages.
>
> BUG=skia:3388
>
> Committed: https://skia.googlesource.com/skia/+/fa77eb1e51b9317ff993d1be504ada173b561e5f

TBR=reed@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3388

Review URL: https://codereview.chromium.org/980273002
kCanvas.cpp
fa77eb1e51b9317ff993d1be504ada173b561e5f 05-Mar-2015 kkinnunen <kkinnunen@nvidia.com> Add image as a draw type that can be filtered

Add image as a draw type that can be filtered.

This is needed when SkImage is added as an object to be drawn so that
the draw is forwarded to SkBaseDevice. This would be used in making
filters use SkImages.

BUG=skia:3388

Review URL: https://codereview.chromium.org/960783003
kCanvas.cpp
c877a71b35bd27c46cb525c597b9a1aa006af182 05-Mar-2015 msarett <msarett@google.com> 4x library for NEON

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/975303003
k4x.h
k4x_neon.h
4e644f5d5020a6ec904734a3f521bfad173cb450 04-Mar-2015 mtklein <mtklein@chromium.org> Update SkPMFloat API a bit.

Instead of set(SkPMColor), add a constructor SkPMFloat(SkPMColor).
Replace setA(), setR(), etc. with a 4 float constructor.

And, promise to stick to SkPMColor order.

BUG=skia:

Review URL: https://codereview.chromium.org/977773002
kPMFloat.h
85d5eb92940868baf8f6962dffe8ed28caa62d0d 04-Mar-2015 fmalita <fmalita@chromium.org> Pass blob bounds to the looper, if available

R=robertphillips@google.com,reed@google.com

Review URL: https://codereview.chromium.org/979943002
kCanvas.cpp
8c7ba092a68836c5db95c2a80b74d4f9cb475cc2 04-Mar-2015 mtklein <mtklein@chromium.org> Add SSSE3 implementation for SkPMFloat, with faster get() and set().

With SSSE3, we can use the Swiss Army Knife byte shuffler pshufb,
a.k.a. _mm_shuffle_epi8(), to jump directly between 32 and 128 bits.

In microbench isolation, this looks like an additional 10-15% speedup:

SkPMFloat_get: 2.35ns -> 1.98ns
SkPMFloat_clamp: 2.35ns -> 2.18ns

Before this CL, get() and clamp() were identical code. The _get benchmark improves because both set() and get() become faster; the _clamp benchmark shows the improvement from set() getting faster with clamp() staying the same.

BUG=skia:

Review URL: https://codereview.chromium.org/976493002
kPMFloat.h
024f996c1daac32ecad1f9ffec15f0e54fb207f4 04-Mar-2015 fmalita <fmalita@chromium.org> Text blob run paints should be filtered.

We're constructing blob run paints after the canvas draw filter has been
applied.

Instead, we need do defer text blob draw filters until we have access
to the full run paints.

BUG=skia:3494
R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/973973003
kCanvas.cpp
kDevice.cpp
0aebf5d0d3a2aef38a71885c85303583fdeaad57 03-Mar-2015 mtklein <mtklein@chromium.org> Test and fix SkPMFloat rounding.

SSE rounds for free (that was a happy accident: they also have a truncating version).
NEON does not, nor obviously the portable code, so they add 0.5 before truncating.

NOPRESUBMIT=true

BUG=skia:

Review URL: https://codereview.chromium.org/974643002
kPMFloat.h
60d2a32b2dbbaabf4a0c133c8d3ff5ad888b8e5e 03-Mar-2015 mtklein <mtklein@chromium.org> Make SkPMFloats store floats in [0,255] instead of [0,1].

This pushes the cost of the *255 and *1/255 conversions onto only those code
paths that need it. We're not doing it any more efficiently than can be done
with Sk4f.

In microbenchmark isolation, this is about a 15% speedup.

BUG=skia:
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/973603002
kPMFloat.h
cff10b21a9934afc540d121b493b204335829589 03-Mar-2015 reed <reed@google.com> change colorfilter to return an array of frag processors

BUG=skia:

Review URL: https://codereview.chromium.org/973593002
kColorFilter.cpp
7ab42771859145884e1b28c8c45f0a5a728b22ac 02-Mar-2015 mtklein <mtklein@chromium.org> Don't guarantee any particular color order for SkPMFloat. Hide fColor.

Also add a little note that get() may incidentally clamp.

BUG=skia:

Review URL: https://codereview.chromium.org/973553004
kPMFloat.h
8a8d841d485ff36b64d838575eb3735c1ddcf929 02-Mar-2015 reed <reed@google.com> add virtuals to optimize composing colorfilters

BUG=skia:

Review URL: https://codereview.chromium.org/968993004
kColorFilter.cpp
b421650e13faa2b77d29b018e78ab07ff693ca32 02-Mar-2015 caryclark <caryclark@google.com> add double precision convex test

BUG=389050

Review URL: https://codereview.chromium.org/975523002
kPath.cpp
5ccef577902ce1aefa05fb8107ad5d0aba848e7d 02-Mar-2015 caryclark <caryclark@google.com> treat backwards quads as not convex

If a quad, cubic, or conic goes back on itself, assume it's not convex.
In a future CL, we could check to see if the curve is linear so that
linear curves are treated the same as lines.

BUG=skia:3469

Review URL: https://codereview.chromium.org/971773002
kPath.cpp
db873d8677a2d4ecfe38a794a5d868301bdeeabe 02-Mar-2015 reed <reed@chromium.org> add compose-colorfilter

now with serialization registration

This reverts commit 5bd055c0386499f2dc8c66173a7534b75af602bf.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/970753002
kColorFilter.cpp
5bd055c0386499f2dc8c66173a7534b75af602bf 02-Mar-2015 reed <reed@chromium.org> Revert of add compose-colorfilter (patchset #2 id:20001 of https://codereview.chromium.org/969673002/)

Reason for revert:
need to register subclass for serialization

Original issue's description:
> add compose-colorfilter
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b675a73c1f3f4a433c4893199a0bd11126dfe130

TBR=fmalita@chromium.org,bsalomon@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/971653002
kColorFilter.cpp
b675a73c1f3f4a433c4893199a0bd11126dfe130 02-Mar-2015 reed <reed@chromium.org> add compose-colorfilter

BUG=skia:

Review URL: https://codereview.chromium.org/969673002
kColorFilter.cpp
394ce76992e2e8349af64ab99d6e2e702bae735d 27-Feb-2015 halcanary <halcanary@google.com> Flate: skia_alloc_func works on both miniz and zlib

Also, Revert "Revert of Flate: fix valgrind miniz
Conditional-jump-or-move-depends... error"

This reverts commit 6dc4ef01a656a9f7c3087eec2ff5142c707ceb7f.

The alloc functions really do have different types depending
on zlib implementation.

CQ_INCLUDE_TRYBOTS=client.skia:Linux Builder-Trybot

Review URL: https://codereview.chromium.org/963853002
kFlate.cpp
6dc4ef01a656a9f7c3087eec2ff5142c707ceb7f 27-Feb-2015 schenney <schenney@chromium.org> Revert of Flate: fix valgrind miniz Conditional-jump-or-move-depends... error (patchset #2 id:20001 of https://codereview.chromium.org/964933003/)

Reason for revert:
Breaks the chrome build.

../../third_party/skia/src/core/SkFlate.cpp:37:22: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
flateData.zalloc = &skia_alloc_func;
^ ~~~~~~~~~~~~~~~~
../../third_party/skia/src/core/SkFlate.cpp:180:28: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
fImpl->fZStream.zalloc = &skia_alloc_func;

Original issue's description:
> Flate: fix valgrind miniz Conditional-jump-or-move-depends... error
>
> Committed: https://skia.googlesource.com/skia/+/e0638f8ecfb609c89cab1aa8b498ad3f368b89d3

TBR=mtklein@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/964953002
kFlate.cpp
e0638f8ecfb609c89cab1aa8b498ad3f368b89d3 27-Feb-2015 halcanary <halcanary@google.com> Flate: fix valgrind miniz Conditional-jump-or-move-depends... error

Review URL: https://codereview.chromium.org/964933003
kFlate.cpp
44977485bdac75c055c3fa638f118874ccd2d22f 27-Feb-2015 reed <reed@google.com> Revert of Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #1 id:1 of https://codereview.chromium.org/966753002/)

Reason for revert:
Android has been updated, so we can re-land this.

Original issue's description:
> Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)
>
> Reason for revert:
> This breaks Android framework build. See
>
> https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantisg-userdebug/1759130/7f0fcdbf3c0d47530d770a15c912298dac20dd7d90a01de63ecb9ba16c96b25c/logs/build_error.log?Expires=1425047630&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Signature=BHPS1lffyH7WykwyEw5RXVVXWqQK5rab%2B6Pl1VaUrTlmWT%2FXb6fq%2FBe22AUDZYFPG24MBR%2F2IzIDzTqH3mihQS9wIkcKJ4kJpA2G%2BI3l8jCX20brZSr3bsDSx%2F4wsLwU1bBpIxI%2FbrauoPRqddbXP8sNI1l51u6ZCxpvRQms9Mc%3D
>
> We need to stop them from using kIgnore before we can reland this.
>
> Original issue's description:
> > replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86
>
> TBR=reed@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/574290f61a47bd1ce1f9e2d941533bda9c8f03fe

TBR=reed@chromium.org,scroggo@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/966853002
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kImageInfo.cpp
a9061de9ff8d5b9545e5d1ef7a6e4054e1907c95 27-Feb-2015 robertphillips <robertphillips@google.com> Add rewind capability to SkChunkAlloc

Split off from https://codereview.chromium.org/940533003/ (Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBuffer)

Review URL: https://codereview.chromium.org/967553003
kChunkAlloc.cpp
e70de9e4f0b7bf73f7cd1a20dbabcb233ffbb7f1 27-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.

Perf Reports
bin/c --match nytimes --config 8888
desk_nytimes.skp_1_mpd 1.41ms -> 1.38ms 0.98x
desk_nytimes.skp_1 1.94ms -> 1.87ms 0.97x

bin/c --match nytimes --config gpu
desk_nytimes.skp_1_mpd 1.63ms -> 1.59ms 0.97x
desk_nytimes.skp_1 1.56ms -> 1.5ms 0.97x

Here are results from mac instruments:
--match nytimes --config gpu --samples 10000 --skps /Users/herb/src/skia/skps

Inline:
Total Samples Running Time Self Symbol Name
94335 94335.0ms 98.3% 0.0 start
2365 2365.0ms 2.4% 2365.0 SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
975 975.0ms 1.0% 975.0 SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

Clean:
Total Samples Running Time Self Symbol Name
96833 96833.0ms 97.3% 0.0 start
3418 3418.0ms 3.4% 3418.0 SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
1961 1961.0ms 1.9% 1961.0 SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

Review URL: https://codereview.chromium.org/885903002
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
574290f61a47bd1ce1f9e2d941533bda9c8f03fe 27-Feb-2015 scroggo <scroggo@google.com> Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)

Reason for revert:
This breaks Android framework build. See

https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantisg-userdebug/1759130/7f0fcdbf3c0d47530d770a15c912298dac20dd7d90a01de63ecb9ba16c96b25c/logs/build_error.log?Expires=1425047630&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Signature=BHPS1lffyH7WykwyEw5RXVVXWqQK5rab%2B6Pl1VaUrTlmWT%2FXb6fq%2FBe22AUDZYFPG24MBR%2F2IzIDzTqH3mihQS9wIkcKJ4kJpA2G%2BI3l8jCX20brZSr3bsDSx%2F4wsLwU1bBpIxI%2FbrauoPRqddbXP8sNI1l51u6ZCxpvRQms9Mc%3D

We need to stop them from using kIgnore before we can reland this.

Original issue's description:
> replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86

TBR=reed@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/966753002
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kImageInfo.cpp
1c8aeeaebce9675197be31bd769e8ffa2531bf86 27-Feb-2015 reed <reed@chromium.org> replace kIgnore_SkAlphaType with kUnknown_SkAlphaType

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/964613002
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kImageInfo.cpp
e6cf9cb68511ff08156f834859db39232eb37be8 26-Feb-2015 mtklein <mtklein@chromium.org> miniz support in SkFlate / PDF
- Adds miniz.c v115_r4 (latest release) to third_party.
- Merges SkDeflateWStream into SkFlate so including "miniz.c" links
without duplicating symbols.

The only interesting code change I've made is to remove the line
fImpl->fZStream.data_type = Z_BINARY;
from SkDeflateWStream::SkDeflateWStream(). miniz doesn't have Z_BINARY
defined, and as far as I can tell, both zlib and miniz ignore data_type.

We should be able to swap skflate.gyp's dependency between zlib.gyp:zlib and
zlib.gyp:miniz at will (except of course on Windows) if we're interested in
zlib itself. I've left android framework on its own zlib. I think this all
means we can stop defining SK_NO_FLATE on Windows.

I'll leave the possible cleanup of SK_NO_FLATE itself for another time. Might
be we always want to keep this dependency optional.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win8-ShuttleA-HD7770-x86-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/957323003
kFlate.cpp
kFlate.h
24aa0f0679d5299b394bcb62b1c4430e4cd34c65 26-Feb-2015 mtklein <mtklein@chromium.org> Add sqrt() and rsqrt() to Sk4f.

This doesn't add them to the second-stringer Sk4i. It's unclear we should be
doing that often, and we don't have efficient ways to do it except via floats.

BUG=skia:

Review URL: https://codereview.chromium.org/964603002
k4x.h
k4x_portable.h
k4x_sse.h
2719552fb1469b9697a3ee8b15a537044fa6dd96 26-Feb-2015 mtklein <mtklein@chromium.org> Think implicit promotion is a good idea?

Things like foo.multiply(Sk4f(t,t,t,t)) can just be foo.multiply(t).

BUG=skia:

Review URL: https://codereview.chromium.org/960773005
k4x.h
k4x_portable.h
k4x_sse.h
aae1a26039b52e2b47063b166e40e6c41feb24db 26-Feb-2015 humper <humper@google.com> remove unnecessary and confusing error message from scaler
(also fix whitespace)

BUG=skia:

Review URL: https://codereview.chromium.org/958013004
kBitmapScaler.cpp
870b9ea38672276a3e8506a0101dc559fa04583a 26-Feb-2015 mtklein <mtklein@chromium.org> add auto SkPMFloat <-> Sk4f conversion

BUG=skia:

Review URL: https://codereview.chromium.org/954323002
kPMFloat.h
e76161458afe25d987b97bf1ed40b03cdf2d7060 26-Feb-2015 mtklein <mtklein@chromium.org> Spin off some fixes to land right away.

BUG=skia:

Review URL: https://codereview.chromium.org/960023002
k4x_sse.h
kPMFloat.h
f47e70712b964b5360a3fec9e5e84bb594fc1f02 26-Feb-2015 fmalita <fmalita@chromium.org> Revert of Use an image generator to back SkPictureShader tiles. (patchset #4 id:60001 of https://codereview.chromium.org/866773002/)

Reason for revert:
TSAN troubles.

Original issue's description:
> Use an image generator to back SkPictureShader tiles.
>
> To avoid lifetime issues for tiles backed by discardable memory, use an
> image generator to re-generate them on the fly.
>
> With this CL, we are now caching bitmap shaders wrapping discardable
> pixel ref bitmaps backed by picture image generators.
>
> (the CL also includes some minor/unrelated SkPictureShader cleanup)
>
> BUG=skia:3220
> R=reed@google.com,halcanary@google.com
>
> Committed: https://skia.googlesource.com/skia/+/4739955e98ba86900a5bbac0e3661601427a54d4

TBR=reed@google.com,halcanary@google.com,mtklein@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3220

Review URL: https://codereview.chromium.org/956143002
kPictureShader.cpp
kPictureShader.h
5f5a8d7599b8e248633ac122294b7a01401fedcb 25-Feb-2015 joshualitt <joshualitt@chromium.org> adding preabandon flag to DM

BUG=skia:

Review URL: https://codereview.chromium.org/929243004
kCanvas.cpp
570d2f81a65fc868d6300a7edf34c0d5d048c5d6 25-Feb-2015 joshualitt <joshualitt@chromium.org> I'd really like to land this before the branch so speedy reviews are appreciated.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336

Review URL: https://codereview.chromium.org/936943002
kImageFilter.cpp
kMaskFilter.cpp
2907059d0eb1972a300ea1bf0cd4e4febabb9784 25-Feb-2015 joshualitt <joshualitt@google.com> Revert of Pass clip to context (patchset #8 id:180001 of https://codereview.chromium.org/936943002/)

Reason for revert:
Strange blur problems on nexus 5

Original issue's description:
> I'd really like to land this before the branch so speedy reviews are appreciated.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336

TBR=jvanverth@google.com,senorblanco@google.com,bsalomon@google.com,senorblanco@chromium.org,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/956083002
kImageFilter.cpp
kMaskFilter.cpp
edeccc58606e0421a1ae275e391ee4347c6f52f6 25-Feb-2015 mtklein <mtklein@chromium.org> Clean up ColorRectProc plumbing.

We've always been using the portable ColorRect32, so we don't need the
ColorRectProc plumbing.

Furthermore, ColorRect32 doesn't seem to be very important (we're only using
it in the opaque case, which our row-by-row procs already specialize for).
Remove that too.

If we find we want specialization for really narrow rects again, let's put it in
blitRect() directly. It's pretty unlikely we're going to get platform-specific
speedup for blits to non-contiguous memory.

My local SKP comparison is +- 3%... most neutral I've ever seen.

BUG=skia:

Review URL: https://codereview.chromium.org/959873002
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
59c9203321cf4afb48597f39e4bdd4ae91da12a0 25-Feb-2015 mtklein <mtklein@chromium.org> Fix the race to set the new gen ID.

There's a small window where two threads can both see the gen ID is zero,
both go get new distinct genIDs, but race to write them.

This now uses compare_exchange to read and leave the winner's ID in place
when there's a race.

SkAtomics isn't public.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/956013002
kPixelRef.cpp
edeb7a97aded2107fd6a25562e1bb7fdcb96c958 25-Feb-2015 bungeman <bungeman@google.com> Remove SK_USE_LEGACY_AA_COVERAGE guarded code.

It doesn't appear anyone uses this flag anymore.

Review URL: https://codereview.chromium.org/943053004
kScan_AntiPath.cpp
kScan_Path.cpp
586d5d640b19860dfbbd903a5188da1bbbe87336 25-Feb-2015 joshualitt <joshualitt@chromium.org> I'd really like to land this before the branch so speedy reviews are appreciated.

BUG=skia:

Review URL: https://codereview.chromium.org/936943002
kImageFilter.cpp
kMaskFilter.cpp
63d0024cde57eba4f7802fdc4fe49467867f52ba 25-Feb-2015 mtklein <mtklein@chromium.org> Steal a bit from the gen ID instead of managing two atomic values.

This extra atomic bool is hard to think about, and I'm worried about how
updates to fGenerationID and fUniqueGenerationID interlace. By storing
them in the same int, they can't ever race.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/955043002
kPixelRef.cpp
63c684a8a609d39da11b4a656223cebf52ca85dc 25-Feb-2015 caryclark <caryclark@google.com> fuzzer fixes

Fix path bugs exposed by the path fuzzer.

Changes to existing gm and samplecode files defer their calls to construct
SkPath objects until the first draw instead of at test initialization.

Add an experimental call to SkPath to validate the internal SkPathRef.

Fix SkPath::addPoly to set the last moveto after adding a close verb.

Fix stroke to handle failures when computing the unit normal.

Add a unit test for the unit normal failure.

R=reed@google.com

Review URL: https://codereview.chromium.org/953383002
kPath.cpp
kStroke.cpp
61010772e59638ff97acb3200a4ec88aa55037a6 25-Feb-2015 mtklein <mtklein@google.com> Revert of fAddedToCache doesn't need to be atomic. (patchset #1 id:1 of https://codereview.chromium.org/960573002/)

Reason for revert:
Yes it does. notifyAddedToCache() must be thread-safe.

Original issue's description:
> fAddedToCache doesn't need to be atomic.
>
> It's only ever read or set from non-threadsafe methods.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fbe0edfec4fed2a09e12b049d527d280f16e75b3

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/959763002
kPixelRef.cpp
fbe0edfec4fed2a09e12b049d527d280f16e75b3 25-Feb-2015 mtklein <mtklein@chromium.org> fAddedToCache doesn't need to be atomic.

It's only ever read or set from non-threadsafe methods.

BUG=skia:

Review URL: https://codereview.chromium.org/960573002
kPixelRef.cpp
83787d0ff0a2b2f839a4a3ce6dadd033f83fe643 25-Feb-2015 reed <reed@google.com> only notify bitmaps that have been added to the cache

old code:
- calls=2677 hit-rate=3.51139%

new code:
- calls=94 hit-rate=97.8723%

BUG=skia:

Review URL: https://codereview.chromium.org/960563002
kBitmapCache.cpp
kBitmapCache.h
kPixelRef.cpp
kResourceCache.cpp
b69d0e0ac45e13f667bc11a937dcb547072bc93d 25-Feb-2015 herb <herb@google.com> BUG=skia:

(mtklein from here on)
No public API changes.
TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15

Review URL: https://codereview.chromium.org/939123002
kDraw.cpp
kGlyph.h
kGlyphCache.cpp
kScalerContext.cpp
kScalerContext.h
5a23a14b1fbc7503bdeff83e4b45ae7c258c6e96 25-Feb-2015 egdaniel <egdaniel@google.com> Fix to check for inf when generating quadratic points

BUG=skia:3453

Review URL: https://codereview.chromium.org/948043003
kPoint.cpp
86821b56704ebc0a1a6d1e5d1e329369ac797c98 24-Feb-2015 mtklein <mtklein@chromium.org> SkTRacy<T> -> SkAtomic<T>

Like SkTRacy<T>, TSAN will not complain about these. Unlike SkTRacy<T>, TSAN
should not complain about these: SkAtomic<T> are threadsafe.

This should fix the races now suppressed in TSAN. As written, the memory
barriers we're using in SkPixelRef will be dumb but safe (really, dumbest
possible but safest possible). If we see a perf hit, we can follow up by
putting Ben and I in a room for a while, thinking about it really hard, and
using the minimum-strength safe memory barriers.

A refactor that steals a bit from the genID would also still be possible with
this approach.

BUG=chromium:437511

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot

Review URL: https://codereview.chromium.org/955803002
kPixelRef.cpp
7eeba2587760a0802fd2b90765b4fd0e5e895375 24-Feb-2015 reed <reed@chromium.org> Notify resource caches when pixelref genID goes stale

patch from issue 954443002 at patchset 40001 (http://crrev.com/954443002#ps40001)

BUG=skia:

Review URL: https://codereview.chromium.org/950363002
kBitmapCache.cpp
kBitmapCache.h
kMaskCache.cpp
kPictureShader.cpp
kPixelRef.cpp
kResourceCache.cpp
kResourceCache.h
kYUVPlanesCache.cpp
4739955e98ba86900a5bbac0e3661601427a54d4 24-Feb-2015 fmalita <fmalita@chromium.org> Use an image generator to back SkPictureShader tiles.

To avoid lifetime issues for tiles backed by discardable memory, use an
image generator to re-generate them on the fly.

With this CL, we are now caching bitmap shaders wrapping discardable
pixel ref bitmaps backed by picture image generators.

(the CL also includes some minor/unrelated SkPictureShader cleanup)

BUG=skia:3220
R=reed@google.com,halcanary@google.com

Review URL: https://codereview.chromium.org/866773002
kPictureShader.cpp
kPictureShader.h
fe1b180bee3f254cb74b5cb2ae383050fc316937 24-Feb-2015 robertphillips <robertphillips@google.com> Fix radii scaling bug in SkRRect::setNinePatch

BUG=skia:3466

Review URL: https://codereview.chromium.org/951323004
kRRect.cpp
e59bbf1cd5dcce66181083821c43a157998bc78b 24-Feb-2015 scroggo <scroggo@google.com> Revert of Make fID and MixedID calculations private (patchset #5 id:80001 of https://codereview.chromium.org/939123002/)

Reason for revert:
This actually *does* change the public API - fID is now private, and it was being used on Android. See https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantis-userdebug/1751533/5242b865d3e9bebc650c9b326dfa9d68c8bd1f59562bf32b85301fb984dc8b26/logs/build.log?Signature=Q0el9M4kTu1KQ8u02KX9TH1Pa22y9BkDK1IW%2B9OeJJNfrDEVzLXAz0XQ%2BHHQM8xVjft06jZJva1V8InZmgjcOk6PdZQbQW6XwwsHLKsbpbAE48iTWH3AlJAAoTtj9cifzgeHW8g80IcVxwHXmINRER%2BLPz3eHGisgfTTFUoWYCc%3D&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Expires=1424786471 :

In file included from frameworks/base/libs/hwui/tests/../font/Font.cpp:26:0:
external/skia/src/core/SkGlyph.h: In member function 'android::uirenderer::CachedGlyphInfo* android::uirenderer::Font::cacheGlyph(const SkPaint*, glyph_t, bool)':
external/skia/src/core/SkGlyph.h:157:17: error: 'uint32_t SkGlyph::fID' is private
uint32_t fID;
^
frameworks/base/libs/hwui/tests/../font/Font.cpp:482:39: error: within this context
newGlyph->mGlyphIndex = skiaGlyph.fID;

We need to update Android in order to hide fID.

Original issue's description:
> BUG=skia:
>
> (mtklein from here on)
> No public API changes.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15

TBR=mtklein@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/951353002
kDraw.cpp
kGlyph.h
kGlyphCache.cpp
kScalerContext.cpp
kScalerContext.h
1297ecfd1d1efaeee41153e491b160228ba4345a 24-Feb-2015 caryclark <caryclark@google.com> flip stroke to chrome compatible define

Review URL: https://codereview.chromium.org/932723003
kStroke.cpp
kStroke.h
kStrokeRec.cpp
f8d24e2c0c7b44b7ccf20e40890514db4cde7b15 24-Feb-2015 herb <herb@google.com> BUG=skia:

(mtklein from here on)
No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/939123002
kDraw.cpp
kGlyph.h
kGlyphCache.cpp
kScalerContext.cpp
kScalerContext.h
44701df5ce572ac3cccec785cf52103d3d5d14a5 23-Feb-2015 joshualitt <joshualitt@chromium.org> Move clip off of draw target

BUG=skia:

Review URL: https://codereview.chromium.org/947443003
kRect.cpp
6df8e3495a677a5df2476d2ff3bbe878fd178e4b 23-Feb-2015 caryclark <caryclark@google.com> break out of cubic stroker loop on degenerate case

The looper can generate more than one quad, but if any one is degenerate,
give up, but not before generating the state for the line join to
produce the correct end.

Before, the early return allowed the inside path to contain multiple
movetos that caused reversePath to assert.

R=reed@google.com

Review URL: https://codereview.chromium.org/948043002
kStroke.cpp
7af21501a61886cac94f0bd5e1c14be2dce9ae63 23-Feb-2015 halcanary <halcanary@google.com> SkStream: Add SkDynamicMemoryWStream::writeToStream(SkWStream*)

Review URL: https://codereview.chromium.org/943423002
kStream.cpp
b8de1f46594c3cd9c537f0b128c6d6eb30a9f463 23-Feb-2015 robertphillips <robertphillips@google.com> Reset conicWeights in SkPath::consumeDegenerateSegments when rewinding to last Move op

Without this patch the iterator can end up running off the end of the conic weights if there is a mixture of degenerate and non-degenerate ops

Note: we might want to suppress the generation of degenerate conics and lines in SkPath::addRRect

BUG=459897

Review URL: https://codereview.chromium.org/954453003
kPath.cpp
1a9600f2537ad62e85529801a634167f2913bc24 23-Feb-2015 bsalomon <bsalomon@google.com> Make STDPQueue::at() available in all builds.

Review URL: https://codereview.chromium.org/955433003
kTDPQueue.h
a2f4be76a9d453f1fdfd55b0cec6a683f23ffe0f 23-Feb-2015 mtklein <mtklein@chromium.org> Sketch SkPMFloat

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/50d2b3114b3e59dc84811881591bf25b2c1ecb9f

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon-Trybot

http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon/builds/2120/steps/build%20most/logs/stdio

Review URL: https://codereview.chromium.org/936633002
kPMFloat.h
088302756bde25083d6712b18dcd24644d4dcdbb 23-Feb-2015 mtklein <mtklein@google.com> Revert of Sketch SkPMFloat (patchset #15 id:270001 of https://codereview.chromium.org/936633002/)

Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon/builds/2120/steps/build%20most/logs/stdio

Original issue's description:
> Sketch SkPMFloat
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/50d2b3114b3e59dc84811881591bf25b2c1ecb9f

TBR=reed@google.com,msarrett@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/952453004
kPMFloat.h
50d2b3114b3e59dc84811881591bf25b2c1ecb9f 23-Feb-2015 mtklein <mtklein@chromium.org> Sketch SkPMFloat

BUG=skia:

Review URL: https://codereview.chromium.org/936633002
kPMFloat.h
7be2eb89cc85fc9fc05814957d152f3d20613657 23-Feb-2015 bungeman <bungeman@google.com> Remove SkFontHost includes and friends.

SkFontHost no longer exists as a class, so remove the includes and stop
making it a friend.

Review URL: https://codereview.chromium.org/943333004
kTypeface.cpp
abcfab4d68d53900ef33320bb2622696c14d14b0 23-Feb-2015 kkinnunen <kkinnunen@nvidia.com> Swap render target instead of creating a new gpu device for surface copy-on-write

Swap render target of the gpu device instead of creating a new gpu
device when making a copy-on-write upon surface modification.

This removes the SkCanvas::setRootDevice which contains problematic code
when trying to increase the use of SkImages internally in Skia.

BUG=skia:3388

Review URL: https://codereview.chromium.org/925343002
kCanvas.cpp
96d68b704626fe3543ea14a48b4f909519644b54 20-Feb-2015 mtklein <mtklein@chromium.org> Make SkPixelRef::isLocked() debug-only, remove related dead code.

DM's okay locally with no diffs, no failures.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/8e65712486c66108677a9b0a55ad3e7ca94db555

Review URL: https://codereview.chromium.org/940083002
kBitmapProcState.cpp
kPixelRef.cpp
2aa1f7e6799501974532d35c1f6c3a0447121b95 20-Feb-2015 mtklein <mtklein@chromium.org> Port GrGLCaps over to use SkTHash.

I've written some new hashtable interfaces that should be easier to use,
and I've been trying to roll them out bit by bit, hopefully replacing
SkTDynamicHash, SkTMultiMap, SkTHashCache, etc.

This turns the cache in GrGLCaps::readPixelsSupported() into an SkTHashMap,
mapping the format key to a bool. Functionally, it's the same.

BUG=skia:

Review URL: https://codereview.chromium.org/948473002
kTHash.h
kTHashCache.h
04e4d08556750ff6be4576a4cd4925964c63376f 20-Feb-2015 caryclark <caryclark@google.com> This uses quad approximations of the outer and inner paths describing a stroke. Cubics and conics' thick strokes are approximated with quads as well.

The approximation uses a similar error term as the fill scan converter to determine the number of quads to use.

This also updates SampleApp QuadStroker test with conics, ovals, and stroked text.

Review URL: https://codereview.chromium.org/932113002
kStroke.cpp
kStroke.h
kStrokeRec.cpp
b92b706dfdd68958f0fec76f8f5e0b7590798907 20-Feb-2015 reed <reed@chromium.org> Revert of Make SkPixelRef::isLocked() debug-only, remove related dead code. (patchset #1 id:1 of https://codereview.chromium.org/940083002/)

Reason for revert:
Broke callers in chrome

../../skia/ext/platform_canvas_unittest.cc:421:56: error: no member named 'isLocked' in 'SkPixelRef'
EXPECT_TRUE(platform_bitmap->GetBitmap().pixelRef()->isLocked());

Original issue's description:
> Make SkPixelRef::isLocked() debug-only, remove related dead code.
>
> DM's okay locally with no diffs, no failures.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/8e65712486c66108677a9b0a55ad3e7ca94db555

TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/940323003
kBitmapProcState.cpp
kPixelRef.cpp
8e65712486c66108677a9b0a55ad3e7ca94db555 20-Feb-2015 mtklein <mtklein@chromium.org> Make SkPixelRef::isLocked() debug-only, remove related dead code.

DM's okay locally with no diffs, no failures.

BUG=skia:

Review URL: https://codereview.chromium.org/940083002
kBitmapProcState.cpp
kPixelRef.cpp
87fa631969e0bdbee3c0845aa2b9bf35b9b82eb0 20-Feb-2015 scroggo <scroggo@google.com> Rename onGetPixelsEnum back to onGetPixels.

Replace the old signature of onGetPixels (return bool) to return an
enum (Result). Remove onGetPixelsEnum.

Add a define for onGetPixelsEnum to onGetPixels. This is for staging
in Chromium, where some implementations override onGetPixelsEnum.

Add the define in skia_for_chromium_defines. Remove
SK_SUPPORT_LEGACY_IMAGE_GENERATOR_RETURN, which is no longer needed by
Chromium.

BUG=skia:3257

Review URL: https://codereview.chromium.org/939113002
kImageGenerator.cpp
0c2da0c99f3553d406e937fc9026f31cfc77507f 20-Feb-2015 reed <reed@google.com> use geometric ave for choosing mip level

requires https://codereview.chromium.org/937233002/

BUG=skia:

Review URL: https://codereview.chromium.org/916103008
kBitmapProcState.cpp
90c6bc4e85df2da37f436ea1da203e194c4740e2 19-Feb-2015 mtklein <mtklein@google.com> Revert of notify resource caches when pixelref genID goes stale (patchset #4 id:60001 of https://codereview.chromium.org/825263005/)

Reason for revert:
Crazy failures.

http://build.chromium.org/p/client.skia/builders/Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug/builds/1428/steps/dm/logs/stdio

Original issue's description:
> notify resource caches when pixelref genID goes stale
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4675819b9dbb3ad71ec851776e5de26d342f29fe

TBR=bsalomon@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/936423002
kBitmapCache.cpp
kBitmapCache.h
kPixelRef.cpp
kResourceCache.cpp
kResourceCache.h
4675819b9dbb3ad71ec851776e5de26d342f29fe 19-Feb-2015 reed <reed@google.com> notify resource caches when pixelref genID goes stale

BUG=skia:

Review URL: https://codereview.chromium.org/825263005
kBitmapCache.cpp
kBitmapCache.h
kPixelRef.cpp
kResourceCache.cpp
kResourceCache.h
25d9c154087d2132a51d1ca74a104726f60ef380 18-Feb-2015 joshualitt <joshualitt@chromium.org> Pass Rendertarget into context.

Adding Jim for text context stuff, and Steven for image blur stuff.

BUG=skia:

Review URL: https://codereview.chromium.org/939623005
kImageFilter.cpp
kMaskFilter.cpp
91d1d621de03faa41528ba2581d172f3a41104ff 17-Feb-2015 halcanary <halcanary@google.com> zlib/pdf: remove HaveFlate(), depend on preprocessor defines

Review URL: https://codereview.chromium.org/933523007
kFlate.cpp
kFlate.h
1e4e814c0396a2e1a283e2661c04e6b12eeb5265 17-Feb-2015 mtklein <mtklein@chromium.org> SK_NO_FLATE

Also remove skia_zlib_static. We're not using it. We don't even have zlib in DEPS.

No public API changes.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/936583002
kFlate.cpp
9f2d1571ed1f0ed579e5d7779c46a90e20f30f22 17-Feb-2015 bsalomon <bsalomon@google.com> Make GrResourceCache use a priority queue of purgeable resources.

Review URL: https://codereview.chromium.org/921323002
kTDPQueue.h
9e779d495130009926fc5394a8971eec20494e5f 17-Feb-2015 reed <reed@chromium.org> add gm for path-arcs, and catch degenerate arc in conic-case

BUG=skia:3428

Review URL: https://codereview.chromium.org/931183002
kPath.cpp
f87fe78bc36c94143625fc38cc848d0da86eb60d 17-Feb-2015 reed <reed@chromium.org> use common impl for drawTextOnPath

BUG=skia:

Review URL: https://codereview.chromium.org/925343003
kBitmapDevice.cpp
kDevice.cpp
kDraw.cpp
2682700b8868b363809fc4c5e1733edb6e73c9a1 17-Feb-2015 fmalita <fmalita@chromium.org> Remove SK_SUPPORT_LEGACY_ADDRRECT

The flag is no longer used in Chromium.

BUG=458898
R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/929173002
kPath.cpp
d6f87b56d573b93a154156b948122b984da7e4b2 17-Feb-2015 fmalita <fmalita@chromium.org> Remove SK_SUPPORT_LEGACY_CONIC_COMPUTE_QUAD_POW2

The flag is no longer used in Chromium.

BUG=458898
R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/931663004
kGeometry.cpp
523cda39435256bcb3e5665f47612d661d3c6bf9 17-Feb-2015 djsollen <djsollen@google.com> Remove android specific srcPath from SkPath

Review URL: https://codereview.chromium.org/926693002
kPath.cpp
9e447c08deb30b26a2101cb20b8a04aa230f09c4 15-Feb-2015 reed <reed@chromium.org> remove unneeded preroll

BUG=skia:
TBR=robertphilips

Review URL: https://codereview.chromium.org/927443006
kBitmapProcShader.cpp
kBitmapProcShader.h
kPicturePreroll.cpp
kPictureShader.cpp
kPictureShader.h
694b0d115d5efcd663c422d316d2cf3abaa1d354 13-Feb-2015 reed <reed@google.com> fix more tricky-float cases in SkRRect validate

BUG=458524,458522

Review URL: https://codereview.chromium.org/921163003
kRRect.cpp
efe513b6fea7196dc72c1d49b365c5c28e939012 13-Feb-2015 scroggo <scroggo@google.com> Fix conversion from enum to bool error.

Needed for the DEPS roll.

TBR=jvanverth@google.com

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/921293002
kImageGenerator.cpp
0864908ca50049d3d907fc5c3749bc8a436b4738 13-Feb-2015 scroggo <scroggo@google.com> Make SkImageGenerator::getPixels() return an enum.

The new enum describes the nature of the failure. This is in
preparation for writing a replacement for SkImageDecoder, which will
use this interface.

Update the comments for getPixels() to specify what it means to pass
an SkImageInfo with a different size.

Make SkImageGenerator Noncopyable.

Leave onGetYUV8Planes alone, since we have separate discussions
regarding modifying that API.

Make callers of SkImageDecoder consistently handle kPartialSuccess.
Previously, some callers considered it a failure, and others considered
it a success.

BUG=skia:3257

Review URL: https://codereview.chromium.org/919693002
kImageGenerator.cpp
3555bd88a6513d219a084eabd41e9dff9e513605 13-Feb-2015 bsalomon <bsalomon@google.com> Add a templated priority queue class.

Review URL: https://codereview.chromium.org/914003004
kTDPQueue.h
f16c00e41b72daa81ed7efacbead06b387767841 13-Feb-2015 reed <reed@google.com> interpret conic tolerance correctly -- big rebaseline

need this to land in chrome
https://codereview.chromium.org/918233002/

NOTREECHECKS=True

Review URL: https://codereview.chromium.org/915103002
kGeometry.cpp
79ca081b906b53ad0ee760042e3ea225f39de794 13-Feb-2015 fmalita <fmalita@chromium.org> Minimize SkTHash object copying

AKA ref-constify the world.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/919193002
kTHash.h
05d9044de4f1c6e791df66a425638752daac4c6b 12-Feb-2015 reed <reed@google.com> optional res-scale parameter to getFillPath

BUG=skia:
NOTREECHECKS=True
TBR=

Review URL: https://codereview.chromium.org/911053005
kDraw.cpp
kPaint.cpp
kStroke.cpp
kStroke.h
kStrokeRec.cpp
979e0eacbd59327654d0c8d4216d6732413ef2a0 12-Feb-2015 mtklein <mtklein@chromium.org> Spin off SkTHashTable, SkTHashMap, SkTHashSet

SkTHashTable is very similar to SkTDynamicHash, except it's generalized to support non-pointer value types.

It doesn't support remove(), just to keep things simple (it's not hard to add).
Instead of an iterator, it has foreach(), again, to keep things simple.

SkTHashMap<K,V> and SkTHashSet<T> build a friendlier experience on top of SkTHashTable.

BUG=skia:

Review URL: https://codereview.chromium.org/925613002
kTHash.h
ac83d62f6c63ccffbff286f80a60b6829f301b23 11-Feb-2015 mtklein <mtklein@chromium.org> Fix up a couple includes that are using <> instead of "".

BUG=skia:

Review URL: https://codereview.chromium.org/916713003
kFontDescriptor.cpp
8432808ad8898ac7137bc7ce1d9df6005e866401 10-Feb-2015 reed <reed@google.com> check for inverted rects before we quick-reject

BUG=skia:

Review URL: https://codereview.chromium.org/908353002
kCanvas.cpp
bfd5bff75c0ce27a70f02e4b5578d66aa9d6e306 10-Feb-2015 mtklein <mtklein@chromium.org> Simplify SkBBH::insert API

No one's exploiting the ability to take ownership of the array anymore.

BUG=skia:

Review URL: https://codereview.chromium.org/913833002
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
kRecordDraw.cpp
d9591bb98c04aa6d66147d3776a8e4a7b0332771 10-Feb-2015 mtklein <mtklein@chromium.org> Switch font embedding to a compile-time flag, with a todo for runtime.

BUG=skia:3417

Review URL: https://codereview.chromium.org/910283002
kPictureData.cpp
454fa71cc31bf45c14e4c0b25502d5332d76c51c 10-Feb-2015 reed <reed@chromium.org> check for nonfinites in rrects

BUG=457128

Review URL: https://codereview.chromium.org/913743002
kRRect.cpp
88f0a99fd48cfb30ca5596182f8932d76cd76f17 10-Feb-2015 reed <reed@google.com> Use conics for round joins and caps

patch from issue 909013004 at patchset 20001 (http://crrev.com/909013004#ps20001)

BUG=skia:
TBR=caryclark

Review URL: https://codereview.chromium.org/910213002
kGeometry.cpp
kGeometry.h
kStrokerPriv.cpp
e85a32d4f8ce7fb9b6aaae89137dbf3766d833f2 10-Feb-2015 robertphillips <robertphillips@google.com> Clean up clipping code a bit

Review URL: https://codereview.chromium.org/913693002
kClipStack.cpp
d5d27d9b146731b871b1bcc6d6de36fba2d5ea44 09-Feb-2015 reed <reed@google.com> use conics for arcTo

guarded by SK_SUPPORT_LEGACY_ARCTO_QUADS

BUG=skia:

Review URL: https://codereview.chromium.org/892703002
kGeometry.cpp
kGeometry.h
kPath.cpp
8e85761e5a4a0b169cf101c4d72142ee4b87d266 09-Feb-2015 sugoi <sugoi@chromium.org> Fixed array read error

In 32 bits, if the "element count" was under 32 bits, but "element count" * "element size" was over the 32 bit limit, the overflow was causing the read operation to appear as if it had succeded, even though it should have failed.

BUG=456828

Review URL: https://codereview.chromium.org/904833003
kValidatingReadBuffer.cpp
31223e0cb74f47f63b094520a9830c525b72fe87 09-Feb-2015 reed <reed@google.com> cull edges that are to the right of the clip

BUG=skia:

Review URL: https://codereview.chromium.org/913503002
kEdgeBuilder.cpp
kEdgeClipper.cpp
kEdgeClipper.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
5a2a5e729c081aa8ddfaab3311b7730622689abf 09-Feb-2015 mtklein <mtklein@google.com> Revert of Make the glyph array entries inline. (patchset #11 id:190001 of https://codereview.chromium.org/885903002/)

Reason for revert:
Still broken.

Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1
>
> Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

TBR=reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/911513003
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
e3ecde1205d7698eb6266cdc4d43e4034b3f30d6 09-Feb-2015 qiankun.miao <qiankun.miao@intel.com> Remove unnecessary assignment

BUG=skia:

Review URL: https://codereview.chromium.org/892423005
kScan_Path.cpp
b4c29ac173e6f8844327338687248b98bc94132d 09-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Review URL: https://codereview.chromium.org/885903002
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
e6b1a60758aa16c0456ff8e1cf717c369e4e84b0 09-Feb-2015 henrik.smiding <henrik.smiding@intel.com> Remove opaque versions of Color32_D565

Removes the opaque-only versions of this function from the factory since
they will never be used. Opaque source colors are handled in
SkRGB16_Opaque_Blitter instead, which doesn't use the factory function.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Review URL: https://codereview.chromium.org/901593002
kBlitRow_D16.cpp
01d3319b67b1ad404006a0026803efc1573f4570 07-Feb-2015 reed <reed@google.com> Faster edge re-sort

For now, disable dropping trailing edges

This reverts commit 0692c5f2c1df7d1b66c62025200dd666f9ecd311.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/882733004
kEdgeBuilder.cpp
kEdgeBuilder.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
0692c5f2c1df7d1b66c62025200dd666f9ecd311 07-Feb-2015 reed <reed@chromium.org> Revert of Faster edge re-sort, drop trailing edges (patchset #2 id:20001 of https://codereview.chromium.org/907623002/)

Reason for revert:
still layout failures

Original issue's description:
> Faster edge re-sort, drop trailing edges
>
> (patchset #4 id:60001 of https://codereview.chromium.org/891613003/)"
>
> This reverts commit c319d075eab86cacfd7aba27859b72bbf8fc0a64.
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/2322115952c15c72a623837879cac1f85894b1b6

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/886503010
kEdgeBuilder.cpp
kEdgeBuilder.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
2322115952c15c72a623837879cac1f85894b1b6 07-Feb-2015 reed <reed@chromium.org> Faster edge re-sort, drop trailing edges

(patchset #4 id:60001 of https://codereview.chromium.org/891613003/)"

This reverts commit c319d075eab86cacfd7aba27859b72bbf8fc0a64.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/907623002
kEdgeBuilder.cpp
kEdgeBuilder.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
c319d075eab86cacfd7aba27859b72bbf8fc0a64 07-Feb-2015 reed <reed@chromium.org> Revert of faster edge re-sort, drop trailing edges (patchset #4 id:60001 of https://codereview.chromium.org/891613003/)

Reason for revert:
may be breaking layouttests...

Original issue's description:
> faster edge re-sort, drop trailing edges
>
> 1. drop edges that are wholly on the right (in the non-convex walker)
> 2. scan and swap once, instead of swapping as we go during re-sort
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/38f1c00772539dcbeccbfa3c45d94bdc4acf3518

TBR=caryclark@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/910493002
kEdgeBuilder.cpp
kEdgeBuilder.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
38f1c00772539dcbeccbfa3c45d94bdc4acf3518 06-Feb-2015 reed <reed@google.com> faster edge re-sort, drop trailing edges

1. drop edges that are wholly on the right (in the non-convex walker)
2. scan and swap once, instead of swapping as we go during re-sort

BUG=skia:

Review URL: https://codereview.chromium.org/891613003
kEdgeBuilder.cpp
kEdgeBuilder.h
kLineClipper.cpp
kLineClipper.h
kScan_Path.cpp
23e619cf462b2a8a500f3ca750e099f79601f508 06-Feb-2015 bsalomon <bsalomon@google.com> Reimplement gpu message bus for invalidated bitmap gen IDs

Review URL: https://codereview.chromium.org/902873002
kMessageBus.h
3cb3840c9af6f70896cf5565a38d4ee03c02d767 06-Feb-2015 reed <reed@google.com> Rename SkCanvasDrawable to SkDrawable, and make public

(patchset #2 id:20001 of https://codereview.chromium.org/903993002/)"

This reverts commit c4e87724920222a218f31b22612efc5b1ec0ed6c.

BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/898343004
kCanvas.cpp
kCanvasDrawable.cpp
kCanvasDrawable.h
kDrawable.cpp
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
c4e87724920222a218f31b22612efc5b1ec0ed6c 06-Feb-2015 reed <reed@google.com> Revert of rename SkCanvasDrawable to SkDrawable, and make public (patchset #2 id:20001 of https://codereview.chromium.org/903993002/)

Reason for revert:
bug in gyp

Original issue's description:
> rename SkCanvasDrawable to SkDrawable, and make public
>
> BUG=skia:
> NOTRY=True
> ... winbuilder flake
>
> Committed: https://skia.googlesource.com/skia/+/4ae9eb7463cf2160723407359608f221c0d5e2a6

TBR=robertphillips@google.com,djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/882853006
kCanvas.cpp
kCanvasDrawable.cpp
kCanvasDrawable.h
kDrawable.cpp
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
4ae9eb7463cf2160723407359608f221c0d5e2a6 06-Feb-2015 reed <reed@google.com> rename SkCanvasDrawable to SkDrawable, and make public

BUG=skia:
NOTRY=True
... winbuilder flake

Review URL: https://codereview.chromium.org/903993002
kCanvas.cpp
kCanvasDrawable.cpp
kCanvasDrawable.h
kDrawable.cpp
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
de358a9946fb6cffa905c7aa0e5f29cf6960b927 05-Feb-2015 joshualitt <joshualitt@chromium.org> BUG=skia:

Review URL: https://codereview.chromium.org/894693003
kCanvas.cpp
b0df8be137d8fb49436e46d1fd1a5aec8b7ab562 04-Feb-2015 reed <reed@google.com> return reference to cache instead of copying the mask

BUG=437128

Review URL: https://codereview.chromium.org/889303005
kMask.cpp
kMaskFilter.cpp
1a481fe4bf632ed4f76cb337691236fabfd4ab03 04-Feb-2015 fmalita <fmalita@chromium.org> [SkSVGDevice] Initial clipping support

Implement SVG clips based on clip stack flattening -
which is now exposed in SkClipStack::asPath() and shared
with SkCanvas's simplify-clip code.

R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/876923003
kCanvas.cpp
kClipStack.cpp
9bf4e5bbf6ca96042c0e0f5dca9a52a943f25716 03-Feb-2015 bsalomon <bsalomon@google.com> Revert of Make the glyph array entries inline. (patchset #10 id:170001 of https://codereview.chromium.org/885903002/)

Reason for revert:
I suspect this is causing the off-by-one character issues that show up in gold.skia.org as of now. All the errors I've seen are on a Win7 bot. Example:

good:
https://gold.skia.org/img/images/35396bb0d299b81c0031dc0632a019d4.png

bad:
https://gold.skia.org/img/images/484e511f9e696d95031cd25aeae59da0.png

Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

TBR=mtklein@google.com,reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/897463004
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
4c08f16b252a55e438a61f26e5581394ed177da1 03-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.
BUG=skia:

Review URL: https://codereview.chromium.org/885903002
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
e67164d9b3a0fcc5f7d2a4149041284f7cde31b9 02-Feb-2015 mtklein <mtklein@chromium.org> DM: wire up --leaks / -l again

No public API changes.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/893043002
kInstCnt.cpp
004a166ad79b86e790f27fdafc64aa71afdf0f82 02-Feb-2015 mtklein <mtklein@chromium.org> add missing SK_OVERRIDE

BUG=skia:

Review URL: https://codereview.chromium.org/894153002
kPicturePreroll.cpp
3d91aad293b0f68886ed48ecfa6aa75826a27da8 02-Feb-2015 fmalita <fmalita@chromium.org> Disable LCD text when rasterizing SkPictureShader tiles.

BUG=chromium:453299
R=reed@google.com

Review URL: https://codereview.chromium.org/884163003
kPictureShader.cpp
7f14c9bbf1954a88226a0b56f1abb1a17f31534c 30-Jan-2015 robertphillips <robertphillips@google.com> Revert of Add device space "nudge" to gpu draws (patchset #6 id:90001 of https://codereview.chromium.org/877473005/)

Reason for revert:
Blink layout tests this time :(

Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78
>
> Committed: https://skia.googlesource.com/skia/+/b9329991426d0b77ea194a380d72d73fb855308a

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834

Review URL: https://codereview.chromium.org/886153002
kClipStack.cpp
b9329991426d0b77ea194a380d72d73fb855308a 30-Jan-2015 robertphillips <robertphillips@google.com> Add device space "nudge" to gpu draws

This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.

BUG=423834

Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78

Review URL: https://codereview.chromium.org/877473005
kClipStack.cpp
1872ad0fe97d8e90446ee619b273de87e9b8c1fa 30-Jan-2015 scroggo <scroggo@google.com> Remove unused globalRef/globalUnref.

BUG=skia:1482

Review URL: https://codereview.chromium.org/887993003
kPixelRef.cpp
c778904a5b686617ad7fdec850ddc21e103dca0f 29-Jan-2015 reed <reed@google.com> share code between arcTo and addArc, update dox

BUG=skia:

Review URL: https://codereview.chromium.org/863123005
kPath.cpp
f9a40723f5d9bfe02cc60bedb5b956916e5cea01 29-Jan-2015 fmalita <fmalita@chromium.org> Conservative blob bounds cleanup

* drop SK_SUPPORT_LEGACY_BLOB_BOUNDS
* remove horizontal & fully position tight bounds support (always using
conservative bounds now)
* special-case horizontal run bounds logic to avoid unnecessary vertical
min-maxing

R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/858153007
kTextBlob.cpp
f90ea01522524b064141cf4ee5198b7cb053fd53 29-Jan-2015 reed <reed@google.com> reorg some path routines, preparing to switch arcs to conics

BUG=skia:

Review URL: https://codereview.chromium.org/887783002
kPath.cpp
4f358fc269077219c18f30f4752e3678a15c222a 29-Jan-2015 mtklein <mtklein@chromium.org> Make SkWriter32::snapshotAsData() a dumb copy.

SkWriter32::snapshotAsData() is no longer performance critical.
It's only used when we're serializing to disk.

BUG=skia:2289

Review URL: https://codereview.chromium.org/875403005
kWriter32.cpp
402448d6818cab9d7b7633a0c18fcf574c915357 29-Jan-2015 mlee <mlee@nvidia.com> skia: blend32_16_row for neon version

This includes blend32_16_row neon implementation
for aarch32 and aarch64.

For performance,
blend32_16_row is called in following tests in nanobench.
- Xfermode_SrcOver
- tablebench
- rotated_rects_bw_alternating_transparent_and_opaque_srcover
- rotated_rects_bw_changing_transparent_srcover
- rotated_rects_bw_same_transparent_srcover
- luma_colorfilter_large
- luma_colorfilter_small
- chart_bw

I can see perf increase in following two tests, especially. For others, looks
similar.
For each, I tried to run two times.

1) Xfermode_SrcOver
<org>
- D/skia ( 2000): 3M 57 17.3µs 17.4µs 17.4µs 17.7µs 1%
█▃▂▃▂▂▂▁▃▂ 565 Xfermode_SrcOver
- D/skia ( 1915): 3M 70 13.5µs 16.9µs 16.7µs 18.8µs 9%
▆█▄▅█▁▅▅▆▄ 565 Xfermode_SrcOver

<new>
- D/skia ( 2000): 3M 8 11.6µs 11.8µs 12.1µs 14.4µs 7%
▃█▁▁▂▁▁▁▂▂ 565 Xfermode_SrcOver
- D/skia ( 2004): 3M 62 10.3µs 12.9µs 13µs 15.2µs 11%
█▅▅▆▁▅▅▅▇▃ 565 Xfermode_SrcOver

2)
luma_colorfilter_large
<org>
- D/skia ( 2000): 159M 8 136µs 136µs 136µs 139µs 1%
█▃▁▂▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 1915): 158M 2 135µs 177µs 182µs 269µs 22%
▆▃█▁▁▃▃▃▃▃ 565 luma_colorfilter_large

<new>
- D/skia ( 2000): 157M 5 84.2µs 85.3µs 87.5µs 110µs 9%
█▁▂▁▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 2004): 159M 6 84.7µs 110µs 112µs 144µs 18%
█▄▇▁▁▄▃▄▄▆ 565 luma_colorfilter_large

Review URL: https://codereview.chromium.org/847363002
kBlitter_RGB16.cpp
9cc2f2613a4fa27de2c6c79830433867c72d8cd5 29-Jan-2015 robertphillips <robertphillips@google.com> Revert of Add device space "nudge" to gpu draws (patchset #5 id:70001 of https://codereview.chromium.org/877473005/)

Reason for revert:
Chrome pixel test :(

Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834

Review URL: https://codereview.chromium.org/890433003
kClipStack.cpp
2d55d07501c56310f97d2092d789a2bc9fa01b78 28-Jan-2015 robertphillips <robertphillips@google.com> Add device space "nudge" to gpu draws

This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.

BUG=423834

Review URL: https://codereview.chromium.org/877473005
kClipStack.cpp
f8dd0765c04cd029f90cadd040b18a0724d2a2df 28-Jan-2015 herb <herb@google.com> Make char hash dynamic when needed.

BUG=skia:

Review URL: https://codereview.chromium.org/880383002
kGlyphCache.cpp
kGlyphCache.h
40dab98de1bdb803035304077f43410d1f86f2d2 28-Jan-2015 reed <reed@google.com> Use murmur3 finisher to improve font hash efficiency.
Add dump() method to inspect glyphcache strikes.

Murmur addition improves hash efficient roughly 50%

BUG=skia:

Review URL: https://codereview.chromium.org/877113002
kChecksum.h
kGlyphCache.cpp
kGlyphCache.h
kScalerContext.h
6af314724f51ad79a640844536c667bb83de5690 28-Jan-2015 sugoi <sugoi@chromium.org> Fixed clusterfuzz issue

BUG=448423

Review URL: https://codereview.chromium.org/881423002
kBitmap.cpp
772604c214e8c12ee16d2eb60f4b7acbcdd2129e 28-Jan-2015 senorblanco <senorblanco@chromium.org> Add a flag to flush the canvases during SkMultiPictureDraw::draw().

This is necessary for multisampling, so that each multisampled render
target resolves before Chrome's compositor attempts to draw the
texture.

BUG=skia:

Review URL: https://codereview.chromium.org/878653004
kMultiPictureDraw.cpp
3dc40ac9f968eee95eef5e8ee811e0640691df0f 28-Jan-2015 fmalita <fmalita@chromium.org> Conservative SkTextBlob bounds.

Compute cheaper/more conservative text blob bounds based on the typeface
maximum glyph bbox.

BUG=chromium:451401
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/886473002
kTextBlob.cpp
25b76119e949fb064c840003a2e92633c25e8cdf 28-Jan-2015 mtklein <mtklein@google.com> Revert of patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001) (patchset #1 id:1 of https://codereview.chromium.org/881953002/)

Reason for revert:
==32435==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x621000d8cd00

Lots of info here:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/1198/steps/dm/logs/stdio

Original issue's description:
> patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001)
>
> Make the char cache dynamic in SkGlyphCache
> because it is rarely used.
>
> Landing on behalf of Herb.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/95faa61d63a6f62916f6f7be58c4624da8357e3b

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/881023003
kGlyphCache.cpp
kGlyphCache.h
95faa61d63a6f62916f6f7be58c4624da8357e3b 28-Jan-2015 mtklein <mtklein@chromium.org> patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001)

Make the char cache dynamic in SkGlyphCache
because it is rarely used.

Landing on behalf of Herb.

BUG=skia:

Review URL: https://codereview.chromium.org/881953002
kGlyphCache.cpp
kGlyphCache.h
8ece6eb37b4f3c98587efa071ce565d26b156e9a 27-Jan-2015 bungeman <bungeman@google.com> Remove unused methods from SkScalerContext.

The methods getLocalMatrixWithoutTextSize and
getSingleMatrixWithoutTextSize on SkScalerContext were added as a
temporary measure for CoreText issues. Now that the CoreText
SkScalerContext is using other means to fix these issues more completely,
remove these now unused methods.

Review URL: https://codereview.chromium.org/883833002
kScalerContext.cpp
kScalerContext.h
5f213d9627d2eefa7da81cd97f36754f75eb4ae9 27-Jan-2015 bungeman <bungeman@google.com> SkTypeface to use SkStreamAsset.

SkTypeface already requires typeface streams to support SkStreamAsset
in practice, and in practice all users are already supplying them.

Review URL: https://codereview.chromium.org/869763002
kFontDescriptor.h
kFontMgr.cpp
kTypeface.cpp
dc14fa4ec7739465d9bb9dbf1f0e537c80ad867f 27-Jan-2015 reed <reed@google.com> speedup mipmap building

mipmap_build benchmark:

before: 3.36ms
after: 2.20ms

BUG=skia:

Review URL: https://codereview.chromium.org/873393002
kMipMap.cpp
98b0315ad6beb7dbc311fd365ffe5c24d7ef2d0f 26-Jan-2015 robertphillips <robertphillips@google.com> Alter gpu veto

This CL unifies the treatment of the dashed and concave paths.

Before:
TP 28 FP 15 TN 8 FN 3 IND 3

After:
TP 28 FP 18 TN 7 FN 2 IND 2

One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).

Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927

Review URL: https://codereview.chromium.org/875913002
kPicture.cpp
1d9e80f02b8260ffe2eb1944042cd79f10e38d43 26-Jan-2015 reed <reed@google.com> check effective cache-size for fixed-budget caches

BUG=skia:

Review URL: https://codereview.chromium.org/876743002
kBitmapProcState.cpp
kResourceCache.cpp
kResourceCache.h
65327efb5bf42b5b9acaa8198e6c5252b07b0ada 26-Jan-2015 robertphillips <robertphillips@google.com> Revert of Alter gpu veto (patchset #1 id:1 of https://codereview.chromium.org/875913002/)

Reason for revert:
Failing tests

Original issue's description:
> Alter gpu veto
>
> This CL unifies the treatment of the dashed and concave paths.
>
> Before:
> TP 28 FP 15 TN 8 FN 3 IND 3
>
> After:
> TP 28 FP 18 TN 7 FN 2 IND 2
>
> One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).
>
> Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/879483003
kPicture.cpp
87a6a8e18c7d5bbc94f478b44c53dc0e0549f927 26-Jan-2015 robertphillips <robertphillips@google.com> Alter gpu veto

This CL unifies the treatment of the dashed and concave paths.

Before:
TP 28 FP 15 TN 8 FN 3 IND 3

After:
TP 28 FP 18 TN 7 FN 2 IND 2

One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).

Review URL: https://codereview.chromium.org/875913002
kPicture.cpp
42dbfa8651861f2f686879c996aab9f9f82277dd 26-Jan-2015 robertphillips <robertphillips@google.com> Add patheffects to debugger printout

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/872043002
kPaint.cpp
kPathEffect.cpp
dc0f408a961b6ce4e7631e06031bbfe1d8d7bcec 26-Jan-2015 kkinnunen <kkinnunen@nvidia.com> Fold alpha to the inner savelayer in savelayer-savelayer-restore patterns

Fold alpha to the inner savelayer in savelayer-savelayer-restore
patterns such as this:

SaveLayer (non-opaque)
Save
ClipRect
SaveLayer
Restore
Restore
Restore

Current blink generates these for example for SVG content such as this:

<path style="opacity:0.5 filter:url(#blur_filter)"/>

The outer save layer is due to the opacity and the inner one is due to
blur filter being implemented with picture image filter.

Reduces layers in desk_carsvg.skp testcase from 115 to 78.

BUG=skia:3119

Review URL: https://codereview.chromium.org/835973005
kRecordOpts.cpp
kRecordOpts.h
kRecordPattern.h
96a857ef5a40b3d0751ec9ebaaa96d9f20b82b21 25-Jan-2015 reed <reed@chromium.org> initial preroll api

BUG=skia:

Review URL: https://codereview.chromium.org/855473002
kBitmapProcShader.cpp
kBitmapProcShader.h
kCanvas.cpp
kPicturePreroll.cpp
kPictureShader.cpp
kPictureShader.h
2ff257bd95c732b9cebc3aac03fbed72d6e6082a 23-Jan-2015 reed <reed@google.com> check for too-large rowBytes

BUG=446164

Review URL: https://codereview.chromium.org/871993003
kMallocPixelRef.cpp
f803da12cff1d9b6148fea319220351efebfd1e0 23-Jan-2015 reed <reed@google.com> add newImage API

BUG=skia:3277
related bug: skbug.com/3276

Review URL: https://codereview.chromium.org/821083002
kPaint.cpp
dcfb7cf336cafffd8d149c908b615e1deaa3a49b 22-Jan-2015 egdaniel <egdaniel@google.com> Remove the need for asCoeff in SkXfermode.

BUG=skia:

Review URL: https://codereview.chromium.org/864833002
kDraw.cpp
kPaintPriv.cpp
kXfermode.cpp
kXfermode_proccoeff.h
4daa6f613cb7d8a3c07369af3e919ea65405ec55 22-Jan-2015 mtklein <mtklein@chromium.org> Don't require -DSK_USE_POSIX_THREADS.

To compile SkCondVar, we already require either pthreads or Windows. This
simplifies that code to not need SK_USE_POSIX_THREADS to be explicitly defined.
We'll just look to see if we're targeting Windows, and if not, assume pthreads.

Both before and after this CL, that code will fail to compile if we're not on
Windows and don't have pthreads.

BUG=skia:

Review URL: https://codereview.chromium.org/869443003
kPixelRef.cpp
a1193e4b0e34a7e4e1bd33e9708d7341679f8321 21-Jan-2015 scroggo <scroggo@google.com> Make SkStream *not* ref counted.

SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.

Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).

Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.

Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().

Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.

Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.

In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).

Make other pdf rasterizers behave like SkPDFDocumentToBitmap.

SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:

SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF

Requires a change to Android, which currently treats SkStreams as ref
counted objects.

Review URL: https://codereview.chromium.org/849103004
kFontDescriptor.h
kFontMgr.cpp
kPaint.cpp
kPictureData.h
kStream.cpp
kTypeface.cpp
3f43f8ab9cd3ba0ea83f5ae0659c21f101dfca7a 21-Jan-2015 reed <reed@chromium.org> remove dead SkPersp macros

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/864713002
kScalerContext.cpp
14ed0fd498639d1742e9b25ca4105193fa93b139 20-Jan-2015 mtklein <mtklein@chromium.org> Pre-cache fDirection and fConvexity for recorded SkPaths too.

http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN/builds/1211/steps/dm/logs/stdio

I don't see any big perf hit locally:

desk_googlespreadsheetdashed.skp 1.68ms -> 1.74ms 1.04x
desk_mobilenews.skp 643us -> 665us 1.04x
desk_tigersvg.skp 51.1us -> 52.5us 1.03x
desk_jsfiddlehumperclip.skp 37us -> 37.9us 1.02x
desk_samoasvg.skp 373us -> 380us 1.02x
desk_wordpress.skp 697us -> 708us 1.02x
desk_mapsvg.skp 698us -> 708us 1.02x
tabl_googleblog.skp 553us -> 560us 1.01x
desk_wowwiki.skp 1.31ms -> 1.32ms 1.01x
tabl_mozilla.skp 1.44ms -> 1.45ms 1.01x
desk_sfgate.skp 156us -> 157us 1.01x
desk_chalkboard.skp 376us -> 378us 1x
desk_baidu.skp 101us -> 101us 1x
desk_gmailthread.skp 231us -> 231us 1x
desk_carsvg.skp 379us -> 379us 1x
desk_googlehome.skp 38.1us -> 38.1us 1x
desk_css3gradients.skp 89.6us -> 89.2us 1x
desk_googlespreadsheet.skp 549us -> 546us 0.99x
desk_pokemonwiki.skp 8.67ms -> 8.62ms 0.99x
tabl_mlb.skp 294us -> 291us 0.99x
tabl_gamedeksiam.skp 700us -> 692us 0.99x
tabl_worldjournal.skp 143us -> 142us 0.99x
desk_blogger.skp 441us -> 436us 0.99x
desk_twitter.skp 452us -> 446us 0.99x
desk_gws.skp 152us -> 150us 0.99x
tabl_gmail.skp 24.2us -> 23.9us 0.99x
tabl_sahadan.skp 84.7us -> 83.5us 0.99x
tabl_cnn.skp 1.24ms -> 1.22ms 0.99x
tabl_ukwsj.skp 543us -> 535us 0.99x
desk_yahooanswers.skp 124us -> 123us 0.99x
desk_booking.skp 905us -> 891us 0.98x
tabl_androidpolice.skp 1.76ms -> 1.73ms 0.98x
desk_ugamsolutions.skp 281us -> 276us 0.98x
desk_nytimes.skp 209us -> 204us 0.98x
tabl_techmeme.skp 98.4us -> 96.1us 0.98x
tabl_nofolo.skp 59.2us -> 57.8us 0.98x
desk_weather.skp 244us -> 238us 0.98x
desk_facebook.skp 546us -> 531us 0.97x
desk_linkedin.skp 321us -> 311us 0.97x
tabl_digg.skp 801us -> 770us 0.96x
tabl_culturalsolutions.skp 332us -> 319us 0.96x
desk_amazon.skp 103us -> 99us 0.96x
tabl_engadget.skp 610us -> 579us 0.95x
tabl_cnet.skp 144us -> 136us 0.95x
desk_fontwipe.skp 36.6us -> 34.7us 0.95x
desk_ebay.skp 173us -> 164us 0.94x
tabl_hsfi.skp 5.95us -> 5.58us 0.94x
tabl_deviantart.skp 134us -> 126us 0.94x
desk_espn.skp 261us -> 243us 0.93x

BUG=skia:

Review URL: https://codereview.chromium.org/861853002
kRecords.h
e1a828c555223e75ebf83d0674daa2e6fd5889a3 20-Jan-2015 bungeman <bungeman@google.com> Move SkFontMgr and SkFontStyle impls to own cpp.

SkFontMgr and SkFontStyle implementations are currently burried in the
old SkFontHost.cpp file. Move these implementations to their own file
so that the implementations are easier to find, and to make clearer that
SkFontHost.cpp needs to be removed.

Review URL: https://codereview.chromium.org/799533004
kFontHost.cpp
kFontMgr.cpp
kFontStyle.cpp
58136167fc596fb945b58b34f500cf370c0dec7c 20-Jan-2015 egdaniel <egdaniel@google.com> Do more cleanup from xp changes

BUG=skia:

Review URL: https://codereview.chromium.org/811903004
kXfermode.cpp
94443b8718fa194bb2077324eade66bd68f99b54 20-Jan-2015 reed <reed@google.com> remove dead code after HQ change

BUG=skia:

Review URL: https://codereview.chromium.org/845303005
kBitmapFilter.cpp
kBitmapProcState.cpp
kBitmapProcState.h
83c8dec46a7a191b8e5a0b31a866e0b743f4dd72 20-Jan-2015 reed <reed@google.com> remove legacy flags for old image filtering

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/857193003
kBitmapProcState.cpp
kMipMap.cpp
692135f9689d4dcb5ba91ff8f4899e268c0bfe11 19-Jan-2015 sugoi <sugoi@chromium.org> YUV planes cache

- Added new classes to contain YUV planes of memory, along with the associated data.
- Used these classes in load_yuv_texture() to enable YUV planes caching
- Added a unit test for the new cache

BUG=450021

Review URL: https://codereview.chromium.org/851273003
kMaskCache.cpp
kYUVPlanesCache.cpp
kYUVPlanesCache.h
f7094c4ed01d500f31b993ed2620c2737093e383 16-Jan-2015 reed <reed@google.com> reorg filter quality cascade

BUG=skia:
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/844913004
kBitmapProcState.cpp
kBitmapProcState.h
7729e56a29a44bd47c69c8dc3247421595940acc 16-Jan-2015 reed <reed@chromium.org> use log2(scale) to compute mip level

now w/ expanded suppressions

This reverts commit b50ced703030dfbda4fc3ef5e6ec9a52fc0405f8.

BUG=skia:
TBR=
NOTRY=True
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/856723003
kMipMap.cpp
b50ced703030dfbda4fc3ef5e6ec9a52fc0405f8 16-Jan-2015 reed <reed@google.com> Revert of use log2(scale) to compute mip level (patchset #7 id:120001 of https://codereview.chromium.org/849333002/)

Reason for revert:
need more suppressions

Original issue's description:
> use log2(scale) to compute mip level
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/15fd47f8a07615a7f5d78581aee4c80ff9f17fd9

TBR=robertphillips@google.com,jvanverth@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/856783004
kMipMap.cpp
15fd47f8a07615a7f5d78581aee4c80ff9f17fd9 16-Jan-2015 reed <reed@google.com> use log2(scale) to compute mip level

BUG=skia:

Review URL: https://codereview.chromium.org/849333002
kMipMap.cpp
54f0e9d784122cfd3f5968e0fea971d5b5a4805a 16-Jan-2015 egdaniel <egdaniel@google.com> Add Xfer Processor for GrCustomXfermodes

BUG=skia:

Review URL: https://codereview.chromium.org/852203003
kXfermode.cpp
kXfermode_proccoeff.h
678c1b019ac98bc7d94841132c8105a77490bc64 16-Jan-2015 kkinnunen <kkinnunen@nvidia.com> Fold alpha to the draw in savelayer-draw-restore patterns with non-opaque draw

Fold alpha of a save layer call to the subsequent draw call paint, even when
the draw call paint color is already non-opaque.

Comparing the difference of the unoptimized and the optimized call pattern
with all (layer alpha, draw alpha) combinations, this produces
off-by-one pixels ~50% of the time.

Reduces layers of current desk_carsvg.skp (recorded with cross-process
picture image filters allowed) from 122 to 115.

BUG=skia:3119

Review URL: https://codereview.chromium.org/840483005
kRecordOpts.cpp
ca8e350a8dfd541fd93b986733daa82dc5bea1c9 15-Jan-2015 reed <reed@google.com> Revert "choose better mip level"

This reverts commit 09544fcf9611be6efc0c38ab9d9a3f82181341fb.

BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/849173003
kMipMap.cpp
0063a9b69a6a5d377f207c2aa1ea1e7220c19ba9 15-Jan-2015 egdaniel <egdaniel@google.com> Move XferEffects class to GrCustomXfermode file

BUG=skia:

Review URL: https://codereview.chromium.org/844913003
kXfermode.cpp
b0878797b45f93b3bfe6084094c74affd10207df 15-Jan-2015 fmalita <fmalita@chromium.org> SkPictureShader should handle negative scaling gracefully.

Let's not choke on inverted tiles.

BUG=chromium:447707
R=robertphillips@google.com,reed@google.com

Review URL: https://codereview.chromium.org/852213002
kPictureShader.cpp
0c278972d06882f21dda07e17d6e7457f590ea69 15-Jan-2015 mtklein <mtklein@chromium.org> Why are we afraid of saveLayer() bounds?

They're only hints. We can ignore them in this optimization.
My only hesitation is that this pattern doesn't seem to happen in our .skps.

BUG=skia:

Review URL: https://codereview.chromium.org/849243002
kRecordOpts.cpp
09544fcf9611be6efc0c38ab9d9a3f82181341fb 15-Jan-2015 reed <reed@google.com> choose better mip level

BUG=skia:

Review URL: https://codereview.chromium.org/845793005
kMipMap.cpp
1a178ca6dd2ff7f62c684f7d0ee94e54fc31c91b 15-Jan-2015 fmalita <fmalita@chromium.org> Use device-space stroke width for SkDraw::drawRect() quick-reject

The stroke width needs to be CTM-adjusted when applied to device space
rects.

BUG=skia:3313
R=reed@google.com

Review URL: https://codereview.chromium.org/801353008
kDraw.cpp
26feeba2678e82ada6ee0c5096a95a8ef2a00c60 14-Jan-2015 reed <reed@google.com> separate out the scaline-choosing to simplify chooseProcs

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/796063007
kBitmapProcState.cpp
kBitmapProcState.h
38cd055215acbeb8671e6bf5dcbfc926bd9e98cd 14-Jan-2015 egdaniel <egdaniel@google.com> Do some minor pre cleanup work before converting all xfermodes to XPs.

BUG=skia:

Review URL: https://codereview.chromium.org/853543003
kXfermode.cpp
a7f11918d92621507f35b228a290f05dcaf0f4b6 13-Jan-2015 reed <reed@google.com> rename blitrow::proc and add (uncalled) hook for colorproc16

BUG=skia:3302

Review URL: https://codereview.chromium.org/847443003
kBlitRow_D16.cpp
kBlitter_RGB16.cpp
kSpriteBlitter_RGB16.cpp
6f07665768dc84453316e7b2bbd6049576764cb1 13-Jan-2015 mtklein <mtklein@chromium.org> Simplify SkInstCnt

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
kInstCnt.cpp
125ee60ed3e510b1b9cbbaae8efdef2df5542ac1 13-Jan-2015 robertphillips <robertphillips@google.com> Revert of Fix GPU clipped-AA vs. non-AA drawRect discrepancy (patchset #2 id:20001 of https://codereview.chromium.org/839883003/)

Reason for revert:
This CL introduces rendering conflicts with hairlines (i.e., the hairlines get overwritten). These conflicts are particularly visible on the following GMs (for the Ubuntu and Android gpu configs):

coloremoji & complexclip2_rrect_bw

Original issue's description:
> Fix GPU clipped-AA vs. non-AA drawRect discrepancy
>
> In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff

TBR=bsalomon@google.com,jvanverth@google.com
NOTREECHECKS=true
NOTRY=true
BUG=423834

Review URL: https://codereview.chromium.org/847033002
kClipStack.cpp
933a03fecb65c83f81cf65d5cf9870c69aa379ff 13-Jan-2015 robertphillips <robertphillips@google.com> Fix GPU clipped-AA vs. non-AA drawRect discrepancy

In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies.

BUG=423834

Review URL: https://codereview.chromium.org/839883003
kClipStack.cpp
0899696e9fec7d376b63655bedaed76871cb15c2 12-Jan-2015 qiankun.miao <qiankun.miao@intel.com> Fix overlap test for 64-bit pointers in SkMatrix

BUG=skia:3297

Review URL: https://codereview.chromium.org/803493008
kMatrix.cpp
72c9faab45124e08c85f70ca38536914862d947c 09-Jan-2015 mtklein <mtklein@chromium.org> Fix up all the easy virtual ... SK_OVERRIDE cases.

This fixes every case where virtual and SK_OVERRIDE were on the same line,
which should be the bulk of cases. We'll have to manually clean up the rest
over time unless I level up in regexes.

for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end

BUG=skia:

Review URL: https://codereview.chromium.org/806653007
kAAClip.cpp
kAAClip.h
kBitmapCache.cpp
kBitmapFilter.h
kBitmapHeap.h
kBitmapProcShader.h
kBlitter.cpp
kBlitter.h
kBlitter_RGB16.cpp
kBuffer.h
kColorShader.h
kCoreBlitters.h
kDeviceImageFilterProxy.h
kDraw.cpp
kEmptyShader.h
kFilterShader.h
kFontHost.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskCache.cpp
kMaskGamma.cpp
kMipMap.h
kPictureRecord.h
kPictureShader.cpp
kPictureShader.h
kRTree.h
kRegion_path.cpp
kResourceCache.cpp
kScalerContext.cpp
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Path.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kStream.cpp
kTypeface.cpp
kValidatingReadBuffer.h
kXfermode.cpp
kXfermode_proccoeff.h
703dd2ed187b9788c5bb0f2d313f2d07695603d6 09-Jan-2015 mtklein <mtklein@chromium.org> Remove SkTileGrid (except for TileGridInfo).

TBR=reed@google.com

BUG=skia:3085

Review URL: https://codereview.chromium.org/845623002
kBBHFactory.cpp
kTileGrid.cpp
kTileGrid.h
eabd0d73eebb940ec5ea06625f612a80156b61db 08-Jan-2015 qiankun.miao <qiankun.miao@intel.com> Revert of Cache blur mask for rects which can not break into nine-patch (patchset #10 id:200001 of https://codereview.chromium.org/729463002/)

Reason for revert:
revert it due to a memory leak.
==8017==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 25992 byte(s) in 2 object(s) allocated from:
#0 0x7feb53030e0b in __interceptor_malloc
(/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/gm+0x24fe0b)
#1 0x7feb54d54f76 in sk_malloc_flags(unsigned long, unsigned int)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/ports/SkMemory_malloc.cpp:54:15
#2 0x7feb54d54d4a in sk_malloc_throw(unsigned long)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/ports/SkMemory_malloc.cpp:40:12
#3 0x7feb539f5a77 in SkMask::AllocImage(unsigned long)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMask.cpp:37:22
#4 0x7feb53fe5c34 in (anonymous
namespace)::copy_cacheddata_to_mask(SkCachedData*, SkMask*)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskCache.cpp:25:20
#5 0x7feb53fea064 in SkMaskCache::FindAndCopy(float, SkBlurStyle,
SkBlurQuality, SkRect const*, int, SkMask*)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskCache.cpp:224:26
#6 0x7feb539f957e in SkMaskFilter::filterPath(SkPath const&, SkMatrix
const&, SkRasterClip const&, SkBlitter*, SkPaint::Style) const
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskFilter.cpp:270:14
#7 0x7feb5392e920 in SkDraw::drawPath(SkPath const&, SkPaint const&,
SkMatrix const*, bool, bool, SkBlitter*) const
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkDraw.cpp:1117:13
#8 0x7feb53694afc in SkDraw::drawPath(SkPath const&, SkPaint const&,
SkMatrix const*, bool) const
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../include/core/SkDraw.h:54:9
#9 0x7feb5368d799 in SkBitmapDevice::drawPath(SkDraw const&, SkPath const&,
SkPaint const&, SkMatrix const*, bool)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkBitmapDevice.cpp:216:5
#10 0x7feb5386aa57 in SkCanvas::onDrawPath(SkPath const&, SkPaint const&)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkCanvas.cpp:1908:9
#11 0x7feb5386386b in SkCanvas::drawPath(SkPath const&, SkPaint const&)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkCanvas.cpp:1703:5
#12 0x7feb53109572 in Blur2RectsNonNinePatchGM::onDraw(SkCanvas*)
/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../gm/blurs.cpp:166:9

Original issue's description:
> Cache blur mask for rects which can not break into nine-patch
>
> With this CL performance improves:
> blurrectsnonninepatch 42.4us -> 20.5us 0.48x
>
> BUG=431021,skia:3118
>
> Committed: https://skia.googlesource.com/skia/+/5a5b4e900ee69540fc35952882a323c63d6d0db9

TBR=reed@google.com,humper@google.com,reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=431021,skia:3118

Review URL: https://codereview.chromium.org/844673002
kMaskCache.cpp
kMaskCache.h
kMaskFilter.cpp
5a5b4e900ee69540fc35952882a323c63d6d0db9 08-Jan-2015 qiankun.miao <qiankun.miao@intel.com> Cache blur mask for rects which can not break into nine-patch

With this CL performance improves:
blurrectsnonninepatch 42.4us -> 20.5us 0.48x

BUG=431021,skia:3118

Review URL: https://codereview.chromium.org/729463002
kMaskCache.cpp
kMaskCache.h
kMaskFilter.cpp
f4e5995ac70d4614e0a05b92a8a03e2b7d76bd9c 07-Jan-2015 robertphillips <robertphillips@google.com> It is dangerous to ignore SkRect::intersect's return value

Committed: https://skia.googlesource.com/skia/+/152f524fd325b7776b01f84afbfe2fa071648a05

Review URL: https://codereview.chromium.org/833943002
kScan_AntiPath.cpp
a27b82ddf0fad959371a4ab1fba931826edb2f54 07-Jan-2015 jvanverth <jvanverth@google.com> Remove distance field generation and storage from SkGlyphCache.

BUG=skia:3103

Review URL: https://codereview.chromium.org/834103004
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
690fc594f11a987ba0e885a7eb01aff363395f12 07-Jan-2015 robertphillips <robertphillips@google.com> Revert of It is dangerous to ignore SkRect::intersect's return value (patchset #6 id:100001 of https://codereview.chromium.org/833943002/)

Reason for revert:
Still more Chromium clean up to do

Original issue's description:
> It is dangerous to ignore SkRect::intersect's return value
>
> Committed: https://skia.googlesource.com/skia/+/152f524fd325b7776b01f84afbfe2fa071648a05

TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/825983005
kScan_AntiPath.cpp
7e44bb191633e225fd0455c267dbf67f9ee8633e 07-Jan-2015 mtklein <mtklein@chromium.org> Remove macros that make it look like it's a good idea to not be able to flatten.

There are only a handful of SkFlattenables that are not flattenable. That
there are any seems highly illogical. To make this look less like a normal
thing, this removes both macros that marked SkFlattenables as non-flattenable
(in slightly different ways).

The handful of SkFlattenables in our codebase that can't be flattened now
assert violently that they can't be flattened. They're internal or
part of animator... places where we'll never actually flatten them.

TestLooper and DummyRasterizer were so trivial that I just made them flattenable.

BUG=skia:

Review URL: https://codereview.chromium.org/841753002
kDraw.cpp
152f524fd325b7776b01f84afbfe2fa071648a05 07-Jan-2015 robertphillips <robertphillips@google.com> It is dangerous to ignore SkRect::intersect's return value

Review URL: https://codereview.chromium.org/833943002
kScan_AntiPath.cpp
bd0d9da981289504c9dcd8547eaad52b1f4a52cb 07-Jan-2015 sugoi <sugoi@chromium.org> Verify size_t overflow

In 32 bits, it's possible that multiplying 2 32b values might overflow a size_t, which could be 32b unsigned in that context, so I added a check for size_t overflow.

BUG=445831

Review URL: https://codereview.chromium.org/836733005
kBitmap.cpp
783fe16b8ed1cd1cff34eacc33296874a32f293b 07-Jan-2015 robertphillips <robertphillips@google.com> Rename SkDrawPictureCallback to SkPicture::AbortCallback

Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c

Review URL: https://codereview.chromium.org/829983003
kPicture.cpp
kPictureData.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kRecordDraw.cpp
kRecordDraw.h
9810cd25ce3d2de1496bbdf6317cd22d1dcc8794 07-Jan-2015 reed <reed@google.com> use conics for ovals and roundrects

This reverts commit e3b61eb7997d12c5f9b844dd3af1847492d9f411.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/834303002
kPath.cpp
8ea6dabbb15ef276645b7a6ebab44a4a532ac990 07-Jan-2015 reed <reed@chromium.org> Revert of Rename SkDrawPictureCallback to SkPicture::AbortCallback (patchset #2 id:20001 of https://codereview.chromium.org/829983003/)

Reason for revert:
speculative revert to unblock DEPS roll

Original issue's description:
> Rename SkDrawPictureCallback to SkPicture::AbortCallback
>
> Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c

TBR=reed@google.com,robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/824013004
kPicture.cpp
kPictureData.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kRecordDraw.cpp
kRecordDraw.h
f7be779e1d041b9c51f25349a8a9f8e3360d6dbc 06-Jan-2015 tomhudson <tomhudson@google.com> Comment out unused names in src/core/SkGlyphCache.h

Android violates our encapsulation and depends on this file;
to keep their compiles clean they want us to hide the names
of unused parameters.

Follow-up to https://codereview.chromium.org/726923002/.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/839583005
kGlyphCache.h
7ef197255deb4e2fa64c03c7130d56ddf164e83c 06-Jan-2015 robertphillips <robertphillips@google.com> Rename SkDrawPictureCallback to SkPicture::AbortCallback

Review URL: https://codereview.chromium.org/829983003
kPicture.cpp
kPictureData.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kRecordDraw.cpp
kRecordDraw.h
3f4e045b4f8b97d189162d17c85b8410e083a3af 06-Jan-2015 reed <reed@google.com> fixes for conics

- use std tolerance in edgebuilder, since the path has not been scaled-up to its super-sample size (that happens in the builder methods.

- off-by-1 fix for pathops when using the output of the conicquadder

BUG=skia:

Review URL: https://codereview.chromium.org/837023002
kEdgeBuilder.cpp
e3b61eb7997d12c5f9b844dd3af1847492d9f411 06-Jan-2015 reed <reed@google.com> Revert of use conics for ovals and roundrects (patchset #1 id:1 of https://codereview.chromium.org/817283005/)

Reason for revert:
need fix in edgebuilder+aa

Original issue's description:
> use conics for ovals and roundrects
>
> adapted from https://codereview.chromium.org/831313002/
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/2bf1c4d58b84c73c6421edcb25e3afb4971da200

TBR=reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/840573002
kPath.cpp
2bf1c4d58b84c73c6421edcb25e3afb4971da200 06-Jan-2015 reed <reed@chromium.org> use conics for ovals and roundrects

adapted from https://codereview.chromium.org/831313002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/817283005
kPath.cpp
2b6ab61e2229bd76291b3d16ad7e386b3075eddb 05-Jan-2015 robertphillips <robertphillips@google.com> Remove SkPath::asRect

AFAICT the asRect entry point is not needed.

Greg: GPU
Reed: API
Cary: Path

Review URL: https://codereview.chromium.org/833193002
kClipStack.cpp
kPath.cpp
b280646beba5d2d247994f2241b8d0c69a1e031d 05-Jan-2015 fmalita <fmalita@chromium.org> Fix thin rect stroking.

When both edges of a thin (sub-unit) stroke fall within the same pixel, we compute the wrong coverage and also blit the same line twice.

To avoid these issues, tweak the inner/outer hulls to ensure one of the edges is always pixel-aligned.

BUG=skia:3278
R=reed@google.com

Review URL: https://codereview.chromium.org/819253003
kScan_Antihair.cpp
91b0a3587342c48a1a6e1c4687686688737359da 05-Jan-2015 robertphillips <robertphillips@google.com> Cleanup isRect variants

Review URL: https://codereview.chromium.org/832083002
kPath.cpp
f1cdead599715dbae30278bffa4528bd1664f61f 05-Jan-2015 robertphillips <robertphillips@google.com> Print out failing PathRef test on ChromeOS

This is intended to provide additional information for a flaky assertion failure on ChromeOS Daisy.

BUG=skia:3282

Review URL: https://codereview.chromium.org/821683002
kPathRef.cpp
41af966ab338e95eee81ab618ab28195075338f7 05-Jan-2015 reed <reed@google.com> Revert of Revert of move remaining virtual draw methods to onDraw (patchset #1 id:1 of https://codereview.chromium.org/835913002/)

Reason for revert:
test to see if it wasn't this CL that broke chromeos

Original issue's description:
> Revert of move remaining virtual draw methods to onDraw (patchset #5 id:80001 of https://codereview.chromium.org/817723005/)
>
> Reason for revert:
> did this cause chromeos heap corruption on skp?
>
> Original issue's description:
> > move remaining virtual draw methods to onDraw
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/2e0f7d53bba5438c9bf11ee5ccae2c301e348419
>
> TBR=robertphillips@google.com,djsollen@google.com,bsalomon@google.com,mtklein@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e87e383351e1547b21d96d02bcd0c3cbbe0837f1

TBR=robertphillips@google.com,djsollen@google.com,bsalomon@google.com,mtklein@google.com,reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/831253002
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.cpp
kRecorder.h
49aabde6ef80e39f00a2d00487cf5a881987dd81 05-Jan-2015 mtklein <mtklein@chromium.org> Clean up dead clear() code in SkRecord.

This removes the SkRecords::Clear struct and everything that refers to it.
Notice there is nothing actually creating a Clear, which means this is all
dead code.

Now that all ops obey the clip, I don't think we need the weird
inflate-empty-to-epsilon hack for BBH queries.

BUG=skia:

Review URL: https://codereview.chromium.org/835813002
kRecordDraw.cpp
kRecords.h
e87e383351e1547b21d96d02bcd0c3cbbe0837f1 05-Jan-2015 reed <reed@chromium.org> Revert of move remaining virtual draw methods to onDraw (patchset #5 id:80001 of https://codereview.chromium.org/817723005/)

Reason for revert:
did this cause chromeos heap corruption on skp?

Original issue's description:
> move remaining virtual draw methods to onDraw
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2e0f7d53bba5438c9bf11ee5ccae2c301e348419

TBR=robertphillips@google.com,djsollen@google.com,bsalomon@google.com,mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/835913002
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.cpp
kRecorder.h
2e0f7d53bba5438c9bf11ee5ccae2c301e348419 05-Jan-2015 reed <reed@chromium.org> move remaining virtual draw methods to onDraw

BUG=skia:

Review URL: https://codereview.chromium.org/817723005
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.cpp
kRecorder.h
c4fda92f45b9649f233a5b8636618a6431aa59cb 02-Jan-2015 reed <reed@chromium.org> remove unused drawData

BUG=skia:

Review URL: https://codereview.chromium.org/830083002
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
c187a3c8849ba5e409f79ead21cd5bc82173d9f8 30-Dec-2014 robertphillips <robertphillips@google.com> Fix computation of bound in FillBounds::updateSaveBounds

intersect doesn't change the bounds when the two bounds do not intersect. This is definitely not the intended behavior.

With the SKPs captured on 12/23/14, Chrome began passing Skia drawPicture ops that did not intersect the current clip - which revealed this bug.

Review URL: https://codereview.chromium.org/817483004
kRecordDraw.cpp
4f662e62cd44e302ef689fabdb2c0ae8d9471b02 29-Dec-2014 robertphillips <robertphillips@google.com> Update stroke path to use rect returned from isRect (to fix trailing moveTo bug)

This basically recreates what was done in:

https://codereview.chromium.org/16950021/ (add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular path has a trailing moveTo) with the addition of GM representation

BUG=skia:247770

Review URL: https://codereview.chromium.org/834503002
kPath.cpp
kStroke.cpp
fe7c427e3d1c2c98bce7a3fa0ae6b5864527f169 29-Dec-2014 robertphillips <robertphillips@google.com> Fix bound returned by SkPath::isRect when the path contains a trailing moveTo

Oddly enough this was fixed in:

https://codereview.chromium.org/16950021/ (add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular path has a trailing moveTo)

but was reverted here:

https://skia.googlesource.com/skia/+/8fd160350ca5f57fbb1b2e03383c5778414a9b48

since it appeared to be crashing Chrome's trybots. I think it just fell through the cracks after that.

If this sticks I will land a follow on patch for the stroke issue reported in the original bug (crbug.com/247770).

BUG=247770,445368

Review URL: https://codereview.chromium.org/834483002
kPath.cpp
b0ae649b7ebda86ef53bf913798b809d500973ed 29-Dec-2014 bsalomon <bsalomon@google.com> Add device space skshader GM to test kDevice_GrCoordSet

Review URL: https://codereview.chromium.org/816003002
kBlitter.cpp
b4f629cd688b680eba21a5a08daeaf82bbe65b28 25-Dec-2014 reed <reed@chromium.org> fix images in multi-thread by doing shallow-copies

BUG=skia:
TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/791473006
kMultiPictureDraw.cpp
0acf1b4b3645772d220c720313821bac389751b5 23-Dec-2014 reed <reed@google.com> add private flag for sprite-as-bitmap

BUG=skia:3272

Review URL: https://codereview.chromium.org/806853005
kCanvas.cpp
d990e2f14f14c36c3d0beb303dd0953c7aa1fcfa 22-Dec-2014 reed <reed@google.com> add testing flag to ignore saveLayer bounds

BUG=skia:

Review URL: https://codereview.chromium.org/819123003
kCanvas.cpp
fa1e8a7cefd71f7b75f0b85f8eefe111814dd86f 22-Dec-2014 jvanverth <jvanverth@google.com> Add sRGB texture support.

Review URL: https://codereview.chromium.org/791823003
kBitmap.cpp
ec57b54ac7546f9db7c5b8610ef4f3690833ca83 21-Dec-2014 reed <reed@chromium.org> remove dead SK_SUPPORT_LEGACY_DEVICE_CLEAR code

BUG=skia:
TBR=robertphilips@google.com

Review URL: https://codereview.chromium.org/807083003
kDevice.cpp
ca32da7533ed86fbbe50e078c751b0f1c198bb5b 21-Dec-2014 robertphillips <robertphillips@google.com> Allow the alpha folding optimization if the single draw's paint has a shader

Let's land this and then leave for 2 weeks.

BUG=skia:3119

Review URL: https://codereview.chromium.org/817033002
kRecordOpts.cpp
5e8b1688eeaa343848d255daee2b1fc26eb54f57 21-Dec-2014 reed <reed@chromium.org> remove dead SK_LEGACY_ENCODE_BITMAP flag

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/820903002
kPicture.cpp
f3f5bad7ded35265c0b5d042cc4174386b197a33 19-Dec-2014 robertphillips <robertphillips@google.com> Add toString methods to SkImageFilter-derived classes

This isn't definitive but at least makes something show up in the debugger.

Review URL: https://codereview.chromium.org/789163006
kPaint.cpp
d55b59574854055fae275a5300a352d61978c8a6 19-Dec-2014 reed <reed@google.com> fix SK_LEGACY_ENCODE_BITMAP missing cast

BUG=skia:
TBR=
NOTRY=True
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/815223002
kPicture.cpp
53b9e2e0f29e5613f8d8d0eeb4a4b4d4a8a40e91 19-Dec-2014 reed <reed@google.com> add const to encodePixels pixel parameter

BUG=skia:

Review URL: https://codereview.chromium.org/788143007
kPicture.cpp
8aacf2085673f6302a43d590d4d2890789b87192 18-Dec-2014 mtklein <mtklein@chromium.org> Fill SkRRect::fType proactively.

I found no external mentions of SkRRect::kUnknown_Type.

Motivating race found by TSAN:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot/builds/48/steps/dm/logs/stdio

BUG=skia:

Review URL: https://codereview.chromium.org/801693003
kRRect.cpp
16b278989532ee9f9a38e3eb4754b228ff495cb8 18-Dec-2014 joshualitt <joshualitt@chromium.org> Change to create device coord coordset

BUG=skia:

Review URL: https://codereview.chromium.org/812063002
kImageFilter.cpp
1348dfd5df187847e991dbf6658f493c6351e1d8 18-Dec-2014 tfarina <tfarina@chromium.org> Cleanup: Remove a bunch of SkFontHost.h includes (unused).

Nobody that is including SkFontHost is using SkFontHost API, so lets
remove this includes, since the API per se is deprecated.

BUG=None
R=reed@google.com

Review URL: https://codereview.chromium.org/803733006
kPaint.cpp
kScalerContext.cpp
5531d51ce7426bdae7563547326fcf0bf926a083 18-Dec-2014 joshualitt <joshualitt@chromium.org> remove view matrix from context

BUG=skia:

Review URL: https://codereview.chromium.org/808703006
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorShader.h
kImageFilter.cpp
kLocalMatrixShader.h
kMaskFilter.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
1b28a3a4890e3b84b43181b3fe3690ac565930dc 17-Dec-2014 reed <reed@google.com> use conics for addRRect

BUG=skia:

Review URL: https://codereview.chromium.org/792493005
kPath.cpp
220f926d9d4b38a9018c922c095847bbd261f583 17-Dec-2014 reed <reed@google.com> use conics

BUG=skia:

Review URL: https://codereview.chromium.org/455043002
kEdgeBuilder.cpp
kGeometry.cpp
kGeometry.h
kPath.cpp
kPathMeasure.cpp
478dd723362fefc2023aee03e11216d913eeac03 16-Dec-2014 robertphillips <robertphillips@google.com> Fix layer hoisting image filter corner cases

This CL fixes 5 bugs related to hoisting image filters:

For image filters the src layer (the one prior to filtering) often needs to be
smaller then the final layer. This requires the saveLayer's optional bounds
to be stored (in SkLayerInfo.h and SkRecordDraw.cpp) and then used in
compute_source_rect and carried around in GrCachedLayer.

The image filters can add an extra offset to the final draw operation.
This is now computed in GrLayerHoister::FilterLayer and carried around in
GrCachedLayer.

Filtered layers must use exact matches. This is now done in GrLayerCache::lock.

The filter cache requires a valid matrix so it can compute the correct offset.
This is now done in GrLayerHoister::FilterLayer.

Filtered layers need to be drawn with drawSprite while unfiltered (and therefore
hopefully atlased) layers can be drawn with drawBitmap. This is now done in
draw_replacement_bitmap.

Committed: https://skia.googlesource.com/skia/+/702eb9622102599d94ab6798e6227cf29f48c2d3

Review URL: https://codereview.chromium.org/803183003
kLayerInfo.h
kRecordDraw.cpp
86f032832fc3527ab561bcbd9d2a546f7f676f73 16-Dec-2014 robertphillips <robertphillips@google.com> Revert of Fix layer hoisting image filter corner cases (patchset #3 id:40001 of https://codereview.chromium.org/803183003/)

Reason for revert:
Breaking DM

Original issue's description:
> Fix layer hoisting image filter corner cases
>
> This CL fixes 5 bugs related to hoisting image filters:
>
> For image filters the src layer (the one prior to filtering) often needs to be
> smaller then the final layer. This requires the saveLayer's optional bounds
> to be stored (in SkLayerInfo.h and SkRecordDraw.cpp) and then used in
> compute_source_rect and carried around in GrCachedLayer.
>
> The image filters can add an extra offset to the final draw operation.
> This is now computed in GrLayerHoister::FilterLayer and carried around in
> GrCachedLayer.
>
> Filtered layers must use exact matches. This is now done in GrLayerCache::lock.
>
> The filter cache requires a valid matrix so it can compute the correct offset.
> This is now done in GrLayerHoister::FilterLayer.
>
> Filtered layers need to be drawn with drawSprite while unfiltered (and therefore
> hopefully atlased) layers can be drawn with drawBitmap. This is now done in
> draw_replacement_bitmap.
>
> Committed: https://skia.googlesource.com/skia/+/702eb9622102599d94ab6798e6227cf29f48c2d3

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/790643009
kLayerInfo.h
kRecordDraw.cpp
702eb9622102599d94ab6798e6227cf29f48c2d3 16-Dec-2014 robertphillips <robertphillips@google.com> Fix layer hoisting image filter corner cases

This CL fixes 5 bugs related to hoisting image filters:

For image filters the src layer (the one prior to filtering) often needs to be
smaller then the final layer. This requires the saveLayer's optional bounds
to be stored (in SkLayerInfo.h and SkRecordDraw.cpp) and then used in
compute_source_rect and carried around in GrCachedLayer.

The image filters can add an extra offset to the final draw operation.
This is now computed in GrLayerHoister::FilterLayer and carried around in
GrCachedLayer.

Filtered layers must use exact matches. This is now done in GrLayerCache::lock.

The filter cache requires a valid matrix so it can compute the correct offset.
This is now done in GrLayerHoister::FilterLayer.

Filtered layers need to be drawn with drawSprite while unfiltered (and therefore
hopefully atlased) layers can be drawn with drawBitmap. This is now done in
draw_replacement_bitmap.

Review URL: https://codereview.chromium.org/803183003
kLayerInfo.h
kRecordDraw.cpp
9a5380dd358a9c559a41beef7cb368cd7f0ca51f 16-Dec-2014 mtklein <mtklein@google.com> Revert of Use SkPaint::getFontBounds() for text bounding boxes in pictures. (patchset #1 id:1 of https://codereview.chromium.org/805983003/)

Reason for revert:
Test-Win7-ShuttleA-HD2000-x86-Debug-GDI

Original issue's description:
> Use SkPaint::getFontBounds() for text bounding boxes in pictures.
>
> Now that SkTextBlobs have landed, this is a perf no-op, but it at least lets us eliminate a bunch of questionable hacks.
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot,Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug-Trybot
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/02d2b9831579173e783569530ab7bae08de907e9

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/789793004
kRecordDraw.cpp
02d2b9831579173e783569530ab7bae08de907e9 16-Dec-2014 mtklein <mtklein@chromium.org> Use SkPaint::getFontBounds() for text bounding boxes in pictures.

Now that SkTextBlobs have landed, this is a perf no-op, but it at least lets us eliminate a bunch of questionable hacks.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot,Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/805983003
kRecordDraw.cpp
0393912de72bc3d8b3640c122c53470dd0da1e6d 15-Dec-2014 reed <reed@google.com> pass dst-rect through from drawBitmapRect for better precision

BUG=skia:

Review URL: https://codereview.chromium.org/797963002
kBitmapDevice.cpp
kDraw.cpp
8893e5f030cb2f6c3bdf698c1767a244ae098a5c 15-Dec-2014 reed <reed@google.com> add paint::getFontBounds()

BUG=skia:

Review URL: https://codereview.chromium.org/804903006
kPaint.cpp
5bcbe91304ec2515208b5218517579f48874e928 15-Dec-2014 reed <reed@google.com> Fix rrects that are large enough that we lose/gain a bit when we add the radius to a bounds coordinate.

add test that triggers assert in addRRect

BUG=skia:3239

Review URL: https://codereview.chromium.org/803153003
kPath.cpp
kRRect.cpp
3fcc125c776c837aa858598ce385f5c6f8f01795 15-Dec-2014 junov <junov@chromium.org> Remove SkCanvas::isDrawingToLayer

BUG=3245

Review URL: https://codereview.chromium.org/803913005
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.cpp
kRecorder.h
e8307dc0d0a568775e64515a8fff7b2a709f0834 15-Dec-2014 mtklein <mtklein@chromium.org> Add SK_OVERRIDE to a few places that are missing it.

This was done automatically by running clang-modernize -add-override -override-macros.

It's not clear to me whether include/ is already clean or I just can't get the tool to work for headers.

BUG=skia:

Review URL: https://codereview.chromium.org/808463002
kBlitter.cpp
kBlitter_RGB16.cpp
kImageFilter.cpp
kRegion_path.cpp
kScan_Path.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
e05fed0d6339c63c8cceff74af0b8d120c07e54c 15-Dec-2014 reed <reed@google.com> add dumpHex option to rect and rrect, to match path

BUG=skia:

Review URL: https://codereview.chromium.org/801383002
kPath.cpp
kRRect.cpp
kRect.cpp
kStringUtils.cpp
kStringUtils.h
451e822705174c8fe9f5b172c8783d9be3c4c79c 13-Dec-2014 reed <reed@chromium.org> add get9 and set9 to matrix, to aid in making keys

BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/806543002
kMatrix.cpp
0e912464cecf50cc152c3fb93c2aac31c8a99cac 12-Dec-2014 robertphillips <robertphillips@google.com> Harden validation for SkPathRef

Review URL: https://codereview.chromium.org/801003003
kPathRef.cpp
8dd31cf69e24ff82865309781107dfab948b6a02 12-Dec-2014 caryclark <caryclark@google.com> Extract cubic classification from gpu into geometry

Move code from the GPU path utilities into geometry so that
path ops can share.

Review URL: https://codereview.chromium.org/787763007
kGeometry.cpp
kGeometry.h
ef3fcd877aa78c1d0ac802043cd8785180304c12 12-Dec-2014 bsalomon <bsalomon@google.com> More win64 warning fixes

Review URL: https://codereview.chromium.org/798723002
kDebug.cpp
kDistanceFieldGen.cpp
kDistanceFieldGen.h
f0f14113431ace669f278fdd97b50950f2cf4c80 12-Dec-2014 mtklein <mtklein@chromium.org> Cull pushCull and popCull from Skia.

These calls are unused and going away. Waiting on crrev.com/796083002.

BUG=skia:

Review URL: https://codereview.chromium.org/794263002
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
59dba146fe4170c4986b2494414c08be2c93d4a2 12-Dec-2014 mtklein <mtklein@chromium.org> SkRecord: increase min block to 512B, remove max.

When we added the 64K allocation cap, the bots showed we took a perf hit
on some large .skps like desk_pokemonwiki.skp, despite not seeing a local
effect. I'm still not seeing that locally, but I'd like to try removing the cap on
the bots to see what happens. For big monolithic pictures, really packing into
memory tightly is probably not as important as it is for tiny ones.

Similarly, we're probably being too cautious about making tiny allocations.
Today we start at 16 bytes, which isn't really enough to record anything.
Even the smallest picture, say,
save
clipRect
drawRect
restore
requires ~200 bytes, so we might as well move our minimum block size up
near there.

I don't know if 16 bytes is too small to start for GrTextStrikes, so I've left the
behavior the same (though the max is still gone).

Local recording performance is neutral-to-positive:
tabl_deviantart.skp 126us -> 129us 1.02x
tabl_nytimes.skp 110us -> 112us 1.02x
tabl_cuteoverload.skp 521us -> 530us 1.02x
desk_mobilenews.skp 673us -> 682us 1.01x
desk_chalkboard.skp 843us -> 854us 1.01x
desk_sfgate.skp 528us -> 535us 1.01x
desk_silkfinance.skp 68.2us -> 69us 1.01x
desk_youtube.skp 623us -> 629us 1.01x
desk_blogger.skp 472us -> 475us 1.01x
desk_jsfiddlehumperclip.skp 42.2us -> 42.5us 1.01x
desk_espn.skp 255us -> 256us 1.01x
desk_ebay.skp 174us -> 174us 1x
desk_twitter.skp 454us -> 455us 1x
tabl_pravda.skp 200us -> 201us 1x
desk_wordpress.skp 782us -> 784us 1x
desk_samoasvg.skp 762us -> 761us 1x
tabl_mozilla.skp 1.58ms -> 1.58ms 1x
tabl_slashdot.skp 107us -> 107us 1x
tabl_techmeme.skp 102us -> 102us 0.99x
tabl_gamedeksiam.skp 729us -> 724us 0.99x
tabl_nofolo.skp 65.3us -> 64.7us 0.99x
desk_gmailthread.skp 339us -> 336us 0.99x
tabl_sahadan.skp 91us -> 90us 0.99x
desk_yahooanswers.skp 144us -> 142us 0.99x
tabl_cnet.skp 143us -> 141us 0.99x
tabl_googleblog.skp 206us -> 203us 0.99x
tabl_cnn.skp 160us -> 158us 0.99x
tabl_frantzen.skp 50.5us -> 49.6us 0.98x
desk_linkedin.skp 328us -> 323us 0.98x
tabl_digg.skp 790us -> 769us 0.97x
desk_jsfiddlebigcar.skp 40.6us -> 39.5us 0.97x
desk_mapsvg.skp 1.57ms -> 1.52ms 0.97x
tabl_gmail.skp 19.4us -> 18.6us 0.96x
tabl_hsfi.skp 9.81us -> 9.11us 0.93x

BUG=skia:

Review URL: https://codereview.chromium.org/793033002
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
891372c3b5b8229cf5c20b085f2d9448525f98e4 12-Dec-2014 reed <reed@chromium.org> use SkScalar instead of float

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/796803005
kGeometry.h
ccb328d52a58612b65677b9266a297dac795b0df 11-Dec-2014 bsalomon <bsalomon@google.com> Fix some win64 warnings.

Review URL: https://codereview.chromium.org/795223002
kDescriptor.h
kVarAlloc.h
f55c314bfa6db980941f8d0ab485beb2e08589ab 11-Dec-2014 mtklein <mtklein@chromium.org> Enforce thread-safety of bitmaps in pictures via the type.

No runtime difference here, but it makes it impossible to forget to make
a shallow copy; you can't get at the full bitmap without it.

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/799603002
kRecordDraw.cpp
kRecords.h
1a4900e8be6086a824488dc98d4822e440815657 11-Dec-2014 mtklein <mtklein@chromium.org> Force embedding full font when serializing pictures.

We can't do this unconditionally or pipe will become stupidly slow.

DM's serialize mode fails subtly on Mac when we force embedding, so I've
#ifdef'd that away. Other platforms look fine.

BUG=skia:

Review URL: https://codereview.chromium.org/796523002
kPictureData.cpp
kTypeface.cpp
895c43b28b27bb3124db3d32efd0c7219eb4a3cb 11-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Review URL: https://codereview.chromium.org/784643002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kWriteBuffer.cpp
2ff1fcede1e9525285c5de1f35fb2dcb0fab32bd 11-Dec-2014 reed <reed@google.com> Defer saves() until they're needed

patch from issue 759443006 at patchset 40001 (http://crrev.com/759443006#ps40001)

BUG=skia:

Review URL: https://codereview.chromium.org/767333002
kCanvas.cpp
kPictureRecord.cpp
3490263287e9432119c501884e45840de4d986bc 11-Dec-2014 bungeman <bungeman@google.com> Replace use of deprecated CG methods.

OSX10.9 and iOS7.0 deprecated CGContextShowGlyphsAtPoint so a new API
should be used. OSX10.7 and iOS4.2 replace CGContextShowGlyphsAtPoint with
CTFontDrawGlyphs. OSX10.5 and iOS2.0 have CGContextShowGlyphsAtPositions
which works similarly to CTFontDrawGlyphs and has not yet been deprecated.
This change allows the use of CTFontDrawGlyphs when it is available,
falling back to CGContextShowGlyphsAtPositions when it isn't.

Review URL: https://codereview.chromium.org/770383002
kScalerContext.cpp
04b49c31789201fbef969f5598a286187920dd56 10-Dec-2014 fmalita <fmalita@chromium.org> Don't store an SkMatrix in BitmapShaderKey.

SkMatrix makes for a poor key component due to mutable/cache fields.

Use its canonical scalars instead.

R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/792123002
kPictureShader.cpp
387a01a6357b4ba6ff87ac57626de1cb6a3b31bf 10-Dec-2014 fmalita <fmalita@chromium.org> Detect discarded SkPictureShader pixel refs.

This doesn't address the more general problem, but reduces the race
window significantly.

BUG=440282
R=reed@google.com

Review URL: https://codereview.chromium.org/787043006
kPictureShader.cpp
96472deea70169396b8e1f576e470138f55fdb1f 10-Dec-2014 reed <reed@google.com> dd readPixels to SkImage

patch from issue 789673007 at patchset 1 (http://crrev.com/789673007#ps1)

BUG=skia:

Review URL: https://codereview.chromium.org/793723002
kCanvas.cpp
kImageInfo.cpp
c54d8db4d169ea5f2af2a9a2349df007bd428475 10-Dec-2014 Florin Malita <fmalita@google.com> Remove SkCanvas::drawBitmapMatrix()

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/789033002
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
3054be16dfdb0d06233770cbfc338958edef44ea 10-Dec-2014 reed <reed@google.com> Remove canvas::NewRaster, and rename surface::NewRasterPMColor to N32Premul

patch from issue 781403002 at patchset 20001 (http://crrev.com/781403002#ps20001)

BUG=skia:
TBR=
re-landing after chrome fixes have landed

Review URL: https://codereview.chromium.org/784223007
kCanvas.cpp
a8918a065075dece6e407cce0dfddf110e5d61a9 09-Dec-2014 reed <reed@google.com> Revert of remove (dumb) canvas::NewRaster, and rename surface::NewRasterPMColor to N32Premul (patchset #3 id:40001 of https://codereview.chromium.org/790733003/)

Reason for revert:
need to update chrome first

Original issue's description:
> remove (dumb) canvas::NewRaster, and rename surface::NewRasterPMColor to N32Premul
>
> patch from issue 781403002 at patchset 20001 (http://crrev.com/781403002#ps20001)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2c1605a1fbaa2e35a27399a34254fb1200ec2ae6

TBR=fmalita@google.com,fmalita@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/791763002
kCanvas.cpp
f3c78ccf5694d22d2e4a7061a80399a7e69b59db 09-Dec-2014 junov <junov@chromium.org> Adding an option for pixelated rendering in SkPictureImageFilter

BUG=skia:3209

Review URL: https://codereview.chromium.org/787073003
kReadBuffer.h
2c1605a1fbaa2e35a27399a34254fb1200ec2ae6 09-Dec-2014 reed <reed@google.com> remove (dumb) canvas::NewRaster, and rename surface::NewRasterPMColor to N32Premul

patch from issue 781403002 at patchset 20001 (http://crrev.com/781403002#ps20001)

BUG=skia:

Review URL: https://codereview.chromium.org/790733003
kCanvas.cpp
a8b326c01a92e7f331c2c5dcf75cd7ce7a99ce73 09-Dec-2014 reed <reed@google.com> change SkPoint::setLength to set itself to (0,0) if it starting length is degenerate.

BUG=skia:3203
TBR=caryclark

Review URL: https://codereview.chromium.org/785933003
kPath.cpp
kPoint.cpp
9513143efa734bef0c1a0c7f945022572dbc8518 09-Dec-2014 egdaniel <egdaniel@google.com> Make all blending up to GrOptDrawState be handled by the xp/xp factory.

In this cl the blending information is extracted for the xp and stored in the ODS
which is then used as it currently is. In the follow up cl, an XP backend will be added
and at that point all blending work will take place inside XP's.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7c66342a399b529634bed0fabfaa562db2c0dbd4

Review URL: https://codereview.chromium.org/759713002
kXfermode.cpp
9f876a37d8b80ef04ccbc7755cf4572aecc33981 09-Dec-2014 bsalomon <bsalomon@google.com> Use threshold of 1 texture coord value per pixel w/ nearest neighbor.

Review URL: https://codereview.chromium.org/787873002
kXfermode.cpp
303044579913eacc177d4b28a674121725c565bb 09-Dec-2014 scroggo <scroggo@google.com> Revert of Replace EncodeBitmap with an interface. (patchset #12 id:210001 of https://codereview.chromium.org/784643002/)

Reason for revert:
Failing serialization tasks in DM:

http://build.chromium.org/p/client.skia/builders/Test-Win8-ShuttleA-GTX660-x86-Debug/builds/352/steps/dm/logs/stdio

Original issue's description:
> Replace EncodeBitmap with an interface.
>
> Gives more flexibility to the caller to decide whether to use the
> encoded data returned by refEncodedData().
>
> Provides an implementation that supports the old version of
> SkPicture::serialize().
>
> TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely
>
> BUG=skia:3190
>
> Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1
>
> Committed: https://skia.googlesource.com/skia/+/02b217f80b01a7dda8493422e5257c36a9ce8464

TBR=reed@google.com,rmistry@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:3190

Review URL: https://codereview.chromium.org/783393004
kPicture.cpp
kPictureData.cpp
kPictureData.h
kWriteBuffer.cpp
02b217f80b01a7dda8493422e5257c36a9ce8464 09-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1

Review URL: https://codereview.chromium.org/784643002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kWriteBuffer.cpp
c0708cb7bcc22a6ad14fc3c2198d8e00d71c6754 09-Dec-2014 robertphillips <robertphillips@google.com> Revert of Replace EncodeBitmap with an interface. (patchset #11 id:190001 of https://codereview.chromium.org/784643002/)

Reason for revert:
Compilation is failing on some bots

Original issue's description:
> Replace EncodeBitmap with an interface.
>
> Gives more flexibility to the caller to decide whether to use the
> encoded data returned by refEncodedData().
>
> Provides an implementation that supports the old version of
> SkPicture::serialize().
>
> TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely
>
> BUG=skia:3190
>
> Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1

TBR=reed@google.com,scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:3190

Review URL: https://codereview.chromium.org/787833002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kWriteBuffer.cpp
0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1 09-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Review URL: https://codereview.chromium.org/784643002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kWriteBuffer.cpp
8d95ffa497091d0c9c7cda099684c7bca6714a17 08-Dec-2014 egdaniel <egdaniel@google.com> Revert of Make all blending up to GrOptDrawState be handled by the xp/xp factory. (patchset #7 id:140001 of https://codereview.chromium.org/759713002/)

Reason for revert:
break many gm's

Original issue's description:
> Make all blending up to GrOptDrawState be handled by the xp/xp factory.
>
> In this cl the blending information is extracted for the xp and stored in the ODS
> which is then used as it currently is. In the follow up cl, an XP backend will be added
> and at that point all blending work will take place inside XP's.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7c66342a399b529634bed0fabfaa562db2c0dbd4

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/766653008
kXfermode.cpp
7c66342a399b529634bed0fabfaa562db2c0dbd4 08-Dec-2014 egdaniel <egdaniel@google.com> Make all blending up to GrOptDrawState be handled by the xp/xp factory.

In this cl the blending information is extracted for the xp and stored in the ODS
which is then used as it currently is. In the follow up cl, an XP backend will be added
and at that point all blending work will take place inside XP's.

BUG=skia:

Review URL: https://codereview.chromium.org/759713002
kXfermode.cpp
a2bd24fd15378d0a25d79b4aa2d76dddc4cf564c 08-Dec-2014 fmalita <fmalita@chromium.org> Tweak SkPictureShader's tile semantics.

Currently, the tile offset is added when drawing the picture. This might
have made a tiny bit of sense when the picture was always positioned at
origin, but with a picture cull rect offset things looks really strange.

For example, to specify a tile == the picture cull rect we have to pass
in [-cullrect.x, -cullrect.y, cullrect.width, cullrect.height]. Yikes.

(there's also a bug when not passing a tile, as we use a default tile
== cullrect but don't compensate for the above oddity)

This changes the semantics of the tile offset: it is now subtracted when
drawing the picture tile. As a consequence, one can pass in a tile equal
to the cull rect and get the expected behavior (same when not passing
a tile).

This will require a minor Blink change with the roll, as one client
works around the current behavior:
https://codereview.chromium.org/789503003

R=reed@google.com,robertphillips@google.com
BUG=440046

Review URL: https://codereview.chromium.org/733203005
kPictureShader.cpp
2be0fd8dcbd1155ba4b702f1a606f3a816759dbb 08-Dec-2014 fmalita <fmalita@chromium.org> Constify CreatePictureShader's picture arg.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/768113004
kShader.cpp
08c357c9142c68e1ec9493eb3d5aeacb41ccd7b5 08-Dec-2014 reed <reed@chromium.org> remove device::clear -- no longer called

BUG=skia:

Review URL: https://codereview.chromium.org/778373003
kDevice.cpp
b9bb38cd187bfd43abfa8577da0ab4e34d181073 08-Dec-2014 reed <reed@chromium.org> make SkColorShader private, use public factory

BUG=skia:

Need https://codereview.chromium.org/785823002/ to land first

Review URL: https://codereview.chromium.org/788533002
kColorShader.h
d3d1a988b1ed144b0123dbe594c3a47a63d6451d 08-Dec-2014 caryclark <caryclark@google.com> add convexity logic and tests for scalar max, Inf, and NaN

PathOps relies on isConvex() only returning true for trivially
convex paths. The old logic also returns true if the paths that
contain NaNs and Infinities. Return kUnknown_Convexity instead
in those cases and in cases where the convexity logic computes
intermediaries that overflow.

Review URL: https://codereview.chromium.org/784593002
kPath.cpp
28f9c606e4c8e61015e864219c4bc83a3fdb4a86 05-Dec-2014 jvanverth <jvanverth@google.com> Add support for half float alpha textures.

This allows us to create distance field textures with better precision,
which may help text quality.

BUG=skia:3103

Review URL: https://codereview.chromium.org/762923003
kHalf.h
5f14c5e038a16c80d50c2f87ae7c8775f977456c 05-Dec-2014 bungeman <bungeman@google.com> Factor text size device mapping in SkScalerContext.

All of our font back-ends use the text size in some way other than
simple concatentation with the current matrix. The code here finds
the full device matrix and then decomposes it to extract the text
size.

FreeType, GDI, and DirectWrite use the text size as the pre-hint scale.
CoreText will not scale color emoji above the requested text size,
and certain features like 'trak' are performed on the text size.

Review URL: https://codereview.chromium.org/748883005
kScalerContext.cpp
kScalerContext.h
69469b570ceb8a5ab7f64778d1b128cd5c472e73 05-Dec-2014 qiankun.miao <qiankun.miao@intel.com> Use size of SkRect as the key for blur mask cache

BUG=429409

Review URL: https://codereview.chromium.org/708073002
kMaskCache.cpp
eb2a6761654307e8aeeeaabdd63c6bf9ab0411e9 04-Dec-2014 joshualitt <joshualitt@chromium.org> Remove backend factories

BUG=skia:

Review URL: https://codereview.chromium.org/778453002
kXfermode.cpp
89dee4298e79b69ef2f1ec045c90ffacff9cabec 04-Dec-2014 reed <reed@google.com> check (thread-tricky) colortable after we've copied the bitmap into a per-thread context

BUG=skia:

Review URL: https://codereview.chromium.org/766283004
kBitmapProcShader.cpp
kBitmapProcState.cpp
8eddfb50c0c9e4bcba6384a2ce39852b5fb5becb 04-Dec-2014 reed <reed@google.com> Change clear() to respect the clip

This reverts commit af641a1c10f176cb9617026d3cc93c117a85d13d.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/783493002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
60f3c657cc0235650b630be78105fc47d37385e7 04-Dec-2014 qiankun.miao <qiankun.miao@intel.com> Add SSSE3 acceleration for S32_D16_filter_DXDY

With this CL, related nanobench can be improved for 565 config.
bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x
bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x
bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/45a05780867a06b9f8a8d5240cf6c5d5a2c15a35

Review URL: https://codereview.chromium.org/773753002
kBitmapProcState.h
9da051ad417c13eb562c91ef6286f92dba2ae232 04-Dec-2014 jam <jam@chromium.org> Revert of Add SSSE3 acceleration for S32_D16_filter_DXDY (patchset #3 id:40001 of https://codereview.chromium.org/773753002/)

Reason for revert:
breaks build when not using SSE3, since the two method definitions differ in parameter types (typo)

Original issue's description:
> Add SSSE3 acceleration for S32_D16_filter_DXDY
>
> With this CL, related nanobench can be improved for 565 config.
> bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x
> bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x
> bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/45a05780867a06b9f8a8d5240cf6c5d5a2c15a35

TBR=mtklein@google.com,qkmiao@gmail.com,qiankun.miao@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/761103003
kBitmapProcState.h
4f10844149bbc05f0259a1b3199c2f995756ed60 03-Dec-2014 mtklein <mtklein@chromium.org> Turn on MPD threading in nanobench.

Seems okay after this small patch to skip lockPixels() / unlockPixels().

BUG=skia:3149

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot

Review URL: https://codereview.chromium.org/773203003
kBitmapProcShader.cpp
c016fb8f9fb53dd8d4936c5e9e16a9dc99ab392e 03-Dec-2014 egdaniel <egdaniel@google.com> Use static XPF for porter duff xp factories.

BUG=skia:

Review URL: https://codereview.chromium.org/776843004
kXfermode.cpp
96a6c4df417a2382dd183b0dbc1c614819795f2a 03-Dec-2014 mtklein <mtklein@chromium.org> Copy src in SkDrawLooper::computeFastBounds().

We do alias src and dst when building the BBH. This meant we calculated
the wrong bounds in LayoutTests/ietestcenter/css3/text/textshadow-010.htm.

Not sure how best to test this inside Skia. It may become moot after I
work through the API changes we were talking about today, but if not I'll
make sure it's tested somehow before I'm done with SkDrawLoopers.

BUG=skia:3186

Review URL: https://codereview.chromium.org/760023004
kDrawLooper.cpp
378092f3d10b1dd62967f419c35cfefec7c10ee7 03-Dec-2014 egdaniel <egdaniel@google.com> Add XferProcessor factory in GrPaint and GrDrawState.

In this CL the XP should have zero effect on the actual rendering pipeline.

BUG=skia:

Review URL: https://codereview.chromium.org/751283002
kXfermode.cpp
e99d499caa7dbc80b58e0faf5ce137e7d30cc5d0 03-Dec-2014 robertphillips <robertphillips@google.com> Fuse GrReplacements and GrLayerCache

The conversion step from GrCachedLayer to ReplacementInfo isn't necessary.

Review URL: https://codereview.chromium.org/769533004
kLayerInfo.h
kMultiPictureDraw.cpp
kRecordDraw.cpp
af641a1c10f176cb9617026d3cc93c117a85d13d 03-Dec-2014 reed <reed@chromium.org> Revert "Change clear() to respect the clip"

This reverts commit 3729469d6a12266037b697c2192768545e097ab0.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/778563002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
1962f521a239a86417509c0628a99ac0b5ba0bc2 03-Dec-2014 reed <reed@chromium.org> Revert of implement device::clear until we can remove callers in chrome skia/ext (patchset #1 id:1 of https://codereview.chromium.org/773903002/)

Reason for revert:
failing win unittests

Original issue's description:
> implement device::clear until we can remove callers in chrome skia/ext
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/252fccfb546efe83fb1d2c7a0b3c18a96ff46ea4

TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/774063002
kDevice.cpp
45a05780867a06b9f8a8d5240cf6c5d5a2c15a35 03-Dec-2014 qiankun.miao <qiankun.miao@intel.com> Add SSSE3 acceleration for S32_D16_filter_DXDY

With this CL, related nanobench can be improved for 565 config.
bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x
bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x
bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x

BUG=skia:

Review URL: https://codereview.chromium.org/773753002
kBitmapProcState.h
701dd4fbd7942f98e413807491f62898941c142c 02-Dec-2014 mtklein <mtklein@chromium.org> Flail a little against LLVM crash.

Cannot reproduce this in my local Chromium checkout (using their Clang, just like the bots).

BUG=skia:

TBR=reed@google.com

Review URL: https://codereview.chromium.org/764433003
kColorTable.cpp
252fccfb546efe83fb1d2c7a0b3c18a96ff46ea4 02-Dec-2014 reed <reed@google.com> implement device::clear until we can remove callers in chrome skia/ext

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/773903002
kDevice.cpp
5234075b1c6bcada4ad17ed5a83bfcb53df66b7f 02-Dec-2014 Justin Novosad <junov@chromium.org> Adding a PictureResolution option to SkPictureImageFilter

This change adds an option to SkPictureImageFilter to make it
rasterize SkPicture in a resolution that matches the local coordinate
space (equivalent to the record-time device space).

BUG=skia:3176
R=reed@google.com, senorblanco@chromium.org

Review URL: https://codereview.chromium.org/753073010
kReadBuffer.h
3729469d6a12266037b697c2192768545e097ab0 02-Dec-2014 reed <reed@google.com> Change clear() to respect the clip

patch from issue 769703002 at patchset 1 (http://crrev.com/769703002#ps1)

BUG=skia:

Review URL: https://codereview.chromium.org/772533004
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
cc969c4dd936c97670788395c9cbee3f346e87d1 02-Dec-2014 mtklein <mtklein@chromium.org> Make SkColorTable explicitly thread-safe.

Mostly this means using SkLazyPtr for the 16-bit cache.
We can remove the copy constructor now and just ref it instead.

BUG=skia:

Review URL: https://codereview.chromium.org/769323002
kBitmap.cpp
kColorTable.cpp
775b8199a214af57c3ea7969e9d456f5f3eb137f 02-Dec-2014 mtklein <mtklein@chromium.org> SkColorTable locking serves no purpose anymore.

The only thing the unlock methods were doing was assert their balance.
This removes the unlock methods and renames the lock methods "read".

BUG=skia:

Review URL: https://codereview.chromium.org/719213008
kBitmap.cpp
kBitmapProcState_procs.h
kColorTable.cpp
kConfig8888.cpp
kProcSpriteBlitter.cpp
kSpriteBlitter_RGB16.cpp
435eba7e1eb6f6622ebe171274a8d595d947a9cd 01-Dec-2014 mtklein <mtklein@chromium.org> Pre-cache local matrix type in shader constructor.

TSAN points out we race when choosing our blitter without this.

BUG=437511

Review URL: https://codereview.chromium.org/773563002
kShader.cpp
3f3b3d003527861dc0bd89733857576408906431 01-Dec-2014 mtklein <mtklein@chromium.org> Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.

This was needed for pictures before v33, and we're now requiring v35+.

Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88

Review URL: https://codereview.chromium.org/769953002
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kEmptyShader.h
kFilterShader.cpp
kFilterShader.h
kFlattenable.cpp
kLocalMatrixShader.cpp
kLocalMatrixShader.h
kPathEffect.cpp
kPictureShader.cpp
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
af57903f330a0afd0c10244d4a66f64fdbef5d1e 01-Dec-2014 mtklein <mtklein@chromium.org> Force SkMatrix type while recording too.

This switches to a new way of doing this, enforcing the caching with the type
recorded rather than having to do it in SkRecorder. Should be more foolproof.

Updated SkPath and SkBitmap's equivalents too. ImmutableBitmap was close,
but using inheritance now makes the rest of the code less weird.

BUG=437511

I'm not sure whether or not this will _fix_ the SkMatrix aspect of that bug.
There may be other SkMatrices that we're racing on. It does cover the obvious
ones, though, and removing the SkTRacy<> wrapper will allow TSAN to show
us any other races.

It turned out to be easier to turn missing optional matrices into I early rather
than late. I figure this should be harmless. Recording and playback perf both
look neutral.

Review URL: https://codereview.chromium.org/773433003
kRecordDraw.cpp
kRecorder.cpp
kRecords.h
6e78293ee896020104ffc4c23b565073e9a49893 01-Dec-2014 mtklein <mtklein@google.com> Revert of Remove SK_SUPPORT_LEGACY_DEEPFLATTENING. (patchset #1 id:1 of https://codereview.chromium.org/769953002/)

Reason for revert:
Breaks canary builds. Will reland after the Chromium change lands.

Original issue's description:
> Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.
>
> This was needed for pictures before v33, and we're now requiring v35+.
>
> Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/768183002
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kEmptyShader.h
kFilterShader.cpp
kFilterShader.h
kFlattenable.cpp
kLocalMatrixShader.cpp
kLocalMatrixShader.h
kPathEffect.cpp
kPictureShader.cpp
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
52c293547b973f7fb5de3c83f5062b07d759ab88 01-Dec-2014 mtklein <mtklein@chromium.org> Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.

This was needed for pictures before v33, and we're now requiring v35+.

Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc

BUG=skia:

Review URL: https://codereview.chromium.org/769953002
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kEmptyShader.h
kFilterShader.cpp
kFilterShader.h
kFlattenable.cpp
kLocalMatrixShader.cpp
kLocalMatrixShader.h
kPathEffect.cpp
kPictureShader.cpp
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
01d6e5f462d1d52203ee1a6660415877e4cf2dde 01-Dec-2014 robertphillips <robertphillips@google.com> Use variable length key (rather than accumulated matrix) as save layer hoisting key

Adding the rendering canvas' CTM to the layer hoisting key (i.e., Add support for hoisting layers in pictures drawn with a matrix - https://codereview.chromium.org/748853002/) has increased the cache miss rate due to accumulated floating point error. This CL fixes part of the issue by using the chain of operation indices leading to each saveLayer as the key. The canvas' CTM must still form part of the key but should be less subject to accumulated error.

BUG=skia:2315

Review URL: https://codereview.chromium.org/753253002
kLayerInfo.h
kMultiPictureDraw.cpp
kRecordDraw.cpp
20b373cf3116905fc5ca1928c9b504851335ca43 01-Dec-2014 cdalton <cdalton@nvidia.com> Add color emoji fallback for nvpr text

BUG=skia:

Review URL: https://codereview.chromium.org/759613005
kStrokeRec.cpp
5c9c9be1f540e1895e65fbd244caae9135972143 01-Dec-2014 mtklein <mtklein@chromium.org> Force path bounds in recording.

The use of SKTRacy isn't safe in SkPathRef.
There are logical dependencies between the racy fields.

Doesn't seem to affect recording performance:

$ c --match skp --config nonrendering
tabl_techmeme.skp 81.1us -> 86us 1.06x
desk_mapsvg.skp 1.23ms -> 1.26ms 1.02x
desk_yahooanswers.skp 114us -> 117us 1.02x
tabl_sahadan.skp 70.9us -> 72us 1.02x
desk_fontwipe.skp 31.6us -> 32us 1.01x
tabl_cuteoverload.skp 414us -> 419us 1.01x
desk_mobilenews.skp 503us -> 508us 1.01x
desk_tigersvg.skp 150us -> 152us 1.01x
desk_samoasvg.skp 608us -> 610us 1x
tabl_digg.skp 636us -> 638us 1x
tabl_pravda.skp 155us -> 156us 1x
desk_jsfiddlehumperclip.skp 33.9us -> 33.9us 1x
tabl_culturalsolutions.skp 295us -> 295us 1x
desk_youtube.skp 447us -> 448us 1x
desk_gws.skp 144us -> 144us 1x
tabl_frantzen.skp 42us -> 42us 1x
tabl_gspro.skp 50.1us -> 50us 1x
tabl_googlecalendar.skp 165us -> 165us 1x
desk_twitter.skp 359us -> 358us 1x
desk_wordpress.skp 588us -> 583us 0.99x
desk_jsfiddlebigcar.skp 32.8us -> 32.5us 0.99x
desk_booking.skp 838us -> 827us 0.99x
tabl_androidpolice.skp 1.42ms -> 1.4ms 0.99x
desk_blogger.skp 378us -> 372us 0.98x
desk_wowwiki.skp 1.11ms -> 1.09ms 0.98x
tabl_cnet.skp 115us -> 112us 0.97x
desk_silkfinance.skp 57.7us -> 55.9us 0.97x
tabl_cnn.skp 136us -> 131us 0.97x
desk_sfgate.skp 396us -> 377us 0.95x
tabl_deviantart.skp 107us -> 102us 0.95x
tabl_mozilla.skp 1.4ms -> 1.32ms 0.94x
BUG=437511

Review URL: https://codereview.chromium.org/762313002
kPathRef.cpp
kRecorder.cpp
88fd0fbcccea615f2d2cd61a121ac9e3185adfe4 01-Dec-2014 mtklein <mtklein@chromium.org> Bump min picture version.

Chrome Stable is M39, which produces picture format v35:
https://chromium.googlesource.com/skia/+/chrome/m39/include/core/SkPicture.h

We don't need any code to deal with pictures older than v35.

(When M40 goes stable, we can step up to v37, the current latest version.)

BUG=skia:

Review URL: https://codereview.chromium.org/770703002
kFlattenable.cpp
kImageFilter.cpp
kLocalMatrixShader.cpp
kPaint.cpp
kPicture.cpp
kPictureData.cpp
kReadBuffer.cpp
kReadBuffer.h
kShader.cpp
936799204b34e7a2f20ac6c0868058799ceb851e 26-Nov-2014 jvanverth <jvanverth@google.com> Add float-to-half (binary16) conversion functions.

Based on code by Fabian Giesen at
https://fgiesen.wordpress.com/2012/03/28/half-to-float-done-quic/.

These will be needed for creating binary16 textures from floating point data.

BUG=skia:3103

Review URL: https://codereview.chromium.org/760753003
kHalf.cpp
kHalf.h
9881d63c57002ffbdf2adf623965ece280279989 26-Nov-2014 danakj <danakj@chromium.org> Make skia trace category disabled by default.

BUG=skia:3088

Review URL: https://codereview.chromium.org/761773003
kCanvas.cpp
f0090cb80ab10a49e511aa5450ae38917fa058d9 26-Nov-2014 reed <reed@chromium.org> add basic tests for save/restore counting

BUG=skia:

Review URL: https://codereview.chromium.org/763503003
kCanvas.cpp
267ce482b54f46097584e0f9350ec74aa6a2cd44 25-Nov-2014 joshualitt <joshualitt@chromium.org> remove proc key

BUG=skia:

Review URL: https://codereview.chromium.org/755363002
kXfermode.cpp
f3ca41c723f3a33a766de64a1cda9a01bab20142 25-Nov-2014 scroggo <scroggo@google.com> Add an Android-framework-only stable ID to SkPixelRef.

BUG:b/18245805

Review URL: https://codereview.chromium.org/752203002
kPixelRef.cpp
b116619028ea826b322919d176d9c87f9569d8e7 25-Nov-2014 mtklein <mtklein@chromium.org> Sk4x_sse.h

CQ_EXTRA_TRYBOTS=client.skia:Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release-Trybot,Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Release-Trybot,Test-Win7-ShuttleA-HD2000-x86-Debug-GDI-Trybot

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/e4bf793120d3bfc9b003d11880a3fb73ff2b89e9

Review URL: https://codereview.chromium.org/698873003
k4x.h
k4x_sse.h
be2284de556e7ec29489693093d42dc86b762645 25-Nov-2014 bungeman <bungeman@google.com> Use text size on Mac.

The current code assumes that text on Mac is freely scalable,
or at least that the text size is just a part of the transform.
However, it appears that application of the 'trak' table,
as well as other optical adjustments, may rely on the text size
directly.

This change passes the text size requested directly to CoreText.

BUG=chromium:427528

Review URL: https://codereview.chromium.org/752183002
kScalerContext.cpp
kScalerContext.h
6ff4acedb58ab5ef83b8e598637976d592572630 25-Nov-2014 qiankun.miao <qiankun.miao@intel.com> Optimize highQualityFilter

portable version:
before:
10M 1 806µs 807µs 810µs 821µs 1% █▂▁▁▃▁▁▁█▁ 8888 bitmap_BGRA_8888_A_scale_rotate_bicubic
after:
10M 1 566µs 568µs 569µs 579µs 1% ▄▂▂█▂▁▁▁▃▁ 8888 bitmap_BGRA_8888_A_scale_rotate_bicubic

SSE version:
before:
10M 1 485µs 486µs 487µs 494µs 1% ▇▂▁▁▁▁█▂▁▁ 8888 bitmap_BGRA_8888_A_scale_rotate_bicubic
after:
10M 1 419µs 420µs 421µs 430µs 1% ▅▃▂▁▁█▂▁▁▁ 8888 bitmap_BGRA_8888_A_scale_rotate_bicubic

BUG=skia:

Review URL: https://codereview.chromium.org/759603002
kBitmapFilter.cpp
26a6bf6a26b0e837377c876d74508aaefee72658 25-Nov-2014 reed <reed@chromium.org> free up picturerecorder refs after returning picture or drawable

this just accelerates what would happen on the next beginRecording() call or the destructor. chrome has unittests that break (shaders on the stack) if we hold on to the internals past endRecording().

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/758813002
kPictureRecorder.cpp
f98862c39b7e79a35f1907cb94240f5d0545fe7b 24-Nov-2014 mtklein <mtklein@chromium.org> SkRecord: outline methods that are not called O(N) times.

Looks like a noop-to-minor-win:
tabl_sahadan.skp 94.9us -> 98.6us 1x
desk_jsfiddlebigcar.skp 38.9us -> 39.7us 1x
desk_silkfinance.skp 78us -> 78.9us 1x
desk_jsfiddlehumperclip.skp 43.8us -> 44.3us 1x
desk_sfgate.skp 547us -> 548us 1x
tabl_gmail.skp 19.9us -> 19.8us 1x
tabl_worldjournal.skp 230us -> 229us 1x
desk_css3gradients.skp 248us -> 247us 1x
tabl_cnn.skp 205us -> 203us 0.99x
desk_linkedin.skp 342us -> 340us 0.99x
desk_wowwiki.skp 1.63ms -> 1.62ms 0.99x
tabl_cnet.skp 142us -> 141us 0.99x
desk_pokemonwiki.skp 9.76ms -> 9.67ms 0.99x
desk_espn.skp 267us -> 264us 0.99x
desk_youtube.skp 576us -> 570us 0.99x
tabl_pravda.skp 238us -> 235us 0.99x
tabl_ukwsj.skp 566us -> 560us 0.99x
tabl_engadget.skp 630us -> 622us 0.99x
desk_googlespreadsheetdashed.skp 1.66ms -> 1.64ms 0.99x
desk_mobilenews.skp 486us -> 480us 0.99x
tabl_googlecalendar.skp 211us -> 208us 0.99x
desk_samoasvg.skp 740us -> 730us 0.99x
desk_gws.skp 187us -> 184us 0.99x
desk_ebay.skp 234us -> 230us 0.99x
desk_mapsvg.skp 1.6ms -> 1.58ms 0.98x
tabl_nytimes.skp 130us -> 128us 0.98x
tabl_googleblog.skp 305us -> 300us 0.98x
desk_fontwipe.skp 40.3us -> 39.6us 0.98x
desk_tigersvg.skp 189us -> 186us 0.98x
tabl_androidpolice.skp 662us -> 650us 0.98x
desk_wordpress.skp 824us -> 809us 0.98x
tabl_mlb.skp 338us -> 331us 0.98x
tabl_culturalsolutions.skp 390us -> 382us 0.98x
desk_baidu.skp 213us -> 208us 0.98x
tabl_gspro.skp 72.9us -> 71.1us 0.97x
tabl_nofolo.skp 74us -> 71.9us 0.97x
desk_yahooanswers.skp 173us -> 168us 0.97x
tabl_frantzen.skp 57.3us -> 55.6us 0.97x
desk_chalkboard.skp 891us -> 865us 0.97x
desk_pinterest.skp 154us -> 149us 0.97x
desk_blogger.skp 537us -> 519us 0.97x
tabl_hsfi.skp 10.1us -> 9.69us 0.96x
desk_gmailthread.skp 333us -> 318us 0.96x
tabl_digg.skp 926us -> 883us 0.95x
desk_googlespreadsheet.skp 586us -> 558us 0.95x
desk_forecastio.skp 101us -> 95.7us 0.95x
desk_booking.skp 1.1ms -> 1.04ms 0.95x
tabl_deviantart.skp 144us -> 136us 0.95x
desk_facebook.skp 584us -> 553us 0.95x
desk_weather.skp 289us -> 272us 0.94x
desk_googlehome.skp 61.1us -> 57.5us 0.94x
desk_googleplus.skp 914us -> 849us 0.93x
desk_twitter.skp 499us -> 463us 0.93x

BUG=skia:

Review URL: https://codereview.chromium.org/756783002
kRecord.cpp
kRecord.h
1bdfd3f4f09e47364f76d3f08177b1ce844ac786 24-Nov-2014 reed <reed@google.com> option to return drawable from recording

patch from issue 747033005 at patchset 80001 (http://crrev.com/747033005#ps80001)

BUG=skia:

Review URL: https://codereview.chromium.org/732653004
kCanvasDrawable.cpp
kCanvasDrawable.h
kPicture.cpp
kPictureRecorder.cpp
kRecord.h
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
30d7841f906116c3945ec8125a816a5c5462fed0 24-Nov-2014 robertphillips <robertphillips@google.com> Add support for hoisting layers in pictures drawn with a matrix

Although Chromium doesn't use the drawPicture matrix parameter for their tiling, our local code does. Without such drawPicture calls break layer hoisting.

BUG=skia:2315

Review URL: https://codereview.chromium.org/748853002
kMultiPictureDraw.cpp
7ef849d45a4de02697697ea213bfae7c215a0c38 24-Nov-2014 mtklein <mtklein@chromium.org> Add Sk prefix to CreateBitmapShader.

It's neither static nor namespaced, so we should probably prefix it.

BUG=skia:

Review URL: https://codereview.chromium.org/754083002
kBitmapProcShader.cpp
kBitmapProcShader.h
kDraw.cpp
kShader.cpp
04c96950554b4e416755c5bc23022674518a6e8b 24-Nov-2014 mtklein <mtklein@chromium.org> Remove Picture deletion listeners.

Looks like we can just have ~SkPicture put the message on the bus directly.

BUG=skia:3144

Review URL: https://codereview.chromium.org/751663002
kPicture.cpp
19ac76753ec9f71a8eb0b58cf0450fd4e59f2a7c 21-Nov-2014 mtklein <mtklein@chromium.org> SkPicture::SnapshotArray doesn't really stand to benefit from refcounting.

BUG=skia:

Review URL: https://codereview.chromium.org/748803005
kPicture.cpp
kPictureRecorder.cpp
179465150939c2f2420bfc15dc33825b1130e7f7 21-Nov-2014 mtklein <mtklein@chromium.org> Switch SkBitmapProcState's SkFractionalInt to 32.32.

16 bits are not enough to hold the integral part of fx in
Clamp_S32_opaque_D32_nofilter_DX_shaderproc.

Weirdly, no GM diffs on my desktop.

BUG=skia:3096

Review URL: https://codereview.chromium.org/733163003
kBitmapProcState.h
09a22e9597e271c44dc7c2b71c72cf62a7de1e19 21-Nov-2014 mtklein <mtklein@chromium.org> Watch out for SkFixed overflow in SkMipMap.cpp.

Tested with -fsanitize=signed-integer-overflow.
This new assert used to trigger in MipMap unit test.

Don't appear to be any GM diffs.

BUG=skia:

Review URL: https://codereview.chromium.org/729373004
kMipMap.cpp
b7ee349f108040fbd5cb71d891d5b74a1843b0bc 21-Nov-2014 mtklein <mtklein@chromium.org> SkData -> SkPicture::SnapshotArray

Restores type safety with all the same features.

(Also note, less code: 29 insertions, 50 deletions.)

BUG=skia:

Review URL: https://codereview.chromium.org/746553002
kPicture.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
42ddcd49060f64be57f00e651650154f9b4f3a08 21-Nov-2014 mtklein <mtklein@chromium.org> All the small packing tweaks mentioned in the bug.

BUG=skia:3144

Review URL: https://codereview.chromium.org/748063002
kRecordDraw.cpp
kRecorder.cpp
kRecords.h
41d2c2e434d11e73f66c597913c29ea1fb3fa879 21-Nov-2014 reed <reed@google.com> simplify uniqueID code in picture

patch from issue 750003002 at patchset 1 (http://crrev.com/750003002#ps1)

BUG=skia:

Review URL: https://codereview.chromium.org/752573002
kPicture.cpp
5b69377507478623dcf5b11f3ecb010f87c4794f 21-Nov-2014 robertphillips <robertphillips@google.com> Add MultiPictureDraw to nanobench

I would like some guard against performance regressions on our side before turning layer hoisting on in Chromium.

TBR=bsalomon@google.com

Committed: https://skia.googlesource.com/skia/+/0ddad31012dabfc1267effc8071d37f7d606efbe

Review URL: https://codereview.chromium.org/731973005
kColorTable.cpp
e77dadd91ae6f4319c2c047e7e36cc79bb4d1eff 21-Nov-2014 robertphillips <robertphillips@google.com> Revert of Add MultiPictureDraw to nanobench (patchset #7 id:120001 of https://codereview.chromium.org/731973005/)

Reason for revert:
Needs more work

Original issue's description:
> Add MultiPictureDraw to nanobench
>
> I would like some guard against performance regressions on our side before turning layer hoisting on in Chromium.
>
> TBR=bsalomon@google.com
>
> Committed: https://skia.googlesource.com/skia/+/0ddad31012dabfc1267effc8071d37f7d606efbe

TBR=mtklein@google.com,bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/750583002
kBitmap.cpp
kColorTable.cpp
0ddad31012dabfc1267effc8071d37f7d606efbe 21-Nov-2014 robertphillips <robertphillips@google.com> Add MultiPictureDraw to nanobench

I would like some guard against performance regressions on our side before turning layer hoisting on in Chromium.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/731973005
kBitmap.cpp
kColorTable.cpp
8ebaa7171246eb5b3a7dd65ba42ef42a888508d7 21-Nov-2014 fmalita <fmalita@chromium.org> Revert of SkCanvas::clear() should call down to devices even when the clip is empty. (patchset #1 id:1 of https://codereview.chromium.org/735233003/)

Reason for revert:
Chrome unit_tests failures on Mac & Win, blocking the roll: http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/5613

Original issue's description:
> SkCanvas::clear() should call down to devices even when the clip is empty.
>
> SkDrawIter had a lovely, completely unused, option for this. Oversight?
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/378e70d8e561b72a904286ea231946f5c8345b9a

TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/748733002
kCanvas.cpp
2d97bc139a7de5813468bd3dbfd0037351ae5606 20-Nov-2014 fmalita <fmalita@chromium.org> Disable LCD text explicitly in SkPictureImageFilter::onFilterImage()

As an intermediate fix for
https://code.google.com/p/skia/issues/detail?id=3142, we can use a
non-public SkCanvas constructor and force-disable LCD text.

BUG=skia:3142
R=reed@google.com,senorblanco@google.com

Review URL: https://codereview.chromium.org/725243004
kCanvas.cpp
kDeviceImageFilterProxy.h
08d1fccf6eeec0a9fd5421e59e4d05daccf6e339 20-Nov-2014 mtklein <mtklein@chromium.org> Add SkNVRefCnt, prune down SkPicture's size

SkNVRefCnt is a variant of SkRefCnt that's Not Virtual, so weighs 4 bytes
instead of 8 or 16. There's only benefit to doing this if the deriving class
does not otherwise need a vtable, e.g. SkPicture.

I've stripped out some cruft from SkPicture, rearranged fields to pack tightly,
and added compile asserts for the sizes of SkPicture, SkRecord, and
SkVarAlloc.

BUG=skia:3144

Review URL: https://codereview.chromium.org/741793002
kRecord.h
kRecorder.cpp
kVarAlloc.h
cdeeb095a629b0db9f0ddff09516f2b78255c047 20-Nov-2014 mtklein <mtklein@chromium.org> SkRecord: Pack SkRegion::Op and AA bit together.

Saves 4 bytes per clip op.

BUG=skia:

Review URL: https://codereview.chromium.org/741093002
kRecordDraw.cpp
kRecorder.cpp
kRecords.h
378e70d8e561b72a904286ea231946f5c8345b9a 20-Nov-2014 mtklein <mtklein@chromium.org> SkCanvas::clear() should call down to devices even when the clip is empty.

SkDrawIter had a lovely, completely unused, option for this. Oversight?

BUG=skia:

Review URL: https://codereview.chromium.org/735233003
kCanvas.cpp
072803144a623f1a59eb73ca5f3ddf45222b5e06 20-Nov-2014 bsalomon <bsalomon@google.com> Stop overloading internal_dispose in SkTextBlob and SkData

Review URL: https://codereview.chromium.org/737093002
kData.cpp
kTextBlob.cpp
7cc1a34fbf5506e3a9e6834f0dcd988aa7c94084 20-Nov-2014 mtklein <mtklein@chromium.org> Make sure pictures draw Clears even when the clip is empty.

We fix this by rewriting empty queries to very tiny queries, which will certainly
hit ops that span the entire picture (like Clear) and hopefully not much more.

(This doesn't quite work in the full cull rect world if [0,0,ε,ε] doesn't
overlap the picture. Let's cross that bridge when we get there.)

BUG=432991

Review URL: https://codereview.chromium.org/732723004
kRecordDraw.cpp
ace7f4276997235abe559b70620d9f89737d2518 20-Nov-2014 rosca <rosca@adobe.com> Preventing division by 0 in non-separable blend mode shaders.

In the software path, the same issue has been fixed some time ago:
https://codereview.chromium.org/114173002

BUG=skia:

Review URL: https://codereview.chromium.org/666043003
kXfermode.cpp
158fcaa031d105dc999d9813fee8927db56a871c 19-Nov-2014 tomhudson <tomhudson@chromium.org> Implement SkPicture::bytesUsed() for SkRecord backend

BUG=chromium:230419
R=mtklein@google.com,reed@google.com

Review URL: https://codereview.chromium.org/490253003
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
kRecord.h
kTileGrid.cpp
kTileGrid.h
72f92acd47a884b9a1cc961a822a2d4e586b54c1 19-Nov-2014 mtklein <mtklein@chromium.org> No need to short circuit the query rect here anymore.

Whatever assertion was triggering in SkRTree.cpp seems to be gone now.

BUG=432991

Review URL: https://codereview.chromium.org/725373003
kRecordDraw.cpp
78e276889795454891cbba48ab11927968114953 19-Nov-2014 reed <reed@google.com> Allow pictures to have a full bounds

This reverts commit 7c4cdd2c5b7b6c71fa0e7612594f7885f2dbf264.

BUG=skia:

Review URL: https://codereview.chromium.org/738083002
kBBHFactory.cpp
kCanvas.cpp
kCanvasDrawable.cpp
kPicture.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
7c4cdd2c5b7b6c71fa0e7612594f7885f2dbf264 19-Nov-2014 reed <reed@google.com> Revert of allow pictures to have a full bounds (patchset #3 id:40001 of https://codereview.chromium.org/736583004/)

Reason for revert:
needed to update legacy width() helpers

Original issue's description:
> allow pictures to have a full bounds
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7e76bff26e7c74902841ca4f607eb0b24a833a4a

TBR=fmalita@google.com,mtklein@google.com,robertphillips@google.com,fmalita@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/722043005
kBBHFactory.cpp
kCanvas.cpp
kCanvasDrawable.cpp
kPicture.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
7e76bff26e7c74902841ca4f607eb0b24a833a4a 19-Nov-2014 reed <reed@google.com> allow pictures to have a full bounds

BUG=skia:

Review URL: https://codereview.chromium.org/736583004
kBBHFactory.cpp
kCanvas.cpp
kCanvasDrawable.cpp
kPicture.cpp
kPictureRecorder.cpp
kRecorder.cpp
kRecorder.h
b07a94f1cba3976596ae1a7f23d8c2043ba353f3 19-Nov-2014 reed <reed@chromium.org> add roundOut that returns its result

BUG=skia:

Review URL: https://codereview.chromium.org/742663002
kBitmapDevice.cpp
kCanvas.cpp
kDraw.cpp
kImageFilter.cpp
kMaskFilter.cpp
kRasterClip.cpp
kScalerContext.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
6be2aa9a251bf6022570a03140f956655b3ef1da 18-Nov-2014 reed <reed@google.com> wip for drawables

Idea:

1. in its mutable recording state, keep a table of drawables on the side, and store an index in the record list.

2. In "immediate-mode" draw, just call the clients drawable directly (need access to our private list to turn the stored index into a proc)

3. when we "snap", we replace the list of drawables with a list of (sub) pictures, and then during playback of the snapped picture, we invoke a private drawable which just calls "drawPicture" on the index'd subpicture.

Review URL: https://codereview.chromium.org/727363003
kCanvas.cpp
kCanvasDrawable.cpp
kCanvasDrawable.h
kPicture.cpp
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecorder.cpp
kRecorder.h
kRecords.h
0bd57b2e1eb6ff824ac59a461d1a8aa24a808886 18-Nov-2014 mtklein <mtklein@chromium.org> SkVarAlloc::approxBytesAllocated()

This is what I was getting at on the other CL.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/f27f1bcce50c8f95aea8469684a70b70c9baee09

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

Review URL: https://codereview.chromium.org/730193003
kVarAlloc.cpp
kVarAlloc.h
a06a9531213d2f00a0fe1dc07acd96eba57e6044 18-Nov-2014 mtklein <mtklein@chromium.org> Prune SkRTree

- Propagate a bunch of constant parameters through.
- Delete code that's not used when bulk loading.
- Allocate all Nodes together.
- Stay in SkRect.

Doing a single malloc for the nodes can't not have improved memory usage.

Looks like this might improve record performance ~5%, probably mostly from
staying in SkRects. This finally dethrones building the BBH as the hot spot.
(Now it's mapping user bounds back to device bounds and adjusting for paints.)

Recording time changes from my MBP:
desk_rectangletransition.skp 11.5us -> 11.7us 1x
desk_forecastio.skp 115us -> 114us 0.98x
desk_booking.skp 550us -> 541us 0.98x
tabl_mercurynews.skp 176us -> 173us 0.98x
tabl_hsfi.skp 294us -> 287us 0.98x
desk_wordpress.skp 351us -> 343us 0.98x
tabl_worldjournal.skp 439us -> 426us 0.97x
tabl_gmail.skp 20.3us -> 19.7us 0.97x
desk_youtubetvvideo.skp 10.8us -> 10.4us 0.97x
desk_googleplus.skp 1.1ms -> 1.07ms 0.97x
tabl_slashdot.skp 106us -> 103us 0.97x
desk_jsfiddlebigcar.skp 26.7us -> 25.7us 0.96x
tabl_techmeme.skp 95.4us -> 91.7us 0.96x
tabl_deviantart.skp 133us -> 127us 0.96x
desk_pinterest.skp 40.6us -> 38.9us 0.96x
desk_carsvg.skp 195us -> 187us 0.96x
tabl_engadget.skp 376us -> 359us 0.96x
tabl_sahadan.skp 60.5us -> 57.5us 0.95x
tabl_culturalsolutions.skp 255us -> 242us 0.95x
tabl_gspro.skp 58.3us -> 55.5us 0.95x
desk_linkedin.skp 146us -> 138us 0.94x
desk_ebay.skp 192us -> 181us 0.94x
tabl_cnn.skp 467us -> 440us 0.94x
desk_jsfiddlehumperclip.skp 29.9us -> 28.1us 0.94x
desk_tigersvg.skp 43.2us -> 40.5us 0.94x
desk_yahooanswers.skp 131us -> 123us 0.94x
desk_googlespreadsheetdashed.skp 1.18ms -> 1.11ms 0.94x
desk_blogger.skp 193us -> 181us 0.94x
tabl_mozilla.skp 1.82ms -> 1.7ms 0.94x
tabl_mlb.skp 145us -> 136us 0.93x
mobi_wikipedia.skp 577us -> 539us 0.93x
tabl_frantzen.skp 54.1us -> 50.4us 0.93x
desk_baidu.skp 87.9us -> 81.9us 0.93x
desk_techcrunch.skp 224us -> 209us 0.93x
desk_sfgate.skp 206us -> 192us 0.93x
tabl_ukwsj.skp 269us -> 250us 0.93x
desk_facebook.skp 316us -> 293us 0.93x
desk_gmailthread.skp 205us -> 190us 0.93x
tabl_googlecalendar.skp 158us -> 147us 0.93x
tabl_digg.skp 382us -> 354us 0.93x
desk_amazon.skp 106us -> 98.5us 0.93x
tabl_androidpolice.skp 693us -> 642us 0.93x
tabl_nytimes.skp 206us -> 191us 0.92x
desk_gws.skp 124us -> 114us 0.92x
desk_youtube.skp 255us -> 235us 0.92x
tabl_cuteoverload.skp 583us -> 537us 0.92x
desk_oldinboxapp.skp 18us -> 16.6us 0.92x
desk_mobilenews.skp 297us -> 273us 0.92x
tabl_pravda.skp 168us -> 154us 0.92x
tabl_vnexpress.skp 236us -> 217us 0.92x
desk_css3gradients.skp 202us -> 185us 0.92x
tabl_gamedeksiam.skp 508us -> 464us 0.91x
desk_wowwiki.skp 1.02ms -> 929us 0.91x
desk_espn.skp 209us -> 191us 0.91x
desk_chalkboard.skp 315us -> 284us 0.9x
desk_mapsvg.skp 607us -> 543us 0.89x
desk_pokemonwiki.skp 5.18ms -> 4.62ms 0.89x
desk_samoasvg.skp 335us -> 298us 0.89x
desk_youtubetvbrowse.skp 10.1us -> 8.59us 0.85x
BUG=skia:3085, skia:2834

Review URL: https://codereview.chromium.org/734723002
kBBHFactory.cpp
kRTree.cpp
kRTree.h
52b7822fa67e1d587035165258959f9600f8572d 18-Nov-2014 mtklein <mtklein@google.com> Revert of SkVarAlloc::approxBytesAllocated (patchset #5 id:80001 of https://codereview.chromium.org/730193003/)

Reason for revert:
Android needs dlmalloc_usable_size().

Original issue's description:
> SkVarAlloc::approxBytesAllocated()
>
> This is what I was getting at on the other CL.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f27f1bcce50c8f95aea8469684a70b70c9baee09
>
> CQ_EXTRA_TRYBOTS=Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/741443002
kVarAlloc.cpp
kVarAlloc.h
f27f1bcce50c8f95aea8469684a70b70c9baee09 18-Nov-2014 mtklein <mtklein@chromium.org> SkVarAlloc::approxBytesAllocated()

This is what I was getting at on the other CL.

BUG=skia:

Review URL: https://codereview.chromium.org/730193003
kVarAlloc.cpp
kVarAlloc.h
9b1dd15d6d90bf623679f4e9b81b29fe9ab82807 18-Nov-2014 reed <reed@chromium.org> don't normalize after perspective concat

BUG=skia:

Review URL: https://codereview.chromium.org/734513004
kMatrix.cpp
f52a063dfd7883bbaa58617416a48c2be724e36b 17-Nov-2014 robertphillips <robertphillips@google.com> Fix yet another convexicator issue

This CL fixes the case where a bad initial vector (i.e., nearly zero) managed to short circuit all of the convexicator's logic. The initial bad vector would become the last vector and then never get displaced.

The history of this is:

https://codereview.chromium.org/298973004/
Switched the convexicator to not advance the last vector when the cross product wasn't significant

https://codereview.chromium.org/573763002/
Fixed a bug (crbug.com/412640) wherein a zero area path was being incorrectly categorized as convex b.c. opposite but equal vectors were not signaling concavity.

BUG=433683

Review URL: https://codereview.chromium.org/727283003
kPath.cpp
8910879098694c61267e21789d933928c1b7995e 17-Nov-2014 robertphillips <robertphillips@google.com> Make BBH parameter to SkRecordComputeLayers and SkRecordFillBounds optional

Chromium creates a picture to contain their picture pile in order to use MultiPictureDraw. They currently do not create a bounding box for that picture but I still need layer information for it. This change allows Chromium to continue without a BBH but still have layer information.

In the future, the brute force BBH might be suitable for their use case.

Please see gpu_raster_worker_pool.cc in (Add flag to beginRecording to request saveLayer information - https://codereview.chromium.org/721883002/) for where this is happening in Chromium.

Review URL: https://codereview.chromium.org/733963004
kRecordDraw.cpp
c6ad9eefa0f8d0c2ede9884b446c65dde9b04dd1 17-Nov-2014 mtklein <mtklein@chromium.org> More SkPicture cleanup
- move field declarations together and pack them a little tighter
- get rid of fData
- remove dead code in debugger, including unused SkPicturePlayback subclass

There are now no more long-lived SkPictureData! (Really, there never were,
but now we don't pretend to support them.)

BUG=skia:

No API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/725143002
kPicture.cpp
kPicturePlayback.h
d4897591fddf8f2a4860066449fb7dd8b0cc7b77 14-Nov-2014 mtklein <mtklein@chromium.org> Don't pass null to memcmp.

This will allow us to add nonnull-attribute to the UBSAN bot.

We are in fact hitting a case where one of the arguments is null and the other
not, which seems dicey. I think the scenario is comparing the empty pathref
with another path ref that's just been COWed, without any verbs or points yet.

BUG=skia:

Review URL: https://codereview.chromium.org/732643002
kPathRef.cpp
d54d3fc82456f8789b3e4dff40faeb7b670bcf4b 13-Nov-2014 reed <reed@google.com> remove unused kLCD_MaskFormat

BUG=skia:

Review URL: https://codereview.chromium.org/728673002
kAAClip.cpp
kBlitMask_D32.cpp
kGlyph.h
kMask.cpp
kPaint.cpp
kScalerContext.cpp
kScalerContext.h
112e7e277702e104357f2d44742253ee1b0109ac 13-Nov-2014 fmalita <fmalita@chromium.org> Observe surface LCD settings in SkBaseDevice::drawTextBlob()

We're currently overwriting the paint LCD text flag based on the the run
font data => this cancels any LCD filtering we might have performed
higher up the stack.

BUG=423362
R=reed@google.com

Review URL: https://codereview.chromium.org/718913003
kCanvas.cpp
kDevice.cpp
975ae5e4b881d4df41fd06453a650d6312127c8d 13-Nov-2014 mtklein <mtklein@chromium.org> Cap SkVarAlloc's desired block at 64K.

This means we can store fLgMinSize in 4 bits (TBD).

Local perf comparison calls this harmless-to-slightly-helpful. Nothing to get
excited about, but seems to certainly not harm perf.

BUG=skia:

Review URL: https://codereview.chromium.org/722293003
kVarAlloc.cpp
kVarAlloc.h
bc97c9378bf8b89cc17280a2a04a5c3a9405e6ab 13-Nov-2014 bungeman <bungeman@google.com> Remove SK_IGNORE_SUBPIXEL_AXIS_ALIGN_FIX.

This define was added with "Always round text position correctly."
9447103029273a9f8dd7f5997e8af7a1e3ee7488 . The affected clients
have been rebaselined and this is no longer defined anywhere.

Review URL: https://codereview.chromium.org/722333002
kDraw.cpp
0b17d6cb343cb71a3f548a02f0952c3592fc8c87 13-Nov-2014 djsollen <djsollen@google.com> Cleanup public includes directory.

This CL updates various files in the includes directory to ensure that (1) they do
not depend on headers in /src and (2) that they minimize their dependence on external
headers.

To ensure that we don't regress this behavior a new build target has been added to
build a single cpp file that contains all* public includes and is compiled with
only those directories in the include path.

* The exception is those includes that depend on OS specific headers

BUG=skia:2941
NOTRY=true

Review URL: https://codereview.chromium.org/721903002
kWriteBuffer.cpp
f2950b1c4538fa638a594af6beacd3d1434eb74d 13-Nov-2014 mtklein <mtklein@chromium.org> Deparameterize SkVarAlloc.

SkRecord performance is not sensitive to these values, so we can cut some
storage. This rearranges the space-remaining logic to use a count of bytes
left rather than a pointer to the end, cutting memory usage a little more.

An SkVarAlloc used to weigh 20 or 32 bytes which now becomes 16 or 24.

I think if I think about it a bit more I can trim off that Block* too,
getting us to 12 or 16 bytes.

Because we now just always grow by doubling, this CL switches from storing
fSmallest to its log base 2. This has the nice effect of never having to worry
about it overflowing, and means we can probably squeeze it down into a byte
if we want, even 6 bits.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/bc415389855888af5a1282ca4b6bee30afa3d69d

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/721313002
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
b2db898573e3cdcc8234eebf51961bfc4977ebbc 13-Nov-2014 reed <reed@google.com> rename filterTextFlags to disableLCD

Under the hood, add SkPixelGeometry to the CreateInfo for new devices, allowing them to see their geometry (SkDeviceProperties) up front, rather than having it changed later.

The only exception is for devices that are used on the root-layer, where we don't see the device until after the fact (at least as long as we allow clients to attach a device to a canvas externally).

We also filter the geometry when we're creating a layer, so we can disable LCD text automatically if the layer is not marked as opaque.

NOTRY=True
-- gammatext flake?

Review URL: https://codereview.chromium.org/719253002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
dfd5f6edf83ff6b42bf38f03b9633c65d80eb6cb 13-Nov-2014 mtklein <mtklein@google.com> Revert of Deparameterize SkVarAlloc. (patchset #6 id:100001 of https://codereview.chromium.org/721313002/)

Reason for revert:
Unit test failures on 32-bit machines.

test Record_Alignment: ../../tests/RecordTest.cpp:100 is_aligned(record.alloc<uint64_t>())

Original issue's description:
> Deparameterize SkVarAlloc.
>
> SkRecord performance is not sensitive to these values, so we can cut some
> storage. This rearranges the space-remaining logic to use a count of bytes
> left rather than a pointer to the end, cutting memory usage a little more.
>
> An SkVarAlloc used to weigh 20 or 32 bytes which now becomes 16 or 24.
>
> I think if I think about it a bit more I can trim off that Block* too,
> getting us to 12 or 16 bytes.
>
> Because we now just always grow by doubling, this CL switches from storing
> fSmallest to its log base 2. This has the nice effect of never having to worry
> about it overflowing, and means we can probably squeeze it down into a byte
> if we want, even 6 bits.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/bc415389855888af5a1282ca4b6bee30afa3d69d

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/718203006
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
bc415389855888af5a1282ca4b6bee30afa3d69d 13-Nov-2014 mtklein <mtklein@chromium.org> Deparameterize SkVarAlloc.

SkRecord performance is not sensitive to these values, so we can cut some
storage. This rearranges the space-remaining logic to use a count of bytes
left rather than a pointer to the end, cutting memory usage a little more.

An SkVarAlloc used to weigh 20 or 32 bytes which now becomes 16 or 24.

I think if I think about it a bit more I can trim off that Block* too,
getting us to 12 or 16 bytes.

Because we now just always grow by doubling, this CL switches from storing
fSmallest to its log base 2. This has the nice effect of never having to worry
about it overflowing, and means we can probably squeeze it down into a byte
if we want, even 6 bits.

BUG=skia:

Review URL: https://codereview.chromium.org/721313002
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
6987dcaf257dd7c2c8e0014cf7452fde82bcba5b 13-Nov-2014 fmalita <fmalita@chromium.org> Rename onCreateDevice -> onCreateCompatibleDevice

This is a port of https://codereview.chromium.org/723743002/ with the
following changes:

* drop the legacy onCreateDevice variant completely
* also convert SkXPSDevice & SkGatherPixelRefsAndRects to the new API

This is expected to break canaries and will require a manual/cowboy
roll.

TBR=reed@google.com
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/720213002
kBitmapDevice.cpp
kDevice.cpp
5adbf1b57988eaad84d6615395c90a08b7ea225a 13-Nov-2014 reed <reed@chromium.org> Revert of move to modify onCreateDevice virtual (patchset #2 id:20001 of https://codereview.chromium.org/723743002/)

Reason for revert:
mac_chromium_rel_ng unittest failures. speculating caused by this cl.

http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/5262

Original issue's description:
> start to replace onCreateDevice with onCreateCompatibleDevice
>
> the new virtual takes a struct which we can amend in the future w/o having to
> update our subclasses in chrome.
>
> BUG=skia:
> NOTRY=True
>
> Committed: https://skia.googlesource.com/skia/+/b122ee50fb56cf6669fe1668b82c8815896e9943

TBR=fmalita@google.com,fmalita@chromium.org,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/728433002
kBitmapDevice.cpp
kDevice.cpp
8113dd13692bc2e1fe804141d04b2cc5f03a55be 13-Nov-2014 mtklein <mtklein@chromium.org> SkVarAlloc

Like SkChunkAlloc, but
- does its allocation with better sympathy for malloc granularity;
- the fast path inlines entirely;
- smaller per-block overhead;
- smaller per-SkVarAlloc overhead;
- growth parameters are a little more tunable.

Its main downside is less flexibility; it supports fewer methods than SkChunkAlloc.

These current parameters bring the first allocation down from 4K to 1K,
without affecting recording time on my desktop. skiaperf.com will tell the
whole story.

BUG=skia:

Review URL: https://codereview.chromium.org/674263002
kRecord.h
kVarAlloc.cpp
kVarAlloc.h
b122ee50fb56cf6669fe1668b82c8815896e9943 12-Nov-2014 reed <reed@google.com> start to replace onCreateDevice with onCreateCompatibleDevice

the new virtual takes a struct which we can amend in the future w/o having to
update our subclasses in chrome.

BUG=skia:
NOTRY=True

Review URL: https://codereview.chromium.org/723743002
kBitmapDevice.cpp
kDevice.cpp
e069400cabd0edd3db52bbf1958063d3ed12ef28 12-Nov-2014 mtklein <mtklein@chromium.org> Restore bitmap dedup in SkPictureRecord. Cuts RAM usage of DM by half.

This should fix our failing 32-bit test bots.

BUG=skia:

Review URL: https://codereview.chromium.org/715423003
kPictureRecord.cpp
kPictureRecord.h
09a79d09981ee363b1518bb40c108e6266bc28c6 12-Nov-2014 reed <reed@google.com> cleanup comments

BUG=skia:

Review URL: https://codereview.chromium.org/715233005
kReadBuffer.cpp
703d3c7093f1fb8a40a46d465d9dd5ae60a456d5 12-Nov-2014 mtklein <mtklein@chromium.org> Followup: remove unnecessary SkTRefArray

BUG=skia:

Review URL: https://codereview.chromium.org/719113004
kBitmapHeap.cpp
kBitmapHeap.h
kPictureData.cpp
kPictureData.h
kPictureFlat.h
kTRefArray.h
71a236370792416b367a7d2d6b8e471b06b331cd 12-Nov-2014 mtklein <mtklein@chromium.org> More cleanup: streamline paths and bitmaps.

SkBitmapHeap is still used---now exclusively---by pipe.

BUG=skia:

Review URL: https://codereview.chromium.org/715413002
kPathHeap.cpp
kPathHeap.h
kPictureData.cpp
kPictureData.h
kPictureRecord.cpp
kPictureRecord.h
82365915476caedc130d0e36012a1ce0c007c4ae 12-Nov-2014 robertphillips <robertphillips@google.com> Rename GrAccelData to SkLayerInfo and move it to src/core

Review URL: https://codereview.chromium.org/719133002
kLayerInfo.cpp
kLayerInfo.h
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
ac6a2f964ee9821df6a4a8f3c46796322a4c37b8 12-Nov-2014 reed <reed@google.com> detect bad bitmaps during deserialization

BUG=skia:3117

Review URL: https://codereview.chromium.org/718103002
kPictureData.cpp
kReadBuffer.cpp
257bf0f6f7b0c4f55e6eb9e0fa1290cd5c2fcf9f 12-Nov-2014 mtklein <mtklein@google.com> Revert of Sk4x_sse.h (patchset #18 id:330001 of https://codereview.chromium.org/698873003/)

Reason for revert:
Failing bots.

Original issue's description:
> Sk4x_sse.h
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e4bf793120d3bfc9b003d11880a3fb73ff2b89e9

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/719143002
k4x.h
k4x_sse.h
a74ce853c824c5ae30e219ddf46a61d91cc0ab2a 12-Nov-2014 mtklein <mtklein@chromium.org> Start stripping out complicated parts of SkPicture{Record,Data}.

First step: no more paint flattening or deduplication.

BUG=skia:

Review URL: https://codereview.chromium.org/723593002
kPictureData.cpp
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
605dd0fbce9dbb2a0d3313e13e161f2bd54870d7 12-Nov-2014 egdaniel <egdaniel@google.com> Move GrInvariantOutput out of GrProcessor and into its own class.

This will help with the ability to subclass, add to, etc. GrInvariantOutput. Also it was simply
getting a little too big to be a "supporting" subclass
BUG=skia:

Review URL: https://codereview.chromium.org/699943003
kXfermode.cpp
e4bf793120d3bfc9b003d11880a3fb73ff2b89e9 12-Nov-2014 mtklein <mtklein@chromium.org> Sk4x_sse.h

BUG=skia:

Review URL: https://codereview.chromium.org/698873003
k4x.h
k4x_sse.h
74576eba1440c092025d6557e08da50678599d4e 12-Nov-2014 robertphillips <robertphillips@google.com> Clean up CollectLayers code

Now that CollectLayers directly uses FillBounds we can:

skip the explicit intersection with the clipBounds after an adjustAndMap call

skip the storage and use of the clipBounds in SaveLayerInfo

Review URL: https://codereview.chromium.org/719793002
kRecordDraw.cpp
4e8e3421aa919a82eb1dd287fecbd079f5a320b4 12-Nov-2014 robertphillips <robertphillips@chromium.org> Move SkRecordComputeLayers and CollectLayers into SkRecordDraw.cpp

Rather then exposing parts of FillBounds (as in Expose FillBounds to allow GrPictureUtils::CollectLayers to be layered on top of it - https://codereview.chromium.org/698643002/), this CL moves CollectLayers into SkRecordDraw.cpp to accomplish the layering.

Review URL: https://codereview.chromium.org/716913003
kRecordDraw.cpp
kRecordDraw.h
6a070dc06af4e9f305f9d08a69e34d18ade473cb 12-Nov-2014 reed <reed@google.com> experimental

BUG=skia:

Review URL: https://codereview.chromium.org/716793004
kCanvas.cpp
f539b8cdee0204985edca028eec826ee94a0c472 11-Nov-2014 reed <reed@google.com> modify nothingToDraw to notice filters

This reverts commit c71ffd4e76d1abcd28ac74463349970f60a3350f.

TBR=

Review URL: https://codereview.chromium.org/683003003
kPaint.cpp
c71ffd4e76d1abcd28ac74463349970f60a3350f 11-Nov-2014 mtklein <mtklein@google.com> Revert of modify nothingToDraw to notice filters (patchset #1 id:1 of https://codereview.chromium.org/717753002/)

Reason for revert:
modecolorfilters, perhaps more changed

Original issue's description:
> modify nothingToDraw to notice filters
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d5688c509293a450c058e0cc1f4673be2931bb5c

TBR=djsollen@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/717813002
kPaint.cpp
d5688c509293a450c058e0cc1f4673be2931bb5c 11-Nov-2014 reed <reed@google.com> modify nothingToDraw to notice filters

BUG=skia:

Review URL: https://codereview.chromium.org/717753002
kPaint.cpp
909b04b630882c8a97ab221b6e362deb593f8a7f 11-Nov-2014 scroggo <scroggo@google.com> Fix Android framework build.

Need to include (transitively) SkUserConfig before checking
SK_SUPPORT_GPU.

Review URL: https://codereview.chromium.org/693613005
kPictureRecorder.cpp
79c77a405a7b04f8e8add3586b004114ea708c68 11-Nov-2014 reed <reed@google.com> update dox

BUG=skia:
TBR=djsollen@google.com

Review URL: https://codereview.chromium.org/697363004
kCanvasDrawable.h
5da116f920c80821ebc039da3f633a74ad0c7b57 11-Nov-2014 mtklein <mtklein@chromium.org> start again on Sk4x with portable version and unit tests
work on tests

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN-Trybot,Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot,Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot,Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot
BUG=skia:

Review URL: https://codereview.chromium.org/704923003
k4x.h
k4x_portable.h
c536942dc93d81aeb5df8a62f81582b0bdaa4f54 11-Nov-2014 reed <reed@google.com> initial checkin for experimenting

BUG=skia:

Review URL: https://codereview.chromium.org/696063005
kCanvasDrawable.cpp
kCanvasDrawable.h
81f71b6630a9b7398bf983689436cccdd8dd3ff7 11-Nov-2014 robertphillips <robertphillips@google.com> Change where layer hoisting data is gathered

This CL:
1) removes the EXPERIMENTAL_optimize on SkCanvas & SkDevice
2) moves the saveLayer gathering step to endRecording
3) Replaces GPUOptimize with SkRecordComputeLayers
4) Update bench_pictures & render_pictures to provide the new flag

#2 also necessitated moving the BBH computation (and record optimization) out of SkPicture's ctor (and into endRecording)

Review URL: https://codereview.chromium.org/718443002
kCanvas.cpp
kDevice.cpp
kMultiPictureDraw.cpp
kPicture.cpp
kPictureRecorder.cpp
c9232dcda016feb2d30abb51483b3b1862775f84 10-Nov-2014 bungeman <bungeman@google.com> Remove SK_FM_NEW_MATCH_FAMILY_STYLE_CHARACTER.

This removes the old guarded code and enables the new api
introduced with "Update fontMgr to take list of bcp47 language tags."
c20386e3937d3d398ac9b35f9c7d997e972ade98 . Blink on Android is
already using the new code.

Review URL: https://codereview.chromium.org/705843004
kFontHost.cpp
8b79d23f825cd9e0f9e3bf8aaa9e209940b17ef6 10-Nov-2014 bsalomon <bsalomon@google.com> Use GrResourceCache2 to service content key lookups

BUG=skia:2889

Review URL: https://codereview.chromium.org/707493002
kTMultiMap.h
7c74885e017a2473383fed72bd629cc07c773942 10-Nov-2014 reed <reed@google.com> flag imageinfo as srgb

intended uses:
- flag a SkSurface as sRGB (only supported by Ganesh for now)
- flag images (e.g. png or jpeg) as sRGB if the codec tells us that

wins:
- faster gamma-correct text (esp. w/ distance-fields) when we can use sRGB for text
- better color fidelity when the screen really is sRGB

Review URL: https://codereview.chromium.org/676883003
kImageInfo.cpp
a63f32e879a67c84f820c32ac2b10ffd7b2940b8 10-Nov-2014 robertphillips <robertphillips@google.com> Address MSAA rendering in layer hoisting

This became relevant whilst attempting to rebaseline the multipicturedraw GMs after turning on layer hoisting inside Skia.

Review URL: https://codereview.chromium.org/709943003
kMultiPictureDraw.cpp
f0de423f0930c7ab2b4d722fd23ce68533363443 07-Nov-2014 halcanary <halcanary@google.com> for X in {Dec,BigDec,Scalar}, SkWStream::write"X"AsText no longer mallocs

Review URL: https://codereview.chromium.org/706063002
kStream.cpp
225fb98e1e321fa80e3457fafcd5d1fa14d9f8c3 05-Nov-2014 mtklein <mtklein@chromium.org> Avoid dec = -dec overflow when appending most negative signed integers.

BUG=skia:3096

Review URL: https://codereview.chromium.org/700953003
kString.cpp
e974c6244c92d32a0e4fe5639a913e78f101a056 05-Nov-2014 mtklein <mtklein@chromium.org> Whitelist intentionally racy TRACE_EVENT reads and writes.

Chrome's tracing framework appears to be intentionally racy on its
quick-reject checks, trading some data loss for better performance
when disabled. People will never notice the data loss, but TSAN does.
Let's assuage TSAN with some annotations.

The 'volatile' val in SK_ANNOTATE_UNPROTECTED_WRITE was making this
not compile, but that volatile doesn't really make sense there: the value we're
writing is not what we care about, it's the destination.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot

No API changes.
TBR=reed

BUG=skia:

Review URL: https://codereview.chromium.org/702883002
kTraceEvent.h
9f2251c73ed6f417dd1057d487bf523e04488440 04-Nov-2014 robertphillips <robertphillips@google.com> Crop the fast path dashed lines to the cull rect

Without:

maxrss loops min median mean max stddev samples config bench
56M 1 13.3ms 13.6ms 13.6ms 14.2ms 2% Ooooo..... 8888 GM_dashing5_bw
56M 13 390us 417us 416us 459us 5% ooooO..o.o gpu GM_dashing5_bw
56M 1 13.4ms 13.9ms 14.1ms 15ms 3% Oooo..ooOo 8888 GM_dashing5_aa
56M 13 402us 421us 416us 425us 2% Ooo.ooOOOO gpu GM_dashing5_aa

With:

40M 1 1.53ms 1.54ms 1.54ms 1.55ms 0% oo.O...o.. 8888 GM_dashing5_bw
40M 12 407us 412us 415us 445us 3% ...Oo..... gpu GM_dashing5_bw
40M 1 1.7ms 1.7ms 1.7ms 1.72ms 0% o.O....... 8888 GM_dashing5_aa
43M 13 405us 409us 409us 415us 1% ooo.Ooo..o gpu GM_dashing5_aa

The GM images (including the new one) are the same with and without this CL.

BUG=428296

Review URL: https://codereview.chromium.org/699623003
kDraw.cpp
8f757f540a8378c7b1354aab3d4650eaa920b17a 04-Nov-2014 danakj <danakj@chromium.org> Add tracing to the SkCanvas drawFoo() methods to find long draw ops.

BUG=skia:3088

Review URL: https://codereview.chromium.org/702473004
kCanvas.cpp
ccae588932ac7966948ae9291f496fdb04901985 04-Nov-2014 scroggo <scroggo@google.com> Include SkTypes so that SK_SUPPORT_GPU is meaningful.

For the Android framework build, we get our defines from
SkUserConfig, rather than from the makefile, so we need to
include it (via SkTypes) before we can use our defines.

Fixes Android framework build.

Review URL: https://codereview.chromium.org/700893002
kMultiPictureDraw.cpp
f7007b023d03de0693a39cba45ecdcc63eb9950d 04-Nov-2014 jvanverth <jvanverth@google.com> Enable distance field path rendering in Chrome.

- Add stat tracking for df-renderable paths
- Modify GPU rasterization veto to account for df-renderable paths
- Remove #define hiding df paths from Chromium and Android

BUG=skia:2935

Review URL: https://codereview.chromium.org/685113003
kPicture.cpp
kPictureContentInfo.cpp
kPictureContentInfo.h
5698f91d602dc974ad5c453ff9588ded7353050b 04-Nov-2014 reed <reed@google.com> remove dead SK_DISABLE_DASHING_OPTIMIZATION flag

BUG=skia:

Review URL: https://codereview.chromium.org/698003004
kDraw.cpp
ecf987559b1db0cb3fcaccdde2a065e4391d9b60 04-Nov-2014 mtklein <mtklein@chromium.org> Turn SkTaskGroups back on.

Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

Review URL: https://codereview.chromium.org/687263007
kMultiPictureDraw.cpp
db8d0e5bb018594d0ced3bfa68484115d8cf76b8 04-Nov-2014 mtklein <mtklein@chromium.org> Manually load CONDITION_VARIABLE methods on Windows, checking for failure (XP).

Tested by running DM on XP. Before this patch, it fails at startup (even just out/Debug/dm --help). Now it asserts for other reasons later on in user code, which is just fine by me.

The net effect is that SkTaskGroups will always be synchronous on XP. That's not ideal, but a step up from crashing.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Release-Trybot,Test-Win7-ShuttleA-HD2000-x86_64-Release-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/700683002
kTaskGroup.cpp
d239d425148e5c1445b6a99d9bc33348c41197bc 03-Nov-2014 danakj <danakj@chromium.org> Add comments to SkRecordDraw to help people follow.

The calls to visit() to execute the SkRecord::Draw::operator() code path
is not clear to read, so adding some comments to help other new-comers
follow this through to the SkCanvas calls.

R=mtklein@chromium.org

Review URL: https://codereview.chromium.org/695403003
kRecordDraw.cpp
kRecordDraw.h
4d52afef5cf90a2fed3bb69db71675c6450ab397 03-Nov-2014 robertphillips <robertphillips@google.com> Shrink saveLayer device bounds when it supplies an explicit bounds and has a complex paint

This CL shrinks the bound computed for saveLayers that possess both an explicit
bound and a complex paint (e.g., one that affects transparent black). In this
case the bound of the layer should be the clipped explicit bound rather then
the clip prior/after the saveLayer/restore block.

In the following the first bound is the currently computed bound
while the second is the new/desired one:

For a 100x100 picture

saveLayer (no bound, no paint) [ 0 0 100 100 ] [ 50 50 100 100 ]
setMatrix (translate 50, 50) [ 0 0 100 100 ] [ 50 50 100 100 ]
saveLayer (bound of 0, 0, 50, 50 - complex paint) [ 0 0 100 100 ] [ 50 50 100 100 ]
restore [ 0 0 100 100 ] [ 50 50 100 100 ]
restore [ 0 0 100 100 ] [ 50 50 100 100 ]

Review URL: https://codereview.chromium.org/696763002
kPicture.cpp
kRecordDraw.cpp
kRecordDraw.h
66cad7669be6c47768d084090a3d498014dfc847 03-Nov-2014 robertphillips <robertphillips@google.com> Always enable layer hoisting in Skia

This will prevent bit rot of the layer hoisting code and position us better for turning this on in Chromium.

Review URL: https://codereview.chromium.org/698493002
kMultiPictureDraw.cpp
e9f7fbfaeed73e36b1b6d0d55dbb2ad4f121e1b7 31-Oct-2014 mtklein <mtklein@google.com> Revert of Turn SkTaskGroups back on. (patchset #1 id:1 of https://codereview.chromium.org/687263007/)

Reason for revert:
precautionary revert. may have caused WinXP crashes on Chrome tree: https://code.google.com/p/chromium/issues/detail?id=429207

Original issue's description:
> Turn SkTaskGroups back on.
>
> Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
> Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."
>
> NOTREECHECKS=true
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/693993002
kMultiPictureDraw.cpp
8b602ddd59f7016f50b4ea27dacfe4788cf07c14 31-Oct-2014 sugoi <sugoi@chromium.org> Objects should be unrefed instead of deleted

When an error occurs reading a flattenable object, it should be unrefed instead of deleted because, in the case of SkXferMode, for example, we'd actually be deleting a cached object kept in a static array.

BUG=428789

Review URL: https://codereview.chromium.org/695633003
kValidatingReadBuffer.cpp
2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7 31-Oct-2014 mtklein <mtklein@chromium.org> Turn SkTaskGroups back on.

Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/687263007
kMultiPictureDraw.cpp
9bde31e95ddd82a4a923275bb01265740407dab1 30-Oct-2014 sugoi <sugoi@chromium.org> Trying to be consistent when members are allowed to be NULL

Got a few crashes running the fuzzer locally, all related to handling NULL members/parameters in an inconsistent way.

BUG=skia:

Review URL: https://codereview.chromium.org/675013003
kLocalMatrixShader.cpp
189fc98e08d3a955ee4d8a9d47475a21d9ab3a8f 30-Oct-2014 robertphillips <robertphillips@google.com> Fix member variable naming

This renaming was missed in (MultiPictureDraw is taskgroup aware - https://codereview.chromium.org/684923002)

TBR=reed@google.com

Review URL: https://codereview.chromium.org/654293005
kMultiPictureDraw.cpp
a41d3c33bc4e335dd4702bb9915fdf31d31d6c24 30-Oct-2014 junov <junov@chromium.org> Make RTree handle the case where the playback canvas has empty clip bounds

BUG=skia:3074

Review URL: https://codereview.chromium.org/678303004
kRecordDraw.cpp
7f36ae1314451bf72d0d1fd6ea9d0ba68564fddf 30-Oct-2014 mtklein <mtklein@chromium.org> Disable SkTaskGroup in SkMultiPictureDraw temporarily.

Think this should be enough to get rolling again.

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/687273006
kMultiPictureDraw.cpp
ed167acb7b494bf0aece05ac8a68b560782b027c 30-Oct-2014 mtklein <mtklein@google.com> Revert of Use SkTypeface::getBounds() in bounding-box calculations. (patchset #5 id:80001 of https://codereview.chromium.org/680363003/)

Reason for revert:
Mac mini asserting

Original issue's description:
> Use SkTypeface::getBounds() in bounding-box calculations.
>
> This should produce tighter conservative bounding boxes for text than the
> approximation code it replaces.
>
> Recording performance is neutral on my desktop. Playback performance
> improves by up to 15% on text heavy pages, e.g.
>
> desk_pokemonwiki.skp_1 3.24ms -> 2.83ms 0.87x
> desk_baidu.skp_1 1.91ms -> 1.58ms 0.83x
>
> Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/c51add674dfb89b988a7fbc05f41838c203f9dcd

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/690833002
kRecordDraw.cpp
67c71203a4e2e4f4be0a4e2293bec3a1bc1b07c8 29-Oct-2014 reed <reed@google.com> use SkTaskGroup::batch

BUG=skia:

Review URL: https://codereview.chromium.org/688753002
kMultiPictureDraw.cpp
c51add674dfb89b988a7fbc05f41838c203f9dcd 29-Oct-2014 mtklein <mtklein@chromium.org> Use SkTypeface::getBounds() in bounding-box calculations.

This should produce tighter conservative bounding boxes for text than the
approximation code it replaces.

Recording performance is neutral on my desktop. Playback performance
improves by up to 15% on text heavy pages, e.g.

desk_pokemonwiki.skp_1 3.24ms -> 2.83ms 0.87x
desk_baidu.skp_1 1.91ms -> 1.58ms 0.83x

Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489

CQ_EXTRA_TRYBOTS=client.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/680363003
kRecordDraw.cpp
e71cd54ed4d83310d718490d40643c35b622b9f5 29-Oct-2014 mtklein <mtklein@chromium.org> SkTaskGroup::batch(fn, args, N)

Porting QuiltTask isn't important in itself; this is mostly an API feeler.

BUG=skia:

Review URL: https://codereview.chromium.org/689673003
kMultiPictureDraw.cpp
kTaskGroup.cpp
kTaskGroup.h
4ab5a9048cf327adfc9ef9757ea956d7003ba047 29-Oct-2014 robertphillips <robertphillips@google.com> Discard atlas after every MultiPictureDraw::draw

This is intended to prevent ghosting on tiled architectures.

This CL also defers creation of the atlas (and its texture) until it is actually needed.

Committed: https://skia.googlesource.com/skia/+/6d5b5455743414ddb11d2b8c1fe9d7959f2b853d

Review URL: https://codereview.chromium.org/678403002
kMultiPictureDraw.cpp
9c30ea4c8654cc251ce243df4df97e30dab23ebb 29-Oct-2014 humper <humper@google.com> remove now unused (by Chrome) ifdef

BUG=skia:

Review URL: https://codereview.chromium.org/688043002
kBitmapProcState.cpp
89889b69391a730f0ba2a1efb549864b7762263f 29-Oct-2014 reed <reed@google.com> MultiPictureDraw is taskgroup aware.
SampleApp is multipicturedraw aware.

BUG=skia:

Review URL: https://codereview.chromium.org/684923002
kMultiPictureDraw.cpp
kTaskGroup.cpp
kTaskGroup.h
8f3937d9fcb28018ec14db6697d41b645716d589 29-Oct-2014 senorblanco <senorblanco@chromium.org> Fix bounds computation of all 0-input filters.

The SkRectShaderImageFilter had the same bug as previously fixed for
SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
the implementation, this change makes all filters with 0 inputs return
their source bounds, instead of returning false.

BUG=427251

Review URL: https://codereview.chromium.org/681643003
kImageFilter.cpp
27f965a577262deb9182c6935f3af05bb52b817c 29-Oct-2014 mtklein <mtklein@google.com> Revert of Use SkTypeface::getBounds() in bounding-box calculations. (patchset #3 id:40001 of https://codereview.chromium.org/680363003/)

Reason for revert:
http://build.chromium.org/p/client.skia/builders/Test-Win7-ShuttleA-HD2000-x86-Debug/builds/97/steps/nanobench/logs/stdio

Original issue's description:
> Use SkTypeface::getBounds() in bounding-box calculations.
>
> This should produce tighter conservative bounding boxes for text than the
> approximation code it replaces.
>
> Recording performance is neutral on my desktop. Playback performance
> improves by up to 15% on text heavy pages, e.g.
>
> desk_pokemonwiki.skp_1 3.24ms -> 2.83ms 0.87x
> desk_baidu.skp_1 1.91ms -> 1.58ms 0.83x
>
> Committed: https://skia.googlesource.com/skia/+/bf8dc343df4fbdcb8af546eb68b640e011a33489

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/685173002
kRecordDraw.cpp
9f36b8719b5fab2e3d7f25c5299438f954d06052 29-Oct-2014 robertphillips <robertphillips@google.com> Revert of Discard atlas after every MultiPictureDraw::draw (patchset #4 id:60001 of https://codereview.chromium.org/678403002/)

Reason for revert:
Breaking bots

Original issue's description:
> Discard atlas after every MultiPictureDraw::draw
>
> This is intended to prevent ghosting on tiled architectures.
>
> This CL also defers creation of the atlas (and its texture) until it is actually needed.
>
> Committed: https://skia.googlesource.com/skia/+/6d5b5455743414ddb11d2b8c1fe9d7959f2b853d

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/687233002
kMultiPictureDraw.cpp
bf8dc343df4fbdcb8af546eb68b640e011a33489 29-Oct-2014 mtklein <mtklein@chromium.org> Use SkTypeface::getBounds() in bounding-box calculations.

This should produce tighter conservative bounding boxes for text than the
approximation code it replaces.

Recording performance is neutral on my desktop. Playback performance
improves by up to 15% on text heavy pages, e.g.

desk_pokemonwiki.skp_1 3.24ms -> 2.83ms 0.87x
desk_baidu.skp_1 1.91ms -> 1.58ms 0.83x

Review URL: https://codereview.chromium.org/680363003
kRecordDraw.cpp
6d5b5455743414ddb11d2b8c1fe9d7959f2b853d 29-Oct-2014 robertphillips <robertphillips@google.com> Discard atlas after every MultiPictureDraw::draw

This is intended to prevent ghosting on tiled architectures.

This CL also defers creation of the atlas (and its texture) until it is actually needed.

Review URL: https://codereview.chromium.org/678403002
kMultiPictureDraw.cpp
f2703d83da3ab2ae18b45231fd4f11e16cce3184 28-Oct-2014 bsalomon <bsalomon@google.com> rename GrTextureDesc->GrSurfaceDesc, GrTextureFlags->GrSurfaceFlags

Review URL: https://codereview.chromium.org/682223002
kImageFilter.cpp
5ae89d1fa868fbbbfbf866ba46ef7a59687f346a 28-Oct-2014 piotaixr <piotaixr@chromium.org> Removing dead code from CanvasTest

BUG=skia:3054

Review URL: https://codereview.chromium.org/681083002
kPictureRecord.h
fd61ed0d7929cf85e0b936f48c72035af4c0a4b3 28-Oct-2014 robertphillips <robertphillips@google.com> Alter layer hoisting to only hoist layers for one canvas at a time

This CL alters layer hoisting to defer creation of the free floating layers until they are actually needed (rather than creating _all_ the hoisted layers at the start).

It also fixes a pre vs. post Concat bug with how matrices were being accumulated.

BUG=skia:2315

Review URL: https://codereview.chromium.org/657383004
kMultiPictureDraw.cpp
d0f1969100a0c00f41166f2fe616de56d44f4a59 28-Oct-2014 hcm <hcm@google.com> Revert of Fix bounds computation of all 0-input filters. (patchset #2 id:20001 of https://codereview.chromium.org/681643003/)

Reason for revert:
try again

Original issue's description:
> Fix bounds computation of all 0-input filters.
>
> The SkRectShaderImageFilter had the same bug as previously fixed for
> SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
> the implementation, this change makes all filters with 0 inputs return
> their source bounds, instead of returning false.
>
> BUG=427251
>
> Committed: https://skia.googlesource.com/skia/+/ba036cc82b5a543a13cafd11a19ba0e3087fca38

TBR=bsalomon@google.com,senorblanco@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=427251

Review URL: https://codereview.chromium.org/678273002
kImageFilter.cpp
ba036cc82b5a543a13cafd11a19ba0e3087fca38 27-Oct-2014 senorblanco <senorblanco@chromium.org> Fix bounds computation of all 0-input filters.

The SkRectShaderImageFilter had the same bug as previously fixed for
SkBitmapSource and SkPictureImageFilter. Rather than copy-and-paste
the implementation, this change makes all filters with 0 inputs return
their source bounds, instead of returning false.

BUG=427251

Review URL: https://codereview.chromium.org/681643003
kImageFilter.cpp
535e3b2025d3244c2ca48982d14d1d31f1d23c1f 27-Oct-2014 humper <humper@google.com> Fix the way we patch up the matrix for scaled images that aren't
clamp/clamp

BUG=skia:2904
TBR=reed

Review URL: https://codereview.chromium.org/675823002
kBitmapProcState.cpp
4477c3c0e6eb064772aefe8737425cd1c2ce557f 27-Oct-2014 mtklein <mtklein@chromium.org> Cut down SkBBH API more.
- The expected case is now a single bulk-load insert() call instead of N;
- reserve() and flushDeferredInserts() can fold into insert() now;
- SkBBH subclasses may take ownership of the bounds

This appears to be a performance no-op on both my Mac and N5. I guess
even the simplest indirect branch predictor ("same as last time") can predict
the repeated virtual calls to SkBBH::insert() perfectly.

BUG=skia:

Review URL: https://codereview.chromium.org/670213002
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
kRecordDraw.cpp
kTileGrid.cpp
kTileGrid.h
f622a6c8fd176acf9944de8df00d7f0bb56b67d3 24-Oct-2014 halcanary <halcanary@google.com> Add `SkIRect bounds()` convenience method to SkImageInfo and SkBitmap.

Review URL: https://codereview.chromium.org/646213003
kCanvas.cpp
0deb2d9c5d62f8c16fa6049902f9346af735b496 24-Oct-2014 jvanverth <jvanverth@google.com> Add some more volatile paths.

Some clip paths were not marked as volatile, and ending up in the
distance field path renderer when they shouldn't.

BUG=skia:3066

Review URL: https://codereview.chromium.org/680543002
kClipStack.cpp
60b6e9dbbc492f987a5b887dff60aec107ab70d0 24-Oct-2014 mtklein <mtklein@chromium.org> Remove a pointless use of SkWeakRefCnt.

Can't quite get rid of SkWeakRefCnt yet... SkFontMgr_indirect uses it to cache
SkTypefaces, and I don't quite understand it enough yet to cut out the weak refs.

BUG=skia:3065

Review URL: https://codereview.chromium.org/664173003
kTypefaceCache.cpp
kTypefaceCache.h
b3eb687f8a89eb1eacd1afb4016401eb392f66ab 24-Oct-2014 jvanverth <jvanverth@google.com> Set temporary paths volatile so we don't cache them.

Any path that is generated frame-to-frame should not be rendered by using the
DistanceFieldPathRenderer, because generating the initial distance field,
uploading it and rendering it takes longer than the SoftwarePathRenderer.

BUG=skia:2935

Review URL: https://codereview.chromium.org/677463002
kDraw.cpp
kPath.cpp
kStroke.cpp
976386b75d883eebaa4d2f19c4ae0222f3f85c0a 24-Oct-2014 joshualitt <joshualitt@chromium.org> Possible optimization to SkString

BUG=skia:

Review URL: https://codereview.chromium.org/679433003
kString.cpp
14e4d392d4ffa50c0ddf359a426668d1718d7f92 23-Oct-2014 mtklein <mtklein@chromium.org> Revert "Revert of create shaderproc for nofilter-opaque-dx (patchset #7 id:120001 of https://codereview.chromium.org/664783004/)"

This reverts commit 430b795cc8a1cdbddd8fdc5511a3a523348937f7 and adds suppressions.

BUG=skia:

Review URL: https://codereview.chromium.org/673023002
kBitmapProcState.cpp
234f036b3e731e06e616c5291157d3bb4fbfdee2 23-Oct-2014 sugoi <sugoi@chromium.org> Adding an option to render only the shadow in SkDropShadowImageFilter

This is basically how blink uses the filter. Currently, I can't use it for "ShadowOnly" mode with the filter at all, but instead of copying the code and risking to have the codepaths diverge, I'm simply going to add the option here.

BUG=skia:

Review URL: https://codereview.chromium.org/646213004
kReadBuffer.h
08fa28cd31c96b4ebd9cb532539c3a8c88803d90 23-Oct-2014 caryclark <caryclark@google.com> add float equivalent in dumpHex output as comment

R=reed@google.com,bsalomon@google.com

Review URL: https://codereview.chromium.org/676803002
kPath.cpp
430b795cc8a1cdbddd8fdc5511a3a523348937f7 23-Oct-2014 mtklein <mtklein@google.com> Revert of create shaderproc for nofilter-opaque-dx (patchset #7 id:120001 of https://codereview.chromium.org/664783004/)

Reason for revert:
Many GMs fixed. Needs rebaseline, perhaps layout test rebaselines.

Original issue's description:
> create shaderproc for nofilter-opaque-dx
>
>
> speedup nofilter
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a40a276bcee2246439dcf816273c1307f5c3c69f

TBR=djsollen@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/656913005
kBitmapProcState.cpp
4dca7a829635b552be369186ff508a94aba6a903 23-Oct-2014 reed <reed@google.com> use SkMaskCache inside SkBlurMaskFilter

depends on https://codereview.chromium.org/670063004/

BUG=skia:

Review URL: https://codereview.chromium.org/669993003
kMaskCache.cpp
kMaskCache.h
a40a276bcee2246439dcf816273c1307f5c3c69f 23-Oct-2014 reed <reed@google.com> create shaderproc for nofilter-opaque-dx

speedup nofilter

BUG=skia:

Review URL: https://codereview.chromium.org/664783004
kBitmapProcState.cpp
e3aee8fb7b041b3949fc912ef21b2e44650b7ee9 23-Oct-2014 djsollen <djsollen@google.com> Remove android specific genID from SkPaint.

Review URL: https://codereview.chromium.org/677453002
kPaint.cpp
d9aac34eceeb197c5551f38583670be7729dd00a 23-Oct-2014 qiankun.miao <qiankun.miao@intel.com> Add SkMaskCache

BUG=skia:

Review URL: https://codereview.chromium.org/670063004
kMaskCache.cpp
kMaskCache.h
kResourceCache.cpp
kResourceCache.h
c20386e3937d3d398ac9b35f9c7d997e972ade98 23-Oct-2014 bungeman <bungeman@google.com> Update fontMgr to take list of bcp47 language tags.

This will enable clients to pass more than one bcp47 tag to ensure
that the most appropriate font is selected.

BUG=chromium:422180

Review URL: https://codereview.chromium.org/670243002
kFontHost.cpp
a0c814cffb7ba91e1c3b533e68ab591d9cee8f2b 22-Oct-2014 reed <reed@google.com> Add SkTypeface::getBounds()

mirrored from https://codereview.chromium.org/666303002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/676523002
kLazyPtr.h
kThreadPriv.h
kTypeface.cpp
171e5b73a862418f4acd61faf8cecfbc8f58694c 22-Oct-2014 fmalita <fmalita@chromium.org> SkResourceCache::Key namespace support.

Add a unique-per-subclass namespace tag to make Keys from different
domains comparable.

Also drop the SkPictureShader cache and convert to using the global
resource cache instead.

R=reed@google.com,mtklein@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/668223002
kBitmapCache.cpp
kPictureShader.cpp
kResourceCache.cpp
kResourceCache.h
46c248da267d315d500d2296a205cf22077b3e87 22-Oct-2014 piotaixr <piotaixr@chromium.org> More genericity: overload isPaintOpaque(SkPaint, SkBitmap)

Instead of taking a Bitmap as an argument this version
takes only the type of content (None/Opaque/Transparent).
This will be used to check the opaqueness of a SkPaint
that draws a SkImage.

BUG=skia:3042

Review URL: https://codereview.chromium.org/663233002
kPaintPriv.cpp
kPaintPriv.h
23df2d693304824a2ce7ac3d988b0e48fec1c49d 22-Oct-2014 fmalita <fmalita@chromium.org> Picture shader resource caching.

Replace the current/naive shader caching mechanism with a more general
implementation based on SkResourceCache.

Caching the bitmap shader itself (as opposed to just the tile bitmap)
makes for a chunkier key, but OTOH avoids allocating new shaders on
cache hit.

R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/671683004
kPictureShader.cpp
kPictureShader.h
e9e0dea15b4d806f5da19ffa8135d4a9c62a860b 21-Oct-2014 mtklein <mtklein@chromium.org> SkLazyPtr follow ups

- moves test to LazyPtrTest.cpp
- adds the ability to use a Create() method with an argument

BUG=skia:

Review URL: https://codereview.chromium.org/669783002
kLazyPtr.h
484bbe5be63d6c516e8b190634117989de0f9a26 21-Oct-2014 mtklein <mtklein@chromium.org> small tweaks to SkResourceCache::Key
- remove unused method and obsolete note
- add a reminder that yes, we are checking counts are equal

BUG=skia:

Review URL: https://codereview.chromium.org/667993002
kResourceCache.h
b0e89dcc1d8c1c2f9f7ffb45e8609cdb4a68104b 20-Oct-2014 senorblanco <senorblanco@chromium.org> Fix image filters for PDF backend.

Currently, the PDF backend does not support image filters (since PDF
does not have that functionality), so it simply removes them. This is
causing Chrome print preview to render incorrectly (see bug). The fix
here is to fall back to a raster device for image filters, as we used
to do in Blink. The resulting bitmap will be drawn to the destination
device as a normal main-memory-backed bitmap.

Note: this change invalidates the PDF results of all GMs containing
image filters (since they'll actually be rendered).

BUG=422144

Review URL: https://codereview.chromium.org/644323006
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
1d932663e12dc5f56a66bb764c9f36eb3bab9502 20-Oct-2014 mtklein <mtklein@chromium.org> SkLazyPtr suitable as a local or class member.

BUG=skia:

Review URL: https://codereview.chromium.org/653183006
kLazyPtr.h
41966d49b0cc9dd2250dac4417ed3b365fb6d704 20-Oct-2014 mtklein <mtklein@chromium.org> Dilate approximated text bounds to squelch recent assertion failure.

This is once again an issue related to logo fonts, so I don't
see any easy way to add a regression test for this.

BUG=424824

Review URL: https://codereview.chromium.org/665103002
kRecordDraw.cpp
a4c4a2d8cd65abb1e5ac20813831cdb9ace6c7ee 20-Oct-2014 bungeman <bungeman@google.com> Replace SkTypeface::Style with SkFontStyle.

Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

Review URL: https://codereview.chromium.org/488143002
kFontHost.cpp
kTypeface.cpp
kTypefaceCache.cpp
kTypefaceCache.h
c7eb58c8b46c72cca3cea1582c7f860293a1cbe9 20-Oct-2014 mtklein <mtklein@chromium.org> Stop doing at-exit cleanup of lazy pointers.

There are only a fixed number of them, and we're already intentionally leaking in Release.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN-Trybot

BUG=skia:2940

Review URL: https://codereview.chromium.org/606013004
kLazyPtr.h
802ad83dca2efd57fde6c7ba666555ea78b5324c 20-Oct-2014 mtklein <mtklein@google.com> Revert of Replace SkTypeface::Style with SkFontStyle. (patchset #9 id:160001 of https://codereview.chromium.org/488143002/)

Reason for revert:
CrOS GM failures:

[*] 2 ExpectationsMismatch: fontmgr_iter_565.png fontmgr_iter_8888.png

Original issue's description:
> Replace SkTypeface::Style with SkFontStyle.
>
> Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

TBR=reed@google.com,bungeman@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/667023002
kFontHost.cpp
kTypeface.cpp
kTypefaceCache.cpp
kTypefaceCache.h
43b8b36b20ae00e2d78421c4cda1f3f922983a20 20-Oct-2014 bungeman <bungeman@google.com> Replace SkTypeface::Style with SkFontStyle.

Review URL: https://codereview.chromium.org/488143002
kFontHost.cpp
kTypeface.cpp
kTypefaceCache.cpp
kTypefaceCache.h
dba3e64ab9bbeac5a8b4fed6d03665cc7a5cf514 20-Oct-2014 mtklein <mtklein@google.com> Revert of Start to vectorize SkTileGrid. (patchset #48 id:1670001 of https://codereview.chromium.org/634543004/)

Reason for revert:
breaks chrome GPU debug bots

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:3041
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/958e9628d5f9a81aeafa78572cb4afc4b19a455a

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:3041

Review URL: https://codereview.chromium.org/637863005
k4x.h
k4x_clang.h
k4x_portable.h
kTileGrid.cpp
kTileGrid.h
958e9628d5f9a81aeafa78572cb4afc4b19a455a 20-Oct-2014 mtklein <mtklein@chromium.org> Start to vectorize SkTileGrid.

This adds Sk4x.h to help.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/634543004
k4x.h
k4x_clang.h
k4x_portable.h
kTileGrid.cpp
kTileGrid.h
a71aee6afd209617f44ac6e76dcc024baab69d18 20-Oct-2014 mtklein <mtklein@chromium.org> Remove obsolete SkRecording.

Can land after https://codereview.chromium.org/664583002/ does.

BUG=skia:

Only API removed.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/660903002
kRecording.cpp
234819990753fed96978b691d8ff8f7a57897fcb 17-Oct-2014 mtklein <mtklein@google.com> Revert of Start to vectorize SkTileGrid. (patchset #45 id:1430002 of https://codereview.chromium.org/634543004/)

Reason for revert:
Many GCC bots missing __builtin_shuffle, e.g. Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot.

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

TBR=reed@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/663663002
k4x.h
k4x_clang.h
k4x_gcc.h
k4x_portable.h
kTileGrid.cpp
kTileGrid.h
90c7992bfc6330f070f7704d63372a0ec8410170 17-Oct-2014 mtklein <mtklein@chromium.org> Start to vectorize SkTileGrid.

This adds Sk4x.h to help.

BUG=skia:

Review URL: https://codereview.chromium.org/634543004
k4x.h
k4x_clang.h
k4x_gcc.h
k4x_portable.h
kTileGrid.cpp
kTileGrid.h
65151754b9fdb6a968d7307764c20655d1b680a0 16-Oct-2014 piotaixr <piotaixr@chromium.org> Override SkCanvas::drawImage() in SkRecorder.

BUG=skia:2947

Review URL: https://codereview.chromium.org/610003002
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
19653d1d004610b4ba07ce563a5701164e120e45 16-Oct-2014 fmalita <fmalita@chromium.org> Implicit SkTextBlob bounds

Compute blob bounds when the client doesn't pass explicit run rects to
the builder. This allows us to remove a couple of internal workarounds.

R=reed@google.com,mtklein@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/654873003
kCanvas.cpp
kRecordDraw.cpp
kTextBlob.cpp
4ba7686eb79a06b7165c007b41cd0cf7bb3ddb2d 16-Oct-2014 mtklein <mtklein@chromium.org> Tweak out SkTileGrid::insert() loop.

BUG=skia:

Review URL: https://codereview.chromium.org/658913002
kTileGrid.cpp
420d7e9a79358908850c74192b4949375563449a 16-Oct-2014 bsalomon <bsalomon@google.com> Auto-compare GrProcessors' texture accesses in isEqual().

R=joshualitt@google.com

Review URL: https://codereview.chromium.org/654313002
kXfermode.cpp
826a50333612e81d1de87a58e32e4f9a3baddefd 15-Oct-2014 mtklein <mtklein@chromium.org> Treat (private, internal) grid bounds as doubly-inclusive in SkTileGrid.

The net effect is that two "+1" instructions are removed from insert().
search() nets no change: two +1 removed, two +1 added.

When vectorized, this removes the need to add in userToGrid() at all and
so the need to read an awkward {0, 0, 1, 1} constant from memory. Mostly
the benefit is less vector code to look at and think about.

BUG=skia:

Review URL: https://codereview.chromium.org/659823004
kTileGrid.cpp
9e4d6d180fcfbbe2ea242196cc0affd45b7ed7ae 15-Oct-2014 egdaniel <egdaniel@google.com> Move willUseInputColor check to computeInvariantOutput

BUG=skia:

Review URL: https://codereview.chromium.org/656503002
kXfermode.cpp
80a720eb823ac76fdfa254fe9b9f7333a1458e5c 15-Oct-2014 scroggo <scroggo@google.com> Remove unused NeedsDeepCopy.

It was used to check to see if an SkPaint had mutable fields on it.
Now that all the fields are immutable, this function is no longer
used. Remove it.

BUG=skia:2097

Review URL: https://codereview.chromium.org/661543002
kPaintPriv.cpp
kPaintPriv.h
6251d17dfadbbeba8a7e72affde5cbdbd0c0c95f 15-Oct-2014 bsalomon <bsalomon@google.com> Split GrFragmentProcessor into its own header

Review URL: https://codereview.chromium.org/660573002
kXfermode.cpp
c553b7a7172bab052eed8432856c85fd01601b27 15-Oct-2014 reed <reed@google.com> update dox for bounds in supersampler

BUG=skia:
TBR=caryclark@google.com
NOTRY=True

Review URL: https://codereview.chromium.org/657793003
kScan_AntiPath.cpp
bcba2c9f9fcd14ac7123f9a7ac58fb834abba4e3 15-Oct-2014 reed <reed@google.com> interesct path bounds with clip bounds before initializing supersampler

BUG=skia:

Review URL: https://codereview.chromium.org/656473004
kScan_AntiPath.cpp
0e08fc17e4718f7ce4e38f793695896473e96948 15-Oct-2014 bsalomon <bsalomon@google.com> Push isEqual/onIsEqual down from GrProcessor to subclasses.

R=joshualitt@google.com

Review URL: https://codereview.chromium.org/654273002
kXfermode.cpp
e30597375c19dfb5197fd065a3d1768401eb00fa 14-Oct-2014 bsalomon <bsalomon@google.com> Remove uses of GrAutoScratchTexture.

Rename GrContext::lockAndRefScratchTexture to refScratchTexture.

GrSurface::writePixels returns bool instead of void.

BUG=skia:2889

Review URL: https://codereview.chromium.org/638403003
kImageFilter.cpp
b501ecd0d7aa1c49c8c7f407ac6d51f5dc93122f 14-Oct-2014 bsalomon <bsalomon@google.com> Use GL_R8 rather than GL_RED for glTexImage2D on IMG/ES3. Check for failure of FP creation in SkImageFilter

BUG=skia:2922

Review URL: https://codereview.chromium.org/656853002
kImageFilter.cpp
b2d77e4d7458145ef4825c28323d9fbbb6b003ac 14-Oct-2014 reed <reed@google.com> add gamma value to deviceproperties

BUG=skia:

Review URL: https://codereview.chromium.org/652273002
kDevice.cpp
kDeviceProperties.h
kPaint.cpp
148ec59001ca7d7e54aec580a048c6dd2a085991 13-Oct-2014 mtklein <mtklein@chromium.org> Require SK_DECLARE_STATIC_LAZY_PTR is used in global scope.

Function- or method- local scope isn't threadsafe; the pointer is generally
zero-initialized on first use in function scope (i.e. lazily... we have to go
deeper), but for globals we can be pretty sure the linker will do that for us.

BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/651723003
kData.cpp
kFontHost.cpp
kGlyphCache.cpp
kImageFilter.cpp
kLazyPtr.h
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
kXfermode.cpp
ccb2e384a036f29d989d3c1468f879324e81a678 13-Oct-2014 egdaniel <egdaniel@google.com> Create helper functions to use in computeInvariantOutput calls

BUG=skia:

Review URL: https://codereview.chromium.org/643743003
kXfermode.cpp
40636a53037eadd957b8e43f0961f640aaa93e84 10-Oct-2014 reed <reed@chromium.org> faster SkRect::sort

BUG=skia:

Review URL: https://codereview.chromium.org/646863002
kRect.cpp
092dab98220110e7244ccbbb851efa8ad621ab88 10-Oct-2014 mtklein <mtklein@chromium.org> Use BBH reserve hook to preallocate space for tiles.

Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
better see how much I can tweak out the existing format. Cleverly, that way
any improvements I make by changing the format will look that much less
impressive.

This CL looks like it will be a 5-15% win in time spent recording, with no effect
on playback.

This CL also shrinks the tiles to fit exactly when we're done inserting,
using newly added SkTDArray::shrinkToFit(). It's quite cheap to run (maybe
taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
fewer bytes in the tile grids. Note though this strategy temporarily uses up to
30% more memory while building the tile grid. For our largest SKPs, that's
maybe 75-100K extra.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/52455cbc02d7f480d988ae7cdacc11ad69078c2c

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

Review URL: https://codereview.chromium.org/639823005
kTileGrid.cpp
kTileGrid.h
1598899975ecc85b003a59740b588d1ddbcedb09 10-Oct-2014 joshualitt <joshualitt@chromium.org> FPs now use the correct builder types(just a rename)

BUG=skia:

Review URL: https://codereview.chromium.org/648463003
kXfermode.cpp
1119c870651ccd34c0acb8fb2cdfad2c07d3116c 09-Oct-2014 reed <reed@google.com> cleanup and optimize rect intersect routines

BUG=skia:

Review URL: https://codereview.chromium.org/640723004
kRect.cpp
7062a262e27d89411a7b6bcc0162d230a2b2e36c 09-Oct-2014 mtklein <mtklein@google.com> Revert of Use BBH reserve hook to preallocate space for tiles. (patchset #2 id:80001 of https://codereview.chromium.org/639823005/)

Reason for revert:
failed assertion "fXTiles * fYTiles != 0"

Original issue's description:
> Use BBH reserve hook to preallocate space for tiles.
>
> Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
> better see how much I can tweak out the existing format. Cleverly, that way
> any improvements I make by changing the format will look that much less
> impressive.
>
> This CL looks like it will be a 5-15% win in time spent recording, with no effect
> on playback.
>
> This CL also shrinks the tiles to fit exactly when we're done inserting,
> using newly added SkTDArray::shrinkToFit(). It's quite cheap to run (maybe
> taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
> fewer bytes in the tile grids. Note though this strategy temporarily uses up to
> 30% more memory while building the tile grid. For our largest SKPs, that's
> maybe 75-100K extra.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52455cbc02d7f480d988ae7cdacc11ad69078c2c

TBR=reed@google.com,robertphillips@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/642933002
kTileGrid.cpp
kTileGrid.h
52455cbc02d7f480d988ae7cdacc11ad69078c2c 09-Oct-2014 mtklein <mtklein@chromium.org> Use BBH reserve hook to preallocate space for tiles.

Before getting too far into changing how SkTileGrid stores its tiles, I figured I'd
better see how much I can tweak out the existing format. Cleverly, that way
any improvements I make by changing the format will look that much less
impressive.

This CL looks like it will be a 5-15% win in time spent recording, with no effect
on playback.

This CL also shrinks the tiles to fit exactly when we're done inserting,
using newly added SkTDArray::shrinkToFit(). It's quite cheap to run (maybe
taking back 1-2% from those 5-15% wins), and means we'll lug around about 15%
fewer bytes in the tile grids. Note though this strategy temporarily uses up to
30% more memory while building the tile grid. For our largest SKPs, that's
maybe 75-100K extra.

BUG=skia:

Review URL: https://codereview.chromium.org/639823005
kTileGrid.cpp
kTileGrid.h
208d1704c2cc1161ea337a05155f2b9a04edd351 09-Oct-2014 mtklein <mtklein@chromium.org> Add SkBBoxHierarchy::reserve() as an optional size hint.

I want to play around with how SkTileGrid stores its tiles. Having a
cap on the number of insert() calls can be pretty handy.

While I'm at it, I gave flush() a default empty impl. Like reserve(),
it's really an optional hook for subclasses.

BUG=skia:

Review URL: https://codereview.chromium.org/639933003
kBBoxHierarchy.h
kRecordDraw.cpp
kTileGrid.h
feff7d2d7719f52c7ea52db156003e609002bf04 09-Oct-2014 caryclark <caryclark@google.com> Draw more accurate thick-stroked Beziers (disabled)

Draw thick-stroked Beziers by computing the outset quadratic, measuring the error, and subdividing until the error is within a predetermined limit.

To try this CL out, change src/core/SkStroke.h:18 to

#define QUAD_STROKE_APPROXIMATION 1

or from the command line: CPPFLAGS="-D QUAD_STROKE_APPROXIMATION=1" ./gyp_skia

Here's what's in this CL:

bench/BezierBench.cpp : a microbench for examining where the time is going
gm/beziers.cpp : random Beziers with various thicknesses
gm/smallarc.cpp : a distillation of bug skia:2769
samplecode/SampleRotateCircles.cpp : controls added for error, limit, width
src/core/SkStroke.cpp : the new stroke implementation (disabled)
tests/StrokerTest.cpp : a stroke torture test that checks normal and extreme values

The new stroke algorithm has a tweakable parameter:

stroker.setError(1); (SkStrokeRec.cpp:112)

The stroke error is the allowable gap between the midpoint of the stroke quadratic and the center Bezier. As the projection from the quadratic approaches the endpoints, the error is decreased proportionally so that it is always inside the quadratic curve.

An overview of how this works:
- For a given T range of a Bezier, compute the perpendiculars and find the points outset and inset for some radius.
- Construct tangents for the quadratic stroke.
- If the tangent don't intersect between them (may happen with cubics), subdivide.
- If the quadratic stroke end points are close (again, may happen with cubics), draw a line between them.
- Compute the quadratic formed by the intersecting tangents.
- If the midpoint of the quadratic is close to the midpoint of the Bezier perpendicular, return the quadratic.
- If the end of the stroke at the Bezier midpoint doesn't intersect the quad's bounds, subdivide.
- Find where the Bezier midpoint ray intersects the quadratic.
- If the intersection is too close to the quad's endpoints, subdivide.
- If the error is large proportional to the intersection's distance to the quad's endpoints, subdivide.

BUG=skia:723,skia:2769

Review URL: https://codereview.chromium.org/558163005
kStroke.cpp
kStroke.h
kStrokeRec.cpp
bcf0a52d4f4221b158e68a06ba0c4cc4db011060 08-Oct-2014 bsalomon <bsalomon@google.com> GrResourceCache2 manages scratch texture.

BUG=skia:2889

Review URL: https://codereview.chromium.org/608883003
kBitmapProcShader.cpp
kImageFilter.cpp
9d93c2ebb31bf996905532446644f242339a774e 08-Oct-2014 reed <reed@google.com> Add SkCachedData and use it for SkMipMap

This reverts commit 37c5a815d8ea33247968212ef4cc83394ceee1bc.

TBR=mtklein

Review URL: https://codereview.chromium.org/635333002
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
kCachedData.cpp
kCachedData.h
kMipMap.cpp
kMipMap.h
kResourceCache.cpp
kResourceCache.h
d61ef01f176328619d29045da3ec72e4732276b6 08-Oct-2014 robertphillips <robertphillips@google.com> Expose layer hoisting API in GrContext

This CL exposes the layer hoisting API in GrContext for use in SkMultiPictureDraw::draw. It basically mirrors what SkGpuDevice::EXPERIMENTAL_drawPicture has been doing.

Review URL: https://codereview.chromium.org/533673002
kMultiPictureDraw.cpp
9323b8b8e16df4adcd63ee8496a6382e8df535c9 07-Oct-2014 Brian Salomon <bsalomon@google.com> Revert "GrResourceCache2 manages scratch texture."

This reverts commit d14e1a27643125bfef37fa0ed314b64c1fae22b7.
kBitmapProcShader.cpp
kImageFilter.cpp
65be97d1a1eb5923b078bd1e7ec1e7da6e6427e2 07-Oct-2014 mtklein <mtklein@chromium.org> Stay in floats as much as possible in SkTileGrid, particularly in insert.

SkTileGrid::insert() is about 15% of recording time before
this CL, which reduces it to ~10%. Next steps are looking
into some of the TODOs I've left myself, and vectorizing
the math.

Most of the win here comes from converting integer
divisions into float multiplies.

BUG=skia:1021

Review URL: https://codereview.chromium.org/615853007
kTileGrid.cpp
kTileGrid.h
fb1fe4f51820731f557e765f8c71cba9a0d28048 07-Oct-2014 mtklein <mtklein@chromium.org> Add SkPaint::getHash().

BUG=skia:

Review URL: https://codereview.chromium.org/637583002
kPaint.cpp
d14e1a27643125bfef37fa0ed314b64c1fae22b7 07-Oct-2014 bsalomon <bsalomon@google.com> GrResourceCache2 manages scratch texture.

BUG=skia:2889

Review URL: https://codereview.chromium.org/608883003
kBitmapProcShader.cpp
kImageFilter.cpp
6b87df2997980218308954ade47df7fdd6680bc7 06-Oct-2014 tfarina <tfarina@chromium.org> Fix usage of SK_BUILD_* defines.

Since we just 'define' them, but not attribute anything to them, like
'1' for example, cpp expands it to nothing and that breaks the "#if"
clauses.

To fix that, uses "#if defined(...)" which will correctly check if your
macro name was defined or not.

BUG=skia:2850
TEST=make most
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/628763005
kUtilsArm.cpp
37c5a815d8ea33247968212ef4cc83394ceee1bc 03-Oct-2014 reed <reed@google.com> Speculative revert to diagnose crash in chrome. Revert "Add SkCachedData and use it for SkMipMap"

This reverts commit 92561a0b99ad6c08ab7a11dd1872f028199392e9.

crasher in question:
https://code.google.com/p/chromium/issues/detail?id=420178

Review URL: https://codereview.chromium.org/617613003
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
kCachedData.cpp
kCachedData.h
kMipMap.cpp
kMipMap.h
kResourceCache.cpp
kResourceCache.h
9e96aa07dbf1210fd35ae8e0c54d4d9822544e89 03-Oct-2014 reed <reed@google.com> remove unused TextBufferDirection enum

BUG=skia:

Review URL: https://codereview.chromium.org/621403002
kPaint.cpp
4611e7f479b1176a31af0bdc2a12528df5f75167 03-Oct-2014 robertphillips <robertphillips@google.com> Don't turn on dither for saveLayers which have no paint

Only the gpu, 565 and msaa configs of GMs in ignored-tests.txt need rebaselining.

NOTRY=true

Review URL: https://codereview.chromium.org/619363002
kCanvas.cpp
1a8ecdfb73a15de600d5779b75d7c4b61863c50b 03-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

Review URL: https://codereview.chromium.org/608253002
kXfermode.cpp
2cc22b8f2fe4d11e5709ec5ab73adccebb262249 03-Oct-2014 reed <reed@chromium.org> make SkMatrix::dump always available

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/624783002
kMatrix.cpp
92561a0b99ad6c08ab7a11dd1872f028199392e9 02-Oct-2014 reed <reed@google.com> Add SkCachedData and use it for SkMipMap

Review URL: https://codereview.chromium.org/592843003
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
kCachedData.cpp
kCachedData.h
kMipMap.cpp
kMipMap.h
kResourceCache.cpp
kResourceCache.h
0a528c187ab2221e9720d17d1bc76123b5fa8788 02-Oct-2014 mtklein <mtklein@chromium.org> Use +- 2B for unbounded draw ops.

This lets us skip a check inside SkTileGrid::insert().

BUG=skia:

Review URL: https://codereview.chromium.org/620093006
kRecordDraw.cpp
kTileGrid.cpp
d1f0ebd0e237c74876f780126696daed9d63f80b 02-Oct-2014 reed <reed@google.com> specialize setConcat for scale+translate

This reverts commit 2a382f519999109b2e3445e73ddb4f0eae926b51.

BUG=skia:

Review URL: https://codereview.chromium.org/626583002
kMatrix.cpp
b4b7a4c9ea2e399db550f93e3754c351e5b2079a 02-Oct-2014 robertphillips <robertphillips@google.com> Revert of Add isSingleComponent bool to getConstantColorComponent (patchset #6 id:100001 of https://codereview.chromium.org/608253002/)

Reason for revert:
Changing some GMs

Original issue's description:
> Add isSingleComponent bool to getConstantColorComponent
>
> Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

TBR=joshualitt@chromium.org,bsalomon@google.com,reed@google.com,egdaniel@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/617853003
kXfermode.cpp
e4b231428e8c14cbc82d20cfb12eb08fc45f8df6 02-Oct-2014 piotaixr <piotaixr@chromium.org> Caching the result of readPixelsSupported

The call was calling GR_GL_GetIntegerv 2 times for each readPixels
and thus was causing a loss of performance

(resubmit of issue 344793008)

Benchmark url: http://packages.gkny.fr/tst/index.html

BUG=skia:2681

Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c

Committed: https://skia.googlesource.com/skia/+/8339371f1ec3c57a0741932fd96bff32c53d4e54

Review URL: https://codereview.chromium.org/364193004
kTHashCache.h
3b8af078281a5a20f951b9fd84f38d92b8f6217b 02-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Review URL: https://codereview.chromium.org/608253002
kXfermode.cpp
8f8c25eabb97da8eda488895f04f2d12cb5ea4cf 02-Oct-2014 mtklein <mtklein@chromium.org> Demote getCount, getDepth, and clear to RTree-only methods.

We use them only to test RTree.

BUG=skia:

Review URL: https://codereview.chromium.org/622773003
kBBoxHierarchy.h
kRTree.h
kTileGrid.cpp
kTileGrid.h
ed48ebe39e7f06ed00b851abea1270318947c2b8 02-Oct-2014 mtklein <mtklein@chromium.org> Archive more dead code.

These classes were used by QuadTree, which has been archived (with prejudice).

BUG=skia:

Review URL: https://codereview.chromium.org/616963006
kTInternalSList.h
kTObjectPool.h
15c7ceb6aabec88ee4950135dbc74011b7446193 02-Oct-2014 mtklein <mtklein@chromium.org> TileGrid: earliest need not be a pointer anymore

BUG=skia:

Review URL: https://codereview.chromium.org/625573003
kTileGrid.cpp
6bd41969a0f2283a7a7320bb0025551353c241ec 02-Oct-2014 mtklein <mtklein@chromium.org> BBHs: void* data -> unsigned data

Now that the old backend's not using BBHs, we can specialize them for
SkRecord's needs. The only thing we really want to store is op index, which
should always be small enough to fit into an unsigned (unsigned also helps keep
it straight from other ints floating around).

This means we'll need half (32-bit) or a quarter (64-bit) the bytes in SkTileGrid,
because we don't have to store an extra int for ordering.

BUG=skia:2834

Review URL: https://codereview.chromium.org/617393004
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
kRecordDraw.cpp
kTileGrid.cpp
kTileGrid.h
2a382f519999109b2e3445e73ddb4f0eae926b51 02-Oct-2014 robertphillips <robertphillips@google.com> Revert of specialize setConcat for scale+translate (patchset #1 id:1 of https://codereview.chromium.org/620433002/)

Reason for revert:
Experimental to see if this revert "fixes" nanobench on the main console.

Original issue's description:
> specialize setConcat for scale+translate, helps drawText perf
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e8db3ef2a2161084fa8eb1fd1d54c35bfff52d6c

TBR=jvanverth@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/620973003
kMatrix.cpp
4942e7550ec80796132ab1ce2cc935a5dd1b464c 01-Oct-2014 reed <reed@google.com> fix prev change to tooBigForLCD, and add test

BUG=skia:

Review URL: https://codereview.chromium.org/617353003
kPaint.cpp
8e393bf70ea2aab9ca31f52c15b518436c7b6055 01-Oct-2014 mtklein <mtklein@chromium.org> Don't adjust the bounds after a restore with the restore's paired saveLayer's paint.

It makes no sense for the paint from a saveLayer to effect anything outside its saveLayer/restore block. But as currently written, we'll adjust the clip bounds just after a restore by that paint.

Turns out the test I wrote for the last CL (which caused this bug) actually had the bug baked into its expectations. I've updated them and added some notes to explain.

BUG=418417

Review URL: https://codereview.chromium.org/623563002
kRecordDraw.cpp
b3da83a07fd6081fd703a370ce135837f55de010 01-Oct-2014 reed <reed@google.com> avoid extra math work in MackRec

BUG=skia:

Review URL: https://codereview.chromium.org/615053005
kPaint.cpp
8e12656096fceeed8b3cc4284d57dea04893b455 01-Oct-2014 mtklein <mtklein@chromium.org> Remove DEPRECATED_beginRecording().

This removes:
1) ability to record old pictures with SkPictureRecorder;
2) a couple tests specific to the old backend.

The functionality of DEPRECATED_beginRecording() now lives in
(private) SkPicture::Backport(), which is the only place we
need it now.

BUG=skia:
TBR=reed@google.com

Review URL: https://codereview.chromium.org/618303002
kPicture.cpp
kPictureRecord.cpp
kPictureRecorder.cpp
d9c42f71c391baa23c5ed5934444077e96a68638 01-Oct-2014 reed <reed@chromium.org> optimize setRectFan and join -- from profiling drawText

BUG=skia:
NOTREECHECKS=True
NOTRY=True

Review URL: https://codereview.chromium.org/615993003
kPoint.cpp
kRect.cpp
f6fde175b81db98cd3799ee88714a4c579bb44bd 01-Oct-2014 mtklein <mtklein@chromium.org> Archive more dead code.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/617003004
kMath.cpp
kMiniData.cpp
kMiniData.h
kSinTable.h
46616af01b412ea984a516fda1ed8ec08e689f29 30-Sep-2014 mtklein <mtklein@chromium.org> Strip old backend recording down to essentials

Feature-wise, this removes:
1) BBH support;
2) peephole optimizations;
3) record-time text op specializations;
4) the guarantee that SkPaints are flattened.

This deletes the optimizations GM, which only exists to test the peepholes of
the old backend. SkRecord optimizations are unit tested, and if that ever fails we
can think about adding another GM like this, but they're different enough we'd
want to start from scratch anyway.

We need to keep the code that plays back the specialized text ops around for
a while for compatibility with existing .SKPs that have those ops recorded.

BUG=skia:

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/617953002
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.cpp
kBBoxRecord.h
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kPictureRecorder.cpp
kPictureStateTree.cpp
kPictureStateTree.h
8de02f4bf3dfb6178132231d03caec9f9a5d0beb 30-Sep-2014 mtklein <mtklein@chromium.org> Clean up SK_PICTURE_USE_SK_RECORD and SK_PICTURE_OPTIMIZE_SK_RECORD.

This folds the code through as if they were defined, which is the explicit
state in both our build and Chrome's.

This leaves the EXPERIMENTAL_ and DEPRECATED_ hooks in to be cleaned up or
privatized later.

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/616033002
kPicture.cpp
kPictureRecorder.cpp
5bc760a6a6a61ff462a204e0c051ad6147760223 30-Sep-2014 mtklein <mtklein@chromium.org> Remove support for SkPicture::clone().

This folds SK_SUPPORT_LEGACY_PICTURE_CLONE through as undefined.

Chrome's not used clone() for a month or two, and we don't use it ourselves.
Don't think Android ever did.

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

BUG=skia:
R=reed@google.com, mtklein@google.com, robertphillips@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/620533002
kPicture.cpp
kPictureData.cpp
kPictureData.h
7874dc8e717036f97f14f87daa9431d6f611e467 30-Sep-2014 reed <reed@chromium.org> remove obsolete code for SK_SUPPORT_LEGACY_IMAGEGENERATORAPI

BUG=skia:
R=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/613933002
kImageGenerator.cpp
1b466f7e21004257afeb35cd008768e3b541dca9 30-Sep-2014 mtklein <mtklein@chromium.org> Archive SkFloat

https://crrev.com/610153002/ reminded me that it existed, but it's entirely
unused and made moot by hardware FP. Might as well trim a few K off libskia.

BUG=skia:
R=reed@google.com, mtklein@google.com, tfarina@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/619563003
kFloat.cpp
kFloat.h
kGraphics.cpp
e8db3ef2a2161084fa8eb1fd1d54c35bfff52d6c 30-Sep-2014 reed <reed@google.com> specialize setConcat for scale+translate, helps drawText perf

BUG=skia:
R=jvanverth@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/620433002
kMatrix.cpp
dbe6074a06efc5fb6883bb5e4f251ed67c8c0ab4 30-Sep-2014 robertphillips <robertphillips@google.com> Revert of GrResourceCache2 manages scratch texture. (patchset #14 id:260001 of https://codereview.chromium.org/608883003/)

Reason for revert:
Turning bots red:
Nanobench seems to be uniformly failing on Android
(http://108.170.220.21:10117/builders/Perf-Android-Venue8-PowerVR-x86-Release/builds/99/steps/RunNanobench/logs/stdio)

Ubuntu GTX660 32bit is failing in both Debug and Release on GM generation (it appears to be out of memory) (http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Debug/builds/2457/steps/GenerateGMs/logs/stdio)

Original issue's description:
> GrResourceCache2 manages scratch texture.
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3d398c876440deaab39bbf2a9b881c337e6dc8d4

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/611383003
kBitmapProcShader.cpp
kImageFilter.cpp
3d398c876440deaab39bbf2a9b881c337e6dc8d4 30-Sep-2014 bsalomon <bsalomon@google.com> GrResourceCache2 manages scratch texture.

BUG=skia:
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/608883003
kBitmapProcShader.cpp
kImageFilter.cpp
c5e15a1afab2621e860a251c3fcf5917867ad49f 29-Sep-2014 reed <reed@google.com> remove alphatype from colortable

the owning bitmap is (already) responsible for knowing the alphatype

BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/611093002
kColorTable.cpp
kReadBuffer.h
47c548a6706cca821f1d0d6489f401bd00e61ab3 29-Sep-2014 djsollen <djsollen@google.com> Temp fix for crash when generating 16-bit cache for colorTables.

BUG=skia:2795
R=reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/617443002
kColorTable.cpp
05c4a4322e7d4f3417b7df33825bab8603d52051 29-Sep-2014 fmalita <fmalita@chromium.org> Revert of Revert of Fix SkTextBlob offset semantics. (patchset #1 id:1 of https://codereview.chromium.org/609223003/)

Reason for revert:
Re-landing: Chromium-side fix to be landed with the roll (https://codereview.chromium.org/607853003/)

Original issue's description:
> Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of https://codereview.chromium.org/605533002/)
>
> Reason for revert:
> Breaking the Chrome builds with the error:
>
> [14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions
> [14:54:14.318022] virtual void drawPosText(const SkDraw& draw,
> [14:54:14.318082] ^
>
> Original issue's description:
> > Fix SkTextBlob offset semantics.
> >
> > Implement proper x/y drawTextBlob() handling by plumbing a
> > drawPosText() offset parameter (to act as an additional glyph pos
> > translation) throughout the device layer.
> >
> > The new offset superceeds the existing constY, with a minor semantic
> > tweak: whereas previous implementations were ignoring constY in 2D
> > positioning mode (scalarsPerGlyph == 2), now the offset is always
> > observed, in all positioning modes. We can do this because existing
> > drawPosText() clients always pass constY == 0 for full positioning mode.
> >
> > R=reed@google.com, jvanverth@google.com, robertphillips@google.com
> >
> > Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2
>
> TBR=jvanverth@google.com,reed@google.com,bsalomon@google.com,fmalita@chromium.org
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/d46b8d2bab7cfba8458432248e1568ac377429e9

R=jvanverth@google.com, reed@google.com, bsalomon@google.com, robertphillips@google.com
TBR=bsalomon@google.com, jvanverth@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/607413003
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kTextMapStateProc.h
51936a3f07d18654be966527691067729c070bd3 29-Sep-2014 mtklein <mtklein@chromium.org> Always force the bounds of the empty pathref.

Chrome's TSAN bots are seeing various races on the bounds of the empty
path ref, and it's a simple fix to just force them on creation. In
fact, we used to do this for this very reason, but for some reason it
looks like I decided it wasn't necessary. Maybe not, but it certainly
doesn't hurt, and it's nice to keep TSAN happy.

Reminder to self: merge this into M39 branch too.

BUG=418299
R=fmalita@chromium.org, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/603503003
kPathRef.cpp
d46b8d2bab7cfba8458432248e1568ac377429e9 29-Sep-2014 robertphillips <robertphillips@google.com> Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of https://codereview.chromium.org/605533002/)

Reason for revert:
Breaking the Chrome builds with the error:

[14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions
[14:54:14.318022] virtual void drawPosText(const SkDraw& draw,
[14:54:14.318082] ^

Original issue's description:
> Fix SkTextBlob offset semantics.
>
> Implement proper x/y drawTextBlob() handling by plumbing a
> drawPosText() offset parameter (to act as an additional glyph pos
> translation) throughout the device layer.
>
> The new offset superceeds the existing constY, with a minor semantic
> tweak: whereas previous implementations were ignoring constY in 2D
> positioning mode (scalarsPerGlyph == 2), now the offset is always
> observed, in all positioning modes. We can do this because existing
> drawPosText() clients always pass constY == 0 for full positioning mode.
>
> R=reed@google.com, jvanverth@google.com, robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2

R=jvanverth@google.com, reed@google.com, bsalomon@google.com, fmalita@chromium.org
TBR=bsalomon@google.com, fmalita@chromium.org, jvanverth@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/609223003
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kTextMapStateProc.h
5ceff913cfd458c653358db7f60e995f505bce84 26-Sep-2014 piotaixr <piotaixr@chromium.org> Rename SkImage::draw(_, SkRect, SkRect) in SkImage::drawRect()

BUG=skia:2947
R=reed@google.com, junov@chromium.org

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/605843002
kCanvas.cpp
c13bc571d3e61a43b87eb97f0719abd304cafaf2 26-Sep-2014 Florin Malita <fmalita@google.com> Fix SkTextBlob offset semantics.

Implement proper x/y drawTextBlob() handling by plumbing a
drawPosText() offset parameter (to act as an additional glyph pos
translation) throughout the device layer.

The new offset superceeds the existing constY, with a minor semantic
tweak: whereas previous implementations were ignoring constY in 2D
positioning mode (scalarsPerGlyph == 2), now the offset is always
observed, in all positioning modes. We can do this because existing
drawPosText() clients always pass constY == 0 for full positioning mode.

R=reed@google.com, jvanverth@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/605533002
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kTextMapStateProc.h
587c5a2b8916b02c387e5e3369ad80589efe9ec1 25-Sep-2014 Mike Klein <mtklein@chromium.org> Seems that some of our compliers can't infer this type, though most can.

BUG=skia:

Review URL: https://codereview.chromium.org/603263002
kPictureData.cpp
610a015fda84cd5d1e3f3f826bab393f1193bc0e 25-Sep-2014 mtklein <mtklein@chromium.org> Remove SkPaint dirty bits.

fDirtyBits is only used by SkPaint::FlatteningTraits, which in turn was
only used as a smaller, faster format to flatten paints in-memory to dedup
them in the old picture backend.

SkRecord obsoleted all this. Neither flatten()/unflatten() (disk format)
nor FlatteningTraits is used anywhere performance or size matters.

Here I revert the deduping code back to using the disk format for flattened paints.
We stil do have to flatten and unflatten paints while coverting from SkRecord
backend to the old backend, so we can't just delete this all yet, but any
faithful round trip flatten()/unflatten() pair will be fine, however slow.

NOTRY=true

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/604813003
kPaint.cpp
kPictureData.cpp
kPictureFlat.h
b5fae93d72c7b6480f83fd8a7b534cd1fdfcd49a 24-Sep-2014 piotaixr <piotaixr@chromium.org> SkCanvas::drawImage is the new way for drawing a SkImage to a Canvas

BUG=skia:2947

Committed: https://skia.googlesource.com/skia/+/432789972c1e1f8a66165c75a250dba1853efa08

R=junov@chromium.org, reed@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/583453002
kCanvas.cpp
0f7197bc0ddbe6c61732d6fe69df86bdba00a060 24-Sep-2014 senorblanco <senorblanco@chromium.org> Fix SkXfermode deserialization.

Validation was failing due to an inverted test condition.

BUG=417266
R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/596333002
kXfermode.cpp
2456b7681aea8d91072186b17f8209955846f2f7 24-Sep-2014 borenet <borenet@google.com> Revert of SkCanvas::drawImage is the new way for drawing an SkImage to a Canvas (patchset #9 id:160001 of https://codereview.chromium.org/583453002/)

Reason for revert:
Broke ChromiumOS Ozone builder: http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Ozone%20Builder/builds/4087/steps/compile/logs/stdio

Reverting to unblock DEPS roll.

Original issue's description:
> SkCanvas::drawImage is the new way for drawing a SkImage to a Canvas
>
> BUG=skia:2947
>
> Committed: https://skia.googlesource.com/skia/+/432789972c1e1f8a66165c75a250dba1853efa08

R=junov@chromium.org, reed@google.com, bsalomon@google.com, piotaixr@chromium.org
TBR=bsalomon@google.com, junov@chromium.org, piotaixr@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2947

Author: borenet@google.com

Review URL: https://codereview.chromium.org/598133002
kCanvas.cpp
eee606c7bf6b343429dcdbf56b6b71bd83575060 24-Sep-2014 mtklein <mtklein@chromium.org> Swap iteration order in TileGrid::insert().

Was looking at performance here (it's the record hotspot) and noticed we
iterate through the grid out of order. This is a tiny little thing, but it's
probably orthogonal to any other performance improvements we'll make in here.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/598933004
kTileGrid.cpp
432789972c1e1f8a66165c75a250dba1853efa08 23-Sep-2014 piotaixr <piotaixr@chromium.org> SkCanvas::drawImage is the new way for drawing a SkImage to a Canvas

BUG=skia:2947
R=junov@chromium.org, reed@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/583453002
kCanvas.cpp
271a030f5d0d3c59715fbeffb31c761279f3f8ca 23-Sep-2014 Mike Klein <mtklein@chromium.org> We need to adjust the bounds of clip ops with SaveLayer paints too.

Before this CL, SkRecord only adjusted the bounds of draw ops for SaveLayers' paints.
That worked fine, but as a final step we intersect the bounds of draw ops with the
bounds of the current clip, essentially undoing all that work.

I think the right fix here is to also adjust the bounds of the clip ops.

BUG=skia:2957, 415468
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/595953002
kRecordDraw.cpp
b0a8a377f832c59cee939ad721e1f87d378b7142 23-Sep-2014 joshualitt <joshualitt@chromium.org> Patch to create a distinct geometry processor. The vast majority of this patch
is just a rename. The meat is in GrGeometryProcessor, GrProcessor,
GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory,
GrProcessUnitTestFactory, and the builders

BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/582963002
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorFilter.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskFilter.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
ee902cd4f4b3c8f355c0f4de35152a14904ec54a 22-Sep-2014 mtklein <mtklein@chromium.org> Make a flipped fDirtyBit always mean "this field is not the default".

Haven't been able to measure any perf effect, so I figure I'll let the bots have at it.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/595583003
kPaint.cpp
4a8126e7f81384526629b1e21bf89b632ea13cd9 22-Sep-2014 reed <reed@google.com> Introduce Props to surface (patchset #27 id:520001 of https://codereview.chromium.org/551463004/)"

This reverts commit 29c857d0f3a1cb837f73406eeb6ba9771879b5e7.

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/588143004
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceProperties.h
kPaint.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.h
kSurfacePriv.h
29c857d0f3a1cb837f73406eeb6ba9771879b5e7 21-Sep-2014 reed <reed@chromium.org> Revert of introduce Props to surface (patchset #27 id:520001 of https://codereview.chromium.org/551463004/)

Reason for revert:
Broke call site in WebKit

Original issue's description:
> introduce Props to surface (work in progress)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3716fd067a5621bb94a6cb08d72afec8bf3aceda

R=robertphillips@google.com, bsalomon@google.com, jvanverth@google.com, bungeman@google.com, fmalita@google.com, vangelis@chromium.org, reed@google.com
TBR=bsalomon@google.com, bungeman@google.com, fmalita@google.com, jvanverth@google.com, reed@google.com, robertphillips@google.com, vangelis@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/583773004
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceProperties.h
kPaint.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.h
kSurfacePriv.h
3716fd067a5621bb94a6cb08d72afec8bf3aceda 21-Sep-2014 reed <reed@google.com> introduce Props to surface (work in progress)

BUG=skia:
R=robertphillips@google.com, bsalomon@google.com, jvanverth@google.com, bungeman@google.com, fmalita@google.com, vangelis@chromium.org, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/551463004
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceProperties.h
kPaint.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.h
kSurfacePriv.h
3c196def91726913a417e703ac482bb2dbbfff27 20-Sep-2014 fmalita <fmalita@chromium.org> Souped-up SkTextBlob.

Refactored text blob backend for improved performance: instead of using
separate buffers for runs/positions/glyphs, everything is now packed in
a consolidated slab (including the SkTextBlob object itself!).

Benefits:

* number of allocations per blob construction reduced from ~4 to 1
(also minimizes internal fragmentation)
* run record size reduced by 8 bytes

This takes the blob construction overhead down to negligible levels
(for the current Blink uncached textblob implementation).

Unfortunately, the code is much more finicky (run merging in
particular) -- hence the assert spree.

Multi-run blobs are vulnerable to realloc storms but this is not a
problem at the moment because Blink is using one-run blobs 99% of the
time. Will be addressed in the future.

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/581173003
kTextBlob.cpp
e50215e5988c3b29c3e337fdd7cc3c9b13cec013 20-Sep-2014 fmalita <fmalita@chromium.org> Revert of Souped-up SkTextBlob. (patchset #3 id:40001 of https://codereview.chromium.org/581173003/)

Reason for revert:
Broke the new blobshader gm.

Original issue's description:
> Souped-up SkTextBlob.
>
> Refactored text blob backend for improved performance: instead of using
> separate buffers for runs/positions/glyphs, everything is now packed in
> a consolidated slab (including the SkTextBlob object itself!).
>
> Benefits:
>
> * number of allocations per blob construction reduced from ~4 to 1
> (also minimizes internal fragmentation)
> * run record size reduced by 8 bytes
>
> This takes the blob construction overhead down to negligible levels
> (for the current Blink uncached textblob implementation).
>
> Unfortunately, the code is much more finicky (run merging in
> particular) -- hence the assert spree.
>
> Multi-run blobs are vulnerable to realloc storms but this is not a
> problem at the moment because Blink is using one-run blobs 99% of the
> time. Will be addressed in the future.
>
>
> R=reed@google.com,mtklein@google.com,robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4

R=mtklein@google.com, reed@google.com, robertphillips@google.com
TBR=mtklein@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/588853002
kTextBlob.cpp
13645ea0ea87038ebd71be3bd6d53b313069a9e4 20-Sep-2014 fmalita <fmalita@chromium.org> Souped-up SkTextBlob.

Refactored text blob backend for improved performance: instead of using
separate buffers for runs/positions/glyphs, everything is now packed in
a consolidated slab (including the SkTextBlob object itself!).

Benefits:

* number of allocations per blob construction reduced from ~4 to 1
(also minimizes internal fragmentation)
* run record size reduced by 8 bytes

This takes the blob construction overhead down to negligible levels
(for the current Blink uncached textblob implementation).

Unfortunately, the code is much more finicky (run merging in
particular) -- hence the assert spree.

Multi-run blobs are vulnerable to realloc storms but this is not a
problem at the moment because Blink is using one-run blobs 99% of the
time. Will be addressed in the future.

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/581173003
kTextBlob.cpp
8483326704eff3b6a5fcce3f36d857a9779a4dd2 19-Sep-2014 fmalita <fmalita@chromium.org> SkTextBlob shader space workaround.

Blink would like drawTextBlob(x,y) to behave the same as drawText(x,y)
WRT shader space. Due to the current generic device base impl, that is
not the case.

This is a transitional workaround, pending proper drawTextBlob impls
in SkDevice classes.

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/586743002
kDevice.cpp
b14e4a0db5cb1b96cef5236585ee4572c5d95b97 18-Sep-2014 bungeman <bungeman@google.com> Restore old behavior of SkTypeface::CreateFromTypeface.

This reverts
https://skia.googlesource.com/skia/+/9db509272a6fa2badbbdd2f5afce827370960a5f
and completes
https://skia.googlesource.com/skia/+/f91c47d91d72a1d85e2d6701864b8d7accc81647 .

R=caryclark@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/586473002
kTypeface.cpp
23e280d1f227d94f6b3dfd0b47359cca1569e1b4 18-Sep-2014 joshualitt <joshualitt@chromium.org> Changes to remove program effects builder

BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/551253004
kXfermode.cpp
9b222a5ddd3b39ca191d8443bade6052cdcb713d 18-Sep-2014 mtklein <mtklein@chromium.org> Simplify a little in SkRecords.h:

- ACT_AS_PTR can just expose const methods to get at the pointers.
(If the thing stored must stay const, we pass a const T.)
- DrawPatch works fine with Record# macros, so use Record5.

BUG=skia:
R=fmalita@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/585523003
kRecordDraw.cpp
kRecords.h
a10742c69ce47d346e3cf23e7be909c9f29b401e 18-Sep-2014 caryclark <caryclark@google.com> update to accommodate latest clang in chrome toolchain

remove asserts for null pointers to references
change var args signature to pointer instead of array

R=mtklein@google.com, reed@android.com, reed@google.com, mtklein, reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/577243002
kMatrix.cpp
kRect.cpp
kScan_Path.cpp
d71b75757335393d9643a5b7a0f2769b6ba52fb6 18-Sep-2014 bungeman <bungeman@google.com> Serialize the font index.

BUG=skia:1186
R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/567013002
kFontDescriptor.cpp
kFontDescriptor.h
kPaint.cpp
kTypeface.cpp
0e9770515cab45decb56a5926d1741b71854fb4c 18-Sep-2014 piotaixr <piotaixr@chromium.org> Use SkBitmapCache to optimize readPixels on a texture-backed bitmap

BUG=skia:2786
R=junov@chromium.org, reed@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/533323002
kBitmapDevice.cpp
6a5c7085bcebe263ac43486f1825407580662924 17-Sep-2014 mtklein <mtklein@chromium.org> Add SkMiniData.

This is a bit like a limited SkData, geared to store really tiny byte strings.

This is not hooked up anywhere beyond the new unit test. I did experimentally
plumb it into SkRecord for drawPosTextH: just over 40% of drawPosTextH calls in
our repo can fit into ShortData.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/573323002
kMiniData.cpp
kMiniData.h
e010f1c2a0e6fe9cbaa73be01c7d878308b5166c 17-Sep-2014 reed <reed@google.com> hide deviceproperties, prepare the way for surfaceprops

BUG=skia:
NOTRY=True
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/577023002
kBitmapDevice.cpp
kDevice.cpp
kDeviceProperties.h
kDraw.cpp
b374d6a62c0259387d90cad74753d8bad9ee1bea 17-Sep-2014 bungeman <bungeman@google.com> Add onGetFamilyName to SkTypeface.

This speeds up and documents this particular feature of SkTypeface
and also frees up SkFontDescriptor to be used only in serialization.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/574873002
kTypeface.cpp
acb882c239c0cfea738fe63ed9de48ddc2ddc76a 17-Sep-2014 fmalita <fmalita@chromium.org> Ensure blob typeface information survives SkGPipe serialization.

When flattening text blobs to the temp buffer, we need to collect
typeface info and ship it across the pipe explicitly.

R=mtklein@google.com, reed@google.com, robertphillips@google.com, bungeman@google.com
BUG=412445

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/563783003
kPtrRecorder.h
3375c8047e7f10e6bf9a2ce1c2e8b0df08c56024 16-Sep-2014 reed <reed@google.com> when we disable lcd for impl reasons, add kGenA8 to document the original intent

BUG=skia:
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/572933004
kBitmapDevice.cpp
kCanvas.cpp
1e78fc4ed2a1ef9f049311696ebd0a26e1c3782d 16-Sep-2014 mtklein <mtklein@chromium.org> Turn disable or delete optimizations that don't have any effect.

Recording gets a ~5% speedup.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/577673003
kRecordOpts.cpp
kRecordOpts.h
30ad5306be25565484a3dd76237984e071b7c4b3 16-Sep-2014 reed <reed@google.com> allow SkBitmapCache to operate on a local instance, for testability

BUG=skia:
R=mtklein@google.com, danakj@chromium.org, piotaixr@chromium.org, junov@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/576763002
kBitmapCache.cpp
kBitmapCache.h
kResourceCache.cpp
kResourceCache.h
4815fe5a0a497b676677fb4e4a0f05c511855490 16-Sep-2014 robertphillips <robertphillips@google.com> Fix bug in layer hoisting transition to SkRecord backend

Care must be taken when setting up the initial CTM matrix for partial SkRecord playbacks b.c. all the setMatrix calls will concatenate with the initial matrix (which may be different then the CTM that is required to draw correctly).

R=mtklein@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/549143003
kRecordDraw.cpp
kRecordDraw.h
c506e3007e53fe7d1a77991de11fdb50a86fd532 16-Sep-2014 robertphillips <robertphillips@google.com> Fix convexicator bug

BUG=crbug.com/412640
R=caryclark@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/573763002
kPath.cpp
49586bec7383d4ccb81f85f8e2dc4162e2d4f6a8 16-Sep-2014 joshualitt <joshualitt@chromium.org> removing GrDrawEffect

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e

R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/571163002
kXfermode.cpp
08da4f22d790cfc51bbeb10b4b84dab49cf0eaec 16-Sep-2014 joshualitt <joshualitt@chromium.org> Revert of removing GrDrawEffect (patchset #4 id:60001 of https://codereview.chromium.org/571163002/)

Reason for revert:
reverting to unblock another revert

Original issue's description:
> removing GrDrawEffect
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/577593003
kXfermode.cpp
8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e 16-Sep-2014 joshualitt <joshualitt@chromium.org> removing GrDrawEffect

BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/571163002
kXfermode.cpp
db26a1267d57f6d8ef5b2fbdeb519be718fc1760 15-Sep-2014 mtklein <mtklein@skia.org> SkRecord: clean up comments and 4 bytes per SkRecord.

Just happened to notice these while skimming through. The comments are a
little out of date; now that we have visit/mutate, we do need O(1) random
access.

The constructor arguments are flexibility we're not using.

BUG=skia:
R=fmalita@google.com

Author: mtklein@skia.org

Review URL: https://codereview.chromium.org/569373002
kRecord.h
4fc5b8811e8c2a09fcbb3714e44697079f9ec692 15-Sep-2014 mtklein <mtklein@chromium.org> SkPicture::PathCounter is O(N^2) for pictures nested N deep. Fix that.

We've already done the analysis for child pictures. Don't do it again.

BUG=skia:
R=fmalita@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/573833002
kPicture.cpp
c90e0149ec530075cae7bf51072a16628311855e 15-Sep-2014 reed <reed@google.com> Change SkResourceCache to take a Visitor inside its find().

This reverts commit 595aa05efcb504e85358b8d328ac4a9fa1c46e2e.

BUG=skia:
R=mtklein@google.com, danakj@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/569353002
kBitmapCache.cpp
kResourceCache.cpp
kResourceCache.h
327f905d2cb0d37c302d651d8f2b17ea56368467 15-Sep-2014 dneto <dneto@chromium.org> Fix recording of saveLayout with unusual Xfermodes.

This is the root cause of a Chrome rendering bug when it tiles
layers with masks.

BUG=skia:1291,chromium:401593
R=reed@google.com, mtklein@google.com, junov@chromium.org

Author: dneto@chromium.org

Review URL: https://codereview.chromium.org/568073004
kBBoxHierarchyRecord.cpp
kRecordDraw.cpp
595aa05efcb504e85358b8d328ac4a9fa1c46e2e 15-Sep-2014 reed <reed@google.com> Revert of Change SkResourceCache to take a Visitor inside its find(). (patchset #2 id:20001 of https://codereview.chromium.org/567393002/)

Reason for revert:
crashes on android bots, haven't diagnosed yet

Original issue's description:
> Change SkResourceCache to take a Visitor inside its find().
>
> This simplifies the API/contract, in that there are not any exposed
> lock/unlock scopes.
>
>
> patch from issue 572573002
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/dee6a8e67db39fcbde2b3bb09be1d088ebb9db8a

R=mtklein@google.com, danakj@chromium.org
TBR=danakj@chromium.org, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/569303002
kBitmapCache.cpp
kResourceCache.cpp
kResourceCache.h
81940de68893e6a643301f9930db630764729ea8 15-Sep-2014 mtklein <mtklein@chromium.org> Add flag to call SkRecordOptimize on new pictures.

As usual it's enabled by default in the Skia tree. Will flip in Chrome after this rolls.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/573773002
kPicture.cpp
e956259c5a4f71768afb34ec032eaed49dcbe9f2 15-Sep-2014 caryclark <caryclark@google.com> add dumpHex() option to SkPath

This provides exact precision
to help debugging when the float
representation of a SkScalar may
introduce error.

R=reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/571973003
kClipStack.cpp
kPath.cpp
dee6a8e67db39fcbde2b3bb09be1d088ebb9db8a 15-Sep-2014 reed <reed@google.com> Change SkResourceCache to take a Visitor inside its find().

This simplifies the API/contract, in that there are not any exposed
lock/unlock scopes.

patch from issue 572573002

BUG=skia:
R=mtklein@google.com, danakj@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/567393002
kBitmapCache.cpp
kResourceCache.cpp
kResourceCache.h
e6cb48382db869f8e194b83aec80fd495be76db7 15-Sep-2014 reed <reed@chromium.org> remove 'experimental' from using hash tables in resourcecache

TBR=

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/567303002
kResourceCache.cpp
abaef86f2b37d8a939506a2076da07f6db456951 13-Sep-2014 rileya <rileya@chromium.org> Add support for the Rec601 YUV color space to GrYUVtoRGBEffect.

R=bsalomon@google.com, senorblanco@chromium.org, sugoi@chromium.org, reed@google.com

Author: rileya@chromium.org

Review URL: https://codereview.chromium.org/516463005
kImageGenerator.cpp
kPixelRef.cpp
9594da111dc1c36c1912eb61207aaa54c17ea550 12-Sep-2014 reed <reed@google.com> use SkData::NewUninitialized

BUG=skia:
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/565803005
kData.cpp
kPictureData.cpp
kStream.cpp
11fca3f29f0117eda798c67fafde40465d9903e1 12-Sep-2014 Mike Klein <mtklein@chromium.org> Add more debugging for newly failing assert (DM on Xoom bots).

BUG=skia:

Review URL: https://codereview.chromium.org/568823002
kGeometry.cpp
83658305a1bda2d862f50145ecf5cb697b575e86 12-Sep-2014 reed <reed@google.com> remove confusing/unused stream methods

BUG=skia:
R=bungeman@google.com, djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/563273003
kPaint.cpp
kStream.cpp
56b00d9e7aecce7ffc6b915972cc3cbfbe051d7e 11-Sep-2014 reed <reed@google.com> add PurgeResourceCache to track leaks

TBR=halcananry

Author: reed@google.com

Review URL: https://codereview.chromium.org/554263005
kGraphics.cpp
kResourceCache.cpp
kResourceCache.h
790ffe3feb90370318f42b28eb9c6af6e38cd4f9 11-Sep-2014 danakj <danakj@chromium.org> Make SkBitmapCache remove invalid bitmaps from the SkResourceCache.

This adds SkResourceCache::Remove() which will remove a resource from
its cache. The resource is required to be unlocked at the time Remove()
is called.

Then SkBitmapCache::Find() makes use of this to Remove() bitmaps from
the cache whose pixels have been evicted. This allows the bitmap to be
re-added to the cache with pixels again.

After this change, background a tab (and discarding all the bitmaps'
contents) no longer disables image caching for those discarded images
once the tab is visible again.

BUG=skia:2926
NOTRY=true
R=reed@android.com, tomhudson@google.com, reed@google.com

Author: danakj@chromium.org

Review URL: https://codereview.chromium.org/561953002
kBitmapCache.cpp
kResourceCache.cpp
kResourceCache.h
33a30503d76fdd989358cedd78445ba96bb809dd 11-Sep-2014 reed <reed@google.com> SkData can allocate room for its contents in the same block

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/560653004
kBitmap.cpp
kData.cpp
kFlattenableSerialization.cpp
kStream.cpp
97bf60ff7f3dd7d6e782b706ec94efb2b414b27e 11-Sep-2014 mtklein <mtklein@chromium.org> Delay any SkRecordOptimize until after SkRecord has stuck.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/561993002
kPicture.cpp
99d6a9ee8b3516de892d118c71aa5e6e5c865efd 11-Sep-2014 mtklein <mtklein@chromium.org> Fix a bug in Save-Restore no-op optimization.

We optimize
Save
SaveLayer
Restore
Restore
into
NoOp
NoOp
NoOp
Restore

I'm considering skipping the call to SkRecordOptimize again just to eliminate
this extra variable from landing SkRecord. Thoughts?

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/560163002
kRecordOpts.cpp
kRecordPattern.h
f91c47d91d72a1d85e2d6701864b8d7accc81647 11-Sep-2014 bungeman <bungeman@google.com> Remove a layer of indirection and code from SkFontHost.

R=mtklein@google.com, tomhudson@google.com, djsollen@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/105223006
kFontHost.cpp
kTypeface.cpp
3e15f9006cc0a6a9f1f153e87d08149b73531d01 10-Sep-2014 cjacek <cjacek@gmail.com> Fixed void* to uint64_t cast on win64 in TraceID.

On win64, long is 32-bit. Found by GCC (mingw-w64) build, where this causes an error.

This is the Skia version of https://codereview.chromium.org/374043002 .

R=bungeman@google.com, humper@google.com

Author: cjacek@gmail.com

Review URL: https://codereview.chromium.org/510923002
kTraceEvent.h
cc0e3110bde60201882a2c512a5cdd73c838f351 10-Sep-2014 reed <reed@google.com> make set3DMask virtual, so we can safely notify the shadercontext

also boost preallocated storage to account for this combo of bitmapshader + emboss + colorfilter

BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/563563002
kBitmapProcShader.h
kBlitter.cpp
kFilterShader.h
d954498c01ccf0417feacf89e45d0c62a06a813b 10-Sep-2014 reed <reed@chromium.org> Revert of Revert of allow canvas to force conservative clips (for speed) (patchset #1 id:1 of https://codereview.chromium.org/554033003/)

Reason for revert:
May just rebaseline, plus want to see the results of the chrome tests, so re-trying this CL.

Original issue's description:
> Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/)
>
> Reason for revert:
> multipicturedraw failed on nvprmsaa -- don't know why yet
>
> Original issue's description:
> > Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
> >
> > 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
> >
> > 2. The conservative clips mean less work is done.
> >
> > 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
> >
> > 4. API is private for now.
> >
> > Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241
>
> TBR=robertphillips@google.com,bsalomon@google.com,mtklein@google.com,junov@google.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/6f09709519b79a1159f3826645f1c5fbc101ee11

R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com, reed@google.com
TBR=bsalomon@google.com, junov@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/560713002
kCanvas.cpp
kDeviceLooper.cpp
kPictureRecord.cpp
kRasterClip.cpp
kRasterClip.h
kRecorder.cpp
6f09709519b79a1159f3826645f1c5fbc101ee11 09-Sep-2014 reed <reed@google.com> Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/)

Reason for revert:
multipicturedraw failed on nvprmsaa -- don't know why yet

Original issue's description:
> Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
>
> 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
>
> 2. The conservative clips mean less work is done.
>
> 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
>
> 4. API is private for now.
>
> Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241

R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com
TBR=bsalomon@google.com, junov@google.com, mtklein@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/554033003
kCanvas.cpp
kDeviceLooper.cpp
kPictureRecord.cpp
kRasterClip.cpp
kRasterClip.h
kRecorder.cpp
27a5e656c3d6ef22f9cb34de18e1b960da3aa241 09-Sep-2014 reed <reed@google.com> Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:

1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.

2. The conservative clips mean less work is done.

3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.

4. API is private for now.

R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/541593005
kCanvas.cpp
kDeviceLooper.cpp
kPictureRecord.cpp
kRasterClip.cpp
kRasterClip.h
kRecorder.cpp
b3eba478d5bed5fb2b5f0f224738c8c292cebf36 09-Sep-2014 george <george@mozilla.com> Outset the stroke width when computing the bounds for drawing a stroked rect, or 1 if it's a hairline

Adds a testcase for stroke rect bug

R=reed@google.com, reed1
BUG=skia:

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/552743004
kDraw.cpp
49e3199e638595d7e8b8bf41081eb9cac5daaa2d 09-Sep-2014 george <george@mozilla.com> SkRasterClip::quickReject doesn't need to check for emptiness as SkIRect::Intersect already does that for us

R=reed@google.com, reed1
BUG=skia:

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/554743007
kRasterClip.h
dd1e9f75969c72da53657e58a080c47b30f64140 08-Sep-2014 jbroman <jbroman@chromium.org> Remove a linear search in SkPictureRecord::addTextBlob.

It doesn't seem that harmful to have repeated text blobs in the array
if they occur within the same picture recording. And that does not seem
to be a common occurrence right now anyhow.

BUG=skia:2919
R=fmalita@chromium.org, reed@google.com, mtklein@google.com

Author: jbroman@chromium.org

Review URL: https://codereview.chromium.org/550043003
kPictureRecord.cpp
93f52a69443f9be16f4e98c21d1f6cf760a65f00 08-Sep-2014 mtklein <mtklein@chromium.org> Turn on the save-layer optimization.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/551853002
kPicture.cpp
kRecordOpts.cpp
87c4138fae37ba6b7e4de7acc3fce19524d726ea 08-Sep-2014 mtklein <mtklein@chromium.org> Turn on all pixel-perfect SkRecord optimizations.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/550083006
kPicture.cpp
kRecordOpts.cpp
d64c9487135094c83f658319f53ea2005ecc08b2 06-Sep-2014 reed <reed@google.com> move rasterclip_ helper into rasterclip

R=robertphillips@google.com, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/546113002
kCanvas.cpp
kRasterClip.cpp
kRasterClip.h
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
kBBoxHierarchyRecord.cpp
kBitmap.cpp
kBitmapProcState.cpp
kBitmapScaler.cpp
kBitmap_scroll.cpp
kBlitter.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kClipStack.cpp
kColorTable.cpp
kDeque.cpp
kDistanceFieldGen.cpp
kDraw.cpp
kEdge.cpp
kFlattenable.cpp
kGlyphCache.cpp
kImageGenerator.cpp
kMallocPixelRef.cpp
kMaskGamma.h
kMatrix.cpp
kMessageBus.h
kMultiPictureDraw.cpp
kPaint.cpp
kPath.cpp
kPathRef.cpp
kPicture.cpp
kPictureContentInfo.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecorder.cpp
kPictureShader.cpp
kPictureStateTree.cpp
kPoint.cpp
kRTree.cpp
kRecordDraw.cpp
kResourceCache.cpp
kScan_Path.cpp
kSpriteBlitter_ARGB32.cpp
kStream.cpp
kTDynamicHash.h
kTLList.h
kTLS.cpp
kTMultiMap.h
kTextBlob.cpp
kUtils.cpp
kXfermode.cpp
29dfaa80f5776904f42b72b387a99e75f8dc5f5f 04-Sep-2014 mtklein <mtklein@chromium.org> Implement all SkCanvas overrides that SkPictureRecord does.

Primarily this is for isDrawingToLayer(). drawData() and onNewSurface() are
for completeness.

BUG=409138
R=robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/545613002
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
fa35f8e6ebc9d98d57d2edc35e4a83556eb75cae 04-Sep-2014 reed <reed@google.com> remove getTotalClipAsPath, privatize getTotalClip

R=robertphillips@google.com, djsollen@google.com
TBR=robertphilips

Author: reed@google.com

Review URL: https://codereview.chromium.org/546493002
kCanvas.cpp
73e714eb766617ce06757829a3c0b345c7963faa 04-Sep-2014 reed <reed@google.com> cleanup rasterclip helper

R=robertphillips@google.com
TBR=robertphilips

Author: reed@google.com

Review URL: https://codereview.chromium.org/540983002
kCanvas.cpp
c5ba71d2e5cd426def66fa49dcf003e5b2c98dc7 04-Sep-2014 robertphillips <robertphillips@google.com> Change SkPicture::draw to playback

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/540963002
kCanvas.cpp
kPicture.cpp
kPictureRecorder.cpp
274b4ba6bde67bb8b6d8f1721ef5d6d4294f2aa8 04-Sep-2014 robertphillips <robertphillips@google.com> Switch Layer Hoisting over to SkRecord backend

R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/540543002
kPictureRangePlayback.cpp
kPictureRangePlayback.h
kPictureReplacementPlayback.cpp
kPictureReplacementPlayback.h
2ed8a75c284fd8e74912de67691acf97bfb7a7b7 03-Sep-2014 robertphillips <robertphillips@google.com> Remove use of EXPERIMENTAL_getActiveOps from layer hoisting code

This is getting in the way of switching to the SkRecord backend and is of questionable value.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/539693002
kPicture.cpp
91cab830c81025e0af800b528bed582ea6e4d3d7 03-Sep-2014 piotaixr <piotaixr@chromium.org> Remove SkBitmapCache::Find/Add(_,width,height,_)
in favor of the versions having a SkIRect as input parameter

BUG=skia:2909
R=reed@google.com, junov@chromium.org

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/539643002
kBitmapCache.cpp
kBitmapCache.h
e5ea500d4714a7d84de2bf913e81be3b65d2de68 03-Sep-2014 reed <reed@google.com> Hide fields in SkImageInfo

R=rmistry@google.com
TBR=bsalomon

Author: reed@google.com

Review URL: https://codereview.chromium.org/536003002
kBitmap.cpp
kBitmapDevice.cpp
kBitmapProcState.cpp
kCanvas.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
42b0dfeb29e993b7fd247dcecff705d3dd4cf191 03-Sep-2014 piotaixr <piotaixr@chromium.org> The key for SkBitmapCache can now be genID+SkIRect

BUG=skia:2894
R=junov@chromium.org, reed@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/518983002
kBitmapCache.cpp
kBitmapCache.h
2bdf1f56c3c81b90dd5532f279d867a4f5bacd16 03-Sep-2014 reed <reed@google.com> Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/527073003/)

Reason for revert:
virtual gpu failures in layouttests

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/23717

[6:6:0903/041147:1700960503:INFO:SkBitmap.cpp(1003)] ../../third_party/skia/src/core/SkBitmap.cpp:1003: failed assertion "fPixelRef->info() == pixelRef->info()"

[6:6:0903/041147:1700961002:FATAL:SkBitmap.cpp(1003)] SK_CRASH
#0 0x7f9867df2c1e base::debug::StackTrace::StackTrace()
#1 0x7f9867e89e05 logging::LogMessage::~LogMessage()
#2 0x7f98689c4970 SkDebugf_FileLine()
#3 0x7f986870ebc6 SkBitmap::deepCopyTo()
#4 0x7f98690a3b6d blink::deepSkBitmapCopy()
#5 0x7f98690a3abe blink::ImageBuffer::copyImage()
#6 0x7f985fd4479e blink::ImageBitmap::ImageBitmap()
#7 0x7f985fd45942 blink::ImageBitmap::create()
#8 0x7f985fd84fdc blink::ImageBitmapFactories::createImageBitmap()
#9 0x7f985fd84d11 blink::ImageBitmapFactories::createImageBitmap()
#10 0x7f985ec9a7f2 blink::LocalDOMWindowV8Internal::createImageBitmap13Method()
#11 0x7f985ec96b0c blink::LocalDOMWindowV8Internal::createImageBitmapMethod()
#12 0x7f985ec91954 blink::LocalDOMWindowV8Internal::createImageBitmapMethodCallback()
#13 0x7f9869955af0 v8::internal::FunctionCallbackArguments::Call()
#14 0x7f98699833bd v8::internal::Builtin_HandleApiCall()

Original issue's description:
> Add gamma/sRGB tag to SkImageInfo
>
> This reverts commit 1cbc68f9659f15206d920dacd434ddf4b658ad1f.
>
> requires this to land in blink https://codereview.chromium.org/531883002/
>
> Committed: https://skia.googlesource.com/skia/+/2f6abdecc5c2f21da13003c615903679abc73fc7

R=fmalita@google.com, reed@chromium.org
TBR=fmalita@google.com, reed@chromium.org
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/535113002
kImageInfo.cpp
2f6abdecc5c2f21da13003c615903679abc73fc7 03-Sep-2014 reed <reed@google.com> Add gamma/sRGB tag to SkImageInfo

This reverts commit 1cbc68f9659f15206d920dacd434ddf4b658ad1f.

requires this to land in blink https://codereview.chromium.org/531883002/

R=fmalita@google.com, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/527073003
kImageInfo.cpp
937c9c7eb4e06d4d3bc495e129c7b8103a5d6c0f 03-Sep-2014 mtklein <mtklein@chromium.org> Fix drawPosText() bounds bug.

We didn't catch this in our local tests because we tend to use default
kUTF8_TextEncoding with single-byte characters, which means N == byteLength.

BUG=409110
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/531933002
kRecordDraw.cpp
5ee785d9c7a39b9b8d3ae48b5da170dcef848e11 02-Sep-2014 djsollen <djsollen@google.com> Remove legacy (and also broken) SkPicture constructor.

R=robertphillips@google.com, reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/532703004
kPicture.cpp
17a845f76094eb3b5ac464556fced2a60dd0f088 02-Sep-2014 jvanverth <jvanverth@google.com> Fix matrix similarity test on arm64

Addresses precision issue by using a simpler test.
Also fixes issues with IvMatrix::preservesRightAngles, and adds unit tests.

BUG=skia:2405
R=robertphillips@google.com, egdaniel@google.com, djsollen@google.com, reed@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/520123002
kMatrix.cpp
848250415eddc54075f7eb8795e8db79e749c6ab 02-Sep-2014 reed <reed@google.com> make allocPixels throw on failure

BUG=skia:
R=mtklein@google.com, fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/510423005
kBitmap.cpp
kBitmapDevice.cpp
kCanvas.cpp
kPictureShader.cpp
kScalerContext.cpp
00f30bdc9e34b013da54b4406f36556c5be8d041 02-Sep-2014 mtklein <mtklein@chromium.org> SkRecordPartialDraw with less code duplication

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/527423002
kRecordDraw.cpp
kRecordDraw.h
8159146699f691b88f60564fc0811a6da3e8693f 02-Sep-2014 piotaixr <piotaixr@chromium.org> Added Doc for GetAllocator in SkResourceCache and SkBitmapCache

BUG=skia:2896
R=junov@chromium.org, reed@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/533713003
kBitmapCache.h
kResourceCache.h
1cbc68f9659f15206d920dacd434ddf4b658ad1f 02-Sep-2014 reed <reed@chromium.org> Revert of Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/532583002/)

Reason for revert:
linux_blink_rel

[ RUN ] DeferredImageDecoderTest.drawIntoSkPicture
../../third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp:172: Failure
Value of: canvasBitmap.getColor(0, 0)
Actual: 0
Expected: static_cast<SkColor>( (static_cast<U8CPU>(255) << 24) | (static_cast<U8CPU>(255) << 16) | (static_cast<U8CPU>(255) << 8) | (static_cast<U8CPU>(255) << 0))
Which is: 4294967295
[ FAILED ] DeferredImageDecoderTest.drawIntoSkPicture (0 ms)
[1457/1458] DeferredImageDecoderTest.drawIntoSkPicture (0 ms)
[ RUN ] DeferredImageDecoderTest.decodeOnOtherThread
../../third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp:233: Failure
Value of: canvasBitmap.getColor(0, 0)
Actual: 0
Expected: static_cast<SkColor>( (static_cast<U8CPU>(255) << 24) | (static_cast<U8CPU>(255) << 16) | (static_cast<U8CPU>(255) << 8) | (static_cast<U8CPU>(255) << 0))
Which is: 4294967295
[ FAILED ] DeferredImageDecoderTest.decodeOnOtherThread (1 ms)
[1458/1458] DeferredImageDecoderTest.decodeOnOtherThread (1 ms)
Retrying 2 tests (retry #2)

Original issue's description:
> Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/525113005/)
>
> Reason for revert:
> Experiment to see resulting failures
>
> Original issue's description:
> > Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)
> >
> > Reason for revert:
> > seems to be breaking layout tests in roll
> >
> > Original issue's description:
> > > Add gamma/sRGB tag to SkImageInfo
> > >
> > > This reverts commit 64ba5fa1ff428858f803523257cd862f8b33423b.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb
> >
> > TBR=reed@google.com
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/b44c1895afae516cb851cd1a0cea83343c354ee4
>
> TBR=reed@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4581828014eb3d015e6ed55c9a5b6932b8751818

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/524593005
kImageInfo.cpp
4581828014eb3d015e6ed55c9a5b6932b8751818 02-Sep-2014 reed <reed@chromium.org> Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/525113005/)

Reason for revert:
Experiment to see resulting failures

Original issue's description:
> Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)
>
> Reason for revert:
> seems to be breaking layout tests in roll
>
> Original issue's description:
> > Add gamma/sRGB tag to SkImageInfo
> >
> > This reverts commit 64ba5fa1ff428858f803523257cd862f8b33423b.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb
>
> TBR=reed@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b44c1895afae516cb851cd1a0cea83343c354ee4

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/532583002
kImageInfo.cpp
b44c1895afae516cb851cd1a0cea83343c354ee4 01-Sep-2014 reed <reed@chromium.org> Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)

Reason for revert:
seems to be breaking layout tests in roll

Original issue's description:
> Add gamma/sRGB tag to SkImageInfo
>
> This reverts commit 64ba5fa1ff428858f803523257cd862f8b33423b.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/525113005
kImageInfo.cpp
c89aa509d6a094bc1b18d73135343819903a9cfb 01-Sep-2014 reed <reed@google.com> Add gamma/sRGB tag to SkImageInfo

This reverts commit 64ba5fa1ff428858f803523257cd862f8b33423b.

BUG=skia:
R=reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/522813002
kImageInfo.cpp
14b6aba0997a8b463eae824d770fc5ad1ab89617 29-Aug-2014 reed <reed@google.com> harden requirements on SkBitmapCache

BUG=skia:
R=humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/521433002
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
7ba7aa7e82c749b0b794f85b546f588ccf2ca777 29-Aug-2014 fmalita <fmalita@chromium.org> Quick-reject draw text blob calls.

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/494763004
kCanvas.cpp
2f26528e59908856e36e88aa3be94d84014e9a58 29-Aug-2014 george <george@mozilla.com> Use even rounding for better results when converting from scalar to fdot6

Originally from https://bugzilla.mozilla.org/show_bug.cgi?id=996108, patch by Jeff Muizelaar

R=reed@google.com, reed1
BUG=skia:

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/270263005
kEdge.cpp
kEdge.h
kFDot6.h
a8d7f0b13cd4c6d773fcf055fe17db75d260fa05 29-Aug-2014 robertphillips <robertphillips@google.com> Try out scalar picture sizes

This paves the way for removing the 'fTile' parameter from SkPictureShader (although that should be a different CL). If we like this we could also move to providing an entire cull SkRect.

R=reed@google.com, mtklein@google.com, fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/513983002
kBBoxRecord.cpp
kCanvas.cpp
kCanvasPriv.h
kPicture.cpp
kPictureData.h
kPictureRecorder.cpp
kPictureShader.cpp
kRecordDraw.cpp
64ba5fa1ff428858f803523257cd862f8b33423b 29-Aug-2014 reed <reed@google.com> Revert of Add gamma/sRGB tags to SkImageInfo (patchset #1 of https://codereview.chromium.org/517123002/)

Reason for revert:
Seems to be triggering assert in blink

SSLUITest.TestRedirectHTTPToBadHTTPS (run #1):
[ RUN ] SSLUITest.TestRedirectHTTPToBadHTTPS
HTTP server started on http://127.0.0.1:58000...
sending server_data: {"host": "127.0.0.1", "port": 58000} (36 bytes)
HTTPS server started on https://127.0.0.1:58009...
sending server_data: {"host": "127.0.0.1", "port": 58009} (36 bytes)
ASSERTION FAILED: info.fAlphaType == m_imageInfo.fAlphaType
../../third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp(78) : virtual bool blink::DecodingImageGenerator::onGetPixels(const SkImageInfo &, void *, size_t, SkPMColor *, int *)
1 0x77eb0d3 blink::DecodingImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*)
2 0x92edddc SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*)
3 0x92adf78 SkDiscardablePixelRef::onNewLockPixels(SkPixelRef::LockRec*)
4 0x9369283 SkPixelRef::lockPixels(SkPixelRef::LockRec*)
5 0x9369433 SkPixelRef::lockPixels()
6 0x9213344 SkBitmap::lockPixels() const
7 0x921ca57 SkAutoLockPixels::SkAutoLockPixels(SkBitmap const&, bool)
8 0x921ad80 SkAutoLockPixels::SkAutoLockPixels(SkBitmap const&, bool)
9 0x92b7125 SkDraw::drawBitmap(SkBitmap const&, SkMatrix const&, SkPaint const&) const
10 0x921f4fb SkBitmapDevice::drawBitmap(SkDraw const&, SkBitmap const&, SkMatrix const&, SkPaint const&)
11 0x921f8c7 SkBitmapDevice::drawBitmapRect(SkDraw const&, SkBitmap const&, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::DrawBitmapRectFlags)
12 0x9288e12 SkCanvas::internalDrawBitmapRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags)
13 0x9288ee9 SkCanvas::drawBitmapRectToRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags)

Original issue's description:
> Add gamma/sRGB tags to SkImageInfo
>
> requires this CL to land in chrome
> https://codereview.chromium.org/517803002/
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/228b285ba14a6e9b6d1cc95ea1583caab30168a1

R=fmalita@google.com, fmalita@chromium.org, reed@chromium.org
TBR=fmalita@chromium.org, fmalita@google.com, reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/519583004
kImageInfo.cpp
228b285ba14a6e9b6d1cc95ea1583caab30168a1 29-Aug-2014 reed <reed@google.com> Add gamma/sRGB tags to SkImageInfo

requires this CL to land in chrome
https://codereview.chromium.org/517803002/

BUG=skia:
R=fmalita@google.com, fmalita@chromium.org, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/517123002
kImageInfo.cpp
088f4b8eb31b2af26e66dcbaae062f40b3955059 28-Aug-2014 reed <reed@google.com> Revert of Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/511363002/)

Reason for revert:
android builder in chrome reveals the caller using { } initialization for SkImageInfo, which this CL now makes illegal. Will have to fix the call site before I can re-land this

Original issue's description:
> Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/512243002/)
>
> Reason for revert:
> this revert was premature -- the chrome canary I looked at is old, and newer ones were green. So trying again...
>
> Original issue's description:
> > Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)
> >
> > Reason for revert:
> > breaks linker on chrome -- may need SK_API, but not sure.
> >
> > Original issue's description:
> > > add gamma/sRGB to SkImageInfo
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485
> >
> > TBR=bungeman@google.com,bsalomon@google.com
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/dc53701216c0e9f98eacf6c0cda769ebbd200b59
>
> TBR=bungeman@google.com,bsalomon@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e759a2662273fdf52ebbb3822229945eda317e46

R=bungeman@google.com, bsalomon@google.com
TBR=bsalomon@google.com, bungeman@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/517113002
kImageInfo.cpp
aa1b9120463fc69be7a5545eb83e6fbe6955a424 28-Aug-2014 fmalita <fmalita@chromium.org> Expose drawTextBlob to devices.

Instead of unrolling blobs in SkCanvas, perform the equivalent ops in
SkBaseDevice.

This depends on https://codereview.chromium.org/511783005/.

R=jvanverth@google.com, reed@google.com, robertphillips@google.com, bsalomon@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/517663003
kCanvas.cpp
kDevice.cpp
d73c169637f1ab0b96bae43269da7216bb93a7e1 28-Aug-2014 humper <humper@google.com> Second attempt to land the integral image scaling change.

Scale all images to the nearest rounded integer, and if there's still
any scaling factor left over, pass it on to the subsequent bilerp code.
Should avoid artifacts when tiling scaled images.

Original CL received an LGTM from reed; new version disabled tiling
in the downsamplebitmap GM; I verified that this fixes the issue
we were seeing there on non-neon androids.

BUG=skia:2888
R=reed@android.com
TBR=reed

Author: humper@google.com

Review URL: https://codereview.chromium.org/514383003
kBitmapProcState.cpp
kBitmapProcState.h
0209e95cc2625a445c1cb6c4213d2182e5c832d7 28-Aug-2014 mtklein <mtklein@chromium.org> Align all SkRecord::alloc() calls up to at least a pointer size.

This should make the LSAN bots able to see all our pointers.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/517073002
kRecord.h
b17c1291085e50819c0c46aae783067c30a67516 28-Aug-2014 bsalomon <bsalomon@google.com> Add dirty_after_edit to SkPath::moveTo. Add commented out test case that triggers assert.

BUG=skia:1460
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/517023003
kPath.cpp
4e4b935d526f5720b3f15c4742eef84d49ebb984 28-Aug-2014 humper <humper@google.com> disable autovec on 32 *and* 64 bit builds for horiz. convolve

Works around some garbage bottom rows for certain scaled images. Will land a separate GM that demonstrates.

BUG=skia:
R=mtklein@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/513833003
kConvolver.cpp
011f39aeb2b9715546eb74d9ebb71be7baf95fde 28-Aug-2014 reed <reed@google.com> rename ScaledImageCache to ResourceCache

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/511283002
kBitmapCache.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kResourceCache.cpp
kResourceCache.h
kScaledImageCache.cpp
kScaledImageCache.h
e759a2662273fdf52ebbb3822229945eda317e46 28-Aug-2014 reed <reed@google.com> Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/512243002/)

Reason for revert:
this revert was premature -- the chrome canary I looked at is old, and newer ones were green. So trying again...

Original issue's description:
> Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)
>
> Reason for revert:
> breaks linker on chrome -- may need SK_API, but not sure.
>
> Original issue's description:
> > add gamma/sRGB to SkImageInfo
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485
>
> TBR=bungeman@google.com,bsalomon@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/dc53701216c0e9f98eacf6c0cda769ebbd200b59

R=bungeman@google.com, bsalomon@google.com
TBR=bsalomon@google.com, bungeman@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/511363002
kImageInfo.cpp
60cc7d353b2adc8fcc1712e1f7a965e70121ebcc 28-Aug-2014 humper <humper@google.com> manual revert of bitmap scale change while I investigate failures
on chromeos

TBR=reed
NOTREECHECKS=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/516923003
kBitmapProcState.cpp
kBitmapProcState.h
dc53701216c0e9f98eacf6c0cda769ebbd200b59 28-Aug-2014 reed <reed@google.com> Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)

Reason for revert:
breaks linker on chrome -- may need SK_API, but not sure.

Original issue's description:
> add gamma/sRGB to SkImageInfo
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485

R=bungeman@google.com, bsalomon@google.com
TBR=bsalomon@google.com, bungeman@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/512243002
kImageInfo.cpp
615c369777258231054840a88cdb74c68c382485 28-Aug-2014 reed <reed@google.com> add gamma/sRGB to SkImageInfo

BUG=skia:
R=bungeman@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/514753002
kImageInfo.cpp
b2f7fce9e034c3b6749e75a129e7836df3529706 28-Aug-2014 Ben Wagner <bungeman@google.com> DirectWrite to use aliased if ClearType is empty.

Some CJK fonts with some versions of DirectWrite return valid
data for bitmaps, but not for cleartype data.

For reference, two screenshots. M37 Stable and then with this patch:

http://imgur.com/9pf3rB9,EiTb6Li

See https://code.google.com/p/chromium/issues/detail?id=396624#c10 for
content of test html file.

R=eae@chromium.org, reed@google.com, shrikant@chromium.org, bungeman@chromium.org, cpu@chromium.org
BUG=chromium:407945

Review URL: https://codereview.chromium.org/504343007
kGlyph.h
ee36952c601723a7069b8c2fc200dd769b8db1b0 27-Aug-2014 mtklein <mtklein@chromium.org> Can't hurt to make this SkNoncopyable.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/510953002
kRecords.h
533eb782edaa0b6fece6166d3001edf72ec39f11 27-Aug-2014 mtklein <mtklein@chromium.org> Convert BBH APIs to use SkRect.

Still TODO: convert internals of SkTileGrid.cpp and SkRTree.cpp to work in floats too.

NOTREECHECKS=true

BUG=skia:1021
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/511613002
kBBoxHierarchy.h
kBBoxHierarchyRecord.cpp
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kRTree.cpp
kRTree.h
kRecordDraw.cpp
kTileGrid.cpp
kTileGrid.h
ce7b1d5fadda5e0fd5a40257d4c8e1b6a0279597 27-Aug-2014 humper <humper@google.com> always scale to an integer; compensate for fractional image sizes by leaving the fractional scale in the matrix

BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/470233002
kBitmapProcState.cpp
kBitmapProcState.h
d3f6e893df53fb0cfeefd01a8a49a77c72d742bd 27-Aug-2014 qiankun.miao <qiankun.miao@intel.com> Improve performance of highQualityFilter

Move loop invariant caculation out of loop. This gives about 15% speedup
for bitmap_BGRA_8888_A_scale_rotate_bicubic on my desktop i7-3770.

BUG=skia:
R=humper@google.com, mtklein@google.com, reed@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/502953004
kBitmapFilter.cpp
2a65a238b0e688356aee09d08f3f8a317359b4d2 26-Aug-2014 mtklein <mtklein@chromium.org> Remove SkQuadTree.

We're not testing it to the same degree we do RTree and TileGrid. Any changes
we'll make to BBH APIs become 33% easier without it. If find we want it again,
we can always resurrect it.

BUG=skia:1021,skia:2834
R=robertphillips@google.com, mtklein@google.com
TBR=reed

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/500373005
kBBHFactory.cpp
kQuadTree.cpp
kQuadTree.h
5e5f948b6b363dbfc8c076d8ff0c6b8e9ea99958 26-Aug-2014 senorblanco <senorblanco@chromium.org> Reimplement deserialization of SkImageFilter's uniqueID.

9fa60d ("Simplify flattening to just write enough ... ") simplified just
a tad too much. In particular, it disabled deserialization of
SkImageFilter's uniqueID, which in turn caused the failure of
SkImageFilter's cache, which caused a large regression in Chrome's SVG
filter performance.

The medium-term fix is to switch to the new SkRecordDraw SkPicture
backend, which will make the unique IDs unnecessary.

This change is an "in case of emergecy" CL, in the event that there are
problems switching on the new backend in Chrome. For that reason, it's
minimalist: only the filters used by Chrome are modified, and whitespace
changes are kept to a minimum. In this way, it should be easy to revert
once the new backend goes in.

R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/503833002
kImageFilter.cpp
fac4e0e83666ab59373169d6c157d3654cb479a3 26-Aug-2014 piotaixr <piotaixr@chromium.org> Fallback to moveTo when unable to find the first tangent in cubicTo

When calling cubicTo(a, b, c) and if the distance between fPrevPt and a
is too small, b is used instead of a to calculate the first tangent,
even if the distance between fPrevPt and b is too small.

In debug mode, this is causing an assertion to fail in
SkPathStroker::preJoinTo() and, in Release, the use of an
unitialized value.

The first patch set is adding a failing test.
The second one add the fix to SkPathStroker::cubicTo()

BUG=skia:2820
R=bsalomon@chromium.org, junov@chromium.org, reed@google.com, caryclark@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/460813002
kStroke.cpp
ad726a319613c7fe2d9b3d61205366dee04861d4 26-Aug-2014 djsollen <djsollen@google.com> Always use cpu-features library on android.

This CL also removes the debug capability of runtime switching
in/out of NEON mode as it uses deprecated APIs.

BUG=skia:1061
R=tomhudson@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/506033003
kUtilsArm.cpp
99ae881a7f55a03c2b16fb5704e6e90ea86d965d 26-Aug-2014 reed <reed@google.com> remove (unused) scale parameter from measureText

BUG=skia:
R=bungeman@google.com, djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/510433002
kPaint.cpp
32eb0638004d914d0186b204d6675b200d0f6303 26-Aug-2014 reed <reed@google.com> remove commented-out code

TBR=senorblanco@google.com
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/505253002
kBitmapProcState.h
680fb9e8f10d24b5fe35c90338de37c57392f1aa 26-Aug-2014 reed <reed@google.com> retool image cache to be generic cache, allowing the client to subclass "Rec", so they can provide a custom Key and arbitrary Value.

Follow-on CLs

- rename ScaledimageCache to something like GeneralCache
- explore if we can use call-backs or some mechanism to completely hide "lock/unlock", by forcing all clients to support "copying" their value out of the cache as the result of a Find.

R=mtklein@google.com, senorblanco@google.com, bsalomon@google.com, qiankun.miao@intel.com, senorblanco@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/507483002
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
kBitmapProcState.h
kScaledImageCache.cpp
kScaledImageCache.h
b7425173f96e93b090787e2386ba5f022b6c2869 26-Aug-2014 fmalita <fmalita@chromium.org> SkTextBlob plumbing

Add SkTextBlob serialization + drawTextBlob() overrides.

R=mtklein@google.com, reed@google.com, robertphillips@google.com
BUG=269080

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/499413002
kBBoxRecord.cpp
kBBoxRecord.h
kPictureData.cpp
kPictureData.h
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecorder.h
kTextBlob.cpp
3d2e50d1aa56d7f65a4c52fa03af4413fa4c616a 26-Aug-2014 qiankun.miao <qiankun.miao@intel.com> Remove unused header file in SkScaledImageCache.cpp

BUG=skia:
R=reed@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/506783003
kScaledImageCache.cpp
131a22b2a22e4656f2351d42785fc3dee7a98fe2 25-Aug-2014 mtklein <mtklein@chromium.org> Bound everything except drawText().

BUG=skia:
R=robertphillips@google.com, fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/470063008
kRecordDraw.cpp
68199a2d5f0cd0b9577b9695b9e095e720e96950 25-Aug-2014 mtklein <mtklein@chromium.org> Unfurl catch-all bounds(). This makes it a little easier to track progress.

I think we've worked out the SaveLayer bounds as of crrev.com/496963003, so
remove that TODO.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/501153002
kRecordDraw.cpp
045bb7f00b217e7726d517acf783c661bd6f639e 25-Aug-2014 qiankun.miao <qiankun.miao@intel.com> Clean up useless comments in SkScaledImageCache.h

BUG=skia:
R=reed@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/499203002
kBitmapCache.cpp
kScaledImageCache.h
5f0e82204ecca0805a7689cdba5f802458e103f4 22-Aug-2014 mtklein <mtklein@chromium.org> Support comment groups in SkRecord.

This should fix the failing paint-command-log-nodes.html layout test.

BUG=406425
R=tomhudson@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/501533003
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
d910f544439fffa6c2bcc5181b79b2811a4c130a 22-Aug-2014 mtklein <mtklein@chromium.org> Fix saveLayer() with a pixel-moving filter vs SkBBoxHierarchyRecord / SkRecordDraw

In SkBBoxHierarchyRecord:
Since the bounds we pass to saveLayer are in the pre-filtering
coordinate space, they aren't correct for determining the actual
device pixels touched by the saveLayer in this case.

The easiest fix for now is to pass the clip bounds, since the final
draw done in restore() will never draw outside the clip.

In SkRecordDraw:
We do adjust the bounds passed to saveLayer, so we just need to make
sure that when we're using a paint that may affect transparent black,
we ignore the calculated bounds of draw ops and use the clip intersected
with those adjusted bounds.

See originally crrev.com/497773002

BUG=skia:
R=reed@google.com, senorblanco@chromium.org, junov@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/496963003
kBBoxHierarchyRecord.cpp
kRecordDraw.cpp
37ecbaffd1f9f6841aa562aa31a824d109d52988 22-Aug-2014 fmalita <fmalita@chromium.org> [SkTextBlob] Merge run font data at draw time.

R=bungeman@google.com, reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/496773002
kCanvas.cpp
kTextBlob.cpp
8367b8cb7a6b2f163ee41365323cb219b7049b15 22-Aug-2014 reed <reed@google.com> extend SkShader to report a luminance-color to be used for gamma correction

BUG=skia:590
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/492963002
kPaint.cpp
kShader.cpp
233c295980d54347ca1eda9095cd54b63a0268ec 22-Aug-2014 reed <reed@google.com> fix numerical overflows in 565 blends

BUG=skia:2797
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/474983007
kBlitRow_D16.cpp
30ba436f04e61d4505fb854d5fc56079636e0788 22-Aug-2014 joshualitt <joshualitt@chromium.org> Initial refactor of shaderbuilder to prepare for geometry shaders

gitignore for eclipse

BUG=skia:
R=bsalomon@google.com, bsalomon@chromium.org

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/491673002
kString.cpp
kXfermode.cpp
c8c4b957288fd3114d60e3faa9bc95c4c15ca1f2 22-Aug-2014 mtklein <mtklein@google.com> Revert of Revert back to SkPictureData pictures. Huge perf regression. (patchset #1 of https://codereview.chromium.org/496603002/)

Reason for revert:
Try again now that we have --bbh on nanobench and it's looking decent.

Original issue's description:
> Revert back to SkPictureData pictures. Huge perf regression.
>
> http://skiaperf.com/#108
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4082d290eea2f70caa82120ff3bc4fbdccbf206c

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/496173002
kPicture.cpp
c8460493adbaba5acef69b3127c452df99117b24 22-Aug-2014 mtklein <mtklein@chromium.org> 1.5x -> 2x text size for y pad.

This will expand the cheat to just big enough to pass an assertion coming
from our GDI bot. Currently failing:
-6.000000 -1.500000 6.000000 1.500000 vs. -1.000000 -2.000000 3.000000 1.000000
Will become (-8 -2 8 2) vs. (-1 -2 3 1).

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/496153002
kRecordDraw.cpp
d13291a5a3d2a79b5348ecc4a8e38ab1b6da85f0 21-Aug-2014 mtklein <mtklein@chromium.org> Ignore small text sizes in the text bounding assert.

Seems we sometimes give back unduely large metrics for 0 text size.

BUG=skia:2862
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/498503003
kRecordDraw.cpp
7eacd77ce63abec6c5a0e7be9bf9f40ea4145d11 21-Aug-2014 robertphillips <robertphillips@google.com> SkMultiPictureDraw API

This CL adds a new API to optimize across multiple SkPicture draw calls.

Note that multiple pictures rendered at once (i.e., picture piles) should be flattened into a single new picture that includes the required clipping on the different layers.

R=bsalomon@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/491313003
kMultiPictureDraw.cpp
c92e550d3656abaf83b134b158756b940d58a907 21-Aug-2014 mtklein <mtklein@chromium.org> Install a hook to swap between SkPicture backends with a single define.

BUG=skia:
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/492023002
kPicture.cpp
kPictureRecorder.cpp
04617139f7f715bdc05a32a58e65e3c208bccff4 21-Aug-2014 reed <reed@google.com> expose generalized imagecache key

BUG=skia:
R=mtklein@google.com, halcanary@google.com, qiankun.miao@intel.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/483493003
kBitmapCache.cpp
kBitmapCache.h
kBitmapProcState.cpp
kScaledImageCache.cpp
kScaledImageCache.h
53fecfb15d254397ab03032b888daa9d15c487b6 21-Aug-2014 mtklein <mtklein@chromium.org> Our SkPicture::Analysis visitors should recurse into nested pictures.

BUG=skia:
R=tomhudson@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/495793002
kPicture.cpp
kRecords.h
00d5c2c6523321d25b32905ff4822f083a4173ee 21-Aug-2014 fmalita <fmalita@chromium.org> SkTextBlob

Initial implementation.

R=bungeman@google.com, jbroman@chromium.org, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/473633002
kCanvas.cpp
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
kTextBlob.cpp
9fa60daad4d5f54c0dbe3dbcc7608a8f6d721187 21-Aug-2014 reed <reed@google.com> Simplify flattening to just write enough to call the factory/public-constructor for the class. We want to *not* rely on private constructors, and not rely on calling through the inheritance hierarchy for either flattening or unflattening(CreateProc).

Refactoring pattern:

1. guard the existing constructor(readbuffer) with the legacy build-flag
2. If you are a instancable subclass, implement CreateProc(readbuffer) to create a new instances from the buffer params (or return NULL).

If you're a shader subclass
1. You must read/write the local matrix if your class accepts that in its factory/constructor, else ignore it.

R=robertphillips@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org, sugoi@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/395603002
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kDraw.cpp
kEmptyShader.h
kFilterShader.cpp
kFilterShader.h
kFlattenable.cpp
kImageFilter.cpp
kLocalMatrixShader.cpp
kLocalMatrixShader.h
kPathEffect.cpp
kPictureShader.cpp
kReadBuffer.h
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
8bf3df68c58967d6297ccfe3eef36eea36c8b5ab 21-Aug-2014 reed <reed@google.com> remove code for (dead) SK_SUPPORT_LEGACY_GETCLIPTYPE

BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/489103003
kCanvas.cpp
4082d290eea2f70caa82120ff3bc4fbdccbf206c 21-Aug-2014 mtklein <mtklein@chromium.org> Revert back to SkPictureData pictures. Huge perf regression.

http://skiaperf.com/#108

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/496603002
kPicture.cpp
1b523babbe50df1894b10eb5a54fc9d0cf23723d 21-Aug-2014 mtklein <mtklein@chromium.org> Always read .skp files and other serialized pictures into SkRecord.

This should switch all our internal tools that aren't clever about it over to SkRecord pictures. (The clever tools know what they're doing.)

Also, deletes the old SkPicture::clone() path. return this or die.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7b705bb17e09508e3761b54f59833b1ceb4ce9a6

R=robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481743003
kPicture.cpp
7b705bb17e09508e3761b54f59833b1ceb4ce9a6 20-Aug-2014 mtklein <mtklein@chromium.org> Always read .skp files and other serialized pictures into SkRecord.

This should switch all our internal tools that aren't clever about it over to SkRecord pictures. (The clever tools know what they're doing.)

Also, deletes the old SkPicture::clone() path. return this or die.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481743003
kPicture.cpp
4f987e94319192699e7d1a86f603ac635ec0a579 20-Aug-2014 reed <reed@google.com> make imagecache's Key more general purpose

This should allow other clients with different sized keys to still use the cache.

BUG=skia:
R=fmalita@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/472343002
kScaledImageCache.cpp
kScaledImageCache.h
46bc6217ca41178c357a68be2869b8b2f6defe47 20-Aug-2014 mtklein <mtklein@chromium.org> Dump out more information if this assert fails.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/ec924b9696277df4c684e73315194482e1d43e50

R=caryclark@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/491903002
kRecorder.cpp
ec924b9696277df4c684e73315194482e1d43e50 20-Aug-2014 mtklein <mtklein@chromium.org> Dump out more information if this assert fails.

BUG=skia:
R=caryclark@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/491903002
kRecorder.cpp
c551d9fcae98ff7b9d56f315947e89a26632aeec 20-Aug-2014 mtklein <mtklein@chromium.org> Implement SkPicture::hasText() for SkRecord backend.

Plus, some small tweaks to the existing code surrounding it. Just proposals,
will undo whatever you don't like.

BUG=skia:
R=mtklein@google.com, tomhudson@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/494683003
kPicture.cpp
kRecords.h
f47dfed7a2f6f3007934224313b23a39a04a466d 20-Aug-2014 bungeman <bungeman@google.com> Remove SK_FONT_HOST_DOES_NOT_USE_FONTMGR and guarded code.

This define is no longer needed or set, so remove it from the code.

R=tomhudson@google.com, djsollen@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/488083004
kFontHost.cpp
3a0f27916712bb3226874aeaa268e30f565880de 20-Aug-2014 tomhudson <tomhudson@chromium.org> Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.

Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

BUG=skia:2700
R=mtklein@google.com, reed@google.com, robertphillips@google.com, tomhudson@google.com

Committed: https://skia.googlesource.com/skia/+/60c2a79cfa8ceebcbafc243407564dc71f5e3b4f

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
kPicture.cpp
kRecordAnalysis.cpp
kRecordAnalysis.h
9a657fa0b493ae43ed35ae04a686c5402d701420 20-Aug-2014 caryclark <caryclark@google.com> fix #if to #ifdef for SK_DEBUG

fix the chrome build

R=mtklein@google.com
TBR=mtklein
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/495453003
kRecordDraw.cpp
a19afb418027800c245ad19d651d8cf2071c9d70 20-Aug-2014 mtklein <mtklein@chromium.org> Cheat to go fast, but be careful in debug mode.

Turns out recording actual text metrics is currently really slow.
If we want to compete with the (cheating) status quo, gotta cheat too.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/494483002
kRecordDraw.cpp
38dd9f2e41748953f46e5daaf341971a851b247d 19-Aug-2014 caryclark <caryclark@google.com> remove unused SkIntToFloatCast_NoOverflowCheck

R=reed@google.com, reed
BUG=skia:2849

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/483273003
kFloatBits.cpp
6332f1dd20d73a6d8b9564af7c27d09394eb6596 19-Aug-2014 mtklein <mtklein@chromium.org> Record concat as setMatrix.

Mainly this cuts out a type to have to think about in SkRecord world.
It also means all the CTMs are recorded directly in the SkRecord, so
we can track the current CTM by pointer rather than by copying.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/484673003
kRecordDraw.cpp
kRecorder.cpp
kRecords.h
8a39a6b2b1d2c75b76e0fb75aab4d51792d240f6 19-Aug-2014 fmalita <fmalita@chromium.org> Quickfix for incorrect PICTURE_MATRIX_PAINT & PATCH optimization.

DRAW_PICTURE_MATRIX_PAINT & DRAW_PATCH are drawing ops.

R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/480463004
kPictureRecord.cpp
97d2c0a216e8feae251a6af1e50579df3e026434 19-Aug-2014 halcanary <halcanary@google.com> Move SkReadBuffer.h and SkReader32.h out of include.

Committed: https://skia.googlesource.com/skia/+/2a51d7c74cec217195f861677de8998b382b39e4

R=mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
kReadBuffer.h
kReader32.h
27dc17c2972421ce9c6331662fee6389b1e795a7 19-Aug-2014 Mike Klein <mtklein@google.com> Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702."

This reverts commit 60c2a79cfa8ceebcbafc243407564dc71f5e3b4f.

BUG=skia:

Review URL: https://codereview.chromium.org/481173003
kPicture.cpp
kRecordAnalysis.cpp
kRecordAnalysis.h
60c2a79cfa8ceebcbafc243407564dc71f5e3b4f 19-Aug-2014 tomhudson <tomhudson@chromium.org> Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.

Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

BUG=skia:2700
R=mtklein@google.com, reed@google.com, robertphillips@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
kPicture.cpp
kRecordAnalysis.cpp
kRecordAnalysis.h
f128f53a5bc36e2a991302cb40848df580ad515f 18-Aug-2014 halcanary <halcanary@google.com> Revert "Move SkReadBuffer.h and SkReader32.h out of include."

This reverts commit 2a51d7c74cec217195f861677de8998b382b39e4.

Breaking Blink

NOTRY=true
R=bungeman@google.com
TBR=bungeman@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/472303006
kReadBuffer.h
kReader32.h
3e8232b6ef6b04290f0c280f88b38f8cd2c3f3ec 18-Aug-2014 mtklein <mtklein@chromium.org> Counterproposal for skirting the BBH when the query fully contains the picture.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/485703002
kPicture.cpp
kRecordDraw.cpp
2a51d7c74cec217195f861677de8998b382b39e4 18-Aug-2014 halcanary <halcanary@google.com> Move SkReadBuffer.h and SkReader32.h out of include.

R=mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
kReadBuffer.h
kReader32.h
750ae26745d261183001a78d24251f6392e96b27 18-Aug-2014 ajuma <ajuma@chromium.org> Expose API for whether an SkPicture contains text

BUG=chromium:399728
R=reed@google.com, nduca@chromium.org

Author: ajuma@chromium.org

Review URL: https://codereview.chromium.org/478673002
kPicture.cpp
kPictureData.h
62b67ae96e94fd22569b058a3bc4625b9f52ed56 18-Aug-2014 mtklein <mtklein@chromium.org> Start actually bounding some draw ops.

This covers most of the common draws.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/469213007
kRecordDraw.cpp
ed265558a6a1d3b99eed76fcc0758f9a92319365 18-Aug-2014 bungeman <bungeman@google.com> Fix copyright on SkTLS.h.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/481783002
kTLS.h
479601b9a74b5b8e424ed3d68882e161617bdceb 18-Aug-2014 mtklein <mtklein@chromium.org> Small tweaks and a bug fix.

Bug fixed: I was calling paint->canComputeFastBounds() where I should have been calling fSaveStack[i].paint->canComputeFastBounds().

This suggested I factor out the paint adjusting code, now called AdjustForPaint(). This removes the getImageFilter() check for SaveLayers, which seems like an optimization we can add back later if it proves important.

We're going to want to intersect the bounds with the current clip bounds eventually, so might as well land that here too.

Plus, more const.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481543002
kRecordDraw.cpp
0ed4e863c0b8f8a9ca8182148bf9849e5b5bf2aa 18-Aug-2014 mtklein <mtklein@chromium.org> Stop sorting the results of SkBBH::search().

We only seem to need to sort with SkQuadTree, which is not actively used by
client code. So it's really just wasted work. SkQuadTree is interesting, but
I'd rather disable it than slow down the production code path.

BUG=skia:2834
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/471063004
kPictureData.cpp
kRecordDraw.cpp
bbe7a2ad32e3b54dbfa86d6de2ccf57526a10e2f 18-Aug-2014 reed <reed@chromium.org> eliminate code related to SkBitmap::Config

BUG=skia:
R=reed@google.com, mike@reedtribe.org

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/483593002
kBitmap.cpp
f92c86642a1875da54d54b447f006cb9dfbbb35c 18-Aug-2014 reed <reed@google.com> simplify SkCanvas::init()

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/472123002
kCanvas.cpp
ec730b9cafaa3b2a4df7e7ceb3ab50601796fbe5 18-Aug-2014 bungeman <bungeman@google.com> Remove fOrigFontID from SkScalerContextRec.

With the recent Android changes and removal of chaining, this is no longer used.

R=djsollen@google.com, reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/476713003
kPaint.cpp
kScalerContext.h
8a986721926f77aba3772acb5d1c575072acd05c 18-Aug-2014 bungeman <bungeman@google.com> Remove unused SkGlyphCache::VisitAllCaches.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/472153002
kGlyphCache.cpp
kGlyphCache.h
a723b576aed31a6eb2bdda6388e6bd779d04c6b0 15-Aug-2014 mtklein <mtklein@chromium.org> SkRecordDraw: incorporate clip into BBH

NOTREECHECKS=true

BUG=skia:
R=robertphillips@google.com, senorblanco@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/474983002
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
673d9732bf37df724500e04afcdf27d5c711ef60 15-Aug-2014 senorblanco <senorblanco@chromium.org> Check all scratch texture allocations for image filters.

BUG=403677
R=bsalomon@google.com
NOTREECHECKS=true

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/473283002
kImageFilter.cpp
45f7842de7148a544008483a7829071d3dffba51 15-Aug-2014 dandov <dandov@google.com> Fixed memory leak for nanobench and crashing in SampleApp
NOTREECHECKS=True

BUG=skia:2830
R=mtklein@google.com, egdaniel@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/469333002
kDevice.cpp
5a246bb48708cfdbf5b63f8df7e2b09b3704cae4 15-Aug-2014 mtklein <mtklein@chromium.org> int SkPicture::approximateOpCount()

NOTREECHECKS=true

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/470333002
kPicture.cpp
kPictureData.h
3b6255493e458c6b2c1412af908581f0bf3f6b70 14-Aug-2014 djsollen <djsollen@google.com> Remove SkPaintOptionsAndroid

Committed: https://skia.googlesource.com/skia/+/f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b

R=reed@google.com, mtklein@google.com, tomhudson@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/447873003
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
c15e28a5224a3a0e977d6b2da44ce89302d01186 14-Aug-2014 bsalomon <bsalomon@google.com> Revert of Remove SkPaintOptionsAndroid (patchset #5 of https://codereview.chromium.org/447873003/)

Reason for revert:
Breaks the Chromium build: http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-DRT/builds/2469/steps/BuildContentShell_1/logs/stdio

Original issue's description:
> Remove SkPaintOptionsAndroid
>
> Committed: https://skia.googlesource.com/skia/+/f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com
TBR=djsollen@google.com, mtklein@google.com, reed@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/473543004
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
6cfa73a29a26edf1d03bca224ad6860396308ffc 13-Aug-2014 mtklein <mtklein@chromium.org> Start tracking the CTM while filling the BBH in SkRecordDraw.

Depends on https://codereview.chromium.org/475473002/

BUG=skia:
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/468193003
kCanvas.cpp
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b 13-Aug-2014 djsollen <djsollen@google.com> Remove SkPaintOptionsAndroid

R=reed@google.com, mtklein@google.com, tomhudson@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/447873003
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
828ce1f34b3471c108aee6ac2c39ddb90d0be11e 13-Aug-2014 mtklein <mtklein@chromium.org> Start filling BBH in SkRecordDraw.

This starts with a skeleton of how to calculate bounds for ops which don't have
their own bounds. For any given Save/Restore block, we'll find the union of the
bounds of all the draws inside it (including other Save/Restore blocks), then say
those are the bounds of all non-draws in the block, including the Save and Restore.

To implement this, we keep a stack of active Save blocks. Any time we hit a
non-drawing op ("control"), we'll add it to that Save block (implemented with a
separate stack of indices and a count of control ops in the entry on the Save
stack). Save and SaveLayer push onto the stack, and Restore pops the stack, at
which point we can fill in the bounds for all the control ops in the block.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/475473002
kRecordDraw.cpp
9f49cfdbf6493b953775890d7f9c97a1dce0d341 12-Aug-2014 fmalita <fmalita@chromium.org> Add missing DRAW_PICTURE_MATRIX_PAINT paint offset.

Also remove explicit gPaintOffsets sizing to make the existing compile
time size check effective.

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/467683003
kPicturePlayback.cpp
kPictureRecord.cpp
b3c9d1c33caf325aada244204215eb790c228c12 12-Aug-2014 dandov <dandov@google.com> SkCanvas::drawPatch param SkPoint[12]

drawPatch now receives as parameter const SkPoint cubics[12]

Adjusted derived classes and serialization.

Ajusted GM's and benches that take into account combinations of optional
parameters, the scale of the patch and 4 different types of patches.

Planning on adding the extra functionality of SkPatch in another CL.

BUG=skia:
R=egdaniel@google.com, reed@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/463493002
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kPatch.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kReadBuffer.cpp
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
03bde3e6fa8deaf635bd19b45de69ebea71ec299 12-Aug-2014 mtklein <mtklein@chromium.org> SkTileGrid: store insertion order, return results sorted by that.

This removes the need to assume the void* are SkPictureStateTree::Data*.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/466503002
kRecordDraw.cpp
kTileGrid.cpp
kTileGrid.h
c019ec412ba2704bc6e2cdfd321ea06787ba415d 12-Aug-2014 robertphillips <robertphillips@google.com> Add layer counting to SkPictureRecord

This will be used for a SkPicture::suitableForOptimization entry point.

Committed: https://skia.googlesource.com/skia/+/4a2b2e8ed2e35171bf98bad68a69daaced11ec7c

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/464433002
kPictureContentInfo.cpp
kPictureContentInfo.h
kPictureData.cpp
kPictureData.h
kPictureRecord.cpp
3b73e0163c03a2cb1ee9efa9fddb931751415026 12-Aug-2014 mtklein <mtklein@google.com> Revert of Add layer counting to SkPictureRecord (https://codereview.chromium.org/464433002/)

Reason for revert:
DM's all segfaulty

http://108.170.220.120:10117/builders/Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug/builds/3866/steps/RunDM/logs/stdio

Original issue's description:
> Add layer counting to SkPictureRecord
>
> This will be used for a SkPicture::suitableForOptimization entry point.
>
> Committed: https://skia.googlesource.com/skia/+/4a2b2e8ed2e35171bf98bad68a69daaced11ec7c

R=bsalomon@google.com, robertphillips@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/452673003
kPictureContentInfo.cpp
kPictureContentInfo.h
kPictureData.cpp
kPictureData.h
kPictureRecord.cpp
4a2b2e8ed2e35171bf98bad68a69daaced11ec7c 11-Aug-2014 robertphillips <robertphillips@google.com> Add layer counting to SkPictureRecord

This will be used for a SkPicture::suitableForOptimization entry point.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/464433002
kPictureContentInfo.cpp
kPictureContentInfo.h
kPictureData.cpp
kPictureData.h
kPictureRecord.cpp
a7f7b168ae6c4658efe2a7acd1b22f2dd989bb35 11-Aug-2014 mtklein <mtklein@chromium.org> More SkTileGrid refactoring.

I've rearranged the code a bit more and added more notes.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/463593003
kTileGrid.cpp
kTileGrid.h
534cc4c569d88c1cfa5f10d3ecf475a90278f597 11-Aug-2014 mtklein <mtklein@chromium.org> De-parameterize SkNextDatumFunction.

Just a simple refactor to make it clear we're only using this
one method and this one type.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/465523002
kBBHFactory.cpp
kTileGrid.cpp
kTileGrid.h
6162af8d4c05354a160f6aa44d9c4440721c892a 11-Aug-2014 robertphillips <robertphillips@google.com> Cleaning up SkPicture-related classes

R=mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/459043002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
5ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2a 11-Aug-2014 mtklein <mtklein@chromium.org> Plumbing for using a BBH in SkRecordDraw.

For now this only creates a degenerate bounding box hierarchy where all ops
just have maximal bounds. I will flesh out FillBounds in future CL(s).

Not quite sure why QuadTree and TileGrid aren't drawing right---haven't even
looked at the diffs yet---so I've disabled those test modes for now. RTree
seems fine, so that'll at least get us coverage for all this new plumbing.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/454123003
kPicture.cpp
kPictureRecorder.cpp
kRecordDraw.cpp
kRecordDraw.h
kRecording.cpp
dfb9bc41a2e68714b123b47b3e163ab2524a223b 11-Aug-2014 bungeman <bungeman@google.com> Fix string assert and dead code which caused it.

Running tools with a '--' parameter caused SkString to assert here
incorrectly. SkString::remove should allow the entire contents of a
string to be removed.

The code in the flags parser which caused this call is dead and should
be removed.

R=mtklein@google.com, reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/453333002
kString.cpp
6b143b080820c34c9c0f80e5c682939e9ee3879d 11-Aug-2014 robertphillips <robertphillips@google.com> Remove Matrix/Clip State collapse code

Given recent & upcoming changes (e.g., removal of save flags & SkRecord picture backend) this will have to be reimplemented.

R=fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/453133003
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureRecord.cpp
kPictureRecord.h
d5fa1a455aad61f3e99081fe7a9b065cb3b115c6 09-Aug-2014 reed <reed@google.com> add drawPicture variant that takes a matrix and paint

will need some staging strategy, since chrome and blink have overrides of onDrawPicture

R=robertphillips@google.com, fmalita@google.com, bsalomon@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/448793004
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kCanvasPriv.h
kDevice.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
8d9153fca25897bf40ca0ebac8b03616612cc7b4 08-Aug-2014 humper <humper@google.com> short circuit high quality scales that are actually the identity
transform

BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/456843002
kBitmapProcState.cpp
kBitmapProcState_matrixProcs.cpp
8875a0413686eb3dc9f7d7d18a2cee9076aade54 08-Aug-2014 mtklein <mtklein@chromium.org> Make BBH::search() const.

I'd like to have SkRecordDraw() work with a const SkBBoxHierarchy*, but
can't quite today. The only interesting change here is no longer flushing
if needed in RTree; instead we assert we've been flushed already.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/452233002
kBBoxHierarchy.h
kQuadTree.cpp
kQuadTree.h
kRTree.cpp
kRTree.h
kTileGrid.cpp
kTileGrid.h
6d42d9c7ff1c3d7ab4de032d5451aed02f746c43 08-Aug-2014 humper <humper@google.com> add a simple ascii-art debug thing for AA clips

BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/450423002
kAAClip.cpp
kAAClip.h
afdada2eabdef47a59e08c884b2beb1af3f31aa5 08-Aug-2014 hendrikw <hendrikw@chromium.org> Moved SkPictureContentInfo into its own file. It now tracks the number of skia
operations (maybe, I'm not 100% sure I'm doing this right yet) and the number
of text draws. I also moved some of the gpu logic out of SkPictureRecord and
into SkPictureContentInfo,

http://code.google.com/p/chromium/issues/detail?id=396908
http://code.google.com/p/chromium/issues/detail?id=397198
http://code.google.com/p/chromium/issues/detail?id=399728

BUG=396908
R=nduca@chromium.org, mtklein@chromium.org, robertphillips@google.com, mtklein@google.com

Author: hendrikw@chromium.org

Review URL: https://codereview.chromium.org/435093003
kPictureContentInfo.cpp
kPictureContentInfo.h
kPictureData.cpp
kPictureData.h
kPictureRecord.cpp
kPictureRecord.h
f4078ad1ec42f549369ac4f639aab18d00afae95 08-Aug-2014 mtklein <mtklein@chromium.org> SkRecord: Strip out cull-skipping and y-only drawPosTextH skipping.

These optimizations are outclassed by a general bounding-box hierarchy,
and are just going to make plugging that into SkRecordDraw more complicated.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/452983002
kRecordDraw.cpp
kRecordDraw.h
kRecordOpts.cpp
kRecordOpts.h
kRecords.h
be129b26f13d575fd6b396c6ae759838ecc9bd1a 08-Aug-2014 senorblanco <senorblanco@chromium.org> Remove external SkImageFilter cache, and rename UniqueIDCache -> Cache.

There Can Only Be One.... Cache for SkImageFilter.

R=bsalomon@google.com

BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/452923002
kBitmapDevice.cpp
kCanvas.cpp
kImageFilter.cpp
2347b624678fedf1d2f7ab1d79b9ad70087c3392 07-Aug-2014 reed <reed@google.com> change drawPicture in SkRecord to just ref the picture

also fix some int/unsigned/size_t warnings

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/449933002
kRecord.h
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
202ab2a5cabaf25a1e6ec47c0003da3213a79864 07-Aug-2014 reed <reed@google.com> add isRect() check to AAClip, to detect if a soft-clip is really just an irect

taken from (https://codereview.chromium.org/445233006/)

fix: don't assume that the first yoffset is 0, since we may have performed a translate and not
re-alloced our data.

This reverts commit 0aeea6d344f12e35e29a79f4bbc48af88f913204.

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/443353004
kAAClip.cpp
kAAClip.h
kRasterClip.cpp
kRasterClip.h
0aeea6d344f12e35e29a79f4bbc48af88f913204 07-Aug-2014 reed <reed@google.com> Revert of add isRect() check to AAClip, to detect if a soft-clip is really just an irect (https://codereview.chromium.org/445233006/)

Reason for revert:
new code asserts on some pictures

Original issue's description:
> add isRect() check to AAClip, to detect if a soft-clip is really just an irect
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/592cb8d552556b1e922887d506d00b64bc5d0547

R=bsalomon@google.com, humper@google.com
TBR=bsalomon@google.com, humper@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/452533002
kAAClip.cpp
kAAClip.h
kRasterClip.cpp
kRasterClip.h
592cb8d552556b1e922887d506d00b64bc5d0547 07-Aug-2014 reed <reed@google.com> add isRect() check to AAClip, to detect if a soft-clip is really just an irect

BUG=skia:
R=bsalomon@google.com, humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/445233006
kAAClip.cpp
kAAClip.h
kRasterClip.cpp
kRasterClip.h
bb204f4917aff10fcb65d29a2d96e53a9611c559 07-Aug-2014 fmalita <fmalita@chromium.org> Clamp SkPictureShader's tile size.

Blink used to clamp the max size for its pattern bitmaps (several SVG
pattern tests rely on/verify this behavior).

This CL clamps the maximum tile area to a reasonable value (16M pixels),
and scales beyond that.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/446243002
kPictureShader.cpp
963137b75c0a1fe91f35e9826742f36309f5e65d 07-Aug-2014 dandov <dandov@google.com> Stopped skipping tests in dm of SkPatch by implementing the
corresponding drawPath calls on classes that derive from SkCanvas.

BUG=skia:
R=egdaniel@google.com, bsalomon@google.com, mtklein@google.com, robertphillips@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/429343004
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPatch.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kReadBuffer.cpp
kRecordDraw.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
da7a944e293d27ec5c7be06b224921ae0058d35a 06-Aug-2014 Derek Sollenberger <djsollen@google.com> Revert "Remove SkPaintOptionsAndroid"

This reverts commit 27fb94999b8eec448423884e1d071e563c4c95d9.

Review URL: https://codereview.chromium.org/450513002
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
27fb94999b8eec448423884e1d071e563c4c95d9 06-Aug-2014 Derek Sollenberger <djsollen@google.com> Remove SkPaintOptionsAndroid

Review URL: https://codereview.chromium.org/447873003
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
b5f7826c51af2862aebcabe61e1ba684f925e488 06-Aug-2014 fmalita <fmalita@chromium.org> Explicit tile bounds for SkPictureShader

The integer picture size is not granular enough to allow precise tiling
in arbitrary coordinate systems. This CL adds an optional tile bounds
float rect param to control the tile size and location.

(this also allows tile spacing emulation for picture
shaders).

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/437393003
kPictureShader.cpp
kPictureShader.h
kShader.cpp
3ffade63b3c97604f8aa3fb1a432e8ed0f9ba6e7 06-Aug-2014 reed <reed@google.com> fix concat order for local matrices

BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/446013004
kLocalMatrixShader.cpp
3ba15ae3e13a6da0a9735fcc04166ed4d3ddcd67 06-Aug-2014 mtklein <mtklein@chromium.org> SkPicture: try to no-op away clone().

Will actually enable this by #defining SK_PICTURE_CLONE_NOOP in Chrome's SkUserConfig.h as a separate CL after this rolls in.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/447753003
kPicture.cpp
53f0959fc024c56dc55fe6bf86380127b59abec9 06-Aug-2014 krajcevski <krajcevski@google.com> Allow custom blitters to be passed to SkDraw::drawPath

R=reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444003004
kDraw.cpp
1b27704eba15be4e9d1997faac42038493a30be5 06-Aug-2014 djsollen <djsollen@google.com> Remove ALL font fallback logic from Skia.

R=reed@google.com, bungeman@google.com, caryclark@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/434623002
kGlyph.h
kGlyphCache.h
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
ad82ed67dfa5514a17dcca0412c81756b3b03095 04-Aug-2014 mtklein <mtklein@chromium.org> Force linking as C++ library.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/420183004
kForceCPlusPlusLinking.cpp
ecfff21bde1f0ca3c36533eded325066b5f2d42d 04-Aug-2014 dandov <dandov@google.com> SkCanvas interface for drawing a patch.

Added function SkCanvas::drawPatch to the API. This function
receives the patch to draw and the paint.

Added function SkBaseDevice::drawPatch to the API. This function also receives the patch to draw and the paint.

Currently SkGpuDevice and SkBitmapDevice generate the mesh taking into
account the scale factor and call the corresponding device's drawVertices.

BUG=skia:
R=jvanverth@google.com, egdaniel@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/424663006
kCanvas.cpp
kDevice.cpp
kPatch.cpp
e86af3738abdfb5ba230101470b94189bb2e98b1 04-Aug-2014 humper <humper@google.com> fix missing return in error case for bitmap scaler

BUG=skia:
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/431613003
kBitmapScaler.cpp
efea5a72d6c49d51a5a02a92f10930d38e45843c 01-Aug-2014 Florin Malita <fmalita@google.com> Remove SK_IGNORE_QUAD_RR_CORNERS_OPT-related code.

Now that the flag is no longer used in Chromium
(https://codereview.chromium.org/426593006/), we can remove it.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/430473012
kPath.cpp
21769c52491b4e1c91cf7461af535aff2a1a18f7 01-Aug-2014 djsollen <djsollen@google.com> Update NEON compiler defines to use SK_ prefix

BUG=skia:2785
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/433513004
kUtilsArm.h
3f22e8c44a16d93377c0a3881f936e692b5b3320 31-Jul-2014 dneto <dneto@chromium.org> Fix end-of-pattern matching for Skia recording optimization.

The recorder optimizer's pattern matcher was accepting command sequences
when it shouldn't have.

In the submitted case, and the pattern matcher was looking for:
saveLayer, drawBitmap, restore
and in the rendering for the submitted case, the sequence of commands
were:
saveLayer, drawBitmap, drawBitmap, restore

This sequence was improperly accepted by the matcher, and the optimizer
reduced the sequence to:
drawBitmap, drawBitmap
where the opacity from the saveLayer paint argument was applied
to the first drawBitmap only.

The user-visible effect in Chrome was a flashing effect on an image
caused by incorrect (too-high) opacity.

The patch adds a Skia test to check for pixel colour values in
a similarly structured recording. All other Skia tests pass.
Blink layout tests also pass with this change.

BUG=chromium:344987
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: dneto@chromium.org

Review URL: https://codereview.chromium.org/430503004
kPictureRecord.cpp
55b6d8be997a447ef9ce0f029697677a940bfc24 30-Jul-2014 senorblanco <senorblanco@chromium.org> Implement a persistent uniqueID-based cache for SkImageFilter.

Add a unique ID to SkImageFilter, and use it as part
of a persistent cache of image-filtered results. This is used for
caching frame-to-frame coherent filters.

We also keep track of which filter subtrees do not reference the
src input, and use a GenID of zero for the src input in that case.
That way, subtrees which are not dependent on the filter input can be
cached independently of it.

This gives approximately a 4X speedup on
letmespellitoutforyou.com/samples/svg/filter_terrain.svg on Z620
and Nexus10. The cache key consists of the uniqueID of the filter, the
clip bounds, the CTM and the genID of the input bitmap.

Since this does not yet handle the case where the input primitives
(and part of the resulting filter tree) are unchanged, we have
to keep around the external cache for that painting case.
When the work to cache unchanging input primitives is done, the
old cache can be removed, and the new UniqueIDCache will be renamed
to Cache.

R=bsalomon@google.com, mtklein@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/414483003
kBitmapDevice.cpp
kCanvas.cpp
kImageFilter.cpp
fdd7d2b3dc8ce54922c3b170bbc2b3930bcb5d56 29-Jul-2014 krajcevski <krajcevski@google.com> Pass clip blitter rows preserved request

R=robertphillips@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/413403005
kBlitter.h
d6aeb6dc8fe21066f1a2c4813a4256a3acd3edf5 25-Jul-2014 bungeman <bungeman@google.com> Fix thread unsafe mutex initialization.

BUG=skia:2779
R=robertphillips@google.com, mtklein@google.com, reed@android.com, bsalomon@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/419113002
kTypeface.cpp
50d715476b1d3a00fb43c13e34a80ea0a01d32bf 25-Jul-2014 dandov <dandov@google.com> Added classes SkPatch and SkPatchMesh which help encapsulate and generalize this new primitive. The functionality and responsability of each class is better explained in the comments of the files.

Each patch defines a method genMesh that produces the geometry to draw. To do this they receive a SkPatchMesh object which they need to initialize in order to set up how the data is going to be formatted. Later they call function like setColor or pointAt to set the values at a specific index, the SkMeshPatch object handles the indices based on the format and makes it transparent to the client.

Added a slide to sample app to show how to set up this classes and how they interact.

BUG=skia:
R=jvanverth@google.com, egdaniel@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/405163003
kPatch.cpp
dd6d22751a1ec858daaf78c3929c22737483e3db 22-Jul-2014 jvanverth <jvanverth@google.com> Replace use of GrTHashTable in GrFontCache with SkTDynamicHash.

Searching the font cache for existing text strikes was showing up
as a hotspot on Android. This change reduces that cost.

R=bsalomon@google.com, robertphillips@google.com, mtklein@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/390103002
kDescriptor.h
d771f6bc273457bc7aa95938ac326dfbbf876e1a 22-Jul-2014 robertphillips <robertphillips@google.com> Add auto purging for SkPicture-related Ganesh resources (esp. layers)

This is intended to lower the bookkeeping burden for the Layer Caching feature. Cached layers are now automatically purged when a picture is deleted.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408923002
kCanvas.cpp
kDevice.cpp
kPicture.cpp
26489839cfdffd26afb1cac3ce6c396335654819 22-Jul-2014 sugoi <sugoi@chromium.org> Added count validation in SkImageFilter::Common::unflatten()

BUG=395641
R=reed@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/405983006
kImageFilter.cpp
7a037f494f3be524843540634507789c39f83689 21-Jul-2014 robertphillips <robertphillips@google.com> Move GrTMultiMap to src/core and rename it

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/401343002
kTMultiMap.h
518d83dbc1c899e316e8c896af5defb58b83120f 21-Jul-2014 sugoi <sugoi@chromium.org> Skia side RGB to YUV gpu conversion

This code is the one that's currently working in my local chromium build. A few things still need to be addressed and I'll highlight these directly in the code.

BUG=skia:
R=reed@google.com, bsalomon@google.com, senorblanco@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com, halcanary@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/374743003
kImageGenerator.cpp
kPixelRef.cpp
75f88512a1b74ebb1bbb4f0046e43f1a5a234320 21-Jul-2014 krajcevski <krajcevski@google.com> Let blitters be notified when they're done being used

R=reed@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/399593007
kBlitter.h
kScan_AntiPath.cpp
63e99f7a03b2ac90ae7a00232674fd39c0bdcc68 21-Jul-2014 bsalomon <bsalomon@google.com> Allow GrGLEffects to produce variable length keys.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/385713005
kXfermode.cpp
1bd6f7de5273f56a361a5b29ac9b448a525f0b9b 21-Jul-2014 dominikg <dominikg@chromium.org> Remove use of SK_SUPPORT_LEGACY_LAYERRASTERIZER_API.

Mozilla have removed any uses of the legacy API from their Moz2D code.
Since they were the last users we know of, we can remove the legacy API.

BUG=skia:2187
R=scroggo@google.com, reed@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/402613003
kPaintPriv.cpp
3d533ac917eaadf2fb3561f57d7266d8c0e665fd 20-Jul-2014 robertphillips <robertphillips@google.com> Replace GrTHash with SkTDynamicHash

Mike: SkTDynamicHash changes
Brian: Ganesh changes

This removes three instances of GrTHash leaving the ones in GrTextStrike.h

R=mtklein@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/402693003
kTDynamicHash.h
b959ec7815ae0f65f2aabdeaf280a2a2ee6db955 17-Jul-2014 reed <reed@google.com> factor out flattening/unflattening of common fields from SkImageFilter

This is a precursor to changing SkImageFilters (and all effects) to unflatten via a factory instead of a constructor. In that world, each subclass of ImageFilter will need to control/initiate the unflattening of the common fields, so they can be extract and passed to their Factory.

R=senorblanco@google.com, robertphillips@google.com, mtklein@google.com, senorblanco@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/395273002
kImageFilter.cpp
805ef159d197007b9529e60e5b918ee0f9d3802d 17-Jul-2014 halcanary <halcanary@google.com> Set maximum output size for scaled-image-cache images

Accessable via:
SkScaledImageCache::{G,S}etMaximumOutputSizeForHighQualityFilter

Also, a unit test.

BUG=389439
R=humper@google.com, tomhudson@google.com, reveman@chromium.org, vangelis@chromium.org, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/394003003
kBitmapProcState.cpp
kScaledImageCache.cpp
kScaledImageCache.h
2ec93fc1d3206db4dcf74ccfc1c995badbc135e9 16-Jul-2014 krajcevski <krajcevski@google.com> Buffer four scanlines prior to blitting. We will eventually use this
to blit four scanlines in a row in order to aggressively compress alpha
masks as the information comes in. This CL is only to introduce the API
and to make sure that nothing breaks in the general case.

R=reed@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/387953005
kBlitter.h
kScan_AntiPath.cpp
c7af812b4213105264af514d13ddbe631a89d171 16-Jul-2014 bungeman <bungeman@google.com> Revert of Reopened: Caching the result of readPixelsSupported (https://codereview.chromium.org/364193004/)

Reason for revert:
This appears to be causing failures on Android when running tests.

Original issue's description:
> Caching the result of readPixelsSupported
>
> The call was calling GR_GL_GetIntegerv 2 times for each readPixels
> and thus was causing a loss of performance
>
> (resubmit of issue 344793008)
>
> Benchmark url: http://packages.gkny.fr/tst/index.html
>
> BUG=skia:2681
>
> Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c
>
> Committed: https://skia.googlesource.com/skia/+/8339371f1ec3c57a0741932fd96bff32c53d4e54

R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com, piotaixr@chromium.org
TBR=bsalomon@chromium.org, bsalomon@google.com, junov@chromium.org, mtklein@google.com, piotaixr@chromium.org, reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2681

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/395203002
kTHashCache.h
0847059fcffe11d53d4ea803ba2d51c696eb6d07 16-Jul-2014 scroggo <scroggo@google.com> Remove kImageIsImmutable_Flag.

This flag was only used when setting or checking SkBitmap's
immutability when it did not have an SkPixelRef. Now that an
SkBitmap *must* have one in order to draw (e.g. you can no
longer have an SkBitmap that owns its pixels directly), its
immutabity without an SkPixelRef makes no sense.

Also, now that the flags are not contiguous starting from
0x01, use a more appropriate check to ensure only meaningful
flags are used.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/387083002
kBitmap.cpp
8339371f1ec3c57a0741932fd96bff32c53d4e54 16-Jul-2014 piotaixr <piotaixr@chromium.org> Caching the result of readPixelsSupported

The call was calling GR_GL_GetIntegerv 2 times for each readPixels
and thus was causing a loss of performance

(resubmit of issue 344793008)

Benchmark url: http://packages.gkny.fr/tst/index.html

BUG=skia:2681

Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c

R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/364193004
kTHashCache.h
f59eab269350f36a0c2bf98d1c2a9757c77fc473 14-Jul-2014 reed <reed@google.com> patch from issue 383923002

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/394603003
kPaint.cpp
837f5321a409228a27fc710eb71c87866b820cfb 14-Jul-2014 senorblanco <senorblanco@chromium.org> Fix for saveLayer() with filters vs. the BBox Hierarchy.

When building acceleration structures for SkPicture, we must transform
the primitive's bounds not only by its own SkPaint, but by the paints of
any saveLayer()s currently active above it.

We do this by pushing the SkPaint onto a stack on
saveLayer(), and popping them on restore(). We also push
a NULL paint in save(), so that the pushes and pops are
balanced.

BUG=skia:2734
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Committed: https://skia.googlesource.com/skia/+/6ca0b6a46cbe9bef3e2b9b9db813ec864efd62de

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/380373003
kBBoxRecord.cpp
kBBoxRecord.h
3b72f792898237e9cec4dd095ef56169d0317f71 14-Jul-2014 reed <reed@google.com> remove unused SkPixelRef constructor

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/390893002
kPixelRef.cpp
ed458688e284508f17a0408a093d89a8b5966e32 14-Jul-2014 reed <reed@google.com> remove SK_SUPPORT_LEGACY_PIXELREF_UNFLATTENABLE code

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/387313004
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
e322482f4d82bc704e40b8c89843f2ea5b6ddc04 14-Jul-2014 halcanary <halcanary@google.com> Move SkPDFStream back to SkStream to save memory.

SkPDFStream stores data as a SkStreamRewindable to minimize
deep duplication and memory overhead.

SkStreamToStreamRewindable function to deal with fact that
SkTypeface returns a SkStream.

BUG=skia:2743
R=djsollen@google.com, mtklein@google.com, bungeman@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/387863005
kStream.cpp
kStreamPriv.h
c07e2811dd8f15722ebdd1ff0a7f5449258569f1 14-Jul-2014 senorblanco <senorblanco@chromium.org> Revert "Fix for saveLayer() with filters vs. the BBox Hierarchy." and
"resizeimagefiler is ok with a BBH now".

This reverts commits 6ca0b6a46cbe9bef3e2b9b9db813ec864efd62de and 8fa73202eaffbd7591ee218ad452b9afde81f505.

Apparently causing problems in SKP playback.

R=mtklein@google.com, robertphillips@google.com
TBR=mtklein, robertphillips
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/381353005
kBBoxRecord.cpp
kBBoxRecord.h
e8464994bbcc797b47a5ee24aa513530d2bade3b 14-Jul-2014 robertphillips <robertphillips@google.com> Make SkPictureShader and SkPictureImageFilter use const SkPictures

R=mtklein@google.com, reed@google.com
TBR=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/390023002
kPictureShader.cpp
kPictureShader.h
7e4b2b502718ef1cc9ce48670682603e9e2dc02f 14-Jul-2014 scroggo <scroggo@google.com> Remove unused kImageIsOpaque_Flag.

This flag is never set or read. We now look at the alpha type to
determine opacity.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/385943003
kBitmap.cpp
6336f7c225f7806f5bbccea90ba6d2c881e8a470 14-Jul-2014 djordje.pesut <djordje.pesut@imgtec.com> MIPS: added optimization for SkRGB16_Opaque_Blitter::blitMask

gaint is ~30%

R=djsollen@google.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/357693002
kBlitter_RGB16.cpp
cfaeec446d06058cacef068b09f58ae2c78338fa 13-Jul-2014 Robert Phillips <robertphillips@google.com> Remove Skia's use of the default SkPicture constructor and multi-clone

This cannot be landed until (Chrome: Switch to one-at-a-time SkPicture::clone interface - https://codereview.chromium.org/380323002/) has landed.

R=mtklein@google.com
TBR=reed@google.com

Review URL: https://codereview.chromium.org/388833003
kPicture.cpp
kPictureData.cpp
kPictureData.h
dd528967fc3eea54c8d10937b0100192d0722f4e 13-Jul-2014 robertphillips <robertphillips@google.com> Remove SkPicture copy constructor

Given where we're heading with SkPicture why would you need to make a copy?

R=reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381133002
kPicture.cpp
kPictureData.cpp
kPictureData.h
b184f7f52b2a94e95aee326a3ca37110d2e43336 13-Jul-2014 reed <reed@chromium.org> Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels

This reverts commit 651eaeadeb0b1407f5fe192aeda90db1680fa2b8.

TBR=

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/390693002
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
00adc751e7dd5a37af454b7424889a95699b920d 13-Jul-2014 reed <reed@chromium.org> don't draw unpremul alpha (yet)

without these early exits, we can treat unpremul colors as premul, generating asserts and wacky colors.

TBR=

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/386203002
kBitmapProcState.cpp
kSpriteBlitter_RGB16.cpp
651eaeadeb0b1407f5fe192aeda90db1680fa2b8 12-Jul-2014 reed <reed@chromium.org> Revert of Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels (https://codereview.chromium.org/388803007/)

Reason for revert:
still failing (randomly?) bench sometimes. need stack dump to diagnose.

Original issue's description:
> Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
> usning it.
>
> Revert "Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)"
>
> This reverts commit d08cb905a7cc80d8fb868bbd14fffe1cd68adcce.
>
> TBR=scroggo@google.com
>
> Committed: https://skia.googlesource.com/skia/+/debba5c3d091159149f8a88ab5dcd44dd72e0dc7

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/382543005
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
debba5c3d091159149f8a88ab5dcd44dd72e0dc7 12-Jul-2014 reed <reed@google.com> Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
usning it.

Revert "Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)"

This reverts commit d08cb905a7cc80d8fb868bbd14fffe1cd68adcce.

R=reed@chromium.org
TBR=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/388803007
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
1b0aa001e8f5245663965992f32df6a43cb22e2f 11-Jul-2014 scroggo <scroggo@google.com> No need to cache local matrix in picture shader.

Now that the local matrix cannot be changed, we no longer need
to keep track of it to regenerate the bitmap shader.

Depends on https://codereview.chromium.org/379323002

R=fmalita@google.com, fmalita@chromium.org

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/387043002
kPictureShader.cpp
kPictureShader.h
936b73424f7393994be832376287da988a52b993 11-Jul-2014 caryclark <caryclark@google.com> ios fixes

skia_ios.mm
Get the app's Documents directory and pass use it to set the resource path.
This is a quick hack which will be replaced by a new application that is
a tiny shim around a command line tool.

SkImageEncoder.h
SkForceLinking.cpp
SkImageDecoder_CG.cpp
Add support for FORCE_LINKING so iOS sees the PNG encoder and others.

SkFloatBits.cpp
SkPoint.cpp
Handle denormalized numbers that are floored by the iOS ARM processor.

SkImageDecoder_iOS.mm
Remove empty encoder factory.

SkTouchGesture.cpp
Return early on empty state on touch rather than aborting (crashing)

JpegTest.cpp
Hal via stackoverflow.com says partial jpegs can be gray as well.

skia_test.cpp
Remove crash handler call for now to avoid link failure.

OverwriteLine.h
Remove fancy line overwrite for iOS.

Resources.cpp
Add interface to set resource directory based on runtime query.

BUG=skia:2736 skia:2737 skia:2738
R=reed@google.com, halcanary@google.com, mtklein@google.com, tfarina@chromium.org

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/373383003
kFloatBits.cpp
kMathPriv.h
kPoint.cpp
ef0fd61dc2ea50ce29b1fe0feed473479b32e42c 11-Jul-2014 scroggo <scroggo@google.com> Remove SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX.

This is no longer needed by Android.

BUG=skia:1976
R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/379323002
kPaintPriv.cpp
c870d494dd0dc88f3f4155a0d6257a1be8280880 11-Jul-2014 scroggo <scroggo@google.com> Use SkShader's localMat for SkLocalMatrixShader.

Instead of setting SkShader::fLocalMatrix to Identity and storing
a separate SkMatrix inside SkLocalMatrixShader, reuse
SkShader::fLocalMatrix.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/386693003
kLocalMatrixShader.cpp
kLocalMatrixShader.h
848faf00ec33d39ab3e31e9a11d805cae6ac6562 11-Jul-2014 bsalomon <bsalomon@google.com> This moves us towards variable length effect keys. The overall program key now allows for it. After the header it stores an array of offsets to effect keys. This allows us to grab the effect keys to pass to effects when they generate code. It also ensures that we can't get a collision by sets of keys that are different lengths but are the same when appended together.

R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/356513003
kXfermode.cpp
6ca0b6a46cbe9bef3e2b9b9db813ec864efd62de 11-Jul-2014 senorblanco <senorblanco@chromium.org> Fix for saveLayer() with filters vs. the BBox Hierarchy.

When building acceleration structures for SkPicture, we must transform
the primitive's bounds not only by its own SkPaint, but by the paints of
any saveLayer()s currently active above it.

We do this by pushing the SkPaint onto a stack on
saveLayer(), and popping them on restore(). We also push
a NULL paint in save(), so that the pushes and pops are
balanced.

BUG=skia:2734
R=mtklein@google.com, reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/380373003
kBBoxRecord.cpp
kBBoxRecord.h
19fcc7494e68843cb9f2de819a7287ee216e3c5e 11-Jul-2014 mtklein <mtklein@chromium.org> Slim Skia down to just one murmur3 implementation.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587

Committed: https://skia.googlesource.com/skia/+/67a3271f0de9ccc32d559b042b862528272047cc

Committed: https://skia.googlesource.com/skia/+/53d435990bdb4d14df78013da45a9364d0287ebe

CQ_EXTRA_TRYBOTS=tryserver.skia:Perf-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
kChecksum.h
kImageFilter.cpp
d08cb905a7cc80d8fb868bbd14fffe1cd68adcce 11-Jul-2014 jcgregorio <jcgregorio@google.com> Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)

Reason for revert:
Maybe causing crashes in bench.

http://108.170.220.120:10117/builders/Test-ChromeOS-Daisy-MaliT604-Arm7-Debug/builds/2608/steps/RunBench/logs/stdio

Original issue's description:
> add readPixels() to SkBitmap
>
> BUG=chromium:390782
>
> Committed: https://skia.googlesource.com/skia/+/c4f216151b6ade70c35fade09a353052f40236b1

R=scroggo@google.com, bsalomon@google.com, reed@google.com
TBR=bsalomon@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=chromium:390782

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/382243003
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
ffc75efc1a4c231286c773ff090ec84fc16e9422 11-Jul-2014 robertphillips <robertphillips@google.com> Revert of Add alternate SkPicture::clone (https://codereview.chromium.org/381193002/)

Reason for revert:
Going to try to just remove the many-at-once clone interface

Original issue's description:
> Add alternate SkPicture::clone
>
> This adds an alternate version of SkPicture::clone for two reasons:
>
> 1) Chromium uses the SkPicture copy constructor to unpack the pictures from the old-style clone interface (and I would like to remove the copy ctor)
>
> 2) This is part of the long term plan to wean Chrome off of cloning. Once pictures are thread safe we will switch the new SkPicture::clone call to just return 'this'. From there it is a small step to removing clone entirely.
>
> Note that the two versions of clone() is temporary. Once this is landed (and rolled) I will land a Chrome-side patch to remove their use of the old interface (Use new SkPicture::clone interface - https://codereview.chromium.org/380323002/)
>
> Committed: https://skia.googlesource.com/skia/+/e372e78223a8ce916d276d6e0420d552fb0267e9

R=mtklein@google.com, reed@google.com
TBR=mtklein@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/386933004
kPicture.cpp
bbf9f6d1cbb94d3486072228781f6e3b6e2252e4 10-Jul-2014 reed <reed@google.com> Revert of Slim Skia down to just one murmur3 implementation. (https://codereview.chromium.org/376183004/)

Reason for revert:
broke 10.6 compile

[17:13:56.863876] [4/336] CXX obj/src/core/core.SkBBoxHierarchyRecord.o
[17:13:56.863997] FAILED: c++ -MMD -MF obj/src/core/core.SkBBoxRecord.o.d -DSK_INTERNAL -DSK_GAMMA_SRGB -DSK_GAMMA_APPLY_TO_A8 -DSK_SCALAR_TO_FLOAT_EXCLUDED -DSK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1 -DSK_SUPPORT_GPU=1 -DSK_SUPPORT_OPENCL=0 -DSK_FORCE_DISTANCEFIELD_FONTS=0 -DSK_SCALAR_IS_FLOAT -DSK_BUILD_FOR_MAC -DSK_USE_POSIX_THREADS -DSK_RELEASE -DNDEBUG -I../../include/config -I../../include/core -I../../include/pathops -I../../include/pipe -I../../include/ports -I../../include/utils -I../../include/xml -I../../src/core -I../../src/sfnt -I../../src/image -I../../src/opts -I../../src/utils -I../../include/utils/mac -I../../include/gpu -I../../src/gpu -fasm-blocks -mpascal-strings -O3 -gdwarf-2 -Wnewline-eof -mmacosx-version-min=10.6 -arch x86_64 -mssse3 -fvisibility=hidden -fvisibility-inlines-hidden -c ../../src/core/SkBBoxRecord.cpp -o obj/src/core/core.SkBBoxRecord.o
[17:13:56.864085] In file included from ../../src/core/SkPictureFlat.h:14,
[17:13:56.864130] from ../../src/core/SkPictureData.h:14,
[17:13:56.864173] from ../../src/core/SkPictureRecord.h:18,
[17:13:56.864217] from ../../src/core/SkBBoxRecord.h:12,
[17:13:56.864261] from ../../src/core/SkBBoxRecord.cpp:9:
[17:13:56.864336] ../../src/core/SkChecksum.h: In static member function ‘static uint32_t SkChecksum::Compute(const uint32_t*, size_t)’:
[17:13:56.864397] ../../src/core/SkChecksum.h:127: error: invalid conversion from ‘const uint32_t*’ to ‘const uint32_t*’
[17:13:56.864462] ../../src/core/SkChecksum.h:128: error: invalid conversion from ‘const uint32_t*’ to ‘const uint32_t*’
[17:13:56.864510] ../../src/core/SkChecksum.h:129: error: comparison between distinct pointer types ‘const uint32_t*’ and ‘const uint32_t*’ lacks a cast

Original issue's description:
> Slim Skia down to just one murmur3 implementation.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587
>
> Committed: https://skia.googlesource.com/skia/+/67a3271f0de9ccc32d559b042b862528272047cc
>
> Committed: https://skia.googlesource.com/skia/+/53d435990bdb4d14df78013da45a9364d0287ebe

R=mtklein@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/381253003
kChecksum.h
kImageFilter.cpp
c4f216151b6ade70c35fade09a353052f40236b1 10-Jul-2014 reed <reed@google.com> add readPixels() to SkBitmap

BUG=chromium:390782
R=scroggo@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/377303002
kBitmap.cpp
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
e372e78223a8ce916d276d6e0420d552fb0267e9 10-Jul-2014 robertphillips <robertphillips@google.com> Add alternate SkPicture::clone

This adds an alternate version of SkPicture::clone for two reasons:

1) Chromium uses the SkPicture copy constructor to unpack the pictures from the old-style clone interface (and I would like to remove the copy ctor)

2) This is part of the long term plan to wean Chrome off of cloning. Once pictures are thread safe we will switch the new SkPicture::clone call to just return 'this'. From there it is a small step to removing clone entirely.

Note that the two versions of clone() is temporary. Once this is landed (and rolled) I will land a Chrome-side patch to remove their use of the old interface (Use new SkPicture::clone interface - https://codereview.chromium.org/380323002/)

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381193002
kPicture.cpp
53d435990bdb4d14df78013da45a9364d0287ebe 10-Jul-2014 mtklein <mtklein@chromium.org> Slim Skia down to just one murmur3 implementation.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587

Committed: https://skia.googlesource.com/skia/+/67a3271f0de9ccc32d559b042b862528272047cc

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
kChecksum.h
kImageFilter.cpp
654a9c20acb2e34b7836139615c29dc09fa0fb9c 10-Jul-2014 mtklein <mtklein@chromium.org> Use a consume load in SkLazyPtr.

This only affects ARM, where an acquire needs a memory barrier but consume does not. I am interested to see if there's a noticeable effect on the Android bots.

BUG=skia:

NOTRY=true
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/381143002
kLazyPtr.h
e50737332d67ca7c88ee304e48ee21fa3e3f84b1 10-Jul-2014 robertphillips <robertphillips@google.com> Re-add friend Chrome requires

R=jcgregorio@google.com
TBR=jcgregorio@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381963002
kPictureData.h
6142609b22814283210f79d698182b651a93136c 10-Jul-2014 robertphillips <robertphillips@google.com> Cleanup SkPicture* classes a bit

This is an attempt to reduce the number of friends the various SkPicture* classes have.
Probably the only controversial part is making getBitmap, getPath, getPicture and getPaint
public on SkPictureData (and adding a new initIterator entry point).

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/384753004
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPictureRecord.h
c26d991bf2d85bb1843a21b0a4f861212b0eaced 10-Jul-2014 robertphillips <robertphillips@google.com> Split SkPictureReplacementPlayback out of SkPicturePlayback

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/383733002
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRangePlayback.h
kPictureReplacementPlayback.cpp
kPictureReplacementPlayback.h
67a3271f0de9ccc32d559b042b862528272047cc 10-Jul-2014 mtklein <mtklein@chromium.org> Slim Skia down to just one murmur3 implementation.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
kChecksum.h
kScaledImageCache.cpp
1feac79203605c146671b731cb891b3c6eb49939 09-Jul-2014 mtklein <mtklein@google.com> Revert of Slim Skia down to just one murmur3 implementation. (https://codereview.chromium.org/376183004/)

Reason for revert:
Valgrind unhappy. skia:2735

Original issue's description:
> Slim Skia down to just one murmur3 implementation.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/378413002
kChecksum.h
kImageFilter.cpp
kScaledImageCache.cpp
ec66e6264de5110802c3d9927380d913242c9d5f 09-Jul-2014 robertphillips <robertphillips@google.com> Refactor SkPicturePlayback for SkPictureReplacementPlayback

This CL is intended to maximize code reuse when SkPictureReplacementPlayback is split off.

R=mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/378343002
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
2e09d18f78f5772d2d9506ff8024ca8542654358 09-Jul-2014 mtklein <mtklein@chromium.org> Add bounds checks to SkTDynamicHash

BUG=391001
R=bsalomon@google.com, mtklein@google.com, sugoi@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/380443002
kTDynamicHash.h
6ac0037b70410ff7d5ce5788bc89314223e1a587 09-Jul-2014 mtklein <mtklein@chromium.org> Slim Skia down to just one murmur3 implementation.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
kChecksum.h
kImageFilter.cpp
kScaledImageCache.cpp
bd7746da97e389c1068333117407b213b378f9db 09-Jul-2014 mtklein <mtklein@chromium.org> Remove ability for Release code to call getRefCnt() or getWeakRefCnt().

These getRefCnt() methods are not thread safe, so Skia code should not
be calling them. unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726

Committed: https://skia.googlesource.com/skia/+/4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443

R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
kImageFilter.cpp
874a62acef5ec2ecccdbb99ec4d86402a3341e6a 09-Jul-2014 Mike Klein <mtklein@google.com> Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."

This reverts commit 4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
kImageFilter.cpp
0b544ae222aab1c5d9122a8dfe2800451b31d979 09-Jul-2014 mtklein <mtklein@chromium.org> Add SkRacy

SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes. In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs. We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
kPathRef.cpp
d3f3e5895efb5edfd838ba9127093c804f9dbc12 08-Jul-2014 mtklein <mtklein@google.com> Revert of Add SkRacy (https://codereview.chromium.org/371363004/)

Reason for revert:
hidden symbol 'AnnotateBenignRaceSized' in obj/base/third_party/dynamic_annotations/libdynamic_annotations.a(obj/base/third_party/dynamic_annotations/dynamic_annotations.dynamic_annotations.o) is referenced by DSO lib/libblink_platform.so

Original issue's description:
> Add SkRacy
>
> SkRacy<T> is a zero-overhead wrapper for a T, except it also
> silences race warnings when TSAN is running.
>
> Here we apply in several classes. In SkMatrix and SkPathRef,
> we use it to opportunistically cache some idempotent work.
>
> In SkPixelRef, we wrap the genIDs. We think the worst that
> can happen here is we'll increment the global next-genID a
> few times instead of once when we go to get another ID.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/377693005
kPathRef.cpp
92432c7f7c0a878256f139ce6f73d71e1c202a16 08-Jul-2014 robertphillips <robertphillips@google.com> Fixed up SkTimedPicturePlayback

This was more motivated to remove the preDraw and postDraw virtuals from SkPicturePlayback.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/375943002
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRangePlayback.cpp
d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7 08-Jul-2014 mtklein <mtklein@chromium.org> Add SkRacy

SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes. In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs. We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
kPathRef.cpp
65b6fa177798089a3556643f765fbbca5a4a5185 08-Jul-2014 jvanverth <jvanverth@google.com> Use stack allocation for Android data in SkScalerContext::MakeRec().

In a perfvis run on the "Boogie" test page, descriptorProc() during
detachCache() was taking .721 ms, and 20% of that was the flatten() in
MakeRec(). Changing this to a smaller stack allocation reduces the time
for descriptorProc() to .556 ms.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/372323003
kPaint.cpp
83d081ae1d731b5039e99823620f5e287542ee39 08-Jul-2014 bsalomon <bsalomon@google.com> Goodbye GrEffectRef.

Also, reworked some var names and comments around SkShader::asNewEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/374923002
kBitmapProcShader.cpp
kImageFilter.cpp
kPictureShader.cpp
kShader.cpp
kXfermode.cpp
ca95c19d27b505a1ac8f57b53cb49c198bc29267 08-Jul-2014 sugoi <sugoi@chromium.org> Adding validation before using an SkImageInfo object read from an SkReadBuffer.

BUG=389574
R=senorblanco@google.com, reed@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/376803004
kBitmap.cpp
9ea3d57fde28a5fe4487a111dc3dd49418235e5e 08-Jul-2014 senorblanco <senorblanco@chromium.org> Clean up SkImageFilter constructors.

Now that all creation of SkImageFilters goes through
factory Create() methods, there's no real reason for the
convenience constructors. Some SkImageFilter subclasses
which actually have zero DAG-able inputs were passing NULL
to the superclass constructor. This actually means 1 input,
with a NULL value, not zero inputs. This becomes more
relevant for the upcoming cache infrastructure, where this
indicates that the filter will use its src input, where in
fact some of these filters do not (they are image generators
only).

Limiting SkImageFilter to a single constructor resolves this
ambiguity.

Along the way, I removed all of the default parameters to
the constructors, since the Create methods always call them
with the full argument list.

BUG=skia:
R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/376953003
kImageFilter.cpp
1ad00e4b245d464c16ba78bdaa377281f29972cd 08-Jul-2014 robertphillips <robertphillips@google.com> Split SkPictureRangePlayback out of SkPicturePlayback

This CL starts cleaning up SkPicturePlayback. Future CLs will:

split out the SkPictureReplacementPlayback
remove the preDraw/postDraw entry points & fix up SkPictureTimedPlayback

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/374833006
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRangePlayback.cpp
kPictureRangePlayback.h
55fad7af61c21d502acb9891d631e8aa29e3628c 08-Jul-2014 bsalomon <bsalomon@google.com> Remove GrEffect::CreateEffectRef and GrEffect::AutoEffectRef.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/371103003
kXfermode.cpp
97b9ab72cd5ee0cba4692082737266376425f27c 08-Jul-2014 bsalomon <bsalomon@google.com> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.

Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorFilter.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskFilter.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443 08-Jul-2014 mtklein <mtklein@chromium.org> Remove ability for Release code to call getRefCnt() or getWeakRefCnt().

These getRefCnt() methods are not thread safe, so Skia code should not
be calling them. unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
kImageFilter.cpp
3afef1f75f710b8f183113cdc5188416f7d01f28 08-Jul-2014 robertphillips <robertphillips@google.com> Clean up a bit after SkPictureData/SkPicturePlayback split

This CL begins setting up the SkPicturePlayback split by simplifying the class and componentizing it a bit. It:
fuses SkPictureData::OperationList into SkPicture::OperationList
adds a handleOp method to SkPicturePlayback that can be reused by derived classes
removes a couple debugging tools (ENABLE_TIME_DRAW & SPEW_CLIP_SKIPPING)

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/378703002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
eeb1f15891ee9f96f2c5d6e1c3d5a656208f3760 08-Jul-2014 mtklein <mtklein@chromium.org> Turn on threaded DMQuiltTask drawing for old-format SkPictures too.

This required the same SkBitmap copying that we added today to SkRecord.

BUG=skia:
R=reed@android.com, robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/375703002
kPicturePlayback.cpp
969842ac9c3825100c86c8dae88d931c06286622 08-Jul-2014 reed <reed@google.com> Revert of Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. (https://codereview.chromium.org/377503004/)

Reason for revert:
broke linux builders

Original issue's description:
> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
>
> Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*
>
> Make GrEffectRef a typedef for GrEffect.
>
> Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com, bsalomon@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/372053003
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorFilter.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskFilter.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
2011fe9cdfa63b83489a146cea6a724cede352c8 08-Jul-2014 bsalomon <bsalomon@google.com> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.

Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorFilter.cpp
kImageFilter.cpp
kLocalMatrixShader.h
kMaskFilter.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
060c41a499b1e8c2b34661b5eb988630e25c6421 07-Jul-2014 reed <reed@google.com> remove unneeded flags (have been purged from chrome and android)

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/372793003
kBitmap.cpp
9a9eae21ed5235869702a66d6decddd6643792c3 07-Jul-2014 reed <reed@google.com> change pixelref to not inherit from SkFlattenable

If I can "inline" MallocPixelRef unflatten, then I think we can delete this code. The only caller today should be unflattening in the legacy path for bitmaps.

R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/320873003
kBitmap.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
ce4dd3de38cd7c29bf5b9d8a8efb55c08ec9be47 07-Jul-2014 robertphillips <robertphillips@google.com> Split SkPicturePlayback out of SkPictureData

This splits the playback functionality out of SkPictureData. The old SkPictureData::draw method is pulled out along
with its supporting functions as verbatim as possible. Some follow on CLs will be required to:

re-enable profiling in the debugger (and remove the vestiges of SkTimedPicture)
re-enable display of command offsets in the picture (this should probably wait until we've switched to SkRecord though)
Clean up CachedOperationList (maybe fuse with SkPicture::OperationList)
Split SkPicturePlayback into a base class and two derived classes
Implement parallel version of GatherGPUInfo for SkRecord

Landing this is blocked on removing Android's use of the abortPlayback entry point.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/377623002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
75e9e6373ef25b43acbef6f2e9389a262d7286ba 07-Jul-2014 reed <reed@google.com> don't look at SK_SCALAR_IS_FLOAT -- it is true, but no longer defined

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/371033004
kReadBuffer.cpp
f99f884cd82528684779e40413f1ceaf277dad2d 07-Jul-2014 bsalomon <bsalomon@google.com> Remove use of GrEffectRef from draw state and below.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/372773002
kXfermode.cpp
7cdc1ee11545a10708e857adf1d4a94a2f1e2a48 07-Jul-2014 mtklein <mtklein@chromium.org> Add always-threaded SkRecord quilt tests.

Now that we're drawing tiles threaded like implside painting, remove the checks
that those lock counts are balanced. They're just not right for anyone anymore.

SkBitmaps themselves are not threadsafe (even const ones), so shallow copy them
on playback of an SkRecord. (The underlying SkPixelRefs are threadsafe.)

Simplify quilt drawing by using SkBitmap::extractSubset. No need for locking.

Bump up to 256x256 tiles. 16x16 tiles just murders performance (way too much
contention). This has the nice side effect of letting us enable a bunch more
GMs for quilt mode; they drew wrong with small tiles but exactly right with large.

BUG=171776
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371023005
kCanvas.cpp
kRecordDraw.cpp
410780677af260e32948b02c0725ef6ad761260c 07-Jul-2014 bungeman <bungeman@google.com> Remove vertical/horizontal metrics selection.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/370463002
kScalerContext.cpp
kScalerContext.h
1f836ee096bb988adef4b9757b2629c7afeda36d 07-Jul-2014 reed <reed@google.com> with no save flag options, we can directly reference matrix and clip in MCRec

patch from issue 364973003

R=fmalita@chromium.org
TBR=fmalita@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/364193005
kCanvas.cpp
d930511ee73bf0ddc8bdf570ec23a17dd3e19709 05-Jul-2014 tomhudson <tomhudson@chromium.org> Linear-time implementation of willPlaybackBitmaps(), computed & cached
on construction in SkPicture. Unit test.

Template trickery thanks to mtklein@.

BUG=skia:2702
R=mtklein@google.com, reed@android.com, reed@google.com, tomhudson@google.com, mtklein, reed

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/366443002
kPicture.cpp
kRecordAnalysis.cpp
kRecordAnalysis.h
c197c8a47eb9cf09b389f4dd5d235510feec18cb 03-Jul-2014 sugoi <sugoi@chromium.org> Adding 64 bit checks

Added a few more checks to avoid overflowing 32 bit sizes while computing convolutions.

I also changed a dangerously misleading INHERITED typedef.

BUG=389570
R=senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/361403006
kConvolver.cpp
kScaledImageCache.cpp
e1085e0381a4abfe440e664c1a0669f3676a8092 03-Jul-2014 reed <reed@chromium.org> move SkChecksum and SkEmptyShader to private

TBR=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/366133002
kChecksum.h
kEmptyShader.h
a5c08447cb28d8f6f77729d4e4aeedc74b245c42 02-Jul-2014 Ben Wagner <bungeman@google.com> Remove SK_IGNORE_FASTER_TEXT_FIX.

This flag is no longer defined, so remove its use and guarded code.
kPaint.cpp
dc1cf66483e93c2d12d938bc1ce3b8c60cc68da5 01-Jul-2014 jvanverth <jvanverth@google.com> Remove A8_LCD luminance hack.

It no longer appears to be necessary, and the powf function is slowing down
Android text rendering.

R=bungeman@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/337603008
kPaint.cpp
f0aed97aec3fa1c7f6460d8d6327358f3dcbabe6 01-Jul-2014 reed <reed@google.com> correctly plumb through explicit rowbytes for allocPixels

BUG=skia:
R=caryclark@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/357073003
kBitmap.cpp
kMallocPixelRef.cpp
db539905bb3af7bd05839a7d2558e97d5cb51ca2 01-Jul-2014 robertphillips <robertphillips@google.com> Rename SkPicturePlayback to SkPictureData

This is in preparation for splitting the playback portion of the new SkPictureData class into a new SkPicturePlayback class.

R=reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/362773002
kPicture.cpp
kPictureData.cpp
kPictureData.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.h
kPictureRecorder.cpp
2fd0d14b9be34a7a945942733c3516d97d07f516 01-Jul-2014 scroggo <scroggo@google.com> Adjust the alpha type for pixelRefs.

Move SkBitmap's validate_alphaType to SkImageInfo, with the new
name SkColorTypeValidateAlphaType. Use it in SkPixelRef's constructors,
as well as in SkDecodingImageGenerator. This fixes a bug where an
SkPixelRef's SkAlphaType could get out of sync with its SkBitmap,
when both were assigned the same SkAlphaType.

R=reed@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/346593003
kBitmap.cpp
kImageInfo.cpp
kPixelRef.cpp
52d9ac6c92ddf33b3b05eb77ba9509a7aa441657 30-Jun-2014 reed <reed@google.com> stop calling SkCanvas::getDevice

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/355193006
kCanvas.cpp
952841bf41a81228c23d16c7204b458abe0d7136 30-Jun-2014 robertphillips <robertphillips@google.com> Begin atlasing

This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
kPicturePlayback.cpp
kPicturePlayback.h
5f6102d07982043542343ff0a6c67b1319ac9fc7 30-Jun-2014 Florin Malita <fmalita@chromium.org> SaveFlags be-gone

Remove the deprecated save(SaveFlags), willSave(SaveFlags) and all
traces of kMatrix_SaveFlags/kClip_SaveFlag.

BUG=skia:2297
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/340403003
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kRecordDraw.cpp
kRecordOpts.cpp
kRecorder.cpp
kRecorder.h
kRecords.h
e462f2bed33283862bb983c67776a47c5a6acb01 30-Jun-2014 robertphillips <robertphillips@google.com> Revert of Begin atlasing (https://codereview.chromium.org/354533004/)

Reason for revert:
Sigh

Original issue's description:
> Begin atlasing
>
> This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
>
> 1) the atlased layers cannot be purged nor aged out
> 2) the texture backing the atlas is not pulled from (or returned to) the resource cache
>
> #1 is on hold until we have a recycling rectanizer
>
> A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
>
> Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/359953002
kPicturePlayback.cpp
kPicturePlayback.h
55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b 30-Jun-2014 robertphillips <robertphillips@google.com> Begin atlasing

This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
kPicturePlayback.cpp
kPicturePlayback.h
d92f5b814d01c474a0fb52e32e10a997b2c9b5bf 29-Jun-2014 humper <humper@google.com> add a second interface to the resizer to exactly match what Chrome expects. Will make the migration much cleaner

BUG=skia:
R=mtklein@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/353163005
kBitmapScaler.cpp
kBitmapScaler.h
bae704b050491a8a98c67cb23eaccb10852d2bd5 28-Jun-2014 reed <reed@google.com> add rowbytes option to allocPixels

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/345263005
kBitmap.cpp
4af35f348b2e2f6c428819118eb7a2f2fff53a74 28-Jun-2014 reed <reed@google.com> writepixels needs to bump genID

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/352573005
kCanvas.cpp
d3e474e20c6f0f24ddb6b2643e92975d60190daa 27-Jun-2014 mtklein <mtklein@chromium.org> Deprecate SkPicture::clone().

Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.

This removes the modes from our tools that use clone(). No
bots run these. DM used clone() in a way that we can just
share the picture now.

I plan to bring back the ability to test multithreaded
picture rendering soon.

BUG=skia:2378
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338633011
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
67ec1f8eecfb48bc0a6ba04c0057f103c1c9696f 27-Jun-2014 halcanary <halcanary@google.com> Switch SkPDFStream's internal storage from SkStream to SkData

Motivation: This makes SkPDFStream thread-safe for two threads
serializing it at once, since a SkStream has an internal position.

Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
SkPDFStream to use the SkData constructor rather than the SkStream
constructor (saving a memcpy).

BUG=skia:2683

Committed: https://skia.googlesource.com/skia/+/c1dfa14b645ae274780f026dd86c9b633fbdad06

R=mtklein@google.com, djsollen@google.com, rmistry@google.com, robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/340783013
kStream.cpp
kStreamPriv.h
89443aba5bfa2b040dc9fd24938b7d0b3decd737 27-Jun-2014 reed <reed@google.com> change gpudevice and pdfdevice to inherit from basedevice

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/354133002
kBitmapDevice.cpp
4f96ab36180489748f4e9bb249d773414ef0d6cb 27-Jun-2014 humper <humper@google.com> Refactor bitmap scaler to make it easier to migrate rest of chrome to use it

Previously, the set of platform-specific function pointers to do fast convolution (e.g., neon, SSE) were passed in a structure to the scaler.

I refactored this so that the scaler fills in these function pointers after it's called, so the caller doesn't have to worry about it.

R=mtklein@google.com
TBR=mtklein
NOTRY=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/354193002
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapScaler.cpp
kBitmapScaler.h
e5c1e3cd63e22bb06c24dd051f4d814f24786c08 27-Jun-2014 robertphillips <robertphillips@google.com> Fix RRect tranform bug

When a RRect is an oval transforming the rectangle and the radii separately can result in a non-oval result (i.e., due to numerical issues some tiny straight edges may creep in). This CL remedies the situation by computing the new radii directly from the transformed rect.

BUG=skia:2696
R=caryclark@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354913004
kRRect.cpp
a8377402ee626bd0a6c61ef9f0c256f06eca5759 27-Jun-2014 tomhudson <tomhudson@chromium.org> Mark SkBBoxHierarchyRecord destructor as virtual

Immediate parent classes have empty virtual destructors, but farther
up the inheritance tree there is complicated destruction going on.
This change may be unnecessary but makes the polymorphism explicit.

BUG=skia:1734
R=mtklein@google.com, tomhudson@google.com, mtklein

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/359773002
kBBoxHierarchyRecord.h
0766931dc44a0d5da67b732d4a69967abcc235c9 27-Jun-2014 reed <reed@google.com> delete code for SK_SUPPORT_LEGACY_GETTOTALCLIP

TBR=
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/354953008
kCanvas.cpp
b726df472bb996aaab9ea0e62568208599385a1c 25-Jun-2014 mtklein <mtklein@chromium.org> Add noinline for GCC 4.6, which seems to vectorize after inlining.

GCC 4.7 and 4.8 don't need this, but we're not building with them so it doesn't hurt.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/343423003
kConvolver.cpp
0cf27818e0259b08b155cae48a429ad681230348 25-Jun-2014 mtklein <mtklein@chromium.org> Narrow disabled vectorization further to just ConvolveHorizontally.

BUG=skia:2575
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/352883002
kConvolver.cpp
4809e4d796a97d407970e224f1519b41638ab897 25-Jun-2014 Mike Klein <mtklein@google.com> try release only
kConvolver.cpp
729c6f0f291ac8e4f73f4498ba730000ba438b48 25-Jun-2014 Mike Klein <mtklein@gmail.com> disable on nacl
kConvolver.cpp
2b8a3b8f26658e2933234e97d5d2c0b58935baf4 25-Jun-2014 mtklein <mtklein@chromium.org> Focus disabled optimizations on just BGRAConvolve2D, and only 32-bit.

Last CL accidentally disabled autovectorization on 64-bit builds too.
This fixes that.

BUG=skia:2575
R=rmistry@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/353823005
kConvolver.cpp
4ec84da746d66e1bcb76ab2f8b94602b8e966589 24-Jun-2014 robertphillips <robertphillips@google.com> Move allocation of texture from SkGpuDevice to GrLayerCache

In order to atlas the layers the GrLayerCache needs to be given more control over where a given layer's texture is allocated (i.e., it could be a raw scratch texture or in the cache).

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/350183006
kPicturePlayback.h
7373456679b809d4e7649a438f0fe5b59257e4e5 24-Jun-2014 mtklein <mtklein@chromium.org> Support serialization in SkRecord-backed SkPictures.

Update DM to test SkRecord through SkPictureRecorder API.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/345553003
kPicture.cpp
40684ba95f8b99e3e690efe2cc857251a5f4ad6b 24-Jun-2014 mtklein <mtklein@chromium.org> Prune some dead code from SkPicture.cpp.

There's no path that makes playback != fPlayback.get() anymore.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/352643002
kPicture.cpp
66a5d8bf13fe98baae268db0211e9c25e5ece7fa 24-Jun-2014 caryclark <caryclark@google.com> add path dump test

Add a unit test for SkPath::dump(). The unit test exposed a minor
bug (inconsistent CRs) and an unused parameter (title).

R=bsalomon@google.com
TBR=bsalomon
BUG=skia:1836

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/351833003
kClipStack.cpp
kPath.cpp
c11530ea73b2a2fcb431df0f5c1887d08ac9113c 24-Jun-2014 Mike Klein <mtklein@google.com> Tick off some TODOs:

- support fRecord in copy constructor
- support SkDrawPictureCallback

Moved SkDrawPictureCallback to its own header so
SkRecordDraw can include it without pulling in all of
SkPicture.

Adding an SkAutoSaveRestore to SkRecordDraw was the easiest
way to match the balance guarantees of the callback, and
probably not a bad idea in general. Updated its tests.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349973008
kPicture.cpp
kPicturePlayback.cpp
kRecordDraw.cpp
kRecordDraw.h
6fc763e3c2b1e539510cb18ece8b97e183099ab1 23-Jun-2014 Mike Klein <mtklein@google.com> No one uses SkPicture::swap.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349313004
kPicture.cpp
744fb7313f31069e9eceeca4c0ff33dbe2fe1737 23-Jun-2014 Mike Klein <mtklein@google.com> Enable basic drawing with SkRecord-based pictures.

I've tagged all the functions in SkPicture.cpp is // fRecord TODO or // fRecord
OK, depending on whether or not they're totally broken when used from an
SkRecord-based picture. Obviously next steps are to eliminate all the TODOs,
then clean up the notes.

I converted SkPicture over to smart pointers too. It's particularly helpful
that the smart pointers initialize to NULL by default.

For now I've got all the SkRecord-based code jammed in at the bottom of the file. I figure it'll help me keep things straight for a bit, then we can rearrange later.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/333823007
kPicture.cpp
kPictureRecorder.cpp
f22b6b5883943d7127cd3f77fed822fa65642f1a 23-Jun-2014 Mike Klein <mtklein@google.com> Use smart pointers to make SkPictureRecorder lifetimes less manual.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/344253005
kPictureRecorder.cpp
c4b84aef1adeb68bc853f35abb85b79fa1fcaac6 23-Jun-2014 rmistry <rmistry@google.com> Revert of Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/354433002/)

Reason for revert:
Rebaseline CL is ready to be submitted

Original issue's description:
> Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/335603003/)
>
> Reason for revert:
> Caused many shadertext GM failures
>
> Original issue's description:
> > Fix SkPaint::measureText for stroked hairline text
> >
> > SkPaint::measureText and text drawing used different criteria for
> > determining whether text should be drawn as paths or not.
> >
> > Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
> > positioning in the rendering. Mainly added in order to define what is the
> > expected text rendering when hairline stroke is used with various transform
> > options.
> >
> > The testcase also tries to note or highlight the fact that SkPaint::measureText
> > is not expected to produce intuitively matching results when compared to a
> > rendering, if the rendering is done so that the device ends up having a device
> > transform.
> >
> > This fixes the glyph_pos_h_s (hairline, stroked) test-case.
> >
> > Ignore shadertext2_pdf-poppler.png gm on
> > Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.
> >
> > Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793
>
> TBR=jvanverth@google.com,reed@google.com,kkinnunen@nvidia.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/abc9bb55ddfeb4b1a7acc335a34841fddcd22d27

R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com
TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/349153005
kPaint.cpp
abc9bb55ddfeb4b1a7acc335a34841fddcd22d27 23-Jun-2014 rmistry <rmistry@google.com> Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/335603003/)

Reason for revert:
Caused many shadertext GM failures

Original issue's description:
> Fix SkPaint::measureText for stroked hairline text
>
> SkPaint::measureText and text drawing used different criteria for
> determining whether text should be drawn as paths or not.
>
> Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
> positioning in the rendering. Mainly added in order to define what is the
> expected text rendering when hairline stroke is used with various transform
> options.
>
> The testcase also tries to note or highlight the fact that SkPaint::measureText
> is not expected to produce intuitively matching results when compared to a
> rendering, if the rendering is done so that the device ends up having a device
> transform.
>
> This fixes the glyph_pos_h_s (hairline, stroked) test-case.
>
> Ignore shadertext2_pdf-poppler.png gm on
> Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.
>
> Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793

R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com
TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/354433002
kPaint.cpp
196af738027c5e18c3eb792dbcaf90ef27821793 23-Jun-2014 kkinnunen <kkinnunen@nvidia.com> Fix SkPaint::measureText for stroked hairline text

SkPaint::measureText and text drawing used different criteria for
determining whether text should be drawn as paths or not.

Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
positioning in the rendering. Mainly added in order to define what is the
expected text rendering when hairline stroke is used with various transform
options.

The testcase also tries to note or highlight the fact that SkPaint::measureText
is not expected to produce intuitively matching results when compared to a
rendering, if the rendering is done so that the device ends up having a device
transform.

This fixes the glyph_pos_h_s (hairline, stroked) test-case.

Ignore shadertext2_pdf-poppler.png gm on
Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.

R=jvanverth@google.com, reed@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/335603003
kPaint.cpp
bccac6cbf128147587bfc2bc1bdeb46c08175bca 21-Jun-2014 senorblanco <senorblanco@chromium.org> Re-land "Fix external SkImageFilter caching with clips."

This reverts commit 9efd66b8451f25465abd1027e09a3bcfa7b9c554.

R=reed@google.com
TBR=reed@google.com
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/348903004
kImageFilter.cpp
b8f07988494a62fbe8fba70129b1bb9366e9f6ee 20-Jun-2014 reed <reed@google.com> speed up rgn building by inlining memcmp for 32bit values

on mac/clang, using circularclips gm/bench

- before: 400ms
- after: 250ms

BUG=skia:
R=tomhudson@chromium.org, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/348143002
kRegion_path.cpp
ae6a059c68b535e8d2bd814d8d43361e2f8626df 20-Jun-2014 george <george@mozilla.com> Undef FloatToFixed and FixedToFloat as well in SkConvolver to avoid confusion with OS X's maths library

BUG=skia:
R=reed@google.com

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/326623004
kConvolver.h
9efd66b8451f25465abd1027e09a3bcfa7b9c554 19-Jun-2014 senorblanco <senorblanco@chromium.org> Revert "Fix external SkImageFilter caching with clips."

This reverts commit ffa9b500d7e83e7dddf6a8902f47c4355b608c30.

R=reed@google.com
TBR=reed@google.com
NOTRY=True
NOTREECHECKS=True

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/340413004
kImageFilter.cpp
0f9bad01b0e7ad592ffb342dcf1d238b15329be1 19-Jun-2014 vandebo <vandebo@chromium.org> [PDF] Fix font embedding restrictions.

Stop using restricted font outlines and honor don't subset restriction.

Resubmit of r12600.

R=halcanary@google.com, bungeman@google.com, reed@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/334443002
kTypeface.cpp
9f0147143fbedba10bdae496d812a14995304924 19-Jun-2014 reed <reed@chromium.org> Revert of remove guarded code - there are no more callers (https://codereview.chromium.org/343783002/)

Reason for revert:
webkit still uses getTotalClip -- need to find where they define the guard.

../../skia/ext/skia_utils_mac.mm:400:42: error: no member named 'getTotalClip' in 'SkCanvas'
const SkRegion& clipRgn = canvas_->getTotalClip();
~~~~~~~ ^

Original issue's description:
> remove guarded code - there are no more callers
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c5d5cf9489977aa6fba077d1dc242029fbb4859e

R=scroggo@google.com, reed@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/342843002
kCanvas.cpp
kPaintPriv.cpp
ffa9b500d7e83e7dddf6a8902f47c4355b608c30 19-Jun-2014 senorblanco <senorblanco@chromium.org> Fix external SkImageFilter caching with clips.

When the external cache is active, do not intersect the saveLayer
bounds with the clip bounds. This is so that the cache is always the
full size of the primitive's bounds, regardless of the clip active on
first draw. (Drawing of the filtered or cached result is always drawn
against the active clip, though, since it is restored before
internalDrawDevice() is called.)

This is a slightly hacky solution, but this code can all go away
(including the external cache) once all platforms have switched to
impl-side painting.

See Chromium bug http://crbug.com/379147.

BUG=skia:
R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/340203002
kImageFilter.cpp
c5d5cf9489977aa6fba077d1dc242029fbb4859e 18-Jun-2014 reed <reed@google.com> remove guarded code - there are no more callers

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/343783002
kCanvas.cpp
kPaintPriv.cpp
12c2198535759ee9aae91ec385e8e31e5dbc12d7 18-Jun-2014 egdaniel <egdaniel@google.com> Remove dashing from gpu veto

With new veto our new veto test results look like the following:
TP: true positive (picked to use gpu and gpu was faster)
I: inderminate, the raster time is withing 5% of gpu time

TP FP TN FN I

old 21 9 15 12 3
new 29 12 11 6 3

There are three skps that tend to move from TN -> FP, however
the absolute difference in their run times are not huge between
them. The largest being desk_booking which is about 7.1 raster
and 8.8 gpu. The other two skps are desk_yahooanswers and
desk_linkedin

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/334053005
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
887f3979f0c717e69a8b7d169169bc27eb46d3b5 17-Jun-2014 mtklein <mtklein@chromium.org> Add EXPERIMENTAL_beginRecording() for SkRecord-based recording.

The interesting stuff is in SkPictureRecorder.{h,cpp}. The rest is mostly moving SkRecord from its own directories into core to avoid circular dependencies in GYP.

After plumbing SkRecord all the way through in Picture, I'll delete its old entry point include/record/SkRecording.h. For now it and record.gypi need to stay where they are to keep Chrome building.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/331573004
kPictureRecorder.cpp
kRecord.h
kRecordDraw.cpp
kRecordDraw.h
kRecordOpts.cpp
kRecordOpts.h
kRecordPattern.h
kRecorder.cpp
kRecorder.h
kRecording.cpp
kRecords.h
859b92448b27bb16852474f9a612748b3fd816d5 17-Jun-2014 reed <reed@google.com> move some headers out of public

patch from issue 338263003

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/339183002
kFlate.h
kGeometry.h
kLineClipper.h
kVertState.h
c3b3266b7db2f1a41d41ecac010c766b7ad8eebc 17-Jun-2014 reed <reed@google.com> hide SkBitmap::Config entirely (behind a flag)

patch from issue 339463002

TBR=

I think the NoGPU failure is unrelated, so ignoring
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/340533002
kBitmap.cpp
a272d6d0653620cb6b683a70d3e6993d380147d9 17-Jun-2014 mtklein <mtklein@chromium.org> Move SkStringUtils.h to src/core.

Doesn't need to be in include/.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/335413004
kStringUtils.h
0eb02a6abbe2964e4955863b0f82aff6a8661801 16-Jun-2014 piotaixr <piotaixr@chromium.org> Cleaned a repeated if(condition) with the same condition

R=junov@chromium.org

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/338933002
kBitmap.cpp
f252f64f17efddf7235682a96d155d7c86c898e3 14-Jun-2014 reed <reed@chromium.org> hide virtuals on device for width/height/isopaque

R=bsalomon@google.com
NOTREECHECKS=True

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/334993002
kDevice.cpp
cb9a2c8934f009b6ee1ca73d662ac18b285085d9 13-Jun-2014 kkinnunen <kkinnunen@nvidia.com> Extract "text align proc" functions as reusable classes

Extract "text align proc" as reusable classes. These classes need to be used
when writing GrTextContext subclasses.

Moves "text align proc" code that is duplicated in SkDraw and
SkBitmapTextContext to SkDrawProcs.h and SkTextMapState.h. This functionality is
also used in the new GrStencilAndCoverTextContext.

Creates new functor classes SkTextAlignProc and SkTextAlignProcScalar which
represent the previous "text align procs".

Moves TextMapState from SkDraw to SkTextMapStateProc and make it similar functor.

The transform should be comparable in speed, as the compiler can and does avoid
the call and eliminate some of the branches.

R=jvanverth@google.com, reed@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/335573002
kDraw.cpp
kDrawProcs.h
kTextMapStateProc.h
e61c411c1258a323a010558c08de3d9f8d170dca 12-Jun-2014 egdaniel <egdaniel@google.com> Use vertex attributes for dash effect in gpu

This will allow us to batch dashed lines together when drawing. Also, this removes the need for
a coord transform matrix in the shader, thus we save the cost of uploading a new matrix uniform
everytime we do a simple transform to the dashed line we are drawing.

BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/326103002
kStrokeRec.cpp
e26e65e8f831f7a5626c92d11bbb8c2cec1f70de 12-Jun-2014 robertphillips <robertphillips@google.com> Remove SkPicture pointer from SkPicturePlayback

This CL simplifies the relationship between SkPicture and SkPicturePlayback by moving the path heap into SkPicturePlayback and removing SkPicturePlayback's SkPicture pointer.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/334493002
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.h
6059f16fd98421ef1add03f708f3fd2c21cfc4f5 11-Jun-2014 mtklein <mtklein@chromium.org> SkNEW as default Create() for SkLazyPtr macros.

BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/326413003
kLazyPtr.h
0bdbea75ff1a6f3c313c18cab0139728967cb93e 11-Jun-2014 robertphillips <robertphillips@google.com> Remove picture pre-allocation from SkPictureRecorder

This CL improves the separation of the SkPicture and SkPictureRecord classes. It delays creation of the SkPicture (in SkPictureRecorder) until recording is actually completed. To accomplish this the SkRecord-derived classes now get SkPathHeap and SkPictureContentInfo members that are absorbed by the SkPicture when it is constructed.

As an ancillary change, this CL also moves the SkPictureContentInfo object from SkPicture to SkPicturePlayback. This is intended to centralize all the data in the SkPicturePlayback object.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/324293004
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kPictureRecorder.cpp
35fcd15d0598bca6a265100ace5d10a0d992cf9c 11-Jun-2014 sugoi <sugoi@chromium.org> Support for larger than "signed 32b limit" sized bitmaps in BGRAConvolve2D.

The multiplication of 2 signed ints was producing a result larger than what's supported by a single signed int and the memory was accessed out of bounds. Using uint64_t solves the issue.

BUG=378491
R=reed@google.com, rmistry@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/323013005
kConvolver.cpp
e4538f5b46d70798e34eb078f5d5e76a59d02318 11-Jun-2014 reed <reed@chromium.org> switch to colortype for deepcopy

BUG=skia:
R=robertphillips@google.com, bsalomon@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/323283002
kBitmap.cpp
9de5b514d38c5b36066bcdc14fba2f7e5196d372 10-Jun-2014 dandov <dandov@google.com> SkShader::asNewEffect Refactoring

The new signature is:

bool asNewEffect(GrContext* context, const SkPaint& paint, GrColor* grColor, GrEffectRef** grEffect, const SkMatrix* localMatrixOrNull) const;

It will fix the hack for skcolorshader by modifying the GrColor parameter in SkGr::SkPaint2GrPaintShader.

BUG=skia:2646
R=jvanverth@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/318923005
kBitmapProcShader.cpp
kBitmapProcShader.h
kLocalMatrixShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
9058d602d0303c4d601bea260929367a8be37f04 10-Jun-2014 robertphillips <robertphillips@google.com> Fix error revealed by Android unit test

The issue is/was that the original Picture/PictureRecorder that is being partially replayed is not guaranteed to issue any more commands before attempting to modify the existing data. Such modification is prohibited if there is a extant copy-on-write snapshot. Rather then further complicate the SkWriter32::snapshot capability for a dis-preferred use case, this CL simply copies the operation data.

R=scroggo@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316063005
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecorder.cpp
77ec7a6f44ccfdacc9c3422516f09720ca17f9e2 10-Jun-2014 mtklein <mtklein@chromium.org> Clean up SkScaledImageCache at exit only in SK_DEVELOPER mode.

This is triggering ASAN failures in Chrome unit tests.

c.f. https://codereview.chromium.org/308003014

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/326913007
kScaledImageCache.cpp
6de27127c4d50ef90b5435aefaeef47fa84b819d 10-Jun-2014 robertphillips <robertphillips@google.com> Remove unused 'deepCopy' parameter

This is split out of https://codereview.chromium.org/316063005/ for clarity. Keeping in mind that SkPicture::FakeEndRecording is now only called from SkPictureRecorder, its deepCopy parameter is no longer necessary. This is b.c., given the new Picture recording semantics (where SkPictures can no longer be actively recording), cloning for thread safety only happens when an SkPicturePlayback has already been allocated (i.e., it happens in the SkPicturePlayback copy constructor.

R=scroggo@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/324093003
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecorder.cpp
f74f55aeb0ebca87d03a10b1ad0597e75039fba5 10-Jun-2014 fmalita <fmalita@chromium.org> Remove SK_IGNORE_CORRECT_HIGH_QUALITY_IMAGE_SCALE

Blink has been rebased.

R=humper@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/323093002
kBitmapProcState.cpp
2d2a68c51b4a71bd60760510bf2b2e58bc9890b2 10-Jun-2014 jvanverth <jvanverth@google.com> Gamma correction for distance field text.

Handles both non-LCD and LCD text. Uses a texture to look up the gamma correction values for a given text color or luminance.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4d517fdbb145cb95e5e935470df331e1b6667cfc

R=reed@google.com, bungeman@google.com, robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/258883002
kGlyphCache.h
kMaskGamma.h
kPaint.cpp
kScalerContext.h
6c22573edb234ad14df947278cfed010669a39a7 10-Jun-2014 reed <reed@chromium.org> hide SkBitmap::setConfig

patch from issue 325733002

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/322963002
kBitmap.cpp
b83f6c3cbdabc14d8290b00d9f38ba59bf6719a1 09-Jun-2014 mtklein <mtklein@chromium.org> Add assertHeld() to SkMutex.

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/313823004
kPaint.cpp
kPixelRef.cpp
kScaledImageCache.cpp
919ed4c73633e92bfc6694161360c5c3f45728e8 09-Jun-2014 scroggo <scroggo@google.com> Revert of Gamma correction for distance field text. (https://codereview.chromium.org/258883002/)

Reason for revert:
Memory leaks. I suspect this is due to the lack of destructors in SkAutoGlyphCache

Original issue's description:
> Gamma correction for distance field text.
>
> Handles both non-LCD and LCD text. Uses a texture to look up the gamma correction values for a given text color or luminance.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4d517fdbb145cb95e5e935470df331e1b6667cfc

NOTRY=true
NOTREECHECKS=true
R=reed@google.com, bungeman@google.com, robertphillips@google.com, bsalomon@google.com, jvanverth@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/323513005
kGlyphCache.h
kMaskGamma.h
kPaint.cpp
kScalerContext.h
4d517fdbb145cb95e5e935470df331e1b6667cfc 09-Jun-2014 jvanverth <jvanverth@google.com> Gamma correction for distance field text.

Handles both non-LCD and LCD text. Uses a texture to look up the gamma correction values for a given text color or luminance.

BUG=skia:
R=reed@google.com, bungeman@google.com, robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/258883002
kGlyphCache.h
kMaskGamma.h
kPaint.cpp
kScalerContext.h
b6b02526438d6839481fb40ccf610d28f7652397 09-Jun-2014 bsalomon <bsalomon@google.com> Add dump() to SkClipStack to help with debugging.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/311263015
kClipStack.cpp
kPath.cpp
kRRect.cpp
9f1c241e0d8a756fca1ec2dacb565eec83166d5f 09-Jun-2014 robertphillips <robertphillips@google.com> Remove SkPicture::kUsePathBoundsForClip_RecordingFlag

The real question is whether we ever want to record a picture without using the path bounds for a conservative (but faster) clip answer?

R=reed@google.com, mtklein@google.com, djsollen@google.com, scroggo@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316143003
kPictureRecord.cpp
e2f2b984443e870319e107374f7d786f243a20ae 08-Jun-2014 robertphillips <robertphillips@google.com> No longer limit SkPictureRecorder::partialReplay to Android

Toggling this for local testing is a bit of a chore.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316173004
kPictureRecorder.cpp
643b8bd6617e333f7a970a57ad9166f3d6675d1a 08-Jun-2014 robertphillips <robertphillips@google.com> First pass at splitting out SkPictureRecord from SkPicture

This patch begins the process of splitting apart SkPicture, SkPicturePlayback and SkPictureRecord.

This is still a bit messy. In a follow up CL I hope to delay the creation of SkPictureRecorder's SkPicture until endRecording time.

R=reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/318763004
kPicture.cpp
kPictureRecorder.cpp
b77c7ef37f20b910a925c24a3c3139a36c7af673 08-Jun-2014 Mike Klein <mtklein@gmail.com> Clean up Skia for Clang's -Wtautological-undefined-compare

This is blocking Chrome from rolling a new Clang, and me too for our TSAN bots.

BUG=chromium:381910

Review URL: https://codereview.chromium.org/325603002
kPaint.cpp
kRegion.cpp
0951fe12984944406e0f1bb105b9fa4c54fcdcdd 06-Jun-2014 sugoi <sugoi@chromium.org> Fixing another clusterfuzz issue

This was introduced by removing SkValidatingReadBuffer::readBitmap in https://codereview.chromium.org/295793002/

Since SkReadBuffer::skip wasn't virtual, it was using the unsafe SkReadBuffer::skip within SkReadBuffer::readBitmap rather than using SkValidatingReadBuffer::skip. I also removed direct uses of fReader within SkReadBuffer::readBitmap so that it can use the virtual readInt / readFixed functions that have a version in SkValidatingReadBuffer.

Also, I changed SkReadBuffer::readPoint so that it uses the virtual readScalar, that way, it becomes redundant with SkValidatingReadBuffer::readPoint, which can then be removed.

BUG=380723
R=reed@google.com, mtklein@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/317003003
kReadBuffer.cpp
kValidatingReadBuffer.h
c3b589a24eb4d567a906189f882c259ecf5c2f58 05-Jun-2014 fmalita <fmalita@chromium.org> SkClipStack::Element tweaks.

(
This is intended to facilitate efficient kMatrix_SaveFlags emulation
on restore():

* collect all clip stack elements for the current save count into a
side clip stack
* canvas.restore(everything)
* replay the collected clip ops to restore the initial clip state
=> we restored the matrix but the clip state is unchanged
)

Two main changes:

* expose the save count for SkClipStack::Element
* expose a replay method for the same (logic relocated from
SkCanvas::replayClips)

The SkCanvas::ClipVisitor shuffling is to enable forward decl
in SkClipStack.h (cannot fwdecl a nested class).

R=reed@google.com, robertphillips@google.com
TBR=reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/269693003
kCanvas.cpp
kClipStack.cpp
0187dc2155830c1ae3390d97463d5dd3971eca41 05-Jun-2014 scroggo <scroggo@google.com> Fixes for SkAlphaTypes.

When using allocPixels to set the info and create a new pixelRef in one
shot, create the pixelRef with the corrected info of the bitmap (i.e.
alphatype).

Simplify the check to determine whether to copy the genID in SkBitmap::
copyTo's same configs/same sizes case. The old logic (only checking the
height and assuming the others must be the same) relied on a deep
(mis?)understanding of the rest of the function, and I cannot convince
myself that it has to be true, given that readPixels may have switched
src to a different SkBitmap. Instead, just compare the SkImageInfos,
which is much clearer. (This also caught a bug where a 565 bitmap had
the wrong alphatype, leading to the allocPixels fixes.)

If readPixels succeeds but the source is unpremultiplied, fail out
of copyTo, since readPixels assumes premultiplied.

When copying from 8888 to 4444 or in the fallback case of drawing,
return false if the alphatype is unpremul, which would have failed
anyway.

BUG=skia:2012
R=reed@google.com, bsalomon@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/317053003
kBitmap.cpp
ddd014e65264e3f18b2d4305dd2fbc81549f5180 05-Jun-2014 reed <reed@google.com> remove SkBitmap::allocConfigPixels and update dox

I see no callers in android

R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/310283004
kBitmap.cpp
ca76c55d60dfe041e30e210d41fa0feb7fb54a1f 04-Jun-2014 scroggo <scroggo@google.com> Use Identity matrix for SkTransparentShader.

The SkTransparentShader is just a placeholder that should not
actually be used, so its CTM is not meaningful. However, it needs
to be invertible in order to not assert in SkShader::Context's
constructor. So use SkMatrix::I().

This fixes a CTS test on Android.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/315743003
kBlitter.cpp
9b14f26d0f3a974f3dd626c8354e1db1cfcd322f 04-Jun-2014 robertphillips <robertphillips@google.com> Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)

R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613004
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kPictureShader.cpp
3a2682a77f996f649de7699c9f7bee046c6d4f17 03-Jun-2014 mtklein <mtklein@chromium.org> SK_CPU_ARM --> SK_CPU_ARM32

That's what it means. It keeps confusing us as named today.

BUG=skia:
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/314643004
kUtilsArm.h
868074b50b0fc3e460d2aa97c1096827fe0a1935 03-Jun-2014 reed <reed@google.com> remove SkBounder -- unused and unloved

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/312553006
kCanvas.cpp
kDraw.cpp
kDrawProcs.h
kMaskFilter.cpp
dcf9ab14a194be0cbea896e1dc44a2a04106a38b 03-Jun-2014 robertphillips <robertphillips@google.com> Remove legacy picture recording

This is unblocked now that Android no longer uses the old interface.

This is just the first step in cleaning this up. Future CLs will constify SkPicture access in SkCanvas and split up the SkPicture/SkPicturePlayback/SkPictureRecord trio.

R=bsalomon@google.com, reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613002
kPicture.cpp
kQuadTreePicture.cpp
kQuadTreePicture.h
kRTreePicture.cpp
kTileGridPicture.cpp
173a5c544be92a09cd8f7eae0e1d50da114e2bc0 02-Jun-2014 humper <humper@google.com> invert comparison sense for reason return

BUG=skia:
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/313433003
kPicture.cpp
ada3635c8e83739f45cd52459d3e052783d1a40e 02-Jun-2014 mtklein <mtklein@chromium.org> Compile-time initialize special SkMatrices.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/303263011
kMatrix.cpp
78358bf624c7e7c09ffccf638c50870808d884d6 02-Jun-2014 mtklein <mtklein@chromium.org> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=15006

Committed: http://code.google.com/p/skia/source/detail?r=15014

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005
kFontHost.cpp
kGlyphCache.cpp
kLazyPtr.h
kMatrix.cpp
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
0d03db7446126be6ccce744be9b37ef475142e16 02-Jun-2014 mtklein <mtklein@chromium.org> Clean up SkLazyPtrs only in SK_DEVELOPER mode.

Checking only SK_DEBUG may make SkLazyPtr too anal about leaks for
clients. Still working through strange leak problems inside Skia
tests, so it's probably premature to turn it on in Chrome tests.

BUG=379570
R=reed@google.com, mtklein@google.com, bungeman@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/308003014
kLazyPtr.h
f71e8fd0c5d2da9795d00a5b81b716ae585be14a 31-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Port most uses of SkOnce to SkLazyPtr. (https://codereview.chromium.org/304383005/)

Reason for revert:
linux x86-64 release segfault in src/ports/SkFontHost_fontconfig.cpp:107

http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX660-x86_64-Release/builds/905/steps/RunTests/logs/stdio

Original issue's description:
> Port most uses of SkOnce to SkLazyPtr.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=15006
>
> Committed: http://code.google.com/p/skia/source/detail?r=15014

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/306063004

git-svn-id: http://skia.googlecode.com/svn/trunk@15015 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kGlyphCache.cpp
kLazyPtr.h
kMatrix.cpp
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
56f7cca144c539ec01f00d6382fded362ff193a3 31-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=15006

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005

git-svn-id: http://skia.googlecode.com/svn/trunk@15014 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kGlyphCache.cpp
kLazyPtr.h
kMatrix.cpp
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
a1ff26a64a0cfc337a321e6e923684bfdcadc2ec 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a way for the gpu veto to report back the reason why it said no

BUG=2334
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/301423002

git-svn-id: http://skia.googlecode.com/svn/trunk@15012 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
f6351a071810b3a848a5002a0c0ba7e1490fd0db 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Port most uses of SkOnce to SkLazyPtr. (https://codereview.chromium.org/304383005/)

Reason for revert:
Leaking refs on SkTypeface on Macs.

Original issue's description:
> Port most uses of SkOnce to SkLazyPtr.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=15006

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/304283007

git-svn-id: http://skia.googlecode.com/svn/trunk@15009 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kGlyphCache.cpp
kLazyPtr.h
kMatrix.cpp
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
5a70945ddd036b8079987954123ff8f382c285af 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005

git-svn-id: http://skia.googlecode.com/svn/trunk@15006 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kGlyphCache.cpp
kLazyPtr.h
kMatrix.cpp
kMessageBus.h
kPathRef.cpp
kTypeface.cpp
2a5cd60bfff32c92cf44a8cfc3e8c017b9aee456 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add an OR operator overload for SaveFlags to avoid extra static casts.

R=reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/303373003

git-svn-id: http://skia.googlecode.com/svn/trunk@15005 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kMatrixClipStateMgr.cpp
a3264e53ee3f3c5d6a2c813df7e44b5b96d207f2 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of setConfig -> setInfo (https://codereview.chromium.org/308683005/)"

This reverts commit eecaea4148805834f223681f70b6488ceba12d09.

R=robertphillips@google.com, scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/301283003

git-svn-id: http://skia.googlecode.com/svn/trunk@14989 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapScaler.cpp
kCanvas.cpp
kDraw.cpp
kImageFilter.cpp
kMipMap.cpp
kReadBuffer.cpp
kScalerContext.cpp
kValidationUtils.h
559a8833f0eae4af37dc0ffc3ee97e1fb14817b1 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix the rendering error of SkDraw::drawVertices in gpu path for solid color.

If both textures and vertex-colors are NULL, drawVertices should stroke hairlines with the paint's color.
This behavior is a useful debugging mode to visualize the mesh.

BUG=skia:2266
R=bsalomon@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/189963004

git-svn-id: http://skia.googlecode.com/svn/trunk@14985 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kVertState.cpp
05858435ee8744de863be7e5ade05e4fd6edfb46 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing a clusterfuzz found issue

BUG=378175
R=reed@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/306033003

git-svn-id: http://skia.googlecode.com/svn/trunk@14983 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d0f824cfbd8951bb948b19d7ff5dce028ce557a5 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of setConfig -> setInfo (https://codereview.chromium.org/308683005/)

Reason for revert:
broke all Windows bots

Original issue's description:
> setConfig -> setInfo
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14978

R=robertphillips@google.com, reed@google.com
TBR=reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: epoger@google.com

Review URL: https://codereview.chromium.org/302053002

git-svn-id: http://skia.googlecode.com/svn/trunk@14979 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapScaler.cpp
kCanvas.cpp
kImageFilter.cpp
kReadBuffer.cpp
kScalerContext.cpp
kValidationUtils.h
986d681f3e7a7eb6febd9df9fe21a8d277ba2296 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> setConfig -> setInfo

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/308683005

git-svn-id: http://skia.googlecode.com/svn/trunk@14978 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapScaler.cpp
kCanvas.cpp
kImageFilter.cpp
kReadBuffer.cpp
kScalerContext.cpp
kValidationUtils.h
97de357270e54be53acb17e1cb4b4d5e25bacc01 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkLazyPtr, mk. 2

SK_DECLARE_STATIC_LAZY_PTR and
SK_DECLARE_STATIC_LAZY_PTR_ARRAY let you declare a single or
array of static pointers that are lazily initialized.

You can think of this as a restricted, lighter-weight
version of SkOnce. There's no guarantee that Create will be
called exactly once, but we do guarantee all threads will
agree on the resulting pointer.

We'll clean up any other extra pointers we Create()ed by
calling Destroy(), which defaults to SkDELETE. In debug
mode, we also clean up the winning pointer at process exit,
so we can make sure we didn't leak it or free it early.

I've ported SkData (singleton) and SkXfermode (array) as
examples. Once this lands I'll port most other users of
SkOnce.

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/306943003

git-svn-id: http://skia.googlecode.com/svn/trunk@14976 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kGraphics.cpp
kLazyPtr.h
kThreadPriv.h
kXfermode.cpp
5744bbee6fa65f9d532587b6539fa0f104dda98b 29-May-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkImageGenerator.cpp from src/images to src/core

git-svn-id: http://skia.googlecode.com/svn/trunk@14973 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageGenerator.cpp
d3c6b3f1c89ad1336830957a1e9b235dd86910f2 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Tinker with SkLazyFnPtr a bit.

I moved the choice function from a get() arg to a template parameter.

I think this removes some of the overemphasis on "choose" from the call
site, making it a bit more clear it's normally very cheap.

It's also now more in line with what I'm thinking now for the general
SkLazyPtr<T>, which needs a "create" parameter just like SkLazyFnPtr's
"choose", but also a "destroy" that it might use both in .get() but also
at process exit. That "destroy" needs to be made part of the type to be
called at exit, so might as well make "create" and "choose" template
parameters too so it's all consistent.

Also, add (C).

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/298393005

git-svn-id: http://skia.googlecode.com/svn/trunk@14971 2bbb7eff-a529-9590-31e7-b0007b416f81
kLazyFnPtr.h
kUtils.cpp
cba73780bbd12fd254229517aec04fcbf0b64b52 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> replace config() with colorType()

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/303543009

git-svn-id: http://skia.googlecode.com/svn/trunk@14959 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapProcState.cpp
kBitmapProcState_procs.h
kBlitMask.h
kBlitMask_D32.cpp
kBlitRow_D16.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kSpriteBlitter_RGB16.cpp
00f8d6c75d22ce8f95f932c5b101354b196fa0df 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of add colortable support to imagegenerator (https://codereview.chromium.org/304443003/)"

Fix is to add colortable param to installPixels()

This reverts commit 924205aaf2e0c3c65dda13e0eaccde3e7b2a5c40.

BUG=skia:
R=scroggo@google.com, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/300263005

git-svn-id: http://skia.googlecode.com/svn/trunk@14958 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kCanvas.cpp
2246e325b8710389d8f718843356e410f683dd25 29-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPictureRecorder::partialReplay const

This will make it easier to integrate this into Android's use case.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/307693003

git-svn-id: http://skia.googlecode.com/svn/trunk@14957 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecorder.cpp
81496fb21637cc8d2a2b45a790e0f9d6d6f769c4 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Spin off just SkLazyFnPtr from 305513002.

The memory barrier in SkOnce is a perf regression for sk_mem{set,cpy} in
SkUtils on ARM. We can do a lot better for function pointers.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=14929

R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/305753002

git-svn-id: http://skia.googlecode.com/svn/trunk@14938 2bbb7eff-a529-9590-31e7-b0007b416f81
kLazyFnPtr.h
kThreadPriv.h
kUtils.cpp
86b0de4745a8a8317b54f23878498633b9210a8f 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Remove SkThread.h from public API."

Too much depends on SkThread being in include/core in Chrome build.

This reverts commit b1aec17df6078115c797839c9646081ccba2bd09.

NOTREECHECKS=true
NOTRY=true
R=reed@google.com, mtklein@google.com
TBR=reed

BUG=skia:

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/303813003

git-svn-id: http://skia.googlecode.com/svn/trunk@14934 2bbb7eff-a529-9590-31e7-b0007b416f81
kThread.h
05d1cc23ec8c7c4befa039330c48901f9ff1251c 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Spin off just SkLazyFnPtr from 305513002. (https://codereview.chromium.org/305753002/)

Reason for revert:
depends on bad cl

Original issue's description:
> Spin off just SkLazyFnPtr from 305513002.
>
> The memory barrier in SkOnce is a perf regression for sk_mem{set,cpy} in
> SkUtils on ARM. We can do a lot better for function pointers.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14929

R=bungeman@google.com, mtklein@chromium.org
TBR=bungeman@google.com, mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/300843012

git-svn-id: http://skia.googlecode.com/svn/trunk@14933 2bbb7eff-a529-9590-31e7-b0007b416f81
kLazyFnPtr.h
kThread.h
kUtils.cpp
3fdc7d6dd13b510de09cf29ffd3fe36adf89d541 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Spin off just SkLazyFnPtr from 305513002.

The memory barrier in SkOnce is a perf regression for sk_mem{set,cpy} in
SkUtils on ARM. We can do a lot better for function pointers.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/305753002

git-svn-id: http://skia.googlecode.com/svn/trunk@14929 2bbb7eff-a529-9590-31e7-b0007b416f81
kLazyFnPtr.h
kThread.h
kUtils.cpp
b1aec17df6078115c797839c9646081ccba2bd09 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkThread.h from public API.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/303463009

git-svn-id: http://skia.googlecode.com/svn/trunk@14926 2bbb7eff-a529-9590-31e7-b0007b416f81
kThread.h
f449156bd00815eae1f1daea436f08068ef0f01c 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make image scaling have floating point scales. Third attempt to land this
due to some struggles with the CQ. Original CL here:

https://codereview.chromium.org/298243003/

BUG=
R=bsalomon@google.com, epoger@google.com
TBR=bsalomon, epoger

Author: humper@google.com

Review URL: https://codereview.chromium.org/300113008

git-svn-id: http://skia.googlecode.com/svn/trunk@14920 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapScaler.cpp
kBitmapScaler.h
5889e309961b865fbb2c4ed7f704c315c005a63c 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Include SkTypes to fix Android frameworks build

Since Android's defines are included in SkUserConfig (rather than
being defined in the build file), we need to include something that
includes SkUserConfig (transitively; meaning just about anything)
before we can use any build macros. Include SkTypes, "the correct
way to get access to the config system" so that
SK_BUILD_FOR_ANDROID is defined before querying it.

R=robertphillips@google.com, djsollen@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/294393011

git-svn-id: http://skia.googlecode.com/svn/trunk@14914 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecorder.cpp
6d3eaeabddd03b1bf440345f1f3f9aa5b6dd0717 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add replay entry point to SkPictureRecorder for Android

This CL adds an Android-only entry point to address the Java Picture(Picture) and serialize use cases. Note that (in its current form) it doesn't preserve the old API's handling of unbalanced saves/saveLayers (this CL always balances them).

R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/252873005

git-svn-id: http://skia.googlecode.com/svn/trunk@14911 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecorder.cpp
466f5f3e44e703ca58b43ac1c4ac3bfa0e1ff024 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkBitmap::asImageInfo

BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/305483005

git-svn-id: http://skia.googlecode.com/svn/trunk@14909 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilter.cpp
f3b1eb4ea262e48c93db8f0975e16341596cd8ec 27-May-2014 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Manual SVN revert of https://code.google.com/p/skia/source/detail?r=14905



git-svn-id: http://skia.googlecode.com/svn/trunk@14907 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapScaler.cpp
kBitmapScaler.h
44f41293ac94530d08fca2ce8484a7248e7a5e97 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> floating point scale factors for images

New version of https://codereview.chromium.org/298243003/ made to deal with binary file being lost.

BUG=
TBR=bsalomon
NOTRY=true

Author: humper@google.com

Review URL: https://codereview.chromium.org/307553005

git-svn-id: http://skia.googlecode.com/svn/trunk@14905 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapScaler.cpp
kBitmapScaler.h
60c8d24f84105dd341e36a7fc97e25f88ceef309 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove some unnecessary uses of SkOnce.

- gm/imagefiltersgraph.cpp can just use a global registrar
- SkScaledImageCache always accesses its global under a lock

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/297273006

git-svn-id: http://skia.googlecode.com/svn/trunk@14897 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
2d970b5128f7270cd01a93e4ce68d0c3ea67ac71 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> hide discardable factory from public imagegenerator api

BUG=skia:
R=halcanary@google.com, scroggo@google.com, djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/295243006

git-svn-id: http://skia.googlecode.com/svn/trunk@14889 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageGeneratorPriv.h
851155c28e18e3f5b702ef15ee7bfb12f3cbacda 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_BITMAPFLATTEN code

BUG=skia:
R=scroggo@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/303563002

git-svn-id: http://skia.googlecode.com/svn/trunk@14888 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kReadBuffer.cpp
b0c769abe1e1a0e4aa6a8008d7f3c113bc3e7cf7 27-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> sk_memcpy32 should fall back on libc memcpy.

Writing it out ourselves was a ~2x slowdown on ARM.

BUG=skia:
R=henrik.smiding@intel.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/292663013

git-svn-id: http://skia.googlecode.com/svn/trunk@14886 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
3c134a97ed128ca95345e13619512df0f42e95f8 24-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14884 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f21991b1046a0e8cb0ed263d06bc48f3c05c944b 23-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Modify sample buffer size for larger displays. (https://codereview.chromium.org/240433002/)

Reason for revert:
This also changes verylargebitmap, and the difference appears to be meaningful. Henrik, I have emailed you the images that differ.

Original issue's description:
> Modify sample buffer size for larger displays.
>
> Increases the intermediate buffer size for sample pixel indexes,
> used in the sample proc function calls. If the operation is bigger
> than the buffer it's split into multiple calls, creating overhead.
> This would especially impact the performance of SIMD optimizations.
> Also, aligns the start address of the buffer to 16 bytes, to enable
> more efficient SIMD optimizations.
>
> Author: henrik.smiding@intel.com
>
> Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
>
> Committed: http://code.google.com/p/skia/source/detail?r=14825
>
> Committed: http://code.google.com/p/skia/source/detail?r=14872

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, bsalomon@chromium.org, bsalomon@google.com, henrik.smiding@intel.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/294023016

git-svn-id: http://skia.googlecode.com/svn/trunk@14878 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
0533146d0056d4a65de12cc2b08e2e931efbd46e 23-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify sample buffer size for larger displays.

Increases the intermediate buffer size for sample pixel indexes,
used in the sample proc function calls. If the operation is bigger
than the buffer it's split into multiple calls, creating overhead.
This would especially impact the performance of SIMD optimizations.
Also, aligns the start address of the buffer to 16 bytes, to enable
more efficient SIMD optimizations.

Author: henrik.smiding@intel.com

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Committed: http://code.google.com/p/skia/source/detail?r=14825

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, scroggo@google.com, bsalomon@chromium.org, bsalomon@google.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/240433002

git-svn-id: http://skia.googlecode.com/svn/trunk@14872 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
968edcafa61442dc4f7f8ed8f89523d0f353e9fb 23-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> stop calling SkBitmap::flatten

BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/295793002

git-svn-id: http://skia.googlecode.com/svn/trunk@14867 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kWriteBuffer.cpp
4e82cdb90abb34a2ab60fcdb26e7bfc17e8e4da9 23-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix stroking large drawPosText

BUG=skia:
R=bungeman@google.com, yunchao.he@intel.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/288983004

git-svn-id: http://skia.googlecode.com/svn/trunk@14865 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
7693dbf46e9bf0159cc9032059738d418469a7ad 23-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14862 2bbb7eff-a529-9590-31e7-b0007b416f81
kValidatingReadBuffer.cpp
8be07bb12d1f7a2d08fa154320fbe6940b370ea1 22-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> In convexity checker don't advance last vector when x-product isn't significant.

BUG=skia:2235
R=caryclark@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/298973004

git-svn-id: http://skia.googlecode.com/svn/trunk@14845 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ab08437e39b3d1f52d45d04730c03391f22c20f7 22-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Temporarily disable NEON on Android framework builds."

R=scroggo@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/294183002

git-svn-id: http://skia.googlecode.com/svn/trunk@14844 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
83f23d87f1d67e6e73873e1ef7cda621c43703a0 22-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused (by clients) SkUnitMapper

This reverts commit 874423a81b5bc2541c7397e6ab00d5e7c9fdaf98.

TBR=scroggo

Author: reed@google.com

Review URL: https://codereview.chromium.org/288313009

git-svn-id: http://skia.googlecode.com/svn/trunk@14842 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
3339ac54a5ed75f2872ab16e9052a8b9ff3564bf 22-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/) (https://codereview.chromium.org/288343009/)

Reason for revert:
required blink change failed to land

Original issue's description:
> Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)
>
> This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14830

R=scroggo@google.com, reed@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/296823008

git-svn-id: http://skia.googlecode.com/svn/trunk@14838 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
4b8f8022550daa7458ed3de207d1300917d4a8cb 21-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)

This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/288343009

git-svn-id: http://skia.googlecode.com/svn/trunk@14830 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
b03be0b887facebc9f6a202c43a1347284655d75 21-May-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Modify sample buffer size for larger displays."

This reverts commit dd72f3bd0d500b9b3f900bcb8e904161ee51eae5.

git-svn-id: http://skia.googlecode.com/svn/trunk@14827 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
eeef0cc49bf71e8b5e044d6a73b79cfe2b2c87b3 21-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert ""Revert of eliminate config param -- it was always self's config (https://codereview.chromi… (https://codereview.chromium.org/291163005/)

Reason for revert:
broke 6 webgl/canvas tests in blink (don't know why yet)

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Mac10_7/27348/layout-test-results/results.html


Original issue's description:
> Revert ""Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)"""
>
> This reverts commit 3dbceb4f8283b2fb1728d0daf010d036099a2eae.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14806

R=bsalomon@google.com, robertphillips@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/295093003

git-svn-id: http://skia.googlecode.com/svn/trunk@14826 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
af159a580b29488c717c8ae7ee442dbe006a20ba 21-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify sample buffer size for larger displays.

Increases the intermediate buffer size for sample pixel indexes,
used in the sample proc function calls. If the operation is bigger
than the buffer it's split into multiple calls, creating overhead.
This would especially impact the performance of SIMD optimizations.
Also, aligns the start address of the buffer to 16 bytes, to enable
more efficient SIMD optimizations.

Author: henrik.smiding@intel.com

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, scroggo@google.com, bsalomon@chromium.org, bsalomon@google.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/240433002

git-svn-id: http://skia.googlecode.com/svn/trunk@14825 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
f0ea77a3630e6d1c01d83aa5430b3780da9e88b6 21-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 implementation of memcpy32

With SSE2 version memcpy32, S32_Opaque_BlitRow32() in SkBlitRow_D32.cpp
has about 30% performance improvement. Here are the data on desktop
i7-3770.
before:
bitmap_scale_filter_90_90 8888: cmsecs = 2.01
bitmaprect_FF_filter_trans 8888: cmsecs = 3.61
bitmaprect_FF_nofilter_trans 8888: cmsecs = 3.57
bitmaprect_FF_filter_identity 8888: cmsecs = 3.53
bitmaprect_FF_nofilter_identity 8888: cmsecs = 3.53
bitmap_4444_update 8888: cmsecs = 4.84
bitmap_4444_update_volatile 8888: cmsecs = 4.81
bitmap_4444 8888: cmsecs = 4.81
after:
bitmap_scale_filter_90_90 8888: cmsecs = 1.83
bitmaprect_FF_filter_trans 8888: cmsecs = 2.36
bitmaprect_FF_nofilter_trans 8888: cmsecs = 2.36
bitmaprect_FF_filter_identity 8888: cmsecs = 2.60
bitmaprect_FF_nofilter_identity 8888: cmsecs = 2.63
bitmap_4444_update 8888: cmsecs = 3.30
bitmap_4444_update_volatile 8888: cmsecs = 3.30
bitmap_4444 8888: cmsecs = 3.29

BUG=skia:
R=mtklein@google.com, reed@google.com, bsalomon@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/285313002

git-svn-id: http://skia.googlecode.com/svn/trunk@14822 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kUtils.cpp
9927bd355fc1557aa2c98900266ba6f49f806889 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Centralize decision about whether to do bicubic filtering, and fallbacks to mip, bilerp, or nearest

R=robertphillips@google.com, humper@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/282293004

git-svn-id: http://skia.googlecode.com/svn/trunk@14809 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
7ed173b1ebac84671fb0dc1b9bd323a5e6e63771 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> formalize named picture versions

BUG=skia:
R=mtklein@google.com, robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/291913004

git-svn-id: http://skia.googlecode.com/svn/trunk@14807 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPicturePlayback.cpp
kReadBuffer.cpp
kShader.cpp
731b28daaadbea13b071b0de0d95c06058b940fc 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert ""Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)"""

This reverts commit 3dbceb4f8283b2fb1728d0daf010d036099a2eae.

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/291163005

git-svn-id: http://skia.googlecode.com/svn/trunk@14806 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
311a3cda9457d50cc7c2a0fc9f153a9ce2c8cb8e 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add function to get both min and max scale factors from matrix

R=reed@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/298473002

git-svn-id: http://skia.googlecode.com/svn/trunk@14804 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
1878651990d7c9da72cf43481432232bbef3550d 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename SkMatrix::get(Max|Min)Stretch to get(Min|Max)Scale

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/295713002

git-svn-id: http://skia.googlecode.com/svn/trunk@14798 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kMatrix.cpp
555e74f6fbd9acad79411f72342759ba2ee51b16 20-May-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> "Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)""

This reverts commit 65b9f33cab9f53821720f982667412e56a340093.

git-svn-id: http://skia.googlecode.com/svn/trunk@14795 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
584f337832d585e23037e59517f7bcc420424692 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix utf32 text in subpixel mode

BUG=skia:2568
R=scroggo@google.com, anders@kilohearts.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/290893003

git-svn-id: http://skia.googlecode.com/svn/trunk@14789 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
a369e36e9d00dc83798703814cebd0b04e9525a4 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)"

TBR=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/290883005

git-svn-id: http://skia.googlecode.com/svn/trunk@14785 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
2a67e123a3e559774a16a58cbe5106bc0fb86740 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This adds a checkbox to the debugger to allow seeing the effect pathops has on the clip. A new tab shows the C code that the pathops generate.

Once in place, this CL found a bug in the pathops code where it was not handling empty clip stack elements correctly. The Cl also has the change to SkCanvas to fix this bug.

R=robertphillips@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/282283002

git-svn-id: http://skia.googlecode.com/svn/trunk@14774 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2ee3c2ce6499cb7ce15b59420dd4514ad01d0318 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add choke point for performing a fake endRecording

My goal here was to add a single location where we could patch up the created PicturePlayback. Unfortunately, the complexity of the recording process (e.g., the BBH) makes this quite complex.

I will investigate altering the behavior of SkPicturePlayback to account for a potentially unbalanced set of saves/saveLayers.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/283333007

git-svn-id: http://skia.googlecode.com/svn/trunk@14773 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
821650655be1519039ae9a4a4c2e5873c02ba354 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Ensure playing back a picture always balances saves and restores

This "fixes" the legacy interface's possible creation of pictures with unbalanced save/restores.

The Android dox will need to be updated once/if this lands.

R=reed@google.com, scroggo@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/286033005

git-svn-id: http://skia.googlecode.com/svn/trunk@14772 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
e2b193ca5c76f01f8e12b4a92e9bd6ccb3ed4280 16-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)

Reason for revert:
does not address all legacy callsites in chrome.

e.g.

[13:45:32.091872] ../../ui/native_theme/native_theme_base.cc:608:76: error: no matching function for call to ‘SkGradientShader::CreateLinear(SkPoint [3], SkColor [3], NULL, int, SkShader::TileMode, NULL)’
[13:45:32.091919] gradient_bounds, colors, NULL, 3, SkShader::kClamp_TileMode, NULL));


Original issue's description:
> remove unused (by clients) SkUnitMapper
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14761

R=robertphillips@google.com, scroggo@google.com, george@mozilla.com
TBR=george@mozilla.com, robertphillips@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/287063009

git-svn-id: http://skia.googlecode.com/svn/trunk@14763 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
ee0cac336c6a3a357ae3cb18be8ef4b3cb5edddb 16-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused (by clients) SkUnitMapper

BUG=skia:
R=robertphillips@google.com, scroggo@google.com, george@mozilla.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/283273002

git-svn-id: http://skia.googlecode.com/svn/trunk@14761 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
300790e228751661e1245c774b967b6cc50ffa1b 15-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> hack to expand 'pad' to account for very wide glyphs

BUG=crbug.com/373785
R=mtklein@google.com, robertphillips@google.com, bungeman@google.com, eae@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/288923006

git-svn-id: http://skia.googlecode.com/svn/trunk@14755 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
ee7e23d13f5400716715c1823ad6e41d9a5904ca 14-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Effects on the paint also prevent layer merge optimization.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/287953002

git-svn-id: http://skia.googlecode.com/svn/trunk@14743 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
9cb4283401f0acf117de523b4b676eca293d7143 14-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> update NeedsDeepCopy

BUG=skia:
R=mtklein@google.com, scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/289723002

git-svn-id: http://skia.googlecode.com/svn/trunk@14736 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaintPriv.cpp
fc6dfbab7565bb02db50f38f21b2c7d6c8f61c5c 14-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Inline noop willFoo/didFoo into SkCanvas.h.

We've got our canvas subclasses all calling back up to these via
INHERITED, all noops. That's fine but currently a little sad as they
can't be optimized away without link-time optimization, which we and
Chrome only do on Windows. We actually make a call for each of these
today on non-Windows.

So, move the empty implementations into the header so those chaining
calls really can be optimized away.

BUG=skia:
R=reed@google.com, fmalita@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/287593005

git-svn-id: http://skia.googlecode.com/svn/trunk@14722 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
795905562d1bd8bbedcf47f6a00efb220ec8bbe0 13-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add functions for inspecting SkShader.

Add a function to inspect an SkShader to determine if it is an
SkComposeShader.

Add a virtual function for determining if an SkShader is a custom
shader, which returns a custom set of information. The
implementation is in Android, and this function is only defined
if SK_BUILD_FOR_ANDROID_FRAMEWORK.

BUG=b/10650594
R=reed@google.com, scroggo@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/282733005

git-svn-id: http://skia.googlecode.com/svn/trunk@14716 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
e92c68f7d7398e8a510b7157a38747b23cb883ae 13-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14705 2bbb7eff-a529-9590-31e7-b0007b416f81
kLocalMatrixShader.h
5970f625e96cdc007c563ae72f343ae0d71719a1 12-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> re-land hide get/setLocalMatrix

This reverts commit b1d702a43b07934f5b001b1b09db2c57ede909a1.

TBR=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/279903002

git-svn-id: http://skia.googlecode.com/svn/trunk@14702 2bbb7eff-a529-9590-31e7-b0007b416f81
kLocalMatrixShader.cpp
kLocalMatrixShader.h
kPictureShader.cpp
kShader.cpp
261d0153e2ce1828355221f8dad0855eb6e6e243 12-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up global gSkSuppressFontCachePurgeSpew.

No one is using it except to flick it to true to shut up the spew,
but the spew is already guarded by #ifdef SPEW_PURGE_STATUS. Let's
leave it to SPEW_PURGE_STATUS.

Noticed this specificially when TSAN complained about FontScalerBench
modifying it in a thread-unsafe way.

BUG=skia:1792
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/264333008

git-svn-id: http://skia.googlecode.com/svn/trunk@14697 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
f31fa24914c683abcc2c860093b142725c43fbe6 12-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make gMask_00FF00FF a constant

This is to optimize SkAlphaMulQ() in PIC mode. With the visibility=default
symbol the constant is not known at compile time (and is not a constant), but
instead is fetched through a double indirection through GOT. The function is
quite hot on one of the chromium benchmarks:
rasterize_and_record_micro.key_silk_cases.

This change replaces the symbol with a compile-time constant. As a bonus the
variable is not exported from the dynamic library, i. e. a cleaner library
interface.

See specific performance improvements on Android here:
http://goo.gl/iMuTDt

R=skyostil@chromium.org, tomhudson@chromium.org, mtklein@google.com, reed@google.com, tomhudson@google.com

Author: pasko@chromium.org

Review URL: https://codereview.chromium.org/270473003

git-svn-id: http://skia.googlecode.com/svn/trunk@14696 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_filter.h
kBlitMask_D32.cpp
kBlitter.cpp
96fb7489ba46909c3f81bb2d94755e7d4ccb5fad 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add localmatrix parameter to shader's asNewEffect

BUG=skia:
R=bsalomon@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/278963002

git-svn-id: http://skia.googlecode.com/svn/trunk@14686 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kLocalMatrixShader.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
d12de02542867c7c1be32b6e02e2f5dca9fb9452 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of hide get/setLocalMatrix (https://codereview.chromium.org/279563002/)

Reason for revert:
broke gms

Original issue's description:
> hide get/setLocalMatrix
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14675

R=fmalita@google.com, dominikg@chromium.org, fmalita@chromium.org
TBR=dominikg@chromium.org, fmalita@chromium.org, fmalita@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/278903002

git-svn-id: http://skia.googlecode.com/svn/trunk@14677 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kShader.cpp
5adad325c5fcbba08f43dc35487df193fc4f9f1f 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> hide get/setLocalMatrix

BUG=skia:
R=fmalita@google.com, dominikg@chromium.org, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/279563002

git-svn-id: http://skia.googlecode.com/svn/trunk@14675 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kShader.cpp
4175388afa47b921aa3f273dcae6cffaccbf3ffb 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> QuadTree: don't leak deferred inserts past clear()

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/277713003

git-svn-id: http://skia.googlecode.com/svn/trunk@14670 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadTree.cpp
f97d65dc256111f1de6bbf3521c7cd3cf3e70f60 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix rendering artifacts in pull-saveLayers-forward mode

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
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
a69bda8d3c0901aaa4fa683dcd2adda5d6aa428b 08-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> return null if subshader fails

TBR=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/279573002

git-svn-id: http://skia.googlecode.com/svn/trunk@14656 2bbb7eff-a529-9590-31e7-b0007b416f81
kFilterShader.cpp
3d41c4add81e95784faa81f9a59b4a32b7cff082 08-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r14650 (Fix rendering artifacts in pull-saveLayers-forward mode - https://codereview.chromium.org/267293007) due to unit test failures




git-svn-id: http://skia.googlecode.com/svn/trunk@14654 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
7252f7ba4b729693db946d014c5af41413e2dd20 08-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix rendering artifacts in pull-saveLayers-forward mode

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.

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@14650 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
b2c82c99f891e4e846e4959c811661bf68fa43d6 08-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14636 2bbb7eff-a529-9590-31e7-b0007b416f81
kLocalMatrixShader.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
8fae213590981b8ca37839a4e3cae1dae4e611fd 08-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add localmatrix-shader

BUG=skia:
R=scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/272593002

git-svn-id: http://skia.googlecode.com/svn/trunk@14633 2bbb7eff-a529-9590-31e7-b0007b416f81
kLocalMatrixShader.cpp
kShader.cpp
beb1af2f34b5c538fc08d849b132355160b4c93f 07-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at pre-rendering saveLayers for GPU

https://codereview.chromium.org/261663003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14632 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
eaca36b65743af0503d4e72242b3abbbbb2d9414 07-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead mipmap code from SkBitmap

BUG=skia:
R=fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/271693002

git-svn-id: http://skia.googlecode.com/svn/trunk@14611 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a5b068cc058ee00533a781874a9799fd5d74b4dd 07-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14605 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaintPriv.cpp
68250c8e7c2bf5d669397c849259c3bcad40237e 07-May-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for empty saveLayer() with a filter which affects transparent black.

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
kBBoxHierarchyRecord.cpp
kPictureRecord.cpp
kPictureRecord.h
901c43c26f775eddd665ad03ce0e09fbd82514ed 06-May-2014 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporarily disable NEON on Android framework builds.

The GCC 4.8 compiler has an AARCH64 bug that generated non-PIC output
that fails to link.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/266883011

git-svn-id: http://skia.googlecode.com/svn/trunk@14597 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
80116dcf1e1baf9817ae42d0aca51f7eabaa2880 06-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add local-matrix to shader::context

BUG=skia:
R=scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/263293005

git-svn-id: http://skia.googlecode.com/svn/trunk@14592 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.h
kBlitter.cpp
kBlitter.h
kCoreBlitters.h
kDraw.cpp
kPictureShader.cpp
kPictureShader.h
kShader.cpp
f03f9ff295298ff58acdeb4d7142e9736121d362 06-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> don't leak the bitmapShader

BUG=skia:
R=fmalita@google.com, robertphillips@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/269163004

git-svn-id: http://skia.googlecode.com/svn/trunk@14588 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
0205aba7d5e8802d2a3ef55d999f5aa41db3adc9 06-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Infrastructure changes to support pull-saveLayers-forward task

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
kPaintPriv.cpp
kPaintPriv.h
kPicture.cpp
edda70e020630103270c815b7499e8b02271875d 06-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14584 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kComposeShader.cpp
kFilterShader.h
kPictureShader.h
06a32062620daee7a93742f553829a8d4f93f720 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix TriColorShader to respect the paint's alpha

results can be seen in new gm: vertices_80

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/270023002

git-svn-id: http://skia.googlecode.com/svn/trunk@14581 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
300c6060c855cf607accaed969238b928833623d 05-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r14571 (Infrastructure changes to support pull saveLayers forward 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
kPaintPriv.cpp
kPaintPriv.h
kPicture.cpp
ce56d965069c1649afe14319cb239e6ad670682a 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkShader virtual method validContext

patch from issue 267923005

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/261773005

git-svn-id: http://skia.googlecode.com/svn/trunk@14573 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
6b392b6111fad269437517494b14be484cd762f6 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Infrastructure changes to support pull-saveLayers-forward task

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
kPaintPriv.cpp
kPaintPriv.h
kPicture.cpp
1ab536f16164795782a75b11efcb17541cbc2e26 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix composeshader to respect the paint's alpha

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/265163008

git-svn-id: http://skia.googlecode.com/svn/trunk@14569 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
4e332f82fce0126045e9cb2ef0a2097a6c4c40a3 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add rounding-using-doubles methods on SkScalar and SkRect

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
kScan_Path.cpp
6803c219dd3be4a73e7bb5c4bb8a5b1f803624d0 04-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of fix the error that path is inversed for stroke and strokeAndFill styles (https://codereview.chromium.org/183683010/)

R=bsalomon@google.com, reed@google.com, yunchao.he@intel.com
TBR=reed@google.com
NOTRY=True

Reason for revert:
broke unittests

Original issue's description:
> fix the error that path is inversed for stroke and strokeAndFill styles.
>
> However, because hairline stroke + fill = fill (see src/core/SkStrokeRec.cpp), strokeAndFill will be thought as fill style when paint.getStrokeWidth() <= 0, this edge case can be inverse-filled.
>
> BUG=skia:2222
>
> Committed: http://code.google.com/p/skia/source/detail?r=14561

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/269903002

git-svn-id: http://skia.googlecode.com/svn/trunk@14562 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
kStroke.cpp
1f99d933e5dab98c5047c7fe19fd4d7180c2cad4 04-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix the error that path is inversed for stroke and strokeAndFill styles.

However, because hairline stroke + fill = fill (see src/core/SkStrokeRec.cpp), strokeAndFill will be thought as fill style when paint.getStrokeWidth() <= 0, this edge case can be inverse-filled.

BUG=skia:2222
R=bsalomon@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/183683010

git-svn-id: http://skia.googlecode.com/svn/trunk@14561 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
kStroke.cpp
40f6e3a25c0d35b9416346b72f1b6ba07778d173 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add release-mode checks for null, at least for a while

BUG=skia:
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/263883006

git-svn-id: http://skia.googlecode.com/svn/trunk@14552 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
5aacfe9ffcf1849727dca6761b4a221bd4315f26 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove setLocalMatrix calls from picture shader GM.

This makes all --skr tests pass for me. Enabling it by default in DM.

BUG=skia:2378

Committed: http://code.google.com/p/skia/source/detail?r=14549

R=reed@google.com, mtklein@google.com, fmalita@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/260863007

git-svn-id: http://skia.googlecode.com/svn/trunk@14551 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
c09abe66c1388c5da456c7686eab7a7928e9e9d6 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Remove setLocalMatrix calls from picture shader GM. (https://codereview.chromium.org/260863007/)

Reason for revert:
changed GM unexpectedly. will sort out and try again

Original issue's description:
> Remove setLocalMatrix calls from picture shader GM.
>
> This makes all --skr tests pass for me. Enabling it by default in DM.
>
> BUG=skia:2378
>
> Committed: http://code.google.com/p/skia/source/detail?r=14549

R=reed@google.com, fmalita@google.com, mtklein@chromium.org
TBR=fmalita@google.com, mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2378

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/265013003

git-svn-id: http://skia.googlecode.com/svn/trunk@14550 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
74b8cb15e4fb330e8d10856f6620e8b92b39a9ce 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove setLocalMatrix calls from picture shader GM.

This makes all --skr tests pass for me. Enabling it by default in DM.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, fmalita@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/260863007

git-svn-id: http://skia.googlecode.com/svn/trunk@14549 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
608d63735f6b36482198eaf17f8137ab2e9e0f0d 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Choose memset procs once.

TSAN shows us racing on the function pointers. Might as well fix it.

WARNING: ThreadSanitizer: data race (pid=19995)
Read of size 8 at 0x7f703affb048 by thread T12 (mutexes: write M2957):
#0 SkBitmap::internalErase(SkIRect const&, unsigned int, unsigned int, unsigned int, unsigned int) const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:886 (tests+0x0000003511ca)
#1 SkBitmap::eraseARGB(unsigned int, unsigned int, unsigned int, unsigned int) const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:919 (tests+0x0000003534bf)
#2 (anonymous namespace)::DecodingImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/images/SkDecodingImageGenerator.cpp:195 (tests+0x00000051bee1)
#3 SkDiscardablePixelRef::onNewLockPixels(SkPixelRef::LockRec*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/lazy/SkDiscardablePixelRef.cpp:63 (tests+0x00000039ad9c)
#4 SkPixelRef::lockPixels(SkPixelRef::LockRec*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkPixelRef.cpp:179 (tests+0x0000003fec23)
#5 SkBitmap::lockPixels() const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:414 (tests+0x00000034e41e)
#6 SkAutoLockPixels /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/include/core/SkBitmap.h:819 (tests+0x0000002752f3)
#7 ImageDecoderOptions(skiatest::Reporter*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/ImageDecodingTest.cpp:565 (tests+0x000000275d03)
#8 skiatest::Test::run() /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/Test.cpp:107 (tests+0x0000002263e7)
#9 SkTestRunnable::run() /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/skia_test.cpp:108 (tests+0x0000001d8607)
#10 SkThreadPoolPrivate::ThreadLocal<void>::run(SkTRunnable<void>*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/include/utils/SkThreadPool.h:108 (tests+0x0000001d817e)
#11 thread_start(void*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/utils/SkThreadUtils_pthread.cpp:66 (tests+0x000000604347)

Previous write of size 8 at 0x7f703affb048 by thread T26:
[failed to restore the stack]


BUG=skia:1792
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/250503003

git-svn-id: http://skia.googlecode.com/svn/trunk@14548 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
1111b611b66c383d585eb7aaea0b1defd8488699 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add literal picture recording mode, triggered by a compile time switch.

This is helpful to record SKPs from Chrome as a fair bootstrapping source for
SkRecord. Without this sort of switch, a good bit of SkPicture's cleverness is
baked into the SKP, and thus SkRecord looks unfairly good.

Tested by defining SK_RECORD_LITERAL_PICTURES and running dm --match
~optimizations. By design that GM will never pass in literal mode.

BUG=skia:2378
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/246393008

git-svn-id: http://skia.googlecode.com/svn/trunk@14547 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
f239d918d8b40a079693fe5b1f172ddf25abd8c1 02-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> guard against self-assignment

BUG=skia:
R=mtklein@google.com, bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/264793014

git-svn-id: http://skia.googlecode.com/svn/trunk@14545 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
9a40803f2bc0ed14c30bdd2213945b01d9c4c977 02-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14524 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
020636350b4a76fb3402a25c1e37ecff649cb350 01-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove dead code.

No files reference this file.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/255243002

git-svn-id: http://skia.googlecode.com/svn/trunk@14520 2bbb7eff-a529-9590-31e7-b0007b416f81
RGB32_Clamp_Bilinear_BitmapShader.h
e901b6de3ef8dea842008a08fc81e92fb1478d61 01-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> create struct to hold all the params passed around for shader::context

BUG=skia:
R=scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/264843006

git-svn-id: http://skia.googlecode.com/svn/trunk@14514 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
2e74f9d375d2c5d0a3eb4acc7cecd35afa6bf4ae 01-May-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove code behind SK_SUPPORT_LEGACY_PROCXFERMODE

BUG=skia:
R=scroggo@google.com

Review URL: https://codereview.chromium.org/264923004

git-svn-id: http://skia.googlecode.com/svn/trunk@14504 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
f3e505984d08fb96e753be2b561f479dc3a4c544 01-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add default impl for context methods on shader

These are reasonable return values, since both of these methods can return a known value (0)
which means that no context can be created. This also makes it easier for chrome's subclasses
which already do not want to create a context, but having them actually overridden makes
changing the virtual signatures much harder.

BUG=skia:
R=scroggo@google.com, dominikg@google.com, reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/262703002

git-svn-id: http://skia.googlecode.com/svn/trunk@14491 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
8c4953c6f176469ad287c3270ab146e292b23bad 30-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup of SSE optimization files.

General cleanup of optimization files for x86/SSEx.
Renamed the opts_check_SSE2.cpp file to _x86, since it's not specific
to SSE2. Commented out the ColorRect32 optimization, since it's
disabled anyway, to make it more visible.
Also fixed a lot of indentation, inclusion guards, spelling,
copyright headers, braces, whitespace, and sorting of includes.

Author: henrik.smiding@intel.com

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/264603002

git-svn-id: http://skia.googlecode.com/svn/trunk@14464 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
88cb22b6b4816c7a9ca6c5b795965b4606f9eb7b 30-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert GrCrash->SkFAIL GrDebugCrash->SkDEBUGFAIL

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
kXfermode.cpp
eeaeafebdeec2c546134b741ab8b3c6b7c5190ab 30-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14453 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
66ec1e4c6179915a50bea74fad4b8cc14e63a4cf 29-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move setup of SkPictCopyInfo into SkPicture::clone

This refactoring seemed sufficiently fraught that I've broken it out of a larger patch to move fBitmapHeap out of SkPictureRecord/SkPicturePlayback and into SkPicture.

SkPicturePlayback's friending of SkPicture should be temporary and just allows SkPicture to access items that will be moving into it soon.

R=scroggo@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/256653006

git-svn-id: http://skia.googlecode.com/svn/trunk@14440 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
1ac99c890b8afe957385a7625fd3b759f31be249 29-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed issue found by clusterfuzz

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
kValidatingReadBuffer.cpp
kWriter32.cpp
daaafa6e81860e3dc52660ba019c336f0a43f1e7 29-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add asAShadowBlur for android to drawlooper

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
kDrawLooper.cpp
kMaskFilter.cpp
a31eacb22e12a4223740e53ff5a11bd08340106e 28-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.

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
kPicturePlayback.cpp
kPictureStateTree.cpp
kPictureStateTree.h
9c9005a347e9996f357bd79591bd34f74f8bbc66 28-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkShader::fLocalMatrix into SkShader constructor.

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
kBitmapDevice.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kComposeShader.cpp
kDraw.cpp
kPictureShader.cpp
kShader.cpp
kSmallAllocator.h
72b7bf859d8c1af3797d0c7e1ab661e6572ad898 28-Apr-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing include for r14397.


git-svn-id: http://skia.googlecode.com/svn/trunk@14398 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
b6ad00b17f1c983707013f7adec54bca72c0917b 28-Apr-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create SkGlyphCache globals with SkOnce.

VC++ will have magic statics with VS2014, but does not currently have them.
The thread unsafe implementation was causing the DirectWrite bots to randomly
crash when running multi-threaded tests, as gGlobals could be seen as NULL.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/252713002

git-svn-id: http://skia.googlecode.com/svn/trunk@14397 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
270d44567b06b0f28640dfd9bc6bca3f8d3f2779 25-Apr-2014 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Re-add SkPictureStateTree::Iterator::draw() SaveFlags.

This is a SkPictureStateTree-only revert of r14253.

https://codereview.chromium.org/241453003

(It introduced ChromeOS regressions and the later r14319 fix got
reverted for different reasons).

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/250803006

git-svn-id: http://skia.googlecode.com/svn/trunk@14384 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.cpp
98c4e5229ce8ef78491fc9e5804f9936b6a2965f 25-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag. (https://codereview.chromium.org/246893005/)

Reason for revert:
https://code.google.com/p/chromium/issues/detail?id=366889

Original issue's description:
> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.
>
> 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,robertphillips@chromium.org,reed@google.com
>
> Committed: http://code.google.com/p/skia/source/detail?r=14319

R=junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/250733007

git-svn-id: http://skia.googlecode.com/svn/trunk@14383 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureStateTree.cpp
kPictureStateTree.h
e2cb12a82ad924f7b134a9459b190213485c6a50 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at GPU veto

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
kPicture.cpp
kPictureRecord.cpp
d70fa2013adccaa52d1f3e6ca501a4d4ab1520f3 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Deprecate SaveFlags use in the public SkCanvas API.

Because we still have internal users for now (to support the deprecated
mode), this CL introduces an external-only variant of deprecation.

Chromium is no longer using the deprecated methods, but Android may need
to suppress SK_ATTR_EXTERNALLY_DEPRECATED warnings.

R=reed@google.com, robertphillips@google.com, scroggo@google.com, bungeman@google.com, mtklein@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/246023008

git-svn-id: http://skia.googlecode.com/svn/trunk@14367 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e00ad689d0e627e53e1884c4cdd40089dd4996a1 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused include.

vector is not used by this file (and this breaks the Android framework
build).

R=sugoi@google.com, bungeman@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/251483004

git-svn-id: http://skia.googlecode.com/svn/trunk@14361 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadTree.cpp
76a3b2abd02841c4ae786ac4cf59c3a51c545f73 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove support for inheriting the paint color from SkColorShader

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
kBlitter.cpp
kShader.cpp
b0430d024572b1a5e5d7b80e406c668e975e3030 24-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14346 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.h
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
c822bb3d4ba6704d1496f35b2bde45e152976647 24-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for r14341 Chrome build error

https://codereview.chromium.org/252393003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14345 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
8f831f262f5e57665587cb3033860eea39fe1621 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> First step in pulling SkPicturePlayback & SkPictureRecord out of SkPicture

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
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
f117781362ecf673f43f93918781853690f0e145 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix size_t/int warnings

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/247753003

git-svn-id: http://skia.googlecode.com/svn/trunk@14332 2bbb7eff-a529-9590-31e7-b0007b416f81
kReadBuffer.cpp
kRegion.cpp
kRegionPriv.h
kScalerContext.cpp
kStream.cpp
kValidatingReadBuffer.cpp
kWriter32.cpp
87fcd950198a16211b3988610beebb5ca5bcf323 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/249643002/)

Reason for revert:
Chromium side change landed along side DEPS roll that includes r14323.

Original issue's description:
> Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)
>
> Reason for revert:
> This is blocking the DEPS roll into Chromium. Failures can be seen here:
>
> http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333
>
> Original issue's description:
> > Extract most of the mutable state of SkShader into a separate Context object.
> >
> > SkShader currently stores some state during draw calls via setContext(...).
> > Move that mutable state into a separate SkShader::Context class that is
> > constructed on demand for the duration of the draw.
> >
> > Calls to setContext() are replaced with createContext() which returns a context
> > corresponding to the shader object or NULL if the parameters to createContext
> > are invalid.
> >
> > TEST=out/Debug/dm
> > BUG=skia:1976
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14216
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14323
>
> TBR=scroggo@google.com,skyostil@chromium.org,tomhudson@chromium.org,senorblanco@chromium.org,reed@google.com,bungeman@google.com,dominikg@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14326

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org
TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/246403013

git-svn-id: http://skia.googlecode.com/svn/trunk@14328 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBitmapProcState.h
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kComposeShader.cpp
kCoreBlitters.h
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kSmallAllocator.h
6e5671d8c9b2d9885e351b631b1dfbb4ed403789 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)

Reason for revert:
This is blocking the DEPS roll into Chromium. Failures can be seen here:

http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333

Original issue's description:
> Extract most of the mutable state of SkShader into a separate Context object.
>
> SkShader currently stores some state during draw calls via setContext(...).
> Move that mutable state into a separate SkShader::Context class that is
> constructed on demand for the duration of the draw.
>
> Calls to setContext() are replaced with createContext() which returns a context
> corresponding to the shader object or NULL if the parameters to createContext
> are invalid.
>
> TEST=out/Debug/dm
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14216
>
> Committed: http://code.google.com/p/skia/source/detail?r=14323

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org
TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/249643002

git-svn-id: http://skia.googlecode.com/svn/trunk@14326 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBitmapProcState.h
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kComposeShader.cpp
kCoreBlitters.h
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kSmallAllocator.h
6e332f768f873323b418ee7b028f28662bfb43c6 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)

Reason for revert:
Causes some layout_test failures around texture backed bitmaps. Test names and crash logs accessible via: https://storage.googleapis.com/chromium-layout-test-archives/linux_layout/13845/layout-test-results/results.html



Original issue's description:
> eliminate config param -- it was always self's config
>
> BUG=skia:
> R=bsalomon@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=14303

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/249373003

git-svn-id: http://skia.googlecode.com/svn/trunk@14324 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
bc2f1dc85e458af7bdb87873e60207f9f7299e4a 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Extract most of the mutable state of SkShader into a separate Context object.

SkShader currently stores some state during draw calls via setContext(...).
Move that mutable state into a separate SkShader::Context class that is
constructed on demand for the duration of the draw.

Calls to setContext() are replaced with createContext() which returns a context
corresponding to the shader object or NULL if the parameters to createContext
are invalid.

TEST=out/Debug/dm
BUG=skia:1976

Committed: http://code.google.com/p/skia/source/detail?r=14216

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/207683004

git-svn-id: http://skia.googlecode.com/svn/trunk@14323 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBitmapProcState.h
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kComposeShader.cpp
kCoreBlitters.h
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kSmallAllocator.h
e0d9ce890e67d02727ac2811bb456ddb64f827d4 23-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make drawText calls non-virtual, to ease SkFont and TextBlob (https://codereview.chromium.org/243853006/)"

associated chrome change (to be committed with DEPS roll)
https://codereview.chromium.org/248693002/

This reverts commit bfaceb53f58c9625b5471fcff35b5ca9ca3ae29c.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/248083002

git-svn-id: http://skia.googlecode.com/svn/trunk@14321 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
8798ae37dac4e28a8feb05ae4fae32c915d8cd8d 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.

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

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/246893005

git-svn-id: http://skia.googlecode.com/svn/trunk@14319 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureStateTree.cpp
kPictureStateTree.h
60b5dce19984a5165f6b2f1d6d477f5e8a940761 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> expose CGImage -> SkBitmap

BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/243463005

git-svn-id: http://skia.googlecode.com/svn/trunk@14315 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
945ec3a2bec668ca845071a65df8ec55e8f43819 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of make drawText calls non-virtual, to ease SkFont and TextBlob (https://codereview.chromium.org/243853006/)

Reason for revert:
need to test more the code-path where we don't opt into the new virtuals

Original issue's description:
> make drawText calls non-virtual, to ease SkFont and TextBlob
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14307

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/247983003

git-svn-id: http://skia.googlecode.com/svn/trunk@14314 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
4325d114a5679e46f25ae75b0e43547fd7694998 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> make drawText calls non-virtual, to ease SkFont and TextBlob

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/243853006

git-svn-id: http://skia.googlecode.com/svn/trunk@14307 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
dcacd5fd5a0baeb83d8c61bb6127c442ef72e29a 22-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> eliminate config param -- it was always self's config

BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/246513002

git-svn-id: http://skia.googlecode.com/svn/trunk@14303 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
dcecb168968ca136c7fb9e8b444bec56f19af70c 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix size_t/int warnings in pictures

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/244273002

git-svn-id: http://skia.googlecode.com/svn/trunk@14302 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
aec143824c9be4e4af6e2cb7cce3d2d2268c0b15 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add asADash entry point into SkPathEffect to allow extracting Dash info from PathEffects

BUG=skia:
R=bsalomon@google.com, reed@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/212103010

git-svn-id: http://skia.googlecode.com/svn/trunk@14297 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
fd4ee4dea13f083c81cc80180fa09ee0127158a1 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> NewRasterDirect should *not* erase the pixels -- direct means the client is in-charge

BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/246493002

git-svn-id: http://skia.googlecode.com/svn/trunk@14296 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
6b4aaa77dcc4f17d0e22986f5f4cca70011d1ee5 21-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional origin parameter to accessTopLayerPixels

BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/244763004

git-svn-id: http://skia.googlecode.com/svn/trunk@14290 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2c4e75cc3c0302e0e151d90c74b4c476bfa8a8b5 21-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove offset to SkMallocPixelRef::NewWithData - use SkData::NewSubset instead.

R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/243483002

git-svn-id: http://skia.googlecode.com/svn/trunk@14289 2bbb7eff-a529-9590-31e7-b0007b416f81
kMallocPixelRef.cpp
855e88edfafe4b3892e99f932c38fa7433b2fcbe 21-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixes for SkPictureShader.

Update comment in header to make it more clear that the picture
should be unaltered after creating the shader. We want our shaders
to be immutable, and this supports that.

Make the factory return NULL if the shader would have never drawn
anyway i.e. for a null picture or picture with no width/height.

Addresses comments I brought up in
https://codereview.chromium.org/221923007/#msg16.

BUG=skia:1976
R=reed@google.com, fmalita@chromium.org, robertphillips@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/238253005

git-svn-id: http://skia.googlecode.com/svn/trunk@14288 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
0f1fef834c73cb4f38023de0f98d05562d24f2bc 20-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> inline SkMulDiv now that 64bit mul is inlineable

TBR=caryclark@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/242493006

git-svn-id: http://skia.googlecode.com/svn/trunk@14268 2bbb7eff-a529-9590-31e7-b0007b416f81
kMath.cpp
2cfa3200fda29279eba1240170c7e873d12f9d48 20-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings around size_t/int
fix warnings around undeclared (non-static) functions

TBR=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/242643008

git-svn-id: http://skia.googlecode.com/svn/trunk@14267 2bbb7eff-a529-9590-31e7-b0007b416f81
kDescriptor.h
kDistanceFieldGen.cpp
kPackBits.cpp
kPaint.cpp
kPicturePlayback.cpp
770963f23f4fc313db0fa3bac18b1b8aafb55f17 18-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Staging for cleanup of SkPicture-related headers

https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBHFactory.cpp
kPicture.cpp
kPictureRecorder.cpp
kQuadTreePicture.cpp
kQuadTreePicture.h
kRTreePicture.cpp
kTileGrid.h
kTileGridPicture.cpp
091a594dbc4116ec2e54724432472bf37dae794a 18-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Reduce internal explicit SaveFlags usage.

Most of these are either redundant/defaults or (hopefully)
unnecessarily specific.

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/241453003

git-svn-id: http://skia.googlecode.com/svn/trunk@14253 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
kPictureStateTree.cpp
60bd7519a9db4ddddd95e490f93165e5676f90f5 18-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14252 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kTileGridPicture.cpp
kXfermode.cpp
5fb2ce38b3dcb8e60e9e112df23c9d42456d7069 18-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Staged removal of SkPicture-derived classes

This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/238273012

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kQuadTreePicture.cpp
kQuadTreePicture.h
kRTreePicture.cpp
kTileGrid.cpp
kTileGrid.h
kTileGridPicture.cpp
53783b026a00683c1fb504127c3398dabb61ea73 17-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)

Reason for revert:
Causing memory leaks in Chromium.

Original issue's description:
> Extract most of the mutable state of SkShader into a separate Context object.
>
> SkShader currently stores some state during draw calls via setContext(...).
> Move that mutable state into a separate SkShader::Context class that is
> constructed on demand for the duration of the draw.
>
> Calls to setContext() are replaced with createContext() which returns a context
> corresponding to the shader object or NULL if the parameters to createContext
> are invalid.
>
> TEST=out/Debug/dm
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14216

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, dominikg@chromium.org
TBR=dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/241283003

git-svn-id: http://skia.googlecode.com/svn/trunk@14247 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kComposeShader.cpp
kCoreBlitters.h
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kSmallAllocator.h
68ea91a49311562347311448450199a957590c1c 17-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Fix memory leak in SkGradientShader. (https://codereview.chromium.org/240303003/)

Reason for revert:
This and https://codereview.chromium.org/207683004 are causing memory leaks.

Original issue's description:
> Fix memory leak in SkGradientShader.
>
> Make sure pointer to gradient shader cache is unreffed in SkGradientShaderBase::getGradientTableBitmap.
> Rename methods returning a "pre-reffed" object to indicate obligations.
>
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14223

R=reed@google.com, scroggo@google.com, dominikg@chromium.org
TBR=dominikg@chromium.org, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/241603002

git-svn-id: http://skia.googlecode.com/svn/trunk@14245 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
84f7a06ff926eeddd2fb753795359f3b39a0c0eb 17-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add some asserts for mipmaps, and cleanup fFilterLevel if mipping failed

BUG=skia:
R=scroggo@google.com, humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/240633003

git-svn-id: http://skia.googlecode.com/svn/trunk@14241 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
cc277b729b16c0d8d042f9ae1db6563fb4538d88 17-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Orphan ProcXfermode, with an eye towards removing it

BUG=skia:
R=scroggo@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/240533003

git-svn-id: http://skia.googlecode.com/svn/trunk@14238 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
667b98d947892cec939669bccf204ab9ed565c4e 17-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14234 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
45d86e7072cda3b3108a84a033fba98072b12f85 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> always store bitfields along with dirty in FlatteningTraits

This allows us to simplify lots of setters in SkPaint, which in the non-android case, could now be just assignments (and therefore inlineable).

R=mtklein@google.com, robertphillips@google.com, tomhudson@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/240273004

git-svn-id: http://skia.googlecode.com/svn/trunk@14229 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
9631337be0f463ede106c5dbca69d726795f6ccf 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix memory leak in SkGradientShader.

Make sure pointer to gradient shader cache is unreffed in SkGradientShaderBase::getGradientTableBitmap.
Rename methods returning a "pre-reffed" object to indicate obligations.

BUG=skia:1976
R=reed@google.com, scroggo@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/240303003

git-svn-id: http://skia.googlecode.com/svn/trunk@14223 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
d393b17cf3427bd6f6255f8670067d9aa529e409 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API


This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

BUG=skia:2315
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/239703006

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kQuadTreePicture.h
kRTreePicture.cpp
85faf50875fcf6008880a98aaa05d12ae8dad343 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove legacy filter-flags, and store FilterLevel directly

BUG=skia:
R=robertphillips@google.com, humper@google.com, jvanverth@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/239393002

git-svn-id: http://skia.googlecode.com/svn/trunk@14217 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
001f4ed2fb62ecdc98ce2884d925de11b7516d23 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Extract most of the mutable state of SkShader into a separate Context object.

SkShader currently stores some state during draw calls via setContext(...).
Move that mutable state into a separate SkShader::Context class that is
constructed on demand for the duration of the draw.

Calls to setContext() are replaced with createContext() which returns a context
corresponding to the shader object or NULL if the parameters to createContext
are invalid.

TEST=out/Debug/dm
BUG=skia:1976
R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/207683004

git-svn-id: http://skia.googlecode.com/svn/trunk@14216 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kCanvas.cpp
kComposeShader.cpp
kCoreBlitters.h
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kPictureShader.cpp
kPictureShader.h
kShader.cpp
kSmallAllocator.h
64b08a1026851a84031713f0e12a3e59d55ce808 15-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix artifacts in distance field rendering due to bilerp

Because we were using the full distance field glyph rect, there were cases
when a neighboring texel might be set to full value (e.g. we might copy the
glyph over old data after a purge). This was giving artifacts, and insetting
the rect by 1 solves the problem. In doing this, I discovered that removing the
extra 1 texel pad around the glyph meant to handle bilerp, and insetting by 2,
works just as well and saves space in the glyph atlas.

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/239333002

git-svn-id: http://skia.googlecode.com/svn/trunk@14203 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.h
762cd804375ff8478427dba4fe29379562b8fb60 15-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move distance field generation to the glyph cache.

Distance fields are currently created in GrTextStrike, which is the wrong place. This moves that to the glyph cache where it belongs.

As part of my testing, I found that when we fall back to paths in the GrDistanceFieldTextContext it was not scaling them properly, so that's fixed in here too.

R=robertphillips@google.com, reed@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/227593010

git-svn-id: http://skia.googlecode.com/svn/trunk@14193 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
kDistanceFieldGen.h
kGlyph.h
kGlyphCache.cpp
kGlyphCache.h
d9ae2314f58ccac54068a2e50a4a159cf3929c1a 14-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of use templates instead of macros to build blitters (https://codereview.chromium.org/120633004/)"

This reverts commit e9d2798fd37e2fb33b545d142a5baa21a4b747fe.

BUG=skia:

Review URL: https://codereview.chromium.org/236303008

git-svn-id: http://skia.googlecode.com/svn/trunk@14185 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_template.h
1a479e7547d4efe2d1d06fab5c9442b77ec6c954 14-Apr-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow clients to specify an external SkImageFilter cache.

This change allows external callers to substitute their own
SkImageFilter cache for the default intra-frame cache in Skia. This
allows the caller to perform inter-frame caching for example, by the
maintaining a persistent cache between frames and doing custom
invalidation.

R=reed@google.com

Review URL: https://codereview.chromium.org/225903010

git-svn-id: http://skia.googlecode.com/svn/trunk@14181 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kImageFilter.cpp
8f9e681093aac6c46c71df604ac685cef46309a2 14-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of use templates instead of macros to build blitters (https://codereview.chromium.org/120633004/)

Reason for revert:
Broke build.

Original issue's description:
> use templates instead of macros to build blitters
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14178

R=mtklein@google.com, reed@google.com
TBR=mtklein@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/236593006

git-svn-id: http://skia.googlecode.com/svn/trunk@14180 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_template.h
f6a5afb66b661c884cd308577431b7abf025b182 14-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove currently unused code

This code is currently unused and is contrary to the way in which we seem to be moving towards accomplishing this (i.e., device-specific optimization passes).

This is a partial revert of r13704 (First version of bitmap use tracking in SkPictureRecord - https://codereview.chromium.org/187833003/)

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/237013002

git-svn-id: http://skia.googlecode.com/svn/trunk@14179 2bbb7eff-a529-9590-31e7-b0007b416f81
kOffsetTable.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
567f519b942664582b268bf223e744fafcd11fa1 14-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> use templates instead of macros to build blitters

BUG=
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/120633004

git-svn-id: http://skia.googlecode.com/svn/trunk@14178 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_template.h
84b18c7e3e042bf206e1ace3d1b6ea5bb929fe51 13-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> split SkPictureRecorder out of SkPicture

https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kQuadTreePicture.h
d94273125984e108018064962408589bdc942f59 12-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14168 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
c3c67dfc73519910f173bd7b4da01b8583040096 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead code from SkPicturePlayback

This is from an earlier iteration of the pull-forward task before we switched to doing the majority of the work in SkGpuDevice.

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/235473002

git-svn-id: http://skia.googlecode.com/svn/trunk@14162 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
f7efa502d62af80bd15b03e1131603fb6577c3df 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement intra-frame cacheing in image filters.

When image filters are processed within Skia, they simply do
a blind recursion. This has the side-effect of turning the
DAG into a tree. I.e., nodes visited more than once during
the traversal will be processed more than once.

This change implements a very simple cacheing scheme: a
cache is created before traversing the DAG, and handed
into the processing traversal. Before recursing into a child
in SkImageFilter::filterImage(), the cache is checked for a
hit, and early-out is performed. Otherwise, the node is
processed, and its result bitmap and location (offset) are
cached, but only if it contains two or more children and
thus will be visited again during the traversal.

Currently, the child count is approximated with the
refcount. This is good enough in most cases (and exactly
correct for the Chrome use case). We could add an exact
child count to the image filter, but this will require
violating the immutability of image filters slightly in
order to bump the child count as nodes are connected. I
leave it up to the reviewer to decide which is better.

R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/230653005

git-svn-id: http://skia.googlecode.com/svn/trunk@14160 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kImageFilter.cpp
cae54f1f211e3c293ef9afb968067d06ca0ea23d 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove picture-backed surfaces

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/233943002

git-svn-id: http://skia.googlecode.com/svn/trunk@14159 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
28fcae2ec77eb16a79e155f8d788b20457f1c951 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)

Reason for revert:
Want to reland the original CL.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, bensong@google.com
TBR=bensong@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/235523003

git-svn-id: http://skia.googlecode.com/svn/trunk@14156 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kScaledImageCache.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
c873329ae9ff00b0c45f7294172ad2e9b1ec44c8 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Update bench to be able to preprocess skps

This allows benchmarking of optimization improvements and plumbs in the purging API. The purging is necessary so we don't magically get faster because the saveLayers are always pre-generated.

R=jvanverth@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/233663002

git-svn-id: http://skia.googlecode.com/svn/trunk@14154 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
96edc2459820f0f60ea9b57959c1e5018ef95e28 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)

Reason for revert:
Chrome's side of define changes not easy to figure out quickly. Reverting this for DEPS roll for now.

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/234833003

git-svn-id: http://skia.googlecode.com/svn/trunk@14149 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kScaledImageCache.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
e424c1d8a615d9d638d74d38dc795ecdf8d4ca31 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> So apparently Chrome has an x86 iOS build...

and for some reason we don't bother to build or link our SSE2 opts
there. So don't go looking for them when SK_BUILD_FOR_IOS is set.

BUG=skia:
NOTREECHECKS=true
NOTRY=true
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/225033003

git-svn-id: http://skia.googlecode.com/svn/trunk@14147 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
d923288e50b5a69afb0bdd5c161191b24cab8345 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)

Reason for revert:
fixes on the chrome side are landing (brettw), keep fingers crossed.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/233813004

git-svn-id: http://skia.googlecode.com/svn/trunk@14145 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kScaledImageCache.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
757ebd20ef284b6428eb9f4b9b69826cc3640a82 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)

Reason for revert:
breaking the Chrome deps roll.
http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/234243002

git-svn-id: http://skia.googlecode.com/svn/trunk@14144 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kScaledImageCache.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
e9085b1d0f37c76894e882c7a9ffb83bd952be5b 10-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove two more effects that are now immutable

BUG=skia:
R=scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/233753002

git-svn-id: http://skia.googlecode.com/svn/trunk@14142 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
fe23f7978f4f75c6a9af025f26b583650342766e 10-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of remove sprintf (https://codereview.chromium.org/230413005/)

Reason for revert:
Boo, hiss, SK_ARRAY_COUNT not defined in skia_launcher.cpp!

Original issue's description:
> remove sprintf
>
> Committed: http://code.google.com/p/skia/source/detail?r=14123

R=halcanary@google.com
TBR=halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/232323002

git-svn-id: http://skia.googlecode.com/svn/trunk@14125 2bbb7eff-a529-9590-31e7-b0007b416f81
kError.cpp
d6e9b88468e0bdc8f46ceaba1d97ba00253fc941 10-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove sprintf

R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/230413005

git-svn-id: http://skia.googlecode.com/svn/trunk@14123 2bbb7eff-a529-9590-31e7-b0007b416f81
kError.cpp
e4a4f12bb5f15726107402be0506d382638f0bf2 10-Apr-2014 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Real fix for SK_API / Windows shared lib problems.

Ben reviewed this over my shoulder, and we tested on his machine.


git-svn-id: http://skia.googlecode.com/svn/trunk@14122 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode_proccoeff.h
149e9a107c356b0151433fb23c2b1c8d0634947c 09-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename kPMColor_SkColorType to kN32_SkColorType.

The new name better represents what this flag means.

BUG=skia:2384
R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/227433009

git-svn-id: http://skia.googlecode.com/svn/trunk@14117 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kScaledImageCache.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
4460e75bc7e8c13e0e44ee9330ae8f556d8b0094 09-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Define SK_CPU_X86 on x86 machines.

Use this to only register flattening for SkSSE2ProcCoeffXfermode::CreateProc when it's linked.

BUG=skia:

R=reed@google.com, mtklein@google.com, bsalomon@google.com
TBR=reed@google.com
NOTRY=true
NOTREECHECKS=true

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/231223002

git-svn-id: http://skia.googlecode.com/svn/trunk@14108 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
c524e98f1edf06b53e65543f5f28217fa13b7aa9 09-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Xfermode: SSE2 implementation of multiply_modeproc

This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
after:
Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=14006

Committed: http://code.google.com/p/skia/source/detail?r=14050

R=mtklein@google.com, robertphillips@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14107 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
e1d94437585dad1c195d7cf095f8a5a8219d196a 09-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14102 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
eefd8a01fc984e15ca108cb2951c52b3ea17d6b8 08-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't try to render color fonts using distance fields.

Adds detection of ARGB mask format, which is only used for color fonts.

BUG=skia:2173
R=bungeman@google.com, reed@google.com, bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/224903012

git-svn-id: http://skia.googlecode.com/svn/trunk@14098 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.h
6719d604856e45c789c46703204ae10046e0b448 08-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use default to fix warning (or I will shoot myself)

git-svn-id: http://skia.googlecode.com/svn/trunk@14096 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
43d6d80b49b05c4eec400c8393445397653d9654 08-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning for uninitialized count

git-svn-id: http://skia.googlecode.com/svn/trunk@14095 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
efadb4b63c428b4f99399c097879981e6efa8870 08-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning about uninitialized typeface_encoding by folding glyph case into switch

git-svn-id: http://skia.googlecode.com/svn/trunk@14094 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
bafee11dd17d0d0c5e693ef2ba7b4d6a4b1e3786 08-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning by removing padding field

git-svn-id: http://skia.googlecode.com/svn/trunk@14093 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
c5d9bb0f677069f62ec76373b9730e70e7352455 08-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial picture shader implementation

This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Committed: http://code.google.com/p/skia/source/detail?r=14085

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/221923007

git-svn-id: http://skia.googlecode.com/svn/trunk@14092 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
43c27586e8b02243c16649de1cd7d95dcea0a712 08-Apr-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> WIP -- SkFont

BUG=skia:
R=bungeman@google.com, fmalita@chromium.org

Review URL: https://codereview.chromium.org/185293018

git-svn-id: http://skia.googlecode.com/svn/trunk@14090 2bbb7eff-a529-9590-31e7-b0007b416f81
kFont.cpp
8865d09cf81bd38359421024badde36109bbf41d 08-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Initial picture shader implementation (https://codereview.chromium.org/221923007/)

Reason for revert:
breaking the buildbots. Subsequent CL only addressed CompareGMs but GenerateGMs are also failing.

Original issue's description:
> Initial picture shader implementation
>
> This CL adds an SkPictureShader class to support SkPicture-based
> patterns.
>
> The implementation renders the picture into an SkBitmap tile and then
> delegates to SkBitmapProcShader for the actual operation.
>
> R=reed@google.com,robertphillips@google.com,bsalomon@google.com
>
> Committed: http://code.google.com/p/skia/source/detail?r=14085

R=bsalomon@google.com, reed@google.com, robertphillips@google.com, fmalita@chromium.org
TBR=bsalomon@google.com, fmalita@chromium.org, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: bensong@google.com

Review URL: https://codereview.chromium.org/227553010

git-svn-id: http://skia.googlecode.com/svn/trunk@14087 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
592b2d13c9fa856ae23cf6d643a39c21216e928d 08-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial picture shader implementation

This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/221923007

git-svn-id: http://skia.googlecode.com/svn/trunk@14085 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureShader.cpp
kPictureShader.h
kShader.cpp
fc9482933794fb46920abc67cc84923a273e3fe1 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG
remove SK_SUPPORT_LEGACY_GETDEVICECAPABILITIES

BUG=skia:
R=robertphillips@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/227643005

git-svn-id: http://skia.googlecode.com/svn/trunk@14083 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kDevice.cpp
e3beb6bd7de7fa211681abbb0be58e80b19885e0 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkNonCopyable should be used with private inheritance.

This is mostly s/public SkNoncopyable/SkNoncopyable/g.

Two classes (SkDrawLooper::Context and SkPicture::OperationList) don't actually work with SkNoncopyable because they introduce a virtual destructor. I added SkNoncopyableVirtual to make them work as intended. Sort of questionable whether they really need to be noncopyable in the first place, but I guess it doesn't hurt to keep the behavior the same.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/226183018

git-svn-id: http://skia.googlecode.com/svn/trunk@14081 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.h
kSmallAllocator.h
kTLList.h
c4df655b37aea7097d3007b299de582ba517ef16 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Factory methods for heap-allocated SkTypeface objects.

This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkTypeface and its subclasses non-public
and instead provides factory methods for creating these objects on the heap.

BUG=skia:2187
R=scroggo@google.com, bungeman@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/227693003

git-svn-id: http://skia.googlecode.com/svn/trunk@14080 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
2b4e370a2fe00168838e43f5a78ccc3b371609f5 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert SkPicture's generation ID to a unique ID

This CL addresses linger code review comments on r14037 (Add generation ID to SkPicture https://codereview.chromium.org/222683002/)

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/225283014

git-svn-id: http://skia.googlecode.com/svn/trunk@14079 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
c96268d792e8807e0f5ba71fc70caa9f0357edf3 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkBitmapShaderTemplate.

Remove files that are no longer needed:
src/core/SkBitmapShaderTemplate.h
src/core/SkBitmapShader16BilerpTemplate.h

BUG=skia:1976
R=scroggo@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/225023028

git-svn-id: http://skia.googlecode.com/svn/trunk@14078 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapShader16BilerpTemplate.h
kBitmapShaderTemplate.h
372a9c3f443bdcc60b0e0c17f028461eaaed5fd1 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix EffectKey for XferEffect

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/227233007

git-svn-id: http://skia.googlecode.com/svn/trunk@14076 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
77815fd74df355b8d6eff8a91fd10cc65033a79f 03-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Xfermode: SSE2 implementation of multiply_modeproc (https://codereview.chromium.org/202903004/)

Reason for revert:
It looks like serialization is broken. The serialize and pipe-cross-process tests are failing and turning (at least the Ubuntu12 and Win7) bots red

Original issue's description:
> Xfermode: SSE2 implementation of multiply_modeproc
>
> This patch implements basics for Xfermode SSE optimization. Based on
> these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
> implementation for other modes will come in future. With this patch
> performance of Xfermode_Multiply will improve about 45%. Here are the
> data on desktop i7-3770.
> before:
> Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
> after:
> Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14006
>
> Committed: http://code.google.com/p/skia/source/detail?r=14050

R=mtklein@google.com, qiankun.miao@intel.com
TBR=mtklein@google.com, qiankun.miao@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/224253003

git-svn-id: http://skia.googlecode.com/svn/trunk@14053 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
c3118739277beb7678973d47e3d71bb863929bce 03-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Xfermode: SSE2 implementation of multiply_modeproc

This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
after:
Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=14006

R=mtklein@google.com, robertphillips@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14050 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
87927284d9f9a01697d541602222a897df6983fa 03-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkRRect isEmpty assert

The rectangle could be empty but not all zeroes.

BUG=skia:2379

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>

R=robertphillips@google.com

Author: siglesias@igalia.com

Review URL: https://codereview.chromium.org/223213005

git-svn-id: http://skia.googlecode.com/svn/trunk@14041 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
d5500886a29a20733c559c0167a6ae9946704de2 03-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add generation ID to SkPicture

https://codereview.chromium.org/222683002/



git-svn-id: http://skia.googlecode.com/svn/trunk@14037 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
050c0aef853c45fdfb0b9595e748e240ee3021cd 03-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove misc. dead code.

These files are not referenced by any .gyp file in Skia or Chromium.
ninja -C out/Debug everything still builds.

BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/222683003

git-svn-id: http://skia.googlecode.com/svn/trunk@14035 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_rects.cpp
d5424a425bc21280afe2161f6ac1e5d9eb97e6b2 02-Apr-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix matrix adjustment passed to filter processing.

When adjusting the CTM for filter use, we were subtracting off the
destination coordinates of the drawDevice() or drawSprite(). This is
not quite correct: we should subtract off the coordinates relative to
the device origin instead. This occurs when one filtered saveLayer() is
drawn inside another saveLayer(), both with non-zero origin.

This fixes layout test svg/batik/text/smallFonts.svg in Blink, and is
exercised by the provided unit test.

BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/222723002

git-svn-id: http://skia.googlecode.com/svn/trunk@14029 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
55bd940446506f8409f38271f2e4969e9b4f3991 02-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkTDynamicHash: pick up GetKey(), Hash() from T by default.

This also has a somewhat obscure technical benefit: it removes the
requirement that GetKey() and Hash() must be functions with external
linkage, which is required when passing a function pointer to a
template. A future CL that's run into this problem and the obvious
simplification are about 50/50 why I'm sending this CL.

BUG=skia:
DIFFBASE= https://codereview.chromium.org/222343002/
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/222473002

git-svn-id: http://skia.googlecode.com/svn/trunk@14028 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kScaledImageCache.cpp
kTDynamicHash.h
158f64626f8dae7e8437744184860d0110b88609 02-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkTDynamicHash: remove need for Equals(const T&, const Key&) param.

All implementations are relying on bool operator==(const Key&, const Key&)
anyway, which makes total sense, so just make that required.

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/222343002

git-svn-id: http://skia.googlecode.com/svn/trunk@14027 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kScaledImageCache.cpp
kTDynamicHash.h
6f2d4d4679f5f0e1a1b5c2e940f1b65e34d94649 02-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 35 - First AArch64 support

Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

- add an arm64 target to the build system + SK_CPU_ARM64 flag

- MatrixTest was failing when built in Release mode. Fused MAC
instructions were generated which made some intermediate results
more accurate. As the test relies on result comparison, the more
precise results when compared to others led to a gap bigger than
what was tolerated. As I don't know if some actual skia code relies
on results being comparable, I've disabled fused MAC instruction
with -ffp-contract=off for arm64.

- Modify include/core/SkOnce.h to have barriers work.

- SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

- use existing Xfermode optimisations with modifications that can be
removed in the future when toolchains are ready. Also save a few
instructions is two Xfermodes (will apply to ARM too).

- use existing SkBoxBlur and SkMorphology optimisations.

- use existing SkBlitMask optimisations

- use existing BitmapProcState and Convolution optimisations.

Future changes will include:

- Blitters (only partialy merged upstream)

- SkUtils (there's little value in sending asm optimisations without
having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, mtklein@google.com, halcanary@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@14025 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
53e1e4d88a06db62898a3bf75751c042729d7160 01-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Minor changes to GrFontCache system.

The main change is parameterizing the GrAtlasMgr so it can have a different sized backing texture and a different number of plots. This is in support of the saveLayer cache which has a smaller backing texture and only one plot.

R=jvanverth@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/217423014

git-svn-id: http://skia.googlecode.com/svn/trunk@14011 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
079d2986002a6eb407ba4699bae58920fdc355a0 01-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Xfermode: SSE2 implementation of multiply_modeproc (https://codereview.chromium.org/202903004/)

Reason for revert:
Breaking builds

Original issue's description:
> Xfermode: SSE2 implementation of multiply_modeproc
>
> This patch implements basics for Xfermode SSE optimization. Based on
> these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
> implementation for other modes will come in future. With this patch
> performance of Xfermode_Multiply will improve about 45%. Here are the
> data on desktop i7-3770.
> before:
> Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
> after:
> Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14006

R=mtklein@google.com, qiankun.miao@intel.com
TBR=mtklein@google.com, qiankun.miao@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/219243009

git-svn-id: http://skia.googlecode.com/svn/trunk@14007 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
25f7455f3a7cf2c440509bead85486079f1e4b31 01-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Xfermode: SSE2 implementation of multiply_modeproc

This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
after:
Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87

BUG=
R=mtklein@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14006 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
8ddc26b68c4e41199c06961da3bff2ce72afff14 31-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Actually identify required saveLayers in SkGpuDevice::EXPERIMENTAL_drawPicture

NOTRY=true
R=bsalomon@google.com, rmistry@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/212933002

git-svn-id: http://skia.googlecode.com/svn/trunk@13993 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
140950cc595a3058144681b088e44ff1f8f52d5b 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkOnce for SkXfermode::Create(Mode)

This removes the mutex from the fast path when we've already cached it.

BUG=skia:
R=reed@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/215533002

git-svn-id: http://skia.googlecode.com/svn/trunk@13986 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
0943f5f58abcff15c7583faafe44549b9a44f47a 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Thread picture version through to SkReadBuffer.

This will let code outside SkPicture* fork its read code based on the picture version.

BUG=skia:
R=reed@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/214413008

git-svn-id: http://skia.googlecode.com/svn/trunk@13984 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kReadBuffer.cpp
d643a90ee248d22ec8260512812dee6d463de555 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of ARM Skia NEON patches - 35 - First AArch64 support (https://codereview.chromium.org/143423004/)

Reason for revert:
GYP's failing on most (all?) bots.

Original issue's description:
> ARM Skia NEON patches - 35 - First AArch64 support
>
> Aarch64 support
>
> This change contains the necessary modifications to have Skia build and
> run properly on an ARMv8 processor in aarch64 execution state.
>
> Here's a list of the changes:
>
> - add an arm64 target to the build system + SK_CPU_ARM64 flag
>
> - MatrixTest was failing when built in Release mode. Fused MAC
> instructions were generated which made some intermediate results
> more accurate. As the test relies on result comparison, the more
> precise results when compared to others led to a gap bigger than
> what was tolerated. As I don't know if some actual skia code relies
> on results being comparable, I've disabled fused MAC instruction
> with -ffp-contract=off for arm64.
>
> - Modify include/core/SkOnce.h to have barriers work.
>
> - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.
>
> - use existing Xfermode optimisations with modifications that can be
> removed in the future when toolchains are ready. Also save a few
> instructions is two Xfermodes (will apply to ARM too).
>
> - use existing SkBoxBlur and SkMorphology optimisations.
>
> - use existing SkBlitMask optimisations
>
> - use existing BitmapProcState and Convolution optimisations.
>
> Future changes will include:
>
> - Blitters (only partialy merged upstream)
>
> - SkUtils (there's little value in sending asm optimisations without
> having them benchmarked on real hardware).
>
> Signed-off-by: Kevin PETIT <kevin.petit@arm.com>
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, halcanary@google.com, kevin.petit@arm.com
TBR=djsollen@google.com, halcanary@google.com, kevin.petit@arm.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/216113005

git-svn-id: http://skia.googlecode.com/svn/trunk@13983 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
7a0e27577dddd63e035e3ad8fde71f880d39943e 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 35 - First AArch64 support

Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

- add an arm64 target to the build system + SK_CPU_ARM64 flag

- MatrixTest was failing when built in Release mode. Fused MAC
instructions were generated which made some intermediate results
more accurate. As the test relies on result comparison, the more
precise results when compared to others led to a gap bigger than
what was tolerated. As I don't know if some actual skia code relies
on results being comparable, I've disabled fused MAC instruction
with -ffp-contract=off for arm64.

- Modify include/core/SkOnce.h to have barriers work.

- SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

- use existing Xfermode optimisations with modifications that can be
removed in the future when toolchains are ready. Also save a few
instructions is two Xfermodes (will apply to ARM too).

- use existing SkBoxBlur and SkMorphology optimisations.

- use existing SkBlitMask optimisations

- use existing BitmapProcState and Convolution optimisations.

Future changes will include:

- Blitters (only partialy merged upstream)

- SkUtils (there's little value in sending asm optimisations without
having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:
R=djsollen@google.com, reed@google.com, mtklein@google.com, halcanary@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@13980 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
28361fad1054d59ed4e6a320c7a8b8782a1487c7 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add discard API to SkCanvas, plumb it to glDiscardFramebuffer()


BUG=skia:2349
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/211683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13976 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7669a77cd16fbab3618ca1f1a03bcfa05a93c447 27-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix SkBitmap::erase to handle RGBA and BGRA

BUG=skia:2352
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/212643014

git-svn-id: http://skia.googlecode.com/svn/trunk@13964 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
db35dab49e0e6bf16ccad5052bf6e6826daad27d 27-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13961 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.cpp
4362a38563a958083aca2b456aaaa9f756f6f4e1 26-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Distance field fixes for Android
- Expand glyph size by 2 on each side to compensate for bilerp lookup
- Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0
- Fix blurriness on Adreno by using uv coords to compute gradient instead
of st coords
- Add faster version for uniform scale

BUG=skia:2173

Committed: http://code.google.com/p/skia/source/detail?r=13955

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/205343008

git-svn-id: http://skia.googlecode.com/svn/trunk@13958 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
66beaf0a7386a1281dc63632a740d20a725358f9 26-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Distance field fixes for Android (https://codereview.chromium.org/205343008/)

Reason for revert:
compile error at line 110 in GrDistanceFieldTextureEffect.cpp

Original issue's description:
> Distance field fixes for Android
> - Expand glyph size by 2 on each side to compensate for bilerp lookup
> - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0
> - Fix blurriness on Adreno by using uv coords to compute gradient instead
> of st coords
> - Add faster version for uniform scale
>
> BUG=skia:2173
>
> Committed: http://code.google.com/p/skia/source/detail?r=13955

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2173

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/212953008

git-svn-id: http://skia.googlecode.com/svn/trunk@13956 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
8fe2ee1cf380ee8972c846f74fabd81b34665053 26-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Distance field fixes for Android
- Expand glyph size by 2 on each side to compensate for bilerp lookup
- Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0
- Fix blurriness on Adreno by using uv coords to compute gradient instead
of st coords
- Add faster version for uniform scale

BUG=skia:2173
R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/205343008

git-svn-id: http://skia.googlecode.com/svn/trunk@13955 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
f20fc24a7def23093a1abd2fc8de4a1302aeb9f8 26-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove all references to legacy Config8888

BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/211043002

git-svn-id: http://skia.googlecode.com/svn/trunk@13952 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
2b290cec9825da11d8e09074727cfaac5eca6453 26-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Minor cleanup (moved out of main CL)

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/211173005

git-svn-id: http://skia.googlecode.com/svn/trunk@13949 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureStateTree.cpp
d9ea09e1f29b303e6fa36079e99729d2951925b9 25-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Consolidate SkCanvas matrix virtuals.

Remove didTranslate, didScale, didRotate & didSkew, and rely on
didConcat instead. Subclasses can sniff the matrix type if they want to
differentiate.

(work in progress)

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/203203004

git-svn-id: http://skia.googlecode.com/svn/trunk@13940 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
7111d463cee893a479280c7af41757e709e33ef5 25-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)"

This reverts commit 9a90bd16dc6756395c422adf0f24560d033ed9ea.

BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/211293002

git-svn-id: http://skia.googlecode.com/svn/trunk@13939 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
231f6b81c22001cac4ea87ea412c4d6fd10ffb8a 25-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)

Reason for revert:
Android bots segfaulting in tests.

Original issue's description:
> implement readPixels and writePixels natively, w/o using the (deprecated)
> SkCanvas::Config8888 enum.
>
> Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."
>
> This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.
>
> Needs chrome to remove the READPIXELS guard from skia's .gyp
>
> Committed: https://code.google.com/p/skia/source/detail?r=13931

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/209233004

git-svn-id: http://skia.googlecode.com/svn/trunk@13932 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
1121170477302e25ef2a020cf2092aa6b399b3ef 25-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> implement readPixels and writePixels natively, w/o using the (deprecated)
SkCanvas::Config8888 enum.

Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."

This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.

Needs chrome to remove the READPIXELS guard from skia's .gyp

Review URL: https://codereview.chromium.org/199733016

git-svn-id: http://skia.googlecode.com/svn/trunk@13931 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
6e4eb21d9c4cf10585b705d1a0ded8cafef29adc 25-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13928 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
e8807f49ed24be3933acf84c9ffa840a03fa43dc 25-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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

Committed: http://code.google.com/p/skia/source/detail?r=13887

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@13927 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
75cf29be4d3bcda4ce4118facec574242d4cc106 24-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add new experimental API to SkPicture to get "id" of current op

When gathering information about a picture (in the new SkDevice::EXPERIMENTAL_optimize entry point) it is necessary to be able to correlate the gathered information with the command in the SkPicture (so the information can later be combined with the similarly indexed information from the BBH). This entry point exposes that information to friend classes.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/206853003

git-svn-id: http://skia.googlecode.com/svn/trunk@13919 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
a9dae71210c3d4a689518ee87be6b1930d843315 24-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> More distance field improvements:
- Make sure we only use the 0,0 subpixel glyph
- Copy image data into outsized buffer to ensure we capture outer edges
- Change edge dump to blend better with original glyph
- Edges are detected across >128 and <128 boundaries, or when
there are two non-zero <128 pixels next to each other

BUG=skia:
R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/208893003

git-svn-id: http://skia.googlecode.com/svn/trunk@13916 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
72cf4fcafa54cfa04c5ec7cb8eaa3acb144712dd 21-Mar-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> A remotable font management interface and DirectWrite implementation.

The introduced SkRemotableFontMgr is a font management interface designed for simple and fast proxy support. SkFontMgr_Indirect bridges a SkRemotableFontMgr and a local SkFontMgr to present a SkFontMgr interface.

This change is to be followed by https://codereview.chromium.org/132113015/ and https://codereview.chromium.org/206693003 .

R=reed@google.com

Review URL: https://codereview.chromium.org/206683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13897 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
e552dc82be1512df0a8a7f24310d27d2740d7601 21-Mar-2014 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix broken Android builds due to missing includes for NEON defines

Review URL: https://codereview.chromium.org/208173002

git-svn-id: http://skia.googlecode.com/svn/trunk@13890 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
9206da6c9e7cf7ec6502c52143f57c3998dcf0f6 21-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of SkPaint: eliminate some dead bytes in 64-bit build. (https://codereview.chromium.org/203203003/)

Reason for revert:
Huh, some Android tests are still failing despite the fix. IntelRhB, Xoom... that's weird.

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
>
> Committed: http://code.google.com/p/skia/source/detail?r=13887

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/206623005

git-svn-id: http://skia.googlecode.com/svn/trunk@13888 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f48182b1614be99117b65118eefd3cd66e2d1f9a 21-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/203203003

git-svn-id: http://skia.googlecode.com/svn/trunk@13887 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
520cf8b33e788268432c6314c52dfcef22e776ae 20-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix cull nesting assertion.

Cull rects are in local coordinates and cannot be compared directly.

No wonder it was so hard enforcing this in Blink :o

This moves the validation logic into SkCanvas, using a device-space
cull stack (debug build only).

There are still some Blink bugs causing violations, so for now I'd like
to keep this as an error message only.

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/200923008

git-svn-id: http://skia.googlecode.com/svn/trunk@13885 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
89351ec35a05eaf59edb7431d23a754cd084a363 20-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't use __ARM_HAVE_NEON to detect NEON's presence in SkBlitter_RGB16

Replace __ARM_HAVE_NEON by SK_ARM_NEON_IS_ALWAYS. It was the only
use of __ARM_HAVE_NEON apart from defining SK_ARM_NEON_IS_ALWAYS.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia:
R=djsollen@google.com, mtklein@google.com, halcanary@google.com, reed@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/206543002

git-svn-id: http://skia.googlecode.com/svn/trunk@13880 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
180e36abf6e5da1688c9da5ef614a78c471834d5 20-Mar-2014 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "hide Config8888 entirely". Broke a bunch of builds.

This reverts commit fa11c49cc11a6c9ebafbf9c59e118917f9b3cc56.

Revert "Sanitizing source files in Housekeeper-Nightly" to make the above revert clean.

This reverts commit b5787422c8eb2a27a9576777597fd9e06784acdb.

TBR=reed@google.com
TBR=jcgregorio@google.com

Review URL: https://codereview.chromium.org/205963003

git-svn-id: http://skia.googlecode.com/svn/trunk@13872 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
be41d38f1c076c9e4dc595a6e1a4eb5ccdbd307b 20-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13871 2bbb7eff-a529-9590-31e7-b0007b416f81
kConfig8888.cpp
1c30818f66454f46b978d6c806f658850ef4157c 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix non-gpu build

BUG=
R=bungeman@google.com
TBR=bungeman@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/197283040

git-svn-id: http://skia.googlecode.com/svn/trunk@13868 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
eb9547c1d6a7bcc02778a7d26b7d05283c4074fa 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> stub for ganesh veto

BUG=skia:
R=bsalomon@google.com, nduca@chromium.org

Author: humper@google.com

Review URL: https://codereview.chromium.org/197803002

git-svn-id: http://skia.googlecode.com/svn/trunk@13866 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
e14792d99fc7a1a314ef5e2ca5b269239468355a 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> hide Config8888 entirely

BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/203993002

git-svn-id: http://skia.googlecode.com/svn/trunk@13865 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
fffb2cd4639076b799a68cc0d1fc04d376b1ac3d 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of SkPaint: eliminate some dead bytes in 64-bit build. (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
kPaint.cpp
fa4dc2c4cba94aec91142a24b4dc26c1dde56023 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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:
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
kPaint.cpp
2002d881e80e0d56440ed2fc4da5f90bf2f0e0fb 19-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13855 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
70512af9dd7a6b2c0a3f5971fd6e103dc577a400 18-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a means of extracting active operations from SkPicture

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
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
14bdd527eebb3616227ef37a9ed23bc450a8bb5a 18-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13836 due to Chromium cc_unittests failures

https://codereview.chromium.org/203333005/



git-svn-id: http://skia.googlecode.com/svn/trunk@13850 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
92362383a4de7b0d819c88fa8b74242bb2507602 18-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkCanvas matrix ops return value.

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
kCanvas.cpp
kDraw.cpp
kMatrix.cpp
kMatrixClipStateMgr.h
a1dfa0cf05b06674175916e0226ba57be7eeadf4 18-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Slightly faster quadtree searching

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
kQuadTree.cpp
kQuadTree.h
kTObjectPool.h
db0c8753775774aa3f67114491e26ac1be32f38e 18-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13845 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPicturePlayback.cpp
a713f9c6f6a06d216d53e268b9c691941053dabf 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add new readPixels with direct memory parameters

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
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
f338d7c860bf0bca82cac793069522311a3dbb1a 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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

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
kRRect.cpp
bab3fc4c90c4369c5d77d8da86d9f117ee54e0bc 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Add nine patch type to SkRRect. (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
kRRect.cpp
ecb745dba75dde72e5edde72e4b309120e66033b 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a means of extracting active operations from SkPicture

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
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
4ef54f8d72420a521d4aae04ff5cd438810eca7f 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_WRITEPIXELSCONFIG -- dead code

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
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
761b8e557269bbcd9d8c2030e57666a3d9ccba28 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add nine patch type to SkRRect.

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
kRRect.cpp
1c556dba153f880cad1f3e2996a320d61435f3c2 17-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r13831 (Add a means of extracting active operations from SkPicture) due to Mac compiler issue



git-svn-id: http://skia.googlecode.com/svn/trunk@13832 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
0b23f9e15f87363249cb66db2dd9918bc42d72ab 17-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a means of extracting active operations from SkPicture

https://codereview.chromium.org/195793010/



git-svn-id: http://skia.googlecode.com/svn/trunk@13831 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
949b9986de23993f163a324a1234547dd2d09be7 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fast implementation of QuadTree

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
kQuadTree.cpp
kQuadTree.h
kQuadTreePicture.cpp
kTInternalSList.h
kTObjectPool.h
eb849e5fd10cbe00cbc31307ba97fd9efca0b41b 17-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13825 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicture.cpp
42b08932e81abd8ebf296bede1994d297811511d 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add NewRasterDirect for creating a canvas drawing to pre-allocated pixels

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
kCanvas.cpp
145d1c0fdcef63991d7f910cc067a653a8aa2c4c 16-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Proposed SkCanvas API for preLoading textures to VRAM v2.0

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
kCanvas.cpp
kDevice.cpp
kPicture.cpp
f0f9f5f904a3f9a5c0e42ea19dafe6ae3c2ef8d0 15-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13820 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
e78f7cfced5787f741d0e1a4911b2bea2dfa2f02 14-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> change tooBitForLCD to compare against linear size of the text, not the area

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
kPaint.cpp
0bed43c92623c01288812aae4f5030c56608d572 14-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Get correct text metrics for distance fields, and fix dropouts due to thin 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
kDistanceFieldGen.cpp
5ed01d1f8fa3fa38105c252929f02dd7603271e3 14-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r13810 (Proposed SkCanvas API for preLoading textures to VRAM v2.0)



git-svn-id: http://skia.googlecode.com/svn/trunk@13811 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPicture.cpp
1ab85c8719ef46a8f2de9912b3f84f387bddf0d1 14-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Proposed SkCanvas API for preLoading textures to VRAM v2.0

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
kCanvas.cpp
kDevice.cpp
kPicture.cpp
118252962f89a80db661a0544f1bd61cbaab6321 14-Mar-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement support for expanding crop rects in image filters

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
kImageFilter.cpp
29089179a66c06ef70da387111af75970f04ed53 14-Mar-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Implement support for expanding crop rects in image filters"

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
kImageFilter.cpp
0ef0501baf615149d6d84398d7594cd89f6e928d 14-Mar-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement support for expanding crop rects in image filters

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
kImageFilter.cpp
4cb543d6057b692e1099e9f115155f0bf323a0c8 14-Mar-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement support for a Context parameter in image filters

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
kBitmapDevice.cpp
kCanvas.cpp
kDeviceImageFilterProxy.h
kImageFilter.cpp
0d30c51c6cf45b3a08a3000b6d348c16bdec7f05 14-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for null-device pixels in onWritePixels, so we don't crash

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
kBitmapDevice.cpp
bc3d92a7d84b56eb235d6c2d9b7de00625200713 14-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13800 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
44c48d062f7996b5b46917e1b312a32ad101f326 13-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> De-virtualize SkCanvas matrix ops.

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
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
0f10f7bf1fb43ca6346dc220a076773b1f19a367 13-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow toString capability to be toggled independent of developer mode.

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
kBitmap.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kMatrix.cpp
kPaint.cpp
kShader.cpp
kXfermode.cpp
kXfermode_proccoeff.h
98e22b84ca90c9cf1b8efb2318f5c146881926d4 13-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix distance field edge detection.

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
kDistanceFieldGen.cpp
1db03d2fad5d7b40b21a9d694cb1127e8de8bce0 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_COPYTO_CONFIG

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
kBitmap.cpp
e54a23fcfa42b2fc9d320650de72bcb2d9566b2d 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> De-virtualize SkCanvas save/restore.

This moves the state management logic into non-virtual SkCanvas methods,
and turns the virtuals into protected notifiers.

R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/194713008

git-svn-id: http://skia.googlecode.com/svn/trunk@13776 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
9c135db83d198e7d8200027c7d2cf60f38517ee3 12-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> support direct writing to top layer, and hide getTopLayer()

this should remove many of the chrome callers that today call
accessBitmap on the toplayer, so they can read/write those pixels.

The ultimate fix will be to support custom allocation of raster layers
(via GDI/cairo/mac) so we can remove PlatformDevice subclassing in
skia/ext

BUG=skia:
R=bsalomon@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/197433002

git-svn-id: http://skia.googlecode.com/svn/trunk@13774 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
c30dcb9b128887c7e16afe32fdf35105cc42380b 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add capture snapshot as data to SkWriter32, use it to optimise record->playback.
This is a new way of implementing https://codereview.chromium.org/155863005/
It uses copy on write semantics to return a buffer without copying it, so that record -> playback does not need to copy the buffer.

BUG=skia:2125
R=tomhudson@google.com, mtklein@google.com, reed@google.com, iancottrell@chromium.org

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/167113003

git-svn-id: http://skia.googlecode.com/svn/trunk@13769 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kWriter32.cpp
069a55a7fe2c3ae6f5049843b3fc1a167b51215c 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/196323003/)

Reason for revert:
Pulling out to rename the virtuals.

Original issue's description:
> Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/194923008/)
>
> Reason for revert:
> Re-landing after roll fix.
>
> Original issue's description:
> > Revert "De-virtualize SkCanvas save/restore."
> >
> > (To allow a roll fix into the tree).
> >
> > This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.
> >
> > R=halcanary@google.com
> >
> > Committed: https://code.google.com/p/skia/source/detail?r=13748
>
> TBR=halcanary@google.com,fmalita@chromium.org
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=13754

R=halcanary@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@google.com

Review URL: https://codereview.chromium.org/197553002

git-svn-id: http://skia.googlecode.com/svn/trunk@13765 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
9e5f85e89d03a850d435fc951e74e9861a0c1bdd 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing SkPicture serialization

Fixed a few issues while attempting to use the new
serialization path for SkPicture inside a fuzzer:
- SkReadBuffer and SkValidatingReadBuffer both had a fReader
member instead of sharing the same member, which leads to
problems if a base class function is used
- In SkPicture, a header is now written as a single chunk of
data, so it also has to be read as a single chunk of data
- In the SkPicturePlayback destructor, a bad deserialization
would lead to a crash if we don't safely unref fOpData
- Also in SkPicturePlayback, if we only use a ReadBuffer for
the whole deserialization, additional tags must be added to
parseBufferTag()
- SkValidatingReadBuffer::readBitmap() was broken, but this
path wasn't usen't since the only use case for
SkValidatingReadBuffer is currently image filters and
bitmaps are unflattened as part of the deserialization of
SkBitmapSource
- SkPictureImageFilter was not deserializable. Added it to
SkGlobalInitialization*
- Added a test that exercises the SkPicture serialization /
deserialization code

BUG=skia:
R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, robertphillips@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/195223003

git-svn-id: http://skia.googlecode.com/svn/trunk@13764 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
79fbb40bca9d815ef79b896b31ba6ee736817e0f 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [WIP] Add Context to SkDrawLooper.

SkDrawLooper carries some state during draws. This CL extracts this state into
a separate class Context, which is then passed by the users of SkDrawLooper
into the appropriate methods.
This is a step towards making SkDrawLooper immutable.

BUG=skia:2141
R=scroggo@google.com, reed@google.com, sugoi@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/155513012

git-svn-id: http://skia.googlecode.com/svn/trunk@13760 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDrawLooper.cpp
kSmallAllocator.h
2cccf833265a607be62f1d77ee51662b49d9e813 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> make onReadPixels protected and have default impl (so we can remove chrome override)

R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/196543004

git-svn-id: http://skia.googlecode.com/svn/trunk@13756 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
0b70816eb157ed6492623eea1e55005ef40c908c 12-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13755 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
4fcd92d0bf09dc9c28643e83b95b6cbf9f1ff2b2 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/194923008/)

Reason for revert:
Re-landing after roll fix.

Original issue's description:
> Revert "De-virtualize SkCanvas save/restore."
>
> (To allow a roll fix into the tree).
>
> This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.
>
> R=halcanary@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13748

R=halcanary@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@google.com

Review URL: https://codereview.chromium.org/196323003

git-svn-id: http://skia.googlecode.com/svn/trunk@13754 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
e63306df4de7b72b643c4072f259a4ea85c5d093 11-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Only set USE_ANDROID_NDK_CPU_FEATURES if it's not already been explicitly set

R=djsollen@google.com, reed@google.com
BUG=skia:

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/189263015

git-svn-id: http://skia.googlecode.com/svn/trunk@13750 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.cpp
f1292bc01fa3a2e398454b0cf03d36b23b6912f7 11-Mar-2014 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "De-virtualize SkCanvas save/restore."

(To allow a roll fix into the tree).

This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.

R=halcanary@google.com

Review URL: https://codereview.chromium.org/194923008

git-svn-id: http://skia.googlecode.com/svn/trunk@13748 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
80b10518a27a47b25a7dbf3591b425a741ebf406 11-Mar-2014 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> De-virtualize SkCanvas save/restore.

This moves the state management logic into non-virtual SkCanvas methods,
and turns the virtuals into protected notifiers.

R=robertphillips@google.com, reed@google.com

Review URL: https://codereview.chromium.org/194713008

git-svn-id: http://skia.googlecode.com/svn/trunk@13747 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
53ba425c91202ef4f78e45f71c330d847a1f8faa 11-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Drop executable flag from headers so that they can be packaged

https://codereview.chromium.org/194883004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13746 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.h
kTRefArray.h
b97c3ffddf15ac65a0aae6823eb408b3b2772751 11-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Enable use of distance fields via SkPaint flag.

Now that distance field generation is fast enough to make it practical, this makes distances field fonts easily available to anyone who wants to try them out (i.e Chromium).

BUG=skia:2173
R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/193163003

git-svn-id: http://skia.googlecode.com/svn/trunk@13741 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
8065ec50f1937c1562810bfe2b216abfb98362b3 11-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add new module for distance field generation.

This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173

Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13740 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
kDistanceFieldGen.h
821397018fdabea6b434ecb96f84fb5449c4025f 10-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> plumbing for GPU fast blur

BUG=skia:2281
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/193193002

git-svn-id: http://skia.googlecode.com/svn/trunk@13735 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
kRRect.cpp
b5f3b35645ce5335021ecb8c34b486a3db9554eb 10-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Add new module for distance field generation. (https://codereview.chromium.org/178543007/)

Reason for revert:
multiple compile errors

Original issue's description:
> Add new module for distance field generation.
>
> This improves the speed over the previous method by 10x+, and makes using distance fields practical.
>
> BUG=skia:2173
>
> Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com
TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2173

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/190753015

git-svn-id: http://skia.googlecode.com/svn/trunk@13732 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
kDistanceFieldGen.h
b93ba45b58ad24e0e2cb75b842e24ff711c368b0 10-Mar-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> flag to make kClipToLayer_SaveFlag the default behavior

#define SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG to get the old behavior

The goal is to remove the feature of saveLayer that allows the canvas to draw outside of the top-most layer.

R=robertphillips@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/190723004

git-svn-id: http://skia.googlecode.com/svn/trunk@13730 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
bf998240837d8798e0b257416ce8832250b64af6 10-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add new module for distance field generation.

This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173
R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13729 2bbb7eff-a529-9590-31e7-b0007b416f81
kDistanceFieldGen.cpp
kDistanceFieldGen.h
d7e0fbef5d6c7c63b312a5ea1955a9802ad4302f 10-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Pulling these out of other reviews so avoid code review clutter.

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/192783002

git-svn-id: http://skia.googlecode.com/svn/trunk@13724 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.h
kPictureFlat.h
kPicturePlayback.cpp
5c70cdca5efe541b70d010e91607bf8626ea49ca 08-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> hide getTotalClip, so we can eventually remove it
hide getClipType, so we can eventually remove it

patch from issue 189443007

TBR=robertphilips@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/189883010

git-svn-id: http://skia.googlecode.com/svn/trunk@13715 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e62513fb9274b65bcd9fecf61acc418dd3949df5 08-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13714 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
kOffsetTable.h
kPathHeap.cpp
kPathHeap.h
8c2ee5963505cdbe128f68d67f064a3901d22a3c 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Once Chromium starts holding on to paths and we can actually reuse cached path data (e.g., masks & geometry) we will need a way to preserve that reuse in the skps. This CL begins adding that capability. More analysis & profiling needs to be done before it is always enabled.

When enabled it does make the disabled path de-duping test in the Canvas unit test pass.

BUG=skia:507
R=bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/190923002

git-svn-id: http://skia.googlecode.com/svn/trunk@13709 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathHeap.cpp
kPathHeap.h
kPictureRecord.cpp
8016f79cfc6b4e9b34049ecbccdb65ee222d537a 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This is just the first version and shows how I intend to orchestrate this. Future enhancements will:

track the portion of the bitmap required
track any resizing that might be required
actually preload something

R=bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/187833003

git-svn-id: http://skia.googlecode.com/svn/trunk@13704 2bbb7eff-a529-9590-31e7-b0007b416f81
kOffsetTable.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
210a6aa8bd0c8031b2990caaa956b0ed5ce275ed 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> getFactory() must return a factory.

BUG=348821
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/190843002

git-svn-id: http://skia.googlecode.com/svn/trunk@13702 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriteBuffer.cpp
4cd9e2169e35cd67ee7358acea6541245e1d1744 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkCanvas::writePixels that takes info+pixels directly

add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals)

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/180113010

git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kConfig8888.h
kDevice.cpp
a5572e5bb2a2bbeeb59de0741c2527869d365a0c 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a class to allocate small objects w/o extra calls to new.

Add SkSmallAllocator, a template for allocating small (as defined by the
instantiation) objects without extra calls to new. Add a helper macro to
make using it simple.

Remove SkTemplatesPriv.h, whose behavior is replaced by SkSmallAllocator.
The old SK_PLACEMENT_NEW had the following drawbacks:
- Easily confused with SkNEW_PLACEMENT.
- Requires passing around lots of void*s along with the storageSize.
- Requires using a separate class for deleting it.
- We had multiple ways Auto objects for deleting in different places.
- It always did a straight heap allocation on Windows, meaning Windows
did not get any advantages from the confusing code.
The new SkSmallAllocator simplifies things:
- It is clear about what it does.
- It takes care of the deletion in one place that is automatically
handled.

Further, the new class can be used to create more than one object. This
is in preparation for BUG=skia:1976, for which we would like to create
a new object without extra heap allocations. The plan is to create both
the blitter and the new object on the stack using the SkSmallAllocator.

Add a new test for SkSmallAllocator.

SkShader.h:
Move the private version of CreateBitmapShader to SkBitmapProcShader
(which already has the implementation) and remove the friend class
(which was only used to call this private function). This allows
SkSmallAllocator to reside in the private src/ directory.

SkBitmapProcShader:
Move CreateBitmapShader and the macro for the storage size here. With
the macro in a (private) header, the (private) headers with function
declarations (which now depend on the storage size used) can see the
macro.
Use SkSmallAllocator in CreateBitmapShader.
Change the macro to kBlitterStorageByteCount, since SkSmallAllocator
takes a byte count as its template parameter.

SkBlitter:
Use the SkSmallAllocator.
Remove Sk3DShader::fKillProc and SkAutoCallProc. Both of their
behaviors have been moved into SkSmallAllocator (SkAutoCallProc was
unnecessary anyway, because the only time we ever used it we also
called detach(), so its auto behavior never happened).
Create the Sk3DShader on the stack, if there's room.
Remove the helper version of Choose, which was unused.

SmallAllocatorTest:
Test for the new class.

The rest:
Use SkSmallAllocator.

BUG=skia:1976
R=reed@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/179343005

git-svn-id: http://skia.googlecode.com/svn/trunk@13696 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kBlitter.h
kBlitter_RGB16.cpp
kBlitter_Sprite.cpp
kCoreBlitters.h
kDraw.cpp
kShader.cpp
kSmallAllocator.h
kSpriteBlitter.h
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kTemplatesPriv.h
06e975252112eb5ca62ebacd484118a640c19168 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add debug check of chunk size written to skp

R=mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/182153003

git-svn-id: http://skia.googlecode.com/svn/trunk@13692 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
e597e7b5c82a73643e5bce4d51373c8cc32b820c 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove MCRec.fNext

No longer used.

R=reed@google.com, mtklein@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/186973004

git-svn-id: http://skia.googlecode.com/svn/trunk@13690 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
0438645c72879d9b3441c8ce7eae0150e87f7393 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Actually, we wrote only size bytes.

BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/188343004

git-svn-id: http://skia.googlecode.com/svn/trunk@13688 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
d10913b8a9c2a3bebd76f30aac5a228079455315 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid recomputing two consecutive identical 1D filters.

If the arguments to the X and Y filter computation are identical,
the results will be identical; copying is much faster than recomputing.

With a change like https://codereview.chromium.org/183763047/ applied
this speeds up BitmapScaleBench on Linux by around 10%.

BUG=skia:2236
R=humper@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/188743002

git-svn-id: http://skia.googlecode.com/svn/trunk@13687 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapScaler.cpp
490fb6b4713463954cc0283a9c30e754c45c6004 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add size_t bytesWritten() const to SkWStream.

BUG=skia:
R=reed@google.com, mtklein@google.com, robertphillips@google.com, bungeman@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/187653003

git-svn-id: http://skia.googlecode.com/svn/trunk@13684 2bbb7eff-a529-9590-31e7-b0007b416f81
kDebug.cpp
kStream.cpp
d7a9fcc61f2c513064f67b125c0b2eb918768bb7 06-Mar-2014 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Manually set fFilterValues in SkConvolutionFilter1D

Revert of https://codereview.chromium.org/184323003

Reason for revert:
Caused unexpected CompareGM failures-
http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86_64-Debug/builds/461/steps/CompareGMs/logs/stdio
http://108.170.217.252:10117/builders/Test-Win7-ShuttleA-HD2000-x86_64-Release/builds/2062/steps/CompareGMs/logs/stdio
http://108.170.217.252:10117/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/1400/steps/CompareGMs/logs/stdio

TBR=
NOTREECHECKS=True
NOTRY=True



git-svn-id: http://skia.googlecode.com/svn/trunk@13683 2bbb7eff-a529-9590-31e7-b0007b416f81
kConvolver.cpp
5b70e7e2df94410e7e3ceeb6e54f4ebe72b87b7d 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Manually set fFilterValues in SkConvolutionFilter1D.

Using fFilterValues.reset() or a loop of fFilterValues.push_back() is about 5x slower than calling fFilterValues.resize_back() and then looping using primitive [] and =.

This is only going to show up if you apply https://codereview.chromium.org/183763047/, where it yields about 2.5% speedup in the bitmap resize microbenchmarks on a Linux desktop. Ceteris paribus, it should actually improve rasterization time of drawBitmapRectToRect() with a resize by about 5% in Chromium.


BUG=skia:2258
R=humper@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/184323003

git-svn-id: http://skia.googlecode.com/svn/trunk@13681 2bbb7eff-a529-9590-31e7-b0007b416f81
kConvolver.cpp
759cf4846804be137229393e04925752423de2d0 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Now that the matching changes have landed in Chromium we can clean up the API on our side.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/187553003

git-svn-id: http://skia.googlecode.com/svn/trunk@13680 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
dcb8e54ffdc9194744c0ec839969102bd0f582c6 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL is motivated by the desire to make the skpinfo tool work a bit better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes.

R=bungeman@gmail.com, bungeman@google.com, reed@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/182733008

git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kStream.cpp
8d79f963b6431ee3759465eb2a6ea8d0c2ad2652 05-Mar-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Prevent SkBlockMemoryStream::skip from writing to low memory.

SkBlockMemoryStream::read was modeled on SkDynamicMemoryWStream::read.
However, SkDynamicMemoryWStream::read does not allow passing a NULL buffer
and SkBlockMemoryStream::read must correctly handle this case for skips.
In the current code, if a 'skip' crosses a block boundary, 'read' may
attempt to write to low memory.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/187683003

git-svn-id: http://skia.googlecode.com/svn/trunk@13671 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
eef834f2be2f8f97410fd1d897e9bb11597c6a40 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> DM: read image files without an extra copy

BUG=skia:
R=halcanary@google.com, reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185263012

git-svn-id: http://skia.googlecode.com/svn/trunk@13669 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
5e4112b33aeecbb773ed4c8e33994dec14becb84 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace scaled bitmap if entry already exist in cache.

BUG=skia:2251
R=reed@google.com

Author: reveman@chromium.org

Review URL: https://codereview.chromium.org/185263009

git-svn-id: http://skia.googlecode.com/svn/trunk@13667 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
fab349c0bf3a305b7a7388b77bab13b0f7b37393 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_DEEPCOPYTO_CONFIG code -- no longer used

R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/183763035

git-svn-id: http://skia.googlecode.com/svn/trunk@13664 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
1f6cf695b30d2a7a4e7f046f04868a6e430b05b0 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Counterproposal to 182733007: Add iterator to SkTDynamicHash

BUG=skia:
R=egdaniel@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/177263005

git-svn-id: http://skia.googlecode.com/svn/trunk@13663 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
e494dbdec36f0ffa4affeac1c3f405b58ac41220 04-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> The motivation for this CL is to de-clutter SkPicture's beginRecording method.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/186813003

git-svn-id: http://skia.googlecode.com/svn/trunk@13658 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
6aa6fec0e332c9246958245bad5fc881fefee68f 03-Mar-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup patch to move all of SkImageFilterUtils into SkImageFilter.

This was a utility class that dates from before GPU code was allowed
in core. Now that it is, there's no reason not to have this
functionality in SkImageFilter.

Covered by existing tests.

R=reed@google.com

Review URL: https://codereview.chromium.org/185973003

git-svn-id: http://skia.googlecode.com/svn/trunk@13646 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kImageFilterUtils.cpp
6f4fb0f1296422a44d5d0dac155d82595dc5ebec 03-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out.

Please see skbug:1057

rmistry for tools, gyp
mtklein for src\core & include\core

BUG=skia:1057
R=rmistry@google.com, mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/176863004

git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
0bc406df48ac6f358ab8dcff08f71fe9c32b79de 01-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding code to calculate Underline Thickness from Font Metrics, this will be useful when Skia is used with Blink/Chrome. Blink changes are uploaded with code change in patch https://codereview.chromium.org/147703002/

BUG=skia:
R=reed@android.com, edisonn@google.com, reed@google.com, mtklein@google.com, mtklein@chromium.org, bungeman@google.com

Author: h.joshi@samsung.com

Review URL: https://codereview.chromium.org/152073003

git-svn-id: http://skia.googlecode.com/svn/trunk@13635 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
370a89980b2d38a6d01903b484bf404d6c48b496 01-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
8f90a892c5130d4d26b5588e1ff151d01a40688a 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add new onClip* methods to SkCanvas

https://codereview.chromium.org/183453002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13627 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
03fc3b4f67a115e4a7945d173856a6c80b09311e 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13620 (add new onClip* methods to SkCanvas - https://codereview.chromium.org/183453002/) due to broken Chrome Canary and failing tests.




git-svn-id: http://skia.googlecode.com/svn/trunk@13622 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
392c9be344549e809d0468abafdbeb6e32135bcd 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add new onClip* methods to SkCanvas

https://codereview.chromium.org/183453002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13620 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kCanvas.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
3107b6a85eee7914b37382f7145ab658e8c27667 27-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas::NewRaster factory -- a very common use-case in chrome

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/183533004

git-svn-id: http://skia.googlecode.com/svn/trunk@13617 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
210ae2a42613b9048e8e8c4096c5bf4fe2ddf838 27-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Culling API

*** SKP format breaking change ***

Adding a couple of culling primitives: pushCull(SkRect) & popCull().

These are currently only plumbed for SKP playback quickreject.

At record time, we perform a couple of optimizations to trim down the
number of redundant culls:

* collapse empty pushCull/popCull pairs
* skip pushCull/popCull pairs nested within an identical cull rect

Things still missing/to consider:

* use an inlineable, simplified quickreject (Mike's old prototype)
* debugger visualization for cull boxes
* BBH integration: the initial prototype had some minimal BBH support,
but since the optimizations required expensive rewinds and culling
is expected to be a BBH alternative, it got dropped.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com, caryclark@google.com, tomhudson@google.com, iancottrell@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/138013009

git-svn-id: http://skia.googlecode.com/svn/trunk@13611 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
6f954b956fc5c36ebbcac404d93ba9349fb0355f 27-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkTLazy to hold path in SkClipStack::Element

R=reed@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/178583002

git-svn-id: http://skia.googlecode.com/svn/trunk@13610 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
d957984c1efbd18f3b2bbeca78d282837c5a2ae1 27-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Factory methods for heap-allocated SkAnnotation objects.

This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkAnnotation non-public and instead
provides factory methods for creating these objects on the heap.

BUG=skia:2187
R=reed@google.com, mtklein@google.com, scroggo@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/181703003

git-svn-id: http://skia.googlecode.com/svn/trunk@13605 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kPaint.cpp
5007aab81ad1394f4ab7833ea230f6462aa07e69 26-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream changes from Android

R=scroggo@google.com, reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/176963003

git-svn-id: http://skia.googlecode.com/svn/trunk@13600 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
4ebe3821888d550d8a8b89341ec251ba942f0225 26-Feb-2014 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)"

This reverts commit efded03a38d6147caaf2d951638d27fdd47eed64.

Fixes builds

Review URL: https://codereview.chromium.org/181903002

git-svn-id: http://skia.googlecode.com/svn/trunk@13599 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kTLList.h
1caedbb216703df58ce5ebe29955e53fa098d8dc 26-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)

Reason for revert:
breaking a bunch of builds

Original issue's description:
> Add getReducedClipStack to lua canvas
>
> Committed: http://code.google.com/p/skia/source/detail?r=13594

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/181653004

git-svn-id: http://skia.googlecode.com/svn/trunk@13597 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kTLList.h
a47ac2bcc228981bd9f04508ad0894b61704800e 26-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getReducedClipStack to lua canvas

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/180283004

git-svn-id: http://skia.googlecode.com/svn/trunk@13594 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kTLList.h
e8d9614cd187c7a2aa474f9ca7aac208ded71400 25-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This is intended to make it easier for us to be backwards compatible.

R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/178383003

git-svn-id: http://skia.googlecode.com/svn/trunk@13575 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
754de5f65b466f721d952a379194cc94de376f42 24-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add isClipEmpty() -- encourage clients to call this rather than checking clipFoo() results

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/177073006

git-svn-id: http://skia.googlecode.com/svn/trunk@13568 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
6c5f1fd66ca195daf04795907d04e1b0cbd3ecb6 24-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> I believe this makes it clearer what is going on; namely:
saveLayers cause their enclosing MC state to become a prefix for their child canvas calls. In such cases we don't want to inadvertently close the nesting MC state but when we do (i.e., when the saveLayer's restore is seen) we want to also restore the nesting MC state to be the current one.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/176413002

git-svn-id: http://skia.googlecode.com/svn/trunk@13564 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
e74e08c1d0e9a691b66347f3c71a416bc3601029 24-Feb-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix compile errors in legacy copyTo().

R=reed@google.com, reed

Review URL: https://codereview.chromium.org/178003002

git-svn-id: http://skia.googlecode.com/svn/trunk@13562 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
89f077ced4918ded7e911bc5052b61c90ad57a9a 24-Feb-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix saveLayer() clipping w/filters, GPU path.

Don't modify the clipstack in saveLayer() if the kClipToLayer_SaveFlag is
not set. Without this the GPU path will clip the offscreen to the layer's
bounds, even if the flag is not set.

R=robertphillips@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/164203002

git-svn-id: http://skia.googlecode.com/svn/trunk@13561 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
8a2ad3cae710f05cca57e48dd1732d575dba2dc7 23-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add new copyTo version to SkBitmap, which takes SkColorType

BUG=skia:
R=scroggo@google.com, halcanary@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/171723007

git-svn-id: http://skia.googlecode.com/svn/trunk@13553 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
7911ade991336adab70a99f50fbe9dc5ef79d0a0 22-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13551 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
032a52fd4ceda001e44b80ff0462b570817bfe6f 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkRRect to store rects in SkClipStack::Element


BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/163483003

git-svn-id: http://skia.googlecode.com/svn/trunk@13544 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
def6468dd2daed36eced69098445aa99c90487d6 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Stub for conic section max curvature

BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/175193003

git-svn-id: http://skia.googlecode.com/svn/trunk@13542 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
aca1c01f3b39a8159a0ca10ba740d9995027317b 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Merge tomhudson and mtklein SkPaint shrinking approaches.

I think this is cherry picking the best parts of both our CLs. We've got dirty bit tracking from Tom's, picture format stability from Mike's, etc. Paints are typically 1/3 their original size when flattened in the dictionary.

bench_record on my desktop looks promising. Generally, looks faster. (Best in monospace.)
a/b skp before after
0.83 desk_techcrunch.skp 0.29 0.24
0.83 tabl_gamedeksiam.skp 0.52 0.43
0.87 desk_carsvg.skp 0.4 0.35
0.87 desk_googlehome.skp 0.038 0.033
0.87 desk_pokemonwiki.skp 3.9 3.4
0.88 desk_fontwipe.skp 0.0089 0.0078
0.88 desk_googlespreadsheet.skp 0.16 0.14
0.89 desk_jsfiddlebigcar.skp 0.027 0.024
0.89 desk_tigersvg.skp 0.038 0.034
0.89 desk_weather.skp 0.19 0.17
0.89 tabl_engadget.skp 0.37 0.33
0.89 tabl_googleblog.skp 0.28 0.25
0.9 desk_facebook.skp 0.2 0.18
0.91 desk_mapsvg.skp 0.45 0.41
0.91 desk_youtube.skp 0.22 0.2
0.92 desk_forecastio.skp 0.12 0.11
0.92 desk_googlespreadsheetdashed.skp 0.49 0.45
0.92 desk_gws.skp 0.13 0.12
0.92 desk_pinterest.skp 0.037 0.034
0.92 desk_twitter.skp 0.25 0.23
0.92 tabl_culturalsolutions.skp 0.26 0.24
0.92 tabl_gspro.skp 0.072 0.066
0.92 tabl_mercurynews.skp 0.26 0.24
0.93 desk_booking.skp 0.46 0.43
0.93 desk_chalkboard.skp 0.28 0.26
0.93 desk_linkedin.skp 0.14 0.13
0.93 desk_mobilenews.skp 0.28 0.26
0.93 tabl_cuteoverload.skp 0.46 0.43
0.93 tabl_deviantart.skp 0.15 0.14
0.93 tabl_gmail.skp 0.029 0.027
0.93 tabl_googlecalendar.skp 0.15 0.14
0.93 tabl_mlb.skp 0.15 0.14
0.94 desk_blogger.skp 0.18 0.17
0.94 desk_jsfiddlehumperclip.skp 0.034 0.032
0.94 desk_wordpress.skp 0.33 0.31
0.94 desk_wowwiki.skp 0.94 0.88
0.94 desk_yahooanswers.skp 0.17 0.16
0.94 desk_youtubetvvideo.skp 0.017 0.016
0.94 tabl_sahadan.skp 0.093 0.087
0.94 tabl_worldjournal.skp 0.35 0.33
0.95 desk_css3gradients.skp 0.21 0.2
0.95 desk_gmailthread.skp 0.19 0.18
0.95 tabl_cnet.skp 0.42 0.4
0.95 tabl_mozilla.skp 1.9 1.8
0.95 tabl_pravda.skp 0.19 0.18
0.96 mobi_wikipedia.skp 0.55 0.53
0.96 tabl_cnn.skp 0.48 0.46
0.96 tabl_nofolo.skp 0.05 0.048
0.97 desk_googleplus.skp 0.29 0.28
0.97 tabl_frantzen.skp 0.059 0.057
0.97 tabl_onlinewsj.skp 0.38 0.37
0.97 tabl_slashdot.skp 0.1 0.097
0.97 tabl_vnexpress.skp 0.29 0.28
0.99 desk_amazon.skp 0.088 0.087
1 desk_baidu.skp 0.097 0.099
1 desk_ebay.skp 0.18 0.18
1 desk_espn.skp 0.24 0.24
1 desk_oldinboxapp.skp 0.026 0.026
1 desk_rectangletransition.skp 0.014 0.014
1 desk_samoasvg.skp 0.23 0.24
1 desk_yahoogames.skp 0.029 0.029
1 desk_yahoosports.skp 0.0033 0.0033
1 desk_youtubetvbrowse.skp 0.01 0.01
1 tabl_androidpolice.skp 0.65 0.65
1 tabl_digg.skp 0.33 0.33
1 tabl_hsfi.skp 0.32 0.32
1 tabl_nytimes.skp 0.22 0.22
1 tabl_techmeme.skp 0.069 0.072
1 tabl_ukwsj.skp 0.35 0.35
1.1 desk_sfgate.skp 0.25 0.28


BUG=skia:2190,skia:2194

Committed: http://code.google.com/p/skia/source/detail?r=13487

Committed: http://code.google.com/p/skia/source/detail?r=13496

R=tomhudson@google.com, reed@google.com, mtklein@google.com, robertphillips@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/158913005

git-svn-id: http://skia.googlecode.com/svn/trunk@13536 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
fc4ded9f4aeeefbbd0c22d665589ea017f7a9aed 21-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix saveLayer bugs in SkMatrixClipStateMgr

https://codereview.chromium.org/169283011/



git-svn-id: http://skia.googlecode.com/svn/trunk@13533 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
b39d5617f60e8c26f76011cfcd984d7ad42d9fa9 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> update for coding style, remove explicit floats

BUG=skia:
R=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/174683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13528 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
0b45dc45d67144421904555ccf53782cc8d9969d 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix the visual difference of raster vs gpu -- inverse_paths

If a path has no verbs, it is empty. If a path has verbs, but both the width and height of the bounds are zero. the path is empty too. This situation happens when you add an empty rect or circle... , say a rect{x, y, width, height} = {100, 100, 0, 0}, to a path.

For 8888 config, drawPath() checked the bounds.
For gpu config, it doesn't.

BUG=skia:2176
R=reed@google.com, bsalomon@google.com, schenney@chromium.org

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/166023002

git-svn-id: http://skia.googlecode.com/svn/trunk@13526 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
25c7127c904aa6e03209220e8ecb7128d3595f11 21-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13525 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
ed9806f5c972513d4141c9d1b5a04ab78b3af4cb 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas::drawDRRect

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/174243003

git-svn-id: http://skia.googlecode.com/svn/trunk@13524 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
900ecf2f1579d42c9d2959831787af0346320f86 20-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use colortype instead of config

patch from issue 172063004

BUG=skia:
R=scroggo@google.com

Review URL: https://codereview.chromium.org/173893002

git-svn-id: http://skia.googlecode.com/svn/trunk@13520 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapProcShader.cpp
kBitmapScaler.cpp
kBitmap_scroll.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kScaledImageCache.cpp
kScalerContext.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
0a2bf90dccba3bde188e0386a7f0c60e6dde1ae9 20-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Factory methods for heap-allocated SkPathEffect and SkXfermode objects.

This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkPathEffect, SkXfermode and
their subclasses non-public and instead provides factory methods for
creating these objects on the heap. We temporarily keep the constructors
of the following classes public to not break Chrome/Blink:

SkXfermode
SkCornerPathEffect
SkDashPathEffect

BUG=skia:2187
R=scroggo@google.com, reed@google.com, mtklein@google.com, bungeman@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/166583002

git-svn-id: http://skia.googlecode.com/svn/trunk@13519 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
6285f4f7662853336b788d6ee3e177c396f7fb01 20-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Offer single-param version of deepCopyTo -- much easier to migrate to colortypes

BUG=skia:
R=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/167683006

git-svn-id: http://skia.googlecode.com/svn/trunk@13516 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapHeap.cpp
ac5004682fde163b09e5ee394cec1732c4d94541 20-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r13496 (Merge tomhudson and mtklein SkPaint shrinking approaches) due to memory leaks



git-svn-id: http://skia.googlecode.com/svn/trunk@13509 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
c05d2859e10f4e1fb0c6486eebfbe88801202648 20-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13508 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
cbad22b0de917d307ffbb0f82240d75157d86117 19-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert to previous behavior in installPixels, allowing for NULL address

BUG=skia:

Review URL: https://codereview.chromium.org/172603002

git-svn-id: http://skia.googlecode.com/svn/trunk@13501 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
92da60cd6339de32b2d8b19420f511208adf4187 19-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL improves saveLayer handling in the SkMatrixClipStateMgr by:

1) no longer storing the clip skip offsets in the stack (since saveLayers can force multiple clip states to be open at one time)

2) writing out only the clips that are relative to the saveLayer's clip state

3) updates the testing harness to accept a save/restore bracketing a saveLayer/restore (since clips have to be applied to the saveLayer's result upon restore)

R=bsalomon@google.com, epoger@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/164823003

git-svn-id: http://skia.googlecode.com/svn/trunk@13497 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureRecord.cpp
cf52f5b7267a1f463d39d58cb6577030acca80df 19-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Merge tomhudson and mtklein SkPaint shrinking approaches.

I think this is cherry picking the best parts of both our CLs. We've got dirty bit tracking from Tom's, picture format stability from Mike's, etc. Paints are typically 1/3 their original size when flattened in the dictionary.

bench_record on my desktop looks promising. Generally, looks faster. (Best in monospace.)
a/b skp before after
0.83 desk_techcrunch.skp 0.29 0.24
0.83 tabl_gamedeksiam.skp 0.52 0.43
0.87 desk_carsvg.skp 0.4 0.35
0.87 desk_googlehome.skp 0.038 0.033
0.87 desk_pokemonwiki.skp 3.9 3.4
0.88 desk_fontwipe.skp 0.0089 0.0078
0.88 desk_googlespreadsheet.skp 0.16 0.14
0.89 desk_jsfiddlebigcar.skp 0.027 0.024
0.89 desk_tigersvg.skp 0.038 0.034
0.89 desk_weather.skp 0.19 0.17
0.89 tabl_engadget.skp 0.37 0.33
0.89 tabl_googleblog.skp 0.28 0.25
0.9 desk_facebook.skp 0.2 0.18
0.91 desk_mapsvg.skp 0.45 0.41
0.91 desk_youtube.skp 0.22 0.2
0.92 desk_forecastio.skp 0.12 0.11
0.92 desk_googlespreadsheetdashed.skp 0.49 0.45
0.92 desk_gws.skp 0.13 0.12
0.92 desk_pinterest.skp 0.037 0.034
0.92 desk_twitter.skp 0.25 0.23
0.92 tabl_culturalsolutions.skp 0.26 0.24
0.92 tabl_gspro.skp 0.072 0.066
0.92 tabl_mercurynews.skp 0.26 0.24
0.93 desk_booking.skp 0.46 0.43
0.93 desk_chalkboard.skp 0.28 0.26
0.93 desk_linkedin.skp 0.14 0.13
0.93 desk_mobilenews.skp 0.28 0.26
0.93 tabl_cuteoverload.skp 0.46 0.43
0.93 tabl_deviantart.skp 0.15 0.14
0.93 tabl_gmail.skp 0.029 0.027
0.93 tabl_googlecalendar.skp 0.15 0.14
0.93 tabl_mlb.skp 0.15 0.14
0.94 desk_blogger.skp 0.18 0.17
0.94 desk_jsfiddlehumperclip.skp 0.034 0.032
0.94 desk_wordpress.skp 0.33 0.31
0.94 desk_wowwiki.skp 0.94 0.88
0.94 desk_yahooanswers.skp 0.17 0.16
0.94 desk_youtubetvvideo.skp 0.017 0.016
0.94 tabl_sahadan.skp 0.093 0.087
0.94 tabl_worldjournal.skp 0.35 0.33
0.95 desk_css3gradients.skp 0.21 0.2
0.95 desk_gmailthread.skp 0.19 0.18
0.95 tabl_cnet.skp 0.42 0.4
0.95 tabl_mozilla.skp 1.9 1.8
0.95 tabl_pravda.skp 0.19 0.18
0.96 mobi_wikipedia.skp 0.55 0.53
0.96 tabl_cnn.skp 0.48 0.46
0.96 tabl_nofolo.skp 0.05 0.048
0.97 desk_googleplus.skp 0.29 0.28
0.97 tabl_frantzen.skp 0.059 0.057
0.97 tabl_onlinewsj.skp 0.38 0.37
0.97 tabl_slashdot.skp 0.1 0.097
0.97 tabl_vnexpress.skp 0.29 0.28
0.99 desk_amazon.skp 0.088 0.087
1 desk_baidu.skp 0.097 0.099
1 desk_ebay.skp 0.18 0.18
1 desk_espn.skp 0.24 0.24
1 desk_oldinboxapp.skp 0.026 0.026
1 desk_rectangletransition.skp 0.014 0.014
1 desk_samoasvg.skp 0.23 0.24
1 desk_yahoogames.skp 0.029 0.029
1 desk_yahoosports.skp 0.0033 0.0033
1 desk_youtubetvbrowse.skp 0.01 0.01
1 tabl_androidpolice.skp 0.65 0.65
1 tabl_digg.skp 0.33 0.33
1 tabl_hsfi.skp 0.32 0.32
1 tabl_nytimes.skp 0.22 0.22
1 tabl_techmeme.skp 0.069 0.072
1 tabl_ukwsj.skp 0.35 0.35
1.1 desk_sfgate.skp 0.25 0.28


BUG=skia:2190

Committed: http://code.google.com/p/skia/source/detail?r=13487

R=tomhudson@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/158913005

git-svn-id: http://skia.googlecode.com/svn/trunk@13496 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
725cd8218c2f32afecfde9c1c6940ca2d045b3c5 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> installPixels returns true if null-pixels -- devolving to setConfig

fixes assumptions in chrome's ui_unittests: RenderTextTest.SelectionKeepsLigatures

R=robertphillips@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/170713006

git-svn-id: http://skia.googlecode.com/svn/trunk@13492 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
ead1efb6ba14ecf9c1ef96814b1a5311dc4cc8fb 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Merge tomhudson and mtklein SkPaint shrinking approaches. (https://codereview.chromium.org/158913005/)

Reason for revert:
Breaking the build - see https://code.google.com/p/skia/issues/detail?id=2190

Original issue's description:
> Merge tomhudson and mtklein SkPaint shrinking approaches.
>
> I think this is cherry picking the best parts of both our CLs. We've got dirty bit tracking from Tom's, picture format stability from Mike's, etc. Paints are typically 1/3 their original size when flattened in the dictionary.
>
> bench_record on my desktop looks promising. Generally, looks faster. (Best in monospace.)
> a/b skp before after
> 0.83 desk_techcrunch.skp 0.29 0.24
> 0.83 tabl_gamedeksiam.skp 0.52 0.43
> 0.87 desk_carsvg.skp 0.4 0.35
> 0.87 desk_googlehome.skp 0.038 0.033
> 0.87 desk_pokemonwiki.skp 3.9 3.4
> 0.88 desk_fontwipe.skp 0.0089 0.0078
> 0.88 desk_googlespreadsheet.skp 0.16 0.14
> 0.89 desk_jsfiddlebigcar.skp 0.027 0.024
> 0.89 desk_tigersvg.skp 0.038 0.034
> 0.89 desk_weather.skp 0.19 0.17
> 0.89 tabl_engadget.skp 0.37 0.33
> 0.89 tabl_googleblog.skp 0.28 0.25
> 0.9 desk_facebook.skp 0.2 0.18
> 0.91 desk_mapsvg.skp 0.45 0.41
> 0.91 desk_youtube.skp 0.22 0.2
> 0.92 desk_forecastio.skp 0.12 0.11
> 0.92 desk_googlespreadsheetdashed.skp 0.49 0.45
> 0.92 desk_gws.skp 0.13 0.12
> 0.92 desk_pinterest.skp 0.037 0.034
> 0.92 desk_twitter.skp 0.25 0.23
> 0.92 tabl_culturalsolutions.skp 0.26 0.24
> 0.92 tabl_gspro.skp 0.072 0.066
> 0.92 tabl_mercurynews.skp 0.26 0.24
> 0.93 desk_booking.skp 0.46 0.43
> 0.93 desk_chalkboard.skp 0.28 0.26
> 0.93 desk_linkedin.skp 0.14 0.13
> 0.93 desk_mobilenews.skp 0.28 0.26
> 0.93 tabl_cuteoverload.skp 0.46 0.43
> 0.93 tabl_deviantart.skp 0.15 0.14
> 0.93 tabl_gmail.skp 0.029 0.027
> 0.93 tabl_googlecalendar.skp 0.15 0.14
> 0.93 tabl_mlb.skp 0.15 0.14
> 0.94 desk_blogger.skp 0.18 0.17
> 0.94 desk_jsfiddlehumperclip.skp 0.034 0.032
> 0.94 desk_wordpress.skp 0.33 0.31
> 0.94 desk_wowwiki.skp 0.94 0.88
> 0.94 desk_yahooanswers.skp 0.17 0.16
> 0.94 desk_youtubetvvideo.skp 0.017 0.016
> 0.94 tabl_sahadan.skp 0.093 0.087
> 0.94 tabl_worldjournal.skp 0.35 0.33
> 0.95 desk_css3gradients.skp 0.21 0.2
> 0.95 desk_gmailthread.skp 0.19 0.18
> 0.95 tabl_cnet.skp 0.42 0.4
> 0.95 tabl_mozilla.skp 1.9 1.8
> 0.95 tabl_pravda.skp 0.19 0.18
> 0.96 mobi_wikipedia.skp 0.55 0.53
> 0.96 tabl_cnn.skp 0.48 0.46
> 0.96 tabl_nofolo.skp 0.05 0.048
> 0.97 desk_googleplus.skp 0.29 0.28
> 0.97 tabl_frantzen.skp 0.059 0.057
> 0.97 tabl_onlinewsj.skp 0.38 0.37
> 0.97 tabl_slashdot.skp 0.1 0.097
> 0.97 tabl_vnexpress.skp 0.29 0.28
> 0.99 desk_amazon.skp 0.088 0.087
> 1 desk_baidu.skp 0.097 0.099
> 1 desk_ebay.skp 0.18 0.18
> 1 desk_espn.skp 0.24 0.24
> 1 desk_oldinboxapp.skp 0.026 0.026
> 1 desk_rectangletransition.skp 0.014 0.014
> 1 desk_samoasvg.skp 0.23 0.24
> 1 desk_yahoogames.skp 0.029 0.029
> 1 desk_yahoosports.skp 0.0033 0.0033
> 1 desk_youtubetvbrowse.skp 0.01 0.01
> 1 tabl_androidpolice.skp 0.65 0.65
> 1 tabl_digg.skp 0.33 0.33
> 1 tabl_hsfi.skp 0.32 0.32
> 1 tabl_nytimes.skp 0.22 0.22
> 1 tabl_techmeme.skp 0.069 0.072
> 1 tabl_ukwsj.skp 0.35 0.35
> 1.1 desk_sfgate.skp 0.25 0.28
>
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13487

R=tomhudson@google.com, reed@google.com, mtklein@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, mtklein@google.com, reed@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/169183003

git-svn-id: http://skia.googlecode.com/svn/trunk@13491 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
1cb6d1a1fd11b23aca42dcb8453e6816836b7b6f 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert changes which were breaking the build.

Revert "Improve saveLayer handling in SkMatrixClipStateMgr"

This reverts commit f7d08ed626a4825317405c3708cf2896509209d6.

Revert "Compile fix for r13488 (Improve saveLayer handling in SkMatrixClipStateMgr)"

This reverts commit a48822f3ebe86056afc76c96da73c950c80c686a.

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=True

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/170973002

git-svn-id: http://skia.googlecode.com/svn/trunk@13490 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureRecord.cpp
a48822f3ebe86056afc76c96da73c950c80c686a 18-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Compile fix for r13488 (Improve saveLayer handling in SkMatrixClipStateMgr)



git-svn-id: http://skia.googlecode.com/svn/trunk@13489 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
f7d08ed626a4825317405c3708cf2896509209d6 18-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve saveLayer handling in SkMatrixClipStateMgr

https://codereview.chromium.org/164823003/



git-svn-id: http://skia.googlecode.com/svn/trunk@13488 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureRecord.cpp
d01754255188acd45e119882d32ba50e5439c560 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Merge tomhudson and mtklein SkPaint shrinking approaches.

I think this is cherry picking the best parts of both our CLs. We've got dirty bit tracking from Tom's, picture format stability from Mike's, etc. Paints are typically 1/3 their original size when flattened in the dictionary.

bench_record on my desktop looks promising. Generally, looks faster. (Best in monospace.)
a/b skp before after
0.83 desk_techcrunch.skp 0.29 0.24
0.83 tabl_gamedeksiam.skp 0.52 0.43
0.87 desk_carsvg.skp 0.4 0.35
0.87 desk_googlehome.skp 0.038 0.033
0.87 desk_pokemonwiki.skp 3.9 3.4
0.88 desk_fontwipe.skp 0.0089 0.0078
0.88 desk_googlespreadsheet.skp 0.16 0.14
0.89 desk_jsfiddlebigcar.skp 0.027 0.024
0.89 desk_tigersvg.skp 0.038 0.034
0.89 desk_weather.skp 0.19 0.17
0.89 tabl_engadget.skp 0.37 0.33
0.89 tabl_googleblog.skp 0.28 0.25
0.9 desk_facebook.skp 0.2 0.18
0.91 desk_mapsvg.skp 0.45 0.41
0.91 desk_youtube.skp 0.22 0.2
0.92 desk_forecastio.skp 0.12 0.11
0.92 desk_googlespreadsheetdashed.skp 0.49 0.45
0.92 desk_gws.skp 0.13 0.12
0.92 desk_pinterest.skp 0.037 0.034
0.92 desk_twitter.skp 0.25 0.23
0.92 tabl_culturalsolutions.skp 0.26 0.24
0.92 tabl_gspro.skp 0.072 0.066
0.92 tabl_mercurynews.skp 0.26 0.24
0.93 desk_booking.skp 0.46 0.43
0.93 desk_chalkboard.skp 0.28 0.26
0.93 desk_linkedin.skp 0.14 0.13
0.93 desk_mobilenews.skp 0.28 0.26
0.93 tabl_cuteoverload.skp 0.46 0.43
0.93 tabl_deviantart.skp 0.15 0.14
0.93 tabl_gmail.skp 0.029 0.027
0.93 tabl_googlecalendar.skp 0.15 0.14
0.93 tabl_mlb.skp 0.15 0.14
0.94 desk_blogger.skp 0.18 0.17
0.94 desk_jsfiddlehumperclip.skp 0.034 0.032
0.94 desk_wordpress.skp 0.33 0.31
0.94 desk_wowwiki.skp 0.94 0.88
0.94 desk_yahooanswers.skp 0.17 0.16
0.94 desk_youtubetvvideo.skp 0.017 0.016
0.94 tabl_sahadan.skp 0.093 0.087
0.94 tabl_worldjournal.skp 0.35 0.33
0.95 desk_css3gradients.skp 0.21 0.2
0.95 desk_gmailthread.skp 0.19 0.18
0.95 tabl_cnet.skp 0.42 0.4
0.95 tabl_mozilla.skp 1.9 1.8
0.95 tabl_pravda.skp 0.19 0.18
0.96 mobi_wikipedia.skp 0.55 0.53
0.96 tabl_cnn.skp 0.48 0.46
0.96 tabl_nofolo.skp 0.05 0.048
0.97 desk_googleplus.skp 0.29 0.28
0.97 tabl_frantzen.skp 0.059 0.057
0.97 tabl_onlinewsj.skp 0.38 0.37
0.97 tabl_slashdot.skp 0.1 0.097
0.97 tabl_vnexpress.skp 0.29 0.28
0.99 desk_amazon.skp 0.088 0.087
1 desk_baidu.skp 0.097 0.099
1 desk_ebay.skp 0.18 0.18
1 desk_espn.skp 0.24 0.24
1 desk_oldinboxapp.skp 0.026 0.026
1 desk_rectangletransition.skp 0.014 0.014
1 desk_samoasvg.skp 0.23 0.24
1 desk_yahoogames.skp 0.029 0.029
1 desk_yahoosports.skp 0.0033 0.0033
1 desk_youtubetvbrowse.skp 0.01 0.01
1 tabl_androidpolice.skp 0.65 0.65
1 tabl_digg.skp 0.33 0.33
1 tabl_hsfi.skp 0.32 0.32
1 tabl_nytimes.skp 0.22 0.22
1 tabl_techmeme.skp 0.069 0.072
1 tabl_ukwsj.skp 0.35 0.35
1.1 desk_sfgate.skp 0.25 0.28


BUG=skia:
R=tomhudson@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/158913005

git-svn-id: http://skia.googlecode.com/svn/trunk@13487 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
186c0ccac25229534ec6fb84726043083304d4d1 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> staticMethod -> StaticMethod

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/166193006

git-svn-id: http://skia.googlecode.com/svn/trunk@13485 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
dac522589e9395b4654a1a708f1bd971f37f95a5 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> replace SkBitmap::Config with SkColorType in gms

add helper installMaskPixels() to SkBitmap

BUG=skia:
R=halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/169913003

git-svn-id: http://skia.googlecode.com/svn/trunk@13482 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
34abef14a637450743e1debccdcdb5bdc2e9ba01 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix spelling of class name in comment.

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/76623004

git-svn-id: http://skia.googlecode.com/svn/trunk@13478 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
19fafef9784fe7c644540ffd0ee9f6da1914a038 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> change PictureRecord (and its private subclasses) to take size instead of device

BUG=skia:
R=mtklein@google.com, scroggo@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/168983003

git-svn-id: http://skia.googlecode.com/svn/trunk@13477 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
403f8d7a052269583175e945689824838e5e0ef4 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> still trying to kill setDevice: rename to setRootDevice (better name) and make private

BUG=skia:
COLLABORATOR=reed@google.com
R=bsalomon@google.com, scroggo@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/169023002

git-svn-id: http://skia.googlecode.com/svn/trunk@13476 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
14e50ae2a1b1cccdace599247b8c788b8db33ef4 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make canvas pass rrects along to clip stack

BUG=skia:2181
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/167283004

git-svn-id: http://skia.googlecode.com/svn/trunk@13470 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
6e58cf36f0eba4b195726aa714d5487c91d06d04 16-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> restore old behavior of setPixels(): lockPixels after installPixels()

git-svn-id: http://skia.googlecode.com/svn/trunk@13468 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
9cb671a0017e8f2906e8351ff35efcd6d8fbf7b0 16-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix calling undef inline func build error

Fixes error introduced in https://code.google.com/p/skia/source/detail?r=13465

R=robertphillips@google.com
TBR=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/168893002

git-svn-id: http://skia.googlecode.com/svn/trunk@13466 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
e5b2af955b7d06815ddd405659ad62a2a8355ca3 16-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Store SkRRects in SkClipStack

BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/163683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13465 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
969588f0c9030d5a4942085a4b5a5ea7e8d2bc25 16-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13464 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
15a140599942f70e47380e3f700a825c7cece3b4 16-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change device factories to take SkImageInfo instead of SkBitmap::Config

patch from issue 167033002

BUG=skia:
R=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/168653002

git-svn-id: http://skia.googlecode.com/svn/trunk@13463 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
dcfaa73e68f54f19c7900577b71f585fb8a7e1ae 14-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allowing Lanczos3 to be used in chromium

BUG=skia:
R=senorblanco@google.com, reed@google.com, humper@google.com, senorblanco@chromium.org, robertphillips@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/163663002

git-svn-id: http://skia.googlecode.com/svn/trunk@13459 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapScaler.cpp
550db50db324a6487904ec268d86e9abe68a4d70 14-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup unref and null

BUG=skia:
R=mtklein@google.com, scroggo@google.com, iancottrell@chromium.org

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/163053005

git-svn-id: http://skia.googlecode.com/svn/trunk@13457 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
02d6f546161e2c98d69066373cec3f54f3c46252 14-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13447 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d5414e5efe0a6a0bce0b5499e2358e2be4cb9b61 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ensure that opaque-only colortypes always report opaque-alphatype

BUG=skia:
R=scroggo@google.com, djsollen@google.com, reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/164233006

git-svn-id: http://skia.googlecode.com/svn/trunk@13443 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
33fed14b1d4867015ac518874013e0b3e06ea982 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed clusterfuzz found crash

BUG=343461
R=senorblanco@google.com, senorblanco@chromium.org, reed@chromium.org, reed@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/162943003

git-svn-id: http://skia.googlecode.com/svn/trunk@13439 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
ca21a00c736d05686c84ab874ce6a49008da6a76 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkWriter32: throw in the SkTDArray towel.

I think it's looking more clear we don't have a clean way to use SkTDArray in
SkWriter32. We can't give SkWriter32 meaningful control over SkTDArray's
reallocation without making moot SkTDArray's raison d'etre.

Let's just use an SkAutoTMalloc<uint8_t> instead. It wants SkWriter32 to
control it. Also, it's lower overhead: SkAutoTMalloc<uint8_t> is just a smart
poiter: no size or capacity stored.

BUG=skia:
R=reed@google.com, iancottrell@google.com, reed@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/163983002

git-svn-id: http://skia.googlecode.com/svn/trunk@13436 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
c3bd8af6d5722e854feca70c40d92f4954c5b67b 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add peekPixels to SkCanvas and SkSurface

fix reference to SkBaseDevice, which was only a problem in no-gpu build

This reverts commit 4fa44a6bf73891b21917fb90d02beef9143bffa3.

R=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/163603003

git-svn-id: http://skia.googlecode.com/svn/trunk@13432 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.h
bda591c739001b41d77048d680f81e05723cbc05 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of add peekPixels to SkCanvas and SkSurface (https://codereview.chromium.org/161733002/)

Reason for revert:
compile issues with gm/xfermodes3

Original issue's description:
> add peekPixels to SkCanvas and SkSurface
>
> clone of https://codereview.chromium.org/159723006/
>
> Committed: https://code.google.com/p/skia/source/detail?r=13427

R=jvanverth@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/163823002

git-svn-id: http://skia.googlecode.com/svn/trunk@13428 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.h
b2d93a91222dac2edb3c19128fd58fa2e74272aa 13-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add peekPixels to SkCanvas and SkSurface

clone of https://codereview.chromium.org/159723006/

Review URL: https://codereview.chromium.org/161733002

git-svn-id: http://skia.googlecode.com/svn/trunk@13427 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.h
22ef2c37e65e601ba78851e3dbb4ca7a0e4c7d61 13-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13424 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
9a67a7e2a0b53bb9092e2570ac6ea6a68b7371b0 13-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Just a bit of cleanup. This doesn't alter the matrix/clip stack manager's behavior or its memory consumption.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/161143002

git-svn-id: http://skia.googlecode.com/svn/trunk@13423 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
5e1a7f2cc621d357da5c62a7bc4ef750d94b96f3 12-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13379 (Move fLastMoveToIndex from SkPath to SkPathRef - https://codereview.chromium.org/146913002/) due to image quality regression in Chromium. See crbug.com/343123 (Regression - UI issue observed for any "Notification infobars" in Chrome browser)

R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/137863006

git-svn-id: http://skia.googlecode.com/svn/trunk@13421 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
c5dada85e88298399a15d7347954f445ee798e19 12-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL doesn't radically change the behavior of the matrix\clip stack reducer. It just cleans up the matrix handling a bit.

R=bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/151033004

git-svn-id: http://skia.googlecode.com/svn/trunk@13420 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
877c44956dceff038c0e315c8d311b0d581f2680 12-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13418 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
6fe16a3db00c14c813d74ce7a82dc7ad7b333e8c 12-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused deviceconfig from SkShader

git-svn-id: http://skia.googlecode.com/svn/trunk@13417 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
536ac5e20c2ec2008993c0677ba8cbc5ae0f34cf 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Templetized SkWriter32 readTAt() & overwriteTAt()

Convert SkWriter32::{read,write}32At() to ::{read,overwrite}TAt<>() to allow
peeking/updating arbitrary records.


BUG=skia:
R=mtklein@google.com, reed@google.com, robertphillips@google.com, iancottrell@chromium.org

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/130913018

git-svn-id: http://skia.googlecode.com/svn/trunk@13416 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kPictureRecord.cpp
kWriteBuffer.cpp
kWriter32.cpp
14747e58f8127a6d6b3c748bf0642b0d6a3a79e8 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding new 'extend' mode to SkPath::addPath

BUG=261727
R=reed@google.com, caryclark@google.com, schenney@chromium.org, robertphillips@google.com

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/151353006

git-svn-id: http://skia.googlecode.com/svn/trunk@13415 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
a87b21cd0041bac0d96b6836ac6e71a2dbcd4e10 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland SkWriter32 growth change with build fixes.

- SkSWriter32 resets itself with its stack block;
- Track the full capacity of fInternal (which may be >size after a reset).

BUG=skia:2125
R=reed@google.com, iancottrell@chromium.org, iancottrell@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/158953003

git-svn-id: http://skia.googlecode.com/svn/trunk@13412 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
61e96cd44624c9faceb625519c1b29775b161f45 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkBitmap now really stores SkImageInfo -- config is just a ruse

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/159653004

git-svn-id: http://skia.googlecode.com/svn/trunk@13411 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
09f0ba7eb3c1933c7be878a043de5c287edd00ab 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Change growth function for SkWriter32 (https://codereview.chromium.org/150663014/)

Reason for revert:
See https://codereview.chromium.org/152703007/.

Original issue's description:
> Change growth function for SkWriter32
>
> Add setCountExact to SkTDArray to allow external control of array growth.
> Use it to allow SkWriter to control the buffer growth pattern.
> Change buffer growth pattern to 1.5n+4096
>
> BUG=skia:2125
>
> Committed: http://code.google.com/p/skia/source/detail?r=13401

R=tomhudson@google.com, reed@google.com, iancottrell@google.com
TBR=iancottrell@google.com, reed@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2125

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/132313013

git-svn-id: http://skia.googlecode.com/svn/trunk@13406 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
d321a45aea4b1140d76a21d97b54deb13ca261e5 11-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clang complaint fix



git-svn-id: http://skia.googlecode.com/svn/trunk@13405 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
3cd6fdf64e7d4468ae589a2acab4c0fa7c1a9ae6 11-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix build

https://codereview.chromium.org/159813002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13404 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
105a4a584c4c2c84c24e102112326b15683673f5 11-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Collapse matrix & clip stack in PictureRecord

https://codereview.chromium.org/137093004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13402 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrixClipStateMgr.cpp
kMatrixClipStateMgr.h
kPictureRecord.cpp
kPictureRecord.h
93d5ffda58391fe819199bf5afddc622e067af7e 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change growth function for SkWriter32

Add setCountExact to SkTDArray to allow external control of array growth.
Use it to allow SkWriter to control the buffer growth pattern.
Change buffer growth pattern to 1.5n+4096

BUG=skia:2125
R=tomhudson@google.com, mtklein@google.com, reed@google.com

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/150663014

git-svn-id: http://skia.googlecode.com/svn/trunk@13401 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
afe38b16f082c8d88039339591376be54c7e801b 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix broken debug build

BUG=skia:
R=tomhudson@google.com

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/143223005

git-svn-id: http://skia.googlecode.com/svn/trunk@13397 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
046f1f6ff4b2b3f4571a9562e74f41e82419a4a1 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleaner external buffer handling in SkWriter32

This unifies the internal and external buffer handling so that the difference only has to be noticed when growing.
Removing the branches from the common read and write cases gives a significant speedup.

BUG=skia:2125
R=tomhudson@google.com, mtklein@google.com, reed@google.com

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/156683004

git-svn-id: http://skia.googlecode.com/svn/trunk@13396 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
1195a28892d37ae9632e81e1bc2407cf644522d2 11-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "SkBitmap now really stores SkImageInfo -- config is just a ruse"

BUG=skia:

Review URL: https://codereview.chromium.org/147733004

git-svn-id: http://skia.googlecode.com/svn/trunk@13395 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
b53317c6fa0d7b2f86e9d069bb49dc157f04120a 11-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix test for empty config

handle empty setconfig

BUG=skia:

Review URL: https://codereview.chromium.org/159533002

git-svn-id: http://skia.googlecode.com/svn/trunk@13394 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
8ed6443e6c608007e1e62937acfaf29b7fe7b8b0 11-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13393 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
c9114856e8e1b94b55725a4d86ef80bd3a76187b 11-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings

BUG=skia:

Review URL: https://codereview.chromium.org/153003005

git-svn-id: http://skia.googlecode.com/svn/trunk@13392 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
169a0ed50a5e451711c341795572e7177a540a24 11-Feb-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkBitmap now really stores SkImageInfo -- config is just a ruse

(edited) clone of https://codereview.chromium.org/159173004/

Review URL: https://codereview.chromium.org/159463003

git-svn-id: http://skia.googlecode.com/svn/trunk@13391 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
7e90e8dbb96f2084f7dd4a6a20cb4b880b362438 11-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix minor error between kStroke_PathAsRect and kFill_PathAsRect in SkPath::asRect

R=caryclark@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/138703008

git-svn-id: http://skia.googlecode.com/svn/trunk@13390 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
50b393a768c0311b3210f723325fd27bf161136b 10-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkPictureRecord: silently do nothing for non-drawable SkBitmaps.


BUG=skia:2135
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/154083004

git-svn-id: http://skia.googlecode.com/svn/trunk@13386 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
6be31f42cac550dfa6fd936b36484002b6eadc9c 10-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_ONLOCKPIXELS completely

BUG=skia:

Review URL: https://codereview.chromium.org/158893005

git-svn-id: http://skia.googlecode.com/svn/trunk@13382 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPixelRef.cpp
f66cf72c6810766234d06bb96696b594a99dcd02 10-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move fLastMoveToIndex from SkPath to SkPathRef

https://codereview.chromium.org/146913002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13379 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
5d54c29c70118dd8f038acf19c5293adbb64cdf1 07-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unneeded SK_SUPPORT_LEGACY_CANVAS_CREATECOMPATIBLEDEVICE

git-svn-id: http://skia.googlecode.com/svn/trunk@13363 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
5e0995e4b36178e1e4465a9f50114ed39f038c27 07-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Revert "Serialization of SkPictureImageFilter" (https://codereview.chromium.org/153583007/)

Reason for revert:
New SKPs with version20 are in Google Storage due to http://108.170.219.160:10117/builders/Housekeeper-Nightly-RecreateSKPs/builds/22

Original issue's description:
> Revert "Serialization of SkPictureImageFilter"
>
> This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.
>
> Revert "Sanitizing source files in Housekeeper-Nightly"
>
> This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.
>
> TBR=robertphillips@google.com,sugoi@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13356

R=robertphillips@google.com, sugoi@google.com, fmalita@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, fmalita@google.com, robertphillips@google.com, sugoi@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/143163005

git-svn-id: http://skia.googlecode.com/svn/trunk@13357 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
7713c38dc0182c8f6a685dace5101c49301de00d 07-Feb-2014 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Serialization of SkPictureImageFilter"

This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.

Revert "Sanitizing source files in Housekeeper-Nightly"

This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.

TBR=robertphillips@google.com,sugoi@google.com

Review URL: https://codereview.chromium.org/153583007

git-svn-id: http://skia.googlecode.com/svn/trunk@13356 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
c5acc6c827993602eded2d5b53fdbe29a372b4c4 07-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13355 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
4f6318d2e64c96fba955ea9154829aee37e155b8 07-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Serialization of SkPictureImageFilter

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13347

R=senorblanco@google.com, reed@google.com, mtklein@google.com, sugoi@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/138063005

git-svn-id: http://skia.googlecode.com/svn/trunk@13354 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
8b4799a98b05d626432b11115b5c2f0e0bb1772d 06-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13347 (Serialization of SkPictureImageFilter - https://codereview.chromium.org/138063005) due to bump in skp file format



git-svn-id: http://skia.googlecode.com/svn/trunk@13348 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
670b98ea5df48daef5d23e2bb7570d408207c333 06-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Serialization of SkPictureImageFilter

BUG=skia:
R=senorblanco@google.com, reed@google.com, mtklein@google.com, sugoi@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/138063005

git-svn-id: http://skia.googlecode.com/svn/trunk@13347 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
5251e2b91ac976f61e6252d931c1a0e746d2290a 05-Feb-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a problem with scaled filters in tiled SkPicture playback.

The matrix used during filter application should be up-to-date, so that
the filter parameters can be scaled by the CTM (e.g., for hiDPI).
However, tiled playback defers setting of the matrix until after the
restore() call which draws the filter, which is too late. Moving the
setMatrix() ahead of the restore() sequence fixes the problem.

TEST=ImageFilterMatrixTest
R=junov@chromium.org

Review URL: https://codereview.chromium.org/145723007

git-svn-id: http://skia.googlecode.com/svn/trunk@13331 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.cpp
ae761f7545d8ebf181d220169afac2056b057b8c 05-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkImageFilter methods const.

SkImageFilter had some non-const methods that could all be made const.
This is a first step towards making SkImageFilter immutable.

BUG=skia:2097
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/148883011

git-svn-id: http://skia.googlecode.com/svn/trunk@13330 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kDeviceImageFilterProxy.h
kImageFilter.cpp
kImageFilterUtils.cpp
c2d768c0cf5a09bb481a8117a1351603eff84cee 05-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pass in the real rowBytes

git-svn-id: http://skia.googlecode.com/svn/trunk@13328 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
c4b12f19a46946e1c02f3525e0ea4902b09feac5 05-Feb-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement correct clipping for image filters.

Image filters in Skia currently clip the size of the the offscreen
bitmap used for filtering to the device clip bounds. This means that
any pixel-moving filter (e.g., blur) has edge artifacts at the clip
boundaries. This is problematic for tiling, where a single SkPicture
is played back with a clip set to the tile boundaries.

By implementing the onFilterBounds() traversal, and using it in
saveLayer() when a filter is present, we can clip the layer to the
expanded clip rect. Note that this requires that the traversal be
performed in reverse as compared to computeFastBounds(). (It's also
done in device space, unlike computeFastBounds()).

New test imagefiltersclipped tests pixel-moving filters when clipped
by various clip rects.
New test imageblurtiled tests tiled (compositor-style) rendering of
blurred text. There should be no artifacts at the tile boundaries.

BUG=337831
R=reed@google.com

Review URL: https://codereview.chromium.org/23011012

git-svn-id: http://skia.googlecode.com/svn/trunk@13323 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kImageFilter.cpp
76f10a3bd936af7dbe2b5873d5a7eedd73cdc5da 05-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkCanvas::createCompatibleDevice, and add SkCanvas::newSurface

BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/154163002

git-svn-id: http://skia.googlecode.com/svn/trunk@13319 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDevice.cpp
kPictureRecord.cpp
kPictureRecord.h
cb6adecd4d37ae23c89a473a5f648584e0428520 05-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up SkPictureRecord.cpp

https://codereview.chromium.org/153983007/



git-svn-id: http://skia.googlecode.com/svn/trunk@13318 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
1dab403e447f4f663690e018651338304fe6e86a 05-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13316 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.h
967dee32ef540b7c0fed6d0cd518d42b9b345c78 04-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkFontMgr interface const.

COLLABORATOR=mtklein@chromium.org
BUG=skia:
R=reed@google.com, bungeman@google.com, mtklein@chromium.org

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/134643028

git-svn-id: http://skia.googlecode.com/svn/trunk@13314 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
0807ede86d4dfd30b075032d5fc0d92b757172d8 04-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Compilation fix for r13311 (Update SkPictureRecord to allow some ops to be written separately - https://codereview.chromium.org/153883002/)



git-svn-id: http://skia.googlecode.com/svn/trunk@13313 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
5a63f24558b84610e93c6d7b67d849b5ab435e51 04-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkPictureRecord to allow some ops to be written separately

https://codereview.chromium.org/153883002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13311 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
8df32b978f12e541af29d301e5d744cbd8f63676 04-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Added root deletion code to fix valgrind error

BUG=skia:
R=robertphillips@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/153893004

git-svn-id: http://skia.googlecode.com/svn/trunk@13308 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadTree.cpp
6fcd28ba1de83b72f4c8343ccec27d26c127de32 04-Feb-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix samplefuzz, fix some 32/64bit warnings

git-svn-id: http://skia.googlecode.com/svn/trunk@13303 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kFlattenableSerialization.cpp
kPictureStateTree.cpp
kPictureStateTree.h
kWriteBuffer.cpp
b511be5a9b6bf194062b79206ac1ec0204aed8ee 04-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add rect clip to convex_poly_clip GM

BUG=skia:2051
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/147793007

git-svn-id: http://skia.googlecode.com/svn/trunk@13300 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
e456a4284adb7bcea1b2776efa40a8d4b3a99fa5 04-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13296 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadTree.cpp
kQuadTreePicture.cpp
aba651c3f1a1657bbe5367c873500e7c60539a3e 03-Feb-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix image filter crop offsets for GPU path.

This is the GPU-side version of
https://codereview.chromium.org/112803004/.
Also factored the crop offset unit test into a function, so we can
call it with both CPU & GPU devices.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/153113003

git-svn-id: http://skia.googlecode.com/svn/trunk@13292 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
c22d1398089fdb95480fb3459b23e4931e4f5280 03-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial QuadTree implementation

In an effort to find a faster bounding box hierarchy than the R-Tree, a QuadTree has been implemented here.
For now, the QuadTree construction is generally faster than the R-Tree and the queries are a bit slower, so overall, SKP local tests showed QuadTree performance similar to the R-Tree performance.

Tests and bench are included in this cl.

At this point, I'd like to be able to commit this in order to more easily use the bots to test multiple configurations and a larger number of SKPs. The R-Tree BBH is still used by default so this change shouldn't affect chromium.

BUG=skia:
R=junov@chromium.org, junov@google.com, senorblanco@google.com, senorblanco@chromium.org, reed@google.com, sugoi@google.com, fmalita@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/131343011

git-svn-id: http://skia.googlecode.com/svn/trunk@13282 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.h
kQuadTree.cpp
kQuadTree.h
kQuadTreePicture.cpp
kQuadTreePicture.h
kRTree.h
kTileGrid.h
ba124485687130183643994f1b4b68d629fbbeba 01-Feb-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13274 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e254310a55d55a710309714c48f7fbbe7a6126f7 31-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas constructor that explicitly creates no_config with dimensions

BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/137833016

git-svn-id: http://skia.googlecode.com/svn/trunk@13272 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
c6d3c444ca76feba5a8937dbc80626ade5347275 31-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Have peek32 return uint32_t& to make it harder to look at more than 4 bytes.

BUG=skia:
R=reed@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/145053003

git-svn-id: http://skia.googlecode.com/svn/trunk@13265 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kWriteBuffer.cpp
5c3b335bb886dc8eb21b596b2b70a51814010363 31-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add shim for SkOrderedReadBuffer.h too.

Sorry, I specifically looked for this and failed the first time.

BUG=skia:
R=robertphillips@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/151093002

git-svn-id: http://skia.googlecode.com/svn/trunk@13259 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.h
6169f2b4da39099b4e593f5ff85538dfe2f0249e 31-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> initial import of Chrome's trace_event into skia framework

This patch includes a modified version of Chrome's trace_event.h, which provides
tracing macros that can easily integrate into the about://tracing framework.

Currently the macros link to a default implementation of the (narrow) tracing
class SkDefaultEventTracer which does nothing; next step will be to have Chrome
subclass the SkEventTracer with a shim that bolts Skia's trace events to its own,
allowing Skia's trace events to show up in about://tracing.

I've verified that this file builds properly, and when I added a simple scoped
TRACE_EVENT0 to SkCanvas::drawRect, along with some debug prints in the NOP
implementation of tracing, I saw what I expected printed to the screen.

BUG=skia:
R=nduca@chromium.org, reed@google.com, mtklein@google.com, bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/149563004

git-svn-id: http://skia.googlecode.com/svn/trunk@13256 2bbb7eff-a529-9590-31e7-b0007b416f81
kTraceEvent.h
a2bd2d12ad9504583e9311404fcd82b40df49d30 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Set write buffer flags only in SkWriteBuffer and SkFlatController constructors.

This is a baby step toward refactored (and faster in-process) typeface and flattenable factory encoding and decoding. The sooner SkWriteBuffer knows its flags, the better.

Next steps will be to rearrange Sk{Read,Write}Buffer members into disjoint strategies to handle typefaces and flattenable factories: one for in-process, one for cross-process, one when validating.

BUG=skia:
R=reed@google.com, scroggo@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/138803005

git-svn-id: http://skia.googlecode.com/svn/trunk@13253 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kWriteBuffer.cpp
0b9ada1318acf7d5fe90c57331c2a4548aad8b98 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove (unnecessary) SkScalarMul and SkScalarMulAdd macros from SkMatrix.cpp.

SkScalarMulDiv remains, but it can be removed later (though it is slightly clearer to use it at times).

BUG=skia:
R=caryclark@google.com, mtklein@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/150493002

git-svn-id: http://skia.googlecode.com/svn/trunk@13252 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
8b0e8ac5f582de80356019406e2975079bf0829d 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor read and write buffers.

Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer
a step each in the hierarchy.

What used to be this:

SkFlattenableWriteBuffer -> SkOrderedWriteBuffer
SkFlattenableReadBuffer -> SkOrderedReadBuffer
SkFlattenableReadBuffer -> SkValidatingReadBuffer

is now

SkWriteBuffer
SkReadBuffer -> SkValidatingReadBuffer

Benefits:
- code is simpler, names are less wordy
- the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed
- write buffers are completely devirtualized, important for record speed

This refactoring was mostly mechanical. You aren't going to find anything
interesting in files with less than 10 lines changed.

BUG=skia:
R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/134163010

git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kBitmap.cpp
kBitmapHeap.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kColorTable.cpp
kComposeShader.cpp
kData.cpp
kDraw.cpp
kFilterShader.cpp
kFilterShader.h
kFlattenable.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kImageInfo.cpp
kMallocPixelRef.cpp
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
kPaint.cpp
kPaintOptionsAndroid.cpp
kPathEffect.cpp
kPathHeap.cpp
kPathHeap.h
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPixelRef.cpp
kReadBuffer.cpp
kScalerContext.cpp
kShader.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kWriteBuffer.cpp
kXfermode.cpp
kXfermode_proccoeff.h
cf34bc06347dd2734a7fdaef5cf8853e92979d5e 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> patch from issue 119343003
compile on 10.6, exclude failing gms

Sorry for making another CL; rebasing ToT on the old one ended up with code in a tangled mess; was easier to start over.

NOTRY=true
R=bsalomon@google.com, epoger@google.com, reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/148883005

git-svn-id: http://skia.googlecode.com/svn/trunk@13238 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
78cf11980d87700be0b3fded86a6d8f0d43f24d9 28-Jan-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Give correct bounds to SkCanvas's AutoDrawLooper use for filter draws.

In conjuction with https://codereview.chromium.org/137423005/, this allows the canvas to tighten the bounds passed to saveLayer() only the affected region.

R=reed@google.com
BUG=100703

Review URL: https://codereview.chromium.org/141433017

git-svn-id: http://skia.googlecode.com/svn/trunk@13221 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
c1587f94a77eaafe257a6ecf504364d40362c66a 28-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change setAlphaType to not modify the pixelref's genID

BUG=skia:
R=bsalomon@google.com, halcanary@google.com

Review URL: https://codereview.chromium.org/137263009

git-svn-id: http://skia.googlecode.com/svn/trunk@13219 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPixelRef.cpp
d50d87a185d26a38d7100bbbb119be17947aa5e4 28-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> That's confusing. Make it clear we're working with 3 points == 9 scalars.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/148383009

git-svn-id: http://skia.googlecode.com/svn/trunk@13216 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
dcfa9ff57c009527e589dfc9c9fdc71483fd2f39 28-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Fast blurred rectangles on GPU (https://codereview.chromium.org/119343003/)

Reason for revert:
Two problems:

1. broke compile on Build-Mac10.6-* bots
2. broke GM expectations on many bots

We'll need to examine the GM impact before re-landing. I can work with you to do this on Tuesday if you like; just IM or email me.

Original issue's description:
> Perform the same analytic blur calculation on the GPU that we do on the CPU. Results in significant performance gains when using Ganesh to render drop shadows in Chrome.
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=13210

R=bsalomon@google.com, reed@google.com, humper@google.com, rmistry@google.com
TBR=bsalomon@google.com, humper@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: epoger@google.com

Review URL: https://codereview.chromium.org/140853008

git-svn-id: http://skia.googlecode.com/svn/trunk@13213 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
d1829151a5f5fb69faa50c326ed018376d117b3e 27-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Perform the same analytic blur calculation on the GPU that we do on the CPU. Results in significant performance gains when using Ganesh to render drop shadows in Chrome.

BUG=
R=bsalomon@google.com, reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/119343003

git-svn-id: http://skia.googlecode.com/svn/trunk@13210 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
336d1d759590d9bedcbc5a96d0fff79861cf8f7a 27-Jan-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement a computeFastBounds() traversal for SkImageFilter.

This allows for correct culling of primitives which have image filters applied.

R=reed@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/137423005

git-svn-id: http://skia.googlecode.com/svn/trunk@13207 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kPaint.cpp
0e8d0d6cdc2e02946b099006d0a47e60764905e5 27-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional SkAlphaType parameter to notifyPixelsChanged

R=scroggo@google.com, halcanary@google.com, robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/147213002

git-svn-id: http://skia.googlecode.com/svn/trunk@13192 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPixelRef.cpp
7fa2a65c0cfc714364490cb715171461143024e0 27-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix more 64bit warnings

BUG=skia:

Review URL: https://codereview.chromium.org/147683003

git-svn-id: http://skia.googlecode.com/svn/trunk@13190 2bbb7eff-a529-9590-31e7-b0007b416f81
kDebug.cpp
kFlate.cpp
kPictureFlat.h
33c749a586648c068a43f4d983f10810420ba315 26-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13185 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
c2abd54edadf94bb86e1635a3515089e4a6a8eee 25-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add alternative to isRect named asRect

This defines yunchao's proposed interface in terms of
an existing implementation.

BUG=skia:
R=reed@google.com, yunchao.he@intel.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/140953003

git-svn-id: http://skia.googlecode.com/svn/trunk@13183 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
eb9a46cbbb475e862a084aa2224ec18d4ac5e95b 25-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add legacy/helper allocN32Pixels, and convert gm to use it

This is an intermediate api, but might help us quickly get to a point where
no one is creating bitmaps in a 2-step process (setConfig + alloc).

BUG=skia:
R=halcanary@google.com

Review URL: https://codereview.chromium.org/140593005

git-svn-id: http://skia.googlecode.com/svn/trunk@13182 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d2ac07b64b7d46e81d00d389781f9f83810f0095 25-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13181 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
709ca75f032d7c60eb53c5840524a875a3a6cdb1 24-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkOnce: add option to call another cleanup function once at exit.

Use this to clean up empty SkData and SkPathRef.

Current leaks:
Leaked SkRefCntBase: 40
Leaked SkFlattenable: 32
Leaked SkPixelRef: 32
Leaked SkMallocPixelRef: 32
Leaked SkFontConfigInterface: 1
Leaked SkWeakRefCnt: 1
Leaked SkTypeface: 1
Leaked SkFontMgr: 1
Leaked SkDataTable: 3
Leaked SkImage: 1
Leaked ???: 1
Leaked ???: 1

BUG=skia:
R=halcanary@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/132803005

git-svn-id: http://skia.googlecode.com/svn/trunk@13180 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kPathRef.cpp
kScaledImageCache.cpp
a8c7f7702fb4bbedb615031bc653c5cd161a038e 24-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix (some) 64bit warnings -- size_t -> int

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/147053003

git-svn-id: http://skia.googlecode.com/svn/trunk@13178 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kCanvas.cpp
kDebug.cpp
kDraw.cpp
kEdgeBuilder.cpp
kError.cpp
kFontDescriptor.cpp
kGlyphCache.cpp
kLineClipper.cpp
kMallocPixelRef.cpp
kMask.cpp
kMetaData.cpp
9ebcac54635cde63110d73ad7c43d70772e7872f 24-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add installPixels

BUG=skia:
R=halcanary@google.com

Review URL: https://codereview.chromium.org/143073008

git-svn-id: http://skia.googlecode.com/svn/trunk@13174 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kDevice.cpp
kMallocPixelRef.cpp
kOrderedReadBuffer.cpp
227c24673196f5f06bee85e7e9aa067be90e1359 24-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Resolve a few memory leaks in tests.

Purge the global scaled image cache after use in tests. The cache was
right to hold on to the pixels indefinitely, but this change makes it
easier to run down actual memory leaks.

Add SK_DECLARE_INST_COUNT to several classes.

BUG=skia:
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/145443004

git-svn-id: http://skia.googlecode.com/svn/trunk@13171 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
f6f56878bc96386882721b15ba610984185d3dc9 23-Jan-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clarify kAutohinting is kForceAutohinting.

BUG=skia:2047
R=reed@google.com

Review URL: https://codereview.chromium.org/139943004

git-svn-id: http://skia.googlecode.com/svn/trunk@13156 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.h
fed2ab648341ec153ad2af746a31d368963171e4 23-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> No deduping dictionaries for matrices and regions.

There's little benefit to deduping matrices and regions: they're infrequently
used, and doubly infrequently reused. Their use-weighted byte cost is tiny.

There is some downside to deduping matrices and regions. Even when they're not
used, we prepare dictionaries for deduping them for every picture. Each of
these dictionaries costs 160 bytes, so two unused dictionaries make a big chunk
of the ~1100 bytes it takes to allocate an SkPictureRecord. (~330 come from
parent class SkCanvas, 768 from SkPictureRecord itself, here reduced to 448).

One side benefit of not deduping these guys is that the change weighs -140 lines of code.

It may go without saying, but this breaks the picture format.

Testing: out/Debug/tests && out/Debug/dm (which runs all picture modes by default)

BUG=skia:1850
R=reed@google.com, bensong@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/143883006

git-svn-id: http://skia.googlecode.com/svn/trunk@13149 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
0c95d664df57f01e1aa35d19ab3f355132043d05 21-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove a stray setReserve that causes dynamic allocation in picture creation.

This brings us down to about 10 calls to malloc per picture.

No measurable change in bench_record or bench_pictures.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/132693009

git-svn-id: http://skia.googlecode.com/svn/trunk@13136 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
cd0bf0adaa7adc24f79834e1b36884b72e64dbcc 17-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Tweak validate() to check less as the size of the hash grows.

This makes working with a non-trivial SkTDynamicHash less painful in Debug
builds. validate() is skipped in Release, so this has no effect there.

BUG=
R=kkinnunen@nvidia.com, bsalomon@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/140753003

git-svn-id: http://skia.googlecode.com/svn/trunk@13121 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
2ab1ba055536825552d6b49f0210c4e1531f02f0 17-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make leak counters thread-safe and turn them on by default for Debug

Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds when Skia is built as a
static library. Having SK_DECLARE_INST_COUNT without
SK_DEFINE_INST_COUNT relies on static variables in member functions
declared in the header files. These might be duplicated in the clients
of the library when Skia is built as a dynamic library, producing
incorrect operation.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com, bungeman@google.com, djsollen@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/99483003

git-svn-id: http://skia.googlecode.com/svn/trunk@13120 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
5b8bde5db24f581d69b7efce72cf42110b80eaf5 16-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Missing #include "SkTemplates.h" for SkAutoTMalloc.

BUG=
R=halcanary@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/137783021

git-svn-id: http://skia.googlecode.com/svn/trunk@13110 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
f7ba41321b16ad8df611fa07e9ae48fe8a30a0bb 16-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Hide bitmap rowbyes assert when LEGACY_ONLOCKPIXELS

Motivation: without this, we break Blink.

BUG=skia:

NOTREECHECKS=true
NOTRY=true
R=robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/140903002

git-svn-id: http://skia.googlecode.com/svn/trunk@13107 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f5e67c12c864084fa797d1e005d8472ee6f71322 16-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13105 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c665804300096c2e7617379835bb83d715538788 16-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkMessageBus::Get out of header, and retry crrev.com/106563002.

BUG=
R=bsalomon@google.com, kkinnunen@nvidia.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/140053002

git-svn-id: http://skia.googlecode.com/svn/trunk@13104 2bbb7eff-a529-9590-31e7-b0007b416f81
kMessageBus.h
b06faacaf13b9b5c47b8526492ad155bdce3863b 15-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Factor out UnPreMultiplyPreservingByteOrder

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/130303005

git-svn-id: http://skia.googlecode.com/svn/trunk@13103 2bbb7eff-a529-9590-31e7-b0007b416f81
kUnPreMultiply.cpp
5f62ed74342e44cb1b9671ffdac47c6a81416136 15-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> no need to refcnt colortables, since pixelrefs own them

BUG=skia:
R=halcanary@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/139463007

git-svn-id: http://skia.googlecode.com/svn/trunk@13098 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
615316cefbf16382f6a99c72d88a13d2be1d2408 15-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add asserts to validate

BUG=skia:
R=halcanary@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/139063003

git-svn-id: http://skia.googlecode.com/svn/trunk@13093 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
05ec2233e372cc11ad59b3337c96f0147a44ca29 15-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> change isRect to return true for 3-sided rectangular paths

BUG=skia:
R=caryclark@google.com, yunchao.he@intel.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/139483002

git-svn-id: http://skia.googlecode.com/svn/trunk@13092 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5ccae2c5b134d1b971c188215433305e88491aec 15-Jan-2014 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland "Fix genID cloning bugs."

SkBitmap.cpp:
When copyTo calls readPixels, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a
bug where copying an SkBitmap representing the subset of an SkPixelRef
(which implements onReadPixels) would result in the copy sharing the
genID. (Thanks to r6710, this case can only happen using setPixelRef,
so the updated GpuBitmapCopyTest checks for that.)

Move some unnecessary NULL checks to asserts.

When copyTo performs a memcpy, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a bug
where copying an extracted SkBitmap with the same width as its original
SkPixelRef would incorrectly have the same genID.

Add a comment and assert in deepCopyTo, when cloning the genID, since
that case correctly clones it.

BitmapCopyTest.cpp:
Pull redundant work out of the inner loop (setting up the source bitmaps
and testing extractSubset). Create a new inner loop for extractSubset, to
test copying the result to each different config.

Extract a subset that has the same width as the original, to catch the
bug mentioned above.

Remove the reporter assert which checks for the resulting rowbytes.

Add checks to ensure that copying the extracted subset changes the genID.

GpuBitmapCopyTest:
Create an SkBitmap that shares an existing SkPixelRef, but only represents
a subset. This is to test the first call to cloneGenID in SkBitmap::copyTo.
In this case, the genID should NOT be copied, since only a portion of the
SkPixelRef was copied.

Also test deepCopy on this subset.

TestIndividualCopy now takes a parameter stating whether the genID should
change in the copy. It also does a read back using the appropriate subset.
It no longer differentiates between copyTo and deepCopyTo, since that
distinction was only necessary for copying from/to configs other than 8888
(which are no longer being tested), where copyTo did a read back in 8888 and
then drew the result to the desired config (resulting in an imperfect copy).

BUG=skia:1742

Committed: http://code.google.com/p/skia/source/detail?r=13021

R=mtklein@google.com

Review URL: https://codereview.chromium.org/112113005

git-svn-id: http://skia.googlecode.com/svn/trunk@13090 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
32678d9a453e2c9fd26e92be429cdd84250b4d85 15-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> use some helper Make functions to initialize SkImageInfo

BUG=
R=halcanary@google.com, scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/137993012

git-svn-id: http://skia.googlecode.com/svn/trunk@13081 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilterUtils.cpp
kScaledImageCache.cpp
8844f997805ee6c554f457b2777a9af0ff2f3ed3 14-Jan-2014 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Make leak counters thread-safe and turn them on by default for Debug"

iThis CL is breaking the Android debug test bots by firing an assert.

BUG=skia:1219

Review URL: https://codereview.chromium.org/138683006

git-svn-id: http://skia.googlecode.com/svn/trunk@13076 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
19382421b916aab00be7265815ba4e2690adf2c9 14-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert SkWriter32 to use an SkTDArray for its internal storage.

This reduces the allocation overhead of a null picture (create, beginRecording(), endRecording) from about 18K to about 1.9K. (There's still lots more to prune.)

SkPictureFlat can exploit the fact that Writer32 is contiguous simplify its memory management. The Writer32 itself becomes the scratch buffer.

Remove lots and lots of arbitrary magic numbers that were size guesses and minimum allocation sizes. Keep your eyes open for the big obvious DUH why we save 16K per picture! (Spoiler alert. It's because that first save we issue in beginRecording() forces the old SkWriter32 to allocate 16K.)

Tests passing, DM passing.

bench --match writer: ~20% faster
null bench_record: ~30% faster
bench_record on buildbot .skps: ~3-6% slower, ranging 25% faster to 20% slower
bench_pictures on buildbot .skps: ~1-2% faster, ranging 13% faster to 28% slower

BUG=skia:1850
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/137433003

git-svn-id: http://skia.googlecode.com/svn/trunk@13073 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kScalerContext.cpp
kWriter32.cpp
46de153d4e887d82b5309316ed2e26e5cdc291f0 14-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make leak counters thread-safe and turn them on by default for Debug

Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219

Committed: http://code.google.com/p/skia/source/detail?r=12635

R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com, bungeman@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/99483003

git-svn-id: http://skia.googlecode.com/svn/trunk@13068 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
e13af711d4ff9031c9ed3054a4c33a56a0c62e1f 13-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/132643007/
Reason for revert: broken tests

TBR=
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

Review URL: https://codereview.chromium.org/134843008

git-svn-id: http://skia.googlecode.com/svn/trunk@13058 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilterUtils.cpp
kScaledImageCache.cpp
f0b56e74485d59465194b21f89fa3bc3a7962ac6 13-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of https://codereview.chromium.org/129423002/"

fixed new api references in unit tests

This reverts commit ffc0058e1fbcbd69617e1f41b2dce5b5765ff99e.

BUG=

Review URL: https://codereview.chromium.org/132643007

git-svn-id: http://skia.googlecode.com/svn/trunk@13057 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilterUtils.cpp
kScaledImageCache.cpp
9b06ba4c91484d09565ff4a572d8c5af15dd429e 13-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/129423002/
Reason for revert: broke tests (compile)

R=scroggo@google.com, halcanary@google.com
TBR=halcanary@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

Review URL: https://codereview.chromium.org/137133003

git-svn-id: http://skia.googlecode.com/svn/trunk@13056 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilterUtils.cpp
kScaledImageCache.cpp
dd9ea9262cb61b545fcf414fbde677eb2b62fee4 13-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkBitmap::installPixelRef()

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/129423002

git-svn-id: http://skia.googlecode.com/svn/trunk@13055 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilterUtils.cpp
kScaledImageCache.cpp
7a4b9fab286c3c02cca433c2ca36ebd35377de46 13-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allocate memory in SkTDynamicHash on first use.

This eliminates any dynamic allocation for hash tables that are never used.
This helps SkPicture, where some tables (SkPaint) are almost always used, but
some rarely (SkMatrix) or never (SkRegion).

This also removes the (as yet unimportant) ability for the hash table to
shrink. This makes resizing harder to reason about, so I'd like to leave it
out until we see a need.

BUG=skia:1850
R=tomhudson@chromium.org, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/136403004

git-svn-id: http://skia.googlecode.com/svn/trunk@13051 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
bf0001d0472d727266762c5967ec0d919a6df083 13-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove remaining references to Sk64 (obsolete)

BUG=

Review URL: https://codereview.chromium.org/136673002

git-svn-id: http://skia.googlecode.com/svn/trunk@13042 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
k64.h
kFloat.cpp
kGeometry.cpp
kGraphics.cpp
kMask.cpp
kMath.cpp
kMatrix.cpp
f3abaeb0c5947e63856209166761d4ea766ff24b 10-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove (now unused) Sk64 -- just use int64_t

BUG=

Review URL: https://codereview.chromium.org/134373006

git-svn-id: http://skia.googlecode.com/svn/trunk@13032 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.h
6e83423f1653b97915b80e3adab477e68d2b2933 10-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Eliminate useless NULL push by making fIndexedData 0-based.

Depends on http://crrev.com/134223002

Testing: out/Debug/dm && out/Debug/tests && echo ok

BUG=skia:1979
R=dominikg@chromium.org, tomhudson@chromium.org, halcanary@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/134283002

git-svn-id: http://skia.googlecode.com/svn/trunk@13028 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
f85251c74d214ffc7dafa6d9fe23c1be0a2f3aa6 10-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fNextIndex is redundant. Remove it.

This is warmup for removing the NULL at the front.

Testing: out/Debug/tests && out/Debug/dm && echo ok

BUG=skia:1979
R=dominikg@chromium.org, tomhudson@chromium.org, halcanary@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/134223002

git-svn-id: http://skia.googlecode.com/svn/trunk@13026 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
5c6f1d4424191539ebe5a5c3db883716d67efe12 10-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/112113005/
Reason for revert: breaks unit tests

R=mtklein@google.com, bsalomon@google.com, reed@google.com, scroggo@google.com
TBR=bsalomon@google.com, mtklein@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:1742

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/134453002

git-svn-id: http://skia.googlecode.com/svn/trunk@13024 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f2595e418661fe3b68c239a945ce8e1d2862e77d 10-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix genID cloning bugs.

SkBitmap.cpp:
When copyTo calls readPixels, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a
bug where copying an SkBitmap representing the subset of an SkPixelRef
(which implements onReadPixels) would result in the copy sharing the
genID. (Thanks to r6710, this case can only happen using setPixelRef,
so the updated GpuBitmapCopyTest checks for that.)

Move some unnecessary NULL checks to asserts.

When copyTo performs a memcpy, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a bug
where copying an extracted SkBitmap with the same width as its original
SkPixelRef would incorrectly have the same genID.

Add a comment and assert in deepCopyTo, when cloning the genID, since
that case correctly clones it.

BitmapCopyTest.cpp:
Pull redundant work out of the inner loop (setting up the source bitmaps
and testing extractSubset). Create a new inner loop for extractSubset, to
test copying the result to each different config.

Extract a subset that has the same width as the original, to catch the
bug mentioned above.

Remove the reporter assert which checks for the resulting rowbytes.

Add checks to ensure that copying the extracted subset changes the genID.

GpuBitmapCopyTest:
Create an SkBitmap that shares an existing SkPixelRef, but only represents
a subset. This is to test the first call to cloneGenID in SkBitmap::copyTo.
In this case, the genID should NOT be copied, since only a portion of the
SkPixelRef was copied.

Also test deepCopy on this subset.

TestIndividualCopy now takes a parameter stating whether the genID should
change in the copy. It also does a read back using the appropriate subset.
It no longer differentiates between copyTo and deepCopyTo, since that
distinction was only necessary for copying from/to configs other than 8888
(which are no longer being tested), where copyTo did a read back in 8888 and
then drew the result to the desired config (resulting in an imperfect copy).

BUG=skia:1742
R=mtklein@google.com, bsalomon@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/112113005

git-svn-id: http://skia.googlecode.com/svn/trunk@13021 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
2d1adf2322b026ec746dbdd931ca6aac7bb5d4cb 10-Jan-2014 halcanary@google.com <halcanary@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reduce verbosity of SkGraphics::Init in default case.

SkGraphics::Init() now checks to see if there are any non-default
runtime configuration options before announcing that it is about
to print out the non-default runtime configuration options.

This makes the executables in tools/ less verbose.

Add SkRTConfRegistry::countNonDefault() function.

BUG=
R=mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/133583003

git-svn-id: http://skia.googlecode.com/svn/trunk@13017 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
303c4758ec7062daf1531c3642e9c7887423ef1b 09-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use bitmap's fRowBytes, as the pixelref's is not (yet) reliable

should fix linux browser_tests for DEPS roll

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/132273004

git-svn-id: http://skia.googlecode.com/svn/trunk@13002 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
18b75e54ab64763615e09761fcaeb3f439835f59 09-Jan-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix race on creating the default typeface.

BUG=skia:1906
R=mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/113543005

git-svn-id: http://skia.googlecode.com/svn/trunk@12993 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
ff007e8ff358d9253de22291ebfd5fe7980512ed 09-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allocate SkPictureFlat::fScratch lazily.

Cuts out half to two thirds of allocations of this object.
Since we're already lazily allocating fWriteBuffer, we don't have to add any other code complexity.

BUG=http://skbug.com/1980
R=mtklein@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/131483005

git-svn-id: http://skia.googlecode.com/svn/trunk@12992 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
41bf930039314cc71039b12957195f1c65c30ce1 08-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename GPU functions on SkBlurMaskFilter and pass ctm.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/109823012

git-svn-id: http://skia.googlecode.com/svn/trunk@12978 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
4b5fba5a3cc29058088a9a62df1da83e1a3c7db0 08-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use a spinlock in SkOnce.

SkOnceFlag is now statically initializable on all platforms.

Also adds sk_atomic_cas, used to implement new SkSpinlock.

Going to punt on making SkOnceFlag any smaller (for now, it's 8 bytes). We could conceivably get it down to two bits, one for done and one for a one-bit spinlock (we'd need atomic-& and atomic-| to make that work, but they appear to be available everywhere).

BUG=skia:1929
R=bungeman@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/123093002

git-svn-id: http://skia.googlecode.com/svn/trunk@12968 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
672588b684d484dce6ae251e9e163e4a46924322 08-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change offset to xy for pixelref subsetting

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/105893012

git-svn-id: http://skia.googlecode.com/svn/trunk@12958 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapHeap.cpp
kBitmapHeap.h
kOrderedWriteBuffer.cpp
kScaledImageCache.cpp
d0419b1fe781ed21d4aa0dc80df6b3e79ed37e46 06-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "Revert "Revert of https://codereview.chromium.org/110593003/"""

This reverts commit aaa89649590323fe40f52439d9a9a3376bb3b8ae.

BUG=

Review URL: https://codereview.chromium.org/123223007

git-svn-id: http://skia.googlecode.com/svn/trunk@12910 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
86b39f311e174ddbd0d2f8de8d18dd45a8a2334f 06-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid some work on SkClipStack equality when the topmost genids match

Two clip stacks are defined being equal if the topmost genids match.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/115573005

git-svn-id: http://skia.googlecode.com/svn/trunk@12909 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
7627c657b039ea9aa2a01a7d74e652fe7e27def4 06-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add rowBytes param to setPreLock, in prep for onNewLockPixels change

need _win.cc change from https://codereview.chromium.org/124503002/ when this lands in chrome

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/125063002

git-svn-id: http://skia.googlecode.com/svn/trunk@12907 2bbb7eff-a529-9590-31e7-b0007b416f81
kMallocPixelRef.cpp
kPixelRef.cpp
ba82bd11e2c055f885b2327aa230d2dac8b53f03 06-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "Revert of https://codereview.chromium.org/110593003/""

This reverts commit 0fef787f33aa38109a0c8427e0098d997efdd5ff.

failed in chrome: https://codereview.chromium.org/124503002/

Review URL: https://codereview.chromium.org/105523008

git-svn-id: http://skia.googlecode.com/svn/trunk@12906 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
9fb00413ec55deb3a4953d4dff2dba3ec5cdb645 06-Jan-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SK_SUPPORTED_DEPRECATED_FIXEDROUND around deprecated fixed[round,ceil,floor]

git-svn-id: http://skia.googlecode.com/svn/trunk@12903 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kScan.h
kScan_Antihair.cpp
kString.cpp
98272d91421c52211e0e0137f494c1cad01c3c68 04-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12901 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
6776b82d466fa93ccffd251fdf556fe058395444 03-Jan-2014 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway.

To do this, this patch changes the "offset/loc" parameter in filterImage() / onFilterImage() from an inout-param to an out-param only, so that the calling filter can know how much the input filter wants its result offset (and doesn't include the original primitive position). This offset can then be applied to the current filter's crop rect. (I've renamed the parameter "offset" in all cases to make this clear.) This makes the call sites in SkCanvas/SkGpuDevice responsible for applying the resulting offset to the primitive's position, which is actually a fairly small change.

This change also fixes SkTileImageFilter and SkOffsetImageFilter to correctly handle an input offset, which they weren't before. This required modifying the GM's, since they assumed the broken behaviour.

NOTE: this will require rebaselining the imagefiltersgraph test, since it has a new test case.

NOTE: this will "break" the Blink layout tests css3/filters/effect-reference-subregion-chained-hw.html and css3/filters/effect-reference-subregion-hw.html, but it actually makes them give correct results. It should be suppressed on the skia roll, and I'll rebaseline it.

R=reed@google.com

Review URL: https://codereview.chromium.org/112803004

git-svn-id: http://skia.googlecode.com/svn/trunk@12895 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kImageFilter.cpp
kImageFilterUtils.cpp
927138977fa256a6719baf74221882555b24008f 03-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of https://codereview.chromium.org/110593003/"

This reverts commit c7abb25b25ba8b97948371d2bf0a2e3e78468f73.

and fixes the ashmem break

BUG=

Review URL: https://codereview.chromium.org/119753010

git-svn-id: http://skia.googlecode.com/svn/trunk@12887 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
27f890219b09e4774da75e6a11ec82849eadae5a 03-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/110593003/
Reason for revert: SkImageRef_ashmem doesn't compile

R=halcanary@google.com, scroggo@google.com
TBR=halcanary@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

Review URL: https://codereview.chromium.org/119753009

git-svn-id: http://skia.googlecode.com/svn/trunk@12884 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
f1ce05288a8fee6e691c3dff5db9dcd47818060f 03-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add onNewLockPixels, that returns rowbytes and relies on info in pixelref

This reverts commit 890a6ec633c1f54891104a072a8964b4c2c81af9.

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/110593003

git-svn-id: http://skia.googlecode.com/svn/trunk@12883 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
kScaledImageCache.cpp
dcea5300dc028b5ea210d778b9e34a7504fee6d2 03-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> assert in setPixelRef that the pr matches the bitmap's config

BUG=
R=halcanary@google.com

Review URL: https://codereview.chromium.org/120063003

git-svn-id: http://skia.googlecode.com/svn/trunk@12880 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
862020763d9d2fb1900b2c84e55dadf46482246d 03-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12875 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
07adb6359fd137ccb633b2c64ee2287c8edfd701 02-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Function pointers -> templates in SkPictureFlat.

These flatten/unflatten function pointers were driving me nuts when reading the
generated assembly for this code. We don't need the flexibility of function
pointers here, so let's use templates to make it more manageable. You'll
notice we get much better typing now on flatten/unflatten.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/123213004

git-svn-id: http://skia.googlecode.com/svn/trunk@12873 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
33cc989f23d091be2463ada7c12e334be204a80f 02-Jan-2014 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR and make fInfo const

BUG=
R=halcanary@google.com

Review URL: https://codereview.chromium.org/107373004

git-svn-id: http://skia.googlecode.com/svn/trunk@12863 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
1bed687f6b8fc67336f0f5d6fb5a5b38dd0fdff9 02-Jan-2014 halcanary@google.com <halcanary@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a release procedure to SkMallocPixelRef; remove SkDataPixelRef

This works in a way that is similar to SkData.

SkMallocPixelRef::NewWithProc

Motivation: Chrome has a ETC1PixelRef which calls delete[] on the
pixles on destruction. There is no reason for them to almost
duplicate our class, when we can provide them a more flexible
class. Example use:

static void delete_uint8_proc(void* ptr, void*) {
delete[] static_cast<uint8_t>(ptr);
}
SkPixelRef* new_delete_pixref(const SkImageInfo& info,
SkColorTable* ctable) {
size_t rb = info.minRowBytes();
return SkMallocPixelRef::NewWithProc(
info, rb, ctable,
new uint8_t[info.getSafeSize(rb)],
delete_uint8_proc, NULL);
}

SkMallocPixelRef::NewWithData

Motivation: This allows up to eliminate SkDataPixelRef. We
modified SkImage_Raster to use MallocPixelRef rather than
SkDataPixlRef.

Also: Unit tests in tests/MallocPixelRefTest.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/106883006

git-svn-id: http://skia.googlecode.com/svn/trunk@12861 2bbb7eff-a529-9590-31e7-b0007b416f81
kMallocPixelRef.cpp
8625fdbb04e832e6886169bbda9382fce9e6dc64 02-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused function.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/121113005

git-svn-id: http://skia.googlecode.com/svn/trunk@12859 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
ae8f9528fd0052e06653272abb44a1f49a3b726b 01-Jan-2014 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> speedup SkRect::intersect

git-svn-id: http://skia.googlecode.com/svn/trunk@12851 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
f5e1f63461d0a4dcb4bd5d0388ec6d392b97e5f0 31-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12849 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
4856964eae9cdb779baa08ef9e5646ccb9a3140d 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ComputeRowBytes must not overflow width when it shifts

BUG=
R=halcanary@google.com

Review URL: https://codereview.chromium.org/122473002

git-svn-id: http://skia.googlecode.com/svn/trunk@12848 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
51c2a83bdac0745fc3b60795401d5db29c10ce11 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix drawVertices when we have both colors and textures

fix: don't re-call setContext on the composshader (i.e. on the tricolor shader) for each triangle,
since the trishader handles that explicitly. Just call setContext on the original shader.

BUG=

Review URL: https://codereview.chromium.org/102193006

git-svn-id: http://skia.googlecode.com/svn/trunk@12847 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
73be1fc2b02757e3d98621d7cf735591aa6dffdb 30-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Possibly uninitialized SkRgnBuilder fStorage.

fStorage needs to be initialized regardless of SkRgnBuilder::init()'s
outcome - otherwise the destructor can end up freeing garbage.

BUG=330293
R=reed@google.com, fmalita@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/122313002

git-svn-id: http://skia.googlecode.com/svn/trunk@12846 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_path.cpp
85e143c33c214e54187aa28146aa7666961a0d17 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reenable vertices gm, adding picture support

BUG=

Review URL: https://codereview.chromium.org/112913005

git-svn-id: http://skia.googlecode.com/svn/trunk@12845 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
fbd9b17711e6f86853f1c5fdb76efce1b9f52bd1 30-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing crash found by fuzzer

A previous fix only partially fixed this issue by adding validation on some inputs of SkImageInfo. If anything invalid is detected in SkImageInfo, unfortunately, this can cause getSafeSize() to do an illegal memory access while calling bytesPerPixel(), which could have a bad color type at this point.

A possible fix is to simply make sure we are in a valid state before calling getSafeSize().

BUG=329254
R=reed@google.com, mtklein@google.com, bsalomon@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/107003006

git-svn-id: http://skia.googlecode.com/svn/trunk@12844 2bbb7eff-a529-9590-31e7-b0007b416f81
kMallocPixelRef.cpp
57212f9469c8056bab3c85243dbb904e386eab95 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of https://codereview.chromium.org/113823003/"

This reverts commit 68b4b32066ea0ba9dbb5d326a836f8a54297b7aa.

BUG=

Review URL: https://codereview.chromium.org/122293002

git-svn-id: http://skia.googlecode.com/svn/trunk@12842 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kMipMap.cpp
kRegion_path.cpp
4ad4ae907fa83773f671137b0e4e8c9525ab81cd 30-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/113823003/
Reason for revert: need to update callsites in linux codecs

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

Review URL: https://codereview.chromium.org/122283002

git-svn-id: http://skia.googlecode.com/svn/trunk@12841 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kMipMap.cpp
kRegion_path.cpp
a306d93cd73c3fc1d81479cbba98638f1e055385 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove Sk64 from public API, and start to remove usage internally

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/113823003

git-svn-id: http://skia.googlecode.com/svn/trunk@12840 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kMipMap.cpp
kRegion_path.cpp
5f31b4f8d47d3e1f68fb9f83ce92a1a5e5805433 21-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12812 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
01c41a556e0ef0ae2338a1b5ae110a501e1ed0a8 20-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "begin to remove SkLONGLONG and wean Skia off of Sk64""

This reverts commit 15b986baf026a3da5e2cac8106a1b753df242c39.

BUG=

Review URL: https://codereview.chromium.org/119353003

git-svn-id: http://skia.googlecode.com/svn/trunk@12796 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kMath.cpp
22e967228deb773e3509cbc5772963779451c191 20-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12793 2bbb7eff-a529-9590-31e7-b0007b416f81
kMath.cpp
385afd8b7127b5578d6f272e6b9e7080c2afd229 20-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disable SkFloat unit test due to Chromium-side compilation errors



git-svn-id: http://skia.googlecode.com/svn/trunk@12791 2bbb7eff-a529-9590-31e7-b0007b416f81
kFloat.cpp
b1560445c66a751fc2ea7b85b94430a985940f3e 19-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "begin to remove SkLONGLONG and wean Skia off of Sk64"

This reverts commit 784890196fdab96289f9389db43aca01f35db0f9.

Revert "use LL suffix for 64bit literal"

This reverts commit 9634295aff9bffd7a3875a0ca4a9b1a27d0793fc.

BUG=

Review URL: https://codereview.chromium.org/116543009

git-svn-id: http://skia.googlecode.com/svn/trunk@12790 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kMath.cpp
d6a301e9adfe465cbaf682963b3bd43d7fcebedc 19-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> begin to remove SkLONGLONG and wean Skia off of Sk64

BUG=
R=caryclark@google.com

Review URL: https://codereview.chromium.org/99433009

git-svn-id: http://skia.googlecode.com/svn/trunk@12788 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kMath.cpp
8128d8c119382279918b90ad8d80ccb3aaebb8a0 19-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move distance field font code into GrDistanceFieldTextContext.

This avoids the SkDraw path and renders the distance field glyphs directly from
GrDistanceFieldTextContext. It also disables LCD, subpixel and autohinting, and
removes the supporting code when rendering DF fonts.

R=reed@google.com, bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/85653004

git-svn-id: http://skia.googlecode.com/svn/trunk@12770 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
1915fd09f3b60eb907f5ab155e8379b589e2bae1 19-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused SkFixed and SkFract functions

BUG=
R=caryclark@google.com

Review URL: https://codereview.chromium.org/113873008

git-svn-id: http://skia.googlecode.com/svn/trunk@12767 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kCordic.cpp
kCordic.h
kFloat.h
kMath.cpp
kMathPriv.h
kPicturePlayback.cpp
9f9d5829c29d8934fa0d4d348173d5ae39bed4e9 18-Dec-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Get rid of DEFINE_TESTCLASS() macro.

Remaining tests were rewrite to use DEF_TEST() macro instead. This fixes
the FIXME in TestClassDef.h

BUG=None
TEST=tests
R=mtklein@google.com

Review URL: https://codereview.chromium.org/114563003

git-svn-id: http://skia.googlecode.com/svn/trunk@12760 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
7af78e0d6ae874877a729a27e3f8008719b4d1c2 18-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix off-by-one error with rotated HQ scaling

BUG=
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/118193005

git-svn-id: http://skia.googlecode.com/svn/trunk@12755 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
5db04dfad7dae105adcb82caf013f4775bfe1257 18-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Address memory leak in SkScaledImageCache

https://codereview.chromium.org/107443009/



git-svn-id: http://skia.googlecode.com/svn/trunk@12749 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
83c6a2252555a974be4054aaca3a294e76efc32a 18-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove last remnant of SK_SCALAR_IS_FIXED code

move SkScalarMean into its only caller, reducing out public API exposure

BUG=

Review URL: https://codereview.chromium.org/117133004

git-svn-id: http://skia.googlecode.com/svn/trunk@12733 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
6e252d49c9bb6b805478560dd99b83ff1d1411de 18-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkScalarMean into its only caller, reducing out public API exposure

BUG=

Review URL: https://codereview.chromium.org/117973002

git-svn-id: http://skia.googlecode.com/svn/trunk@12732 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
ef74fa189b738e13295d6a96f86a6e10223505a8 17-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed more fuzzer issues

- Added the "isAvailable" function to check how much bytes are remaining in the stream before doing potentially large mallocs. That way, we can signal a bad stream instead of crashing.
- Added data validation in SkImageInfo.cpp
- Added NULL pointer check in displacement
- Modified the fuzzer for randomized bitmap types

BUG=328934,329254
R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/116773002

git-svn-id: http://skia.googlecode.com/svn/trunk@12723 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
kImageInfo.cpp
kMallocPixelRef.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
e1ca705cac4b946993f6cbf798e2a0ba27e739f3 17-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/111353003

git-svn-id: http://skia.googlecode.com/svn/trunk@12719 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
kDraw.cpp
kRTree.cpp
kRegion_path.cpp
kScan_Hairline.cpp
8f4d2306fa866a26f9448048ff63f692b2ba43aa 17-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats

To keep the CL (slightly) managable, this does not make any changes to
existing macros (e.g. SkScalarMul). Just tackling #ifdef constructs this
time around.

BUG=
R=bsalomon@google.com, caryclark@google.com

Review URL: https://codereview.chromium.org/117053002

git-svn-id: http://skia.googlecode.com/svn/trunk@12712 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kCubicClipper.cpp
kEdge.cpp
kEdge.h
kFDot6.h
kFlattenableBuffers.cpp
kGeometry.cpp
kLineClipper.cpp
kMath.cpp
kMatrix.cpp
kPaint.cpp
kPathMeasure.cpp
kPicture.cpp
kRect.cpp
kScan.cpp
kScan.h
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
kStrokerPriv.cpp
79b7eeebdff3bfae8a517dc2e4763bc2c7f81557 16-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Tweaks in how to apply bitmap filter levels in GPU.

Fix fallback to MIP from bicubic for bitmap shaders
Skip MIP level generation on GPU when not minifying
Add medium quality and mixed up/down matrix test cases to filterbitmap tests

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/103913012

git-svn-id: http://skia.googlecode.com/svn/trunk@12697 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
02076831575a6d4706e1aa0c14a25508f173de88 16-Dec-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove an assert that assumes too much.

The resulting bitmap may look funny, but it may not be our bug, and
the assert is making it difficult to use SKP files.

TBR=robertphillips@google.com, rmistry@google.com, bensong@google.com

BUG=skia:1905

Review URL: https://codereview.chromium.org/111463006

git-svn-id: http://skia.googlecode.com/svn/trunk@12696 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
3c12840b234e614faf569e80f311a77ce65d9fe0 16-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFP.h and replace SkFP with SkScalar stop respecting SK_SOFTWARE_FLOAT, assume its always false stop respecting SK_SCALAR_SLOW_COMPARES, assume its always false

BUG=
R=caryclark@google.com

Review URL: https://codereview.chromium.org/116183002

git-svn-id: http://skia.googlecode.com/svn/trunk@12686 2bbb7eff-a529-9590-31e7-b0007b416f81
kFP.h
kGeometry.cpp
kMatrix.cpp
kRect.cpp
96f5fa02e996e39179f2eb88d57e8ed6114b06c5 16-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12685 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kPathRef.cpp
cfd90d6073baef9841dcb6e7b25d244f06ceeeaa 13-Dec-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkScalar when aligning glyphs in user space.

Drawing text from paths is done in user space and not in device space.
All operations in user space should be performed with SkScalars.

BUG=327031
R=reed@google.com

Review URL: https://codereview.chromium.org/113123005

git-svn-id: http://skia.googlecode.com/svn/trunk@12682 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
c0784dbd408596aff13a5d97448f7a9e5d3cf7d9 13-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkScalarCompare type and header

BUG=
R=fmalita@chromium.org

Review URL: https://codereview.chromium.org/113193004

git-svn-id: http://skia.googlecode.com/svn/trunk@12681 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kMatrix.cpp
bf790232f6d94b54239dbc210d8beee7411ca458 13-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update all callsites to use info for pixelrefs

#define SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR in chrome to keep old API signature (for now)

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/100723005

git-svn-id: http://skia.googlecode.com/svn/trunk@12677 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
0efb21bd1cd359b732a59753f3c1da096aab561a 13-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Improved SkPathRef interface security

https://codereview.chromium.org/115323004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12676 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
4428734907480cdb4ccecb47152d7be8cd1aec32 13-Dec-2013 halcanary@google.com <halcanary@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow 0-width SkBitmap in setConfig.

Previously, SkBitmap::setConfig would allow zero height, but not zero
width. This is changed for consistancy.

A unit test was added.

BUG=
R=reed@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/111953004

git-svn-id: http://skia.googlecode.com/svn/trunk@12673 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
0daa1adb03b4b1fc11d854cb7754416ac05a31e8 13-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors

https://codereview.chromium.org/112603003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
93b40594b78ab40170b5a7fa0811fa95ab8fc30f 13-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remvoe duplicate impl for SkImageInfo flattening
Add onNewLockPixels

This reverts commit bb8eff6a70c52b7644391cfd4f4d21bf7294a6bf.

BUG=

Review URL: https://codereview.chromium.org/111323005

git-svn-id: http://skia.googlecode.com/svn/trunk@12665 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
c83a91f4721739f05f9df51d496d50b5d028b132 13-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of https://codereview.chromium.org/112783004/"

This reverts commit 3293fe57a7507541e9040eab880dcd82c43881f4.

Conflicts:
src/core/SkScaledImageCache.cpp

BUG=

Review URL: https://codereview.chromium.org/108613005

git-svn-id: http://skia.googlecode.com/svn/trunk@12663 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
kScaledImageCache.cpp
6b8dbb668f1f069270d35a47cfe98decd059c625 13-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move segment mask from SkPath to SkPathRef

https://codereview.chromium.org/105083003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12660 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
fa7fd80ec36103351c32a7a1f235a6095110c39c 12-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect if the scaledimagecache returns a purged bitmap

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/110383005

git-svn-id: http://skia.googlecode.com/svn/trunk@12654 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapScaler.cpp
kScaledImageCache.cpp
kScaledImageCache.h
b85ebea5267ec0b9630d828840fa2d7df29b9f43 12-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Preventing division by 0

I did bench tests and I can't compute the denom before the if condition without taking a hit. After a few quick tests on my linux desktop, computing the 1st denom costs 6ms, the 2nd one 5ms and both together cost 9ms. The reason for this is that both if conditions here are exceptions and are expected to be false, so the denom computation should be skipped, if possible. The bench test I ran was :

out/Release/bench --match Xfermode_Hue --config 8888 --minMs 1000

BUG=
R=senorblanco@chromium.org, senorblanco@google.com, reed@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/114173002

git-svn-id: http://skia.googlecode.com/svn/trunk@12649 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
281713e4d4d77e086a0053351da6f7358d3cf4b6 12-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/112783004/
Reason for revert: Failing assert on Android

R=scroggo@google.com, halcanary@google.com, reed@google.com, rmistry@google.com
TBR=halcanary@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/93673005

git-svn-id: http://skia.googlecode.com/svn/trunk@12646 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
kScaledImageCache.cpp
772d8524cef44f973abde368a69f8d17b55c6d74 12-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ensure that we call onUnlock only when we onLock succeeded

BUG=
R=halcanary@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/112783004

git-svn-id: http://skia.googlecode.com/svn/trunk@12642 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
kScaledImageCache.cpp
728f2a62526c8643ba5d234e6f570a4ebd06271a 12-Dec-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialize SkPixelRef::fInfo.

Still will need to make subclasses call the version of the constructor
that initializes fInfo properly.

R=reed@google.com

Review URL: https://codereview.chromium.org/110843006

git-svn-id: http://skia.googlecode.com/svn/trunk@12639 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
388695146469f09942e21a2d03d8ca0428f9489c 12-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12635 (Make leak counters thread-safe - https://codereview.chromium.org/99483003) due to compile errors on Mac 10.6 & in Chrome



git-svn-id: http://skia.googlecode.com/svn/trunk@12637 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
469a9732c5e75c70e73f51a5e4e0657b0129fdc7 12-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make leak counters thread-safe and turn them on by default for Debug

Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219
R=robertphillips@google.com, mtklein@google.com, bungeman@gmail.com, bsalomon@google.com, bungeman@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/99483003

git-svn-id: http://skia.googlecode.com/svn/trunk@12635 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
4da3bfc5b2a44a4904286683d772c584bfa09787 12-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Fix font width generation when glyph 0 is used.

Using glyph 0 caused gid 0 to be in the subset list twice, which violated an assumption in the code. Added an assert for the assumption and updated the code to not insert gid 0 into the subset list twice.

BUG=skia:1889
R=bungeman@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/113093004

git-svn-id: http://skia.googlecode.com/svn/trunk@12632 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
398337b3a5d66a7db5d36a3b5182e4407e2292f7 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "remvoe duplicate impl for SkImageInfo flattening"

Reason: breaks chrome_mac_tests which still have non-imageinfo constructors

This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.

BUG=

Review URL: https://codereview.chromium.org/103033005

git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
a0d183d89160e31962e99475abe8a77c30626a40 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert of https://codereview.chromium.org/108773003/"

This reverts commit 947e6a3142af66b750f1247ef933b11ed8455dd4.

BUG=

Review URL: https://codereview.chromium.org/112963003

git-svn-id: http://skia.googlecode.com/svn/trunk@12630 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
ff9c6c92e5f962b34f7421e67ac112f81a018bd3 11-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of https://codereview.chromium.org/108773003/
Reason for revert: breaks chrome-mac-tests

TBR=
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/113193003

git-svn-id: http://skia.googlecode.com/svn/trunk@12629 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
f3aead2829fa515f790631ee65784a7b9b073343 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remvoe duplicate impl for SkImageInfo flattening

Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""""

This reverts commit eabd6b2ed4e494b323c08f32358f45950a0368c3.

BUG=

Review URL: https://codereview.chromium.org/108773003

git-svn-id: http://skia.googlecode.com/svn/trunk@12624 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
6a32add491cc736aab95561d137909cd7c5d65ef 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""""

This reverts commit d08eca87a0bef10112a211de540f89656a80b86a.

BUG=

Review URL: https://codereview.chromium.org/108303003

git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
6965a0a2df9d35cd0a25e1738f0388272d03f399 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""

BUG=

Review URL: https://codereview.chromium.org/110503003

git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
785f2e1426b2f90cab2fdd4460d8ccd0970d987e 11-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> be more careful about OOB source pixels in the scanline rescaler, and
less certain about why the standalone scaler might have faileds

BUG=
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/100473011

git-svn-id: http://skia.googlecode.com/svn/trunk@12619 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapProcState.cpp
772443a3e6428422f20ca4f40ed453a5c3604884 11-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add more tests for discardable caches

BUG=
R=halcanary@google.com

Review URL: https://codereview.chromium.org/112833003

git-svn-id: http://skia.googlecode.com/svn/trunk@12618 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
773f8e24214991332eaf903e72c13dca7d78d40d 11-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid heap allocation in SkPictureStateTree constructor

This makes empty state trees cheaper. ~1% improvement on rasterize_and_record_micro.key_silk_cases on Android.

BUG=1772
R=tomhudson@chromium.org, tomhudson@google.com

Author: skyostil@chromium.org

Review URL: https://codereview.chromium.org/111573002

git-svn-id: http://skia.googlecode.com/svn/trunk@12616 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.cpp
kPictureStateTree.h
5f209e64057e607e260c9bb4fee02d16c5f35f98 10-Dec-2013 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "[PDF] Fix font embedding restrictions."

This reverts r12600 and r12601, likely causing crash on Mac.

Review URL: https://codereview.chromium.org/111893002

git-svn-id: http://skia.googlecode.com/svn/trunk@12604 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
47fb2b9c67c2c4c464e8eb05e9b7877cfb1636aa 10-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Fix font embedding restrictions.

Stop using restricted font outlines and honor don't subset restriction.

R=reed@google.com, bungeman@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/107863002

git-svn-id: http://skia.googlecode.com/svn/trunk@12600 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
bc91fd71faa2c5fd14423fecd18e50701c922ced 10-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrBicubicEffect take tile modes rather than GrTextureParams.

GrTextureParams allows the caller to override the filter mode. But no filtering other than nearest neighbor makes sense.

Also removes coord set from creation signature since it is unused.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/99523008

git-svn-id: http://skia.googlecode.com/svn/trunk@12591 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
cf0803b46f60d9fcb5ad9a376b638c4c32b655de 10-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12590 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
e4eb122a61d7c29f1dd979a41d90524fd249db3f 09-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> support scaledimagecache instantiable using discardablememory

Add this to your build/gyp system to use discardable instead of malloc+budget

#define SK_USE_DISCARDABLE_SCALEDIMAGECACHE

R=halcanary@google.com

Review URL: https://codereview.chromium.org/105933003

git-svn-id: http://skia.googlecode.com/svn/trunk@12588 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kScaledImageCache.cpp
kScaledImageCache.h
f309dbcf2a8084afc44774a675c68756993acbc3 09-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add

git-svn-id: http://skia.googlecode.com/svn/trunk@12587 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageInfo.cpp
9230ea29718bcf1a92a89a1a518fb896bbbe00cf 09-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make info real in SkPixelRef, and add bitmap::asImageInfo

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/108663004

git-svn-id: http://skia.googlecode.com/svn/trunk@12586 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
cea9abb001b07eaf4340a78db708bfac9e8c68c2 09-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Do not use GrBicubic effect when downscaling. Also, don't use glTexStorage as it interferes with deleyed mipmap generation.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/105353002

git-svn-id: http://skia.googlecode.com/svn/trunk@12576 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kMatrix.cpp
f1715706f761e7e254f601abf33581702fa8fe17 06-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR, initially always on

BUG=

Review URL: https://codereview.chromium.org/106183007

git-svn-id: http://skia.googlecode.com/svn/trunk@12552 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
2ebc10dd12a6fe55fda37a9bd5b1e0c1c1e08232 06-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""

This reverts commit 5f035e90d6dea0139a4f204b634e7b7b3b4976d7.

Reverting because it breaks chrome/blink due to new SkPixelRef constructor arg.

BUG=

Review URL: https://codereview.chromium.org/108993002

git-svn-id: http://skia.googlecode.com/svn/trunk@12551 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
473f0aa2bb218e50fce5e19063f8c8fdaf57fad4 06-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""

This reverts commit 4174afb18a9746bbad2a06c0ec2d4ad35f72d790.

BUG=

Review URL: https://codereview.chromium.org/108723003

git-svn-id: http://skia.googlecode.com/svn/trunk@12547 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
c2e9db30d393862bd3485cfe57b4ac06433f2f32 06-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed a few places where uninitialized memory could have been read

Also added early exit in SkImageFilter's constructor to avoid attempting to deserialize all inputs once a bad input has been found. This avoids hanging if a filter pretends to have 1 billion inputs when that's just an error on the number of inputs read by the filter.

BUG=326206,326197,326229
R=senorblanco@chromium.org, senorblanco@google.com, reed@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/106943002

git-svn-id: http://skia.googlecode.com/svn/trunk@12544 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilter.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
5b132b28da61e89cdcb84e95f30a58f8184739fc 06-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."

This reverts commit 154e08b2f5904ef533da694e3510befcb9a3f3e2.

revert due to warnings

Review URL: https://codereview.chromium.org/108513003

git-svn-id: http://skia.googlecode.com/svn/trunk@12538 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
3e89524e747b513986abfeeea00b6fac79593f26 06-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.

R=mtklein@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/68973005

git-svn-id: http://skia.googlecode.com/svn/trunk@12537 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kImageFilterUtils.cpp
kMallocPixelRef.cpp
kMaskFilter.cpp
kPixelRef.cpp
d611864e679a58865b111e74fe7ac919cba42163 06-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 32 - Xfermode: 1-pixel NEON modeprocs

In some cases, it's easy to provide a NEON version of the 1-pixel modeprocs.
Combined with https://codereview.chromium.org/23724013/ (merged) it allows
up to 35% speed improvement on Xfermodes when aa is non-NULL.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, reed@google.com, mtklein@google.com, luisjoseromeroesclusa@hotmail.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/104883004

git-svn-id: http://skia.googlecode.com/svn/trunk@12525 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
1b2c1b893adb7fdd4ee2ac305e47009c428ba72a 05-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkOnce: let f be any functor, update comments

BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/104433005

git-svn-id: http://skia.googlecode.com/svn/trunk@12518 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
kScaledImageCache.cpp
2c7c7ee47d75e7815ea8db05e924ab55958cb402 05-Dec-2013 halcanary@google.com <halcanary@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Big Cleanup: SkBitmapFactory, SkLazyPixelRef, SkImageCache

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
kDiscardableMemory.h
ab1c13864df34aecfd4840ea7d1e4f8730b44f4e 05-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix compilation with SK_ENABLE_INST_COUNT=1

Add INHERITED declarations to class declarations that prevent
compilation with the flag.

Remove SK_DEFINE_INST_COUNT from all class implementations. Instead,
use function-local static variables in the reference count helper
classes to create the global instances to store the needed info. The
accessor functions are defined inline in the helper classes, so
definitions are not needed. The initialization point of the variables
should be as well defined as previously.

Remove SK_DECLARE_INST_COUNT_TEMPLATE and use SK_DECLARE_INST_COUNT
instead. This avoids possible future compilation errors further.

For SK_ENABLE_INST_COUNT=0 compilation, add an empty static member
function to all classes that use SK_DECLARE_INST_COUNT and
SK_DECLARE_INST_COUNT_ROOT macros. The function ensures that classes
contain public INHERITED typedef. This member function seems to be
compiled away. This shouĺd ensure that part of the compilation errors
are caught earlier.

Also adds DSK_DECLARE_INST_COUNT to few SkPDFDict subclasses.

R=robertphillips@google.com, richardlin@chromium.org, bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/98703002

git-svn-id: http://skia.googlecode.com/svn/trunk@12501 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kBBoxHierarchy.cpp
kBitmap.cpp
kBitmapDevice.cpp
kBitmapHeap.cpp
kCanvas.cpp
kColorFilter.cpp
kColorTable.cpp
kData.cpp
kDataTable.cpp
kDevice.cpp
kDeviceProfile.cpp
kDrawLooper.cpp
kFlattenable.cpp
kFontHost.cpp
kImageFilter.cpp
kMaskFilter.cpp
kMaskGamma.h
kPath.cpp
kPathEffect.cpp
kPathHeap.cpp
kPathRef.cpp
kPicture.cpp
kPictureFlat.cpp
kPictureStateTree.cpp
kPixelRef.cpp
kPtrRecorder.cpp
kRTree.cpp
kRasterizer.cpp
kRefCnt.cpp
kShader.cpp
kStream.cpp
kTypeface.cpp
kXfermode.cpp
c84728d72a47415929464c5cf062300d86a91246 04-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Changed maxInputCount for exact inputCount

Processing still had issue when the number of inputs was 0, so I changed my previous fix from a maximum input count to an exact input count. -1 is used when the input count isn't fixed (but still has to be a non-negative number).

BUG=
R=senorblanco@chromium.org, reed@google.com, sugoi@google.com, bsalomon@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/100803004

git-svn-id: http://skia.googlecode.com/svn/trunk@12492 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
cd3b15ca6364a04b0eeeb4f89c7daa8aefe854c8 04-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed bad bitmap size crashes

There were 2 issues :
1 ) If the size of an SkBitmap's underlying SkPixelRef's alocated memory is too small to fit the bitmap, then the deserialization will now check this and set an error appropriately.
2 ) If a device fails to allocate its pixels, the device will be deleted and NULL will be returned to avoid attempting to draw on a bad device.

BUG=
R=senorblanco@chromium.org, reed@google.com, sugoi@google.com, halcanary@google.com, mtklein@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/92793002

git-svn-id: http://skia.googlecode.com/svn/trunk@12484 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kPixelRef.cpp
11e055518a0cbe5329232a55fe2cd177e83836d8 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Code cleanup following recapture of skps

https://codereview.chromium.org/88233003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12472 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPicture.cpp
kPicturePlayback.cpp
b06e88dc6505412cc2b1a5f0bfb0f669465e1f8e 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for SkPathRef::CreateTransformedCopy bug

https://codereview.chromium.org/99423004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12464 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
466310dbd3073add2ec934e336c30deaaf702eae 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move fIsOval from SkPath to SkPathRef

https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12463 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
kPicture.cpp
ca316f576eaa925157575985eac425206308aaf4 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r12450 (Move fIsOval from SkPath to SkPathRef)



git-svn-id: http://skia.googlecode.com/svn/trunk@12452 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
31f0ffc9c38b377c60979e18c6fd898ba08c8faf 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move fIsOval from SkPath to SkPathRef

https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12450 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
c932c9fd77503aec47c256818dd94a8b57219a43 02-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix truncation of glyphs in SkScalerContext.cpp

https://codereview.chromium.org/99323002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12430 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
d6bab0238655dbab24dfe92bd0b16b464310a8c7 02-Dec-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12427

git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_A1.cpp
kCoreBlitters.h
kGlyphCache.cpp
kGlyphCache.h
kPaint.cpp
kPicture.cpp
kScaledImageCache.cpp
kScaledImageCache.h
kScalerContext.cpp
kScalerContext.h
kString.cpp
kValidatingReadBuffer.cpp
5b39f5ba9c339d1e4dae391fee9ec1396feec180 02-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_A1.cpp
kCoreBlitters.h
kGlyphCache.cpp
kGlyphCache.h
kPaint.cpp
kPicture.cpp
kScaledImageCache.cpp
kScaledImageCache.h
kScalerContext.cpp
kScalerContext.h
kString.cpp
kValidatingReadBuffer.cpp
cb4f77d89da1d2b7ae5fd63ef7c9e6f7908ceb97 27-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Document the SkScalerContext pure virtuals.

R=reed@google.com

Review URL: https://codereview.chromium.org/92623002

git-svn-id: http://skia.googlecode.com/svn/trunk@12423 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
kScalerContext.h
23d2cf9b072e75ef37e8eec466b811a9e2da643d 27-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Trying to add the same scaled image twice shouldn't assert.

This unbreaks bench_pictures --multi foo for me.

BUG=skia:1868
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/89293002

git-svn-id: http://skia.googlecode.com/svn/trunk@12422 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
kScaledImageCache.h
43c465f2bdc449d9c090bf9e4d6e4080a74b6622 27-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix 8->1 bugs shown by removal of A1 config

BUG=

Review URL: https://codereview.chromium.org/91563003

git-svn-id: http://skia.googlecode.com/svn/trunk@12415 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
72ca2654ef1e9bc36b28fa2490015db88ace3a7b 27-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed bad memory access

BUG=323595
R=senorblanco@google.com, reed@google.com, sugoi@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/88643004

git-svn-id: http://skia.googlecode.com/svn/trunk@12410 2bbb7eff-a529-9590-31e7-b0007b416f81
kValidatingReadBuffer.cpp
49360dfa6144621db9f3ec25995b8e817a0003c0 27-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused fields from SkGlyphCache.

Review URL: https://codereview.chromium.org/89423003

git-svn-id: http://skia.googlecode.com/svn/trunk@12407 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
ca5bb87a31b8cfde73dfd7c554127ee9b3e1ab58 26-Nov-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> DM: write failed comparison mode .pngs one more level deep in the tree.

E.g. instead of having to compare
/tmp/dm/565/optimizations.png
vs.
/tmp/dm/replay/optimizations_565.png

it's now

/tmp/dm/565/optimizations.png
vs.
/tmp/dm/replay/565/optimizations.png

This lets working with skdiff go a lot more smoothly.

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/88773002

git-svn-id: http://skia.googlecode.com/svn/trunk@12402 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
11f392ed531f05e8de6b6af6ae607f90aeb080c6 26-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "remove kA1_Config, as it is no longer supported""

This reverts commit 36d712f2d4c5c79719280ad95523e6aaa88b068e.

BUG=
R=rmistry@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/86483002

git-svn-id: http://skia.googlecode.com/svn/trunk@12392 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_A1.cpp
kCoreBlitters.h
kScalerContext.cpp
6300f4d1f3bd2e1a4d991ab28e843bcc3d4a4691 26-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add 'skiapict' magic bytes to SkPicture format.

Testing: out/Debug/tests && out/Release/gm --replay --serialize


BUG=
R=fmalita@google.com, reed@google.com, fmalita@chromium.org

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/27408002

git-svn-id: http://skia.googlecode.com/svn/trunk@12391 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
7f78611271a121ffc1cd08be92018857b615204c 26-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up 4 old bytes per paint.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/27370003

git-svn-id: http://skia.googlecode.com/svn/trunk@12390 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ce33d60187718e7bb01944ee130c9f5d9fb335ec 25-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding more validation

- Added a way to check that the number of inputs of a filter is not more than a filter expects
- Added validation of reftype in SkBitmap::unflatten()
- Added validation on fKD (diffuse lighting constant) and fKS (specular lighting constant) to make sure that they are always non-negative numbers
- Added validation of SkPerlinNoiseShader::fType and SkPerlinNoiseShader::fNumOctaves

BUG=
R=reed@google.com, senorblanco@google.com, mtklein@google.com, senorblanco@chromium.org, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/83343003

git-svn-id: http://skia.googlecode.com/svn/trunk@12388 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilter.cpp
72e7808d62c02f0371135b1c152bd00b73f62479 25-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "remove kA1_Config, as it is no longer supported"

This reverts commit 2d72d8b242eac6e9d30228f5b0a407236491c369.

git-svn-id: http://skia.googlecode.com/svn/trunk@12387 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_A1.cpp
kCoreBlitters.h
kScalerContext.cpp
4b413c8bb123e42ca4b9c7bfa6bc2167283cb84c 25-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFloatToScalar macro

BUG=
R=reed@google.com, djsollen@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/85463005

git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcState.cpp
kFDot6.h
kGeometry.cpp
kLineClipper.cpp
kMaskGamma.cpp
kMaskGamma.h
kPaint.cpp
2a1f4464d150d2dc8c3fe2f39e9fb3503b7f4f54 25-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove kA1_Config, as it is no longer supported

BUG=
R=djsollen@google.com

Review URL: https://codereview.chromium.org/83093005

git-svn-id: http://skia.googlecode.com/svn/trunk@12384 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_A1.cpp
kCoreBlitters.h
kScalerContext.cpp
9b8c036eda7ca8dde40e76dcd9378b3ddd629c8b 22-Nov-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Inline performance-critical methods on SkAlphaRuns.

Clang needs to be forced to inline add, so we do that.

GCC on desktop
bench conf time old new diff diffP
draw_coverage_false 8888 c 236.08 212.01 +24.07 +10.2%
draw_coverage_true 8888 c 125.67 104.49 +21.18 +16.9%

GCC on N5
bench conf time old new diff diffP
draw_coverage_false 8888 c 566.33 529.96 +36.37 +6.4%
draw_coverage_true 8888 c 315.39 293.85 +21.54 +6.8%

Clang on desktop
bench conf time old new diff diffP
draw_coverage_false 8888 c 337.37 330.63 +6.74 +2.0%
draw_coverage_true 8888 c 126.87 119.32 +7.55 +6.0%

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/83243005

git-svn-id: http://skia.googlecode.com/svn/trunk@12370 2bbb7eff-a529-9590-31e7-b0007b416f81
kAlphaRuns.cpp
kAntiRun.h
6e223af090c6f17e3bcd48f049e592ca30a95c5c 22-Nov-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> I feel like my clang is especially sensitive to unused variables.

BUG=

Review URL: https://codereview.chromium.org/82913006

git-svn-id: http://skia.googlecode.com/svn/trunk@12369 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
44e86572ebd365d867204da9c0f41548efa35741 22-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Disable the save/clip/restore peephole optimization when a bounding hierarchy is used

This optimization is redundant with the state traversal optimization that is
performed by SkPictureStateTree and it introduces significant record time
overhead. Therefore it is better not to perform this optimization when using
a BBoxHierarchy.

BUG=1852
R=tomhudson@google.com, robertphillips@google.com, reed@google.com

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/79313003

git-svn-id: http://skia.googlecode.com/svn/trunk@12367 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
46a9bb8d71529e4a8c2ca9c68e280ea989d5bece 22-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing issues found by fuzzer

BUG=321802,321790
R=reed@google.com, senorblanco@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/83073005

git-svn-id: http://skia.googlecode.com/svn/trunk@12362 2bbb7eff-a529-9590-31e7-b0007b416f81
kValidatingReadBuffer.cpp
f61ebc0927d773fe4152a3521cdc3de0112f636e 22-Nov-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12358 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
e0a868c84ebc34c5a16b5faa1546016abb9ca0ac 22-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Apply hairline optimization only if the path renderer wants it

Make the decision to convert thin, non-hairline paths to hairline
paths at the renderer level.

The current nv_path_rendering implementation does not render
hairlines. Rendering the hairlines with normal renderers cause
unneccessary gl program changes, which is quite slow.

Changes the behavior of non-nv_path_rendering paths to always perform
the optimization if the shape ends up being painted by a renderer that
wants the optimization. Previously the optimization was applied only
when callgraph started with SkCanvas::drawPath.

Applies the optimization for GrAAHairLineRenderer and
GrDefaultPathRenderer.

This changes gm results for dashing3_{msaa4,gpu} and drawlooper_msaa4.

R=bsalomon@google.com, jvanverth@google.com, rmistry@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/38573007

git-svn-id: http://skia.googlecode.com/svn/trunk@12357 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
52314f82ba8696e957e70eabde672b6470fedf7a 21-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkProcCoeffXfermode unflatten constructor into .cpp, and range-check its mode

BUG=

Review URL: https://codereview.chromium.org/79543009

git-svn-id: http://skia.googlecode.com/svn/trunk@12355 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
9e59cb69e1907de6400c4e90fb2918fc1b7f013d 21-Nov-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix compiler error where SK_SCALAR_IS_FLOAT is not defined. (attempt 2)

R=reed@google.com

Review URL: https://codereview.chromium.org/81323002

git-svn-id: http://skia.googlecode.com/svn/trunk@12352 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
5df06a2fea7078387eb8eeaedfa283825e774015 21-Nov-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix compiler error where SK_SCALAR_IS_FLOAT is not defined.

Review URL: https://codereview.chromium.org/80993004

git-svn-id: http://skia.googlecode.com/svn/trunk@12349 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
ce0e4efabd00b38aaaeb33457dcdb6c98e6eec12 21-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix VC++ ptr-to-... and va_list confusion

R=bungeman@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/78903006

git-svn-id: http://skia.googlecode.com/svn/trunk@12346 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
75a22954453f4c0e3c0cb2ec0a46f32a473622f9 21-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Minor fixes for distance field fonts:
- Remove additional transform in drawpostext()
- Use bitmap fonts if rasterizer set in paint
- Correctly set scale ratio for drawtext()

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/79283004

git-svn-id: http://skia.googlecode.com/svn/trunk@12338 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
644629c1c7913a43ced172b98d56e0f471bc348b 21-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement a benchmark for GrResourceCache

Adds "grresourcecache_add" and "grresourcecache_find" bench tests to test
GrResourceCache::add and GrResourceCache::find. The tests work only
with GPU backends, since GrResourceCache needs an GrGpu.

Modifies bench tests to override SkBenchmark::isSuitableFor(Backend)
function that specifies what kind of backend the test is inteded
for. This replaces the previous "fIsRendering" flag that would
indicate test that did no rendering.

Adds SkCanvas::getGrContext() call to get the GrContext that the
canvas ends up drawing to. The member function solves a common
use-case that is also used in the benchmark added here.

R=mtklein@google.com, bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/73643005

git-svn-id: http://skia.googlecode.com/svn/trunk@12334 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
f1077f916427c99bdec655da4c3b9eea70423685 20-Nov-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add extra warnings to match what Android uses.

R=mtklein@google.com

Committed: https://code.google.com/p/skia/source/detail?r=12310

Review URL: https://codereview.chromium.org/74193005

git-svn-id: http://skia.googlecode.com/svn/trunk@12314 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.h
b60cdc8f4c57b461054f5b6b0995961719138237 20-Nov-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Add extra warnings to match what Android uses."

This reverts commit d234662df1ffeb1bf45b2ade16c4acfb94f89450.

This change broke the build. Will resubmit after fixing warnings.

git-svn-id: http://skia.googlecode.com/svn/trunk@12311 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.h
692f88c7f04583dcb0aca58c1f885e022d72cefb 20-Nov-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add extra warnings to match what Android uses.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/74193005

git-svn-id: http://skia.googlecode.com/svn/trunk@12310 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.h
10822c6daabf836f73e468003787d11bf33aba66 18-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkMemoryStream::setData should also set the current offset to 0.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/73273004

git-svn-id: http://skia.googlecode.com/svn/trunk@12308 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
e61a86cfa00ea393ecc4a71fca94e1d476a37ecc 18-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Guard against most unintentionally ephemeral SkAutoFoo instantiations.

I think I applied the trick everywhere possible. Limitations:
- can't be used with templated classes
- all constructors and destructors must be defined inline

A couple of the SkAutoFoo were unused in Skia, Chromium, and Android, so I
deleted them. This change caught the same bugs Cary found in SkPath, plus one
more in SampleApp.

BUG=
R=reed@google.com, caryclark@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/72603005

git-svn-id: http://skia.googlecode.com/svn/trunk@12301 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kCanvas.cpp
kComposeShader.cpp
kDescriptor.h
kDraw.cpp
kGlyphCache.h
kPath.cpp
kRasterClip.h
kString.cpp
a1a097ee814d05a92487d85db8ad02e1d852fd6f 14-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> increase coverage of SkPath.cpp, remove unused code

Using Mike Klein's excellent coverage tool, increase the
unit testing of SkPath.cpp from 70% to 95%.

Along the way, determined that these functions were not
maintained or used:

SkPath::pathTo
SkPath::contains

as well as a large block of SkPath::cheapGetDirection().

Changed SkPath::validate() to permit infinities in
the path data points.

Fixed errors in preserving direction.
Fixed error setting direction when convexity is unknown.

Added missing conic to moveTo only detector.

BUG=
R=bsalomon@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/65493004

git-svn-id: http://skia.googlecode.com/svn/trunk@12291 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
ec3ca87d331c4b7058a0fff376a05e84ae0619ca 13-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "switch GatherPixelRefs to use SkBaseDevice instead of SkBitmapDevice""

This reverts commit ff0152ec5e2a0faf38ae1a317c5d77df08139104.

BUG=

Review URL: https://codereview.chromium.org/68203018

git-svn-id: http://skia.googlecode.com/svn/trunk@12271 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
5308c83a366f965c308862bed1b6acf594af3df9 13-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> drawPosTextOnPath is now deprecated, removing all overrides and impls

BUG=
R=djsollen@google.com

Review URL: https://codereview.chromium.org/61743017

git-svn-id: http://skia.googlecode.com/svn/trunk@12270 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kCanvas.cpp
kDraw.cpp
4d164709739ae78809125cae9b8de0f3fff0d081 12-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "switch GatherPixelRefs to use SkBaseDevice instead of SkBitmapDevice"

This reverts commit 72958c374bdb9457419beeba7de1387da3293882.

BUG=

Review URL: https://codereview.chromium.org/58933007

git-svn-id: http://skia.googlecode.com/svn/trunk@12260 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
3f4bf51eddd9271b27e3c709939af1ff9ff1758d 12-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> switch GatherPixelRefs to use SkBaseDevice instead of SkBitmapDevice

BUG=
R=robertphillips@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/70473003

git-svn-id: http://skia.googlecode.com/svn/trunk@12259 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
11a253b686d2f6e9def2de8a4507591fcadfe987 12-Nov-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12232 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
50a7600d05d427c64f77d39c8c18d2bf6cabd25b 12-Nov-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disable Blurred RR optimization in Chrome

https://codereview.chromium.org/68773005/



git-svn-id: http://skia.googlecode.com/svn/trunk@12231 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
d830d13c27437b4677a4a1abfa866d98dc2d2ab9 11-Nov-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Hook in rough distance field support for fonts

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/41213003

git-svn-id: http://skia.googlecode.com/svn/trunk@12229 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
451b5962c906be9517cc99b80deecf525e85ee89 11-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Android FontHost cannot use FontMgr yet.


git-svn-id: http://skia.googlecode.com/svn/trunk@12221 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
13f9e0e4b24dd400d7de3a88959822389da59da2 11-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Re-add NULL FontMgr::Factory hadnling code removed in r12217.


git-svn-id: http://skia.googlecode.com/svn/trunk@12218 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
b3d154de5e4c318f88e4c4ad15fe626054365997 11-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SK_FONTHOST_USES_FONTMGR.

Review URL: https://codereview.chromium.org/66783003

git-svn-id: http://skia.googlecode.com/svn/trunk@12217 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kTypeface.cpp
11e5b972a984c7b4e09ba4dfeacc7bd805107c5a 08-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add sk_float_rsqrt with SSE + NEON fast paths.

Current numbers:

N4:
running bench [640 480] math_fastIsqrt NONRENDERING: cmsecs = 3.12
running bench [640 480] math_slowIsqrt NONRENDERING: cmsecs = 4.82
running bench [640 480] math_sk_float_rsqrt NONRENDERING: cmsecs = 1.99

Desktop:
running bench [640 480] math_fastIsqrt NONRENDERING: cmsecs = 0.89
running bench [640 480] math_slowIsqrt NONRENDERING: cmsecs = 0.94
running bench [640 480] math_sk_float_rsqrt NONRENDERING: cmsecs = 0.09

Haven't found any other benches where this is a significant effect yet.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/60083014

git-svn-id: http://skia.googlecode.com/svn/trunk@12203 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
8f457e3230f1a4ce737f512ffbb5c919b8d02407 08-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding error checks to SkRBuffer

BUG=
R=robertphillips@google.com, bsalomon@google.com, reed@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/61913002

git-svn-id: http://skia.googlecode.com/svn/trunk@12202 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kFlattenableBuffers.cpp
kPath.cpp
kPathRef.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
2e1b99e61ff572a45ac1238e940d090ca166b40f 08-Nov-2013 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> optimize floating pt, save a few instructions

git-svn-id: http://skia.googlecode.com/svn/trunk@12199 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
a8e33a92e27ca1523601226cad83c79a7e00c93b 08-Nov-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add ability to ninepatch blurred rounded rectangle

Speed up drawing large blurry round rectangles by converting them to
nine patches.

SkDraw:
Add drawRRect.

SkBitmapDevice:
Call SkDraw::drawRRect instead of converting SkRRect to an SkPath.

SkMaskFilter/SkBlurMaskFilter:
Create a nine patch of a blurred round rect and draw it instead of
drawing the entire thing.

SkPDFDevice:
Override drawRRect to perform the old behavior in
SkBitmapDevice::drawRect.

Depends on https://codereview.chromium.org/52703003

Tests are in https://codereview.chromium.org/52793005

BUG=https://b.corp.google.com/issue?id=11174385
R=reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/48623006

git-svn-id: http://skia.googlecode.com/svn/trunk@12198 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kDraw.cpp
kMaskFilter.cpp
b95d9f566b08ba400cca027f639e400ef7384b38 08-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove bogus assert, and remove outdated #ifdef

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/66923002

git-svn-id: http://skia.googlecode.com/svn/trunk@12196 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_A8.cpp
42feaaf0a5fbb508b237d5c844c484a1a3b0c865 08-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> use quads for mixed radius rrects

Create a specialized version of adding a pair of corner quads
that avoids the overhead of the full arc machinery.

This is on the way to changing Chrome to calling Skia directly to create fully general round rects rather than rolling their own.

R=robertphillips@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/60203002

git-svn-id: http://skia.googlecode.com/svn/trunk@12190 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
1b20a10f0205da2d53e0837e4ddc6b2bd3b8a462 08-Nov-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Do not apply hairline optimization for paths if nv_path_rendering is used"

This reverts commit r12185.

Review URL: https://codereview.chromium.org/66813002

git-svn-id: http://skia.googlecode.com/svn/trunk@12187 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
ab7442c8d733e0642d1cd80af23cdab43d77039e 08-Nov-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12186 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_A8.cpp
44fb865e81a57e0c72de3109d0ed5ea428aa1f44 08-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Do not apply hairline optimization for paths if nv_path_rendering is used

Do not convert thin, non-hairline paths to hairline paths if
nv_path_rendering is used.

The current nv_path_rendering implementation does not render
hairlines. Rendering the hairlines with normal renderers cause
unneccessary gl program changes, which is quite slow.

Changes the behavior of non-nv_path_rendering paths to always perform
the optimization if the shape ends up being painted by the
path-drawing code (GrContext::drawPathInternal). Previously the
optimization was applied only when callgraph started with
SkCanvas::drawPath. This changes drawlooper_msaa4, dashing3_msaa4 and
dashing3_gpu

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/38573007

git-svn-id: http://skia.googlecode.com/svn/trunk@12185 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
126f7f5244502c0cbf1e5fec1d2ad7a0f2eb6c34 07-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.""

This reverts commit 3c77887b3eb2d32ab668ab4e5f2f9e79103956e8.

BUG=

Review URL: https://codereview.chromium.org/50673005

git-svn-id: http://skia.googlecode.com/svn/trunk@12167 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kCoreBlitters.h
kDraw.cpp
6e3e42296b0d7a93325146d9c9a7e23ef90760fe 06-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Break up SkLazyPixelRef functionally into class hierarchy.

The reason for this CL is to allow greater decoder flexibility.
Chrome currently uses its own decoding functions. These allow for
greater flexibility in dealing with images with multiple frames or
partial data. The DecodeProc function was not flexible enough to
handle these. Instead of asking the decoder to squeeze everything
into the DecodeProc, we now ask the downstream library to inherit from
SkCachingPixelRef. If WebKit's LazyDecodingPixelRef is re-tooled to
inherit from SkCachingPixelRef, then it can make use of Skia's caching
ability while still allowing it to deal with multiple frames, scaling,
subsetting, and partial data.

- The abstract SkCachingPixelRef class handles caching the decoded
data in a SkScaledImageCache. This class relies on the virtual
functions onDecodeInfo() and onDecode() to do the actual decoding
of data.

- The SkLazyCachingPixelRef class is derived from SkCachingPixelRef.
It provides an implementation of onDecodeInfo() and onDecode() in
terms of calls to a SkBitmapFactory::DecodeProc function. It also
provides an Install() static method which installs a new
SkLazyCachingPixelRef into a SkBitmap.

SkLazyCachingPixelRef exists for two reasons: to test
SkCachingPixelRef within Skia and as an example for downstream
developers to make their own classes that inherit from
SkCachingPixelRef.

- The CachedDecodingPixelRefTest was updated to test the
SkLazyCachingPixelRef class and indirectly the SkCachingPixelRef
class.

BUG=
R=reed@google.com, scroggo@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/54203006

git-svn-id: http://skia.googlecode.com/svn/trunk@12149 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
382fde3a3c5cb5e8e3dcdc4c549541453851d8d0 06-Nov-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12147 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
20e3cd2c9fbc049eae8bcedc591c2cc8d4bed656 05-Nov-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkRRect::transform.

Much like SkPath::transform, it transforms an SkRRect based on an
SkMatrix. Unlike SkPath::transform, it will fail for matrices that
contain perspective or skewing.

Required by a future change (https://codereview.chromium.org/48623006)
to speed up drawing large blurry rounded rectangles by using ninepatches.

TODO: This could easily support 90 degree rotations, if desired.

BUG=https://b.corp.google.com/issue?id=11174385
R=reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/52703003

git-svn-id: http://skia.googlecode.com/svn/trunk@12132 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
4faa869cdabbdcf4867118b4a1272296baaeeb52 05-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org

Committed: https://code.google.com/p/skia/source/detail?r=12114

Committed: https://code.google.com/p/skia/source/detail?r=12119

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12130 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kMatrix.cpp
kPath.cpp
kPicturePlayback.cpp
kRRect.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
d3e5842db0cb169e10d6da1e62c94ba5cf182bb4 05-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid re-rendering stencil clip for every draw with reducable clip stack

Fixes the cases where clip stack reduction would cause clip to be
re-rendered to stencil for each draw call. This causes unneeded
slowdown.

Stencil cache would not be used because the clip stack generation id communicated
by the clip stack element list would be invalid. This happended due to

a) clip stack reduction creating new elements in the element list.

b) purging logic removing the generation id, but reduction logic
selecting already purged element, and thus the generation id, as
the representative state of the clip.

Cases of a) where reduction would flatten the stack to a single new
element were fixed by assigning the generation id of the top-most
element of the clip stack as the generation id of the new
element. This is not strictly minimal, but enables more caching than
using invalid id.

Cases of a) where reduction would substitute a stack element with a
new element the generation id of the substituted element is used.

The b) part was fixed by removing the purging logic. It was not
exactly correct, as the previously purged states were actually
used. The purging was not used for anything.

Changes SkClipStack API to highlight that invalid generation id is
never returned by SkClipStack. Empty stacks are wide open. Changes the
clients to reflect this.

Fixes a crash when not passing anti-alias out parameter to
GrReducedClip::ReduceClipStack. The crash is not exercised in the
current code.

Committed: http://code.google.com/p/skia/source/detail?r=12084

R=bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/48593003

git-svn-id: http://skia.googlecode.com/svn/trunk@12127 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
12a23866fe18e800da1d361d000a359ea36696eb 04-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream."

This reverts commit 6bc22e8ef1ea70a1b58409aa21254358c50f149a.

git-svn-id: http://skia.googlecode.com/svn/trunk@12124 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kMatrix.cpp
kPath.cpp
kPicturePlayback.cpp
kRRect.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
84e922bfb3e7a03f6e35beb2f1e4f2657e7cd3e9 04-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values."

This reverts commit d615e839b71f75df895de6850b774a9e1c28ad2a.

Revert "must initialize SkDraw.fClip"

This reverts commit 108e46d29b5f57927fc8b8c403bb52019d8cb16d.

BUG=

Review URL: https://codereview.chromium.org/57883006

git-svn-id: http://skia.googlecode.com/svn/trunk@12122 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kCoreBlitters.h
kDraw.cpp
b48a59ae81a35642fe715a5cdd6fd758b652bff3 04-Nov-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

BUG=
R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=12114

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12119 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kMatrix.cpp
kPath.cpp
kPicturePlayback.cpp
kRRect.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
ac9d306a92e569e85a7611e9db00943b5b551f1e 04-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.

R=bsalomon@google.com, mtklein@google.com

Review URL: https://codereview.chromium.org/56453002

git-svn-id: http://skia.googlecode.com/svn/trunk@12118 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter.h
kBlitter_A8.cpp
kCoreBlitters.h
kDraw.cpp
eb221268ab1067af7c48e04a75147d4bcca87191 04-Nov-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r12114 due to https://code.google.com/p/skia/issues/detail?id=1794 ('Assertion failures on various buildbots as of r12114')



git-svn-id: http://skia.googlecode.com/svn/trunk@12115 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kMatrix.cpp
kPath.cpp
kPicturePlayback.cpp
kRRect.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
305f78e8c18a26b7ead11758d6a4fa0519932cca 04-Nov-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12114 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.cpp
kBuffer.h
kMatrix.cpp
kPath.cpp
kPicturePlayback.cpp
kRRect.cpp
kRegion.cpp
kValidatingReadBuffer.cpp
f0784bde753feaff601f703089872fc1af265328 01-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Avoid re-rendering stencil clip for every draw with reducable clip stack"

This reverts commit 92a7d4bf6a371f1f864154be902e8d86938e560b.

Revert "fix mac 10.6 build"

This reverts commit 114cd1a9f2734aaed6914718814364811b78bd7f.

BUG=

Review URL: https://codereview.chromium.org/54543008

git-svn-id: http://skia.googlecode.com/svn/trunk@12087 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
f91aaecbe9d3630123d803d80f7b29f06c8976c7 01-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Construct round rects with perpendicular tangents.

The round rects are constructed as before out of quadratics,
but without fudging the control points. Instead, the mid on-
curve point is nudged slightly outward to prevent the
convexity test from failing.

The convexity test now includes an error term for sign
inequality after computing the cross product of the control
lines. When the control points are represented as vectors,
the number of bits of precision may be greatly reduced.

Account for this by passing the number of bits available
from the original control point values into the equality
check.

Making round rect construction lines perpendicular improves
the chances of success when path ops encounters clips.

No new tests are needed -- this change is exercised by the
convex Path unit tests and the gm tests arcofzorro and
hairlines.

R=robertphillips@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/48783002

git-svn-id: http://skia.googlecode.com/svn/trunk@12085 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kPath.cpp
679eb674fc064993d534df4d48a4ddaff4e33e06 01-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid re-rendering stencil clip for every draw with reducable clip stack

Fixes the cases where clip stack reduction would cause clip to be
re-rendered to stencil for each draw call. This causes unneeded
slowdown.

Stencil cache would not be used because the clip stack generation id communicated
by the clip stack element list would be invalid. This happended due to

a) clip stack reduction creating new elements in the element list.

b) purging logic removing the generation id, but reduction logic
selecting already purged element, and thus the generation id, as
the representative state of the clip.

Cases of a) where reduction would flatten the stack to a single new
element were fixed by assigning the generation id of the top-most
element of the clip stack as the generation id of the new
element. This is not strictly minimal, but enables more caching than
using invalid id.

Cases of a) where reduction would substitute a stack element with a
new element the generation id of the substituted element is used.

The b) part was fixed by removing the purging logic. It was not
exactly correct, as the previously purged states were actually
used. The purging was not used for anything.

Changes SkClipStack API to highlight that invalid generation id is
never returned by SkClipStack. Empty stacks are wide open. Changes the
clients to reflect this.

Fixes a crash when not passing anti-alias out parameter to
GrReducedClip::ReduceClipStack. The crash is not exercised in the
current code.

R=bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/48593003

git-svn-id: http://skia.googlecode.com/svn/trunk@12084 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
025128811219dc45fd99b6c4d1d14f833cf7a26e 31-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding size parameter to read array functions

In some cases, the allocated array into which the data will be read is using getArrayCount() to allocate itself, which should be safe, but some cases use fixed length arrays or compute the array size before reading, which could overflow if the stream is compromised.

To prevent that from happening, I added a check that will verify that the number of bytes to read will not exceed the capacity of the input buffer argument passed to all the read...Array() functions.

I chose to use the byte array for this initial version, so that "size" represents the same value across all read...Array() functions, but I could also use the element count, if it is preferred.

Note : readPointArray and writePointArray are unused, so I could also remove them

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/37803002

git-svn-id: http://skia.googlecode.com/svn/trunk@12058 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
kFlattenableBuffers.cpp
kMallocPixelRef.cpp
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
4469938e92d779dff05e745559e67907bbf21e78 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""

This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

Review URL: https://codereview.chromium.org/54603004

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxRecord.cpp
kBitmap.cpp
kBitmapDevice.cpp
kBitmapHeap.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kMipMap.cpp
kOrderedWriteBuffer.cpp
kPath.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kShader.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
6fcbfcead5dc1b61fa5b4c139a1a3714e8c58091 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"

This reverts commit 1d22c4aaf9d8f053f25194a1ed74b137bfb19497.

git-svn-id: http://skia.googlecode.com/svn/trunk@12056 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxRecord.cpp
kBitmap.cpp
kBitmapDevice.cpp
kBitmapHeap.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kMipMap.cpp
kOrderedWriteBuffer.cpp
kPath.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kShader.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
081560e3abe25c4821b79ca1465f4dbd371c4b5c 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning

BUG=
R=robertphillips@google.com, senorblanco@chromium.org, vandebo@chromium.org

Review URL: https://codereview.chromium.org/51033004

git-svn-id: http://skia.googlecode.com/svn/trunk@12055 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxRecord.cpp
kBitmap.cpp
kBitmapDevice.cpp
kBitmapHeap.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kCanvas.cpp
kDraw.cpp
kMipMap.cpp
kOrderedWriteBuffer.cpp
kPath.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kShader.cpp
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
7ed98df9ba14bdb58e381508eb0505c963a4b6db 31-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12043 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
1ab9f737f000e530f0c7713c8fad282f39e26efe 30-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkPathRef gen id for SkPath::getGenerationID

R=mtklein@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12029 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
4db592c4085afed2be27a208d778f9ee13e671ab 30-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove contains(x,y) for rects and rrects ... not well defined, and unused

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/51953003

git-svn-id: http://skia.googlecode.com/svn/trunk@12022 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kRRect.cpp
35fe7372b1b897a77578a220c334e1fb36d144e9 30-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> prototype for kerning api

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/29363009

git-svn-id: http://skia.googlecode.com/svn/trunk@12018 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
b77f0f4ae560e97cc4cd2758752d955549017c3c 30-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12013 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
7101abe5b37d82ea222e971a42615a97a2419edb 29-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12010 (Use SkPathRef gen id for SkPath::getGenerationID https://codereview.chromium.org/49693002) due to test failures in PathTest on Android



git-svn-id: http://skia.googlecode.com/svn/trunk@12012 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
4cc7518d9b6ca59cbe17c091bf4032a27ba78e1d 29-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkPathRef gen id for SkPath::getGenerationID

R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12010 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
950923b43761c10d9c8ffc1dfc0c878100d1e702 29-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> All SkAnnotations are no-draw. Propose we fold that through.

BUG=
R=edisonn@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/48523008

git-svn-id: http://skia.googlecode.com/svn/trunk@12008 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kPaint.cpp
7585479202f1fe0b6a0a9dcd27697b56154706f4 29-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow SkLazyPixelRef to use SkScaledImageCache

- SkScaledImageCache:
- Add new FindAndLock/AddAndLock variants that work well with
SkLazyPixelRefs (take width, height, generation_id).
- Add static versions of these new variants.

- SkLazyPixelRef:
- If NULL passed in as SkImageCache* in the constructor, it will
now default to using the static SkScaledImageCache methods to
cache decoded images.
- If (fImageCache==NULL), the default allocator can be changed
with the setAllocator method. If (fImageCache!=NULL), the
SkImageCache handles allocation.

- CachedDecodingPixelRefTest to test the new functionality.

BUG=
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/37343002

git-svn-id: http://skia.googlecode.com/svn/trunk@12006 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
kScaledImageCache.h
77e079af1a909ee9d14306db48561d77e2f9fcab 28-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Enabling validation code in serialization and adding serialization to fuzzer

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11968

R=reed@google.com, mtklein@google.com, senorblanco@chromium.org, bsalomon@google.com, robertphillips@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/44573002

git-svn-id: http://skia.googlecode.com/svn/trunk@11981 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
kValidatingReadBuffer.cpp
3721ee652aa53e8fdd700f1f02d582f5efdcb60b 28-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r11968 (Enabling validation code in serialization and adding serialization to fuzzer - https://codereview.chromium.org/44573002) due to failure on Chromium AllQuads test.




git-svn-id: http://skia.googlecode.com/svn/trunk@11974 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
d25d6c7b8ecd4105157f0293a081549ba32ef968 25-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Enabling validation code in serialization and adding serialization to fuzzer

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org, bsalomon@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/44573002

git-svn-id: http://skia.googlecode.com/svn/trunk@11968 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
10ba006631a0c350aa2bcba188a60404869607c8 25-Oct-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow users to build on top of, instead of beneath, SkRefCnt.

Alternative to r11811.

The Chromium half of this can be seen at https://codereview.chromium.org/40973002/ .

R=reed@google.com

Review URL: https://codereview.chromium.org/40503002

git-svn-id: http://skia.googlecode.com/svn/trunk@11967 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
3c996f8a15e5d8fada9550d978e9b5344b81d276 24-Oct-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement charToGlyph on remaining ports.

R=reed@google.com

Review URL: https://codereview.chromium.org/22859070

git-svn-id: http://skia.googlecode.com/svn/trunk@11955 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
50a3043194cf278a74ff51c33c6cdb52cbe1f8f9 24-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> We want to give SkPixelRef a way to signal over to GrResourceCache that it's become pointless to keep around textures based on that SkPixelRef when its pixels change, so that it can be a good citizen and free those textures.

This adds an invalidation listener mechanism to SkPixelRef to let it send this message while still staying ignorant of who's listening.

These messages are tricky to deliver. The SkPixelRefs they originates from and the GrResourceCaches they ultimately end up at may be on different threads; neither class is threadsafe; their object lifetimes are totally independent; it's a many-senders-to-many-receivers relation; and neither codebase should really know about the other.

So I've added a per-message-type global message bus to broadcast messages to threadsafe inboxes. Anyone can post() a message, which will show up in all the inboxes of that type, read whenever the inbox's owner calls poll(). The implementation is _dumb_; it can be improved in several dimensions (inbox size limits, lock-free message delivery) if we find the need.

I took some care to make sure not to send the invalidation message for any SkPixelRef that's sharing a generation ID with another SkPixelRef.

BUG=
R=bsalomon@google.com, scroggo@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26734003

git-svn-id: http://skia.googlecode.com/svn/trunk@11949 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMessageBus.h
kPixelRef.cpp
c1cf5c00893871f5391aa335952097b9406651b3 24-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Borrow Android's ARMv6 memory barrier for SkOnce.

BUG=skia:1743
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/34353009

git-svn-id: http://skia.googlecode.com/svn/trunk@11941 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
ccecbbb2eaef1042c860cf56427e8d237a95c312 24-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Always create an instance when testing GrEffects for SkXfermode and SkArithmeticMode

Previously the TestCreate methods of the effects would create a static
instance and return that for all invocations. This is probably a
copy-paste error going back to initial TestCreate method in r8449. At
that time, the effect was always the same and thus static usage made
sense.

R=bsalomon@google.com, senorblanco@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/39393002

git-svn-id: http://skia.googlecode.com/svn/trunk@11939 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
ac90d1d0b1a02e3dfdc8780f0a35e0e6855d6ce1 24-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replacing SkTDArray with SkAutoSTArray to reduce memory allocation overhead in SkTileGrid::search

BUG=https://code.google.com/p/skia/issues/detail?id=1735
R=tomhudson@chromium.org

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/35633002

git-svn-id: http://skia.googlecode.com/svn/trunk@11936 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
381010e5501a8d681f8f059486da74f4924f81e5 24-Oct-2013 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expose SkPicture::willPlayBackBitmaps()

This returns true if (1) the picture has finished recording and
(2) this picture or any picture drawn into it refers to any bitmaps.
It allows clients doing complicated manipulations of the picture to
early-out when there are no bitmaps present.

BUG=303281
R=reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@11935 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
583b18a20959c9ac360316a366f4ddd9598bdf52 24-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11934 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
bbfe4541ef154696313374de2130b1ac90e28482 24-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Apply matrix early in draw bitmap

Committed: http://code.google.com/p/skia/source/detail?r=11930

Reverted: https://code.google.com/p/skia/source/detail?r=11932

R=robertphillips@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/30593003

git-svn-id: http://skia.googlecode.com/svn/trunk@11933 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilterUtils.cpp
e9821871ecebbeed06aaef54741a71607ccc9720 24-Oct-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Apply matrix early in draw bitmap"

This reverts commit 4c446c8eb50b7a6e6f917fae7b4c4ffe5658a949.

Fix build.

git-svn-id: http://skia.googlecode.com/svn/trunk@11932 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilterUtils.cpp
25e5a20e656a3d895753b61be3fc3645039c57ab 23-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Apply matrix early in draw bitmap

R=robertphillips@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/30593003

git-svn-id: http://skia.googlecode.com/svn/trunk@11930 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilterUtils.cpp
1a6382f5e76c051ffbbb60f3a68524dfe57cf798 23-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Split up SkXfermode::asNewEffectOrCoeff() into asNewEffect(), asCoeff().

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/37593002

git-svn-id: http://skia.googlecode.com/svn/trunk@11926 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
d594dbec0407343b7ac13af9c4580ec5933ab060 23-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Follow up to serialization validation code

1 ) Added check for bool to make sure is it either 0 or 1 and not garbage

2 ) Added more solid kernel size checks in SkMatrixConvolutionImageFilter

3 ) Make sure array size is validated in SkMergeImageFilter

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/23548034

git-svn-id: http://skia.googlecode.com/svn/trunk@11925 2bbb7eff-a529-9590-31e7-b0007b416f81
kValidatingReadBuffer.cpp
c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cf 23-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial error handling code

I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure.

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11247

R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/23021015

git-svn-id: http://skia.googlecode.com/svn/trunk@11922 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kFlattenable.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kGraphics.cpp
kImageFilter.cpp
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kOrderedWriteBuffer.cpp
kScalerContext.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kValidationUtils.h
338a66481e1f3597bb8e2d5aeb5a26d5bd3c5f3e 23-Oct-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> TSAN build fix: forgot to pass the address into ANNOTATE_BENIGN_RACE.

BUG=

Review URL: https://codereview.chromium.org/37403002

git-svn-id: http://skia.googlecode.com/svn/trunk@11916 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
1f81fd6546c111e21bc665657e976b9d842192df 23-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SK_ONCE for SkData and SkPathRef

Adds SK_ONCE_FRIEND, to allow SK_DEF_ONCE code to be friends with a class. This had to go in include/core to be visible to headers there.

BUG=
R=reed@google.com, bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26491003

git-svn-id: http://skia.googlecode.com/svn/trunk@11914 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMatrix.cpp
kOnce.h
kPathRef.cpp
fbcd415aa01801df5f554963d7463649b49ead73 23-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove GrContext from SkXfermode::[Aa]sNewEffectOrCoeff() and all subclasses,
since it's unused.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/31853003

git-svn-id: http://skia.googlecode.com/svn/trunk@11913 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
7ce564cccb246ec56427085872b2e1458fe74bd1 22-Oct-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance."

This reverts commit r11904

Review URL: https://codereview.chromium.org/35543002

git-svn-id: http://skia.googlecode.com/svn/trunk@11909 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
c294a97842d6d24b220e7512a8043b93554ed40e 22-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if fBitmap is still NULL, return false

git-svn-id: http://skia.googlecode.com/svn/trunk@11908 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
ad254fee73ad70a45acba69dccb9b65f88c3a92a 22-Oct-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance.

Committed: http://code.google.com/p/skia/source/detail?r=11842

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/23484007

git-svn-id: http://skia.googlecode.com/svn/trunk@11904 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
4b7d6730898abc9e02d1e12c2fd732945f4c1ab4 21-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> More clang warning fixes.

Mostly unused functions and variables removed.

BUG=None
TEST=ninja -C out/Debug most
ninja -C out/Release most

R=bsalomon@google.com, caryclark@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/27933002

git-svn-id: http://skia.googlecode.com/svn/trunk@11884 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
9cd697c69674d9499c86bd4c668e5c1411e0b85e 21-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change ERROR label to BAD_CONFIG -- avoid windows complaint

BUG=

Review URL: https://codereview.chromium.org/32623002

git-svn-id: http://skia.googlecode.com/svn/trunk@11878 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
383a697692cf46951fd451f6f4c3d03634a6a1cb 21-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> store SkAlphaType inside SkBitmap, on road to support unpremul

BUG=
R=bsalomon@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/25275004

git-svn-id: http://skia.googlecode.com/svn/trunk@11877 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapDevice.cpp
kBitmapScaler.cpp
c2eae4795478ab134a2315b1a9ff2c5de1d049e4 21-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting revert of r11862 (Constify SkFlattenable::getFactory()) or reverting r11871.



git-svn-id: http://skia.googlecode.com/svn/trunk@11876 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableBuffers.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
b5e391025e9859937fd6b4b3f4b8204d0bb73859 20-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverted due to Chromium compilation failures. Please see:

https://codereview.chromium.org/30973002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11871 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableBuffers.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
123671901abfa595d09ca789b487c4bc7c1f7cbc 20-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix cubic->quad RR corner regression

https://codereview.chromium.org/29673002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11870 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPath.cpp
7938bae14af94c1d48d122a2d686e123b66411a7 18-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement crop rect support for SkMatrixConvolutionImageFilter.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/27471002

git-svn-id: http://skia.googlecode.com/svn/trunk@11863 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
575604d4c294bc8679d9889f9e187d4bc057e401 18-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Constify SkFlattenable::getFactory().

This allows us to also constify the argument of
SkFlattenableWriteBuffer::writeFlattenable() - which I've recently found
myself const-casting for no apparent good reason.

R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/29143005

git-svn-id: http://skia.googlecode.com/svn/trunk@11862 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableBuffers.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
f84ad8f7fc0194389a8099da2c5e8fff9f092890 18-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11850 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
c2cc1dbe818c8a5a699fbe18c4fc79b9d93daa94 17-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r11842 (call drawRect to try GrAARectRenderer if the path is a rect - https://codereview.chromium.org/23484007) due to changes to the following GM images:

inverse_paths
pathopsinverse




git-svn-id: http://skia.googlecode.com/svn/trunk@11845 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
cd7992ba55e8b87580f54e7c19fc033bed01640d 17-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs




Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11777

Committed: http://code.google.com/p/skia/source/detail?r=11813

R=djsollen@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11843 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
521a46750d87d3d206617d05d917ad6aad242ca4 17-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance.

R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/23484007

git-svn-id: http://skia.googlecode.com/svn/trunk@11842 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
627f66283b16dab30b31b381e35795104b70a56b 17-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disable r11835 (Replace cubic round rect corners with quads) due to performance regression



git-svn-id: http://skia.googlecode.com/svn/trunk@11841 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
1cc385b7a427ec8b511c56744a02046a60dd3fd8 17-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace cubic round rect corners with quads

https://codereview.chromium.org/26372006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11835 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
4677acc75915ebd32ee0efed5c7b41da2a9d047c 17-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11834 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableBuffers.cpp
kRefCnt.cpp
dfe0f43e11b511eaef566ae174504d30922b14a8 17-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r11813 (ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs - https://codereview.chromium.org/26627004) due to Chromium compilation faliures.



git-svn-id: http://skia.googlecode.com/svn/trunk@11833 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
536dc83c58e2e90deb959cc077235c66cbf6c789 16-Oct-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Build fix fo windows only

Build fix

git-svn-id: http://skia.googlecode.com/svn/trunk@11828 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
0315ed8e5fec74ca143302d8c836494e7ffb63d9 16-Oct-2013 junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Build fix for chromium shared component build

BUG=304265
TBR=reed@google.com

Review URL: https://codereview.chromium.org/27082003

git-svn-id: http://skia.googlecode.com/svn/trunk@11827 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
4cc18156c2f998135eaff6eea7a8a0696dc98ec9 16-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> catch the other case where we need to see if fScaledBitmap.lockPixels() might have failed

2nd-half clone of https://codereview.chromium.org/26273006/

BUG=chromium:295895

Review URL: https://codereview.chromium.org/26973006

git-svn-id: http://skia.googlecode.com/svn/trunk@11825 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
3f1f2a3a59c43e5bce67ab98e55df45bc7c933a3 16-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make CropRect immutable after construction.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/27490005

git-svn-id: http://skia.googlecode.com/svn/trunk@11819 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
3e7e992a8aa564e75bede2a1dc787142d2c2bab0 16-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add display of filterLevel to debugger

https://codereview.chromium.org/27525002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11818 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
1ae6c2b0121fd1fcd5b736a810060fc66ed68286 16-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check of fScaledBitmap failed to lock

BUG=

Review URL: https://codereview.chromium.org/27530003

git-svn-id: http://skia.googlecode.com/svn/trunk@11816 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
b4c29c536374cdc8657838744002e8a770dff871 16-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs




Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11777

R=djsollen@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11813 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
8b66abb9bc78fd031334f565c9394f4fdc99811b 16-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove support for SK_CROP_RECT_IS_INT, now that it is no longer used in Blink or Chrome.

BUG=
R=reed@google.com, reed

Review URL: https://codereview.chromium.org/27521002

git-svn-id: http://skia.googlecode.com/svn/trunk@11812 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
353482251e61971a8cf3a60bbb6910f482be634f 16-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> force readbuffer clients to use specialized readFoo for flattenables

BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26702002

git-svn-id: http://skia.googlecode.com/svn/trunk@11803 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kComposeShader.cpp
kFilterShader.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kPaint.cpp
kPathEffect.cpp
kScalerContext.cpp
472629190eb3c8220742c584e19f3a07b2d09c8c 16-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11800 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_path.cpp
f8dd38424cf4460dd10c390c4051f484edf1c210 16-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r11777 (ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs) due to Chromium compilation failure




git-svn-id: http://skia.googlecode.com/svn/trunk@11799 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
2f92966c6a2419023570d5951a4234cdaebcc3c9 15-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkDataTable from SkFlattenable hierarchy.

As far as I can tell, we never really needed this. No code outside the unit
test calls this code.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26223009

git-svn-id: http://skia.googlecode.com/svn/trunk@11792 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
e0e1da34f3c00ec93c61643d4cf4eea6d27c5fef 15-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkColorTable from SkFlattenable hierarchy.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/27392002

git-svn-id: http://skia.googlecode.com/svn/trunk@11791 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
kMallocPixelRef.cpp
23d0ab724129a517ea1bc6cf60830169b524f3bf 15-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return false if we can't scale, to force us to try to lock the original and then proceed

BUG=
R=wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/27382002

git-svn-id: http://skia.googlecode.com/svn/trunk@11789 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
8b169311b59ab84e8ca6f3630a1e960cc1be751e 15-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Second wave of Win64 warning cleanup

https://codereview.chromium.org/27343002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11778 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
baa15581f6cbd9ce4cc5ba5eb1d6fcbe27ae6741 15-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs




Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11777 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
b58ba8912ab1a372eb60ab111f477b915eb3da4d 15-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> account for inverse-paths when we prealloc storage in the rgn-builder

test inversepath->rgn

BUG=
R=caryclark@google.com

Review URL: https://codereview.chromium.org/27222005

git-svn-id: http://skia.googlecode.com/svn/trunk@11776 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_path.cpp
fbc58a305518fe611113a51649bf557c991ac8cf 15-Oct-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11769 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kPaint.cpp
adacc7067ad617cdc7bbef39192ca80f4b4d27f9 14-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Start cleaning up 64bit Win warnings

https://codereview.chromium.org/27192003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11764 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.h
kRTree.cpp
kRTree.h
0cd2ac6c721120a2628524dad91798aa3e7ec41d 14-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkAnnotation to not inherit from SkFlattenable (does not need dynamic factories)

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/26606004

git-svn-id: http://skia.googlecode.com/svn/trunk@11762 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kPaint.cpp
4979f32cd3fd29db5f23712f0aea3cf01a5c695d 14-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkDataSet, and just store a key/value in SkAnnotation

BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/27208002

git-svn-id: http://skia.googlecode.com/svn/trunk@11759 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kData.cpp
da30055b296faa5a100e474e0406ef4296c14241 14-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkData need not be a Flattenable, since it does not need subclass/factories

BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26928002

git-svn-id: http://skia.googlecode.com/svn/trunk@11754 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
2c8e9d40a42ef24e811c3a2614b361cad1036110 11-Oct-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add stdio include for Android specific code in SkRegion.


git-svn-id: http://skia.googlecode.com/svn/trunk@11741 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
3dc82c44706b017877880160ad6af284ec3997e3 11-Oct-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Correct 32bit pointer assumption in assert in SkMatrix.


git-svn-id: http://skia.googlecode.com/svn/trunk@11739 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
e9d61ed8c410ffe88f9dbd07db6778e16dbb0d88 11-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use #if insteadof #ifdef DYNAMIC_ANNOTATIONS_ENABLED. It's always defined, just to 0 or 1.

BUG=
R=mtklein

Review URL: https://codereview.chromium.org/26358010

git-svn-id: http://skia.googlecode.com/svn/trunk@11731 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
21a705d2ebdf0319d45970784950886f62a77141 10-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SK_ONCE for SkMatrix::I()

Going to start doing these in progressively larger and larger bulk,
but I figured the first few changes probably merit caution.

BUG=
R=reed@google.com, bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26905002

git-svn-id: http://skia.googlecode.com/svn/trunk@11721 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
fb6deed66c20f86c86c105f41dbbf3f3c4a47e4c 10-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make explicit the requirement that all colorfilters are reentrant-safe

BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26876002

git-svn-id: http://skia.googlecode.com/svn/trunk@11705 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
0197b32bfb98c793c8104cefde26ca62562d1f0e 10-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Always clear dest in SkBitmap::copyTo's draw path

https://codereview.chromium.org/26268003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11697 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
0a6151d66cc32d91eca037c91e557158cf8a2be2 10-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "change SkColorTable to be immutable""

This reverts commit b8162cb840f4cb6002ef68d5ac775c6a122c52a9.

Fixed was call-sites in benches that used the (now gone) setIsOpaque api.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/26572006

git-svn-id: http://skia.googlecode.com/svn/trunk@11695 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState_procs.h
kColorTable.cpp
kProcSpriteBlitter.cpp
kSpriteBlitter_RGB16.cpp
b295fb6ff3222453912dfcb7a1ea5184d40014b5 10-Oct-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkImageFilter's cropRect from SkIRect to a CropRect struct, containing an SkRect and flags indicating which parameters are set.

NOTE: this will require SK_CROP_RECT_IS_INT=1 to be set in Chrome until Blink has been updated to use SkImageFilter::CropRect. Include https://codereview.chromium.org/26528002/ with the Skia roll.

Note also that SK_CROP_RECT_IS_INT is a temporary measure until all call sites in Blink have been updated to use SkRect.

R=reed@google.com

Review URL: https://codereview.chromium.org/26371002

git-svn-id: http://skia.googlecode.com/svn/trunk@11692 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
824c346b6e0e114063c1a8ad4ba7c3a669ee2cff 10-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Express (GLSL expression, possibly known value) pairs as a class

Express (GLSL expression, possibly known value) pairs as a class
instead of two variables Introduces GrGLSLExpr<N> to encapsulate
the expression and possibly constant-folded value of the expression.

This simplifies passing of the expressions to functions.

Changes the shaders with following patterns:
{ // Stage 0: Linear Gradient
vec4 colorTemp = mix(uGradientStartColor_Stage0, uGradientEndColor_Stage0, clamp(vMatrixCoord_Stage0.x, 0.0, 1
colorTemp.rgb *= colorTemp.a;
- output_Stage0 = vec4((vColor) * (colorTemp));
+ output_Stage0 = (vColor * colorTemp);
+ }

Previously the vector cast was always added if constant folding was
effective, regardless of the term dimensions. Now the vector upcast is
not inserted in places where it is not needed, ie. when the binary
operator term is of the target dimension.

Also, some parentheses can be omitted. It is assumed that
GrGLSLExpr<N>("string") constructors construct a simple expression or
parenthesized expression.

Otherwise the shader code remains identical.

R=jvanverth@google.com, bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/25048002

git-svn-id: http://skia.googlecode.com/svn/trunk@11690 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
1303761a8990fe1ea56f68e2c660c58d97930a25 09-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove _impl from names in SkOnce.h.

This is entirely to make power users (me, Mike's per-object use case) feel less
bad about calling sk_once() directly with args not created by DEF_SK_ONCE.

BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26129010

git-svn-id: http://skia.googlecode.com/svn/trunk@11686 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
235002fb127fc5b7564910434faed84337c08238 09-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> low hanging calloc fruit

BUG=
R=reed@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/24267014

git-svn-id: http://skia.googlecode.com/svn/trunk@11683 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kTDynamicHash.h
48d9ff5b3475ad4b345fae35e1ce36b34069691b 09-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "change SkColorTable to be immutable"

This reverts commit 1c0ff422868b3badf5ffe0790a5d051d1896e2f7.

BUG=

Review URL: https://codereview.chromium.org/26709002

git-svn-id: http://skia.googlecode.com/svn/trunk@11677 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState_procs.h
kColorTable.cpp
kProcSpriteBlitter.cpp
kSpriteBlitter_RGB16.cpp
9864c24e40448ef64b1fe367eee1d63a872e51b8 09-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkColorTable to be immutable

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/25353002

git-svn-id: http://skia.googlecode.com/svn/trunk@11676 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState_procs.h
kColorTable.cpp
kProcSpriteBlitter.cpp
kSpriteBlitter_RGB16.cpp
3a19fb58a68183ea855439bdc92da4b90592c6a1 09-Oct-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sketch of SK_ONCE

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/26563002

git-svn-id: http://skia.googlecode.com/svn/trunk@11674 2bbb7eff-a529-9590-31e7-b0007b416f81
kOnce.h
df187c7eb27d7616b75d91f3329deb97c4cd6de2 09-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs


Xfermode: allow for SIMD modeprocs

This patch introduces the ability to have SIMD Xfermode modeprocs.
In the NEON implementation, SIMD modeprocs will process 8 pixels
at a time.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11654

R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11669 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
12eb7811e305d7731f5d070742a6ac6814c30cc4 09-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> try uping the cache-count-limit to see if it speeds up bench-pictures

BUG=

Review URL: https://codereview.chromium.org/25118003

git-svn-id: http://skia.googlecode.com/svn/trunk@11663 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache_Globals.h
6f980c6a2354fed70a6258fb4dd4155936660930 08-Oct-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs"

This reverts http://code.google.com/p/skia/source/detail?r=11654

Review URL: https://codereview.chromium.org/26340010

git-svn-id: http://skia.googlecode.com/svn/trunk@11655 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
84cc1ebc5a4789e93e23c65eb4014ef5b8b0bab4 08-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs


Xfermode: allow for SIMD modeprocs

This patch introduces the ability to have SIMD Xfermode modeprocs.
In the NEON implementation, SIMD modeprocs will process 8 pixels
at a time.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11654 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
kXfermode_proccoeff.h
80f3fcd2554c39987323946306ff32273164ea6a 08-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Update #if to #ifdef for consistency

R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/26495002

git-svn-id: http://skia.googlecode.com/svn/trunk@11653 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
d5321726466185dce9ae92126044b944f51b3c83 07-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make skia almost compile again with clang.

clang is reporting many unused functions and variables.

R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/26167002

git-svn-id: http://skia.googlecode.com/svn/trunk@11630 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kAAClip.cpp
kMatrix.cpp
kQuadClipper.cpp
kRTree.cpp
kXfermode.cpp
86490573b5cba554a27637e22485455a7b133de7 04-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> commit to xfermode objects being immutable

BUG=
R=djsollen@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/25968004

git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kPicturePlayback.cpp
kXfermode.cpp
aaf3e64b2c867dff1b750cebdeff9e57784b8f22 02-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move makeSpace and resetToSize from SkPathRef.cpp to .h

https://codereview.chromium.org/25754002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11578 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
03087072483378a43f7b3f7a47944614187275eb 02-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make it explicit that some validate methods are debug only

https://codereview.chromium.org/25716003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11575 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
77af6805e5faea1e2a5c0220098aec9082f3a6e5 02-Oct-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GPU coord transforms automatic

Adds a GrCoordTransform class and updates the framework to handle
coord transforms similar to how it handles textures with
GrTextureAccess. Renames GrGLEffectMatrix to GrGLCoordTransform and
slightly repurposes it to be used by the framework instead of effects.

R=bsalomon@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/24853002

git-svn-id: http://skia.googlecode.com/svn/trunk@11569 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
12705329d0807863d4d80cac0f02e543c26f24a1 01-Oct-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow creating a picture from skp to fail.

Replace the current constructor for creating an
SkPicturePlayback to a factory. In the factory,
check for incorrect data that would result in an invalid
playback. If the playback is invalid, return NULL, and
return NULL from SkPicture's factory as well.

Update SkTimedPicture(Playback) as well.

BUG=skia:1672
R=caryclark@google.com

Review URL: https://codereview.chromium.org/24826002

git-svn-id: http://skia.googlecode.com/svn/trunk@11554 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
50df4d013f840749f70d1759c23c4217e727fd54 28-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11513 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kPath.cpp
kPathRef.cpp
6e7883b84f3a766376eff459a3895e45cfd8d09d 27-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Limit warning message to de-clutter bench output logs

https://codereview.chromium.org/25112002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11511 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
3e292aa398dc40f5188bc4f0b36c8916ac552308 27-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move unlikely-to-be-inlined code from SkPathRef.h to SkPathRef.cpp

https://codereview.chromium.org/24998004/



git-svn-id: http://skia.googlecode.com/svn/trunk@11506 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.cpp
b0889a5aa610552bf306edc8d9a35d2d601acdb9 27-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL effectively reverts:

r5997 Altered arcTo's canonical points to (usually) be convex (https://codereview.appspot.com/6709051/)
r9928 GM (and fix) for drawArc capping issue (https://codereview.chromium.org/18271003/)

Instead of pushing some of the on-curve points out to attain convexity, this patch pulls all the off curve points in.

R=reed@google.com

Review URL: https://codereview.chromium.org/24810002

git-svn-id: http://skia.googlecode.com/svn/trunk@11504 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kPath.cpp
65caeaf32d09f5886f3c740cfef2f1c26ef9cb50 27-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11493 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache_Globals.h
baed71fbfeee030184af74eb7e8622e99952bbf8 26-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add counting to Globals, and refactor some for clarity

BUG=

Review URL: https://codereview.chromium.org/24447003

git-svn-id: http://skia.googlecode.com/svn/trunk@11484 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kGlyphCache_Globals.h
2c86fbb0b14a1f674bf56ea5ad6a086cc004a76e 26-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkDivMod with a special case for ARM.

BUG=skia:1663
R=djsollen@google.com, tomhudson@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/24159009

git-svn-id: http://skia.googlecode.com/svn/trunk@11482 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kScaledImageCache.cpp
97f8167622473edf2e4262fa619883e616574c19 26-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> We don't flatten or unflatten SkPaintOptionsAndroid. Reproduce and fix.

BUG=skia:1625
R=djsollen@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/24075010

git-svn-id: http://skia.googlecode.com/svn/trunk@11472 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintOptionsAndroid.cpp
ca0c8389e2fd1c7f528869beb77a6c8587d59f29 26-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move bound and isFinite into pathref

https://codereview.chromium.org/24350006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11467 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.cpp
kPathRef.h
kPicture.cpp
dfc740393e3476905af1964a280cd1e7a0940cc2 24-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete USE_CACHE_HASH

BUG=

Review URL: https://codereview.chromium.org/23526082

git-svn-id: http://skia.googlecode.com/svn/trunk@11450 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
c8fb9983880e53ee5fee65f04e1f29cf95fdd3b3 22-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r11423 (low hanging calloc fruit)



git-svn-id: http://skia.googlecode.com/svn/trunk@11427 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kTDynamicHash.h
2905ff552c75344309e858c4259e7489d3ab586d 20-Sep-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> low hanging calloc fruit

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/24267014

git-svn-id: http://skia.googlecode.com/svn/trunk@11423 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kTDynamicHash.h
519f9677a41239808f41a7c13ef1f6e05eb1ed50 20-Sep-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add sk_calloc. Remove SkMemory_stdlib, which seems unused.

I'm seeing basically no difference between malloc + bzero and calloc on my desktop, but on a Galaxy Nexus calloc is never slower, and significantly faster once the allocation size becomes large, both for allocation and for _reading_.

BUG=skia:1662
R=reed@google.com

Review URL: https://codereview.chromium.org/24251008

git-svn-id: http://skia.googlecode.com/svn/trunk@11414 2bbb7eff-a529-9590-31e7-b0007b416f81
kMemory_stdlib.cpp
2291e72b998244f3b4426b7307967b096ab13b1a 18-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11336 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
636d87a3f411507020a21c6b0641da795eb5d275 17-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> update devicelooper to skip internal tiles that are empty, and unittests

BUG=

Review URL: https://codereview.chromium.org/23463040

git-svn-id: http://skia.googlecode.com/svn/trunk@11331 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
a604c4f971adf84dcf8235994b1441f6f4fe8ab1 17-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11309 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
24ddde97581624777feebc9e95ae558282f95d4c 16-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert 11247, 11250, 11251, 11257, and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)

11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11257 Canary build fix - https://codereview.chromium.org/23532068
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11288 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kOrderedWriteBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kValidationUtils.h
kXfermode.cpp
ba6e954140e45e251d67934ed6ad752149fcf72f 16-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert the revert of 11247, 11250, 11251 and 11279 (Chrome already relies on changes in r11247)



git-svn-id: http://skia.googlecode.com/svn/trunk@11287 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kOrderedWriteBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kValidationUtils.h
kXfermode.cpp
478884f7d3b8c7be8b62f3fa2b79192f411c3fec 16-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert 11247, 11250, 11251 and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)

11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11285 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kOrderedWriteBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kValidationUtils.h
kXfermode.cpp
dc9888c409e4903a687ea05b9846987b829bf9ac 14-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11279 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
cee9dcb8377e1f85a7a232822a894464ea6ccddc 13-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> start to remove lockPixels from bitmapshader

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/23591030

git-svn-id: http://skia.googlecode.com/svn/trunk@11258 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kPixelRef.cpp
558d5d3f08bcb4ae5c65d318234fe1f3ca61c0b4 13-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Warnings as errors fix



git-svn-id: http://skia.googlecode.com/svn/trunk@11250 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
5792cded61a7302f32bd0f4aeda51a9b2f1d00f6 13-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial error handling code

I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure.

BUG=
R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23021015

git-svn-id: http://skia.googlecode.com/svn/trunk@11247 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kFlattenableBuffers.cpp
kFlattenableSerialization.cpp
kImageFilter.cpp
kOrderedWriteBuffer.cpp
kValidatingReadBuffer.cpp
kValidatingReadBuffer.h
kValidationUtils.h
kXfermode.cpp
9a070f24f1450091dfe25cacec8bd375ec7a0e50 10-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11176 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
e0e7cfe44bb9d66d76120a79e5275c294bacaa22 09-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change old PRG to be SkLCGRandom; change new one to SkRandom

The goal here is to get people to start using the new random number
generator, while leaving the old one in place so we don't have to
rebaseline GMs.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23576015

git-svn-id: http://skia.googlecode.com/svn/trunk@11169 2bbb7eff-a529-9590-31e7-b0007b416f81
kFloat.cpp
kXfermode.cpp
82d1223aece4703bc9f3a3612cbabaa8c2f2809b 09-Sep-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Two and three color GPU gradients without textures.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22854005

git-svn-id: http://skia.googlecode.com/svn/trunk@11158 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
beba935f650fa946e276896ce961655b97f7c2d1 09-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_IGNORE_IMAGE_PRESCALE flag (no longer used)

git-svn-id: http://skia.googlecode.com/svn/trunk@11153 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
ef0e3190d3dd4c4e0652c550ac3dbd73762b5322 09-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move decision to smash invmatrix into unit-space (for faster repeat/mirror to after the call to possiblyScaleImage(), so we don't confuse that code with a munged matrix. Fixes the scaled_tilemodes gm for HQ

BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23470005

git-svn-id: http://skia.googlecode.com/svn/trunk@11152 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
e15d9ecef8ca7a2818b4dc021f7b0dea8a03cb00 06-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move platformConvolutionProcs() call to right before we need it

git-svn-id: http://skia.googlecode.com/svn/trunk@11127 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
fed04b34315ed72dbb20e630908638d1c829c760 05-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove fConvolutionProcs from State, and just use it locally

BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23796005

git-svn-id: http://skia.googlecode.com/svn/trunk@11118 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapScaler.cpp
kBitmapScaler.h
kConvolver.cpp
kConvolver.h
40039a350bc7c1d650e1f0ba18f17734c5c3ba3e 05-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> simplify making translate only invmatrix

BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23875010

git-svn-id: http://skia.googlecode.com/svn/trunk@11114 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
a8c09668f9e602f77422a344dfa4d13155c91fd3 05-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 18 - Preparation work for BitmapProcState





BitmapProcState: clean a little and get rid of some asm

replacing the apparently stupid dx+dx+dx leads to more instructions
being generated.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BitmapProcState: move code common to C and NEON to a separate header

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/21931002

git-svn-id: http://skia.googlecode.com/svn/trunk@11109 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_utils.h
30df03ce784868b5920ed385e6e516b132606f37 04-Sep-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> forgot to guard GPU includes when SK_SUPPORT_GPU not defined

git-svn-id: http://skia.googlecode.com/svn/trunk@11089 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
3aad3b01afc77993ff051c02e49186294e312980 04-Sep-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add support for high quality image filtering on the GPU

R=bsalomon@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23779003

git-svn-id: http://skia.googlecode.com/svn/trunk@11087 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
85092f05c406ed5a0c65ff576816924c1a6b903b 04-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11071 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kMatrixUtils.h
25f72ed03485f58998846d80858d64b5a3c40c7f 03-Sep-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix Matrix44Test and double-to-float conversion in SVD code

git-svn-id: http://skia.googlecode.com/svn/trunk@11067 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
5b2e2640ed345c4670b99b349f62eb6f9446ec1e 03-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revise SVD code to remove arctangents.
Also added bench for timing matrix decomposition.

R=reed@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23596006

git-svn-id: http://skia.googlecode.com/svn/trunk@11066 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kMatrixUtils.h
8b4ba6373559026f7e24de1b8b487d8b72256dc1 03-Sep-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bug in SkWriter32.

If you give SkWriter32 external storage but that external storage is too small
for the first reservation you make, you'll hit an assert in debug mode.

I think the answer is to simply remove the SkASSERT. Added a test.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/23646007

git-svn-id: http://skia.googlecode.com/svn/trunk@11062 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
e0c170f7bbb8c16089274f2691f8484286fcbbe2 31-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11049 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kDevice.cpp
74a3a2135ca82ab9324b7e499caa3280348a4fda 30-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename ShaderType enum to ShaderVisibility

Renames ShaderType in GrGLShaderBuilder to ShaderVisibility. It is now
used solely as a bitfield. Methods that previously accepted a single
ShaderType value are split into separate calls:

- getShader -> vsGetShader, gsGetShader, fsGetShader
- emiitFunction -> fsEmitFunction
- appendTextureLookup -> fsAppendTextureLookup

No change in functionality. This is a refactoring to allow us to
separate the vertex/geometry and fragment parts of GrGLShaderBuilder.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23826002

git-svn-id: http://skia.googlecode.com/svn/trunk@11044 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
8c902126a90f37b6a038a78488c6215fa0c34b7d 30-Aug-2013 sglez@google.com <sglez@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> R-Tree -- Don't sort draw commands unless specified.
We expect Webkit and Bink to give us draw commands in a reasonable x,y order.
We can maintain correctness and get a 17% recording speedup for the R-Tree by
not sorting in x and y when bulk-loading.

R=caryclark@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23480002

git-svn-id: http://skia.googlecode.com/svn/trunk@11037 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kRTree.cpp
kRTree.h
53238bc96051d1774b7f72d3ebfd35a7dd4c04df 30-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkBitmapDevice functions to their own file

https://codereview.chromium.org/23553006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11022 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapDevice.cpp
kDevice.cpp
772c4e6d09f5e0971a584d2035ee789483d6f47a 30-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11017 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
e02944075840d672bd1797f3d945ff82d302282f 30-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace SkTScopedPtr with SkAutoTDelete in Skia.

BUG=
R=djsollen@google.com, reed@google.com, vandebo@chromium.org

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/23621005

git-svn-id: http://skia.googlecode.com/svn/trunk@11016 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
1f2f338e23789f3eef168dcbd8171a28820ba6c1 29-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split SkDevice into SkBaseDevice and SkBitmapDevice

https://codereview.chromium.org/22978012/



git-svn-id: http://skia.googlecode.com/svn/trunk@10995 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
6b00a1ec2ad525cae559d6b6e2157786686b2953 29-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10992 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
kDeviceLooper.h
kDraw.cpp
7ab7ca4199e97126de01d507d34f60a07843937f 28-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix case where GrGLEffectMatrix gives back a dangling ptr for the coords var name.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23706003

git-svn-id: http://skia.googlecode.com/svn/trunk@10982 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
1c028bd395dc52ca12b99f85f0c297d15a288c2d 28-Aug-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix state machine so we know simple only loops once, but we can call maprect in debug mode

Revert "Revert of r10943."

This reverts commit 9e83074cce521d3cc3b8b3a9b819a612a07d800a.

BUG=
R=tomhudson@google.com

Review URL: https://codereview.chromium.org/23618005

git-svn-id: http://skia.googlecode.com/svn/trunk@10981 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
kDeviceLooper.h
kDraw.cpp
fbaea5336690ffc4fd9ee695608e9457da10eeab 27-Aug-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> In image filters, apply the CTM and offset to the crop rect. This is necessary to compensate for both clipping applied by the compositor (communicated via the CTM) and for cropping applied in upstream image filters (communicated via the offset). This requires a few ugly conversions, since the crop rect is an SkIRect, and the ctm is an SkMatrix.

I also had to offset the matrix passed to filter evaluation by drawSprite() and internalDrawBitmap() by the primitive position. This is the same offset that is applied when drawing the primitive, to compensate for the internal saveLayer().

Also apply the total matrix to the filter params in asNewEffect(), so that (for example) lighting params are offset by both the compositor clipping and upstream crop rects.

R=reed@google.com

Review URL: https://codereview.chromium.org/23295017

git-svn-id: http://skia.googlecode.com/svn/trunk@10961 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kImageFilter.cpp
e09d6f48190ee8c015fc22e9531293861bd99184 27-Aug-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r10943.

Review URL: https://codereview.chromium.org/23626002

git-svn-id: http://skia.googlecode.com/svn/trunk@10944 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
kDeviceLooper.h
kDraw.cpp
42cb6c0247894b631976fd361d46be9260b27c3b 27-Aug-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDeviceLooper to handle larger-than-fixedpoint

BUG=

Review URL: https://codereview.chromium.org/23392006

git-svn-id: http://skia.googlecode.com/svn/trunk@10943 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceLooper.cpp
kDeviceLooper.h
kDraw.cpp
7ce661d19c5cf4484305a1b20c44bd111f129847 27-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Blur refactoring

https://codereview.chromium.org/21835004/



git-svn-id: http://skia.googlecode.com/svn/trunk@10936 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
d0f1a4fb28057de42d116005d82166b2302d28e9 27-Aug-2013 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix clip expansion in SkPictureRecord::recordRestoreOffsetPlaceholder()

For operations which can expand the region, zeroing previous clip ops' restore offsets is not enough: we need to also break the chain - otherwise the next restore() will simply traverse back and reset the skip offsets.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22987003

git-svn-id: http://skia.googlecode.com/svn/trunk@10934 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
0dc546c37c7dff3885188054d191cf852d899e32 26-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement highQualityFilter16 so GM doesn't crash when you give it resources.

Testing consisted of:
1) ninja -C out/Debug gm && gm -i resources --match mandrill_512 -w /tmp/gm
2) notice that gm didn't segfault
3) look in /tmp/gm and see a bunch of handsome monkeys

BUG=skia:1517
R=humper@google.com

Review URL: https://codereview.chromium.org/22801016

git-svn-id: http://skia.googlecode.com/svn/trunk@10917 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapProcState.cpp
kBitmapProcState.h
a6aa0e31f9e5e19fe6a2b2799fbdeea3ed373089 22-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> skia: Add SK_API to SkDiscardableMemory.

R=scroggo@google.com, reed@google.com, bsalomon@chromium.org
BUG=229120

Author: ernstm@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23385003

git-svn-id: http://skia.googlecode.com/svn/trunk@10878 2bbb7eff-a529-9590-31e7-b0007b416f81
kDiscardableMemory.h
cf7be95b19f283e3c5410f977474f433a1e10dad 22-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove the call to getFontMetrics from SkBBoxRecord

R=reed@google.com, caryclark@google.com

Author: sglez@google.com

Review URL: https://chromiumcodereview.appspot.com/23001007

git-svn-id: http://skia.googlecode.com/svn/trunk@10876 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kPictureRecord.cpp
kPictureRecord.h
330313a8a8343876ee596da39da06a5d69badd9c 22-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> My clang now doesn't complain about !"foo".

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22875037

git-svn-id: http://skia.googlecode.com/svn/trunk@10874 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kFontHost.cpp
kPath.cpp
kPathRef.h
kPictureRecord.cpp
kStrokeRec.cpp
5c1d88dca00ad884dce6403c223d799dbe5258e3 21-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add an empty typeface as a default-default.

R=reed@google.com

Review URL: https://codereview.chromium.org/22861017

git-svn-id: http://skia.googlecode.com/svn/trunk@10857 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
418ee43f428cfc7836e4cb6d67b95c6f4a1aa2ad 21-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkEmptyFontMgr::onLegacyCreateTypeface and make pure virtual.

R=reed@google.com

Review URL: https://codereview.chromium.org/22849025

git-svn-id: http://skia.googlecode.com/svn/trunk@10852 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
147c4f3e0c6db84b7c55cf86bd1c55b8ebede1f3 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Chromium's clang bots do not like the SkASSERT(!"foo") construct



git-svn-id: http://skia.googlecode.com/svn/trunk@10840 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
9b051a375ba6d6b61cea98f35834cd032aaa5347 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10830 (Split SkDevice out of SkRasterDevice) until we can get Chromium ready.



git-svn-id: http://skia.googlecode.com/svn/trunk@10835 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
3055b700189afdd02486ed8f2279cea1d8897243 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split SkDevice out of SkBitmapDevice

https://codereview.chromium.org/22978012/



git-svn-id: http://skia.googlecode.com/svn/trunk@10830 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kDeviceImageFilterProxy.h
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
ba0ca99b83d3e084811fd1764d227d850fab4d43 20-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> CHECK -> SKTDYNAMICHASH_CHECK, to avoid collision with CHECK in Chrome logging.

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/23172014

git-svn-id: http://skia.googlecode.com/svn/trunk@10827 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
9e3074e968f52eb02fdc329bb9fbe7be5e674268 20-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkTDynamicHash in picture recording

cleaned up SkPictureFlat.h quite a bit while working on this.

bench --match picture_record_ shows some improvement:
compare.sh bench --match picture_record_ --repeat 100
master -> usehash
N=3 p=0.001000 (corrected to 0.000333)
sig? rel. speed bench
y 1.0x picture_record_dictionaries
y 1.5x picture_record_recurring_paint_dictionary
y 3.8x picture_record_unique_paint_dictionary
Overall relative speed: 1.9x

bench_pictures --record is pretty much neutral:
compare.sh bench_pictures -r ../skp --mode record --repeat 30
master -> usehash
N=63 p=0.001000 (corrected to 0.000016)
sig? rel. speed bench
n 0.9x desk_pokemonwiki.skp
y 0.9x desk_googlespreadsheet.skp
y 0.9x tabl_pravda.skp
y 1.0x desk_googlespreadsheetdashed.skp
n 1.0x tabl_onlinewsj.skp
n 1.0x tabl_nytimes.skp
n 1.0x desk_googlehome.skp
y 1.0x desk_techcrunch.skp
n 1.0x tabl_slashdot.skp
n 1.0x tabl_techmeme.skp
n 1.0x desk_googleplus.skp
n 1.0x desk_sfgate.skp
n 1.0x tabl_transformice.skp
n 1.0x desk_espn.skp
n 1.0x desk_baidu.skp
n 1.0x tabl_worldjournal.skp
n 1.0x desk_chalkboard.skp
n 1.0x tabl_frantzen.skp
n 1.0x desk_gws.skp
n 1.0x tabl_androidpolice.skp
n 1.0x desk_linkedin.skp
n 1.0x mobi_wikipedia.skp
n 1.0x desk_wowwiki.skp
n 1.0x desk_css3gradients.skp
n 1.0x desk_gmailthread.skp
n 1.0x desk_yahoogames.skp
n 1.0x desk_facebook.skp
n 1.0x desk_wordpress.skp
n 1.0x tabl_vnexpress.skp
n 1.0x desk_br337.skp
n 1.0x tabl_engadget.skp
n 1.0x tabl_theverge.skp
n 1.0x desk_amazon.skp
n 1.0x desk_ebay.skp
n 1.0x tabl_hsfi.skp
n 1.0x tabl_sahadan.skp
n 1.0x desk_weather.skp
n 1.0x tabl_digg.skp
n 1.0x desk_youtubetvbrowse.skp
n 1.0x tabl_culturalsolutions.skp
n 1.0x tabl_ukwsj.skp
n 1.0x desk_youtube.skp
n 1.0x tabl_googlecalendar.skp
y 1.0x desk_yahooanswers.skp
n 1.0x desk_blogger.skp
n 1.0x desk_yahoonews.skp
y 1.0x desk_yahoosports.skp
y 1.0x tabl_mercurynews.skp
n 1.0x desk_youtubetvvideo.skp
y 1.0x tabl_gspro.skp
y 1.1x tabl_googleblog.skp
y 1.1x tabl_cnet.skp
y 1.1x tabl_mlb.skp
y 1.1x tabl_cuteoverload.skp
y 1.1x desk_booking.skp
y 1.1x tabl_deviantart.skp
y 1.1x desk_twitter.skp
y 1.1x tabl_cnn.skp
y 1.1x tabl_gamedeksiam.skp
y 1.1x tabl_gmail.skp
y 1.1x tabl_nofolo.skp
y 1.1x tabl_mozilla.skp
y 1.1x desk_pinterest.skp
Overall relative speed: 1.0x

(I'd take this to mean that the microbenches are probably drifting away from relevance.)
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/21564008

git-svn-id: http://skia.googlecode.com/svn/trunk@10825 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPictureRecord.cpp
31acc11977815402e4ef2681350f8559285bec97 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix name of "bleed" flag

https://codereview.chromium.org/22812014/



git-svn-id: http://skia.googlecode.com/svn/trunk@10805 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicturePlayback.cpp
8b71ef16ece9ec7f1250f2dc093d9a2282f4c2cc 19-Aug-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> skia: Added SkDiscardableMemory interface.

Chrome's implementation of SkDiscardableMemory is provided here:
https://codereview.chromium.org/23206002. SkDiscardableMemory is
intended to be used for image caching.

R=reed@google.com, scroggo@google.com, hclam@chromium.org, jamesr@chromium.org
BUG=229120

Author=ernstm@chromium.org

Submitted on behalf of ernstm@chromium.org due to commit queue bug.

Review URL: https://codereview.chromium.org/22950012

git-svn-id: http://skia.googlecode.com/svn/trunk@10797 2bbb7eff-a529-9590-31e7-b0007b416f81
kDiscardableMemory.h
7475811143e190e172bf83d13c4bdba85704b604 17-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10790 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
kPicture.cpp
kPicturePlayback.cpp
kPictureRecord.h
f6de475e5cbd143f348ff7738919e397b7fe7f57 17-Aug-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace uses of GrAssert by SkASSERT.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22850006

git-svn-id: http://skia.googlecode.com/svn/trunk@10789 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
eed779d866e1e239bfb9ebc6a225b7345a41adf9 16-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL plumbs in the drawBitmapRectToRect "bleed" flag and makes it live on the simplest GPU path.

R=bsalomon@google.com, reed@google.com, edisonn@google.com, scroggo@google.com, jvanverth@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/20806003

git-svn-id: http://skia.googlecode.com/svn/trunk@10765 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kDevice.cpp
kPicture.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
c9917c054567ab03419614f01392ecf13f29da5c 16-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10764 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
1e973d725c045adfd3578427c7818a4595b197a2 16-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Patch for r10762



git-svn-id: http://skia.googlecode.com/svn/trunk@10763 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
6c157640c27ee2ed6f9a484d21691b7b19dfecde 16-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL addresses "SkCanvas::save flags are not respected by GPU backend" (https://code.google.com/p/skia/issues/detail?id=1503).

R=reed@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/22947003

git-svn-id: http://skia.googlecode.com/svn/trunk@10762 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2822c9a92b9a6a1308f2106b7c364ae7e8473ab1 15-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Nobody defines SK_SUPPORT_HINTING_SCALE_FACTOR any more, so remove it.

I left the dummy value in the flattened paint. I'm hoping to do an overhaul of
the paint serialization format which will need a picture version bump anyway,
so it can all go together. If that doesn't pan out we can remove this on its
own later.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/23056005

git-svn-id: http://skia.googlecode.com/svn/trunk@10757 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.h
cb8b0eeacfc2ff79a2b9721e3ef21d1efb507dc8 15-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update how SkPath handles fGenerationID and fSourcePath, and add tests to cover.

BUG=
R=bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/22911002

git-svn-id: http://skia.googlecode.com/svn/trunk@10756 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
259fbaf7a464827bc560517988daeb5836e11e98 15-Aug-2013 egdaniel@google.com <egdaniel@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add homogeneous point mapping to Matrix

Adds mapping of homogeneous points (points with three scalar components,
where the last component is not 1). Includes fix for tests when
running on 32 bit debug builds

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22816005

git-svn-id: http://skia.googlecode.com/svn/trunk@10755 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
0038c12f337b7037ef698e2723099c7e3b19c4ca 15-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Write NULL as "" so readString() always returns a non-NULL string.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/22862002

git-svn-id: http://skia.googlecode.com/svn/trunk@10754 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
439df286c89391f7e46c30d310cce4cb047dcd78 15-Aug-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fine-tune tolerance for pinchy quads in stroker

BUG=
R=jvanverth@google.com

Review URL: https://codereview.chromium.org/22947005

git-svn-id: http://skia.googlecode.com/svn/trunk@10753 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
96583db7990ec524b6410c539518ebbc9844c5ec 15-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing fallback blending to SkA8_Shader_Blitter::blitMask()

Similarly to SkA8_Shader_Blitter::blitAntiH() and SkA8_Shader_Blitter::blitH(), blitMask() should handle a missing SkXfermode gracefully.

R=reed@google.com

Author: fmalita@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22867008

git-svn-id: http://skia.googlecode.com/svn/trunk@10743 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_A8.cpp
0e6e8cc627242cc7e301401cfe112ba98a008101 15-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10705 (ARM Skia NEON patches - 04 - Clean SkFixed / SkLONGLONG) due to 1000+ linux_layout failures (http://build.chromium.org/p/tryserver.chromium/builders/linux_layout_rel/builds/18997/steps/webkit_tests/logs/stdio)



git-svn-id: http://skia.googlecode.com/svn/trunk@10729 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kMath.cpp
73ab2965363713f9a0ccec3666724a60329e6ea3 14-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 04 - Clean SkFixed / SkLONGLONG

It removes SkLONGLONG and uses int64_t to implement the SkFixed
operations for which a SkLONGLONG version existed. It also
removes the 32 bit version that are being replaced.

BUG=
R=djsollen@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18539004

git-svn-id: http://skia.googlecode.com/svn/trunk@10705 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kMath.cpp
03b87812506ee7054f282b84fb8e15eb885fb289 13-Aug-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> expose instance methods on SkTypefaceCache

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/23067003

git-svn-id: http://skia.googlecode.com/svn/trunk@10691 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypefaceCache.cpp
kTypefaceCache.h
d4236574cfe4ec333d20e7a30f37e084168bb050 13-Aug-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Prevent picture recording from over optimizing the culling of clips.

BUG=skia:1496
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/22875008

git-svn-id: http://skia.googlecode.com/svn/trunk@10689 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
1cc07d940fcd10f52bf8228c272707f0f5df0b44 12-Aug-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Add SkCanvas::drawPosTextBounded."

This reverts commit e158aea941a6202a40b75fcee013d002089854bb.

This was an experimental API change. We will reintroduce this feature
with a different API approach, and support it w/ detailed testing
and performance measurements.

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22861002

git-svn-id: http://skia.googlecode.com/svn/trunk@10680 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
c9ab2b7dd8411f8a78654b237c69a5886567dfec 12-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkTDynamicHash
- add validate()
- make add() and remove() strict
- fill in maybeShrink()
- make grow and shrink thresholds configurable.
- fix issue where we were getting filled with deleted items - we need to count them as occupied when determining if we should grow

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/22571010

git-svn-id: http://skia.googlecode.com/svn/trunk@10677 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
f6ad1e8a06120214992fb7f49f5887cb64e3901a 09-Aug-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10659: Add a map homogenous points to SkMatrix


git-svn-id: http://skia.googlecode.com/svn/trunk@10667 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
9d54aeb8a192845f1f8122dba780d40ee6a0de1b 09-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> All rSomethingTo() immediately following a close() are relative to the point we closed from, not the point we close to. Fix that.

Seems like this has been broken since the stone ages.

BUG=skia:1474, code.google.com/p/android/issues/detail?id=41216
R=bsalomon@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/22681006

git-svn-id: http://skia.googlecode.com/svn/trunk@10666 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
47fa13640b7c8615aa7aee0d5b1d63a7bd6ed44e 09-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> allow NULL in writeString/readString

BUG=skia:1469, code.google.com/p/android/issues/detail?id=58257
R=scroggo@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/22359003

git-svn-id: http://skia.googlecode.com/svn/trunk@10662 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
2fae54d945b5e0e689a619e91da8db28734042c9 09-Aug-2013 egdaniel@google.com <egdaniel@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a map homogenous points to SkMatrix

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22330004

git-svn-id: http://skia.googlecode.com/svn/trunk@10659 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
9c1a967967e385a2c4c1607b8f997e72a18205be 09-Aug-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove uneeded SK_API declaration.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22432005

git-svn-id: http://skia.googlecode.com/svn/trunk@10655 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
34504ad9242e1c45ef9c1eb74edf437992df98b4 08-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding 2 functions to the Skia API

I need wrappers for both SkOrderedReadBuffer and SkOrderedWriteBuffer inside Chromium in order to do the IPC serialization of Skia SkImageFilter objects.

See https://codereview.chromium.org/21271002/

BUG=
R=djsollen@google.com, scroggo@google.com, reed@google.com

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22591002

git-svn-id: http://skia.googlecode.com/svn/trunk@10642 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenableSerialization.cpp
641a2491964f7e5921fad6649be08175e03b0434 08-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 11 - Blitter_RGB16





Blitter_RGB16: fixes and improvements

- fix alpha calculation: it was still using the old version of
SkAlpha255To256. 11 more tests pass in gm.

- clean a lot the code: the existing code was "a bit" messy with
a lot of duplicated hardcoded constants, got rid of all this.

- improve speed a little: part of it as a side-effect of the change
in the way alpha is calculated but also by grouping loads and stores.

One "issue" was present and still remains: the NEON code doesn't give
the same result as the black blitter on black. It accounts for dozens
of mismatches in gm. Is this considered "not too bad"? Would you be
interested in a NEON version of the black blitter? The current
comments seem to indicate that the black blitter is here only to give
a performance boost when NEON is not presents so I didn't write a NEON
version.

BUG=
R=djsollen@google.com, tomhudson@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18666005

git-svn-id: http://skia.googlecode.com/svn/trunk@10635 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
b265741cc17f897b349caacdb890119e4111a415 08-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10603 (Remove operator== from SkPaint) due to Chrome failures



git-svn-id: http://skia.googlecode.com/svn/trunk@10632 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
9c9d4a70028ef8dc33a46cfc0b22e254443effe3 07-Aug-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Restore SkPath(const SkPath&) to copy the generation ID on Android.

BUG=
R=bsalomon@google.com, bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/22471002

git-svn-id: http://skia.googlecode.com/svn/trunk@10622 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
8dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1 07-Aug-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add downsample from 8888 to 4444.

Extend SkBitmap::copyTo to copy from a source with
SkARGB_8888_Config to a destination bitmap with
SkARGB_4444_Config.

BUG=http://code.google.com/p/chromium/issues/detail?id=245774
R=reed@google.com

Review URL: https://codereview.chromium.org/22350003

git-svn-id: http://skia.googlecode.com/svn/trunk@10621 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
839702b61934914118ec557dd641be322eba3b5f 07-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getFamilyNames to SkTypeface.

Committed: https://code.google.com/p/skia/source/detail?r=10589

Committed: https://code.google.com/p/skia/source/detail?r=10592

Committed: https://code.google.com/p/skia/source/detail?r=10608

Review URL: https://codereview.chromium.org/21716005

git-svn-id: http://skia.googlecode.com/svn/trunk@10615 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
2515242ee079af3b3555620ea0c92338f47620fd 07-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkCanvas::drawPosTextBounded.

This allows subclasses which need bounding box information to get it
from the caller if it has already been computed.

BUG=chromium:269080
R=reed@google.com, tomhudson@chromium.org, tomhudson@google.com

Author: jbroman@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22585002

git-svn-id: http://skia.googlecode.com/svn/trunk@10612 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
f7af91bd79daf7e090bd6ae1d080ad7a4964e477 07-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r10608 (Add getFamilyNames to SkTypeface) due to compilation failures



git-svn-id: http://skia.googlecode.com/svn/trunk@10609 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
246b1c266f2b0111aa58016829cf17de82614803 07-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getFamilyNames to SkTypeface.

Committed: https://code.google.com/p/skia/source/detail?r=10589

Committed: https://code.google.com/p/skia/source/detail?r=10592

Review URL: https://codereview.chromium.org/21716005

git-svn-id: http://skia.googlecode.com/svn/trunk@10608 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
37ffe8a5a38606b2099f6a93e82bf121cab92cc7 07-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove operator== from SkPaint

R=mtklein@google.com, reed@google.com

Author: sglez@google.com

Review URL: https://chromiumcodereview.appspot.com/21949007

git-svn-id: http://skia.googlecode.com/svn/trunk@10603 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
a980269c2498836101146adc729ef780fb89824e 07-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getFamilyNames to SkTypeface.

Committed: https://code.google.com/p/skia/source/detail?r=10589

Review URL: https://codereview.chromium.org/21716005

git-svn-id: http://skia.googlecode.com/svn/trunk@10592 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
7ca6d2f0709d844f6afc601738b9453b3543d38b 07-Aug-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r10589: Add getFamilyNames to SkTypeface


git-svn-id: http://skia.googlecode.com/svn/trunk@10590 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
990d85f02ba6efaf6f3d75262d7ed650edc8afd5 07-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getFamilyNames to SkTypeface.

Review URL: https://codereview.chromium.org/21716005

git-svn-id: http://skia.googlecode.com/svn/trunk@10589 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
7c6d26420d80275bb92f6d9ed86190554b0a6c13 06-Aug-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix race condition when locking/unlocking pixels.

R=reed@google.com

Review URL: https://codereview.chromium.org/22235002

git-svn-id: http://skia.googlecode.com/svn/trunk@10556 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f916f9e7cf4403846c413acf8fec403e38cd8451 06-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> revise SkTDynamicHash and add unit tests
BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/22292004

git-svn-id: http://skia.googlecode.com/svn/trunk@10552 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
kTDynamicHash.h
1aa54bf6696afc7d06fc8ecc63dad2840a4d6179 05-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Added ctm matrix to GPU path

There should be no changes in behavior caused by this cl, it just adds the ctm matrix to filterImageGPU so that it may be used for scaling on all platforms when it is implemented on the blink side.

BUG=
R=senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22209002

git-svn-id: http://skia.googlecode.com/svn/trunk@10536 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kImageFilterUtils.cpp
6a6c80c6e36cab04dc32fe69598da5820bc43693 05-Aug-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Enable SkUtilsArm on all ARM platforms and always use NDK compliant NEON detection on Android.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/22193002

git-svn-id: http://skia.googlecode.com/svn/trunk@10530 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.cpp
a62efcc1e000e4b0ee4fdb3390cadd56452ce3c1 05-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid counting verbs twice in SkPath::isEmpty()

Remove redundant call to SkPathRef::countVerbs. The intention was
probably to count points. Instead, assert that all two-verb paths
begin with a 'move' and that if the second verb is a 'line', then the
point count is indeed two.

BUG=1478
R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/22171002

git-svn-id: http://skia.googlecode.com/svn/trunk@10527 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ddc218e508c4cdd16ff3461498cbbc2b5189b2be 02-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement onGetTableTags and onGetTableData on Windows.

Implements these and removes default implementation, making the
declaration in SkTypeface pure virtual.

Review URL: https://codereview.chromium.org/20672004

git-svn-id: http://skia.googlecode.com/svn/trunk@10500 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
397a9546e460494c925985dbed332582deabbdbc 01-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reintroduce default impls removed in 10495.

Due to poor placement of overrides in the hierarchy, nacl is failing.


git-svn-id: http://skia.googlecode.com/svn/trunk@10497 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
b10b51f64dbd1cf44571a1eedb412378702d8cd4 01-Aug-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement onGetTableTags and onGetTableData on Windows.

Implements these and removes default implementation, making the
declaration in SkTypeface pure virtual.

Review URL: https://codereview.chromium.org/20672004/


git-svn-id: http://skia.googlecode.com/svn/trunk@10495 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
62df526042f8a753c6817ba9d809ff8dfc412d4a 01-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPath::conservativelyContainsRect not assert on paths that begin with repeated moveTos

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/21565002

git-svn-id: http://skia.googlecode.com/svn/trunk@10484 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b6bd24d31f56622d3fb06eca2aa9ed0d8c52457b 31-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add impls for createfromstream for fontconfig fontmgr

git-svn-id: http://skia.googlecode.com/svn/trunk@10469 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
b14ecdaeea96c8c210c7835058889c6b9a756833 31-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add dox to SkTDynamicHash, fix typo of Key instead of KEY

BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/21028008

git-svn-id: http://skia.googlecode.com/svn/trunk@10465 2bbb7eff-a529-9590-31e7-b0007b416f81
kTDynamicHash.h
29bf8625152c240311f851a8a0df3e543ed824c9 31-Jul-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream changes from Android

R=scroggo@google.com

Review URL: https://codereview.chromium.org/21053009

git-svn-id: http://skia.googlecode.com/svn/trunk@10461 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
46724e457e9df0dd4fbafca4746621a42bd37ac3 30-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> + ,fLastAllocated(NULL)

BUG=
R=scroggo@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/21046011

git-svn-id: http://skia.googlecode.com/svn/trunk@10446 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
2faef552ffe93a0b3f3c1df3ce4583fde602b651 30-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove old default implementation of SkTypeface::onGetUPEM.

In order to introduce onGetUPEM there was written a generic but slow
version in SkTypeface.cpp. All ports now implement this method and the
declaration is now marked as pure virtual.



git-svn-id: http://skia.googlecode.com/svn/trunk@10442 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
30ddd615c447fed73286151b463af20d309c85f1 30-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> refactoring for SK_FONTHOST_USES_FONTMGR option

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/21149008

git-svn-id: http://skia.googlecode.com/svn/trunk@10440 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kTypeface.cpp
38bad32cf5297ec6908620fd174cd08c937d331a 30-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fold SK_CPU_HAS_CONDITION_INSTR through as always defined

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/21122005

git-svn-id: http://skia.googlecode.com/svn/trunk@10432 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kBitmapProcState_matrixProcs.cpp
kMath.cpp
kMathPriv.h
16d53aac9c78635b25d930f1c20d677e8fdd29c3 30-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10426 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
08df48d2411b33a9078f1621894d630f0b11cd60 29-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> expose getFamilyName to public SkTypeface

git-svn-id: http://skia.googlecode.com/svn/trunk@10418 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
4dcd062803fef457899add1df56e9defb667ce8d 29-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Matrix decomposition cleanup: Add is_degenerate_2x2(), and fix some asserts
(atan2 can take a zero x value, but both x == 0 and y == 0 is undefined).

R=reed@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/20303003

git-svn-id: http://skia.googlecode.com/svn/trunk@10410 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
27e21fe577211c1c40cbf40d0385b02c69d04522 28-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10402 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
0abbff9987b9452fd30cce198bea34fdb210ac41 27-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix metrics on Windows.

With this change, Skia's metrics are much better in general, and
specifically can be made to match the metrics produced by current
Blink code. This allows Blink to use Skia's metrics.

This change will require a number of rebaselines in Skia, since
previous metrics were quite different. This will require about five
rebaslines in Blink, as the new code may cause GDI's matrix to differ
in the low bits.

Review URL: https://codereview.chromium.org/20585004

git-svn-id: http://skia.googlecode.com/svn/trunk@10399 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
kScalerContext.h
956b310f13c7412c035406c658ff16ca85eac656 26-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10385 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kScaledImageCache.cpp
kTDynamicHash.h
4e16bb2a322f2bd16cb1afd2f78c27e420a4b9db 26-Jul-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement crop rect for lighting image filters. Changes for the CPU path were fairly straightforward: use the bounds rectangle when traversing the pixels, not the source rectangle.

For the GPU path, this required modifying the signature of SkImageFilter::asNewEffect() to receive the bounds offset, so that the lighting filters could offset the light position by the offset. It also required modifying the base-class implementation of SkImageFilter::filterImageGPU() (which implements single-pass filters) to intersect against the bounds rect, to pass its offset to asNewEffect(), and to modify the caller's offset (so it's drawn in the correct place).

Note: this will require rebaselining the lighting GM. Six new test cases were added, to accommodate a cropped version of each lighting filter.

R=bsalomon@google.com, reed@google.com

Review URL: https://codereview.chromium.org/20426002

git-svn-id: http://skia.googlecode.com/svn/trunk@10379 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
f9ed6fe6c5a1d05d49925de3798397e2fbb1c185 25-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix android build

git-svn-id: http://skia.googlecode.com/svn/trunk@10369 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
b86add1ad37776818e1f730359ec587c9fdbff5f 25-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make the filter mode for GrTextureAccess an enum so we can plumb down
the paint's filter modes to the GPU

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/20362002

git-svn-id: http://skia.googlecode.com/svn/trunk@10368 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
ea348cb4352cfa09fb060854057dc89ae102a976 25-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> experimentally enable USE_HASH for scaledimagecache

BUG=

Review URL: https://codereview.chromium.org/20378002

git-svn-id: http://skia.googlecode.com/svn/trunk@10363 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
b8d17fef261eb70305105dddc4089aa744accfce 25-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use dynamic hash to speed up scaledimagecache

BUG=

Review URL: https://codereview.chromium.org/20344002

git-svn-id: http://skia.googlecode.com/svn/trunk@10362 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
kTDynamicHash.h
56172676c6f108af7daeffb75c7f9d5c792544a1 25-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use namespace instead of static for template params

git-svn-id: http://skia.googlecode.com/svn/trunk@10354 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
5d1e5589fe446a59372debd8c7221170e21ec2b8 25-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> experimental dynamic-hash (disabled)

git-svn-id: http://skia.googlecode.com/svn/trunk@10353 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
kScaledImageCache.h
kTDynamicHash.h
9bf380ce7f848dfb5886dd52b82746521454b739 25-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> drawBitmap* cleanup

https://codereview.chromium.org/19977003/



git-svn-id: http://skia.googlecode.com/svn/trunk@10342 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
5c561cb8d8151d38c69128345106cbf225033a1a 25-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10340 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kMatrix.cpp
kMatrixUtils.h
kScaledImageCache.cpp
kScaledImageCache.h
194d775edcf5fa6e82098a97ad53018d70db1155 25-Jul-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples.

In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before.

This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests.

At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap.

R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=10251

Review URL: https://codereview.chromium.org/19775006

git-svn-id: http://skia.googlecode.com/svn/trunk@10338 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
ff36a1d07f23f2b7feddaba110d448073a96f83c 24-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Start from scratch on a faster SkFlatDictionary.

This is like codereview.chromium.org/19276003, except it fits in better with the existing code, doesn't leak memory, and because it's back using SkChunkFlatController it's a little faster too, now a win across the board:

Slowdown bench
-1.59% desk_youtubetvbrowse.skp
-2.56% desk_googlehome.skp
-6.40% tabl_androidpolice.skp
-6.45% desk_youtubetvvideo.skp
-6.91% tabl_googlecalendar.skp
...
-29.70% desk_yahoogames.skp
-32.17% desk_googlespreadsheet.skp
-32.23% mobi_wikipedia.skp
-37.16% desk_chalkboard.skp
-41.57% desk_pokemonwiki.skp
Overall slowdown: -22.74%

running bench [640 480] picture_record_recurring_paint_dictionary NONRENDERING: cmsecs = 9.92
running bench [640 480] picture_record_unique_paint_dictionary NONRENDERING: cmsecs = 22.16
running bench [640 480] picture_record_dictionaries NONRENDERING: cmsecs = 9.18

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=10328

R=tomhudson@google.com, reed@google.com, scroggo@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/19564007

git-svn-id: http://skia.googlecode.com/svn/trunk@10336 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.h
kPictureFlat.cpp
kPictureFlat.h
1e182253f8358ad1bc46209e84d2b4058f1f16a6 24-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> free cache in destructor, in case endContext was not called. change Resize to return bool indicating success.

BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/20102002

git-svn-id: http://skia.googlecode.com/svn/trunk@10335 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapScaler.cpp
kBitmapScaler.h
5174286bc5697e290d052fed994e8759fa5a4ed3 24-Jul-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Start from scratch on a faster SkFlatDictionary."

This reverts commit fec9bfa02d5d2b27bfa2dad3e37e5825a720784d.

git-svn-id: http://skia.googlecode.com/svn/trunk@10331 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.h
kPictureFlat.cpp
kPictureFlat.h
cae5d8d5705081cb4d22af7a30be0f01bffce745 24-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Start from scratch on a faster SkFlatDictionary.

This is like codereview.chromium.org/19276003, except it fits in better with the existing code, doesn't leak memory, and because it's back using SkChunkFlatController it's a little faster too, now a win across the board:

Slowdown bench
-1.59% desk_youtubetvbrowse.skp
-2.56% desk_googlehome.skp
-6.40% tabl_androidpolice.skp
-6.45% desk_youtubetvvideo.skp
-6.91% tabl_googlecalendar.skp
...
-29.70% desk_yahoogames.skp
-32.17% desk_googlespreadsheet.skp
-32.23% mobi_wikipedia.skp
-37.16% desk_chalkboard.skp
-41.57% desk_pokemonwiki.skp
Overall slowdown: -22.74%

running bench [640 480] picture_record_recurring_paint_dictionary NONRENDERING: cmsecs = 9.92
running bench [640 480] picture_record_unique_paint_dictionary NONRENDERING: cmsecs = 22.16
running bench [640 480] picture_record_dictionaries NONRENDERING: cmsecs = 9.18

BUG=
R=tomhudson@google.com, reed@google.com, scroggo@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/19564007

git-svn-id: http://skia.googlecode.com/svn/trunk@10328 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.h
kPictureFlat.cpp
kPictureFlat.h
08284e4d2421fb6c1978e68038a3568711cd9877 24-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add basic SVD support to SkMatrix. Allows you to pull out the x- and y-scale factors, sandwiched by two rotations.

R=reed@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/19569007

git-svn-id: http://skia.googlecode.com/svn/trunk@10322 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kMatrixUtils.h
be19dbe488e21cd9dc8c7adfbbd13602ee67a326 24-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SK_DECLARE_STATIC_MUTEX

git-svn-id: http://skia.googlecode.com/svn/trunk@10309 2bbb7eff-a529-9590-31e7-b0007b416f81
kScaledImageCache.cpp
d94697c21ae479df4190a1afbf08d85ce244a4ef 24-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add mipmaps to scaledimagecache

BUG=

Review URL: https://codereview.chromium.org/19789016

git-svn-id: http://skia.googlecode.com/svn/trunk@10305 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kMipMap.cpp
kMipMap.h
kScaledImageCache.cpp
kScaledImageCache.h
58c856a54a75e703aa3c82a0cd4e1affd9bd8ffc 24-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r10251 (Implement crop rect for SkImageFilter) due to Chromium-side unit test failures



git-svn-id: http://skia.googlecode.com/svn/trunk@10304 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kImageFilter.cpp
7f1af501f206da48a7ff791af53432c9c1c89d08 24-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10299 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kScaledImageCache.cpp
kScaledImageCache.h
2853429d39b16c1bd09d1e88147a608908f284df 24-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead defines from SkUserConfig.h

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/19599011

git-svn-id: http://skia.googlecode.com/svn/trunk@10296 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
602a1d70257eb3fcb746d758577f042d8c94f6d9 23-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add scaledimagecache

BUG=

Review URL: https://codereview.chromium.org/20005003

git-svn-id: http://skia.googlecode.com/svn/trunk@10286 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
kScaledImageCache.cpp
kScaledImageCache.h
faa5ae456d184202993a5dbe782a3a95acc25326 23-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Turn on -Wall -Wextra on Mac, and fix all the warnings that crop up for /usr/bin/g++ and Clang 3.3.
BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/19569012

git-svn-id: http://skia.googlecode.com/svn/trunk@10255 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapScaler.cpp
kPicture.cpp
6ae6383f56704928838032ce6c46829e06201853 23-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10254 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
ccf225cebb68f9dbd8e353ba0ded247f7e8915ec 22-Jul-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples.

In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before.

This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests.

At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap.

R=reed@google.com

Review URL: https://codereview.chromium.org/19775006

git-svn-id: http://skia.googlecode.com/svn/trunk@10251 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
9cfc83cc8ac2ee50a7ce889e65a707941f48bdea 22-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> stop using bitmap-filter flags outside of paint itself, as a step towards really changing them into an enum

BUG=

Review URL: https://codereview.chromium.org/19825002

git-svn-id: http://skia.googlecode.com/svn/trunk@10240 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
1f3c73825b8a1752abc6b74fbce978a430de6473 20-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10223 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.h
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapScaler.cpp
kBitmapScaler.h
kConvolver.cpp
kConvolver.h
f64c6842c15e1ba126639be7578e4642cb396987 20-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a 'unique' method to SkRefCnt, document the usage, and add support.

std::shared_ptr has a method called 'unique' which captures the concept that
a reference count of 1 is special, and can be used to optimize copy on write.
It also has some undocumented need for memory barriers in certain situations
and those needs are documented here.

The motivation for looking into this is crbug.com/258499 . The use of the
reference count in this manner is a benign race with both ref() and unref().
By introducing sk_atomic_unprotected_read, it is possible for Chromium to
annotate this read to tell ThreadSanitizer that this is known.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/18770007

git-svn-id: http://skia.googlecode.com/svn/trunk@10221 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.h
kTRefArray.h
kTypefaceCache.cpp
c29f3d8c6dec938fd0599db30cae590fcaa2108b 20-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a detachAsStream to SkDynamicMemoryWStream.

R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=10171

Committed: https://code.google.com/p/skia/source/detail?r=10178

Review URL: https://codereview.chromium.org/19677002

git-svn-id: http://skia.googlecode.com/svn/trunk@10218 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
777ded06fd655aad3f8d8ce1eb434374f153f234 20-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some noisy warnings on Windows x64.

On Windows x64, sizeof(long) < sizeof(size_t).

Review URL: https://codereview.chromium.org/19786010

git-svn-id: http://skia.googlecode.com/svn/trunk@10216 2bbb7eff-a529-9590-31e7-b0007b416f81
kDebug.cpp
16acf75151ae9d2d367ddbb54f39b86606bc6fb3 19-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SK_ScalarPI, and fix ARM build

git-svn-id: http://skia.googlecode.com/svn/trunk@10212 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.h
dd85088cd3c9b9890318a16f1fadb16e6d0253d0 19-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> struct and class forward declarations incompatible on some compilers

git-svn-id: http://skia.googlecode.com/svn/trunk@10211 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
f131cdeeb0ace4284cc3d6b1a93c7f9290591e86 19-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> missing M_PI include needed on Windows

git-svn-id: http://skia.googlecode.com/svn/trunk@10209 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.h
ab56cdabbd870ad015f1eb99a03585c0b212b952 19-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused function

git-svn-id: http://skia.googlecode.com/svn/trunk@10208 2bbb7eff-a529-9590-31e7-b0007b416f81
kConvolver.cpp
138ebc3e4061cf533ea2f7f3717239670fdc6e43 19-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> The image resampling code has been transplanted from Chrome; it's incredibly fast.

We've tested this CL plumbed into Chrome and done benchmarking with excellent results.

This CL can land independent of any Chrome changes; it's completely internal to skia.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/19335002

git-svn-id: http://skia.googlecode.com/svn/trunk@10206 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapScaler.cpp
kBitmapScaler.h
kConvolver.cpp
kConvolver.h
88682b77d108a7413a166e3158e187f43211c46b 19-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a detachAsStream to SkDynamicMemoryWStream.

R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=10171

Review URL: https://codereview.chromium.org/19677002

git-svn-id: http://skia.googlecode.com/svn/trunk@10178 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
a79919883e275e7a5e00afc50be10cc721f6ba1d 19-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10175 2bbb7eff-a529-9590-31e7-b0007b416f81
kMipMap.cpp
kMipMap.h
6eee5c3ec4eb9848c1ab5a54704592d62983d099 19-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10171 due to test failure in StreamTest



git-svn-id: http://skia.googlecode.com/svn/trunk@10172 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
eacb54e174f3b6aa999087d4ce0b879bfe5829c1 19-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a detachAsStream to SkDynamicMemoryWStream.

R=reed@google.com

Review URL: https://codereview.chromium.org/19677002

git-svn-id: http://skia.googlecode.com/svn/trunk@10171 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
dc6c8babf04fe6c19087d441896a3d49f3322cc7 18-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add copyright notices

git-svn-id: http://skia.googlecode.com/svn/trunk@10169 2bbb7eff-a529-9590-31e7-b0007b416f81
kMipMap.cpp
kMipMap.h
415c480a88d448e4c09643443ce3038a5ee108c5 18-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update static SkMutex to remove static initializer on Linux.

R=reed@google.com

Review URL: https://codereview.chromium.org/19540018

git-svn-id: http://skia.googlecode.com/svn/trunk@10168 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceProfile.cpp
eed6f1b76b6690796e3d40993b1504ba1eca2df5 18-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pull mipmap class into its own (private) header

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/19462007

git-svn-id: http://skia.googlecode.com/svn/trunk@10161 2bbb7eff-a529-9590-31e7-b0007b416f81
kMipMap.cpp
kMipMap.h
25a11e48e54b0d3895a69228090f1455131db987 18-Jul-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add bench to test float to fixed conversion

R=reed@google.com

Review URL: https://codereview.chromium.org/19773006

git-svn-id: http://skia.googlecode.com/svn/trunk@10155 2bbb7eff-a529-9590-31e7-b0007b416f81
kCordic.cpp
c9683151367b2033a26b1e2ebe6b3902d2064bdb 18-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add FilterLevel API to SkPaint, replacing various Flag bits

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/19769005

git-svn-id: http://skia.googlecode.com/svn/trunk@10138 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f7d01ce1849aa029743e9e0b810a8f955ad99f28 18-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10134 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
a524d5ea2259a9ee71906478d4924088303e4455 17-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid lineTo() duplication in SkPath::dump().

Currently, SkPath.dump() produces duplicate entries for lineTo():

path.moveTo(0, 0);
path.lineTo(1.00000012f, 0);
path.lineTo(1.00000012f, 0);
path.lineTo(1.00000012f, 1.00000012f);
path.lineTo(1.00000012f, 1.00000012f);
path.lineTo(0, 1.00000012f);
path.lineTo(0, 1.00000012f);
path.lineTo(0, 0);
path.lineTo(0, 0);
path.close();

R=bungeman@google.com

Author: fmalita@chromium.org

Review URL: https://chromiumcodereview.appspot.com/19540004

git-svn-id: http://skia.googlecode.com/svn/trunk@10131 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5dd567c2a55c16c8bc2668902cdfce1734dfae8f 17-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add getRectCount to SkRegtion

It is useful to know how many rects comprise a region,
since in some situations we can optimize code based on
the complexity of the region. For instance, if we use
SkRegion for tracking invalidation we might opt to use
the region bounds as invalidation instead of iterating
over each rect.

R=reed@google.com, tomhudson@chromium.org, caryclark@google.com, robertphillips@google.com

Author: vmpstr@chromium.org

Review URL: https://chromiumcodereview.appspot.com/19366008

git-svn-id: http://skia.googlecode.com/svn/trunk@10129 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
883fe7f8b13be4ae3e3f8d8f8a6d6e94d13f9392 16-Jul-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move implementation of SkFilterShader into its source file.

Since SkFilterShader has its own header file, makes more sense to have a
separate source file to implement it rather than placing it in a "random"
SkColorFilter.cpp file.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/19305004

git-svn-id: http://skia.googlecode.com/svn/trunk@10101 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kFilterShader.cpp
7bdd614a1940935d3badeb54f7aae75d76ea830d 15-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement onCountGlyphs and onGetUPEM on Windows.

R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/19231003

git-svn-id: http://skia.googlecode.com/svn/trunk@10089 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
c2050e3a3ecfb8738b36e2add15c526e8e0f21fe 15-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 01 - Simple fixes

This series contains a few fairly non-controversial fixes.





Misc: remove dead references to neon 4444 functions

Misc: avoid the double _neon_neon suffix in the clamp matrix functions.
MAKENAME already adds the _neon suffix

Misc: a few stupid / obvious fixes

BUG=
R=djsollen@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18666004

git-svn-id: http://skia.googlecode.com/svn/trunk@10072 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
5dc14c171a8c5c2608801754bdfc30aac08063a6 15-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 08 - Cleaning / possible fix





Misc: use SK_PMCOLOR_BYTE_ORDER where appropriate

Before SK_PMCOLOR_BYTE_ORDER was introduced, I had written my own
macro for the same purpose. I had at the time spotted these two
places where it seemed to be useful.

The change in SkCreateCGImageRef.cpp may be a bugfix or a bug for the
second occurrence, I'm not sure...

BUG=
R=djsollen@google.com, caryclark@google.com, reed@google.com, tomhudson@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18024003

git-svn-id: http://skia.googlecode.com/svn/trunk@10071 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
12e0cda1dd69c9862f821b329127b9ba45f55eba 15-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 03 - Duplicate code removal





Misc: remove some duplicate code

SkAlphaMul does exactly the same thing as the mul function above,
so use it.

BUG=
R=djsollen@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18997003

git-svn-id: http://skia.googlecode.com/svn/trunk@10070 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
e38e53b5327e2618a97fb26a697a477b74c44d3d 15-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 07 - Equation simplification

Misc: simplify the equation of the exclusion Xfermode

The equation can be dramatically simplified. The results with gm are
the same except that the code is faster.

BUG=
R=djsollen@google.com, reed@google.com, bsalomon@google.com, cabanier@adobe.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/18112016

git-svn-id: http://skia.googlecode.com/svn/trunk@10069 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
9c96d4b5ffdbf8c82f55b2058a2fea7225fe11d6 14-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix trivial matrix computation

Revert "Reverted 10056-10059"

This reverts commit bab4ebcaa7270c3b866a8e10917c39b055ebd51a.

Fix broken GM test, reintroduce image scaling.

BUG=

Review URL: https://codereview.chromium.org/18721006

git-svn-id: http://skia.googlecode.com/svn/trunk@10066 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
42dacab4e7366d9f53989558cc8d045c3d065bcd 13-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrPaint have a variable sized array of color and coverage stages rather than a fixed size.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/18686007

git-svn-id: http://skia.googlecode.com/svn/trunk@10062 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
d647426714a96d42faff8ea53464343b29b427cd 13-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverted 10056-10059



git-svn-id: http://skia.googlecode.com/svn/trunk@10060 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
fa1bd5f86ceea6cfa8303594730125ad2853d87b 13-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10059 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcState.cpp
kBitmapProcState.h
d64d8a905a044204c5960e29cdf8adf1f130edce 12-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Working plumb of image scaling:

1) always generate mipmaps if we detect that we are downsampling.
2) pre-scale the image if we detect that we are upsampling
(currently valid for scale+translate only)
3) A few miscellaneous bug fixes related to image scaling.

Still need SSE/Neon versions of these image scalers.

BUG=
R=bsalomon@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/18978014

git-svn-id: http://skia.googlecode.com/svn/trunk@10056 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
5383a7525355dec72efa2083aeadffdd09a962b9 12-Jul-2013 egdaniel@google.com <egdaniel@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add implicit hairline conic rendering to GPU

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/18258005

git-svn-id: http://skia.googlecode.com/svn/trunk@10055 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
ef284a84f503adfd08ee52b5aee142c548698ea4 12-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> The two leaks are:
missing unrefs in megalooper GM
missing reset capability in oval renderer

This CL also expands the instance counting system to some recently adding classes (e.g., SkFontStyleSet)

R=bsalomon@google.com, jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/18461007

git-svn-id: http://skia.googlecode.com/svn/trunk@10030 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
40ea172f1ee50320fd690ace2cfcb84c09b86731 11-Jul-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialize the matrix used when recursing from a GPU image filter -> raster image filter.

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/5636027884503040

git-svn-id: http://skia.googlecode.com/svn/trunk@10029 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilterUtils.cpp
de2e4e8a6422c7d8b5847f038f5c6360b187f7a2 11-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9992 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
a8fc2680bb07e39f9c569fde485bfe8e75307309 11-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix 64 bit warnings

git-svn-id: http://skia.googlecode.com/svn/trunk@9984 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
5857e0350d6c3b5e312e1ec9f220aef0fdba06a5 11-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused variables

git-svn-id: http://skia.googlecode.com/svn/trunk@9982 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
87fbf4fc735a61f7d0bd48843d48a9e85e8ab746 10-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bug with awesome filtered images sometimes being slightly offset.

BUG=

Review URL: https://codereview.chromium.org/19013004

git-svn-id: http://skia.googlecode.com/svn/trunk@9980 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
7b320703d47ff2b242ae74faba5e4b0af3560d71 10-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch).

This patch adds the parameter to the filterImageGPU() signature, plumbs through the code on the GPU side, and implements support for it in SkXfermodeImageFilter for both raster and GPU.

Of the remaining filters with GPU implementations, Blur, Morphology, Bicubic and Displacement work fine; they're commutative wrt offset and can simply pass it up the chain. Blend is not, but will be removed shortly anyway (has been replaced with SkXfermodeImageFilter in Blink).

R=reed@google.com, bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15995026

git-svn-id: http://skia.googlecode.com/svn/trunk@9977 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kImageFilterUtils.cpp
b446fc7f05d2e3f22d574187b433e02b0c781e1f 10-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkRasterClip::setPath(const SkPath&, const SkRasterClip&, bool).

The method is only used in SkCanvas::clipPathHelper() and only called when isRect() is true (which effectively disables the !isBW branch).

Thus, we can promote the isBW branch to the caller and drop the rest of the method.

R=reed@google.com

Author: fmalita@chromium.org

Review URL: https://chromiumcodereview.appspot.com/18552004

git-svn-id: http://skia.googlecode.com/svn/trunk@9974 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kRasterClip.cpp
kRasterClip.h
e81d1bce7e26f046b8bcdef7fcefe84eaa806a56 10-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> don't leak the bitmap filter

BUG=
R=reed@google.com

Author: humper@google.com

Review URL: https://chromiumcodereview.appspot.com/18999005

git-svn-id: http://skia.googlecode.com/svn/trunk@9973 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
262ff953a7f7e9e07b8fa9a792ade920aa5dd926 10-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> restore hash size to 8 bits, following windows fix in 3591f7a4a56153349240dfc542cc61a11fab2487

git-svn-id: http://skia.googlecode.com/svn/trunk@9959 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
84e22d847fc84727bc220947162363ee1fe068fc 10-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow createScalerContext to return null, and then have the GDI backend trigger that if we fail to create the necessary GDI resources

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/18484005

git-svn-id: http://skia.googlecode.com/svn/trunk@9957 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kScalerContext.cpp
9e1ec1a52985cce9db3a0d0e8d448b82a32e70cb 10-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9948 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcState.h
kGeometry.cpp
ead3b83645722f9102b97f54c54a4a691d67ed72 10-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix Win7 compiler errors/warnings for r9945



git-svn-id: http://skia.googlecode.com/svn/trunk@9947 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.h
b088947f27496a9b9dc48a7cfb170f9d59589825 09-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New bitmap filter checkin; this time with less build breakage

BUG=

Review URL: https://codereview.chromium.org/18942002

git-svn-id: http://skia.googlecode.com/svn/trunk@9944 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcBicubic.cpp
kBitmapProcState.cpp
kBitmapProcState.h
1a8940e558ecc91502767525f69339fd45b71bd4 09-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "More general image filter interface; tested implementation of standalone"

This reverts commit 4df3e8b079e019af5f60c13e7e6ec6589663962a.

git-svn-id: http://skia.googlecode.com/svn/trunk@9937 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcBicubic.cpp
kBitmapProcState.cpp
kBitmapProcState.h
25fc6b9bfb3f9c2839b463b69b86ce9ed206c763 09-Jul-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> More general image filter interface; tested implementation of standalone
image scaler (not yet plumbed). High quality downsampler. Fast SSE
resampler.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/17381008

git-svn-id: http://skia.googlecode.com/svn/trunk@9936 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapFilter.cpp
kBitmapFilter.h
kBitmapProcBicubic.cpp
kBitmapProcState.cpp
kBitmapProcState.h
4b60dbe661feadc276f911ee6dfc2058e5aea7ca 09-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move failable work outside of constructors for SkGlyphCache and SkScalerContextGDI. If we fail, try to purge everything and try again, in case the failure was from memory/os-resource exhaustion (e.g. out of HDC handles in windows)

BUG=

Review URL: https://codereview.chromium.org/18132009

git-svn-id: http://skia.googlecode.com/svn/trunk@9930 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
e1b75b4096c8ba9a569ae33d580806edd3c4a97a 09-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> GM (and fix) for drawArc capping issue

https://codereview.chromium.org/18271003/



git-svn-id: http://skia.googlecode.com/svn/trunk@9928 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
c6e5fcb4c429573a764aa58dfe171b8e004eef6c 09-Jul-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Debugging statements to investigate a bug.

https://code.google.com/p/skia/issues/detail?id=1395 is a non-
deterministic bug that I have been unable to reproduce. Add
some debugging information to try to help diagnose.

BUG=https://code.google.com/p/skia/issues/detail?id=1395
R=edisonn@google.com

Review URL: https://codereview.chromium.org/18523008

git-svn-id: http://skia.googlecode.com/svn/trunk@9914 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
056dab300d3649763f30f799bc55038d124acad1 08-Jul-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Temporary change to keep chrome happy."

Now that chrome has https://chromiumcodereview.appspot.com/18078003/,
this is no longer needed.

Fully switched over to using CreateFromStream!

Review URL: https://codereview.chromium.org/18655008

git-svn-id: http://skia.googlecode.com/svn/trunk@9911 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
1842adf01320f9197b449de7375d08ccac43f389 04-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9900 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
0b82852b234753257835bf1f9ac0046848a283ec 03-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> GPU-less build fix for r9888



git-svn-id: http://skia.googlecode.com/svn/trunk@9890 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
491493119c11206c5823b76eb6420a705be243a1 03-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add canFilterMaskGPU & filterMaskGPU to SkMaskFilter

https://codereview.chromium.org/18110012/



git-svn-id: http://skia.googlecode.com/svn/trunk@9888 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
6c035f6c873d02d3cf46ecf67b6d9c2af3c374d8 03-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Build fix for [-Werror=maybe-uninitialized].

gcc v4.7.3 failed to build due to uninitialized variables.

BUG=http://code.google.com/p/skia/issues/detail?id=1381
R=bungeman@google.com, reed@google.com

Author: dongseong.hwang@intel.com

Review URL: https://chromiumcodereview.appspot.com/17572010

git-svn-id: http://skia.googlecode.com/svn/trunk@9887 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kPathRef.h
2c82ed37bc72b1ad408af231e54688209aedcb25 03-Jul-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r9581 (oops, fix missing change in 9532, setting hashbits to 8) due to Chromium assert failure (https://code.google.com/p/chromium/issues/detail?id=256476)



git-svn-id: http://skia.googlecode.com/svn/trunk@9886 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
bcb42aecf1bdb9ae80d766d203b4f636b954cf03 02-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add charsToGlyphs to SkTypeface

Will disable new unittest until all backends are implemented.

On Mac, new API is 4x faster than old paint one, so next CL I will reimplement the paint calls in terms of the new typeface call.

R=eae@chromium.org

Review URL: https://codereview.chromium.org/18083023

git-svn-id: http://skia.googlecode.com/svn/trunk@9860 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
a6ff36bd61a20077a93223d90bc97dce65f2e7e8 29-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9826 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
0e0180a176b22fe0b6f8015aa234b8571242f761 28-Jun-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporary change to keep chrome happy.

Add back in a version of the constructor taking a stream so that
chrome can build until we switch chrome to using the factory.

Will be reverted once chrome switches to using the factory.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/17916003

git-svn-id: http://skia.googlecode.com/svn/trunk@9823 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
f1754ec69131801c1a6ed3c704501a9400bbf324 28-Jun-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace SkPicture(SkStream) constructors with a factory.

SkPicture:
Remove the constructors which take an SkStream as an argument. Rather
than having to check a variable for success, the factory will return
NULL on failure.
Add a protected function for determining if an SkStream is an SKP
to share code with SkTimedPicture.
In the factory, check for a NULL SkStream.
Use a default decoder (from BUG:
https://code.google.com/p/skia/issues/detail?id=1325)

SkDebuggerGUI:
Call SkPicture::CreateFromStream when necessary.
Write a factory for creating SkTimedPictures and use it.

Use the factory throughout tools.

Add include/lazy to utils and effects gyp include_dirs so SkPicture.h
can reference SkImageDecoder.h which references SkBitmapFactory.h (in
include/lazy).

Changes code Chromium uses, so this will require a temporary Skia
and then a change to Chromium to use the new Skia code.

TODO: Create a decoder that does nothing to be used by pinspect,
lua pictures, etc, and allow it to not assert in SkOrderedReadBuffer.

R=reed@google.com

Review URL: https://codereview.chromium.org/17113004

git-svn-id: http://skia.googlecode.com/svn/trunk@9822 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
92833f99b99f1f955c350f6f4f70acd3356a79a5 28-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use width() instead of fWidth to get int value

git-svn-id: http://skia.googlecode.com/svn/trunk@9816 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
60d3235ab42bd1d32a070695ee30d6e3ec2fa222 28-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add bitmap::eraseArea

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/18029021

git-svn-id: http://skia.googlecode.com/svn/trunk@9815 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f48e4755282d3d185f42fd2dd964d4bbd9887ee4 27-Jun-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SK_DEBUG_PATH_REF

R=bungeman@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/18029006

git-svn-id: http://skia.googlecode.com/svn/trunk@9795 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
b8d00db075b5ea09e353508a26ef5ced50722a6c 26-Jun-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change undefined SkGpuRenderTarget and SkGpuTexture forward declares to GrRenderTarget and GrTexture.

R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/17269003

git-svn-id: http://skia.googlecode.com/svn/trunk@9775 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kImageFilter.cpp
dd68f4533b6ba7310ebec82e2442efb00c583e73 26-Jun-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix PathRefDebugRef (SK_DEBUG_PATH_REF) case for SkPath copy constructor.

Review URL: https://codereview.chromium.org/17902003

git-svn-id: http://skia.googlecode.com/svn/trunk@9768 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
afe397b079a854f707640362b44312c4c6e58a06 26-Jun-2013 edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix build break, remove "RLE" from gConfigNames too
Review URL: https://codereview.chromium.org/17893004

git-svn-id: http://skia.googlecode.com/svn/trunk@9765 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
2cb1480ff8ae030946cb5f218f9c5cbc1e54c7a9 26-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove kRLE_Index8_Config from SkBitmap

BUG=
R=djsollen@google.com

Review URL: https://codereview.chromium.org/17740003

git-svn-id: http://skia.googlecode.com/svn/trunk@9764 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
81e3412ebf2ca936a1c7d11f0b9e23cf518b8895 26-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "avoid AntiFrameRect when strokeSize is too small. Workaround for skbug/1368"

This reverts commit b70c77bb33495b5956550b39d479cf9b911d6114.

git-svn-id: http://skia.googlecode.com/svn/trunk@9762 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
056ae7cec3f2643796d275861f90c858e3a26c1e 26-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> avoid AntiFrameRect when strokeSize is too small. Workaround for skbug/1368

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/17739003

git-svn-id: http://skia.googlecode.com/svn/trunk@9761 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
62b260557d0e9aa9c8a2c08968eddb63a989f3fc 25-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move kConfigCount out of Config enum, so we don't pullute type-checking

git-svn-id: http://skia.googlecode.com/svn/trunk@9759 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
8fd160350ca5f57fbb1b2e03383c5778414a9b48 25-Jun-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r9724 (add rect-output parameter to isRect) to allow the DEPS roll



git-svn-id: http://skia.googlecode.com/svn/trunk@9750 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
020b25becb4a99061e8643780c887ad472eb0648 22-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9738 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kDevice.cpp
kPath.cpp
45f746f521d6925d22a304921f6e17196f4f8157 21-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> restore bitmap.erase() support for 4444 : trivial, and BitmapCopyTest relied on it

git-svn-id: http://skia.googlecode.com/svn/trunk@9731 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
ea33808d32468bc452f0486e2effa9567e869513 21-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead AutoValidator

git-svn-id: http://skia.googlecode.com/svn/trunk@9729 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
6ba4572eed5a4ecfdd22d118fa55b5c06902b574 21-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dst/rendertarget support for kARGB_4444_Config

BUG=

Review URL: https://codereview.chromium.org/17335008

git-svn-id: http://skia.googlecode.com/svn/trunk@9727 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitRow_D16.cpp
kBlitRow_D4444.cpp
kBlitter.cpp
kBlitter_4444.cpp
kCanvas.cpp
kCoreBlitters.h
kDevice.cpp
kDraw.cpp
kXfermode.cpp
da2b21fa9ba43df374f21b0e05d9816ab1dfb876 21-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular path has a trailing moveTo

https://code.google.com/p/chromium/issues/detail?id=247770

R=caryclark@google.com

Review URL: https://codereview.chromium.org/16950021

git-svn-id: http://skia.googlecode.com/svn/trunk@9724 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
a5809a3e4cb356387c5201ab9c0a10edf11a01be 21-Jun-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkPath::rewind needs to have same reset as SkPath::reset.

R=caryclark@google.com, reed@google.com

Review URL: https://codereview.chromium.org/17432003

git-svn-id: http://skia.googlecode.com/svn/trunk@9718 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
4d494f031cd52c79fec69adeaab2c02134b7959b 20-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9695 2bbb7eff-a529-9590-31e7-b0007b416f81
kChunkAlloc.cpp
kGlyphCache.cpp
6757a3c71fd6c16af6bbd76f268307f0177b17ae 19-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> combine glyph and image bulk alloc, and adjust initial alloc size, to reduce total waste from 50% to 30%

add diagnostics to measure cache efficiency

BUG=

Review URL: https://codereview.chromium.org/17449012

git-svn-id: http://skia.googlecode.com/svn/trunk@9691 2bbb7eff-a529-9590-31e7-b0007b416f81
kChunkAlloc.cpp
kGlyphCache.cpp
kGlyphCache.h
d88a3d83364d2158a6fad9cb295012fac0e07ea3 19-Jun-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkString::appendU32() and SkString::appendU64()
as needed to re-land r9682

R=reed@google.com

Review URL: https://codereview.chromium.org/17448012

git-svn-id: http://skia.googlecode.com/svn/trunk@9686 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
ae72f470e0f88a44b7bda91079c8388e563c1cfc 14-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused line of code (from xcode's analysis)

git-svn-id: http://skia.googlecode.com/svn/trunk@9627 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitBWMaskTemplate.h
8e990eb440e0f61386ba21b06b8428d5b285c341 14-Jun-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkBitmap::validate to respect Android flag.

Without this change, an SkBitmap with hardware mip will assert in
validate.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/16870002

git-svn-id: http://skia.googlecode.com/svn/trunk@9614 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
61c49f357a03f68c12c2650ac9915657298352a4 14-Jun-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve the performance of SkConvertConfig8888Pixels using Array lookup

BUG=242097
R=kbr@chromium.org, vangelis@chromium.org, zmo@chromium.org, gman@chromium.org, bsalomon@google.com, reed@google.com, tomhudson@chromium.org, noel@chromium.org

Author: jun.a.jiang@intel.com

Review URL: https://chromiumcodereview.appspot.com/15402003

git-svn-id: http://skia.googlecode.com/svn/trunk@9605 2bbb7eff-a529-9590-31e7-b0007b416f81
kConfig8888.cpp
7fb04bcc31a4deca7445b403b9952f594d49e968 13-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> oops, fix missing change in 9532, setting hashbits to 8

git-svn-id: http://skia.googlecode.com/svn/trunk@9581 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
01efe139af523702361bd917a1e33a6af3f014b6 12-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove leftover printf

git-svn-id: http://skia.googlecode.com/svn/trunk@9552 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
7de1e3fe3e8207692cba84296e3692d02dde9706 12-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> test thick stroking of conics

git-svn-id: http://skia.googlecode.com/svn/trunk@9535 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
b8b619a15874f376196e3e6a8190ba4e3df0058b 12-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use 8 bits for fontcache hash

git-svn-id: http://skia.googlecode.com/svn/trunk@9532 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
6fbe54c663bd0eed6f6519c31a4c8e291db2613b 11-Jun-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Compact the clipstack for kReplace_Op'd geometry

When adding a clip rect or clip path to the stack with the
kReplace_Op operation, remove all previous elements within the
same save frame (elements with fSaveCount equal to the current
fSaveCount of the stack). This prevents unbounded growth of the
clipstack for long-lived instances that gets reused.

Addresses https://code.google.com/p/skia/issues/detail?id=748

R=robertphillips@google.com

Author: fs@opera.com

Review URL: https://chromiumcodereview.appspot.com/16160020

git-svn-id: http://skia.googlecode.com/svn/trunk@9502 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
792bbd14c63f217f2de0e6b2f8df99acb1928eea 11-Jun-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add drawImage to lua

git-svn-id: http://skia.googlecode.com/svn/trunk@9500 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
4e05fd25c88bea64a988ededfc810770095ed97c 10-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add conic support to hairlines

git-svn-id: http://skia.googlecode.com/svn/trunk@9493 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Hairline.cpp
5a64902ee92847f53dfc5b211da19d074179be64 05-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call through to the device from SkDraw

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/16378003

git-svn-id: http://skia.googlecode.com/svn/trunk@9449 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
4fa748d5801df66e46e6f4e98e07523d44d261a2 05-Jun-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix issues related to resolving fonts based on name.

1) non-system font files are not added to the cache.
2) We cache the default fonts for quick lookup.

Review URL: https://codereview.chromium.org/16439004

git-svn-id: http://skia.googlecode.com/svn/trunk@9441 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
8f6ef4010f6835c5ce9ede180e50a6a58512a81e 05-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9440 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
kString.cpp
8cb108803425481bf58f1eeb388cf818701c5e77 04-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change impl to explicitly store length as u32, rather than size_t, so we keep a packed struct on 64bit machines

BUG=

Review URL: https://codereview.chromium.org/16356006

git-svn-id: http://skia.googlecode.com/svn/trunk@9436 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
ed43dffbf140cebc0575bed7b4dff1b32430ad21 04-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add size limit for using glyphcache. above that, draw using paths

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/16336024

git-svn-id: http://skia.googlecode.com/svn/trunk@9429 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
kScalerContext.cpp
11c9a55afd95078d14ab8cd7c1c5c0032af2a498 03-Jun-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkData::NewFromFD.

Chromium needs a SkStream backed by a file descriptor.
Skia already has the code and can do the work, this change exposes the
functionality in Skia in a clean way.

https://codereview.chromium.org/15941025/


git-svn-id: http://skia.googlecode.com/svn/trunk@9408 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
135ece137b471219eea06a652069b86a3b6ec349 03-Jun-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added comment to SkDrawLooper fix

(SkipBuildbotRuns)



git-svn-id: http://skia.googlecode.com/svn/trunk@9406 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawLooper.cpp
2dd76d7668d8175ea1ab8f7ad27a1bfd5b917a84 02-Jun-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Hamfisted fix to drawLooper w/ 0 stages bug

https://codereview.chromium.org/16305002/



git-svn-id: http://skia.googlecode.com/svn/trunk@9393 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawLooper.cpp
26da7f00aedba107d4b3e382283034e265db09b6 01-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9387 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
kEdgeBuilder.cpp
kPath.cpp
86fc266eda887920e3dd104bee8121ae19729cf5 31-May-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkXfermode image filter. This required changing the signature of SkXfermode::asNewEffectOrCoeffs(), to add an optional background texture.

For the raster path, we do a straightforward 2-pass method: draw background, then composite the foreground over it.

For the GPU path, if the xfermode can be expressed as an effect, we build an effect with the background texture incorporated, then do a single-pass draw fetching both foreground and background textures, and compositing to the result. If the xfermode is expressed as src/dst coefficients, we do a 2-pass draw as in the raster path and use fixed-function blending.

R=bsalomon@google.com, reed@google.com

Review URL: https://codereview.chromium.org/16125008

git-svn-id: http://skia.googlecode.com/svn/trunk@9373 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
277c3f87656c44e0a651ed0dd56efa16c0ab07b4 31-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> bump picture version since SkPath has changed (conics)

enable conics in SkPath

git-svn-id: http://skia.googlecode.com/svn/trunk@9370 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kEdgeBuilder.h
kPath.cpp
kPathMeasure.cpp
kPathRef.h
kRegion_path.cpp
2d76d933ff8ba2090229599f32bdb2b17fb7ad50 31-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Read and write pixel offset when serializing bitmaps.

Remove ifdef's preventing a change to read and write offsets.
This fixes a bug where the SKP will draw the wrong portion
of bitmaps.

In addition, read the offset from the stream whether the
bitmap decoder succeeds or not, so that a failure to decode
still advances the stream to the correct spot.

Set the offset to 0 before calling SkPicture::EncodeBitmap,
so that if the function does not set it, we will not
modify the offset.

REQUIRES A CHANGE TO THE PICTURE VERSION. Does not change
PICTURE_VERSION itself, since other CLs are also requiring
a change.

BUG=https://code.google.com/p/skia/issues/detail?id=1301
R=djsollen@google.com

Review URL: https://codereview.chromium.org/15713015

git-svn-id: http://skia.googlecode.com/svn/trunk@9368 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
1922c2e62ea7dd0c521bf0420210515734790e84 31-May-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> specialize bicubic filtering for scale-only

BUG=

Review URL: https://codereview.chromium.org/15941012

git-svn-id: http://skia.googlecode.com/svn/trunk@9360 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
fa2f2a48f6822b88ab895fece1998af549c16ebe 30-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "add asserts to point<-->verb helpers"

This reverts commit b4775ac7b55802e87231768f002e4b42f233b0aa.

git-svn-id: http://skia.googlecode.com/svn/trunk@9347 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kEdgeBuilder.h
kPath.cpp
kPathMeasure.cpp
kPathRef.h
kRegion_path.cpp
7950a9eba71f65365d88021680a16f245ad3fa68 30-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add asserts to point<-->verb helpers

patch from issue 16153005

BUG=

Review URL: https://codereview.chromium.org/16195004

git-svn-id: http://skia.googlecode.com/svn/trunk@9344 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kEdgeBuilder.h
kPath.cpp
kPathMeasure.cpp
kPathRef.h
kRegion_path.cpp
a5d3e77420621c912383c3b22e542d9413d68278 30-May-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9343 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
kCanvas.cpp
ed8d6bb2be0ed6a20841573682afaa46dea15175 29-May-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Moving updateClipConservativelyUsingBounds into SkCanvas

This method is being moved from SkPictureRecord to become a protected member of SkCanvas so that other classes derived from SkCanvas can use it.
This Patch also applies the fix provided by updateClipConservativelyUsingBounds to SkPictureUtils::GatherPixelRefs

BUG=https://code.google.com/p/chromium/issues/detail?id=244893

Review URL: https://codereview.chromium.org/15894005

git-svn-id: http://skia.googlecode.com/svn/trunk@9326 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
kPictureRecord.h
b74706f03379b32028e26cf7dc0367a5a26caf12 29-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use integer math instead of float per-pixel. about a 2x speedup. not tested well, so this is just experimental.

BUG=

Review URL: https://codereview.chromium.org/15715015

git-svn-id: http://skia.googlecode.com/svn/trunk@9317 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
6cab1a4b6a68aa81237731308ff37a646d48f51c 29-May-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkStream.
https://codereview.chromium.org/15298009/


git-svn-id: http://skia.googlecode.com/svn/trunk@9312 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kFDStream.cpp
kStream.cpp
0a4805e33f8ddb445a2fd061462e715e1707f049 29-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at Comment API

https://codereview.chromium.org/13957009/



git-svn-id: http://skia.googlecode.com/svn/trunk@9310 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
40078cb49e290e7fa6da1515c9d32a1d98e304a6 24-May-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Android specific changes that are upstreamed from the android framework.

R=reed@google.com

Review URL: https://codereview.chromium.org/15720006

git-svn-id: http://skia.googlecode.com/svn/trunk@9283 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintOptionsAndroid.cpp
24287c15d6c80560fc023b7924ff0bc41ad7f587 24-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Patch to prevent chromium breakage until the DEPS."

This reverts commit d2a284728d30082d46b02c39d916294c6d36e11f.

Review URL: https://codereview.chromium.org/16019005

git-svn-id: http://skia.googlecode.com/svn/trunk@9275 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
68400767be5f72e4b9750ccc8bcf0078d42869a7 24-May-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkImageFilter::getInputResult(), since its return value is not
style-compliant, and doesn't allow us to abort on failure.

R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=9245

Review URL: https://codereview.chromium.org/15600003

git-svn-id: http://skia.googlecode.com/svn/trunk@9274 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
8b79028d27653fafcde6901affba48b987b52e43 24-May-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkDrawLooper implementation to its own file.

It previously lived in SkPaint.cpp.

BUG=
R=reed@google.com, tomhudson@chromium.org, jbroman@chromium.org

Author: jbroman@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15896004

git-svn-id: http://skia.googlecode.com/svn/trunk@9272 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawLooper.cpp
kPaint.cpp
3e2345a8d56cb76bc43e4421a3e9e3681ecd9eba 24-May-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9266 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
kBitmapProcState.cpp
kBitmapProcState.h
932105ae4be6684c4967d7c496f6f88b3692bda6 23-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't reference missing header

BUG=

Review URL: https://codereview.chromium.org/15888004

git-svn-id: http://skia.googlecode.com/svn/trunk@9265 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
4c69a064b4a7a77f4b4f2e77d8a35a80fc63987c 23-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clone of https://codereview.chromium.org/15316014/ with teaks

BUG=

Review URL: https://codereview.chromium.org/15904005

git-svn-id: http://skia.googlecode.com/svn/trunk@9264 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcBicubic.cpp
kBitmapProcState.cpp
kBitmapProcState.h
03ca64b832819564d958b70ee27a2134ff88c9c6 23-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't overclamp cubics (see skbug.com/1316)

BUG=

Review URL: https://codereview.chromium.org/15924003

git-svn-id: http://skia.googlecode.com/svn/trunk@9262 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
1202c2ac563cdeb07406872825706b83e335c977 23-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add printing of SkColorFilter-derived classes to debugger

https://codereview.chromium.org/15697012/



git-svn-id: http://skia.googlecode.com/svn/trunk@9255 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
6d9c92b2f6e5be64dd5dd98e44d672877e4c9fbc 23-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove offsetcanvas from debugger

https://codereview.chromium.org/15746003/



git-svn-id: http://skia.googlecode.com/svn/trunk@9253 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
f0656c140aa3dcbfb250433045e803b2b99f4cab 23-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r9245 due to Chrome breakage



git-svn-id: http://skia.googlecode.com/svn/trunk@9250 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
be1d02e52862f8afa5a4056f66d0eacb4f16e6fd 22-May-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkImageFilter::getInputResult(), since its return value is not
style-compliant, and doesn't allow us to abort on failure.

R=reed@google.com

Review URL: https://codereview.chromium.org/15600003

git-svn-id: http://skia.googlecode.com/svn/trunk@9245 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
edef4aa8d84f9d0cfa49e9b7c761bb986af63142 21-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Patch to prevent chromium breakage until the DEPS.

Once https://codereview.chromium.org/15489004/ is submitted to
Skia, a DEPS roll into chrome will break due to a change in the
API. A long term fix for chrome to use the new API is at
https://codereview.chromium.org/15496006/, but since it depends
on the earlier Skia change, this patch fills in the gap.

Will be reverted once https://codereview.chromium.org/15496006/
is submitted to chrome.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/15538005

git-svn-id: http://skia.googlecode.com/svn/trunk@9228 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
61d6c9ef8fa1f650722e13d35a9d4d490ffa24b4 21-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add prototype for warning.

Fixes build.

Review URL: https://codereview.chromium.org/15536007

git-svn-id: http://skia.googlecode.com/svn/trunk@9227 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
1b1bcc3ceac9b4adbb4de68429903a5f721ffe62 21-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New API for encoding bitmaps during serialization.

This change gives more flexibility to the implementation of
EncodeBitmap to prefer calling refEncodedData, doing its own
encode, or even doing both and making a decision about which
to use.

The new function signature also allows the implementation to
tell the ordered write buffer whether to store the pixel offset,
in the case where the encoded bitmap represents the larger
bitmap, or to ignore the pixel offset, in the case where the
implementation only encoded the subset that is used.

Requires changes to chromium to use the new function signature.
(https://codereview.chromium.org/15496006/)

SkPicture:
New API for EncodeBitmap.

SkOrderedReadBuffer:
Ifdef'd out addition of reading the offset.

SkOrderedWriteBuffer:
Never call refEncodedData. Allow the user to call that from their
EncodeBitmap function, if desired.
This addresses https://code.google.com/p/skia/issues/detail?id=1239
Add in ifdef'd out code to record the offset.

PictureTest and PictureRenderer:
Implement the new definition of EncodeBitmap. Also update the name
of the function to meet coding style guidelines.

BUG=https://code.google.com/p/skia/issues/detail?id=1239
R=reed@google.com

Review URL: https://codereview.chromium.org/15489004

git-svn-id: http://skia.googlecode.com/svn/trunk@9226 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
7768751b8bec9e50fcbdad67b82e1962e71c3eb9 21-May-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add buffer helper to read directly into SkString to avoid extra copying

R=reed@google.com

Review URL: https://codereview.chromium.org/15179008

git-svn-id: http://skia.googlecode.com/svn/trunk@9218 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kPaintOptionsAndroid.cpp
74babdfce524f478b9177834fe51d0394e42de6a 20-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDrawPictureCallback optional parameter to drawPicture(), which can abort the picture drawing.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/14598023

git-svn-id: http://skia.googlecode.com/svn/trunk@9197 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
20f7f173e05b60f541910d0c1da9850ac73e2958 17-May-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> One SkTSearch to rule them all. Allow key to be of different type than the array.

R=bungeman@google.com

Review URL: https://codereview.chromium.org/15070011

git-svn-id: http://skia.googlecode.com/svn/trunk@9182 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
kPathMeasure.cpp
kPictureFlat.h
kPtrRecorder.cpp
kPtrRecorder.h
kTSort.h
83d1a68141830cbfa0d5fca6f9c9bccf9c978ad2 17-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add special handling of rectori case for gpu

https://codereview.chromium.org/15080010/



git-svn-id: http://skia.googlecode.com/svn/trunk@9175 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
719a3733ae8873d015e92605b747ef2850766817 16-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Band-aid for subsetted bitmaps in SKPs.

Partial fix for https://code.google.com/p/skia/issues/detail?id=1301.

Instead of firing an assert when the recorded width and height do
not match the encoded data's width and height, take a subset of
the bitmap of the correct size.

The bitmap may be drawn incorrectly, since it will not necessarily
be the correct subset (though it will be the correct size). The
complete fix will be to record the offset to the stream. Holding off
on that since it will change the PICTURE_VERSION. There is still
more work to do on read/writeBitmap, and I would like to change
PICTURE_VERSION as few times as possible.

BUG=https://code.google.com/p/skia/issues/detail?id=1301
R=djsollen@google.com

Review URL: https://codereview.chromium.org/15159004

git-svn-id: http://skia.googlecode.com/svn/trunk@9169 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
9401deeb1046ff763d38d5354bb54648b3bab234 16-May-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make the use of fallback fonts in Android a runtime decision.

R=reed@google.com

Review URL: https://codereview.chromium.org/14972022

git-svn-id: http://skia.googlecode.com/svn/trunk@9168 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaintOptionsAndroid.cpp
8686be2fc30528167df99bcfc98ed3d9d88a76d4 13-May-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove 16bit asserts and casts of string length.

R=reed@google.com

Review URL: https://codereview.chromium.org/14711011

git-svn-id: http://skia.googlecode.com/svn/trunk@9112 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
c7a20e40938ae031368e3a9e4df33ce90a765aba 13-May-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> API modifications needed to upstream Android font changes.

Committed: http://code.google.com/p/skia/source/detail?r=9083

R=reed@google.com

Author: djsollen@google.com

Review URL: https://chromiumcodereview.appspot.com/14761003

git-svn-id: http://skia.googlecode.com/svn/trunk@9107 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
9e9dfa3a677d8f5042bb87a1201434421e7de002 10-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix memory leak in SkTypeface.cpp

https://codereview.chromium.org/14617019/



git-svn-id: http://skia.googlecode.com/svn/trunk@9099 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
0ce0df7d24b1b5335cbd6dc5d9621fcd1171f0d8 10-May-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove duplicated code in SkPictureRecord::drawRRect

Review URL: https://codereview.chromium.org/15057005

git-svn-id: http://skia.googlecode.com/svn/trunk@9093 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
e55491d84632bc69d989be793e9709d941d173b4 10-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting 9083 & 9084 due to Android failures



git-svn-id: http://skia.googlecode.com/svn/trunk@9085 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
3a886ccf2a49757dba4e4cba8400bb9624112ec5 10-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning/error of uninitialized len

BUG=

Review URL: https://codereview.chromium.org/15001019

git-svn-id: http://skia.googlecode.com/svn/trunk@9084 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
14451703f1a53d0ff14ffe4f44436526383a5fd4 09-May-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> API modifications needed to upstream Android font changes.

R=reed@google.com

Author: djsollen@google.com

Review URL: https://chromiumcodereview.appspot.com/14761003

git-svn-id: http://skia.googlecode.com/svn/trunk@9083 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintOptionsAndroid.cpp
kScalerContext.cpp
kScalerContext.h
614f9e3a540b388c09eb96c1d43b8bfc6d28de81 09-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some warnings in SkPath.

R=caryclark@google.com

Review URL: https://codereview.chromium.org/14969003

git-svn-id: http://skia.googlecode.com/svn/trunk@9076 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
8d47ddc19a40d1984bf1f384d711d36ab59fd1c0 09-May-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrGLShaderBuilder check whether GrEffect advertised that it would require the dst color or fragment position

R=senorblanco@chromium.org, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/14998007

git-svn-id: http://skia.googlecode.com/svn/trunk@9074 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
be2143187244ead489ada7c3f9538902c0bc3231 09-May-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9072 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
3eff3592acfa6c7b6d4e85c91f0a200eddb09db7 08-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> need to clamp all of the cubic points after a chop, in case our finite precision
meant we didn't compute values below the chop-point.

crbug:234190

R=caryclark@google.com

Review URL: https://codereview.chromium.org/14607012

git-svn-id: http://skia.googlecode.com/svn/trunk@9071 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
d575eed3549dcb943ae84cfeb0a31463d6edad34 08-May-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix behavior of SkPicture::kUsePathBoundsForClip_RecordingFlag to handle inverse fills and all clip ops correctly.
BUG=crbug.com/229011
TEST=Picture unit test + complexclip* GMs

Review URL: https://codereview.chromium.org/14820021

git-svn-id: http://skia.googlecode.com/svn/trunk@9063 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
8b7463db00b2316dd4f93a25897a9d8d7928a3b5 08-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead code (SkBitmapSampler)



git-svn-id: http://skia.googlecode.com/svn/trunk@9062 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapSampler.cpp
kBitmapSampler.h
kBitmapSamplerTemplate.h
0a01f5a2c44f3d6a7fa2d3c837f46894d9b29e5d 08-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> we only need one fontmetrics, since the paint (and fontcache) now know explicitly
if they are horizontal or vertical.

Review URL: https://codereview.chromium.org/14940018

git-svn-id: http://skia.googlecode.com/svn/trunk@9058 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kPaint.cpp
kScalerContext.cpp
kScalerContext.h
2b34fe01d7b5736b212eb4886afc723a7b9241ae 08-May-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9051 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
6862cbad085729acb77825392c8c2a4f888a99cf 08-May-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> share derivative code with extrema logic, remove some dead code.



git-svn-id: http://skia.googlecode.com/svn/trunk@9050 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
1040b473c14846269a8e6e215562598c962cb221 08-May-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix impl for conic derivative (tangent)



git-svn-id: http://skia.googlecode.com/svn/trunk@9049 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
24bd210f2e2cf66f356b4e98f7801631089b8aa3 07-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add (untested) tangent calc for conics



git-svn-id: http://skia.googlecode.com/svn/trunk@9048 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
96fd3440fa489f74f903f30487282af99deb2a4d 07-May-2013 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> path ops -- make combined clips soft if one is soft
Review URL: https://codereview.chromium.org/14786018

git-svn-id: http://skia.googlecode.com/svn/trunk@9047 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2983ddd4b57a05e3262fe2c1964a34f1717a5a1c 07-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Allow supporting 1 older PICTURE_VERSION."

This reverts commit deb9d6990ef2d153230340d960d86b0966f261e1.

That change was just to allow us to bump the PICTURE_VERSION
without changing the SKPs to the new one. Since it is not
entirely reliable, I am removing it.

R=rmistry@google.com

Review URL: https://codereview.chromium.org/14741007

git-svn-id: http://skia.googlecode.com/svn/trunk@9035 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kPicture.cpp
kPicturePlayback.cpp
279627efc53e0a1004b296b1254e4c48082a725e 07-May-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> reverting 9031

git-svn-id: http://skia.googlecode.com/svn/trunk@9033 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
0962ae1fbc450dd4672739402bb57fc2bd4fcdc7 07-May-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkPicture path bound optimization to handle inverse filled paths.

BUG=crbug.com/229011
TEST=Picture unit test

Review URL: https://codereview.chromium.org/14819008

git-svn-id: http://skia.googlecode.com/svn/trunk@9031 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
5a5fe58595e881965c1a395885165eaccf2d44c5 03-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change setLength and Normalize to handle when mag2 overflows a float, but the
actual lenght does not.

R=caryclark@google.com

Review URL: https://codereview.chromium.org/14838006

git-svn-id: http://skia.googlecode.com/svn/trunk@8988 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
2fd42c471c77f54ace35c13975651e17d5b2e8c6 03-May-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@8976 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
5bdfb331ac650cf464baa96a49e2473ee10a515c 02-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Detect color masks, and divert to draw-sprite instead of maskblitters.

Review URL: https://codereview.chromium.org/14637007

git-svn-id: http://skia.googlecode.com/svn/trunk@8967 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
kScalerContext.cpp
0cb7df97185d5fc8780e225c912e2bc99a26aa8d 30-Apr-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow supporting 1 older PICTURE_VERSION.

Allows https://codereview.chromium.org/14230022/ to be submitted
without breaking bench_pictures and render_pictures.

After DEPS roll and SKP capture, this will be reverted.

Review URL: https://codereview.chromium.org/14158015

git-svn-id: http://skia.googlecode.com/svn/trunk@8918 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kPicture.cpp
kPicturePlayback.cpp
74b7ffda687c66d46ac3cfa4f2baedd4c62e3fbe 30-Apr-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixes for piping bitmaps with encoded data.

Similar goals as https://codereview.chromium.org/14437012.

Builds on patch set 1 from that issue
(https://codereview.chromium.org/14437012/#ps1).

Instead of the changes in patch set 2 from that issue, this
changes SkOrderedWriteBuffer::writeBitmap to store whether an
SkBitmapHeap was used when to store the index of the SkBitmap.
SkOrderedReadBuffer::readBitmap now uses that information to
distinguish between using the heap and unflattening.

In addition, writeBitmap now records the width/height first in
all cases. If now SkBitmapHeapReader is attached, but an
SkBitmapHeap was used to record the bitmap, reading will fail
and provide the same red SkBitmap as in the case where the
SkBitmap was encoded but could not be decoded.

Updates the PICTURE_VERSION as well.

The key differences in this CL to look at are in:
SkOrderedWriteBuffer,
SkOrderedReadBuffer,
and SkPicture.

BUG=
R=djsollen@google.com

Review URL: https://codereview.chromium.org/14230022

git-svn-id: http://skia.googlecode.com/svn/trunk@8917 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
af5c506cd6b63f43a0ebee2fb171ea55ba98e09f 30-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add routines to compute error between conic and quad



git-svn-id: http://skia.googlecode.com/svn/trunk@8916 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
a0d91388bb6d3d18b7409dbc1654a4335b051ae5 29-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Stop using mix() to implement hard-light in shader.

R=jvanverth@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/14541004

git-svn-id: http://skia.googlecode.com/svn/trunk@8910 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
c718b35bce895aa945fc479451156985206fdae1 29-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove inout params from saturation helper func in XferEffect.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/14535004

git-svn-id: http://skia.googlecode.com/svn/trunk@8909 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
dd72fdec762f2889bc09bc3f854bef3c1a2678f9 29-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove redundant setting of alpha in hard-light GPU shader.

R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/14418005

git-svn-id: http://skia.googlecode.com/svn/trunk@8903 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
48115de566aaa861b06371fc649899915174279f 28-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8889 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
97514f22e4cb85a0d79b089a1eecd54d4a952291 27-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add computation for error in conic-as-quad



git-svn-id: http://skia.googlecode.com/svn/trunk@8887 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
214c870f5e45f79bc5a8d695c55ec7b881535f4c 27-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8886 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
b16e247519b9b8ccff1c74cf31d0c59f42b6a5f2 26-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add comment for computing max-diff between conic and its bounding quad



git-svn-id: http://skia.googlecode.com/svn/trunk@8885 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
2cf444f7040614b43af67e368f3aa636ebeaa45a 26-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8873 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
kXfermode.cpp
28552e12a019bf5ae55c9e8602bbe216562d7a3e 26-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkRationalQuad to SkConic



git-svn-id: http://skia.googlecode.com/svn/trunk@8872 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
49ce11ba14b044d98c3a44e3b2c19903fcdabaa5 25-Apr-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkError for a bitmap that could not be decoded.

When recreating an SkPicture from an SkStream, use the
new error reporting system to report that an SkBitmap
could not be decoded.

Add a test that the parse error is thrown.

Review URL: https://codereview.chromium.org/13892009

git-svn-id: http://skia.googlecode.com/svn/trunk@8866 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
bb6b5baa969c7158a75dcf1ff9c1d566deb58fad 25-Apr-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporarily disable HardLight effect in unit tests.


git-svn-id: http://skia.googlecode.com/svn/trunk@8865 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
3c0ecc588b145497232b24eeaee409d7878ad4f2 25-Apr-2013 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Work around overzealous assertion in SkMaskFilter.

When drawing nine-patch filters, we assert that the source contains the
destination. However, at least on the new analytic rect blur path, we can get
0-width destinations, and a 0-width rectangle is considered empty and therefore
*not contained in any other rectangle*, even if the bounds are valid and
numerically properly contained.

This patch makes sure we don't try to draw any of the four corners if they
are of 0 width or height. (The assert doesn't exist on the other codepaths.)



git-svn-id: http://skia.googlecode.com/svn/trunk@8860 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
f2bfd54de32ffbcf90ddcd0e249aaebb1559d9c2 25-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add GPU support for roundrects

This uses the OvalRenderer to render roundrects as "stretched ovals." It adds an
additional shader that handles the straight edges of ellipsoid roundrects better,
and uses the circle shader for roundrects where the two radii are the same. Only
axis-aligned, simple roundrects are supported. Handles fill, stroke and hairline.

R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/13852049

git-svn-id: http://skia.googlecode.com/svn/trunk@8859 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
45a75fb4d0ca5daa0ac5e634238970306e3b5838 25-Apr-2013 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> path ops : make it real

Add an option to SkCanvas to turn on path
ops when combining clips.

Allow Op() to use one of the input paths
as an output path.

Fix a bug in Op() when the minuend is empty
and the subtrahend is not (for difference).

Change the build to allow core to depend on pathops.
Review URL: https://codereview.chromium.org/14474002

git-svn-id: http://skia.googlecode.com/svn/trunk@8855 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
32c1b66a2c4f26935ba59f3afe3e81600fade78d 25-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added "SkRRect::contains(const SkRect&) const"

https://codereview.chromium.org/14200044/



git-svn-id: http://skia.googlecode.com/svn/trunk@8854 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
18c41acf35eefc75ef4631fbb680ec64861b30af 25-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Some fixes for saturation computation XferEffect.

R=jvanverth@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/14034018

git-svn-id: http://skia.googlecode.com/svn/trunk@8850 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
7989b5890feb2d0e3bb59901d8ac79e3777d9b31 25-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for compiler error:

src\core\skdata.cpp(126) : fatal error C1017: invalid integer constant expression



git-svn-id: http://skia.googlecode.com/svn/trunk@8849 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
9711e446676e6bf84b3fff916fd1d7537933a110 24-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move MMap to SkData.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://chromiumcodereview.appspot.com/14336003

git-svn-id: http://skia.googlecode.com/svn/trunk@8848 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kStream.cpp
d5cfdfffc8c63c6f1cceb46a9bcd5c555a7baa28 24-Apr-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing numerical rounding edge case in SkTileGrid

BUG=https://code.google.com/p/chromium/issues/detail?id=234688
TEST=TileGrid skia unit test

Review URL: https://codereview.chromium.org/13860011

git-svn-id: http://skia.googlecode.com/svn/trunk@8839 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
77cf460e5df7dd5272e71f9835880ded48fe8d12 22-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add non-separable xfer modes to GPU backend.
Review URL: https://codereview.chromium.org/14371014

git-svn-id: http://skia.googlecode.com/svn/trunk@8815 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
kXfermode.cpp
c4c9870953037be94da00ac9db887d171f6e479c 22-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding optimization to avoid image copy in SkSurface copy on write when content is discardable

This patch also adds code to SkDeferredCanvas to trigger the optimization.

TEST=DeferredSurfaceCopy bench, Surface unit test
R=reed@google.com

Author: junov@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14063015

git-svn-id: http://skia.googlecode.com/svn/trunk@8797 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
73c0abc2affdd5703f66c777e1cb3199179f3a09 22-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Catch failures to SkTypeface::Deserialize() and use the default in that case.

This fixes cros bots, who are (for whatever reason) failing to deserialize one
of their fonts during picture-deserialization.



git-svn-id: http://skia.googlecode.com/svn/trunk@8796 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
c9f3b38f67893b22c3e02a6a934bc676e36c5cfc 22-Apr-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping (SkipBuildbotRuns)

git-svn-id: http://skia.googlecode.com/svn/trunk@8795 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
cac3ae37522bf070244c723960d1689e53da4dcd 21-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> specialize SkDataTable for arrays where all elements are the same size.
optimize impl to not require another level of indirection (SkData) for storage.
add unittests for flattening.
optimize builder to not make a deepcopy of its chunkalloc heap.



git-svn-id: http://skia.googlecode.com/svn/trunk@8790 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
64b682ca42c75667e49251d3ab04f192f92d0dd8 20-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8785 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
kXfermode.cpp
3cceb9f400583be4ec70da526c23fe81b68dc6ee 19-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDataTable::NewEmpty()



git-svn-id: http://skia.googlecode.com/svn/trunk@8780 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
8c5c7a905b708f7c0a991ca7c872af645544afef 19-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDataTable, to efficiently store an immutable array. Includes a builder
helper class.
Review URL: https://codereview.chromium.org/14188049

git-svn-id: http://skia.googlecode.com/svn/trunk@8779 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataTable.cpp
68567790c6d3b77e030d667e856fc20b3b945fe7 19-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Final round of .0s


git-svn-id: http://skia.googlecode.com/svn/trunk@8774 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
07fa3abe14f9739e2f316fc13cf56aabcbc4e612 19-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> More .0s



git-svn-id: http://skia.googlecode.com/svn/trunk@8771 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
58eb1afcf66ff91cab45b322a963d2340b18f662 19-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add ".0" to 1 constants in xfermodes GLSL code.



git-svn-id: http://skia.googlecode.com/svn/trunk@8770 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
8da9bc751e1898d50dd84d7e5ca666b00e4ff624 19-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add all remaining separable xfer modes to GPU backend.
Review URL: https://codereview.chromium.org/14189024

git-svn-id: http://skia.googlecode.com/svn/trunk@8768 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
c1ccda3af8c462dc99d5893806baac3bd85fa5d3 19-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return empty fontstyleset instead of null



git-svn-id: http://skia.googlecode.com/svn/trunk@8767 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
f707adc4f8b22fd1a59a900b64333480de653c5b 18-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> augmenting fix in 8700 and 8701, be careful NOT to "sort" the result of mapRect
when we only want to proceed if the matrix is nearly identity. Hence we manually
apply the matrix to the two "points" of the rect.



git-svn-id: http://skia.googlecode.com/svn/trunk@8743 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
ee056a82ae59373cae01ebbb4edcd3297d7c92ce 18-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 8731, restoring 8700 and 8701... further investigation concluded that the
original changes were correct. The failures in DRT will be rebaselined.



git-svn-id: http://skia.googlecode.com/svn/trunk@8742 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
717d0cbf6688efe1c398468ba5047f61f5c2fdbe 17-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r8701 and r8700 due to layout test discrepancies



git-svn-id: http://skia.googlecode.com/svn/trunk@8731 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
45fb8b60137c65106b7903285672d0f8a8041f97 17-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8714 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
5c082a14acbb70eec2fd6dc5a4c134799f3d8535 17-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add compute-bounds for conics



git-svn-id: http://skia.googlecode.com/svn/trunk@8713 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
0c5c3867bdbde1005a7bbb9de9df93cc10e27782 17-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add extrema for conics



git-svn-id: http://skia.googlecode.com/svn/trunk@8712 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
17a2c919d095797c364d407a5dbdb4d60533b953 16-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add comments for computing derivatives



git-svn-id: http://skia.googlecode.com/svn/trunk@8711 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
acea3ef448c9903de3aa6a013c839dce577e6ce3 16-Apr-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup: Removing unnecessary args/complexity in SkSurface_Base and friends
Review URL: https://codereview.chromium.org/14263017

git-svn-id: http://skia.googlecode.com/svn/trunk@8708 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
9bfc438e1d796c29367f2682a216e5cb8cfb8062 16-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add () around | cluster, to avoid warning.



git-svn-id: http://skia.googlecode.com/svn/trunk@8701 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
19c4e6eb5e6f1b7ca729fc363d5a2dcee1a20969 16-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use forward matrix to determine if we can ignore scale part of a matrix
Review URL: https://codereview.chromium.org/14018020

git-svn-id: http://skia.googlecode.com/svn/trunk@8700 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
7841c63136e8aa2d3aadbeab8432405abcd73c32 16-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8693 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
aebfa7e1b1e94f693f3e7beb6ad43cfcb0f69e98 15-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix release warning (unused debug variable)



git-svn-id: http://skia.googlecode.com/svn/trunk@8682 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
3df87cb36e9f9d2e04d2f81ac64cf3d778c33847 15-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add experimental chop-into-quads for conics



git-svn-id: http://skia.googlecode.com/svn/trunk@8681 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
b0091b8382970c28dba57adc170e27b2e3d7394a 15-Apr-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add coeffecients for kScreen xfermode.
Review URL: https://codereview.chromium.org/14046021

git-svn-id: http://skia.googlecode.com/svn/trunk@8680 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
856b984c51f19e8d7bebe0f06e21972233e78f1a 15-Apr-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove freetype dependency from core.gyp

Committed: https://code.google.com/p/skia/source/detail?r=8677

Review URL: https://codereview.chromium.org/13975014

git-svn-id: http://skia.googlecode.com/svn/trunk@8678 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
f41ca79112732abbea323b2653368fae5eda46db 15-Apr-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove freetype dependency from core.gyp

Review URL: https://codereview.chromium.org/13975014

git-svn-id: http://skia.googlecode.com/svn/trunk@8677 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
ab38e560e922b554ea9fa98adc4f79aee7eca8ba 14-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8673 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
8d551011966a1bc14a654dbde704f343c0e222b6 14-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add special-case for chopping at exactly half for rational-quads (2-3x faster)



git-svn-id: http://skia.googlecode.com/svn/trunk@8672 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
4af6280aa366a02540f34c48f89ea73ce3d27974 13-Apr-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> compute new weight in standard-form



git-svn-id: http://skia.googlecode.com/svn/trunk@8671 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
4bb50b22fce5c4031549976cf7b04d63cc22e624 13-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8670 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kPictureRecord.cpp
0d099557feb99707c8f601746f46f5a295eb33b7 12-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> incomplete impl for chopping rational quads (need to "normalize" so I can get
the new middle weight).



git-svn-id: http://skia.googlecode.com/svn/trunk@8668 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
c518710d9a99c4d0adf759a102f4a1cb582f5939 12-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> experimental start to arcs



git-svn-id: http://skia.googlecode.com/svn/trunk@8665 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
dd96eb4f5c84a8225396d9ce0ca65d4d8966d741 12-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> explicitly initialize all entries in array of SkBaseMatrix, since we can't say
that implicitly in C (given that our initializer value may not be all zeros).

crbug.com/174644
Review URL: https://codereview.chromium.org/13990003

git-svn-id: http://skia.googlecode.com/svn/trunk@8660 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
31d8191a740e978b1082562f9b21a20ad9e43371 12-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Compiler warning/error patch for r8658



git-svn-id: http://skia.googlecode.com/svn/trunk@8659 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
ad7d481ea9839e0f4c497e58cabe209ffc1e4683 12-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add testing of optimizations to GM

https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8658 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
07a8ea00027ccdc7aa5a92d77bed3dbef697194a 12-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r8654



git-svn-id: http://skia.googlecode.com/svn/trunk@8655 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
c10531b50259049bd7238e85df17e8c2c09a062c 12-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add testing of optimizations to GM

https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8654 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
7a90daf25878a7459ba9fbda581bb97cda034f02 10-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bug introduced with SK_IGNORE_CUBIC_STROKE_FIX where we no longer respected
subDivide limit. This caused problems with degenate paths (too much recursion).

The fix was two parts:
1. decrement the subDivide limit as we recurse
2. up the limit for cubics to 7, to match our current quality

added unittest that replicated the too-much-recursion bug.
Review URL: https://codereview.chromium.org/14086002

git-svn-id: http://skia.googlecode.com/svn/trunk@8599 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
07d3a6575b86845ded0d4bd785aec8f4c2cc99dc 10-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8584 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
2786d15dc69f215976f3689deea986c6d0992c9a 09-Apr-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkTypeFace::Deserialize work for embedded fonts.
https://codereview.appspot.com/8584044/


git-svn-id: http://skia.googlecode.com/svn/trunk@8580 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
1eb16b93a11d984412615d7cd53fda74c747ea15 09-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Partial fix for skp reading failure on fonts

verbal lgtm from bungeman@



git-svn-id: http://skia.googlecode.com/svn/trunk@8578 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
ef5b81142600510b89184fd6f69202ecb92be724 09-Apr-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing SkTileGrid to clamp rather than clip content and querries that are outside the bounds of the grid

This fix prevents border padding and offsets on the tile grid structure from resulting in bad clipping. The job of clipping contents is left to the playback canvas.

BUG=https://code.google.com/p/skia/issues/detail?id=1209
TEST=TileGrid unit test,
Review URL: https://codereview.chromium.org/13493016

git-svn-id: http://skia.googlecode.com/svn/trunk@8576 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
df3695e5c72b3b4401e71ff259827d87bfe8a06f 09-Apr-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at Rect Effect

https://codereview.chromium.org/13521006/



git-svn-id: http://skia.googlecode.com/svn/trunk@8571 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
3284017a60ea4fc3dc5b95838ba0c301ee1e4e8d 09-Apr-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8568 2bbb7eff-a529-9590-31e7-b0007b416f81
kError.cpp
kErrorInternals.h
kPath.cpp
75e3ca127cd14fffc9c8df7ea03d6529fb001831 08-Apr-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Error checking / reporting API

Review URL: https://codereview.chromium.org/13699004

git-svn-id: http://skia.googlecode.com/svn/trunk@8566 2bbb7eff-a529-9590-31e7-b0007b416f81
kError.cpp
kErrorInternals.h
kPath.cpp
d043ccee3788ea4192806bd8c94484ed003fa828 08-Apr-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow single-pass filters (which use asNewEffect()) to participate in the image filter DAG. This was done by introducing the SkSinglePassImageFilter abstract base class, which implements canFilterImageGPU() and filterImageGPU() on behalf of the derived class. The derived class still only needs to asNewEffect(). This allows us to recurse on the filter input in SkSinglePassImageFilter::onFilterImageGPU(). It also allows us to remove any knowledge of single-pass image filters from SkGpuDevice and from the SkImageFilter base class as well.

BUG=

Review URL: https://codereview.chromium.org/13602013

git-svn-id: http://skia.googlecode.com/svn/trunk@8563 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kImageFilterUtils.cpp
1aa5129680859eba35f27e2a2b435947edb1a192 05-Apr-2013 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reduce size of second iteration in SkTileGridNextDatum<>().

Rather than iterating over the entire dataset twice, during the first pass
track how large the second pass needs to be. Entirely data-dependent but
in practice approaches 2x speedup.

BUG=1212
R=junov
https://codereview.appspot.com/8315044/



git-svn-id: http://skia.googlecode.com/svn/trunk@8543 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.h
d7aaf6034e519ea9b70649c1d344f2f24de90ccb 01-Apr-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add Xfermode bench. Also clear before rendering in bench (rather than after).

Author: bsalomon@google.com

Reviewed By: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/13334011

git-svn-id: http://skia.googlecode.com/svn/trunk@8454 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
b79d865f03456b67273b568fa5046b8ba01e365a 29-Mar-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix GLPrograms test.
Review URL: https://codereview.chromium.org/13327008

git-svn-id: http://skia.googlecode.com/svn/trunk@8450 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
26e18b593ab65e4d92dfbce92579d8bc180d4c2c 29-Mar-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add support for reading the dst pixel value in an effect. Use in a new effect for the kDarken xfer mode.

The current implementation is to always make a copy of the entire dst before the draw.
It will only succeed if the RT is also a texture.
Obviously, there is lots of room for improvement.
Review URL: https://codereview.chromium.org/13314002

git-svn-id: http://skia.googlecode.com/svn/trunk@8449 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
964988f0e93f4a559b7e41db53d70d0282527350 29-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add matcher to fontstyleset
Review URL: https://codereview.chromium.org/13312002

git-svn-id: http://skia.googlecode.com/svn/trunk@8444 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
fc2f0d0e6e6f72503ff9504296556dc637059c15 29-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkTCast



git-svn-id: http://skia.googlecode.com/svn/trunk@8443 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
995beb6b00afc0e28f5effc8a22a7a3dcb2544e8 28-Mar-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding unit test for verifying copy on write in SkSurface + bug fix in SkCanvas::clear
Review URL: https://codereview.chromium.org/13116018

git-svn-id: http://skia.googlecode.com/svn/trunk@8429 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e9bbc81c7ef498f84f93819212e61627c1d08e52 27-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move typeface cache limit from 128 to 1024 (128 is a joke, not sure what a
real upper limit should be)



git-svn-id: http://skia.googlecode.com/svn/trunk@8417 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypefaceCache.cpp
db23509adcb44770832811d1bfbff3e10ce51df1 27-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> always call SkFontMgr::Factory() (now that everyone has impl'd it)



git-svn-id: http://skia.googlecode.com/svn/trunk@8416 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
f51c01328dc52a87c07e056d6fc4eb7452ccac7a 27-Mar-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add interface to SkXfermode to return a GrEffect and blend coeffs.
Review URL: https://codereview.chromium.org/13097006

git-svn-id: http://skia.googlecode.com/svn/trunk@8412 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
b36855108718adc2d8e9018c4accaa878bc249ee 27-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix mask error for BW text, where I forgot to look at just the low-8 bits
of the right mask when computing the number of "full" runs.

possibly related to crbug.com/178796
Review URL: https://codereview.chromium.org/13044012

git-svn-id: http://skia.googlecode.com/svn/trunk@8408 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitBWMaskTemplate.h
37cbc7fd014e3b35833523dbdbe3bc3ac52ecacd 27-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8404 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
48552314f6d101f3fd094d5f2fd6f70fe9aad841 26-Mar-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a few clang errors while trying to build tools target.

Most of the errors were like:
../../src/gpu/gl/GrGLEffectMatrix.cpp:74:9: error: variable 'varyingType' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
../../src/gpu/gl/debug/GrDebugGL.h:125:21: error: private field 'fMaxTextureUnits' is not used [-Werror,-Wunused-private-field]
../../src/core/SkBitmapSampler.cpp:312:25: error: private field 'fProcTable' is not used [-Werror,-Wunused-private-field]

R=bsalomon@google.com,scroggo@google.com

Review URL: https://codereview.chromium.org/12915007

git-svn-id: http://skia.googlecode.com/svn/trunk@8403 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapSampler.cpp
kRasterClip.h
kTextToPathIter.h
kUtils.cpp
919e9c34779fa2f5d946321a4a86f7f108229ec5 26-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix infinite recursion calling (non)virtual



git-svn-id: http://skia.googlecode.com/svn/trunk@8398 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
ca5c841a6479e63e9f2e9eefad41674918c6887c 26-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> respect slant param



git-svn-id: http://skia.googlecode.com/svn/trunk@8397 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
7244e8838397964e4983d9d7028b0017f8b28f69 26-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> #if 0 reference to SkFontMgr::Factory for now



git-svn-id: http://skia.googlecode.com/svn/trunk@8396 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
83787c55db37e382ae36231a7b9458991228c10a 26-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> impl part of SKFontMgr for mac

Here is some test code

SkFontMgr* mgr = SkFontMgr::RefDefault();
for (int i = 0; i < mgr->countFamilies(); ++i) {
SkString familyName;
mgr->getFamilyName(i, &familyName);
SkDebugf("%s\n", familyName.c_str());
SkFontStyleSet* styles = mgr->createStyleSet(i);
for (int j = 0; j < styles->count(); ++j) {
SkFontStyle fs;
SkString styleName;
styles->getStyle(j, &fs, &styleName);
SkTypeface* face = styles->createTypeface(j);
SkDebugf(" %s [%d %d] %x\n", styleName.c_str(), fs.weight(),
fs.width(), face);
}
styles->unref();
}
mgr->unref();
Review URL: https://codereview.chromium.org/13094005

git-svn-id: http://skia.googlecode.com/svn/trunk@8395 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
1fa793fa6b83219a266124aa70455540b98a4633 26-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFontHost::NextLogicalFont, and add android-specific function
SkAndroidNextLogicalTypeface



git-svn-id: http://skia.googlecode.com/svn/trunk@8386 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
e60ed08a3568b5e253dfb5dec2b52d13a16fff1c 26-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8383 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
fe74765f0d302669ae49e68074492bdfe0ce6e6f 25-Mar-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change fixedWidth to fixedPitch and implement on Windows.
https://codereview.appspot.com/7954044/


git-svn-id: http://skia.googlecode.com/svn/trunk@8372 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
d257a7e5fddd55e226b3bd3e7307f107236884b8 25-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> limit SkFontHost::NextLogicalTypeface to only android (the only backend that
seems to rely on it), so we can remove it from the portable API.



git-svn-id: http://skia.googlecode.com/svn/trunk@8366 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
a45bcc802229ba5e128d8ae7528b41219507970a 25-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make SkFontHost::NextLogicalTypeface private (only called by SkScalerContext)



git-svn-id: http://skia.googlecode.com/svn/trunk@8363 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
kScalerContext.h
5526ede94a2fc58bcf6b578b12a29f6addad776d 25-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land https://codereview.chromium.org/12676024



git-svn-id: http://skia.googlecode.com/svn/trunk@8359 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
292b1d4903a770a77282508054917b48fb989d49 22-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFontHost::OpenStream(), now subsumed by SkTypeface::openStream()

remove obsolete/abandoned SkFontHost_freetype_mac.cpp
Review URL: https://codereview.chromium.org/13008019

git-svn-id: http://skia.googlecode.com/svn/trunk@8342 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
3ddb793e30c5ed70ea0b029268fca8a55287f6ad 22-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8324 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
66d831dc74953986fb1eef2e10d5b301213ccd4a 22-Mar-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFontHost::GetFileName

All remaining impls were either empty, or always return 0 for ttcIndex (its only value).
This functionality is now totally subsumed by SkTypeface::openStream()



git-svn-id: http://skia.googlecode.com/svn/trunk@8321 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
6c66d2f2b6525576524308c84eb952bb4bccf664 21-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove GetTable* APIs from SkFontHost, and rely on SkTypeface::onGetTable*

default impls call SkFontStream, and rely on SkTypeface::onOpenStream
Review URL: https://codereview.chromium.org/13001002

git-svn-id: http://skia.googlecode.com/svn/trunk@8310 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
2cdc6713fb04c46ecbc73a724029a8b266004ddf 21-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add virtual SkTypeface::onOpenStream and override that for fontconfig
(other ports to follow)

When this is complete, we will be able to remove from SkFontHost
- OpenStream
- GetFileName
Review URL: https://codereview.chromium.org/12988002

git-svn-id: http://skia.googlecode.com/svn/trunk@8299 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
35300c47fc6e59d8415a06042f230ed36deb60b3 21-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix minor valgrind-found memory leaks

https://codereview.chromium.org/12440066/



git-svn-id: http://skia.googlecode.com/svn/trunk@8297 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefDict.cpp
38c37ddbaf3b29cdacbc25d4aa2acca1869d276f 21-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call onGetUPEM to subclasses can optimize it, and place default behavior
(calling getAdvancedTypefaceMetrics) in base impl.

This allows us to remove SkFontHost::GetUnitsPerEm entirely
Review URL: https://codereview.chromium.org/12915003

git-svn-id: http://skia.googlecode.com/svn/trunk@8295 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
311d4eafab513adae3ef6c37dd4d573844bccd63 21-Mar-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This changes fixes issues with the non-separable blend modes. They were not producing the correct results if alpha was involved.
I fixed the math so everything happens in premultiplied alpha so there is no loss in precision.

I also fixed the math of color-burn and color-dodge.

Author: cabanier@gmail.com

Reviewed By: reed@google.com

Review URL: https://chromiumcodereview.appspot.com/12662006

git-svn-id: http://skia.googlecode.com/svn/trunk@8283 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
2689f615e364dc48ad73826564f5b13d2329179d 20-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move impl of AdvancedTypefaceMetrics into typeface (3)
Review URL: https://codereview.chromium.org/12807004

git-svn-id: http://skia.googlecode.com/svn/trunk@8274 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
01c34ee59906f729f6ca7d35f0c0e5e2f5e693fe 20-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8249 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
kScalerContext.h
0da48618a758ef46c2174bdc1eaeb6dd8a693a2e 19-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFontHost::CreateScalerContext
Review URL: https://codereview.chromium.org/12593013

git-svn-id: http://skia.googlecode.com/svn/trunk@8228 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
kScalerContext.h
kTypeface.cpp
90808e87c21e93b8e670360655e0b0eb12cb2f87 19-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkTypeface* parameter to SkScalerContext (and its callers)
Use SkTypeface to create scalercontext instead of SkFontHost
Review URL: https://codereview.chromium.org/12706010

git-svn-id: http://skia.googlecode.com/svn/trunk@8223 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kPaint.cpp
kScalerContext.cpp
kScalerContext.h
8eaddb0089a170760e157646192813bd940c26e7 19-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8211 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kStream.cpp
54d5f83c33ad123aa398e1c3eaf8394d972d5d3f 19-Mar-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> update coding style



git-svn-id: http://skia.googlecode.com/svn/trunk@8209 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
e1575aa21619e252f6c6514317041c32d00ce5a6 18-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reland 8200 w/ fix for android (use fullpath instead of path)
Review URL: https://codereview.chromium.org/12921003

git-svn-id: http://skia.googlecode.com/svn/trunk@8206 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMMapStream.cpp
kStream.cpp
070235e746c46f6c0a26ed6c23c832c532b974e9 18-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 8204 -- what is happening???



git-svn-id: http://skia.googlecode.com/svn/trunk@8205 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMMapStream.cpp
kStream.cpp
4f7e846cd8b577fc40f30cce6d982d853763a3eb 18-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reland 8200 w/ fix for android (need fullpath instead of path)



git-svn-id: http://skia.googlecode.com/svn/trunk@8204 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMMapStream.cpp
kStream.cpp
1311f7e7f43d00cd1fa6802a414e987e60e6d67d 18-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 8200 to figure out android break



git-svn-id: http://skia.googlecode.com/svn/trunk@8201 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMMapStream.cpp
kStream.cpp
d5ea2aeb6082840c598818aba37fcb8e08773341 18-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SK_MMAP_SUPPORT into SkPreConfig, so we can know about its availability
throughout the code.

Add SkData::NewFromMMap() help factory.

Refactor (now gone) SkMMapStream into SkStream::NewFromFile() factory
Review URL: https://codereview.chromium.org/12919013

git-svn-id: http://skia.googlecode.com/svn/trunk@8200 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kMMapStream.cpp
kStream.cpp
0bd80fa01bba2b3f0f49937fcb17928c74bde5a6 18-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added toString to SkMaskFilter-derived classes

https://codereview.appspot.com/7889043/



git-svn-id: http://skia.googlecode.com/svn/trunk@8194 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ac2c82c8528ae45bcdac1f7c4b578aff1d9bbb7e 16-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8177 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.h
kPictureRecord.cpp
kPictureStateTree.h
35e15633805081c8978c18910cb25ed53f06f6c2 15-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Patch to fix NULL ptr dereference in 8171 on Linux

TBR=junov@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@8175 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
4b32bd53c63b245707822ae83e3215863303bf43 15-Mar-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing SkPicture command pattern optimizations to make them work correctly with bounding box hierarchies

BUG=https://code.google.com/p/chromium/issues/detail?id=180645
TEST=render_pictures -r <skp_dir> --validate --bbh <grid|rtree> --mode tile 256 256

Author: junov@chromium.org

Reviewed By: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/12817011

git-svn-id: http://skia.googlecode.com/svn/trunk@8171 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.h
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kPictureStateTree.cpp
kPictureStateTree.h
kRTree.cpp
kRTree.h
kTileGrid.cpp
kTileGrid.h
c49cabfe5cddc1691a00f713ae1b077d9409389f 15-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8168 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypefacePriv.h
fed86bdb8b9f037439bbfa7cdbd53a581dbc5985 14-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move most of SkFontHost to private (preceeding making it all private)

In this change, have to accomodate PDF wanting to call openStream and advancedMetrics
Review URL: https://codereview.chromium.org/12739006

git-svn-id: http://skia.googlecode.com/svn/trunk@8156 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kTypeface.cpp
kTypefacePriv.h
91274b99722d9be62e077ab979c630c23cdd04b1 13-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8120 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
kPictureRecord.cpp
c04987ff731e35227de2a3a1e03d5c93ab1a1327 12-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed unitialized memory access bug in r8106



git-svn-id: http://skia.googlecode.com/svn/trunk@8115 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
5ba0d9064dc00fcd7f094593bb7b9f081c9f1e3b 12-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed compiler error/warning



git-svn-id: http://skia.googlecode.com/svn/trunk@8110 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
7ed15344160308a8c527d3930e5511d46ce1a18c 12-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning: use size_t when comparing to SK_ARRAY_COUNT



git-svn-id: http://skia.googlecode.com/svn/trunk@8108 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
1a64a54b278c07b33a3b5e8883b1fdf3173c840e 12-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add (temp) SkFontLCDConfig class to hold LCD getters/setters. This will allow
us to make SkFontHost.h private (once webkit switches to the SkFontLCDConfig api)

Stage 2 is to either move this code into chrome/webkit, or change the callers to
perform their own globals management.
Review URL: https://codereview.chromium.org/12623011

git-svn-id: http://skia.googlecode.com/svn/trunk@8107 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
b8f9610ac6efb5426cb799ab9b1ab5d985b7b05a 12-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor PictureRecord optimization & added saveLayer/save/clipR/DBM*/restore/restore optimization

https://codereview.appspot.com/7485043/



git-svn-id: http://skia.googlecode.com/svn/trunk@8106 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
93c7ee34dc5c8f6bfad65809f4b39f8d00d7f0d4 12-Mar-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Removed unused parameters

I removed unused parameters wherever it was trivial to do so.
Review URL: https://codereview.chromium.org/12772003

git-svn-id: http://skia.googlecode.com/svn/trunk@8103 2bbb7eff-a529-9590-31e7-b0007b416f81
kPtrRecorder.h
kScan_Hairline.cpp
5687a3e93b53cc2240649a78034f406156cc3f4e 12-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix handling of stroked cubics when we exhaust our recursion limit.
Review URL: https://codereview.chromium.org/12567006

git-svn-id: http://skia.googlecode.com/svn/trunk@8093 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
8fff39804398cbf33b77ff7061391d47d6090e4f 11-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix missing ! typo when we switched to skip() helper function.
caught by linux unittests.



git-svn-id: http://skia.googlecode.com/svn/trunk@8081 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
ed268bfed3205347a90557c5029f37e90cc01956 11-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add (mac) test for ttcindex in SkFontStream



git-svn-id: http://skia.googlecode.com/svn/trunk@8073 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kFontStream.h
27bf7288918ccd8288c36cf7fd4c6197b378245c 11-Mar-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Unreviewed build fix.

git-svn-id: http://skia.googlecode.com/svn/trunk@8071 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
e0e385c1d4171e065348ba17c546b3463a0bd651 11-Mar-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Removed unused parameters

I removed unused parameters wherever it was trivial to do so.
Review URL: https://codereview.chromium.org/12469002

git-svn-id: http://skia.googlecode.com/svn/trunk@8068 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
61f70b4478fea5d7d805480227536d8a8e633426 11-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> doh. must dynamically allocate space for reading large(r) TTC header when ttcIndex > 0



git-svn-id: http://skia.googlecode.com/svn/trunk@8064 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
0f12e1fe42245a30c5dae856b600803aabbf137b 11-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8061 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
7d3451b1844d8f93892f032bc060212f17173214 10-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a map from index to SkFlatData* in SkFlatDictionary

https://codereview.appspot.com/7531043/



git-svn-id: http://skia.googlecode.com/svn/trunk@8060 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
4bd2bdbf04f21237337616aa931e34d7c8991edc 08-Mar-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream changes from Android.

Review URL: https://codereview.chromium.org/12699002

git-svn-id: http://skia.googlecode.com/svn/trunk@8045 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPath.cpp
kScalerContext.cpp
kScalerContext.h
bdd82f4c3a100fefd6aaec43794b8e8dbd1d5dbc 08-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead/#if 0/if (0) code blocks. no change to compiled output.



git-svn-id: http://skia.googlecode.com/svn/trunk@8043 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
b58772f86659cfe0e8d9247fcee878dddd8fdad9 08-Mar-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> PDF: add support for named destinations.

Landing patchset 7 from https://codereview.appspot.com/7374052 for dml@google.com
Review URL: https://codereview.chromium.org/12533009

git-svn-id: http://skia.googlecode.com/svn/trunk@8034 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kDevice.cpp
f910d3b23bcf590ee937628dbab8e39a98ee5860 07-Mar-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrGLEffects use an interface to append their code.

A small step towards encapsulating GrGLShaderBuilder.
Review URL: https://codereview.chromium.org/12547012

git-svn-id: http://skia.googlecode.com/svn/trunk@8018 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
3c1ea3a7e5127513d3b3335d92292e02f273efef 07-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land https://chromiumcodereview.appspot.com/12440004/



git-svn-id: http://skia.googlecode.com/svn/trunk@8013 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
45fc9d9b3f02799ba99f93650e643c74920c8836 06-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Put SkPictureRecord saveLayer optimization behind a compiler flag

https://codereview.appspot.com/7508044/



git-svn-id: http://skia.googlecode.com/svn/trunk@8009 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
64334352cc3f29f52dfa07225d65eb218d2fd830 06-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@8003 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kXfermode.cpp
812b6f59fafc213260a56a4a4264ebf23646f662 06-Mar-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r8000 due to failures on some buildbots

git-svn-id: http://skia.googlecode.com/svn/trunk@8001 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kDevice.cpp
1cad898916c9e4a21429b5325c834a51fa6f361e 06-Mar-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> PDF: add support for named destinations

Imported from https://codereview.appspot.com/7374052/ on behalf of dml@google.com
Review URL: https://codereview.chromium.org/12466008

git-svn-id: http://skia.googlecode.com/svn/trunk@8000 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kDevice.cpp
5bfc8396228b7a9e5be679aeb10f30860adf938f 05-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> start to plumb ttcIndex into fonthost. For now just add to SkFontStream and its callers.
Review URL: https://codereview.chromium.org/12485002

git-svn-id: http://skia.googlecode.com/svn/trunk@7998 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kFontStream.h
90ee4488e9c6b8ec4cb1137250fed43b5919ce2c 05-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rewind at the start of each FontStream api (since we rewinding internally anyway)
Review URL: https://codereview.chromium.org/12465009

git-svn-id: http://skia.googlecode.com/svn/trunk@7997 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kFontStream.h
b24f89353ed7a45b27ab0ffc69c222b81bbf87c3 05-Mar-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Added support for non-separable blending modes.
Fixed scalar issue from https://codereview.appspot.com/7346044

Review URL: https://chromiumcodereview.appspot.com/12393049

git-svn-id: http://skia.googlecode.com/svn/trunk@7984 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
075b089b1b8c4063a5724b86f104e052a49289b2 05-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7976 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kFontStream.h
b069e40b73287649da5691e97db9170d464267b7 04-Mar-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix an unused variable warning.

Review URL: https://codereview.chromium.org/12398026

git-svn-id: http://skia.googlecode.com/svn/trunk@7975 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
46348e21732e64e1a4dcfb5d859e6edafba471ff 04-Mar-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialize bounds even if the text length is zero.

Review URL: https://codereview.chromium.org/12387092

git-svn-id: http://skia.googlecode.com/svn/trunk@7964 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
6ec97b6e4bb19b2f1aab4b21a41f482d46234089 04-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> refactor fonthost_tables into wrapper (fonthost) and impl (fontstream)



git-svn-id: http://skia.googlecode.com/svn/trunk@7958 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontStream.cpp
kFontStream.h
4969044d0b86c6ef76aed2dad77f180ad45c91bb 04-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> short-circuit if the requested typeface matches what we've been given.



git-svn-id: http://skia.googlecode.com/svn/trunk@7954 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
c490f801b063a0837501feab3d12b73d71f46312 04-Mar-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change random number generator for 'tests' to SkMWCRandom. Also removes some
unused headers and fixes a couple of bugs exposed by changing the random
number generator:

First, the function SkMatrix::getMaxStretch() had an error where it was testing
the square of a number against near-zero. This led to it occasionally taking a
cheaper but imprecise path for computing the eigenvalues of the matrix. It's
been replaced with a check against the square of SK_ScalarNearlyZero.

The second case was a failure in ClipStackTest, where it hit the rare case of
a practically empty clip stack (it has a single Union) and we set a tight
bounds. The bounds rect doesn't get set by GrReducedClip::ReduceClipStack() in
this case, so when it clips the reduced stack it's clipping against garbage,
and the resulting regions don't match. The solution is to initialize the
tightBounds rect.


git-svn-id: http://skia.googlecode.com/svn/trunk@7952 2bbb7eff-a529-9590-31e7-b0007b416f81
kFloat.cpp
kGraphics.cpp
kMatrix.cpp
0c23faf222c24529781139495a5f4f4ab61f7cb2 03-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7948 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
dc09f07671145b21c83de7153c9c9b950c871f1a 03-Mar-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> move some of the impl in fonthost into typeface virtuals



git-svn-id: http://skia.googlecode.com/svn/trunk@7944 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
f140f18878215d6b4f21a94485cd1d2dbce8e976 02-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7939 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
e37ad358b7219e45323a79c484ea67a5c59f34c2 01-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland r7918 & r7916



git-svn-id: http://skia.googlecode.com/svn/trunk@7931 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
cf5951036e963ab5b9b9d1ff1c1fd2ff01821d1b 01-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r7918 & r7916 due to Linux rendering issues



git-svn-id: http://skia.googlecode.com/svn/trunk@7925 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
6dd683a4352b91505d915722d18f4a726b5615a2 01-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for Mac compiler problem in 7916

unreviewed



git-svn-id: http://skia.googlecode.com/svn/trunk@7918 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
4310c66ed4bb67c96ec65d8b499b8a9c4deab2ed 01-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for skp chunk sizes when clips are used outside of any save

https://codereview.appspot.com/7342047/



git-svn-id: http://skia.googlecode.com/svn/trunk@7917 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
43c0ac9ca805d42a8cd3490ceb6e02f8084e251b 01-Mar-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Collapse saveLayer/drawBitmapRect/restore trios to drawBitmapRect when possible

https://codereview.appspot.com/7387045/



git-svn-id: http://skia.googlecode.com/svn/trunk@7916 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
631cdcb4a6b926b6447f328b81911a4499fb3698 01-Mar-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7910 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
aa537d4bdb2384cdcd0644a02a2ab7fb0ecdd3b3 28-Feb-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkTDArray accessors const-friendly.

This change creates const and non-const versions of SkTDArray::begin(), end(), operator[]() and getAt(). This will keep us from inadvertently changing a const SkTDArray, which the previous signatures allowed.

Review URL: https://chromiumcodereview.appspot.com/12315131

git-svn-id: http://skia.googlecode.com/svn/trunk@7902 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathHeap.cpp
kPictureFlat.h
826b41525b5d4e67c7777b41da1435f921a47cde 28-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Only print error message in debug mode.

Currently, PictureTest runs a test of recording a bad bitmap to a
picture and then replaying the picture. We assert at the record
step in debug mode, so the test only runs in release, to ensure that
we can still play back a picture, even if it has a bad bitmap. Silence
the error message in release, so our test doesn't appear to error
(since it is actually working as desired).

Review URL: https://codereview.chromium.org/12315138

git-svn-id: http://skia.googlecode.com/svn/trunk@7897 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.h
ff436617d8f11297f0eff93ddd49fb9022d0843b 27-Feb-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sort GL extension strings and search to find.
Review URL: https://codereview.chromium.org/12316141

git-svn-id: http://skia.googlecode.com/svn/trunk@7889 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
29b19e53cfac5af4f9bd5d361436d1097f349a34 27-Feb-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkTileGride geometry calculations to match the Chromium compositor.

This patch changes the semantics of tileWidth/Height to include the border region, and
uses an offset to take into account the fact that there is no outer border for outer
tiles. This patch also fixes a previous bug where the right column and bottom row were
considered to be included in bounds that are expressed as an SkIRect.

Companion Chromium CL required for roll: https://codereview.chromium.org/12221077/

TEST=TileGrid unit test
Review URL: https://codereview.appspot.com/7350050

git-svn-id: http://skia.googlecode.com/svn/trunk@7885 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
kTileGridPicture.cpp
8d38d516c0f17d8d9f6b170055ac05ac181c0554 26-Feb-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed sk_getMetrics_utf32_xy function

The unused parameters x and y here seems to be a mistake.
Review URL: https://codereview.appspot.com/7386055

git-svn-id: http://skia.googlecode.com/svn/trunk@7873 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
e5f48243bdbed2662be7a31be0888abc273b09e8 25-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a bunch of warnings, mainly around rowBytes.

My recent change changed the way SkBitmap::fRowBytes is stored,
and parameter/return values referring to rowBytes were changed
to type size_t. Change the storage back, and eliminate warnings
resulting from returning a size_t.

Review URL: https://codereview.appspot.com/7396059

git-svn-id: http://skia.googlecode.com/svn/trunk@7855 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
kBitmap_scroll.cpp
kBlitBWMaskTemplate.h
kBlitter_4444.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kDraw.cpp
kOrderedReadBuffer.cpp
kSpriteBlitterTemplate.h
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
10863051df145299937704589a4f2ebb991fb2fa 25-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove duplicate impl for getFileName() on SkFDStream



git-svn-id: http://skia.googlecode.com/svn/trunk@7854 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDStream.cpp
789c6f291ecfff925086015360da525d6de1c835 25-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add --tmpDir foo option to tests, to allow unittests that want to write/read files
use tmpDir in SkStream tests



git-svn-id: http://skia.googlecode.com/svn/trunk@7851 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDStream.cpp
7b5b18d48a0c38b70ef2fb2d9518872b7f85e095 25-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't #include <unistd.h> if we're windows



git-svn-id: http://skia.googlecode.com/svn/trunk@7848 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDStream.cpp
fc573abd5c683d5877eebed753b0e80b55e51ce5 25-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't try to access filedescriptors on windows



git-svn-id: http://skia.googlecode.com/svn/trunk@7847 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDStream.cpp
1a6880597e88ecb81e19df26fed8fb63f42cb627 25-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkFDStream out of images into core



git-svn-id: http://skia.googlecode.com/svn/trunk@7846 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDStream.cpp
12d588a7f28e18f87f5f9a6eb57fc1f5137a8d28 25-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove bogus ability for creating an SkPicturePlayback to fail.

Change SkPicturePlayback::parseBufferTag to return void, since
it can never return false.

Change SkPicturePlayback::parseStreamTag to return void, since
the only way it can return false is if parseBufferTag returns
false, or if creating a sub picture failed, both of which are
nonsensical.

Due to the above, there is no reason for creating an
SkPicturePlayback to fail, so remove the isValid parameter.

Update subclasses in SkDebuggerGUI.

Review URL: https://codereview.appspot.com/7388050

git-svn-id: http://skia.googlecode.com/svn/trunk@7844 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
0ba4bf427acbd7707d04192a98c77ef194a0f25a 25-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use size_t for rowBytes.

Previously, we were using uint32_t sometimes, int sometimes, and
size_t sometimes. Switch to using size_t, since we are actually
talking about a number of bytes.

In copyPixelsTo, use 0 as a flag to use the internal rowBytes,
which is more consistent with setConfig.

Review URL: https://codereview.appspot.com/7370047

git-svn-id: http://skia.googlecode.com/svn/trunk@7843 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
9447103029273a9f8dd7f5997e8af7a1e3ee7488 25-Feb-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Always round text position correctly.
https://codereview.appspot.com/7383049/

Will require rebaseline of fontscaler GM.

Must add SK_IGNORE_SUBPIXEL_AXIS_ALIGN_FIX to Chromium
until ~150 layout tests can be rebaselined.



git-svn-id: http://skia.googlecode.com/svn/trunk@7842 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
32ef131f5279da0850f865dece4935aeddddb40a 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkSerializationHelpers.

Move the function definition for EncodeBitmap to SkPicture,
where InstallPixelRefProc has already moved (and where it is
relevant).

Review URL: https://codereview.appspot.com/7386053

git-svn-id: http://skia.googlecode.com/svn/trunk@7837 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.h
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
f8d7d2731318cdf510ab68e6b3f5ec68ab22c8e2 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create SkLazyPixelRef which performs lazy decoding.

The new pixel ref behaves similarly to SkImageRef, with some key differences:
It does not depend on the images project.
It requires an SkImageCache, which handles allocation and caching of the pixel
memory.
It takes a function signature for decoding which decodes into already allocated
pixel memory rather than into an SkBitmap.

Add two implementations of SkImageCache: SkLruImageCache and SkAshmemImageCache.

Replace SkSerializationHelpers::DecodeBitmap with SkPicture::InstallPixelRefProc,
and update sites that referenced it.

SkBitmapFactory now sets the pixel ref to a new object of the new
class SkLazyPixelRef, provided it has an SkImageCache for caching.

Provide an option to do lazy decodes in render_pictures and bench_pictures.

SkPicture:
Eliminate the default parameters in the constructor.
If a proc for decoding bitmaps is installed, use it to decode any encoded
data in subpictures.
When parsing deserializing subpictures, check for success.
When serializing subpictures, pass the picture's bitmap encoder to the
subpicture's call to serialize.

Update BitmapFactoryTest to test its new behavior.

BUG=https://code.google.com/p/skia/issues/detail?id=1008
BUG=https://code.google.com/p/skia/issues/detail?id=1009

Review URL: https://codereview.appspot.com/7060052

git-svn-id: http://skia.googlecode.com/svn/trunk@7835 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
13b77e83076d3735a86926f6f48741e1360c525c 22-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete build flags:

SK_IGNORE_TRANS_CLAMP_FIX
SK_IGNORE_1XN_BITMAP_OPT
SK_IGNORE_CLIP_BUG_FIX
SK_IGNORE_FAST_SCALEMATRIX_INVERT
SK_IGNORE_QUAD_STROKE_FIX
SK_IGNORE_MULTIPLY_XFERMODE_OPT
SK_IGNORE_LARGE_DASH_OPT
Review URL: https://codereview.appspot.com/7381050

git-svn-id: http://skia.googlecode.com/svn/trunk@7829 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kDraw.cpp
kEdgeClipper.cpp
kMatrix.cpp
kStroke.cpp
ad51132b1b494e9921c500167adc899e6cfc8684 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid an unitialized warning on linux.

Review URL: https://codereview.appspot.com/7378050

git-svn-id: http://skia.googlecode.com/svn/trunk@7825 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
c4dc831f7be430dc8a7d68fd9eb84bfda8a1c519 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a warning on Android.

Only define/use haveBuffer in debug mode, since it's only used for
assertions.

Review URL: https://codereview.appspot.com/7384051

git-svn-id: http://skia.googlecode.com/svn/trunk@7824 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
28f9951849ee2f885a348d00e1ca04a1df7601b1 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a warning on linux.

Review URL: https://codereview.appspot.com/7392045

git-svn-id: http://skia.googlecode.com/svn/trunk@7823 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.h
dff53c26e7ef80da4767433ecfe17741a059e247 22-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete build flag SK_IGNORE_CONVEX_QUAD_OPT
Review URL: https://codereview.appspot.com/7363046

git-svn-id: http://skia.googlecode.com/svn/trunk@7820 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
e4646db4dc747b568e2b61cab300606d57cf645a 22-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete build flag SK_IGNORE_SETLINE_FIX



git-svn-id: http://skia.googlecode.com/svn/trunk@7819 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.h
a1c511b8704c6c266b90860a4c68f30ca7514f9b 21-Feb-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New SkRectShaderImageFilter image filter

This new changelist also introduces a new image filter called SkRectShaderImageFilter which is make to simply apply a shader on a region without using any inputs.

TEST=Added ShaderImageFilter test
Review URL: https://codereview.appspot.com/7300046

git-svn-id: http://skia.googlecode.com/svn/trunk@7808 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
f33612b923c3d065aabda6967247771d9aa6172c 20-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix compare of scalar against (int) kMaxTValue.
Also fix order of related compares, placing literal first.

http://code.google.com/p/skia/issues/detail?id=1127
Review URL: https://codereview.appspot.com/7385043

git-svn-id: http://skia.googlecode.com/svn/trunk@7791 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
5680a51ea03592745677e00ed12bcd24c35a84d4 19-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove experimental code that accidentally got delivered

https://codereview.appspot.com/7340044/



git-svn-id: http://skia.googlecode.com/svn/trunk@7767 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
ce8343d7dde40e509317708de239be1fa72b28f9 16-Feb-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7755 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
87fbbd30b2b7b3cead6b9c78764af306988501ff 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> non-SK_DEVELOPER-mode patch for r7752

unreviewed



git-svn-id: http://skia.googlecode.com/svn/trunk@7753 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
e4ce5b82627d7ef7cab34b808ff88dc208aef7bc 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add NOOP "command" to picture format

https://codereview.appspot.com/7343044/



git-svn-id: http://skia.googlecode.com/svn/trunk@7752 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
f92915089fa914843ca63594efc47a80b8f971bc 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for skp chunk sizes when clips are used outside of any save

https://codereview.appspot.com/7342047/



git-svn-id: http://skia.googlecode.com/svn/trunk@7748 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
2ca1aaaa442290b8262e1ca3ec64ebe46a191211 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Now store chunk size in skp file format

https://codereview.appspot.com/7308087/



git-svn-id: http://skia.googlecode.com/svn/trunk@7747 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
791f12e6cf558e0dd1689fbb0a6b5eddac9f42ad 14-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkPaint::toString from debugger to SkPaint

https://codereview.appspot.com/7314092/



git-svn-id: http://skia.googlecode.com/svn/trunk@7732 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
kPaint.cpp
f186757aa82911196c5f04b5ed55dc4bde894b76 12-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call through to to the virtual drawPath from drawOval, for subclasses (e.g. pdf)
that don't choose to override drawOval.



git-svn-id: http://skia.googlecode.com/svn/trunk@7701 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
8626719107424b41b5ff899bf2288a0108c4bba2 09-Feb-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7688 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
8d84b8f4207b72d0e54af039fcce1a633f0a7c9a 08-Feb-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding comments based on review https://codereview.appspot.com/7300072/

git-svn-id: http://skia.googlecode.com/svn/trunk@7686 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
f507c410e3a2a7ef7dab84152d836da5e5a8a5e9 08-Feb-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding option to SkTileGrid for specifying border pixels.

The purpose of this patch is to make it possible for the chromium compositor to
generate a TileGrid structure that is better suited for scaled playback.
Review URL: https://codereview.appspot.com/7300072

git-svn-id: http://skia.googlecode.com/svn/trunk@7680 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
kTileGridPicture.cpp
efbe8e9bedda21a3e061ebf3d96431a0f250a654 07-Feb-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix errors when compiling with -Wall -Werror on Android.

This CL also turns those features on by default on Android

Review URL: https://codereview.appspot.com/7313049

git-svn-id: http://skia.googlecode.com/svn/trunk@7645 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kPictureFlat.h
9349101b6cee7c4cfb570925a727c0bf7b0c676e 05-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement support for origin-TopLeft render targets in GL backend.

Committed: https://code.google.com/p/skia/source/detail?r=7545

Reverted in r7571; re-opening.

Review URL: https://codereview.appspot.com/7230049

git-svn-id: http://skia.googlecode.com/svn/trunk@7592 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
493c65f1aa0864857c21b2be096740a17ef1430a 05-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some 64 bit warnings on mac.

SkAAClip:
Change fDataSize to a size_t, since that is how it is used in all
cases.

SkAlphaRuns.cpp:
Use SkToS32 when subtracting a pointer from another pointer to
return an int.

BUG=http://code.google.com/p/skia/issues/detail?id=1103

Review URL: https://codereview.appspot.com/7314043

git-svn-id: http://skia.googlecode.com/svn/trunk@7591 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAlphaRuns.cpp
19376b80476b0fdbdcc8ac33bfdbae9b0d3fdce7 05-Feb-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix unbalanced Shader set/endContext calls in drawVertices

Review URL: https://codereview.appspot.com/7309047

git-svn-id: http://skia.googlecode.com/svn/trunk@7588 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
25cfa693420b6da4182bda42ba15970999b840dd 04-Feb-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land https://codereview.appspot.com/7221086/ -- add Multiply xfermode matching CSS spec



git-svn-id: http://skia.googlecode.com/svn/trunk@7553 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
4e5a89570b4ae40e716ab66a139b1d05e0406066 04-Feb-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Simplify and speed up SkIntroSort.
https://codereview.appspot.com/7273048/


git-svn-id: http://skia.googlecode.com/svn/trunk@7552 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
d9b0f480be398cb37c447605109c419e8314cf61 01-Feb-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Only support SkPicture abort for Android due to the fragility of the existing API

Review URL: https://codereview.appspot.com/7225083

git-svn-id: http://skia.googlecode.com/svn/trunk@7515 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
3b0a9fe5672e7339ec3e5e6d3986b15f57ae24e7 31-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update filter tool to allow more flexible filtering

https://codereview.appspot.com/7227055/



git-svn-id: http://skia.googlecode.com/svn/trunk@7492 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontDescriptor.cpp
kFontDescriptor.h
633c32b13b5d199d797be669d3dc7981d603a945 31-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> optimize region::intersect when one wholly contains the other

clone of https://codereview.appspot.com/7237055/



git-svn-id: http://skia.googlecode.com/svn/trunk@7491 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
8d3cd7a170c810e3816bf00220cbef51e7b16795 30-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clone of https://codereview.appspot.com/7208043/
Review URL: https://codereview.appspot.com/7232062

git-svn-id: http://skia.googlecode.com/svn/trunk@7476 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kXfermode.cpp
118c1a70c7e8f9733d406cf69de9a5970b3ceb01 30-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkNextLog2 requires positive values.


git-svn-id: http://skia.googlecode.com/svn/trunk@7474 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
a265a1e35d150033c504e3aef71c70b733cafa92 30-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkNextLog2 requires values > 0.


git-svn-id: http://skia.googlecode.com/svn/trunk@7472 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
e83e994da4add978d1b7f0bc9d6df6099098a55b 30-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid possible O(n) stack space use by skqsort.
https://codereview.appspot.com/7222043/


git-svn-id: http://skia.googlecode.com/svn/trunk@7470 2bbb7eff-a529-9590-31e7-b0007b416f81
kRTree.cpp
kRTree.h
kTSort.h
5b33211c5edafde82af781beaa1dbc295000a62f 30-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Start addressing the clang static analyzer issues

https://codereview.appspot.com/7249043/



git-svn-id: http://skia.googlecode.com/svn/trunk@7469 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
kRegion.cpp
kScan_Hairline.cpp
c2594f41066102d7a8a73effd3c574142a018b9a 30-Jan-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This changes the signature of SkImageFilter::filterImageGPU() to use SkBitmaps for input and output, and removes the rect param. This allows us to return textures which are larger than the actual result, such as when GrAutoScratchTextures are used. The SkBitmap's size represents the active region, while the GrTexture's size is the full texture size.

This fixes the bicubic image filter GM on the GPU, which otherwise draws garbage outside the filtered region. It also moves us closer to unifying the signatures of SkImageFilter::onFilterImage() and SkImageFilter::filterImageGPU().

Review URL: https://codereview.appspot.com/7180048

git-svn-id: http://skia.googlecode.com/svn/trunk@7467 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
e40591d5484762067f976d979c506f126c7779e1 30-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return if we're invertible for the fast scale+trans case when we have no inverse
matrix to return.
Review URL: https://codereview.appspot.com/7231063

git-svn-id: http://skia.googlecode.com/svn/trunk@7464 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
f53d0a998b59f922c7e04c94310a83df76bbc400 30-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_DISABLE_PIXELREF_LOCKCOUNT_BALANCE_CHECK option, to disable check for
lock-count-balance when we use pixelrefs.



git-svn-id: http://skia.googlecode.com/svn/trunk@7460 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2a772e14c5c637e1daff0d7ddc81559330feb8e2 30-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7458 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.h
81d3ce0b63bc87769fd543c2af79e7233d266d09 29-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Mark SkPictureStateTree::Draw::operator< as const.
https://codereview.appspot.com/7222043/


git-svn-id: http://skia.googlecode.com/svn/trunk@7452 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.h
cdcb2ce2744c7e5c47453328dbf292edee79ab37 29-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7439 2bbb7eff-a529-9590-31e7-b0007b416f81
kStringUtils.cpp
94f20dc89a55483ba63db01829332065e6e1b2ac 28-Jan-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing crash in cloning empty SkPicture object

BUG=https://code.google.com/p/chromium/issues/detail?id=172062
TEST=Pictures unit test, test_clone_empty
Review URL: https://codereview.appspot.com/7223048

git-svn-id: http://skia.googlecode.com/svn/trunk@7430 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
b941bb346549c51c3d1c1578b4f6bc7f4d8436a8 28-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> REBASELINE: enable setline fix for scan converter, with SK_IGNORE_SETLINE_FIX build guard.
Review URL: https://codereview.appspot.com/7225056

git-svn-id: http://skia.googlecode.com/svn/trunk@7425 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.h
4991b8f23482afc1494fd17647421ce68de53331 28-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added toString to SkDrawLooper-derived classes

https://codereview.appspot.com/7195054/



git-svn-id: http://skia.googlecode.com/svn/trunk@7422 2bbb7eff-a529-9590-31e7-b0007b416f81
kStringUtils.cpp
e16efc1882ab34a0bb3ae361a2d37f840044cf87 26-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
RGB32_Clamp_Bilinear_BitmapShader.h
kAAClip.cpp
kAlphaRuns.cpp
kAnnotation.cpp
kAntiRun.h
kAutoKern.h
kBBoxHierarchy.cpp
kBBoxHierarchy.h
kBBoxHierarchyRecord.h
kBBoxRecord.cpp
kBBoxRecord.h
kBitmap.cpp
kBitmapProcState.cpp
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_procs.h
kBitmapSampler.cpp
kBlitMask_D32.cpp
kBlitRow_D16.cpp
kBlitRow_D32.cpp
kBlitRow_D4444.cpp
kBlitter.cpp
kBlitter_4444.cpp
kBlitter_A1.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_Sprite.cpp
kBuffer.h
kCanvas.cpp
kChunkAlloc.cpp
kColor.cpp
kCordic.h
kCoreBlitters.h
kCubicClipper.cpp
kDebug.cpp
kDescriptor.h
kDevice.cpp
kDeviceProfile.cpp
kDeviceProfile.h
kDither.cpp
kDraw.cpp
kDrawProcs.h
kEdge.cpp
kEdgeBuilder.cpp
kFDot6.h
kFilterProc.h
kFlate.cpp
kFloatBits.cpp
kGeometry.cpp
kGlyphCache.cpp
kGlyphCache.h
kLineClipper.cpp
kMMapStream.cpp
kMask.cpp
kMaskFilter.cpp
kMath.cpp
kMathPriv.h
kMatrix.cpp
kMemory_stdlib.cpp
kMetaData.cpp
kPaint.cpp
kPath.cpp
kPathEffect.cpp
kPathHeap.cpp
kPathHeap.h
kPicture.cpp
kPictureStateTree.cpp
kPictureStateTree.h
kPtrRecorder.cpp
kQuadClipper.cpp
kRTree.cpp
kRTree.h
kRasterClip.cpp
kRasterizer.cpp
kRect.cpp
kRefCnt.cpp
kRefDict.cpp
kRegion_path.cpp
kScalerContext.cpp
kScalerContext.h
kScan.cpp
kScanPriv.h
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Path.cpp
kSpriteBlitter.h
kStroke.cpp
kStroke.h
kStrokeRec.cpp
kStrokerPriv.cpp
kStrokerPriv.h
kTLS.cpp
kTSearch.cpp
kTypeface.cpp
kTypefaceCache.cpp
kUtils.cpp
kWriter32.cpp
bbec4e6be2b7351bdc7e2d1ae627813f67441d7c 25-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid O(n) stack space usage in qsort.


git-svn-id: http://skia.googlecode.com/svn/trunk@7397 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
4024f32d99b63a599c544a49f526e53c25135159 25-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7385 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
82c2fec824937e4f8f3fb480fddee33231e30336 24-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove ConcaveToTriangles.


git-svn-id: http://skia.googlecode.com/svn/trunk@7383 2bbb7eff-a529-9590-31e7-b0007b416f81
kConcaveToTriangles.cpp
kConcaveToTriangles.h
59ed91079c47c440e8625c3a31901ee47068658d 24-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Bottom-up heapsort.
https://codereview.appspot.com/7199050/


git-svn-id: http://skia.googlecode.com/svn/trunk@7382 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
4bbdeac58cc928dc66296bde3bd06e78070d96b7 24-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional cull-rect to patheffects, so they can do less work if their results
lie outside of the current clip-bounds (the cull rect).
Review URL: https://codereview.appspot.com/7206044

git-svn-id: http://skia.googlecode.com/svn/trunk@7378 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
kPathEffect.cpp
kScalerContext.cpp
b77b69f89f2551a4a14a30b1a44dd93ea5927bb1 24-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove method calls on invalid "this" pointer.
https://codereview.appspot.com/7198050/


git-svn-id: http://skia.googlecode.com/svn/trunk@7366 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
kRegionPriv.h
95ed55adc6b8f0cee063c2cf2e14782773b0087f 24-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make all GrContext members that return a texture also ref the texture for the caller.
Review URL: https://codereview.appspot.com/7198049

git-svn-id: http://skia.googlecode.com/svn/trunk@7362 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
baa0220dfddda3cd44f0ffb5f95a4a60443eb8c3 24-Jan-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move code in isPaintOpaque from SkDeferredCanvas.cpp to SkPaintPriv

The purpose of this code move is to make it re-usable in order to implement
occlusion culling optimizations in SkPicture similar to what we have now
in SkDeferredCanvas.

BUG=https://code.google.com/p/chromium/issues/detail?id=164530
Review URL: https://codereview.appspot.com/7196046

git-svn-id: http://skia.googlecode.com/svn/trunk@7361 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaintPriv.cpp
kPaintPriv.h
194bf824f0b16be9de66233c9baf447f11e13758 23-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverse sense of convex-quad-fix compiler flag

https://codereview.appspot.com/7206045/



git-svn-id: http://skia.googlecode.com/svn/trunk@7349 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
f91c63e116fda7385d9265a00d3302f46baf25c2 23-Jan-2013 edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r7341



git-svn-id: http://skia.googlecode.com/svn/trunk@7347 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
c13ee606d82b3847c7ad09cbbc6d21fab46bdcc7 23-Jan-2013 edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> If getAdvance fails, getAdvanceData should not assert, but ignored.
Review URL: https://codereview.appspot.com/7127056

git-svn-id: http://skia.googlecode.com/svn/trunk@7341 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
e782f5ee472db5e05f3a63607a8c5cdfe838e464 23-Jan-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Ensure that streams written using SkFlattenableBuffer's can be read with readByteArray(...)

Review URL: https://codereview.appspot.com/7138063

git-svn-id: http://skia.googlecode.com/svn/trunk@7335 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
98ded84b80918ac1e40224c125922941f3b2eb03 23-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7332 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kXfermode.cpp
d507775a8be5eca19c1c6212196bf4e56d29bab5 23-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for oversight in r7325

unreviewed



git-svn-id: http://skia.googlecode.com/svn/trunk@7328 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
1e3052354ac155e3d9418cf7e8c8e009df524e01 22-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bug in 1xN SkBitmapProcShader optimization

https://codereview.appspot.com/7187047/



git-svn-id: http://skia.googlecode.com/svn/trunk@7325 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
f38f93c118b71e414c33fe2619ed1d7b1267a7a1 22-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix Android only code in SkDraw for 7317.


git-svn-id: http://skia.googlecode.com/svn/trunk@7322 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
ba3284e7bbb830749206414890f8152e421969f2 22-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix VC++ warning and Android only code for 7317.


git-svn-id: http://skia.googlecode.com/svn/trunk@7319 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
532470f34dbe9fc0b8b71e3917eca8894feaf336 22-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expose geometry and gamma on device.
https://codereview.appspot.com/6499101/


git-svn-id: http://skia.googlecode.com/svn/trunk@7317 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
kDraw.cpp
kGlyphCache.h
kPaint.cpp
kScalerContext.h
3f5ecd6cb417c7adf256e48ef3f336052d326b84 22-Jan-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Simple Build fix. Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@7313 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
f3b1223e6d52b161dbc59a4119ba6a4161b10a54 22-Jan-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing invalid text clipping on SkPicture playback

The bug was caused by an invalid assumption that a flattend object's
index is related to its array index in SkFlatDictionary::fData.
The data in SkFlatDictionary is sorted by flattened data content,
not by index number. Problem was solved by passing down the SkFlatData*
through addPaint, rather than the index value. The bug was causing
SkPictureRecord::addFontMetricsTopBottom to use cached font metrics
from the wrong SkPaint instance.

BUG=https://code.google.com/p/chromium/issues/detail?id=170964
Review URL: https://codereview.appspot.com/7178045

git-svn-id: http://skia.googlecode.com/svn/trunk@7312 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6 22-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added toString to SkXfermode-derived classes (for debugger)

https://codereview.appspot.com/7139058/



git-svn-id: http://skia.googlecode.com/svn/trunk@7308 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
46d3d39e65e0b3ea2ad7c91c176ccafb4df0fa24 22-Jan-2013 jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add GPU support for axis-aligned ovals:
- Add drawOval base function to SkDevice, and override in SkGpuDevice
- Move isSimilarityMatrix to SkMatrix (renamed to isSimilarity) and fixed up unit test
- Since both SkGpuDevice::drawOval() and GrContext::drawPath() can try to draw ovals, added GrContext::canDrawOval() and GrContext::internalDrawOval() to avoid duplicate code
- Hooked in axis-aligned oval fill shader
- Enabled GPU stroked circles
- Added stroked circle bench test

Review URL: https://codereview.appspot.com/7137050



git-svn-id: http://skia.googlecode.com/svn/trunk@7304 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kMatrix.cpp
5632e76dffc4b410351cc01dd4fe05dc129e2a42 21-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Place fix in r7278 behind compile flag



git-svn-id: http://skia.googlecode.com/svn/trunk@7300 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
90b17c74851550bdb86a893806766b2afbc7073f 21-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Placing 1xN bitmap shader opt behind a flag to delay WebKit rebaselines



git-svn-id: http://skia.googlecode.com/svn/trunk@7298 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
36df7ed46b41ac31cb2205bfd3ae37659d61e2fb 19-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7293 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
f919b720a1f4a183dfcca916b00da26fd27327e3 18-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> in SkPath::dump(), add \n after close() printf, so we don't run into the next verb (e.g. moveTo)



git-svn-id: http://skia.googlecode.com/svn/trunk@7279 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
64d6295b0f6d500ccb3e8091adb2c334925dc388 18-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> increase iteration count from 16 to 24, when computing cubic-line intersection.
This fixes crbug 170666. Before the fix, were were finishing the "clip" step
with a curve that was still partly negative, and so as assert would fire.

added unittest to confirm that the assert doesn't fire.



git-svn-id: http://skia.googlecode.com/svn/trunk@7278 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
7da456d52b58a5361581e6db441ca91b347c4eb2 18-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix 7273 for neon

https://codereview.appspot.com/7137059/



git-svn-id: http://skia.googlecode.com/svn/trunk@7277 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
8b8bf4d12ecf8fb340a1362c91a8a57395dd31a3 18-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added shaderproc for 1xN repeatX/repeatY BitmapProcShader

https://codereview.appspot.com/7063054/



git-svn-id: http://skia.googlecode.com/svn/trunk@7273 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_filter.h
15dd300ac6d7695b4d2aca81d8f3648eae704451 18-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7268 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
51bbe75875d654251c6e8bec21ca773ffd5f39d0 17-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkPath::dump() to output compilable code snippet, to aid in debugging.



git-svn-id: http://skia.googlecode.com/svn/trunk@7267 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
148a3961b1c82a891012f2feb2a875cea2593170 17-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't die when there are no fonts available.
https://codereview.appspot.com/7147044/


git-svn-id: http://skia.googlecode.com/svn/trunk@7265 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPictureRecord.cpp
68b58c95384dd6c2fd389a5b4bbf8fc468819454 17-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove default implementation of GrEffect::isEqual. Make GrSingleTextureEffect abstract.
Review URL: https://codereview.appspot.com/7142049

git-svn-id: http://skia.googlecode.com/svn/trunk@7254 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
3f7137250c8558dedd1f08ed2e5f61d3665c19cb 17-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Switch debugger profiling stubs over to being guarded by SK_DEVELOPER

https://codereview.appspot.com/7134053/



git-svn-id: http://skia.googlecode.com/svn/trunk@7246 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
0ac6af49975c54c2debf41e9200af416ecd2d973 16-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Wrap GrEffects in GrEffectPtr.

This is the first step towards automatic recycling of scratch resouces in the cache via ref-cnts.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/7092061

git-svn-id: http://skia.googlecode.com/svn/trunk@7222 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kColorFilter.cpp
kImageFilter.cpp
kShader.cpp
6f54724c11ab739fa0d6deff1d4b564596fe3970 16-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove legacy build-flags for drawBitmapRect
add SkRect::isetWH()
Review URL: https://codereview.appspot.com/7127045

git-svn-id: http://skia.googlecode.com/svn/trunk@7221 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
ff21c2e0ae23da0f4742b47d4d37969a2a18bd99 16-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7215 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.h
kDevice.cpp
3c95d5b55d560c819b7a81b04c942d8f7f0b17a3 15-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Have drawBitmapRectToRect devolve to drawBitmap if it can (to avoid creating
a bitmap-shader, which is slower when the matrix is nearly translate-only).

SK_IGNORE_DRAWBITMAPRECT_AS_DRAWBITMAP will disable this if needed.
Review URL: https://codereview.appspot.com/7100058

git-svn-id: http://skia.googlecode.com/svn/trunk@7208 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
4e23068b374023d43c4c725138d523721d975892 15-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Re-enable inst counting in debug builds.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/7098066

git-svn-id: http://skia.googlecode.com/svn/trunk@7206 2bbb7eff-a529-9590-31e7-b0007b416f81
kInstCnt.cpp
7fbcfe97543b964fdc43156f9fa5d91220f2e4f7 15-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add LF at end of file to fix warning



git-svn-id: http://skia.googlecode.com/svn/trunk@7204 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
76f9e938df0b5826fd4c80b854ceafaf385cfbe1 15-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added print out of SkShader information to debugger

https://codereview.appspot.com/7105045/



git-svn-id: http://skia.googlecode.com/svn/trunk@7201 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.h
kMatrix.cpp
kShader.cpp
848148ec109172f9eef9a26fa23a520cf9072b5c 15-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bug in cubic-clipper (SkEdgeClipper). When we chop the cubic on Top/Bottom
of the cliprect, we (correctly) clamp the Y coordinate of the control-point
right next to the on-curve point that was chopped (this ensures we don't go
slightly outside of the clip-rect due to imperfect T value calculation). However,
the code was also clamping the other control-point as well, resulting in warping
the cubic, which could sometimes force it outside of the clip.

The fix is to just remove the line of code that clampped the 2nd control-point.

unittest added to reproduce a test cubic that triggered an assert, due to the
cubic being outside of the cliprect. The test (w/o the fix) will assert in
a SK_DEBUG build.
Review URL: https://codereview.appspot.com/7100056

git-svn-id: http://skia.googlecode.com/svn/trunk@7184 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
e7591bb0c10ac6b9827738cb910474561039e2f4 15-Jan-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> call endContext() if we have to return false from setContext(), to keep the
debugging fInSetContext flag up-to-date.



git-svn-id: http://skia.googlecode.com/svn/trunk@7175 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
7fc0e0a75a99ac5ea2e5d03ab3a00cacabacfa09 15-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7173 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
a3bdc1a6cd1ce9630df43a28fffef17a12c41f32 14-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> another false --> NULL return fix

false --> NULL for failure return

BUG=

Review URL: https://codereview.appspot.com/7100052

git-svn-id: http://skia.googlecode.com/svn/trunk@7167 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
2ad83ea8309733730c5232bc47c76303bc7240ee 14-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> false --> NULL for failure return

BUG=

Review URL: https://codereview.appspot.com/7096058

git-svn-id: http://skia.googlecode.com/svn/trunk@7165 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
7f5350346aa69447d59ef976011746fd3fe6904e 14-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SK_DRAW_POS_TEXT_IGNORE_SUBPIXEL_LEFT_ALIGN_FIX.
https://codereview.appspot.com/7070073/


git-svn-id: http://skia.googlecode.com/svn/trunk@7159 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
7af56bee17764a0c118c8856a035bb3d27766969 14-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Runtime configuration system for skia. This will allow developers to control settings at launch time without relying on compile-time flags or recompilation. It can be used to turn features on and off, as well as to control numeric quantities to 'tune' algorithms. Once I make sure it's working across all platforms I'll send out a quick tutorial on its use.

Review URL: https://codereview.appspot.com/7098051

git-svn-id: http://skia.googlecode.com/svn/trunk@7158 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kStream.cpp
50dd41017ad121b5f40f063d813ba517668fcfbc 14-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkScalerContextRec::getMatrixFrom2x2 more direct.
https://codereview.appspot.com/7070072/


git-svn-id: http://skia.googlecode.com/svn/trunk@7157 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
c62b726dd1c839170466b23e8d0381c395526954 14-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix uninitialized memory issue

https://codereview.appspot.com/7085055/



git-svn-id: http://skia.googlecode.com/svn/trunk@7156 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
e197cbf9a3e66bab926bc5e51962752dad5221a0 14-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change signature of SkShader::asNewEffect(), implement for SkBitmapProcShader.
Review URL: https://codereview.appspot.com/7086051

git-svn-id: http://skia.googlecode.com/svn/trunk@7153 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kShader.cpp
47ebbcc7abf90c943b2d5e05fcedb42913e917e0 14-Jan-2013 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use the NDK's cpu-features library when building skia for Chromium/Android.

This patch ensures that when Skia is built for Chromium, it will
always use the Android NDK's cpu-features helper library to detect
NEON at runtime.

This is needed because sandboxed Chromium renderer processes cannot
access /proc, and the probing performed in SkUtilsArm.cpp will never
work. As such, the NEON code paths will never be used even when the
device supports them.

Chromium has special code that ensures that the browser process
passes the CPU features flags to every renderer process, but
Skia needs to use android_getCpuFeatures() to get them.

See http://crbug.com/164154 for full details.
Review URL: https://codereview.appspot.com/7102045

git-svn-id: http://skia.googlecode.com/svn/trunk@7149 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.cpp
171f5c76b95da85ff7341f6cb0dcdac868101de7 10-Jan-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename onFilterImageGPU to filterImageGPU(), to match skia convention. No change in functionality.

(Note that this does mean that clients must override onFilterImage() to implement the raster path, but filterImageGPU() to implement the GPU path.)

Review URL: https://codereview.appspot.com/7058078

git-svn-id: http://skia.googlecode.com/svn/trunk@7123 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
59a6a2b98302adc4732fc26873043bad1a94e9f1 10-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix assertion caused by change in 7117.

SkRect::intersect returns false if either rectange is empty.
SkCanvas::quickReject returns true if an empty rectange is entirely contained within the clip bounds.



git-svn-id: http://skia.googlecode.com/svn/trunk@7118 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
99452e6d15f4e3c01a4a20c3bf50ff698e62f261 10-Jan-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Properly reject clipped out draws in BBox pictures.
https://codereview.appspot.com/7057065/



git-svn-id: http://skia.googlecode.com/svn/trunk@7117 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
e490420efc931db8d2c8f397ddf704aab980295d 09-Jan-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Ensure that SkMemoryStream does not crash dereferencing fData.

SkMemoryStream attempts to dereference fData in multiple places.
Instead of allowing it to be NULL, resulting in a crash, set it
to SkData::NewEmpty().

Add a test for SkStream that will crash when its SkData is set to NULL.

Review URL: https://codereview.appspot.com/7061059

git-svn-id: http://skia.googlecode.com/svn/trunk@7111 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
50c79d886bf435d3a9cad056885370e2c3f526ad 08-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Enable warnings-as-errors on Windows.
Review URL: https://codereview.appspot.com/7066054

git-svn-id: http://skia.googlecode.com/svn/trunk@7094 2bbb7eff-a529-9590-31e7-b0007b416f81
kMath.cpp
b5715a1c8003e4a8af2301ab44aeef043547808e 08-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix spelling: cannonical -> canonical



git-svn-id: http://skia.googlecode.com/svn/trunk@7074 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.h
kPaint.cpp
070dcd8ad37a4c5b8a9015938409b27bb3ce3ab9 07-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> abandon SK_IGNORE_TREAT_AS_SPRITE as a flag, and use SK_IGNORE_TRANS_CLAMP_FIX
for the fixes in SkDraw.cpp and SkBitmapProcState.cpp

Also, change the call in SkDraw.cpp to pass 0 for subpixel bits, to match the
old logic.... we should have a runtime fix for this in the future, so a caller
*can* get subpixel-filtered images w/ just translate.



git-svn-id: http://skia.googlecode.com/svn/trunk@7065 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
140d7286c5a40058932696eaa28818c313bd2ddf 07-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings
Review URL: https://codereview.appspot.com/7073044

git-svn-id: http://skia.googlecode.com/svn/trunk@7064 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
0e51577a14f903ffeafa117a75954baeb173ffb9 07-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning from scalar --> int32 conversion

BUG=

Review URL: https://codereview.appspot.com/7065050

git-svn-id: http://skia.googlecode.com/svn/trunk@7061 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
kOrderedReadBuffer.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
57313f6472684b14570562e43e84f5e2d6fcf278 07-Jan-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix warning-as-error for var used only in an assert (and therefore not in the release build).



git-svn-id: http://skia.googlecode.com/svn/trunk@7054 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
05af1afd429808913683da75644e48bece12e820 07-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> eliminate all warnings in non-thirdparty code on mac

Most of these issues were due to functions whose definitions appear in header files; I changed those functions to be 'static inline' instead of just 'static' or 'inline', which kills the warning for such functions.

Other functions that were static or anonymous-namespaced but were unused in cpp files were probably called at some point but are no longer; someone who knows more than I do should probably scrub all the functions I either deleted or #if 0'ed out and make sure that the right thing is happening here.

Lots of unused variables removed, and one nasty const issue handled.

There remains a single warning in thirdparty/externals/cityhash/src/city.cc on line 146 related to a signed/unsigned mismatch. I don't know if we have control over this library so I didn't fix this one, but perhaps someone could do something about that one.

BUG=

Review URL: https://codereview.appspot.com/7067044

git-svn-id: http://skia.googlecode.com/svn/trunk@7051 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kConfig8888.h
kUtilsArm.h
f515ffc3d44975a09755276e572448061df3e2fe 07-Jan-2013 humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Show the paint's typeface information in the details pane of the debugger.

Also add a convenience constructor for SkMemoryStream that takes the SkData directly
(instead of having to construct an empty one and call setData).
Review URL: https://codereview.appspot.com/7065045

git-svn-id: http://skia.googlecode.com/svn/trunk@7048 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
ce1f3cc1e22a50caaaaded7b91d9492b3ae5901c 05-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix the computed (new) inverse matrix when we detect that a shader's matrix
can effectively be consider translate-only.
Review URL: https://codereview.appspot.com/7060043

git-svn-id: http://skia.googlecode.com/svn/trunk@7039 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
4a1362a3c91ae9461a54bf1b04c250b0aa145db4 04-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_IGNORE_FAST_SCALEMATRIX_INVERT guard for new invert code



git-svn-id: http://skia.googlecode.com/svn/trunk@7025 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
2fb96cc5d713451216bd63d5dc8d19abc8550730 04-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> special-case matrix invert for translate and scale

update unittest to use diff scale-x and scale-y values, and tests for non-invertible scale matrices
Review URL: https://codereview.appspot.com/7027055

git-svn-id: http://skia.googlecode.com/svn/trunk@7019 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
ade109f57c64f4fbc048cd77abaf4c539e010557 04-Jan-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix Android compiler warnings.

Review URL: https://codereview.appspot.com/7040053

git-svn-id: http://skia.googlecode.com/svn/trunk@7014 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
d9f65e3df45c9b4994c70f6bf13d29985afd2f65 04-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7010 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kPath.cpp
b16033a25b91f9e45d07bd4b955c8dbcfd23e8d5 04-Jan-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> reorder internal files, in preparation for refactoring. no functional change.



git-svn-id: http://skia.googlecode.com/svn/trunk@7009 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5d688fb273d300cd163e7848bf2f0cb38a81ba82 04-Jan-2013 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead code from SkPath::addOval



git-svn-id: http://skia.googlecode.com/svn/trunk@7008 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ae57358447bac678e3fc458fa2857a349a6a7081 03-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkTreatAsSprite in SkDraw (with guard for chrome if needed)



git-svn-id: http://skia.googlecode.com/svn/trunk@6994 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kMatrix.cpp
kMatrixUtils.h
5408a30c8d5370db05907f2b306270df3e937543 03-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> #undef SK_IGNORE_QUAD_STROKE_FIX, to enable the fix for stroked quads.
chrome may need to define this in preparation for rebaselining.



git-svn-id: http://skia.googlecode.com/svn/trunk@6984 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
422188f3c6286d2991a029027958387b070e4dc6 03-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6982 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kMatrixUtils.h
7d474f8a84a74421bd8d119124daa64ec1710f76 02-Jan-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> The motivation for this changeset is to fix the following build failure in google3-

third_party/skia/src/core/SkCanvas.cpp:1711:61: error: non-constant-expression cannot be narrowed from type 'int32_t' (aka 'int') to 'SkScalar' (aka 'float') in initializer list [-Wc++11-narrowing]
0, SkIntToScalar(c.fLeft), SkIntToScalar(c.fRight), w
^
third_party/skia/src/core/SkCanvas.cpp:1711:61: note: override this message by inserting an explicit cast
0, SkIntToScalar(c.fLeft), SkIntToScalar(c.fRight), w
^
static_cast<SkScalar>( )
Review URL: https://codereview.appspot.com/7041044

git-svn-id: http://skia.googlecode.com/svn/trunk@6979 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
ad514302158887002e83625a837f9ecbe540d1d3 02-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add unittest for SkTreatAsSprite
Review URL: https://codereview.appspot.com/7042044

git-svn-id: http://skia.googlecode.com/svn/trunk@6974 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kMatrixUtils.h
2157983513e45613431d5e13f2be3b6aacaf757c 25-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6947 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
14dd81d7d02ab8a84da9a9f8dd9223930131e0bd 24-Dec-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> disable (using build-flag) change in 6937 until I can figure out how to rebaseline the self-test
in gm/tests.



git-svn-id: http://skia.googlecode.com/svn/trunk@6940 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
dec8125e11f3414303f7c313fb68575dfc6407f3 24-Dec-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix strokes for quadratics. #define SK_IGNORE_QUAD_STROKE_FIX to
retain the old behavior (i.e. for skia.gyp until we rebaseline)



git-svn-id: http://skia.googlecode.com/svn/trunk@6937 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
1a60dab449ee8ab3b4c4330a18fae57b5980363e 24-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6936 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
bcbef579d02e255b9a29b5db2d6804f4bfc76d1c 24-Dec-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkRRect::inset(), which mimics stroking



git-svn-id: http://skia.googlecode.com/svn/trunk@6935 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
b89a03c890668f98d9f8b269b6ad00824409435b 22-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6930 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
5595af1b2ebe6590e98641464d43d22281a7f295 21-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> unify how we handle externally-provided storage in SkWriter32, with the goal
of simplifying the logic in reserve() so it can be inlined/accelerated.
Review URL: https://codereview.appspot.com/6962048

git-svn-id: http://skia.googlecode.com/svn/trunk@6923 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
675de168d8ec37958a40a3593bd86c631d810fec 18-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding support for new canvas API method clipRRect with rtree and tileGrid

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm rrect_clip_* with --tileGrid and --rtree
Review URL: https://codereview.appspot.com/6939073

git-svn-id: http://skia.googlecode.com/svn/trunk@6883 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
30711b764be6bbb58caa30a0ac5d1474c894efe7 18-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkMaskFilter methods to const, in preparation for making the class as
immutable and re-entrant safe.
Review URL: https://codereview.appspot.com/6944069

git-svn-id: http://skia.googlecode.com/svn/trunk@6881 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kMaskFilter.cpp
457d8a77bed0160519fc5dfb67d0e02f9c3950a2 18-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove experimental setAsABlur, as it forces the instance to be mutable, and was
not adopted by chrome
Review URL: https://codereview.appspot.com/6939071

git-svn-id: http://skia.googlecode.com/svn/trunk@6879 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
fdba4041c350b72791a1844ff0bc0af28cbb4199 18-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change all interfaces for SkRasterizer to const, in preparation for marking it
as immutable/re-entrant safe.
Review URL: https://codereview.appspot.com/6936064

git-svn-id: http://skia.googlecode.com/svn/trunk@6878 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterizer.cpp
548a1f321011292359ef163f78c8a1d4871b3b7f 18-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change all patheffect methods to const, in preparation for marking its
subclasses as immutable/re-entrant safe.
Review URL: https://codereview.appspot.com/6949071

git-svn-id: http://skia.googlecode.com/svn/trunk@6877 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
78c0c30987075821547979de55200c32bcaa3e49 18-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix drawSprite to record correctly with SkBBoxRecord

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm lighting with -tileGrid
Review URL: https://codereview.appspot.com/6947075

git-svn-id: http://skia.googlecode.com/svn/trunk@6876 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
7a03d86a3d9adcb13432fbd82039725149487c97 18-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6872 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kDraw.cpp
kPath.cpp
6006b5641e575181f2d6f1212b8db491b2c2671c 17-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkBBoxRecord to correctly handle SkRect arguments that are inverted rects.

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm strokerect with --tileGrid
Review URL: https://codereview.appspot.com/6945071

git-svn-id: http://skia.googlecode.com/svn/trunk@6870 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
4e18c7a9bbef6ac949d535aa61dfe1462ebb4452 17-Dec-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add RRect GM

https://codereview.appspot.com/6945063/



git-svn-id: http://skia.googlecode.com/svn/trunk@6866 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
0c8ec2f658a206cbedd0d955167654fae85ad5fb 17-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing bounding box computation for inverse filled paths in SkBBoxRecord

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm emptypath with --tileGrid
Review URL: https://codereview.appspot.com/6944062

git-svn-id: http://skia.googlecode.com/svn/trunk@6865 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
5f74cf8c49701f514b69dc6f1a8b5c0ffd78af0a 17-Dec-2012 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Follow up on the previous patch :
- Moved the SkStrokeRec class in its own file
- Replaced SkStroke by SkStrokeRec in Ganesh
- Moved path stroking to the Ganesh level in some cases (everytime it isn't required to do it directly in SkGpuDevice). PathEffect and MaskFilter still require path stroking at the SkGpuDevice for now.
- Renamed static functions in SkPath with proper names

* No functionality shold have changed with this patch. This is a step towards enabling Ganesh Path Renderers to decide whether or not to stroke the path rather than always receiving the stroked path as an input argument.

BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6946072

git-svn-id: http://skia.googlecode.com/svn/trunk@6861 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
kPicturePlayback.cpp
kStroke.h
kStrokeRec.cpp
bada64428a52b4fc1f31a0a1982c2301ec57601c 17-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make all colorfilter methods const, in preparation for declaring them
to be immutable and reentrant-safe

git-svn-id: http://skia.googlecode.com/svn/trunk@6856 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
30da745bbf67a0ee0f305ca7bbdb685cc8a9e686 17-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Mark all methods on SkXfermode as const, in preparation for declaring all
xfermodes as immutable/reentrant-safe
Review URL: https://codereview.appspot.com/6941065

git-svn-id: http://skia.googlecode.com/svn/trunk@6855 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
6d87557278052c131957e5d6e093d3a675162d22 17-Dec-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 3on/3off dashing optimization

https://codereview.appspot.com/6891046/



git-svn-id: http://skia.googlecode.com/svn/trunk@6851 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
5f8c8f448673c65c5434cf1e419319eccf34117b 17-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding missing oval and roundedRect primitives to SkBBoxRecord

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm with --tileGrid
Review URL: https://codereview.appspot.com/6937066

git-svn-id: http://skia.googlecode.com/svn/trunk@6846 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
b3470c8c421ee8f367673a67c3408507cee04434 17-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix line rendering with TileGrid and Rtree

BUG=http://code.google.com/p/skia/issues/detail?id=1014
TEST=gm hairmodes with --tileGrid and --rtree
Review URL: https://codereview.appspot.com/6947056

git-svn-id: http://skia.googlecode.com/svn/trunk@6841 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
9be5727d96979f6a0f89b00a43c19bca97ace0fc 17-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect out-of-memory when we try to create a mask offscreen



git-svn-id: http://skia.googlecode.com/svn/trunk@6839 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
c3442d53dabf2a692f4c9efba5e8be7bbb43d3ef 17-Dec-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> move inset out of SkRRect.h for now, and add experimental versions to gm



git-svn-id: http://skia.googlecode.com/svn/trunk@6833 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
37071640f6bdcb1bfb193f85b9ca615b29679425 17-Dec-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add gm for rrect, and rrect.inset/outset



git-svn-id: http://skia.googlecode.com/svn/trunk@6832 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
4ef4f4a596d2a43d39342307099c58fe27604423 14-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Improving comment in SkTileGrid::search

TBR=reed

git-svn-id: http://skia.googlecode.com/svn/trunk@6828 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
d4a1567c179311a457283185a65f7a8aeb8fef80 14-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replacing alloca call in SkTileGrid with SkAutoSMalloc
Review URL: https://codereview.appspot.com/6946054

git-svn-id: http://skia.googlecode.com/svn/trunk@6824 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
54cae704151f78ff7829add3b53e41e34a373a6b 14-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Build fix for windows chromium bots.

git-svn-id: http://skia.googlecode.com/svn/trunk@6823 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
f7ef56d9104fc651769760df9d5f861ef36de658 14-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call lock-pixels once we know we're a sprite
Review URL: https://codereview.appspot.com/6938058

git-svn-id: http://skia.googlecode.com/svn/trunk@6819 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
ea033606a06d05d2d42aa7118409fee798e53167 14-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add per-draw checks for lockcounts
Review URL: https://codereview.appspot.com/6943056

git-svn-id: http://skia.googlecode.com/svn/trunk@6815 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter.h
kCanvas.cpp
kDraw.cpp
61b05dcc7ebe48663c3ba84b7bd7449d6c887ac1 14-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6809 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kTileGrid.cpp
kTileGrid.h
a641f3f18e5319773989812a888f3fad49e4f2ad 13-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reland 6798 w/ fix for bitmap-as-mask pixel-locking



git-svn-id: http://skia.googlecode.com/svn/trunk@6806 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.h
kShader.cpp
135e16cd8ebb2ba30458b284d4a17e1eea81ad35 13-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 6798 (assert in GM)



git-svn-id: http://skia.googlecode.com/svn/trunk@6802 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.h
kShader.cpp
2a3f08b0a71d044ba48694ed04b3dc1ce846e9d9 13-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add debugging flag SK_IGNORE_PIXELREF_SETPRELOCKED for pixelref locks (disabled)



git-svn-id: http://skia.googlecode.com/svn/trunk@6800 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
1adcf8859cc9414591038e440e3f22382c8e4aa0 13-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Goal: ensure we always balance lock/unlock pixels calls.

A big caller of lockPixels is setContext in the bitmapshader.

This change replaces beginSession/endSession with adding endContext(), and
adds debugging code to ensure that
1. setContext calls are never nested
2. endContext is always called after each setContext call.
Review URL: https://codereview.appspot.com/6937046

git-svn-id: http://skia.googlecode.com/svn/trunk@6798 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kComposeShader.cpp
kDraw.cpp
kFilterShader.h
kShader.cpp
3cb834bd27a16cc60ff30adae96659558c2dc91f 13-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modifying SkTileGrid to support arbitrary query rectangles.
Exposing SkTileGrid functionality in the public API through SkTileGridPicture.
This patch also makes TileGrid and Rtree testable in gm, which revealed errors.

TEST=gm with '--tileGrid'
BUG=http://code.google.com/p/chromium/issues/detail?id=164636
Review URL: https://codereview.appspot.com/6933044

git-svn-id: http://skia.googlecode.com/svn/trunk@6783 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
kTileGridPicture.cpp
306ab9d5de38f2a547fd1d69aedbe69b5c6617cc 13-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6774 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicturePlayback.h
kPictureRecord.cpp
4ed0fb768409bf97b79899c3990d8c15f5e9d784 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 6766, thereby re-landing 6762-6763 now that the bots are ready



git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPath.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kRRect.cpp
25c1408c3da9ca90509b84f21a1161ef40052bd1 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 6762-6763, since those require new skps to be generated, and we can't
do that immediately right now... will re-submit when we can.



git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPath.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kRRect.cpp
68d61ed83ec7b6e98e9623c2f5c9e7b1a32d25bb 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make RRect and Oval first-class drawing primitives in SkCanvas.
add RRect as a first-class clip primitive.
Review URL: https://codereview.appspot.com/6923058

git-svn-id: http://skia.googlecode.com/svn/trunk@6762 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPath.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kRRect.cpp
8cdf0f52ff395d4053f7ed5c20861c42eba25d31 12-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding quickContains API method to SkClipStack

BUG=http://code.google.com/p/chromium/issues/detail?id=164580
TEST=unit test ClipStack/quickContains
Review URL: https://codereview.appspot.com/6919044

git-svn-id: http://skia.googlecode.com/svn/trunk@6760 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
6f9286202831dd807daf9b1e39271da8f390210e 10-Dec-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When cloning picture, use a bitmap heap to avoid flattening bitmaps.

When cloning a picture, the paints are reflattened. Use a bitmap
heap so the bitmaps do not get unnecessarily get flattened as well.

For br.337, this speeds up bench_pictures timing the clone
operation (not yet checked in, but currently timing making five
clones) from around 180 ms to around 24ms.

Review URL: https://codereview.appspot.com/6903063

git-svn-id: http://skia.googlecode.com/svn/trunk@6740 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
dee54be428017a81f13519291a03baac11d61602 10-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> optimize for paints that don't require deep copy during clone
Review URL: https://codereview.appspot.com/6903062

git-svn-id: http://skia.googlecode.com/svn/trunk@6739 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
84239fb28d87b6fd62150f4f167c8e50f744d6ce 10-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> mark our unflattened bitmap as immutable (just as picture deserialization does)



git-svn-id: http://skia.googlecode.com/svn/trunk@6736 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
907ef6c7024c7aa04cb8822b0d06a458e551bc89 10-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't convert clipPath -> clipRect if the path is inverse-filled



git-svn-id: http://skia.googlecode.com/svn/trunk@6734 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
7c9d539d8843ad75a1c249633bbc8bb331f5035e 10-Dec-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> In SKP serialization, use existing encoded data.

If an SkBitmap has encoded data, write that during serialization
rather than reencoding it.

Add a test to ensure that this does not modify the output stream,
so the reader need not know the difference.

Review URL: https://codereview.appspot.com/6884054

git-svn-id: http://skia.googlecode.com/svn/trunk@6732 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
edf32d5b0e7694833287024e03da38521a0adf05 10-Dec-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing SkClipStack::clipDevPath so that it will not convert rectangular paths to rectangle clips if inverse fill.

BUG=http://code.google.com/p/chromium/issues/detail?id=164580
TEST=unit test ClipStackTest/test_rect_inverse_fill
Review URL: https://codereview.appspot.com/6880044

git-svn-id: http://skia.googlecode.com/svn/trunk@6731 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
c1f224ac07b1310211e0219a4d6bda41e49abe90 08-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6721 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
5f97114fd28e03e8c4c1c22c924d383b45cdced1 07-Dec-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make debugger profiling honor deleted commands

https://codereview.appspot.com/6906043/



git-svn-id: http://skia.googlecode.com/svn/trunk@6713 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
c6b3e48cb3a22d83ba3f4b9a614a5a35b05958a0 07-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve handling of inverse clip paths in GrClipMaskManager.

Will require rebaselining of complexclip_aa and complexclip_aa_layer on GPU.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6907052

git-svn-id: http://skia.googlecode.com/svn/trunk@6712 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
kTLList.h
a2a31928470dfb642880f6ab2e4d34b1c7f5d476 07-Dec-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some extract subset bugs.

In SkBitmap::extractSubset, perform a deepCopy, if the pixelRef supports it.

Fixes a bug in the 'extractbitmap' gm, which attempts to draw a subset of a texture backed bitmap (if the canvas is really an SkGpuCanvas).

Also fix some bugs that happen when there is a pixel offset. These fixes get bypassed by the deepCopy, but a user can still set a pixel offset manually.

When copying GPU backed bitmap with a pixel offset, copy the offset.

If the new config is the same as the old, copy fRowBytes as well.

Add a function to SkBitmap.cpp (getUpperLeftFromOffset) to find the x,y coordinate to use when copying to a new config.

Fix a bug where readPixels copied to the correct desired config and we were setting the generation ID to match even though the desired config was not the same as the original config (caught by my new tests!).

Add some tests to verify the correct behavior.

Review URL: https://codereview.appspot.com/6839043

git-svn-id: http://skia.googlecode.com/svn/trunk@6710 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f56225c848cb0cd0fde4cb37558174ae096b93d1 07-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speedup peek32() when the offset is in the last block (fTail)
Review URL: https://codereview.appspot.com/6906047

git-svn-id: http://skia.googlecode.com/svn/trunk@6708 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
4595426b553c0c721f41aa14d598caa5d9940207 07-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> cache fontmetrics in picture-record
Review URL: https://codereview.appspot.com/6908049

git-svn-id: http://skia.googlecode.com/svn/trunk@6706 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
c52295f9ddc5592260b8adfce3d2778d4a21c9f2 07-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> mark bitmaps as immutable as we deserialize them into picture-playback
Review URL: https://codereview.appspot.com/6900045

git-svn-id: http://skia.googlecode.com/svn/trunk@6703 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
dbfac8a72393eaf01670aeb3244de0e18d8faf98 06-Dec-2012 junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Defining new color constat for transparent color
Review URL: https://codereview.appspot.com/6901044

git-svn-id: http://skia.googlecode.com/svn/trunk@6696 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kDevice.cpp
kScalerContext.h
4c2443e36fdc6c095b17e90baa4a2f26a6f00b08 06-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use ReduceClipStack in ClipMaskManager.

R=robertphillips@google.com

This will require some gpu rebaselining (complexclip_rect_aa, complexclip_aa, aaclip, simpleaaclip, complexclip_aa_layer)xy
Review URL: https://codereview.appspot.com/6884051

git-svn-id: http://skia.googlecode.com/svn/trunk@6694 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
12b4e27ae1a29460e91a59f38122483e1faec697 06-Dec-2012 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> As part of preliminary groundwork for a chromium fix, this changelist is deprecating GrPathFill so that SkPath::FillType is used everywhere in order to remove some code duplication between Skia and Ganesh.

BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6875058

git-svn-id: http://skia.googlecode.com/svn/trunk@6693 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.h
eb776128f5024cc50886634382731220f7424a9a 06-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add query to pixelref for its encoded data (if it has any)
Review URL: https://codereview.appspot.com/6891047

git-svn-id: http://skia.googlecode.com/svn/trunk@6689 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
0264fb4543b0d8cebe00f1ee32433784f4ceb074 06-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6687 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
935ad026826fb7d31d562ff7326b84ec3a827456 05-Dec-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add drawPoints dash bench

https://codereview.appspot.com/6866053/



git-svn-id: http://skia.googlecode.com/svn/trunk@6678 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
8958dc949ea9f716c46b3ca98d341f775835296d 05-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add operator delete to match operator new for SkTLList.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6871061

git-svn-id: http://skia.googlecode.com/svn/trunk@6673 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
4b90b1122c93e6600ea352f4ccf1dfc54c8bb146 04-Dec-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Handle recording a bitmap if copy fails.

If SkBitmapHeap::insert() returns INVALID_SLOT, assert at picture
record time so we can debug, but allow it to continue in release
mode, so that we can still capture a picture. At playback time,
print a message so we know that there was an error.

Review URL: https://codereview.appspot.com/6873050

git-svn-id: http://skia.googlecode.com/svn/trunk@6664 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.h
kPictureRecord.cpp
ebce0301082cda9dc3e3298f6db91d46fe66298b 04-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix stale iterators in LList test. Add newline to end of SkTLList.h



git-svn-id: http://skia.googlecode.com/svn/trunk@6663 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
8182fa0cac76e7e6d583aebba060229230516887 04-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkClipStack::Iter use SkClipStack::Element.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6871051

git-svn-id: http://skia.googlecode.com/svn/trunk@6661 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
kTLList.h
e659c2e820de0b8d12d81247ed4430022ded0a90 04-Dec-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6660 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
dd3f7a9efefc486833d564527367155eb93691d4 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland r6649 with fix for build errors.



git-svn-id: http://skia.googlecode.com/svn/trunk@6653 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
acc71aa5c2e9349d9501d1b2a6cb6a33325cd73c 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert 6649 due to build breaks.



git-svn-id: http://skia.googlecode.com/svn/trunk@6651 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
4928f86edaef8a91efd9bf4b30951d0f38d5d7ee 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Insert in middle of SkTInternalLList and SkTLList, in place cons for
SkTLList.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6870050

git-svn-id: http://skia.googlecode.com/svn/trunk@6649 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
bbe52908a23d5eada9a0e5c58e620b35a2770c10 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkTLList, linked list class implemented on top of the internal llist class.

R=robertphillips@google.com
Committed: https://code.google.com/p/skia/source/detail?r=6644
Review URL: https://codereview.appspot.com/6869049

git-svn-id: http://skia.googlecode.com/svn/trunk@6647 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
08cb7286c6fe50ceaabc15a16f0020d808390f43 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert change accidentally committed.



git-svn-id: http://skia.googlecode.com/svn/trunk@6645 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
d29902e0d7e0a5860b6e4b5d11f4730a0728dc17 03-Dec-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkTLList, linked list class implemented on top of the internal llist class.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6869049

git-svn-id: http://skia.googlecode.com/svn/trunk@6644 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLList.h
0da23a5184cf8ee658c4f1ac45b798ddf7e73002 03-Dec-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Tweak an enum declaration to make the clang compiler happy.
This exposes our "unknown type" to users, which is a loss of encapsulation.
TBR=robertphillips

http://codereview.appspot.com/6865050/



git-svn-id: http://skia.googlecode.com/svn/trunk@6641 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
000dea7573e5c902c3e04e93ad6a1aaf83c44d88 30-Nov-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disabling validation of the glyph cache for standard debug builds.

The validation step is adding 50% overhead to the rendering of
text heavy SkPicture files.

Review URL: https://codereview.appspot.com/6856123

git-svn-id: http://skia.googlecode.com/svn/trunk@6635 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
c3d7d90973528527131c72549b10c2a21300e0ac 30-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6632 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kRRect.cpp
1c2c2fed075e05837878813d6f8fe6ca8fc7ea00 30-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for roll-blocking compiler error in SkRRect.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@6630 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
5fac58c91d8053dcc05c5bc72cfccee9246d9add 29-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkClipStack::Iter::combinedNext.
Review URL: https://codereview.appspot.com/6844114

git-svn-id: http://skia.googlecode.com/svn/trunk@6619 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
8a98e3bd18f1a8914cbfe1461e1ff47f51286556 29-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkClipStack::Element public.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6858096

git-svn-id: http://skia.googlecode.com/svn/trunk@6617 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
2d47a21b27035798d53de4d5cb8ac7c03534ab27 29-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use fast-pt case when radius <= 1/2, instead of just hairlines
Review URL: https://codereview.appspot.com/6854116

git-svn-id: http://skia.googlecode.com/svn/trunk@6616 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
417bc1382ee527077d96414552b52050335b3350 29-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkClipStack::Element::State to SkClipStack::Type, rename Comine* members to combine*

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6844113

git-svn-id: http://skia.googlecode.com/svn/trunk@6607 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
9128edc700ce1b722f1290c585af829542f98a33 29-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename SkClipStack::Rec to SkClipStack::Element

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6854115

git-svn-id: http://skia.googlecode.com/svn/trunk@6605 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
5985e7c4d13b04d6b819bfff3df44f1dd3eb35b8 29-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkRoundRect start

https://codereview.appspot.com/6815058/



git-svn-id: http://skia.googlecode.com/svn/trunk@6595 2bbb7eff-a529-9590-31e7-b0007b416f81
kRRect.cpp
687c57c7d5a17549f63e0b15208db18b220e2a91 29-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6594 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
629ab540667422d3edcb97c51e9628b7051e1ba4 28-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added dashing fast path

https://codereview.appspot.com/6844067/



git-svn-id: http://skia.googlecode.com/svn/trunk@6585 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPathEffect.cpp
edb26fdb8349a727b226e90cbeab06cd25f5cac0 28-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Set empty/wide-open genID on clip stack in more places and fix a bug in GrReduceClipStack.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6847116

git-svn-id: http://skia.googlecode.com/svn/trunk@6579 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
51a6286c241c1dc750d263ed9676079c898148b0 26-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a function that computes a reduced representation of the clip stack.

Also adds a unit test. The function is not yet used other than in the test.
Review URL: https://codereview.appspot.com/6855098

git-svn-id: http://skia.googlecode.com/svn/trunk@6553 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
971aca75572ed6e0c5e1cc959173dc58ca7b6b8d 26-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkDrawFilter::filter to return a bool, where false means don't-draw
Review URL: https://codereview.appspot.com/6851111

git-svn-id: http://skia.googlecode.com/svn/trunk@6551 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
a8a3b3d9a027ad54ce20f8b4ed7c577a176b31ca 26-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for bad enum use when adding contours
Review URL: https://codereview.appspot.com/6849103

git-svn-id: http://skia.googlecode.com/svn/trunk@6547 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5f0add3ad6e1d6129307276c81ba6624f92ca112 26-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove legacy build-guards, now that webkit has rebaselined these.

SK_DISABLE_FAST_AA_STROKE_RECT
SK_IGNORE_FAST_BLURRECT
SK_DISABLE_EXTRACTSUBSET_OPAQUE_FIX
SK_IGNORE_CF_OPTIMIZATION
SK_IGNORE_NEW_STROKERECT
SK_DISABLE_GPU_BLUR
SK_IGNORE_ROTATED_FREETYPE_FIX

The changes should all be:

remove code for #ifdef
remove guard for #ifndef
Review URL: https://codereview.appspot.com/6858073

git-svn-id: http://skia.googlecode.com/svn/trunk@6546 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
kDraw.cpp
kMaskFilter.cpp
kPictureRecord.cpp
kStroke.cpp
53007a2b1724c15c170340658daac012f9d909be 26-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> choose correct blitrow proc based on global alpha

fixes https://bugs.webkit.org/show_bug.cgi?id=103062
add gm to exercise this new fix



git-svn-id: http://skia.googlecode.com/svn/trunk@6544 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
c19468e4bbdb7238fb0bdd2900c8998d97b80492 21-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add default: to fix warning



git-svn-id: http://skia.googlecode.com/svn/trunk@6533 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
b2e138c2bf630a25c76733121ce98864b448e085 21-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix typo: must use modified join in case the miterlimit forces us to use bevel



git-svn-id: http://skia.googlecode.com/svn/trunk@6530 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
04fdaa1afed8687a3b15226ddebcb798c94ddac5 21-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use direction from isRect in strokeRect, and only stroke if it is closed
Review URL: https://codereview.appspot.com/6846086

git-svn-id: http://skia.googlecode.com/svn/trunk@6528 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
kStroke.h
f68154a3cf43eb22d45be11f3b09e25440c366a6 21-Nov-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add isRect variant that returns path closure and direction.

Add path test to verify that when isRect() returns false,
output parameters are unchanged.
Review URL: https://codereview.appspot.com/6855074

git-svn-id: http://skia.googlecode.com/svn/trunk@6524 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
bfe90370ea68798b2b9b5ba44142db67d99555e8 21-Nov-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect wrapped rect in path

Allow a rect to start in the middle of a span, and
wrap all the way around.

Initialize variable to suppress warning.

Add tests to detect rects constructed from a stroked
path.
Review URL: https://codereview.appspot.com/6847082

git-svn-id: http://skia.googlecode.com/svn/trunk@6522 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b0a327e9390da5865d4c56db5e5259adc3380d37 21-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6521 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
158c59524ce57a0e124cb02db2b72302f6200932 21-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_IGNORE_NEW_STROKERECT guard
temp workaround for bug in isRect when I'm stroking and the rect isn't closed.



git-svn-id: http://skia.googlecode.com/svn/trunk@6520 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
b9971cb6660fa85527a90bc42d7dd4dcb7db3355 20-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix regression from 6510 -- respect kStrokeAndFill setting for stroked rects



git-svn-id: http://skia.googlecode.com/svn/trunk@6516 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
6bb92bc0b52d31f3ded38927cdefbeb13a3df87a 20-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect gigantoid matrices, and do nothing to avoid wacky overflows from float -> int

https://code.google.com/p/chromium/issues/detail?id=156231
Review URL: https://codereview.appspot.com/6842075

git-svn-id: http://skia.googlecode.com/svn/trunk@6513 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
603dbedf293839e6707e2d4dfdd3949b06f9762c 20-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add specialty strokeRect() to SkStroke, which can return much cleaner results
Review URL: https://codereview.appspot.com/6843093

git-svn-id: http://skia.googlecode.com/svn/trunk@6510 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
kStroke.h
dab9b4fe035c1e8a79e110139953c19bd48d66f9 19-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkPath::isNestedRects() to apply blurred nine-patch
Review URL: https://codereview.appspot.com/6855063

git-svn-id: http://skia.googlecode.com/svn/trunk@6483 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
56f233ab54d228f3ce05d0f7e15996424f9d5dd2 19-Nov-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add two nested rect detector to path

Tease apart existing one rect path detector so
that a new variant can detect two nested rects as well.

Add tests to verify that both one and two rect
detectors both work and return the correct results.

Suppress other warnings in PathTest.
Review URL: https://codereview.appspot.com/6850059

git-svn-id: http://skia.googlecode.com/svn/trunk@6475 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
013c5d9107a4abd50e879ca66cf60b0c3a8256d4 16-Nov-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> In SkBitmapHeap, defer adding owners for new bitmaps.

When using an SkFlatDictionary to flatten shaders, the
dictionary can try to insert a duplicate bitmap shader
that uses a bitmap which has been removed from the
bitmap heap.

This change was originally suggested by junov in
https://codereview.appspot.com/6713048/.

Add a test to verify that deferring the owners works.
Without the change to bitmap heap the test would fail
(and crash in debug mode).

Also remove an unused function from SkFlatDictionary.

BUG=http://code.google.com/p/chromium/issues/detail?id=143923

Review URL: https://codereview.appspot.com/6842051

git-svn-id: http://skia.googlecode.com/svn/trunk@6471 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
kPictureFlat.h
886b25f14ce6a6974521f096eb5feac0b4327236 16-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6466 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
59d968fb29b39cc1f4eb0ac687007c74618c6c1c 16-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use correct blend proc instead of fourbyteinterp, since the src may not be opaque
fixes DumpRenderTree failure



git-svn-id: http://skia.googlecode.com/svn/trunk@6457 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
13201e74f43b9c5fa173339eb36de515370e6973 16-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fold kClear_Mode into kSrc_Mode, and make kSrc_Mode go faster
Review URL: https://codereview.appspot.com/6851054

git-svn-id: http://skia.googlecode.com/svn/trunk@6451 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
0f5891caf684b1d913b69d7a654f6ccb2a84ed8c 15-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove (unused) debugging global



git-svn-id: http://skia.googlecode.com/svn/trunk@6428 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
cec8de68217186d0f5676a696de44343aaa61de7 14-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6413 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
9bee33afbeca29f531c8455513b925f6e93da633 13-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a conservativelyContainsRect function to SkPath.
Review URL: https://codereview.appspot.com/6852044

git-svn-id: http://skia.googlecode.com/svn/trunk@6411 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
fbb0ed959de64f16d236d2f0d81ddf5cb318e1fe 13-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6409 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
9a5b570e5cbf907fabd69a5ffef94ef135e4066f 13-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow SkPicture-derived classes install their own SkPicturePlayback-derived object

https://codereview.appspot.com/6851048/



git-svn-id: http://skia.googlecode.com/svn/trunk@6405 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
6f6dfb4e8c0e71ff75c63b27c1a3ca71d1e36bbb 13-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added profiling stubs to SkPicturePlayback

https://codereview.appspot.com/6851044/



git-svn-id: http://skia.googlecode.com/svn/trunk@6397 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
30c174b9ce6b9777ee50ae0d0565a01b2a060f01 13-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPath cache the result of cheapComputeDirection.
Review URL: https://codereview.appspot.com/6810111

git-svn-id: http://skia.googlecode.com/svn/trunk@6394 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
2e0c79fb637c870780e7a041259e7bdc1443cd63 12-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert 6351 due to bugs.



git-svn-id: http://skia.googlecode.com/svn/trunk@6377 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
453995e01d884d62ce2e808e0067e494c0c9c7fa 10-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6376 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
3fb91a1fe939c827495ed22d7a95bd093d663efe 09-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SKIRect::centerX,Y



git-svn-id: http://skia.googlecode.com/svn/trunk@6374 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
d729b3e504ae547ee0978e8f7156bd8dd8124172 09-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add entry-point to SkMaskFilter to fast-path rectangles.
have blurmaskfilter override this new method.

#define SK_IGNORE_FAST_BLURRECT if you want to disable this (not sure if we'll need this)
Review URL: https://codereview.appspot.com/6815087

git-svn-id: http://skia.googlecode.com/svn/trunk@6363 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
6794a258e39358e8003b5106247db1b6812d8c84 08-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Apply intersect rects to earlier clip elements and skip rects when possible.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6814105

git-svn-id: http://skia.googlecode.com/svn/trunk@6351 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
e8ca6c6e3a55634ac76efe5aceafaf8d669f43ba 07-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Combine multiple intersecting rects in SkClipStack::Iter.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6816104

git-svn-id: http://skia.googlecode.com/svn/trunk@6339 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
2a7579d11796866b0026755ab52597d09f4509cc 07-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> CG imagedecoder never sets isOpaque, so add method to SkBitmap to compute that,
and call it from CG imagedecoder.
Review URL: https://codereview.appspot.com/6816101

git-svn-id: http://skia.googlecode.com/svn/trunk@6334 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
adc58e4f485a24a3f28587bdcd3b90e5cbd09659 07-Nov-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Unit testing for SkTileGrid
Review URL: https://codereview.appspot.com/6827053

git-svn-id: http://skia.googlecode.com/svn/trunk@6331 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
7b7cdd147f5528865238e5ed98c79e6d319fde9b 07-Nov-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Some improvements to reduce the number of pixels touched in generating alpha clip masks
Review URL: https://codereview.appspot.com/6828043

git-svn-id: http://skia.googlecode.com/svn/trunk@6329 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
8f0a7b8e7334187a5d7d5ab7fde5a3c3009555f5 07-Nov-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add temporary interfaces in blur and clip to
permit testing if it is to our advantage
to selectively disable soft clipping and
high quality blurs during animations.
Review URL: https://codereview.appspot.com/6812092

git-svn-id: http://skia.googlecode.com/svn/trunk@6328 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kMaskFilter.cpp
bb094b947bb53374f5ad3df1b0cc71f41d43d9bf 07-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix SkRegion::intersects(rect) where the part of the rgn that we intersect is
the last run. The old bug was that we did an early exit from the loop because
we were comparing against the next rgn.bottom, instead of the current one.

inspired and fixed by danakj http://code.google.com/p/skia/issues/detail?id=958
Review URL: https://codereview.appspot.com/6812099

git-svn-id: http://skia.googlecode.com/svn/trunk@6327 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
3302783ea7edf667794b088e5fc0656946b99816 07-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert clipPaths to clipRects where possible in pictureRecord

https://codereview.appspot.com/6820104/



git-svn-id: http://skia.googlecode.com/svn/trunk@6325 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
796a1753d96eb0c76e742c8288617d758ddf33df 07-Nov-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix SkRegion::contains(rect), thanks to danakj and http://code.google.com/p/skia/issues/detail?id=958



git-svn-id: http://skia.googlecode.com/svn/trunk@6324 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
7b53706a7d596a2d8dce6cfe5b543264e5a37239 06-Nov-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding SkTileGrid: a new subclass of BBoxHierarchy, optimized for tiled playback.
Review URL: https://codereview.appspot.com/6820093

git-svn-id: http://skia.googlecode.com/svn/trunk@6314 2bbb7eff-a529-9590-31e7-b0007b416f81
kTileGrid.cpp
kTileGrid.h
de1390db929c770405b6bb98b983d4e81fb74882 02-Nov-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When cloning into an SkPicture, clear its data.

Prevents a memory leak if the caller clones into an SkPicture
that already has a playback or record.

Review URL: https://codereview.appspot.com/6813081

git-svn-id: http://skia.googlecode.com/svn/trunk@6282 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
760f2d95dd22efce0066b663421aa604812c447f 02-Nov-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6258 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
35ac048e357aefa6289485c8f6a50fadce23c0d2 01-Nov-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactoring RTree integration to support SkBBoxHierarchy polymorphism in SkPicture.
This moves the rtree creation into a virtual method.
Review URL: https://codereview.appspot.com/6811057

git-svn-id: http://skia.googlecode.com/svn/trunk@6242 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
dfef456f183713da8c05fe5f3d252736a7776c8c 01-Nov-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix asserts in SkPathMeasure to honor documented API

Review URL: https://codereview.appspot.com/6822061

git-svn-id: http://skia.googlecode.com/svn/trunk@6232 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
f94b3a4cebd4adab09c40ebe23c02a615e10c394 31-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkShader store localM directly rather than as a separate alloc.

May cause very slight GM changes in gpu two pt radial/conical radients.
Review URL: https://codereview.appspot.com/6821056

git-svn-id: http://skia.googlecode.com/svn/trunk@6221 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kComposeShader.cpp
kDraw.cpp
kShader.cpp
c1f6db86dcf478d3c067bfc3fd99174b23d81732 31-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> catch case where clipping shortened the line down to a single pixel, but our
state variables made us draw twice... with different fractional positions (yikes).

Inspired by http://code.google.com/p/chromium/issues/detail?id=148638
tho not necessarily a fix for that issue (can't repro the issue yet).



git-svn-id: http://skia.googlecode.com/svn/trunk@6220 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
683c3c76cfd2cc71621e570889a16548f8cc88c6 31-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Shortcut inverting the identity matrix.

Review URL: https://codereview.appspot.com/6775087/




git-svn-id: http://skia.googlecode.com/svn/trunk@6218 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
09a029b687465190c828bde896173e23aa350c4c 30-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> factor out computation for dy in SkEdge lines, so we can later try a fix.



git-svn-id: http://skia.googlecode.com/svn/trunk@6198 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
kEdge.h
4284388015181c25663357943f45756bd26478fb 30-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix cross compilation with mingw.

Mingw is case sensitive, so use the correct capitaliztion of dwrite.h.
https://codereview.appspot.com/6588055

Props jacek.


git-svn-id: http://skia.googlecode.com/svn/trunk@6197 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
0c3b9cfebaa40bd67d21fd4abd990e478f2006a1 29-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use consistent globals in AttachCache.
https://codereview.appspot.com/6816052/


git-svn-id: http://skia.googlecode.com/svn/trunk@6188 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
e8ebeb1f8fde6525bbab988c6090a5d3ab19855b 29-Oct-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add option to gm: write out images into a hierarchy, rather than a flat set of files
BUG=https://code.google.com/p/skia/issues/detail?id=743
Review URL: https://codereview.appspot.com/6810047

git-svn-id: http://skia.googlecode.com/svn/trunk@6167 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
0c5f3762e863411798b1d6c55157d24c69d5bc25 26-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix generateMask to properly apply pre-blend.


git-svn-id: http://skia.googlecode.com/svn/trunk@6158 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
a76de72a6036da0a6b051b14411b80941971f881 26-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up usage of mask gamma.
https://codereview.appspot.com/6749061/


git-svn-id: http://skia.googlecode.com/svn/trunk@6151 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.h
kPaint.cpp
kScalerContext.cpp
kScalerContext.h
08283afc265f1153834256fc1012519813ba6b73 26-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename GrSamplerState to GrEffectStage.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6777053

git-svn-id: http://skia.googlecode.com/svn/trunk@6135 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
27b40e9f36f567a57ae92860052b36cedacdd4fd 26-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6133 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
b03fe429e83d7a32b05a5ee8423e4f62ba6380fa 25-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use subclasses instead of function-ptrs for hairline specializations.
1. enables easy grouping of procs, e.g. cap -vs- line
2. easy to extend for more shared state (e.g. gamma table, etc.)



git-svn-id: http://skia.googlecode.com/svn/trunk@6119 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
1bdb857768e4a01489060e16c875fa553a847a25 25-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SK_DISABLE_EXTRACTSUBSET_OPAQUE_FIX test since it has been rebaselined.
https://codereview.appspot.com/6778044/


git-svn-id: http://skia.googlecode.com/svn/trunk@6111 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a8790debaab6c5e3b6a4a51d2cc91ae5aea9b2dd 24-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> If a path is known to be nonfinite, don't forget that in our autobounds
helper. "Once a non-finite, always a non-finite".

Inspired by crbug/157157
Review URL: https://codereview.appspot.com/6764047

git-svn-id: http://skia.googlecode.com/svn/trunk@6087 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
8ea78d83dc4e8243c16eedf8100a3987c54123fa 24-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> GrCustomStage Renaming Part 4

Rename a bunch of things found by searching for "custom".
Review URL: https://codereview.appspot.com/6765048

git-svn-id: http://skia.googlecode.com/svn/trunk@6085 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kImageFilter.cpp
kShader.cpp
a469c28c3c16214733a25201a286970f57b3d944 24-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> CustomStage Renaming Part 1

Search and replace:
GrCustomStage->GrEffect
GrCustomStageTestFactory->GrEffectTestFactory

renamed the cpp/h files from customStage->effect

reordered gypi, #includes, forward decls to maintain alphabetical sort.

manually fixed up some whitespace and linewraps

deleted a commented out #include

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6758046

git-svn-id: http://skia.googlecode.com/svn/trunk@6076 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kImageFilter.cpp
1e34ff7030c95a96c3cd5940de9b4dda4e1cef86 24-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6067 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
158618ec62c36b8261e195f04567e09ed76f6534 23-Oct-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Removed degenerate quads from zero radius Chrome-style round rects

https://codereview.appspot.com/6737059/



git-svn-id: http://skia.googlecode.com/svn/trunk@6053 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
077348cfd0b4c424393ce83cb9ceded8afe60216 22-Oct-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix slow gm debug builds that are doing large path validation runs.

Add a new compile flag to allow path validation to be selectively
enabled instead of being always on.

Review URL: https://codereview.appspot.com/6734059

git-svn-id: http://skia.googlecode.com/svn/trunk@6036 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c2e8cef4792b478547973d312b26fff4aab7c729 22-Oct-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove use of varargs in SkImageFilter. This is causing a crash in recent
builds of clang. (It was also masking the fact that SkMergeImageFilter was
calling the wrong constructor!)

Review URL: https://codereview.appspot.com/6709066

git-svn-id: http://skia.googlecode.com/svn/trunk@6029 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
801cee1d4cad2c382059c0f367edd77298b05caa 19-Oct-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added ability to extract SkBitmaps to filter tool

https://codereview.appspot.com/6748043/



git-svn-id: http://skia.googlecode.com/svn/trunk@6021 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.h
6a748ad8d82576c4ce59e9b2409d41a93bf05cdf 19-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@6013 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
c7a37c7bb2279d8c15d6fcbaf38f59dbd727eb6c 19-Oct-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Place r5997 (make arcto's convex) behind a compiler flag to delay day of reckoning with Webkit baselines



git-svn-id: http://skia.googlecode.com/svn/trunk@6012 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
b95eaa8d0842a8bba97f0bc7e19cfd9172d09722 18-Oct-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Altered arcTo's canonical points to (usually) be convex

https://codereview.appspot.com/6709051/

This will require rebaselining of: degeneratesegments, shadertext & shadertext2



git-svn-id: http://skia.googlecode.com/svn/trunk@5997 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
989a95ea77230e8347da18876e1bd5f39a78ebb5 18-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5989 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
c0e88e0d5d1260f81e7f6b66eeabfb25e6b95a4d 17-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Munch the incoming inverse to force nearly-no-scale to no-scale, if we think
the cheat won't be noticed. This allows us to take a fast case if the caller
gave us a matrix scale of (for instance) 1.0000001 instead of 1.0

drawBitmap already has this logic, it just wasn't ever propogated to bitmapShader before.
Review URL: https://codereview.appspot.com/6720052

git-svn-id: http://skia.googlecode.com/svn/trunk@5987 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
ce65f385a0d31a93a31ffd57478de4b8c4e833b3 17-Oct-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing refcount leak in SkBitmapHeap caused by collisions in SkFlatDictionary

BUG=http://code.google.com/p/chromium/issues/detail?id=155875
TEST=DeferredCanvas unit test, subtest TestDeferredCanvasBitmapShaderNoLeak
Review URL: https://codereview.appspot.com/6713048

git-svn-id: http://skia.googlecode.com/svn/trunk@5982 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
b2ad101313cfba9c06a3a4dc06531766bcbec73b 17-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make table color filter use asNewCustomStage.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6713051

git-svn-id: http://skia.googlecode.com/svn/trunk@5976 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
67e78c9e47c38a51816412a24a10f4fe2db142a3 17-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use GrCustomStage to implement color matrix.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6716044

git-svn-id: http://skia.googlecode.com/svn/trunk@5975 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
20c301bd1aa4578c6d0abb23ac2c72b5fbb436db 17-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5972 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
a8d99307717c5fe02043969db0566c236a08c313 16-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fast case for translate-only repeat bitmapshader, so Tom can be happy
Review URL: https://codereview.appspot.com/6721045

git-svn-id: http://skia.googlecode.com/svn/trunk@5971 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
dfdb7e5240276493077b7c6e1f3cc8b8a0e195ba 16-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland r5963 with two fixes:

Missing ref in GrSweepGradient::TestCreate.
Must reset() the sampler in setup_drawstate_aaclip() to avoid hitting a (dubious) assert.



git-svn-id: http://skia.googlecode.com/svn/trunk@5964 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
f6eac8af585e44d56e6b18d269e6c34f9917ea88 16-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r5962 because of failures.



git-svn-id: http://skia.googlecode.com/svn/trunk@5963 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
b022177777c3602c47bb71c07920e63a261c5038 16-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Require matrix for custom stage to be set when custom stage is installed.
Review URL: https://codereview.appspot.com/6696044

git-svn-id: http://skia.googlecode.com/svn/trunk@5962 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
04685d29b1c5280717dfcd63c3cbe1ee84fa6923 15-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> #define SK_DISABLE_EXTRACTSUBSET_OPAQUE_FIX to keep old, slow, non-opaque behavior
in SkBitmap::extractSubset.

This will allow chrome to keep this behavior until we can fix the callers in
PNG and WEBP image decoders, that are incorrectly marking partially-loaded images
as opaque (which they aren't, since they have undecoded pixels, which need to be
transparent).



git-svn-id: http://skia.googlecode.com/svn/trunk@5949 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
f57c01bdcfdf1c923b9a473974bfe6f8c66eca3e 13-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5943 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
f7698de60e2cfecf84cb84f957e6fe69325fe67f 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> retool fFilterOne[X,Y] to store the translate dx, dy, so we can avoid float
conversions on every scanline.



git-svn-id: http://skia.googlecode.com/svn/trunk@5939 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
8d21f6c7a9d0cf4f87d77c235c6da7203620c7e5 12-Oct-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> When two or more color matrix image filters are connected together, and the non-leaf matrices do not require clamping, we can concatenate their matrices and apply them together.

Review URL: https://codereview.appspot.com/6489054

git-svn-id: http://skia.googlecode.com/svn/trunk@5931 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
3bafe74a29c37761082980ed4ee9b831256bd27e 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkShader::asShadeProc to fast-path the caller when the shader is fast
Review URL: https://codereview.appspot.com/6649055

git-svn-id: http://skia.googlecode.com/svn/trunk@5930 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter_ARGB32.cpp
kCoreBlitters.h
kShader.cpp
cb1bbb375aa4fdd099dc60302ca1712f04607782 12-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fonts with cubic outlines are rendered without ClearType by GDI.
https://codereview.appspot.com/6643060/


git-svn-id: http://skia.googlecode.com/svn/trunk@5929 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kTypeface.cpp
9a4c746a1f0f91a5be2708a4c2018dfe14f62e48 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reland 5926 w/ fix in middle loop (thank you asserts)



git-svn-id: http://skia.googlecode.com/svn/trunk@5928 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
6222be84d7b446f806d03127636a1b81c8f41b5d 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5926 (debug assert)



git-svn-id: http://skia.googlecode.com/svn/trunk@5927 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
1fe269071d8c012a623bc922f327f95b1f27dd68 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shaderproc32 for translate+clamp+nofilter.

todo: should be pretty easy to have a variant for repeat tilemode as well
Review URL: https://codereview.appspot.com/6658053

git-svn-id: http://skia.googlecode.com/svn/trunk@5926 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
97cd69ca23b27d88e08727366c29c1147eb564de 12-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix matrix type in setRectToRect
Review URL: https://codereview.appspot.com/6655055

git-svn-id: http://skia.googlecode.com/svn/trunk@5913 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
3768853169d5eac2198cd1199637edb1101b47b5 12-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r3219. r3219 was a revert of r3036. r3036 made extractSubset copy the opaque bit but was reverted because of a partally-loaded jpeg issue in WK which has since been fixed:
https://bugs.webkit.org/show_bug.cgi?id=78239

Related chrome bug: http://code.google.com/p/chromium/issues/detail?id=114107



git-svn-id: http://skia.googlecode.com/svn/trunk@5911 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
5b6f91643d3ad1bdcdd65329d656f0fc43174be3 12-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5908 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
3ab43d5c5b4d77f46dd0266618f92e5fefce2021 11-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Minimize use of SkDraw's matrix in SkGpuDevice.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6604068

git-svn-id: http://skia.googlecode.com/svn/trunk@5906 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
5dc26b97366934ba0f896cea02a3fec027d5d5c1 11-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkTCopyOnFirstWrite

R=reed@google.com
Review URL: https://codereview.appspot.com/6650047

git-svn-id: http://skia.googlecode.com/svn/trunk@5905 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kDraw.cpp
027038a534dc218262e5693dba9fa5aa2f9ca119 11-Oct-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Turn off some debugging statements.

Review URL: https://codereview.appspot.com/6646044

git-svn-id: http://skia.googlecode.com/svn/trunk@5903 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
fc84359aa920567e72742877a1249f52d076ad35 11-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5892 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kImageFilter.cpp
9f25de79009ce721aa13abe71c38179d5a6710e2 10-Oct-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This patch implements generalized DAG connectivity for SkImageFilter. SkImageFilter maintains a list of inputs, which can be constructed either from a SkImageFilter** or zero or more SkImageFilter* arguments (varargs).

Existing filters which maintained their own filter connectivity were refactored to use the new constructors and flattening/unflattening code. Modifying the remaining filters which are not yet DAG-friendly is left for future work; they are considered to have zero inputs for now.

Review URL: https://codereview.appspot.com/6443119

git-svn-id: http://skia.googlecode.com/svn/trunk@5891 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
36d6edac9f3e63d9a5f499d0076550d08b80eaca 10-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Draw hairline text as path.

R=reed@google.com
Review URL: https://codereview.appspot.com/6632060

git-svn-id: http://skia.googlecode.com/svn/trunk@5884 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
a6926b1f0352916c31cda66f2239a25d52f09315 10-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reland r5861 but leave setMatrixClip virtual on SkDevice (IOW this is a partial revert of r5871 which reverted r5861).

Unreviewed
Review URL: https://codereview.appspot.com/6631062

git-svn-id: http://skia.googlecode.com/svn/trunk@5881 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3fffb2ee9fa01ae61efb2395973eb7575eda4c96 10-Oct-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r5861 (remove gainfocus and setMatixClip) due to Chrome compilation issues



git-svn-id: http://skia.googlecode.com/svn/trunk@5871 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
5cd3656ed3676730b296722812f5924d06d0cc98 09-Oct-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPictures valid regardless of SK_SUPPORT_HINTING_SCALE_FACTOR.

When the build flag is not set, read/write dummy values
so that the creator of an SKP file need not have the same
support/lack of support of the feature as the reader.

Will separately update the checked in skps to the new version when checking in.

BUG=http://code.google.com/p/skia/issues/detail?id=922

Review URL: https://codereview.appspot.com/6642057

git-svn-id: http://skia.googlecode.com/svn/trunk@5869 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPicture.cpp
cc0c8e6084e140c962ae9a6885992bafea8ec048 09-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> correctly handle negative values in fixed_clamp()
Review URL: https://codereview.appspot.com/6633049

git-svn-id: http://skia.googlecode.com/svn/trunk@5867 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
a1c3d78f224874833920c8017f4287a3ec538779 09-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove gainFocus() and setMatrixClip() virtuals from SkDevice.

R=reed@google.com,robertphillips@google.com
Review URL: https://codereview.appspot.com/6636050

git-svn-id: http://skia.googlecode.com/svn/trunk@5861 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
0e354aacd84d3bede3f97cbde35a54ba62a89533 08-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove external matrix feature.

We haven't been testing this for nearly two years.

R=reed@google.com
Review URL: https://codereview.appspot.com/6640044

git-svn-id: http://skia.googlecode.com/svn/trunk@5857 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
b1a72cb90a9b515978bc9abda1f267f31a544e08 05-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove state from SkColorSpaceLuminance to avoid memory management.
https://codereview.appspot.com/6610047/


git-svn-id: http://skia.googlecode.com/svn/trunk@5820 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.cpp
kMaskGamma.h
kPaint.cpp
5a7c6be72b940dde8ff6ad2485a09aecd56a2660 04-Oct-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add the ability to provide function pointers to SkPicture serialization
and deserialization for encoding and decoding bitmaps.

Remove kForceFlattenBitmapPixels_Flag, which is no longer used.

When an SkOrderedReadBuffer needs to read a bitmap, if it does not
have an image decoder, use a dummy bitmap.

In GM, add a tolerance option for color differences, used when
testing picture serialization, so it can assume two images are the
same even though PNG encoding/decoding may have resulted in small
differences.

Create dummy implementations for SkImageDecoder and SkImageEncoder
functions in SkImageDecoder_empty so that a project that does not
want to include the images project it can still build.

Allow ports to build without images project.

In Mac's image encoder, copy 4444 to 8888 before encoding.

Add SkWriter32::reservePad, to provide a pointer to write non 4 byte
aligned data, padded with zeroes.

In bench_ and render_ pictures, pass decode function to SkPicture
creation from a stream.

BUG=https://code.google.com/p/skia/issues/detail?id=842

Review URL: https://codereview.appspot.com/6551071

git-svn-id: http://skia.googlecode.com/svn/trunk@5818 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.cpp
kOrderedReadBuffer.h
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kWriter32.cpp
7cc7f494796afc681355b15e88c57ef2709a9220 04-Oct-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5798 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
3a80991b81976eb9a8f72b75da89e6969daea343 03-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Ensure SkPathRef debug code mutex is initialized during creation of statically-initialized SkPaths.

R=reed@google.com
Review URL: https://codereview.appspot.com/6592069

git-svn-id: http://skia.googlecode.com/svn/trunk@5797 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.h
ae09f2dc3fb1e8a8db99b214c8a71d0b9613a856 03-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Adds extra debugging to SkPathRef that can optionally be turned on in a release build.

This is pretty hacky but hopefully will be quite short-lived.
Review URL: https://codereview.appspot.com/6584074

git-svn-id: http://skia.googlecode.com/svn/trunk@5793 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
1dfe88e00aeddf20690fd2469fd17e43f670ee3a 03-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r5557 (which itself was a revert of r5433). Relands SkPathRef. Will follow with change for extra debug checks to attempt to ferret out http://www.crbug.com/148637.



git-svn-id: http://skia.googlecode.com/svn/trunk@5783 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
5987f58036574ccf23049b5fe71f29a441d0641d 02-Oct-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> build iOS with 'make all'

This builds all skia tests by treating iOS tools
as executable applications. A few warnings were
fixed as well.

Removed old trace draw code and remnants.
Review URL: https://codereview.appspot.com/6597063

git-svn-id: http://skia.googlecode.com/svn/trunk@5776 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
21b519d56f9838c2e6e7abe704d3313e03f6f754 02-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> catch empty stack in restorefixup called by clipRect
write stress-test for save/clip/restore peephole optimization



git-svn-id: http://skia.googlecode.com/svn/trunk@5774 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
a3301b6d1527d7a8c59760c219db741b8c8915a3 02-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reenable peephole optimization for save/clip/restore, with build flag
SK_DISABLE_PICTURE_PEEPHOLE_OPTIMIZATION to disable it (optional)



git-svn-id: http://skia.googlecode.com/svn/trunk@5770 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
dde646afb522ac46d6917ada7c404d91da860bb0 01-Oct-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-land removal of setBitmapDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@5746 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
35e535a10fee7a738f8add54fc17271af0297a2a 30-Sep-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Rolling back r5732 due to Chrome Mac compiler issues



git-svn-id: http://skia.googlecode.com/svn/trunk@5744 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
768d59b97d9cdae1e66412b7fbe53c87c41a6cff 28-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove setBitmapDevice -- no longer called, and is a necessary step on our way
to removing setDevice (and hopefully getDevice after that).



git-svn-id: http://skia.googlecode.com/svn/trunk@5732 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
1e9c987c69a41605abfc72fb126672a14f2799a5 28-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5721 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
9c39744a00573b7133fc765b0a9d50a0ceace7b8 27-Sep-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix recursive GPU processing for SkImageFilter. Plumb through the
SkImageFilter::Proxy parameter to the GPU recursion path. Extract
DeviceImageFilterProxy from SkCanvas.cpp into its own .h, and rename it.

https://codereview.appspot.com/6575059/



git-svn-id: http://skia.googlecode.com/svn/trunk@5720 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDeviceImageFilterProxy.h
kImageFilter.cpp
d86e7ab6044e4aba017cb126a26dd378eec9fcba 27-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove call to setBitmapDevice (deprecated).
Review URL: https://codereview.appspot.com/6569070

git-svn-id: http://skia.googlecode.com/svn/trunk@5715 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kBBoxRecord.h
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
34dc9a2dae8e9a5c4d3366a6957724e7289391e3 27-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow chrome to use old drawBitmapRect beahvior for now, using SK_SUPPORT_INT_SRCRECT_DRAWBITMAPRECT



git-svn-id: http://skia.googlecode.com/svn/trunk@5710 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
74bb77ee4c747b8c70c5c613987c9f93df71df06 26-Sep-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add getMetaData() to SkCanvas (as part of our master plan to remove
subclasses of SkCanvas and SkDevice from our clients.



git-svn-id: http://skia.googlecode.com/svn/trunk@5679 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7064e9a3fc2fe54856d66ede84eddee2cace01b9 26-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5678 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
8ff8a1959f514b969198ec2242c7de57fbf413cd 25-Sep-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Vertical metrics for FreeType.
https://codereview.appspot.com/6554064/


git-svn-id: http://skia.googlecode.com/svn/trunk@5677 2bbb7eff-a529-9590-31e7-b0007b416f81
kFDot6.h
33535f3c48bf723c46f334a93d4a06d782dad30e 25-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reimplement drawBitmapRectToRect to correctly handle fraction srcRect.

The prev impl relied on drawBitmap "deducing" the destination rect by applying
the computed matrix to the bitmap's bounds. This cannot be done if the srcRect
is fractional, and therefore not representable w/ a bitmap.

The new impl computes the same matrix, but calls down to the device via drawRect
+ a bitmap_shader. This allows us to specfiy the dstRect explicitly.

The possible down-side is that we now rely on the device subclass to efficiently
handle draRect+shader, instead of calling its drawBitmap entry-point.

To give the device the chance to handle this differently, I now call through to
a new device virtual: drawBitmapRect. The default impl is to create the shader
and call drawRect, but a subclass can intercept that.

For now, the GPU override of drawBitmapRect is mimicing the old behavior (by
rounding the srcRect to an iRect). This preserves its ability to call drawBitmap
which handles very-large textures, but shows some gittering/imprecision, due to
the rounding. ... this is the same GPU behavior we have before this CL.
Review URL: https://codereview.appspot.com/6542065

git-svn-id: http://skia.googlecode.com/svn/trunk@5663 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
5b5bba36dcbc69b0033c2acc9981734956394816 24-Sep-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Addressed xcode analysis complaints

http://codereview.appspot.com/6558048/



git-svn-id: http://skia.googlecode.com/svn/trunk@5646 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a0c2bc24381fea063008f9c8823756eb020603b3 21-Sep-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make flattenables no longer depend on global static initializers.

Instead, force all builds to call InitializeFlattenables.

Remove the make_debugger script, which was created to force
rebuilding without global static initializers so that all flattenables
would be linked. It is no longer necessary since all flattenables
will be linked thanks to InitializeFlattenables, which now can (and
must) be called when global static initializers are turned on.

BUG=https://code.google.com/p/skia/issues/detail?id=903
BUG=https://code.google.com/p/skia/issues/detail?id=902

Review URL: https://codereview.appspot.com/6548044

git-svn-id: http://skia.googlecode.com/svn/trunk@5642 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kBitmapProcShader.cpp
kColorTable.cpp
kComposeShader.cpp
kData.cpp
kFlattenable.cpp
kGraphics.cpp
kMallocPixelRef.cpp
kPathEffect.cpp
kShader.cpp
8136d58161c3fa314af42f5c65682be855dfec1b 21-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for very large blurs, and don't try to cache the result in fontcache

http://code.google.com/p/chromium/issues/detail?id=138208



git-svn-id: http://skia.googlecode.com/svn/trunk@5640 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
867cbd8bc29371a360194aed648c4d43307b0639 20-Sep-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> first cut at making iOS work

Replace __arm__ with SK_CPU_ARM
add support for iOS simulator and device
fix const warning in iOSSampleApp
update gyp files

https://code.google.com/p/skia/issues/detail?id=900
tracks fixing missing arm assembly
Review URL: https://codereview.appspot.com/6552045

git-svn-id: http://skia.googlecode.com/svn/trunk@5606 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
ec0aa764ebe36aecdfb77286d665fccc85ab204a 18-Sep-2012 george@mozilla.com <george@mozilla.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Explicitly convert from int to SkScalar to avoid a compiler error on gcc 4.5

Review URL: https://codereview.appspot.com/6526047

git-svn-id: http://skia.googlecode.com/svn/trunk@5589 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
7112173c3c4cd1b1e7da8cdf971d71f01dd91299 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-re-land 5578

will follow w/ new .skp files to keep the waterfall green (I hope)



git-svn-id: http://skia.googlecode.com/svn/trunk@5584 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
10f9f4a844c8d5260c0a02df94b940b6abf66b0d 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5580



git-svn-id: http://skia.googlecode.com/svn/trunk@5581 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
eab16dea1ce249dc8e4dc635cd76b6b1b7d0cc98 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-land 5578 w/ pipe fix



git-svn-id: http://skia.googlecode.com/svn/trunk@5580 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
c75c36a14b5dcc0dd5a82651d41792278cb27326 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5578 -- broke pipe



git-svn-id: http://skia.googlecode.com/svn/trunk@5579 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
f1ab723033a186dc53434104a636c2dfac5fc863 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change drawBitmapRect to take a float-src-rect instead of integer-src-rect. This
allows the client more control over the scaling. Because of virtual overrides
and wanting to keep the old call-sites up and running, this CL renames the
virtual entry-point to drawBitmapRectToRect, and downgrades drawBitmapRect to
a non-virtual helper function.

The implementation is to use the float-rect for computing the matrix, but still
cons-up an integer rect for the purposes of subsetting the original bitmap. We
do this by calling float_src->roundOut(&int_src) so that we include all
(partially) covered src pixels.

No change needed on SkDevice, since that signature is explicitly passed the
computed matrix.
Review URL: https://codereview.appspot.com/6501140

git-svn-id: http://skia.googlecode.com/svn/trunk@5578 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
kCanvas.cpp
kPicture.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
66bcbd12bf075145e0c38f3e36c9f13e65f5e10e 17-Sep-2012 borenet@google.com <borenet@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Check for invalid SkPictures

- Remove hasRecorded() since nobody uses it.
- Add "success" boolean to SkPicture stream constructor
- Track failures in render_pictures and bench_pictures
Review URL: https://codereview.appspot.com/6493105

git-svn-id: http://skia.googlecode.com/svn/trunk@5573 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
055c7c299cb47eebd360b809ad58a0006e2e55f7 15-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5561 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
6c5418e6c25141cc3a1cc798d55219012bc881ec 14-Sep-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporarily revert r5433 due to http://www.crbug.com/148637 until after M23 branch.




git-svn-id: http://skia.googlecode.com/svn/trunk@5557 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
6132eb9607b1fbfd73dc9645aaa2f70d14857ce6 14-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speculative fix for crbug.com/147406 -- disabling save/clip/restore peephole
optimization, to see if it reduces crash rates.



git-svn-id: http://skia.googlecode.com/svn/trunk@5556 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
a9baf11e135c6cd2be213975e49a4afdeadd26fa 14-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Double size of buffer for SkString::printf()
Review URL: https://codereview.appspot.com/6503120

git-svn-id: http://skia.googlecode.com/svn/trunk@5555 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
d614c6a4e059bd9ea5b882ca845e886a82aeff5c 14-Sep-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> For a picture playback with nothing written, use an empty SkData.

This prevents crashing when attempting to access fOpData.

BUG=https://code.google.com/p/skia/issues/detail?id=870

Review URL: https://codereview.appspot.com/6499108

git-svn-id: http://skia.googlecode.com/svn/trunk@5550 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
1c6307e36fd96894bd11727c995f9cf9991a7be1 14-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some nits from http://codereview.appspot.com/6506103/

git-svn-id: http://skia.googlecode.com/svn/trunk@5547 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPictureStateTree.h
8cae8358f78b81539f1006afe592a37f1604e67c 14-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix fragile cubic stepper, where we want to assert that each tesselated segment
is monotonically going down, but the finite math we use cannot ensure that...
so we explicitly pin the y-value after it is calculated.

add unittest that exercises the bug/assert that was found on an SVG site



git-svn-id: http://skia.googlecode.com/svn/trunk@5544 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
1d225f2b3352bb8f24661f62d2bd1cc7386a2f86 14-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5539 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kPicture.cpp
kPicturePlayback.cpp
90f2d07d34a8078b615c2441dea7c09eacb67663 13-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for gcc compile error. Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@5538 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.h
8515e79a7699922e0f95f93e8cc11d4c88657c58 13-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add R-Tree record flag to SkPicture, plus some cleanup/fixes in associated classes.
Review URL: https://codereview.appspot.com/6506103

git-svn-id: http://skia.googlecode.com/svn/trunk@5537 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureStateTree.cpp
kPictureStateTree.h
178a267a6cb1405805caf23fe074d68b509f76d3 13-Sep-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Address warnings from clang build bot

http://codereview.appspot.com/6506111/



git-svn-id: http://skia.googlecode.com/svn/trunk@5518 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureStateTree.cpp
kPictureStateTree.h
kRTree.cpp
1f1543f012b8834ea760175a023eb127bde2b895 12-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-apply 5508, but with the new compile-flag disabled for now



git-svn-id: http://skia.googlecode.com/svn/trunk@5516 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.h
d8a6cc814f1a0a8faaddad05ae765ad2f6b11aac 12-Sep-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make texteffects gm work through serialization and pipe.

Move Line2DPathEffect (now Sk_) into a separate header file so it can
be shared and initialized.

Switch to the shared version in SampleAll and SampleSlides.

Remove the skip pipe flag from texteffects, since it can now be serialized.

I have a separate change to turn serialization on by default at https://codereview.appspot.com/6498121/

Review URL: https://codereview.appspot.com/6503106

git-svn-id: http://skia.googlecode.com/svn/trunk@5512 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
bfe1572f2484cb928a17b4c45ed2d094e3e57e17 12-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5508 -- it broke most of the builds

Use http://skia.googlecode.com/svn/buildbot/buildbots.html to see the state of the build.



git-svn-id: http://skia.googlecode.com/svn/trunk@5511 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.h
1f8787a99f15e37c40a1260c9c456ed91f11ba15 12-Sep-2012 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Using the device scale factor for glyph positioning

The master bug is http://code.google.com/p/chromium/issues/detail?id=138101 .
The corresponding WebKit changes for this CL are here:
https://bugs.webkit.org/show_bug.cgi?id=96137

BUG=

Review URL: https://codereview.appspot.com/6506099

git-svn-id: http://skia.googlecode.com/svn/trunk@5508 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.h
a9279f0749f7641d946517be44a1b74fa64ebbc2 12-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5504 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.cpp
kBBoxHierarchyRecord.h
kMaskGamma.h
kPictureStateTree.cpp
kPictureStateTree.h
9f5898d31b91500e09a70c7f70265a2d813b2534 11-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkBBoxRecord subclass that builds up a BBoxHierarchy and PictureStateTree.
Review URL: https://codereview.appspot.com/6490104

git-svn-id: http://skia.googlecode.com/svn/trunk@5500 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchyRecord.cpp
kBBoxHierarchyRecord.h
kPictureRecord.cpp
kPictureRecord.h
0996e831ce7e30b2f55b5a37897cd22e6f989ecc 11-Sep-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix 5492.


git-svn-id: http://skia.googlecode.com/svn/trunk@5493 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
ae30f5601940c78f4537ee48a6316cfac6740712 11-Sep-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reduce SkMaskGamma cache thrashing.
https://codereview.appspot.com/6497114/


git-svn-id: http://skia.googlecode.com/svn/trunk@5492 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.cpp
kMaskGamma.h
kPaint.cpp
kScalerContext.cpp
4813458d89fb276680168848bd861b307cf83f51 11-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make BBoxHierarchy ref-counted, fix leak in RTreeTest.
Review URL: https://codereview.appspot.com/6489108

git-svn-id: http://skia.googlecode.com/svn/trunk@5484 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.cpp
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
9fd7f8d2906365637dc25f98ffdede87d631ef71 11-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add helper for maintaining clip/matrix state in non-contiguous picture playback.
Review URL: https://codereview.appspot.com/6509043

git-svn-id: http://skia.googlecode.com/svn/trunk@5483 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureStateTree.cpp
kPictureStateTree.h
0ab786515fea21a3427095948a372f185400c7d3 10-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bug in R-Tree bulk-load. Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@5468 2bbb7eff-a529-9590-31e7-b0007b416f81
kRTree.cpp
b839f0f6a92db9bcdbf8aa8004f20b0c0000111c 10-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add optional aspect ratio parameter to R-Tree, this helps the bulk load algorithm create more square tiles.
Review URL: https://codereview.appspot.com/6489102

git-svn-id: http://skia.googlecode.com/svn/trunk@5466 2bbb7eff-a529-9590-31e7-b0007b416f81
kRTree.cpp
kRTree.h
7329926f0d70d27495897ab876fc90a8d6687de2 08-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5447 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathRef.h
d92f336ac73d48128e1c2d82de736ed250749b64 07-Sep-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix mask gamma rounding issues on x87.
https://codereview.appspot.com/6497091/

May require rebaselines.


git-svn-id: http://skia.googlecode.com/svn/trunk@5446 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.cpp
69aca79b5c1cb43f8c3b5c1bee2c0342c8ff6ed1 07-Sep-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkPathRef: one allocation for pts+verbs, path GenID, copy-on-write

Review URL: https://codereview.appspot.com/6488063/



git-svn-id: http://skia.googlecode.com/svn/trunk@5433 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPathRef.h
04ba448579b976369075c675d847ef0f779d40f4 07-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5425 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
e0201a4448f5e770cc081ca3425bed528af27f8d 06-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkPictureRecord subclass that computes bounding boxes.
Review URL: https://codereview.appspot.com/6506082

git-svn-id: http://skia.googlecode.com/svn/trunk@5423 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxRecord.cpp
kBBoxRecord.h
22023bea1b7c5eff958214a3fd6f7fc4ffeec76c 06-Sep-2012 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Export SkPath equality operator.

This change will allow external access to the SkPath equality operator.

BUG=none

Review URL: https://codereview.appspot.com/6500079

git-svn-id: http://skia.googlecode.com/svn/trunk@5418 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
6c778164a743f8760dca251524d51848548b436f 06-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5410 2bbb7eff-a529-9590-31e7-b0007b416f81
kRTree.cpp
kRTree.h
b4c2819671757044857ec477156699163025a353 06-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Record the initial matrix when we begin picture-playback, and concat with
that if we see a setMatrix command. In this way we can respect the caller's
overall playback matrix environment.
Review URL: https://codereview.appspot.com/6495092

git-svn-id: http://skia.googlecode.com/svn/trunk@5409 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
100abf49e10544bc4f436bf1f38e6929779621f4 05-Sep-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Shut up some Mac (xcode 3) warnings

Review URL: http://codereview.appspot.com/6503053/



git-svn-id: http://skia.googlecode.com/svn/trunk@5402 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_shaderproc.h
kPixelRef.cpp
1f45e934b68a5985b2127ec871ff593c3bfc7c2e 05-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add R-Tree data structure.
Review URL: https://codereview.appspot.com/6489055

git-svn-id: http://skia.googlecode.com/svn/trunk@5401 2bbb7eff-a529-9590-31e7-b0007b416f81
kBBoxHierarchy.h
kRTree.cpp
kRTree.h
b24b4fa12be03807a0c3c710ec5ad102f3a8e145 04-Sep-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Future proof luminance caches.
https://codereview.appspot.com/6495071/


git-svn-id: http://skia.googlecode.com/svn/trunk@5382 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kPaint.cpp
d7e27822030b5ab7729e32c6d29227210dfe88ab 31-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> truncate our llist w/ null during rewind.



git-svn-id: http://skia.googlecode.com/svn/trunk@5375 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
11f869277c81a232fd4e40eca41e6f71b95b4b17 31-Aug-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5373 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
057655589f20e0aacf371f291358c81bb66e2476 30-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove dead code and update a comment.

InlineFactoryNames_Flag is no longer used, so remove it and update
the comment.

Review URL: https://codereview.appspot.com/6492057

git-svn-id: http://skia.googlecode.com/svn/trunk@5348 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.h
ffacd3c56d73c03d3fe53b47a49ea6be2ca4748f 30-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> peephole optimize save/restore brackets that contain no draw calls.
Review URL: https://codereview.appspot.com/6443149

git-svn-id: http://skia.googlecode.com/svn/trunk@5347 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
a27096b4740775ae141fd0abaf456d706065c5ee 30-Aug-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Nightly_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5346 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicturePlayback.cpp
kWriter32.cpp
1cf58d03a87e1ff17cd47e9de3da4c678456618d 30-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkWriter32::rewindToOffset() -- used for peephole edits in picture recording



git-svn-id: http://skia.googlecode.com/svn/trunk@5345 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
405d0f43d8fa03874aee23669e5fdb38f21cc3e7 29-Aug-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> In which a series of things around attachToCanvas and writePixels are fixed

Review URL: https://codereview.appspot.com/6506051/



git-svn-id: http://skia.googlecode.com/svn/trunk@5341 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
bae9ff70d911e1c1fe1db776f2640b45e9d5e749 29-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkDraw's constructor zero's is fields, so don't do it outside



git-svn-id: http://skia.googlecode.com/svn/trunk@5340 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
c2a2483bbee761db5afb12a1a512285d67da821e 29-Aug-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clear SkCanvas::fLastDeviceToGainFocus when releasing a device

Review URL: https://codereview.appspot.com/6499051/



git-svn-id: http://skia.googlecode.com/svn/trunk@5338 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
c9ab987efcb7e8b69237d565f73c28c137610232 29-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement multi-threaded picture playback via cloning.

The CL adds SkPicture.clone() which produces a thread-safe copy by
creating a shallow copy of the thread-safe data within the picture and
a deep copy of the data that is not (e.g. SkPaint). This implementation
re-flattens the paints when cloning instead of retaining the flattened
paints from the recording process.

Changes were also needed to various classes to ensure thread safety

Review URL: https://codereview.appspot.com/6459105

git-svn-id: http://skia.googlecode.com/svn/trunk@5335 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
kPath.cpp
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
5ee3f67ce35f19f6e5ef44b67db62e964f77d69d 28-Aug-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added an overload of SkTQSort that sorts an array of values, rather than an array of pointers.

Also added some parentheses to all the QSort variants to get rid of a gcc warning.
Review URL: https://codereview.appspot.com/6492044

git-svn-id: http://skia.googlecode.com/svn/trunk@5311 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
97af1a64ae6bdddd346d8babfd9f188279dd6644 28-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add caching of the snapshot image form a surface
Notify the surface when the canvas draws into it, so it can invalidate the
cached image, and (if needed) perform a copy-on-write on the surface if it
was being shared with the image.
Review URL: https://codereview.appspot.com/6441115

git-svn-id: http://skia.googlecode.com/svn/trunk@5306 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPictureRecord.h
fd668cfffe3fdcfbf6e0b858343a62818d337590 24-Aug-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix greenish text rendering on Linux.
https://codereview.appspot.com/6484048/


git-svn-id: http://skia.googlecode.com/svn/trunk@5280 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.cpp
kPaint.cpp
kScalerContext.h
fbfcd5602128ec010c82cb733c9cdc0a3254f9f3 23-Aug-2012 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)

This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
RGB32_Clamp_Bilinear_BitmapShader.h
kAAClip.cpp
kAAClip.h
kAdvancedTypefaceMetrics.cpp
kAntiRun.h
kAutoKern.h
kBitmap.cpp
kBitmapHeap.cpp
kBitmapHeap.h
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_filter.h
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_procs.h
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
kBitmapSampler.cpp
kBitmapShader16BilerpTemplate.h
kBitmapShaderTemplate.h
kBitmap_scroll.cpp
kBlitBWMaskTemplate.h
kBlitMask.h
kBlitMask_D32.cpp
kBlitRow_D16.cpp
kBlitRow_D4444.cpp
kBlitter.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kBuffer.h
kCanvas.cpp
kChunkAlloc.cpp
kClipStack.cpp
kColor.cpp
kColorFilter.cpp
kCordic.cpp
kCordic.h
kData.cpp
kDeque.cpp
kDescriptor.h
kDevice.cpp
kDeviceProfile.cpp
kDither.cpp
kDraw.cpp
kDrawProcs.h
kEdge.cpp
kEdge.h
kEdgeBuilder.cpp
kEdgeBuilder.h
kEdgeClipper.cpp
kEdgeClipper.h
kFilterProc.cpp
kFilterProc.h
kFloat.cpp
kFloat.h
kFloatBits.cpp
kGeometry.cpp
kGlyphCache.cpp
kGraphics.cpp
kLineClipper.cpp
kMallocPixelRef.cpp
kMask.cpp
kMaskGamma.h
kMath.cpp
kMathPriv.h
kMatrix.cpp
kMemory_stdlib.cpp
kPackBits.cpp
kPaint.cpp
kPath.cpp
kPathHeap.cpp
kPathHeap.h
kPathMeasure.cpp
kPerspIter.h
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPixelRef.cpp
kPoint.cpp
kPtrRecorder.cpp
kPtrRecorder.h
kQuadClipper.cpp
kQuadClipper.h
kRasterClip.cpp
kRasterClip.h
kRasterizer.cpp
kRect.cpp
kRefDict.h
kRegion.cpp
kRegionPriv.h
kRegion_path.cpp
kRegion_rects.cpp
kScalerContext.cpp
kScalerContext.h
kScan.cpp
kScan.h
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
kScan_Path.cpp
kShader.cpp
kSpriteBlitter_RGB16.cpp
kStream.cpp
kStroke.cpp
kStrokerPriv.cpp
kTLS.cpp
kTLS.h
kTRefArray.h
kTSearch.cpp
kUnPreMultiply.cpp
kUtils.cpp
kUtilsArm.cpp
kWriter32.cpp
4fa9c9f9b42c22bffff3b2eb3fcf7f16a2ab2948 22-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed instance counting for templated classes

http://codereview.appspot.com/6478045/



git-svn-id: http://skia.googlecode.com/svn/trunk@5233 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.h
kScalerContext.cpp
6a9368d41154890b6c316fdae704bf56ca4c70cc 22-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkBitmap::scrollRect changes pixels, but only if not immutable.

scrollRect will now return false if the bitmap is immutable, and
call notifyPixelsChanged when changing the pixels. This will give
the bitmap a new generation ID.

Review URL: https://codereview.appspot.com/6480046

git-svn-id: http://skia.googlecode.com/svn/trunk@5230 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap_scroll.cpp
d5764e8ab731dd12df9293e52ce644eaa45333bd 22-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When copying a bitmap, copy the generation ID.

Review URL: https://codereview.appspot.com/6462084

git-svn-id: http://skia.googlecode.com/svn/trunk@5227 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
17bb458fe897411218d8c9781770948d4398b723 20-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add fast path in arcTo and addArc for 0==sweep && 0|360==sweepAngle

http://codereview.appspot.com/6463071/



git-svn-id: http://skia.googlecode.com/svn/trunk@5190 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
bf2768bab9f3b21c03a8f9a75dc891231d5857cc 20-Aug-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkImageFilter into its own .cpp file.

Review URL: https://codereview.appspot.com/6465073/



git-svn-id: http://skia.googlecode.com/svn/trunk@5188 2bbb7eff-a529-9590-31e7-b0007b416f81
kImageFilter.cpp
kPaint.cpp
f1369ce607adf55ffffe58fb93893bafb6ff6ebe 20-Aug-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implements a new class, SkSingleInputImageFilter, to handle DAG connectivity
for filters with a single image input. This provides functionality to store,
flatten and unflatten a single SkImageFilter input, as well as to recursively
evaluate it on the CPU or GPU. The following classes were re-parented to
implement DAG connectivity: SkBlurImageFilter, SkDilateImageFilter,
SkErodeImageFilter, SkColorFilterImageFilter. The constructors for each
have been appended with a new parameter, representing the input filter
(default NULL).

This change also implements an arbitrary SkBitmap input source for filtering,
SkBitmapSource.

NOTE: This CL will require gyp file changes when rolling past this revision.

Review URL: https://codereview.appspot.com/6462071/



git-svn-id: http://skia.googlecode.com/svn/trunk@5170 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f9a90847820a8ec4a3c97a2b544c622e3ca6b09a 17-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Decrease SkClipStack memory allocations & deallocations

http://codereview.appspot.com/6443138



git-svn-id: http://skia.googlecode.com/svn/trunk@5151 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
63ae1cfb10d0d14722df59cba0012f8a4370c090 17-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkDeque::back faster & inline

http://codereview.appspot.com/6462073/



git-svn-id: http://skia.googlecode.com/svn/trunk@5149 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
kDeque.cpp
01ec2eb42e9c64f8d06afd51f80c055710147141 17-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added Serialization of SkPath's bound

http://codereview.appspot.com/6458143/



git-svn-id: http://skia.googlecode.com/svn/trunk@5143 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPicture.cpp
3b3e895df6f8ee0f33010367c215944cd16a8334 16-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove EdgeType enum. Unimportant distinction, and removing speeds up quickReject
Review URL: https://codereview.appspot.com/6448161

git-svn-id: http://skia.googlecode.com/svn/trunk@5140 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicturePlayback.cpp
c51db02181982fbcb8888e2a89132363a7d9371c 16-Aug-2012 scroggo <scroggo@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a memory leak in SkBitmapHeap.

When I switched fLookupTable to be an array of pointers, I did not
delete those pointers when I was done with them. Do it now.

Also modify SkTDArray::deleteAll to call SkDELETE instead of delete.

Review URL: https://codereview.appspot.com/6453129

git-svn-id: http://skia.googlecode.com/svn/trunk@5137 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
da17f758442f16747af39f8fbaed9c097048519c 16-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_ENABLE_CLIP_QUICKREJECT option (currently disabled)



git-svn-id: http://skia.googlecode.com/svn/trunk@5135 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
b49d98999799ff9406302fa75b5011e95fb153bc 16-Aug-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SK_FONTHOST_WIN_DW define.


git-svn-id: http://skia.googlecode.com/svn/trunk@5132 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
bc4b66f42c169b03559773f2b7181b2b95cbe8cd 16-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> we have no subclasses, so change protected to private.



git-svn-id: http://skia.googlecode.com/svn/trunk@5131 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.h
e8f0592ae8b37e94d99f49816eb22e9fafde6d86 16-Aug-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> DirectWrite font host for skia.
https://codereview.appspot.com/5417063/


git-svn-id: http://skia.googlecode.com/svn/trunk@5128 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
0557d9ea94d5435a9072c9b4141a05190d648442 16-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkClipStack::clipEmpty() as an optimized way to say clipDevRect(empty, intersect)
if the caller knows up-front that it wants the clipstact to become empty.
Review URL: https://codereview.appspot.com/6443132

git-svn-id: http://skia.googlecode.com/svn/trunk@5127 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
51ee8f1fd2553c576c4173ec701253e933115777 16-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Compilation fix for r5123 (disabling template inst count tracking)



git-svn-id: http://skia.googlecode.com/svn/trunk@5124 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.h
kScalerContext.cpp
a22e2117e44efa4298dd0eb6df304a8166c8e9c3 16-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Extended Inst counting to find "unknown" leaked object (SkTMaskGamma)

http://codereview.appspot.com/6453127/



git-svn-id: http://skia.googlecode.com/svn/trunk@5123 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
kMaskGamma.h
kPictureFlat.cpp
kPictureFlat.h
kPtrRecorder.cpp
kPtrRecorder.h
kScalerContext.cpp
cb73b31bcd7e334e46ee55e92a9b13f3f834d7ba 15-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added virtual destructor to SkColorSpaceLuminance

http://codereview.appspot.com/6459092/



git-svn-id: http://skia.googlecode.com/svn/trunk@5110 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.h
5d8d18651a64f62dbb8881794e23f53bf22c9a23 15-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Addressed Windows compiler complaints

http://codereview.appspot.com/6462062/

This CL will require re-baselining of the imagemagnifier GM



git-svn-id: http://skia.googlecode.com/svn/trunk@5108 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c0f1dfb4ed6133dec29b30ef4c5da68008f2d34f 14-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkScalerContext.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5096 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.h
664fab1b3454faea01cbae2f1dc2777c5afb9998 14-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move write buffer flags used by SkFlataData::Create into SkFlatController.

Review URL: https://codereview.appspot.com/6446135

git-svn-id: http://skia.googlecode.com/svn/trunk@5091 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
a9d4e84c435f61be3c02d7f54acab973e8b7761c 14-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> To allow forward declarations, move SkScalerContext::Rec to SkScalerContextRec
Review URL: https://codereview.appspot.com/6462059

git-svn-id: http://skia.googlecode.com/svn/trunk@5090 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
fe8765c82a79be95396cfce7bb36119a93009786 14-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkDescriptor.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5086 2bbb7eff-a529-9590-31e7-b0007b416f81
kDescriptor.h
7ca24437c71af06fc06ab5f6f261b185882fa440 14-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkBitmapHeap for shaders in SkGPipe.

Required adding a new feature to SkBitmapHeap, allowing it to defer
adding owners, since sometimes we flatten a shader, but then do not
unflatten it, since we already had a copy in the heap, so the owners
never get removed.

Reviewed at https://codereview.appspot.com/6464053/

Review URL: https://codereview.appspot.com/6465047

git-svn-id: http://skia.googlecode.com/svn/trunk@5082 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
3e26bd0c357d849ff40b092decd7a5c46ec2ada4 14-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Check in r5063 again, along with fix for tests.

Thank you to Android build, for catching the problem, which would
show up elsewhere. Now we access entry->fStorageSlot before
deleting entry.

(Original message:)
Use the SkBitmapHeap to handle SkBitmaps in SkGPipe cross process.

Required moving the LRU handles from SkBitmapHeapEntry to LookupEntry.

Allows simplification of drawBitmap* calls in SkGPipeCanvas.

Review URL: https://codereview.appspot.com/6453113

git-svn-id: http://skia.googlecode.com/svn/trunk@5081 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
8afae61a57f87e4a50578effce6c428031499301 14-Aug-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up most clang warnings outside animator/

http://codereview.appspot.com/6464058/



git-svn-id: http://skia.googlecode.com/svn/trunk@5079 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_procs.h
e4ee35dc086cdb98e2915fc535d4a421e25a2c9a 14-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add LF at the end, for clanginess



git-svn-id: http://skia.googlecode.com/svn/trunk@5077 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_procs.h
65a87cc13d6babcf12844cca244ca7cc5258cadc 14-Aug-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add inst counting to bench and count SkPaths

Review URL: http://codereview.appspot.com/6450129/



git-svn-id: http://skia.googlecode.com/svn/trunk@5076 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
fdb9b212a8590204e99d49d08b8b9bf19f0b2f67 13-Aug-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r5063 until unit tests can be fixed.



git-svn-id: http://skia.googlecode.com/svn/trunk@5067 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
92967e9677ac0416c9c858ed19e4883aa1726046 13-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use the SkBitmapHeap to handle SkBitmaps in SkGPipe cross process.

Required moving the LRU handles from SkBitmapHeapEntry to LookupEntry.

Allows simplification of drawBitmap* calls in SkGPipeCanvas.

Review URL: https://codereview.appspot.com/6460073

git-svn-id: http://skia.googlecode.com/svn/trunk@5063 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
3ada0efdc8de8316df8113ec54ffd1a3f33ecd21 13-Aug-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> arm: dynamic NEON support for SkBitmapProcState functions.

This patch does the following:

- Move the NEON-specific code from src/core/SkBitmapProcState_filter.h
to src/opts/SkBitmapProcState_filter_neon.h

- Implement the NEON-specific functions in the new source file
src/opts/SkBitmapProcState_opts_arm_neon.cpp, added to the "opts_neon"
static library target. All functions now use the _neon suffix, even
in full-NEON builds.

- Move most of the content of src/core/SkBitmapProcState.cpp to a
new header: src/core/SkBitmapProcState_procs.h

This header is included by two source files:

src/core/SkBitmapProcState.cpp, to define the regular functions.
src/opts/SkBitmapProcState_opts_arm_neon.cpp to define NEON ones.

This is to deal with the fact that all NEON functions now
use the _neon suffix, even in SK_ARM_NEON_IS_ALWAYS mode,
and to be able to include the same header twice in the
SK_ARM_NEON_IS_DYNAMIC case.
Review URL: https://codereview.appspot.com/6449117

git-svn-id: http://skia.googlecode.com/svn/trunk@5055 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_filter.h
kBitmapProcState_procs.h
kBitmapProcState_shaderproc.h
56d5bfa90eb8fdfdef65bc91276480036bc545b6 13-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkBuffer.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5050 2bbb7eff-a529-9590-31e7-b0007b416f81
kBuffer.h
kMaskFilter.cpp
kPathEffect.cpp
65be881c83b6e07110855d779ac828e219d406f9 13-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkRefDict.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5049 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefDict.h
d02d4fffad32e852695cff5d8310ffc9ca656c67 12-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkGlyph.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5048 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyph.h
2bc1689dbda69b1388cef473a65b13a46ff679f4 12-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkPtrRecorder.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5047 2bbb7eff-a529-9590-31e7-b0007b416f81
kPtrRecorder.h
227b516f233df5870d79d3f8dcbdaa02336b7356 12-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> refactor some subclasses in SkFlattenable.h into SkPtrRecorder.h, in preparation for
privatizing SkPtrRecorder.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5046 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kGlyphCache.h
kOrderedWriteBuffer.cpp
kOrderedWriteBuffer.h
kPictureFlat.h
43523f8fdac9103231f6251d72d3c460ae0e7f87 12-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkDeviceProfile.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5045 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceProfile.h
ed02c4d05e3f2ed86dbf4276a69827ab23810598 10-Aug-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix handling of infinite bounds during "fast transforms".

http://codereview.appspot.com/6449125/



git-svn-id: http://skia.googlecode.com/svn/trunk@5042 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
aaa3aec09b3907a4985967a73a1ff76fa3cce97a 09-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkBlitter.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5040 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.h
3ec3ac5ffa929bafa00bd5643b26b096c0084747 09-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused local var (warning fix)



git-svn-id: http://skia.googlecode.com/svn/trunk@5039 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
cabe48af63e3ec97fa11731a491ca1adb75283ac 09-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkScan.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5038 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan.h
73e71023a05393ef0aa12bf3644a1c704feeec0c 09-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added method of getting top genID from SkClipStack

http://codereview.appspot.com/6446108/



git-svn-id: http://skia.googlecode.com/svn/trunk@5034 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
d74e710c00700aea603d7843d3ff670043bb1c15 09-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkShape (unused)
Review URL: https://codereview.appspot.com/6461069

git-svn-id: http://skia.googlecode.com/svn/trunk@5033 2bbb7eff-a529-9590-31e7-b0007b416f81
kShape.cpp
e012e0a3414e8ab93dc90fd139256f2a71fc6f9f 09-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatize SkEdgeClipper.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5027 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.h
22f84008b3149fa4ccb8cd3070e223ff6193fea4 09-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatization of SkPerspIter.h
remove obsolete SkRelay.h



git-svn-id: http://skia.googlecode.com/svn/trunk@5025 2bbb7eff-a529-9590-31e7-b0007b416f81
kPerspIter.h
efb65de8ab9f62244659a0e7792db98bef9a01b0 09-Aug-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> privatization -- moving headers out of include into src



git-svn-id: http://skia.googlecode.com/svn/trunk@5024 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedReadBuffer.h
kOrderedWriteBuffer.h
10dccde54a769b8d472bccf8c1993034b93ef58d 08-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkGPipe use SkBitmapHeap.

In the single process (or hypothetical cross process/shared address
space) mode, SkGPipe now uses SkBitmapHeap instead of SharedHeap.

Still need to use the shared heap for shaders as well as for cross
process.

TEST=PipeTest

Review URL: https://codereview.appspot.com/6461059

git-svn-id: http://skia.googlecode.com/svn/trunk@5008 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapHeap.cpp
kBitmapHeap.h
586b6a5e60a1e5c0e675cc42c9a01341c688efa4 07-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkSqrt32 back into SkMath.h -- was referenced in SkEmbossMask.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@5000 2bbb7eff-a529-9590-31e7-b0007b416f81
kMathPriv.h
66e51608f14d6554aed9d97f9ebc09f2cacb2310 07-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Privatize SkAutoKern.h



git-svn-id: http://skia.googlecode.com/svn/trunk@4998 2bbb7eff-a529-9590-31e7-b0007b416f81
kAutoKern.h
4b163ed2c22facbe8891616874ae07ba7827d9c9 07-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Privatization:
move SkFDot.h to private
move parts of SkMath.h into SkMathPriv.h
Review URL: https://codereview.appspot.com/6461045

git-svn-id: http://skia.googlecode.com/svn/trunk@4997 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kBitmapProcState_matrix.h
kBitmapProcState_shaderproc.h
kBlitRow_D16.cpp
kConfig8888.cpp
kCordic.cpp
kFDot6.h
kFloat.cpp
kFloatBits.cpp
kMath.cpp
kMathPriv.h
kXfermode.cpp
21830d90096d2dccc4168d99a427e78035ce942a 07-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor Bitmap Storage for SkPicture using SkPipe's design.

Refactor Picture and Pipe bitmap storage into common data structure

Update SkFlattenable buffers to be more modular.

This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.

BUG=

Review URL: https://codereview.appspot.com/6445079

git-svn-id: http://skia.googlecode.com/svn/trunk@4994 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapHeap.cpp
kBitmapHeap.h
kFlattenableBuffers.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
2972bb5fd2441709026b350c6b9b66eecd80f868 07-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding storage of SkPath::fIsOval

http://codereview.appspot.com/6453085/



git-svn-id: http://skia.googlecode.com/svn/trunk@4991 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b9640612b9c812ca69d2e0657f3eb5c5ff036a3c 07-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for r4978 unit test failure. TBR by Brian



git-svn-id: http://skia.googlecode.com/svn/trunk@4983 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
c73dd5c6880739f26216f198c757028fd28df1a4 07-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkFlattenable buffers to be more modular.

This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.

BUG=

Review URL: https://codereview.appspot.com/6448095

git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kBitmap.cpp
kBitmapProcShader.cpp
kBlitter.cpp
kColorFilter.cpp
kColorTable.cpp
kComposeShader.cpp
kData.cpp
kFlattenable.cpp
kFlattenableBuffers.cpp
kGlyphCache.cpp
kMallocPixelRef.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kPaint.cpp
kPathEffect.cpp
kPathHeap.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPixelRef.cpp
kShader.cpp
kXfermode.cpp
7b4531f64cbd85d32a77ceab1bdec8335c5a7864 07-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkTextToPathIter to allow continuation even when there is no path for
the current glyph. Fixes bug in getTextPath() if there are spaces in the text.

Update gm to add space-characters, so images will have to be rebaselined.



git-svn-id: http://skia.googlecode.com/svn/trunk@4979 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
kTextToPathIter.h
46f935002c2b25331e552520dc7b1a912e12dfdc 07-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added SkClipStack portion of new clip mask caching system

http://codereview.appspot.com/6449089/



git-svn-id: http://skia.googlecode.com/svn/trunk@4978 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
e69137620ab0b5b40d230318c8e11b822f63cb9d 07-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkTextToPathIter into private header



git-svn-id: http://skia.googlecode.com/svn/trunk@4977 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
kTextToPathIter.h
02f65f2d9168f2304a09d784dbcfeefb7669c8b4 06-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkFilterShader into private header
Review URL: https://codereview.appspot.com/6454107

git-svn-id: http://skia.googlecode.com/svn/trunk@4961 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kColorFilter.cpp
kFilterShader.h
e2faf17bcc523557e44ef443b48a53f286886a53 06-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Even when the pts are restricted to 32K values, we can still overflow computing
a fixed-point coefficient for quadratics. To avoid this, we bias these
coefficients, storing 1/2 of their actual value, and then apply the 2x unbias
in updateQuadratic().

Fixes http://code.google.com/p/chromium/issues/detail?id=140803
Review URL: https://codereview.appspot.com/6450099

git-svn-id: http://skia.googlecode.com/svn/trunk@4960 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
157d94465a47a57e30e5cf49cd57dccd903e27e2 06-Aug-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rm: Introduce SK_ARM_NEON_WRAP handy wrapper macro.

It is used to simplify arm/neon dispatch logic code.
Review URL: https://codereview.appspot.com/6458060

git-svn-id: http://skia.googlecode.com/svn/trunk@4958 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kUtilsArm.h
0951ded8d887174a3ca575e3295daae547c3c6f7 03-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> tie slow sort (STD) to legacy AA, so that skia can use the fast one, and so that
when chrome disables the legacy flag, it will automatically get the faster one.



git-svn-id: http://skia.googlecode.com/svn/trunk@4955 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
1554360a9511d996e1618d19c163c810ef3f128c 02-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Store more behavior of SkFlatDictionary in SkFlatController.

Code refactoring for simplicity.

Review URL: https://codereview.appspot.com/6427046

git-svn-id: http://skia.googlecode.com/svn/trunk@4929 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
b6a2ba7b483a164a59ec0ded0795590329eab923 02-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> create inline version of setLine that assumes no clip. 10% faster for dashing gms
Review URL: https://codereview.appspot.com/6455078

git-svn-id: http://skia.googlecode.com/svn/trunk@4920 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.h
kEdgeBuilder.cpp
c8d640b1788822a8697816b645c327383a1d1f20 02-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> special-case edge-building for polygons (paths with only lines)
makes the dashing bench faster (from 13.4 -> 11.5 ticks)
Review URL: https://codereview.appspot.com/6449080

git-svn-id: http://skia.googlecode.com/svn/trunk@4916 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kEdgeBuilder.h
08eacc144711cd5d33513b2fba7a635ad28b7208 02-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added check for aa/bw rect merging

http://codereview.appspot.com/6449079/



git-svn-id: http://skia.googlecode.com/svn/trunk@4907 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
768fee8b6e9ae0a849ed45ab377fc9079b5db11e 02-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed oversized SkRegion bound problem for complexclip_aa GM

http://codereview.appspot.com/6447076/



git-svn-id: http://skia.googlecode.com/svn/trunk@4906 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
2bf82d843d8896dd10bb86adc1e974c6d52324e6 02-Aug-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Set fReservedAlign to 0.
Cleans scalar context key and should fix http://code.google.com/p/chromium/issues/detail?id=140196


git-svn-id: http://skia.googlecode.com/svn/trunk@4904 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
302cffba86a188373c99833d83392f33e6014542 01-Aug-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace the asAFoo() functions in SkImageFilter with canFilterImageGPU() and
onFilterImageGPU() virtuals. This allows each filter to implement its own GPU
processing code, even for multi-pass filters.

Review URL: http://codereview.appspot.com/6449075/



git-svn-id: http://skia.googlecode.com/svn/trunk@4900 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
0c3e5fe728ce4b8606819ee919a4b82f4d9efc85 01-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Pipe factory names independently from the flattenables using them.

Avoids an issue where a flattenable written twice might be written
differently (the first time the flat data may have a name, whereas
the second time it will have an index).

Also add a test which confirms that identical flattenables will have
the same SkFlatData representation.

BUG=https://code.google.com/p/skia/issues/detail?id=721
TEST=FlatDataTest.cpp

Review URL: https://codereview.appspot.com/6431057

git-svn-id: http://skia.googlecode.com/svn/trunk@4896 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kPictureFlat.cpp
kPictureFlat.h
fbf31949ac31271362750168ffcb13a04408b721 01-Aug-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> arm: Move SkUtilsArm.h from include/core to src/core

There is no reason to make this visible to client code.
Review URL: https://codereview.appspot.com/6441082

git-svn-id: http://skia.googlecode.com/svn/trunk@4892 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.h
fce02aca62525c3041226501574f740f7ea3714b 01-Aug-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> arm: dynamic NEON support for SkBitmapProcState matrix operations.

This patch implements dynamic ARM NEON support for the functions
implemented by src/core/SkBitmapProcState_matrixProcs.cpp.

- Because the SkBitmapProcState_matrix_{clamp,repeat}.h headers
are NEON-specific, they are renamed with a _neon.h suffix, and
moved to src/opts/ (from src/core/)

- Add a new file src/opts/SkBitmapProcState_matrixProcs_neon.cpp
which implements the NEON code paths for all builds, and add
it to the 'opts_neon' static library.

- Modify SkBitmapProcState_matrixProcs.cpp to select the right
code-path depending on our build configuration. Note that in
the case where 'arm_neon == 1', we do not embed regular ARM
code paths in the final binary. Only 'arm_neon_optional == 1'
builds will contain both regular and NEON code paths at the
same time.

Note that there doesn't seem to be a simple way to put the
NEON-specific selection from that currently is in
SkBitmapProcState_matrixProcs.cpp into src/opts/. Doing so
would require much more drastic restructuring. This is also
true of the other SkBitmapProcState source files that will
be touched in a future patch.
Review URL: https://codereview.appspot.com/6453065

git-svn-id: http://skia.googlecode.com/svn/trunk@4888 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
kUtilsArm.cpp
641f8b19a6799b6d73ac17b9c2d2f8a5e6f5ad4d 31-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace GrClip with SkClipStack

http://codereview.appspot.com/6449070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4865 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
4b2af9c91d39c2176a32e7ba42a0276dca68034a 31-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getUnitsPerEm() to SkTypeface



git-svn-id: http://skia.googlecode.com/svn/trunk@4863 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
7b11289b4e4d117bbcee6d2460b057d0fcf6e437 31-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added dev- & canv- prefixes to Ganesh bounding boxes to indicate coordinate space

http://codereview.appspot.com/6457061/



git-svn-id: http://skia.googlecode.com/svn/trunk@4856 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
a1da1034318774e529abadc126e9d3c74da7b67c 31-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkData and SkDataSet to make better use of SkFlattenable.

TEST=DataRefTest.cpp

Review URL: https://codereview.appspot.com/6441076

git-svn-id: http://skia.googlecode.com/svn/trunk@4850 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kData.cpp
97efada074e4806479f1350ab1508939c2fdcb53 30-Jul-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Gamma correcting masks.
https://codereview.appspot.com/6244068/


git-svn-id: http://skia.googlecode.com/svn/trunk@4841 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskGamma.cpp
kMaskGamma.h
kPaint.cpp
kScalerContext.cpp
fa3d892f2e3beba39ccb9957be78aad529521740 30-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove outdated test code for TEST_SRC_ALPHA
Review URL: https://codereview.appspot.com/6457056

git-svn-id: http://skia.googlecode.com/svn/trunk@4840 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
8e1034e9ca0e3009f65125239e21b06ec51a55a6 30-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect null pixles in setPixels() and just clear out any existing pixelref.



git-svn-id: http://skia.googlecode.com/svn/trunk@4827 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
79a1c34ee45a3eb5edd568fd97626dff1b64a0db 30-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land https://codereview.appspot.com/6448046/
Add a method reporting used font cache size to the SkGraphics API



git-svn-id: http://skia.googlecode.com/svn/trunk@4825 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
be8cefcc07b5797a2275ed6bf5f57e3c70c79ac6 27-Jul-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix the build after intentional break

git-svn-id: http://skia.googlecode.com/svn/trunk@4814 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
3bf5e310ea5f4f6c144aabb416662c92696f7319 27-Jul-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> intentionally break the build to test notifications

git-svn-id: http://skia.googlecode.com/svn/trunk@4813 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
20a550c6ea947f0ab239da1d4ecba209d76a98fd 27-Jul-2012 justinlin@google.com <justinlin@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add virtual destructor to class with virtual functions.

BUG=
TEST=

Review URL: https://codereview.appspot.com/6453052

git-svn-id: http://skia.googlecode.com/svn/trunk@4810 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7dade42e6f2e35dd27b4090fd7894322d755d4db 27-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Always store pixels of mutable bitmaps when recording a SkPicture.

Prior to this CL mutable bitmaps only saved a copy of their pixels
if a flag was set at recording time. That flag has been removed
and the default behavior when recording a mutable bitmap is to
make a copy of it's pixels. This is the only way to ensure that
the pixels are not manipulated before we playback their contents.

However, enabling this behavior breaks the recording of extracted
bitmaps in SkPicture. This is because we currently cache bitmaps
within a picture based only on their pixelRef. This results in
false positive cache hit when drawing an extracted bitmap as it
shares a pixelRef with its orginating bitmap. Therefore we must
update the index of the bitmap cache to be both the pixelRef AND
the size and offset of the bitmap using those pixels.

BUG=
TEST=extractbitmap.cpp

Review URL: https://codereview.appspot.com/6439043

git-svn-id: http://skia.googlecode.com/svn/trunk@4809 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
c84b8335ee4fd864c30a4703afc643cf4b5010d9 27-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reapply "Remove Bitmaps Raw Pixel Support."

This CL reapplies r4722. Now that we have addressed the issues
in Chrome tests that were causing asserts to be fired.

Review URL: https://codereview.appspot.com/6452050

git-svn-id: http://skia.googlecode.com/svn/trunk@4804 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
cc6493bbef7c9c2adf4b1ed8701e2ed015ae745d 26-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added ctor to SkClipStack and isEmpty method

http://codereview.appspot.com/6444048/



git-svn-id: http://skia.googlecode.com/svn/trunk@4787 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
9364511bd17d7414efc5df3ee38faa78c6f89eb1 26-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reject any paths that are not finite.



git-svn-id: http://skia.googlecode.com/svn/trunk@4785 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
0bb18bb264b26afca45452910437c09445e23a3c 26-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> explicitly track if a path is finite or not
we need this (it appears) so we can definitively reject non-finite paths
in canvas, before passing them down into the guts.
Review URL: https://codereview.appspot.com/6453047

git-svn-id: http://skia.googlecode.com/svn/trunk@4784 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kRect.cpp
56f8f338b6d2f9c75bfb045db51405fcab351cd0 26-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Remove Bitmaps Raw Pixel Support."

BUG=
TEST=

Review URL: https://codereview.appspot.com/6449049

git-svn-id: http://skia.googlecode.com/svn/trunk@4780 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
0b7ad989b4d0fb67b8157fd42eb48a9d298d133e 26-Jul-2012 skyostil@google.com <skyostil@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Correctly calculate remaining span length in Neon fallback blitter

In the non-Neon optimized fallback in SCALE_NOFILTER_NAME() the pixels
are first processed in groups of 4, followed by the final remaining 0-3
pixels depending on the span length.

Currently the remaining span length (0-3) pixels is incorrectly
calculated as count - count / 4. This generally causes the function to
access outside the bounds of the input and/or output bitmaps.

The correct formula is count % 4, because all the full multiples of 4
pixels have been processed and only the remainder remains.

Bug spotted by Xianzhu Wang.

TEST=None, because this part of the code isn't actually even being compiled due
to the !defined(__ARM_HAVE_NEON) guard at the top of the file. It was compiled
in by mistake in Chrome for Android, which is how this bug was spotted.
Review URL: https://codereview.appspot.com/6441050

git-svn-id: http://skia.googlecode.com/svn/trunk@4777 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_repeat.h
91f319c5dc4493384f0a52aaeef3dcc311ef6ed0 25-Jul-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use asNewCustomStage instead of asABitmap in SkGpuDevice, also removed now-unecessary twoPointRadialParams parameter from asABitmap.

In SkGpuDevice we still fall back on using asABitmap for effects that don't have asNewCustomStage implemented, but it still simplifies things a fair amount.
Review URL: https://codereview.appspot.com/6430060

git-svn-id: http://skia.googlecode.com/svn/trunk@4755 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kShader.cpp
7cf0e9e555290e11d18496a01d85a0ece00b3f43 25-Jul-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Prevent MipMaps from crashing.


git-svn-id: http://skia.googlecode.com/svn/trunk@4753 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
4c2a2f7c5e8ec77771153f94c454adf21fd33805 25-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added isIntersectionOfRects to SkClipStack

http://codereview.appspot.com/6434050/



git-svn-id: http://skia.googlecode.com/svn/trunk@4745 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
dd3948899725041bf52e3a4eea922f9961ee0a9b 24-Jul-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Avoid a loop in writeString and writePad by zeroing padding first.

Also add a benchmark to time the new improved writeString. Before
my change the bench took ~1.23ms and afterwards it takes ~.95ms.

Add some testing to ensure that writePad works properly.

TEST=Writer32Test, WriterBench

Review URL: https://codereview.appspot.com/6438045

git-svn-id: http://skia.googlecode.com/svn/trunk@4742 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
bbe50131413098bffed9186660c41f047d881596 24-Jul-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split SkGlyph into its own header.
https://codereview.appspot.com/6434049/


git-svn-id: http://skia.googlecode.com/svn/trunk@4741 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
kScalerContext.cpp
607fe077c893fdb230e29631be096de614a14e2a 24-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added bound computation to SkClipStack

http://codereview.appspot.com/6419048/

This will require re-baselining of complexclip* and filltypespersp



git-svn-id: http://skia.googlecode.com/svn/trunk@4730 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
7866228f06e402d37f8fcab70a688e1f34c1d27b 24-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land http://codereview.appspot.com/6353063/ by Lei
optimizations for D16 using SSE2

skia_bench -config 565 -match bitmap_8888_scale_filter -forceFilter 1 -repeat
30

The result I got on Android platform was below:

w/o this optimization routine:
D/skia ( 1868): running bench [640 480] bitmap_8888_scale_filter
D/skia ( 1868): 565: cmsecs = 286.50

w/ with optimization:
D/skia ( 1463): running bench [640 480] bitmap_8888_scale_filter
D/skia ( 1463): 565: cmsecs = 186.80

The net gain is 34.80%.



git-svn-id: http://skia.googlecode.com/svn/trunk@4729 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
a6f11c4f717961070cd6fc5e60c361db14c5c4f3 23-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Gave GrClip an SkClipStack-style iterator

http://codereview.appspot.com/6434046/



git-svn-id: http://skia.googlecode.com/svn/trunk@4723 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
c1d1f414a08de25d8cbf4ba08fc64d701ffca32e 23-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove Bitmaps Raw Pixel Support.

bitmap.setPixels(...) now creates a mutable pixelRef instead
of just setting fPixels.
Review URL: https://codereview.appspot.com/6419044

git-svn-id: http://skia.googlecode.com/svn/trunk@4722 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
f4cc18726b52a76ba18c07a6490851c4a5e38835 23-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkTRefArray to share readonly data between pictures
Review URL: https://codereview.appspot.com/6351121

git-svn-id: http://skia.googlecode.com/svn/trunk@4720 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
f79430350d9f06a72b307af879d7f3bdec7ff706 23-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add protected method for internal_dispose overrides to jam fRefCnt before
calling destructor.

move SkTRefArray to actually inherit from SkRefCnt
Review URL: https://codereview.appspot.com/6422057

git-svn-id: http://skia.googlecode.com/svn/trunk@4719 2bbb7eff-a529-9590-31e7-b0007b416f81
kTRefArray.h
e9617eb352483bf152dfd3a38083ffb99c4694b9 23-Jul-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> In SkWriter32::writeString, initialize all memory reserved.

SkFlatData compares data which is sometimes created by writeString.
Initialize all the memory in writeString so it does not compare
uninitialized memory.

See http://code.google.com/p/skia/issues/detail?id=721&thanks=721

Review URL: https://codereview.appspot.com/6428054

git-svn-id: http://skia.googlecode.com/svn/trunk@4715 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
ddf98a88340a7e453eef4e3c236c82a5766a5f01 21-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkData to share between record and playback
use SkReader32 on the stack, as a step towards thread-reentrant playback



git-svn-id: http://skia.googlecode.com/svn/trunk@4711 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
0c6a736617d242547135b731adb8333581b2f2dc 21-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> include <new> since we use placement-new



git-svn-id: http://skia.googlecode.com/svn/trunk@4710 2bbb7eff-a529-9590-31e7-b0007b416f81
kTRefArray.h
80ba7964cde0f7805d76cf0170cf3b920146a007 21-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkTRefArray, in hopes that it will enable more sharing between pictureplaybacks
in different threads.



git-svn-id: http://skia.googlecode.com/svn/trunk@4709 2bbb7eff-a529-9590-31e7-b0007b416f81
kTRefArray.h
03c1c359b336ad20d23ab07004cdafafd14c90a5 20-Jul-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added asNewCustomStage to SkShader and implemented it for all the gradient shaders.

Not actually hooked up yet, but it should be ready to replace asABitmap for a future CL.
Review URL: https://codereview.appspot.com/6351113

git-svn-id: http://skia.googlecode.com/svn/trunk@4702 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
80214e26c57c5fea954006400852e8999e201923 20-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Made clarifying renamings to SkClipStack's iterators (and added to unit test)

http://codereview.appspot.com/6423051/



git-svn-id: http://skia.googlecode.com/svn/trunk@4692 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
73c48f17137e332f4d1f06ff230d00c98ef92d27 20-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> removing trailing ',' on last entry in enum, to fix warning



git-svn-id: http://skia.googlecode.com/svn/trunk@4686 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
ca0062ee5e74eddff886ada2a200d25946ea52cf 20-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPaint::getPosTextPath(), with gm to test it
Review URL: https://codereview.appspot.com/6427055

git-svn-id: http://skia.googlecode.com/svn/trunk@4684 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
5836b6dec5563e6273099fcf23984dd3818a168f 18-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add skipToLast method to SkClipStack

http://codereview.appspot.com/6411043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4644 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
4dffc596aa9fabd3104e66bc1f9957e8de4cb65d 17-Jul-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use SkFlatDictionary in SkGPipe to take advantage of its new features.

Add a controller class to perform the allocation/unallocation for the dictionary and to provide an entry to be replaced, if replacements are allowed.

TODO:
Use LRU caching in my custom controller so replacements will be done less often.
More refactoring on SkFlatDictionary so picture recording's use of the dictionary does not require going through the path to replace.

Review URL: https://codereview.appspot.com/6345102

git-svn-id: http://skia.googlecode.com/svn/trunk@4639 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
c029062a0312fb747fb6c2677983aba51795c580 16-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed two sub-optimal iterator uses

http://codereview.appspot.com/6409048/



git-svn-id: http://skia.googlecode.com/svn/trunk@4633 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
52cb2c7cdf87f1e7d4b5d24b3609aaa514a26c10 16-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Extended SkDeque's reverse iteration capability to SkClipStack

http://codereview.appspot.com/6409046/



git-svn-id: http://skia.googlecode.com/svn/trunk@4631 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
0a78b0f4a2e1a3d7d1fbdb9b0b5dba5095db2e5a 16-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkDeque's iterator and allocation method

http://codereview.appspot.com/6353098/



git-svn-id: http://skia.googlecode.com/svn/trunk@4624 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeque.cpp
4e6dfa51525e174d79cb88800d8e5f2c88291270 16-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding bracketing save/restore calls to SkPicture at record time and
preparing tests for enforcing save/restore balancing constraints on SkPicture

Review URL: http://codereview.appspot.com/6354105/



git-svn-id: http://skia.googlecode.com/svn/trunk@4618 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
238be8c7e5de5a83517440a3db7f7965b47fb010 13-Jul-2012 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Add link annotations.

Review URL: https://codereview.appspot.com/6346100

git-svn-id: http://skia.googlecode.com/svn/trunk@4609 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
8d850be3aa5164879cdaee5e98caaa507eb3d117 13-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't add circles on chopped cubics



git-svn-id: http://skia.googlecode.com/svn/trunk@4600 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
40a1ae4df28810aa5aa5cf2627d8387b2dfb867a 13-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added SkDevice onAttachToCanvas & onDetachFromCanvas methods

http://codereview.appspot.com/6348100/



git-svn-id: http://skia.googlecode.com/svn/trunk@4598 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
19263b1e67b31590f9ecb50a1c5bcb6b331c8ef7 13-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkMatrix line endings (LF)



git-svn-id: http://skia.googlecode.com/svn/trunk@4592 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
a6c9e0e02be390d36b80f4872c628edb3594208e 12-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup restore offsets at end of SkPicture recording

Review URL: http://codereview.appspot.com/6355099/
TEST=skia unit test CanvasTest, test step TwoClipOps
BUG=https://code.google.com/p/chromium/issues/detail?id=133432



git-svn-id: http://skia.googlecode.com/svn/trunk@4577 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPictureRecord.cpp
kPictureRecord.h
d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180b 12-Jul-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Introduces new SingleTextureEffect base class for GrCustomStage objects.
This class tracks the texture that the object uses. A future commit will get rid of the
GrTexture pointer currenty stored in the GrDrawState, allowing us to have CustomStages
*without* textures.

Requires gyp change on next roll.

http://codereview.appspot.com/6306097/



git-svn-id: http://skia.googlecode.com/svn/trunk@4576 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
83ca337348c74dede813b2022943c25a337f32eb 12-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check a hashtable before using a bsearch
Review URL: https://codereview.appspot.com/6345097

git-svn-id: http://skia.googlecode.com/svn/trunk@4572 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPictureRecord.cpp
6fc5699e777c27c4eea9587a131aecf6e92a677a 12-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing type mask computation in SkMatrix to make it faster and make it so that matrices have the same type masks as their inverses.
This patch also add bench tests that call invert() followed by mapRect() on various types of matrices. Performance of these tests was greatly affected by typemask computation

Review URL: http://codereview.appspot.com/6380043/
BUG=https://code.google.com/p/chromium/issues/detail?id=135259



git-svn-id: http://skia.googlecode.com/svn/trunk@4562 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
b0a34d80c5c7b06db8083a547f8e499781a9c169 11-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> idea: add annotation to SkPaint
Review URL: https://codereview.appspot.com/6355050

git-svn-id: http://skia.googlecode.com/svn/trunk@4555 2bbb7eff-a529-9590-31e7-b0007b416f81
kAnnotation.cpp
kDevice.cpp
kPaint.cpp
e9bb623e4da3d7d8b25f4db8f4c2e403e4fbad89 11-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add default: to switch statement, to avoid warning/error for unhandled cases.



git-svn-id: http://skia.googlecode.com/svn/trunk@4552 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
19393dff0c4e44499d0c8102e6238b8544f7b6dd 11-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add flatten/unflatten to SkDataSet
Review URL: https://codereview.appspot.com/6374057

git-svn-id: http://skia.googlecode.com/svn/trunk@4548 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
91bd45967c6ca1ec408a0fefd3de0dcf3d03294a 11-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDataSet class, so SkAnnotation can be more immutable-like
Review URL: https://codereview.appspot.com/6354091

git-svn-id: http://skia.googlecode.com/svn/trunk@4542 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
894790d77c56cd4bae8070331d275c6d2897e33c 11-Jul-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This patch implements the diffuse and specular lighting filters in Ganesh.
There are three light types for each: distant, point and spot, whose code
generation lives in a GrGLLight class hierarchy. This similar to the CPU
implementation, where each light type provides a function to compute the vector
from the surface plane to the light (surfaceToLight) and to compute the light
colour (emitLightColour). Instead of templated member functions, as in the CPU
implementation, these are virtual functions to emit the light-specific GLSL
code.

All of the code for the GPU path lives in the same file as that for the CPU
path, SkLightingImageFilter.cpp. In order to provide Ganesh a hook to access
it, SkImageFilter now has a asNewCustomStage() virtual, which allows an image
filter to return a GrCustomStage representing that filter.

Note that this patch does not handle the border conditions correctly (the
[top|bottom][Left|Right]Normal() functions in the CPU implementation). That
will come in a future patch.

Review URL: http://codereview.appspot.com/6345081/



git-svn-id: http://skia.googlecode.com/svn/trunk@4535 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
3a52d68b4001afd8c7036e80558fba7c87f45a0c 11-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert SkNO_RETURN_HINT fix in favor of a simpler fix



git-svn-id: http://skia.googlecode.com/svn/trunk@4529 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
22f0761d7879c108d305cb0d6cc0242ad29e780f 11-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkNO_RETURN_HINT warnings on mac/clang

Review URL: http://codereview.appspot.com/6392048/



git-svn-id: http://skia.googlecode.com/svn/trunk@4528 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
bad1b2ff1d34ff86693b776f89d7b46995746127 11-Jul-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPath::contains(x, y)



git-svn-id: http://skia.googlecode.com/svn/trunk@4526 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
e2589aeebf321f6d3b5005c19740beacee964be7 10-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkFlatData to have a sentinel value, allowing the Compare function to
not need a loop-end-test.
Review URL: https://codereview.appspot.com/6355086

git-svn-id: http://skia.googlecode.com/svn/trunk@4517 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
4eefe6132cbf77696134f65762ebcae574227b77 10-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Handle convex paths with degeneracies in cheap direction computation
Review URL: http://codereview.appspot.com/6349085/



git-svn-id: http://skia.googlecode.com/svn/trunk@4515 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b4ed0178d0f86da920b101a661cbe8fd4fda3ab3 10-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> bug fix: take the fAllocSize into account when we perform the compare, otherwise
we can read past the end of one of the flatdatas if we're unlucky.



git-svn-id: http://skia.googlecode.com/svn/trunk@4503 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
9fa4d0cca9b27d4ffb510096b37a69d78f88dfc6 09-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding sanity checks on restore offsets in SkPicturePlayback::draw

Review URL: http://codereview.appspot.com/6382044/
BUG=http://code.google.com/p/chromium/issues/detail?id=133432



git-svn-id: http://skia.googlecode.com/svn/trunk@4496 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
142e1fe7cf5dc82e5d4c107b06756302f0cbf96d 09-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> restore 4478 w/ fixed assert (no long need 8-byte alignment)



git-svn-id: http://skia.googlecode.com/svn/trunk@4480 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
fc8581b2d8c63439162c701623bce096088ce6e6 09-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 4478



git-svn-id: http://skia.googlecode.com/svn/trunk@4479 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
f8affe5adff8e82ca6a3e5b98b0d772e204edc51 09-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> switch callers to SkChecksum::Compute (no 32/64 preference)
Review URL: https://codereview.appspot.com/6377043

git-svn-id: http://skia.googlecode.com/svn/trunk@4478 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
e3dbedb44cad6c7b7e5c9aae5224d0b0abec9bf4 09-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactoring code in SkPictureRecord that touches fRestoreOffsetStack

Review URL: http://codereview.appspot.com/6350059/
BUG=http://code.google.com/p/chromium/issues/detail?id=133432



git-svn-id: http://skia.googlecode.com/svn/trunk@4472 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
54823c227d383308fb1732e83b566df6272d4bfb 03-Jul-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Rolling back r4034 (Proposed plumbing to propagate save & restore)

http://codereview.appspot.com/6346066/



git-svn-id: http://skia.googlecode.com/svn/trunk@4456 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
44f7c4a6f871f94e119783e91978b7a1430fb407 03-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkTSearch variants with compare func as template param

Review URL: https://codereview.appspot.com/6345060/



git-svn-id: http://skia.googlecode.com/svn/trunk@4449 2bbb7eff-a529-9590-31e7-b0007b416f81
kPtrRecorder.cpp
fd59d1200073604c0a5dafe14edbb6f3833e1c3d 02-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change NewWithCString to allocate room for the terminating NULL, so the data
can be treated as a cstring (duh).



git-svn-id: http://skia.googlecode.com/svn/trunk@4430 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
0985c558fc7e014f5680a7532270c6cbad2bca6a 02-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix type



git-svn-id: http://skia.googlecode.com/svn/trunk@4428 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
2e07942f42937b87f82a16e11b1bb26acd09896e 02-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add read/write SkData methods



git-svn-id: http://skia.googlecode.com/svn/trunk@4427 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
dbc936dff3357f74fc60e124d912a2179b909b0d 28-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkData::NewFromCString()



git-svn-id: http://skia.googlecode.com/svn/trunk@4383 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
ef76060cbf36032a5bef9cd8d18138704349c3ae 27-Jun-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding checksum to SkFlatData to accelerate SkPicture recording.
The checksum triggers an early exit in the mem compare use to search for duplicate flattened objects. Also, call to memcmp was replaced with 64-bit at a time comparison loop.

Review URL: http://codereview.appspot.com/6339046/
BUG=http://code.google.com/p/chromium/issues/detail?id=54079
TEST=Checksum and PictureRecord tests in bench.exe



git-svn-id: http://skia.googlecode.com/svn/trunk@4378 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
b74af872cc1ce45768df3ae03fa86ad3ed76b582 27-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Separated Inst counting from the SK_DEBUG #define (now SK_ENABLE_INST_COUNT)

http://codereview.appspot.com/6353047/



git-svn-id: http://skia.googlecode.com/svn/trunk@4376 2bbb7eff-a529-9590-31e7-b0007b416f81
kInstCnt.cpp
26344cfaffa6a78c545c3e2253ec26cc277f82c9 27-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add explicit purgeAll() so we don't get foiled by the min cache-limit
call unref instead of delete on the GrFontScaler
Review URL: https://codereview.appspot.com/6353045

git-svn-id: http://skia.googlecode.com/svn/trunk@4366 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
488379e5ac780e8f0a3724b5fcb6e636eefc0303 27-Jun-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Bump max flattenable from 64 to 1024.
Ran into limit on Mac.


git-svn-id: http://skia.googlecode.com/svn/trunk@4364 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
0456e0b7b85060e9b9597ce414c4c2b19aff4f58 27-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added Inst counting to SkFlattenable-derived classes

http://codereview.appspot.com/6355043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4359 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kColorTable.cpp
kMaskFilter.cpp
kPaint.cpp
kPathEffect.cpp
kPixelRef.cpp
kRasterizer.cpp
kShader.cpp
kShape.cpp
kXfermode.cpp
fcb57b5570ec8b3176d4025d4c44d145591f819c 26-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more SkInstCnt plumbing



git-svn-id: http://skia.googlecode.com/svn/trunk@4344 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
kTypeface.cpp
82ce2b8afb7c13c2a9f1b549a2a80dfca06bbf61 26-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add more SkInstCnt plumbing



git-svn-id: http://skia.googlecode.com/svn/trunk@4343 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3b429984664e88e0530eb6a1461a828898d8d96b 26-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> stick SkInstCnt in more classes, to help track down leaks



git-svn-id: http://skia.googlecode.com/svn/trunk@4341 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
6eb0d62cc31463b5af4cbed5c3058a3161c58d2d 25-Jun-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Register some flattenable factories.

Now, SkComposeShaders, SkDiscreteMapper, SkCosineMapper,
Line2DPathEffect, and SkTransparentShader can be flattened
and unflattened. This makes more of our samples work when
using a pipe.

Review URL: https://codereview.appspot.com/6338064

git-svn-id: http://skia.googlecode.com/svn/trunk@4334 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
e56513d2a9eebabf93d7824eebf9e64441c485ba 25-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if bounds don't intersect in DIFF mode, just return src (don't return empty)
Review URL: https://codereview.appspot.com/6337052

git-svn-id: http://skia.googlecode.com/svn/trunk@4331 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
edae1416ba6ca8a47e208ed056680677d568dd73 25-Jun-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix metrics test to no longer include the cpp.

The inclusion of the cpp caused linker errors when building skia
components as shared libaries for inclusion in an Android app.
Review URL: https://codereview.appspot.com/6338063

git-svn-id: http://skia.googlecode.com/svn/trunk@4323 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
34342f6f5127122ecc32166dcffa7f3d2a45c387 25-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> export flags on the state of the world when a picture was serialized.
e.g. don't read/write functionptrs in that case (sizeof may be different for one)
Review URL: https://codereview.appspot.com/6331050

git-svn-id: http://skia.googlecode.com/svn/trunk@4318 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kPicture.cpp
kPicturePlayback.cpp
kXfermode.cpp
6756209ee0a0103d395ac908edbdcf5268b920da 22-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expand header in serialized pictures
Make chunk/tag reading allow for optional and (somewhat) out-of-order chunks.
Return empty picture instead of throwing on error
Review URL: https://codereview.appspot.com/6329049

git-svn-id: http://skia.googlecode.com/svn/trunk@4308 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
89e615d260b03b66703abcb1817a6ca1d39fa07f 22-Jun-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Removing redundant calls to GEN_ID_INC_EVAL in SkPaint.cpp

Review URL: http://codereview.appspot.com/6302099/



git-svn-id: http://skia.googlecode.com/svn/trunk@4305 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ed38495c7cf5bdeb2843b6f1f090579fbefe497d 22-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add PictInfo chunk to serialized pictures
Review URL: https://codereview.appspot.com/6325048

git-svn-id: http://skia.googlecode.com/svn/trunk@4302 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPicturePlayback.h
15e9d3e66e161ce23df30bc13f8a0c87d196b463 21-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expanded distribution of instance counting

http://codereview.appspot.com/6300114/



git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kBitmap.cpp
kCanvas.cpp
kData.cpp
kDevice.cpp
kDeviceProfile.cpp
kFlattenable.cpp
kPicture.cpp
kPtrRecorder.cpp
kStream.cpp
7aa876bfbf0cf6f2a9d19bd4669ae50658f20821 21-Jun-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Record pixel ref's gen ID in picture

Review URL: http://codereview.appspot.com/6325046/



git-svn-id: http://skia.googlecode.com/svn/trunk@4289 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPixelRef.cpp
a4c6e4d6d3a4010df8dd2b04314675e4c201133b 20-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> landing mirror of https://codereview.appspot.com/6304098/
by kondapallykalyan

fixing compiler warnings in SkAAClip



git-svn-id: http://skia.googlecode.com/svn/trunk@4283 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
2999f789c7e66a31066414f4b8fffb3148b677c5 19-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> landing http://codereview.appspot.com/6306095/ by guanqun

fix the following warning for SkColorTable

../src/core/SkColorTable.cpp: In copy constructor
‘SkColorTable::SkColorTable(const SkColorTable&)’:
../src/core/SkColorTable.cpp:30:1: warning: base class ‘class SkFlattenable’
should be explicitly initialized in the copy constructor [-Wextra]



git-svn-id: http://skia.googlecode.com/svn/trunk@4280 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
4d0078aa5115fab8ccd8ef59519a8937ea4e8854 13-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix calling (and checking) the decal_ functions when the input is SkFractionalInt.
The bug was to cast to SkFixed from SkFractionalInt, when what we needed to do
was shift the fractional guy down to fixed.

This bug was only caught on an android device w/o neon, since other configs have
assembly for their matrixproc that didn't have this bug.
Review URL: https://codereview.appspot.com/6303074

git-svn-id: http://skia.googlecode.com/svn/trunk@4256 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
4d73ac22a1b99402fc8cff78a4eb4b27aa8fe019 13-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Version 2 of the Instance Counting system. This one simplifies the print out of information.

http://codereview.appspot.com/6296069/



git-svn-id: http://skia.googlecode.com/svn/trunk@4255 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathHeap.cpp
kPathHeap.h
kRefCnt.cpp
8ae3c7f67eb3721bb656cffeadc1442332f10159 13-Jun-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> For SkGPipe, store bitmaps in a common location.

Also make a change to SkBitmap::copyTo() so that we do not
crash.
Review URL: https://codereview.appspot.com/6296066

git-svn-id: http://skia.googlecode.com/svn/trunk@4249 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
7e963605d5b8177c30afa0d8e5541b0fbe1b6e13 13-Jun-2012 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix the problem of rendering closePath not properly after a moveTo call in
canvas 2D interface. If there is a polyline, followed by a moveTo and a
closePath, both the moveTo and the closePath should be ignored for the purposes
of drawing, and the polyline should not be closed (unless force closed is true
(for filling, for instance).

Tested for path with both valid and degenerate content, when asked to
consume degenerates and not, force closed and not.

This patch also includes a uni test refactoring to reduce the amount of code
to test path iteration and zero length paths.

BUG=6297049

TEST=tests/PathTest.cpp, testIter method.
Review URL: https://codereview.appspot.com/6300086

git-svn-id: http://skia.googlecode.com/svn/trunk@4247 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
4bdfb8c9d6482a56c7212034a6f73046227ed023 12-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Compiler complaints + some minor cleanup

http://codereview.appspot.com/6295070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4238 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
64a0ec36555352ec31aa7c5a7630a5d042b010ba 12-Jun-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkColorTable into its own header and reduce includes in SkFlattenable.h
Review URL: https://codereview.appspot.com/6299072

git-svn-id: http://skia.googlecode.com/svn/trunk@4236 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kColorTable.cpp
kMallocPixelRef.cpp
7886ad3de1aa523d5c71f1fa9f355dfcb2412d1d 11-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_CAN_USE_FLOAT (deprecated)



git-svn-id: http://skia.googlecode.com/svn/trunk@4232 2bbb7eff-a529-9590-31e7-b0007b416f81
kCordic.cpp
kEdge.h
kFloat.cpp
kFloatBits.cpp
kMatrix.cpp
kPath.cpp
kString.cpp
5ee6491b7a1e7c177abc0186c2749ebe1f71fcf7 11-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Better fix for rev. 4214 (inverse-fill and clipping). This fix avoids changing
the actual clipping bounds, which caused tiny differences in the scan converter.
Also adding a gm (which I should have the first time.)
Review URL: https://codereview.appspot.com/6297073

git-svn-id: http://skia.googlecode.com/svn/trunk@4227 2bbb7eff-a529-9590-31e7-b0007b416f81
kScanPriv.h
kScan_Path.cpp
94e75ee46a569cbcdf61fb7f04ee3a69d3ca0896 08-Jun-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Rename the existing flatten(void*) methods.

This change avoids naminc confusion with the SkFlattenable flatten methods and
also changes SkPath to use the void* model instead of taking a SkReader32.
Review URL: https://codereview.appspot.com/6299062

git-svn-id: http://skia.googlecode.com/svn/trunk@4215 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kPath.cpp
kRegion.cpp
97caebc7462c202ab0ec5cce4eb26a616930813e 08-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Detect inverse-fill, and treat its bounds as huge (all of integer space) for the
purposes of comparing w/ the clip-bounds, otherwise we can reject the draw if
the bounds of the path are outside the bounds of the clip.
Review URL: https://codereview.appspot.com/6302058

git-svn-id: http://skia.googlecode.com/svn/trunk@4214 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
df9d656c352928f995abce0a62c4ec3255232a45 07-Jun-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkPath::getVerbs/countVerbs
Review URL: http://codereview.appspot.com/6306053/


git-svn-id: http://skia.googlecode.com/svn/trunk@4209 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kPath.cpp
f6d3c5aa5f93e4c3cc7a7aebf014e960cf837783 07-Jun-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPath::RawIter require a non-NULL pts pointer.

Review URL: http://codereview.appspot.com/6301060/



git-svn-id: http://skia.googlecode.com/svn/trunk@4206 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
803eceb6afd13f07416df0b4a9bb714e9370f081 06-Jun-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings on Mac in src/core

Fix these class of warnings:
- unused functions
- unused locals
- sign mismatch
- missing function prototypes
- missing newline at end of file
- 64 to 32 bit truncation

The changes prefer to link in dead code in the debug build
with 'if (false)' than to comment it out, but trivial cases
are commented out or sometimes deleted if it appears to be
a copy/paste error.
Review URL: https://codereview.appspot.com/6301046

git-svn-id: http://skia.googlecode.com/svn/trunk@4182 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kBitmapProcState_matrix.h
kBitmapProcState_sample.h
kBlitMask_D32.cpp
kConcaveToTriangles.cpp
kPath.cpp
kPixelRef.cpp
kPoint.cpp
kRegion.cpp
kScalerContext.cpp
kScan_AntiPath.cpp
kString.cpp
977b9c8af3ef1b9a2fa2a0037cf3734cf2ba13d9 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Instance counting for SkRefCnt-derived objects (w/ CanvasTest fix)

http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4170 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
25c199343d2683a8eec1e12790b658710389f6fe 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r4162



git-svn-id: http://skia.googlecode.com/svn/trunk@4164 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
3227ab5f6454b3b553284abd5c9894a8d1c7e845 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added instance counting system for SkRefCnt-derived objects

http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4162 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
778e1635030ab77b29b592a9dcafc112ad60ce65 04-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change gm to use concat instead of setMatrix, so we don't trash the caller if
it was recorded into a picture.



git-svn-id: http://skia.googlecode.com/svn/trunk@4147 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
4866cc0afb7571309d9fdecb221d919f663054c0 01-Jun-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding option to serialize mutable bitmaps in SkPicture

BUG=http://code.google.com/p/chromium/issues/detail?id=115654
REVIEW=http://codereview.appspot.com/6221066/



git-svn-id: http://skia.googlecode.com/svn/trunk@4130 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPictureFlat.cpp
kPictureFlat.h
kPictureRecord.cpp
kPictureRecord.h
1f90287df3129cb267422e482c52ebeca6a8990f 01-Jun-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Punctuation cleanup to satisfy idiosyncracies of OpenBSD gcc 4.2.1.
Original patch by landry.breuil.

http://code.google.com/p/skia/issues/detail?id=626



git-svn-id: http://skia.googlecode.com/svn/trunk@4112 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMatrix.cpp
15eeca00684b4d5baad8e47c5b2f77404b978cb0 01-Jun-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update the implementation of SkTypeface_android.h functions.

This CL removes the hardcoded mappings of FallbackScripts to
a particular font file and replaces it with a dynamic mechanism
that takes a style and representative character code for a given
FallbackScript class and returns the most appropriate SkTypeface
that contains that character code.
Review URL: https://codereview.appspot.com/6197074

git-svn-id: http://skia.googlecode.com/svn/trunk@4111 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
0d10280190c411b18feb569a2248552047d1aa93 31-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> We often rgn-diff an area >= the other rgn. now we detect that and return empty
We do this when we update our devices in SkCanvas.cpp
Review URL: https://codereview.appspot.com/6249073

git-svn-id: http://skia.googlecode.com/svn/trunk@4101 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
d2700eec7eb2e26beb206b88a0f0b6f3c5f49118 30-May-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor dictionaries for use by entities other than just SkPicture
Review URL: https://codereview.appspot.com/6101043

git-svn-id: http://skia.googlecode.com/svn/trunk@4077 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
eec9dbcace17b446d7ac3bf20f24c29cfd29736b 30-May-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> arm: First step towards dynamic NEON support.

This patch adds minimal support for dynamic ARM NEON support,
i.e. the ability to probe the CPU at runtime for NEON and
provide alternate code paths when it is available.

- Add include/core/SkUtilsArm.h, which declares a few helper
macros (e.g. SK_NEON_ARM_IS_DYNAMIC), plus the handy
function 'sk_cpu_arm_has_neon()' which returns true if
the target CPU supports the ARM NEON instruction set.

Note that the header is in include/core/ because it will
have to be included from NEON-specific code under src/code/

It would probably be more logical to put it under include/opts/
instead, but this would require moving all the NEON-specific
stuff under src/code/ into src/opts/, which is not trivial
due to the way the code is currently architected.

- Add src/core/SkUtilsArm.cpp which implements
'sk_cpu_arm_has_neon' for ARM-based Linux systems, only
when SK_NEON_ARM_IS_DYNAMIC is true.

(For other cases, 'sk_cpu_arm_has_neon' is an inline function
that returns a constant 'true' or 'false' value).

There is no user-level accessible CPUID instruction on ARM,
so do all CPU feature probing by parsing /proc/cpuinfo.
This is Linux-specific.

For Debug build types, the CPU probing result is printed
to the Android log (or Linux command-line) for easier
debugging.

- Create a new 'opts_neon' target (static library) which shall
contain all the NEON-specific code paths for the library.

This is necessary because -mfpu=neon impacts also non-scalar
code. Just like with -mssse3 on x86, we can't build the rest
of the library with this flag.

Note that for now, we only include memset16_neon and
memset32_neon in this library.

- Modify opts_check_arm.cpp to implement SK_ARM_NEON_IS_DYNAMIC
properly.

Compared to a 'xoom' build, the only difference is the use of
NEON-optimized memset16/32 functions. Later patches will move
more NEON-specific code paths to 'opts_neon'.
Review URL: https://codereview.appspot.com/6247058

git-svn-id: http://skia.googlecode.com/svn/trunk@4069 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtilsArm.cpp
744fabad474e3e111e7cbd8609cf7e209df17f32 29-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> addPoly() entry-point, to quickly add MoveTo+N*LineTo (useful in dashing)
Review URL: https://codereview.appspot.com/6256063

git-svn-id: http://skia.googlecode.com/svn/trunk@4061 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
8661baeb394d90db3297b6da8d1d38eeff8580ff 29-May-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing a reader size overflow with SkOrderedReadBuffer, when unflattening large bitmaps.

REVIEW=http://codereview.appspot.com/6250054/



git-svn-id: http://skia.googlecode.com/svn/trunk@4059 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
8b06f1a7ff6d5a59387a90433064550de20787ee 29-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Detect when the caller was hairline AND strokeandfill, and resolve that into FILL
This fixes the unittests on WIN in the trybot for DEPS roll 4048
Review URL: https://codereview.appspot.com/6242057

git-svn-id: http://skia.googlecode.com/svn/trunk@4057 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
fd4be26c4202ae91f0f7cf2c03e44b5169d885eb 25-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and
if stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6250051

git-svn-id: http://skia.googlecode.com/svn/trunk@4048 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPathEffect.cpp
kScalerContext.cpp
kStroke.cpp
d3521f1a8dc07fe84d6a8f2151b0c176ff1ec8ca 24-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 4046 -- GM:pathfill failed on one bot, maybe uninitialized memory somewhere?



git-svn-id: http://skia.googlecode.com/svn/trunk@4047 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPathEffect.cpp
kScalerContext.cpp
kStroke.cpp
9797272edfc73f18b4807751377518317991b880 24-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and if
stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6249050

git-svn-id: http://skia.googlecode.com/svn/trunk@4046 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPathEffect.cpp
kScalerContext.cpp
kStroke.cpp
49d9fd5fdb9ffd48538c8fc5a2f6f2d43a2e4fe9 23-May-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Plumbing to propagate save & restore from SkCanvas down to GrContext & lower

http://codereview.appspot.com/6203067/



git-svn-id: http://skia.googlecode.com/svn/trunk@4034 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
de1837bb96b0f72dad7482786d6e577013d4a85b 21-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove bogus nearlyzero checks
Review URL: https://codereview.appspot.com/6213060

git-svn-id: http://skia.googlecode.com/svn/trunk@4014 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
7b578928a5705f40cfe051ae1c41c1b2e1df0bdd 21-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ~glyphcache_globals needs to actually delete its cache



git-svn-id: http://skia.googlecode.com/svn/trunk@4011 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kTLS.cpp
5b94153a7b039a9269a8aabbe8f0da0e878e3978 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> minor cleanups, in prep for more work on improving precision



git-svn-id: http://skia.googlecode.com/svn/trunk@3993 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
ebd24962dfdb7a62cf97c0e3938851d56cabd10f 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SkChunkAlloc to grow its allocations geometrically (not linearly)
plus add a bench and unittest for it.



git-svn-id: http://skia.googlecode.com/svn/trunk@3989 2bbb7eff-a529-9590-31e7-b0007b416f81
kChunkAlloc.cpp
803c67dbd766185a1d72eda2561df006d2ecf382 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SetTLSFontCacheLimit to be void, since it doesn't easily know the prev value



git-svn-id: http://skia.googlecode.com/svn/trunk@3987 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
6172d67d1ca81876333d6753e7ce407e2d6d9c3f 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow font-cache to use thread_local_storage for a private cache
Review URL: https://codereview.appspot.com/6200051

git-svn-id: http://skia.googlecode.com/svn/trunk@3986 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
ff0da4ff483ba7b4468b862949ffb3de505cba14 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Mutexes in pixelrefs were done very sloppily initially. The code (a) assumes all
pixelref subclasses want a mutex to guard their lock/unlock virtuals, and (b)
most subclasses use the same mutex for *all* of their instances, even when there
is no explicit need to guard modifying one instances with another.

When we try drawing bitmaps from multiple threads, we are seeing a lot of slow-
down from these mutexes. This CL has two changes to try to speed things up.

1. Add setPreLocked(), for pixelrefs who never need the onLockPixels
virtual to be called. This speeds up those subclasses in multithreaded environs
as it avoids the mutex lock all together (e.g. SkMallocPixelRef).

2. Add setMutex() to allow a subclass to change the mutex choice. ashmem wants
this, since its unflattening constructor cannot pass down the null, it needs
to cleanup afterwards.
Review URL: https://codereview.appspot.com/6199075

git-svn-id: http://skia.googlecode.com/svn/trunk@3985 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcShader.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
115d931d2fbd3a109a21b28c8a9c5099e6c49c54 16-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pass the region-op to the clipstack for SkCanvas::clipRegion.
we were defaulting to intersect all the time (doh).



git-svn-id: http://skia.googlecode.com/svn/trunk@3980 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
a02bc1519cf49afa31fb38bed097dd5014880d04 16-May-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> WeakRefCnt
http://codereview.appspot.com/5649046/


git-svn-id: http://skia.googlecode.com/svn/trunk@3978 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypefaceCache.cpp
kTypefaceCache.h
32aa01e2fe2963990f717845cbfebb647ca5b283 16-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused variable (isNaN)



git-svn-id: http://skia.googlecode.com/svn/trunk@3976 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
4a3b714d73e585a3985d614600c6b79d5c8b1f1e 16-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Iter::next takes a bool (defaults to true for now) if we want to consume degenerates.
path-filling and stroking pass false, as they already are written to handle
small segments (and it makes next() run 2x faster if you pass false).
Review URL: https://codereview.appspot.com/6214049

git-svn-id: http://skia.googlecode.com/svn/trunk@3974 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kPath.cpp
kRegion_path.cpp
kScan_Hairline.cpp
kStroke.cpp
a584aed5f709ff9655fd3326e23cd6f602ac7ae4 16-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> perform quickReject in drawPoints (which is called by drawLine) just like we
already did in drawRect and drawPath



git-svn-id: http://skia.googlecode.com/svn/trunk@3968 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPaint.cpp
e4f10a70807166484e5a6303a5cd0034e5e87aba 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add computeFastBounds to SkPathEffect, so we can attempt quickReject
Review URL: https://codereview.appspot.com/6209070

git-svn-id: http://skia.googlecode.com/svn/trunk@3964 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPathEffect.cpp
9e25dbf589539dd44244bc2581590bd7591e17a2 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove null-check in SKPath::Iter::next() -- not needed, and slows us down a little



git-svn-id: http://skia.googlecode.com/svn/trunk@3944 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
921374d4cc7ee2bf07be0d778ce4ce7414909534 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> for scalar==float, tis faster to always to MIN and MAX, than to put an ELSE
betwixt them.

if (x < min) min = x; else if (x > max) max = x;

This expression forces the compiler to know if the min expression executed, and
insert a conditional jump before the max. Slow.

if (x < min) min = x; if (x > max) max = x;

This version allows the compiler to emitt MINSS and MAXSS unconditionally, giving
us a loop with zero branches inside.



git-svn-id: http://skia.googlecode.com/svn/trunk@3939 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
30d90ebe7c05b7067f5c67bd8278371c2a355b02 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use x*0 instead of x!=x to detect non-finite values, since x*0 also detects infinities
and it is faster (at least faster in SkRect::set).

Add unittest for SkRect::set to see that it correctly detects NaN and infinities.




git-svn-id: http://skia.googlecode.com/svn/trunk@3936 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
2e0d727942c26339425bc5ba26189af070081213 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pre allocate space for the result (guesstimation) so we don't spend extra time
re-growing while we build the stroke.



git-svn-id: http://skia.googlecode.com/svn/trunk@3934 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
129ec22cb054592261e001294c430c9dd4e90ff4 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> inline the fast case for AutoDrawLoop::next() so we don't slow down simple
draws like drawRect (with no fancy effects)



git-svn-id: http://skia.googlecode.com/svn/trunk@3933 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
9f63667ff221b72e96fa6a044ccb0dde12af6ebe 15-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> special-case filling narrow rects, where we can be faster than the SSE2 asm



git-svn-id: http://skia.googlecode.com/svn/trunk@3932 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
18c464b460d062142ab7198724431a4d2ad7070d 11-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> update the nearly_integral calculation to be (a) faster, and (b) to correctly
identify that the AA granularity is 1/4 of a pixel, not 1/16 (along an axis).



git-svn-id: http://skia.googlecode.com/svn/trunk@3919 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
420f74fa720272b1164eae55d7b6c10e07d41601 11-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> only check for nearly-integral if we're a BW clip



git-svn-id: http://skia.googlecode.com/svn/trunk@3915 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
458849004892c05fa1dcbcf6d355dfcce028d77a 11-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> lazily make a copy of the paint when choosing a blitter. For simple draws,
this is never actually needed, and it is faster to skip the copy.



git-svn-id: http://skia.googlecode.com/svn/trunk@3908 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
a1c6ff4922251065c45e3323e17e985a62931fc7 11-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> inline isEmpty and isRect (faster)



git-svn-id: http://skia.googlecode.com/svn/trunk@3907 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
kRasterClip.h
7324415759fe0c5a0902877b664aa942a89bd940 11-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use mapPoints instead of mapXY for the 2 corners of a rect (faster)



git-svn-id: http://skia.googlecode.com/svn/trunk@3906 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
7e6c4d16010550ee148f1c79cf088c0320fed5c1 10-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPath::isLine(), similar to isRect()



git-svn-id: http://skia.googlecode.com/svn/trunk@3892 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
75a0972dd7d0dbc614b9fb81b4450a349c005325 10-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkStrokePathEffect into hiding for now, as its functionality is rethought.



git-svn-id: http://skia.googlecode.com/svn/trunk@3890 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathEffect.cpp
cd4e9fb538393be733ff4ea445ea428f041b21ea 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't define SK_USE_LEGACY_AA_COVERAGE, so that we can get the more exact
coverage values (which also unifies our RLE and MASK supersampler results).

Chrome will want to define SK_USE_LEGACY_AA_COVERAGE for now, until it can
rebaseline its affected images.

A rebaseline of skia gm images will follow.



git-svn-id: http://skia.googlecode.com/svn/trunk@3877 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
5b7d603e179a38735056db5f9092d18c187e76a0 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> invert sense of conditional EXACT_COVERAGE, renaming to LEGACY_AA_COVERAGE



git-svn-id: http://skia.googlecode.com/svn/trunk@3876 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
a869248bf8fa8d3649b71440d43e7a510f87380b 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete comments



git-svn-id: http://skia.googlecode.com/svn/trunk@3875 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
08e791194a9c020b8e2991fff71688c77eeab0bc 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add assert



git-svn-id: http://skia.googlecode.com/svn/trunk@3874 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
6997e5d282fd9fa8e0d0afea7f3bd10dee96056e 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead conditional
Review URL: https://codereview.appspot.com/6197065

git-svn-id: http://skia.googlecode.com/svn/trunk@3873 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
0a71a9cc372c2fd42e3b1623321878aaa27aa103 09-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> experimental faster sort



git-svn-id: http://skia.googlecode.com/svn/trunk@3872 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
331e2dc8eb69b093bf012d8dcd1ab652d67fc36b 08-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add flag/hint to PlatformGetSpecific. If true, then the caller requires that
the tls slot be allocated even if this is the first, to ensure that it can
later call PlatformSetSpecific. When this is false (which is most of the time)
the implementation may optimize by not even creating the slot, and just
returning null.



git-svn-id: http://skia.googlecode.com/svn/trunk@3871 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLS.cpp
kTLS.h
c6ce750c73c6586a5c2e88a0620b04e9569af401 08-May-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed some fixed point build Windows compiler complaints

http://codereview.appspot.com/6197063/



git-svn-id: http://skia.googlecode.com/svn/trunk@3867 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
83edde21f3945f988656c023384bd33e87f8b48d 08-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> mirror of https://codereview.appspot.com/6188054/
fix double->float conversion warning



git-svn-id: http://skia.googlecode.com/svn/trunk@3866 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
0389d93314ed8f706ba7adc4969110712b67416b 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused ptr/len parameters from CreateTypeface
Review URL: https://codereview.appspot.com/6201056

git-svn-id: http://skia.googlecode.com/svn/trunk@3862 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
48ca7e37ef684dea5271b8d779c1ccc66b9bf275 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> impl SkTLS for windows, refactoring to share code with pthread impl



git-svn-id: http://skia.googlecode.com/svn/trunk@3859 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLS.cpp
kTLS.h
82d447d4f193f10a5ea77a0bcb5737fc35fb340d 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert TLS change (until we impl windows backend)



git-svn-id: http://skia.googlecode.com/svn/trunk@3858 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
09dcf754ff979dd30c3a1bd4443b54d99562fff0 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow thread-local font cache
Review URL: https://codereview.appspot.com/6101053

git-svn-id: http://skia.googlecode.com/svn/trunk@3857 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
92fde90d9b5bfa07ba22be816f558434e7b07a93 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkTQSort (stolen from cary's experimental work)



git-svn-id: http://skia.googlecode.com/svn/trunk@3854 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
c7a67cb57e43f8e140c7bd21318b5ad3e2db6b2f 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Just use std qsort
Review URL: https://codereview.appspot.com/6195052

git-svn-id: http://skia.googlecode.com/svn/trunk@3846 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_path.cpp
kTSearch.cpp
e3987da2d293c4a6d0ccaac1c4066c20fb652ee6 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make CanNormalize inline for the float build (big speedup for PathIter)



git-svn-id: http://skia.googlecode.com/svn/trunk@3845 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
c1992933f1d97edd3f2f4c7dcbd81ffea6f6c1d8 04-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix/revert the unsigned-shift change made to clamp in 3836. For clamp we want
to see the negatives, so we must have a signed shift.



git-svn-id: http://skia.googlecode.com/svn/trunk@3839 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
99c114e0ac732ba01705e24d12f5e4dd7e144abd 03-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> We were numerically overflowing our 16bit coordinates that we communicate
between these two procs. The fixes was in two parts:

1. Just don't draw bitmaps larger than 64K-1 in width or height, since we
can't represent those coordinates in our transport format (yet).
2. Perform an unsigned shift during the calculation, so we don't get
sign-extension bleed when packing the two values (X,Y) into our 32bit
slot.
Review URL: https://codereview.appspot.com/6173046

git-svn-id: http://skia.googlecode.com/svn/trunk@3836 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState_matrixProcs.cpp
5f7c8a55eeb6c15b563166b44b86484d9b039375 03-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> restore extra slot in sentinal array that was removed in 3825. This extra value
is read, but not acted-upon, by spanRec.init(), and so we need to have a valid
address/slot allocated.

Caught by the remoting_unittests in chrome run using ASAN.
Review URL: https://codereview.appspot.com/6176045

git-svn-id: http://skia.googlecode.com/svn/trunk@3830 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
58b8d4a7a861604474f77875e0236da271cac81c 03-May-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> recreate http://codereview.appspot.com/6131051/ in svn instead of git
Review URL: https://codereview.appspot.com/6181044

git-svn-id: http://skia.googlecode.com/svn/trunk@3829 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
kStroke.h
9c36a76102453db964cb6e51078a3d74d4126b2c 02-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> store x-interval-count per scanline, so we can skip lines in O(1)
Review URL: https://codereview.appspot.com/6147043

git-svn-id: http://skia.googlecode.com/svn/trunk@3825 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
kRegionPriv.h
kRegion_path.cpp
ccfee2a3620e32053b4bf635f0e31e31018dcd96 01-May-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing null device checks in SkCanvas
Review URL: https://codereview.appspot.com/6092056

git-svn-id: http://skia.googlecode.com/svn/trunk@3810 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
9d5f76a250502620952d4aaa2926ff5bfeffc980 01-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bug (and add test) for drawing an inverse-path whose bounds do intersect
the clip, but whose edges do not (e.g. a curve). We used to overdraw a section
(and assert).



git-svn-id: http://skia.googlecode.com/svn/trunk@3809 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
af7e6943b74260ff9038bfbe0f8c50cf66657e83 01-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> record yspancount and intervalcount in regions
Review URL: https://codereview.appspot.com/6132055

git-svn-id: http://skia.googlecode.com/svn/trunk@3808 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
kRegionPriv.h
kRegion_path.cpp
a95ea2c518577a6696dc0b786ad3aaf7315af850 30-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> code-style cleanups only



git-svn-id: http://skia.googlecode.com/svn/trunk@3796 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegionPriv.h
c34f53db60d8d5312fb1a78ebb9f82224a9d70e5 30-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> just coding style fixes, no logic change
Review URL: https://codereview.appspot.com/6141043

git-svn-id: http://skia.googlecode.com/svn/trunk@3794 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
7d4aee34e23e536e1115f132d20a20fb629bb66a 30-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Variant of SkRegion::op (called Oper) that either writes the result into a 3rd
region (normal mode) or does a quick-return if the result will be non-empty
(called for predicates like contains() and intersects()).

git-svn-id: http://skia.googlecode.com/svn/trunk@3791 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
ded44149856373072a8c6d2b2eacb213a1273a6e 27-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Apply fix from #3739 to quads and cubics as well
Fixes http://code.google.com/p/chromium/issues/detail?id=125249
Review URL: https://codereview.appspot.com/6137046

git-svn-id: http://skia.googlecode.com/svn/trunk@3786 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
c4ae974db67977e766b66fb42e58e088c6381e29 27-Apr-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkString.contains()
Review URL: https://codereview.appspot.com/6130046

git-svn-id: http://skia.googlecode.com/svn/trunk@3781 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
7460b378d68217167013ca889a4cdcae742908e7 25-Apr-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed minor Release & fixed point compiler warnings on Linux

http://codereview.appspot.com/6118050/



git-svn-id: http://skia.googlecode.com/svn/trunk@3766 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
566c837844ba211391448ba59f1dc7ec19a61d0c 24-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use new storage parameter to SkOrderedWriteBuffer (to avoid small dynamic allocs)



git-svn-id: http://skia.googlecode.com/svn/trunk@3760 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
e49aca968ca27d90ca919a972a86839ecaf1224a 24-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional storage parameter to SkWriter32



git-svn-id: http://skia.googlecode.com/svn/trunk@3759 2bbb7eff-a529-9590-31e7-b0007b416f81
kOrderedWriteBuffer.cpp
kWriter32.cpp
ae1b6b61ce1033cd9ba65667bfc51b4936feaf83 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkTLS::Delete



git-svn-id: http://skia.googlecode.com/svn/trunk@3752 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLS.h
098370137fc9c13acf1631bcc16d9ffbb0abf45f 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move FontCacheLimit implementations into SkGlyphCache.cpp, in prep for TLS
Review URL: https://codereview.appspot.com/6110043

git-svn-id: http://skia.googlecode.com/svn/trunk@3751 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kGraphics.cpp
331560e461a5ea12ebf2f0fba2371d0944b3a3a3 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix debug build



git-svn-id: http://skia.googlecode.com/svn/trunk@3750 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
eb9a9bfc73d7fa03e2dab16dd4734290a738e9e7 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> cleanups in prep for tls cache
Review URL: https://codereview.appspot.com/6109045

git-svn-id: http://skia.googlecode.com/svn/trunk@3749 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
e6f7d6821fa3cd836e0af6596d8a15e961ebd2e3 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add experimental tls (for font cache eventually)



git-svn-id: http://skia.googlecode.com/svn/trunk@3748 2bbb7eff-a529-9590-31e7-b0007b416f81
kTLS.h
fab1ddd3a8893db58b2ce0afd28ecc73412ee871 20-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> only add pathmeasure segment if the accumulated length was actually changed,
and not based on if the local length was > 0. This is necessary since

assert(delta > 0); // true
prevDistance = distance;
distance += delta;
assert(distance > prevDistance); // not always true

Fixes https://bugs.webkit.org/show_bug.cgi?id=78979



git-svn-id: http://skia.googlecode.com/svn/trunk@3739 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
bb39a297727fd70ba6b690b8bdfc62200854df86 18-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> mirror 3713 for non-antialiased-hairlines. clamp lines to 32K to avoid fixedpoint overflow
fixes crbug.com/123105



git-svn-id: http://skia.googlecode.com/svn/trunk@3729 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Hairline.cpp
a4b0d139e34e9d06bff0828adfb66fdfed9141c4 18-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speculative fix for debug/release problem on windows with mirror bitmaps
Review URL: https://codereview.appspot.com/6063051

git-svn-id: http://skia.googlecode.com/svn/trunk@3728 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
aeb07864052fde0acba0ae1a42a01db3407f1f6e 18-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> inline common case when we are left-aligned in drawPosText
Review URL: https://codereview.appspot.com/6051051

git-svn-id: http://skia.googlecode.com/svn/trunk@3727 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
2d8c757f5c169108a9557de1c95d17790cc31eed 18-Apr-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unecessary virtual calls by having SkPicture use SkReader32 directly.
Review URL: https://codereview.appspot.com/6048046

git-svn-id: http://skia.googlecode.com/svn/trunk@3722 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
6aa2965ca814dd3329b65398b5c5af980e54b101 18-Apr-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Track oval in SkPath

Committed on behalf of Guanqun.Lu@gmail.com

Review URL:http://codereview.appspot.com/6012047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3716 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
99b300ed9dcd09db544dd985cdd95a2ea284cb7c 17-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> chop hairlines against 32K bounds, since that is our limit (currently)
for a fixedpoint implementation.



git-svn-id: http://skia.googlecode.com/svn/trunk@3713 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
f11508d7f4aae52739b9c4f3bb2da2fd78fa23d9 17-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> expose font-table APIs to SkTypeface
Review URL: https://codereview.appspot.com/6050046

git-svn-id: http://skia.googlecode.com/svn/trunk@3707 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
f3488ebaac4a553be5462e073c3cf5a6ce719151 17-Apr-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r3705 for fixed pt failures.



git-svn-id: http://skia.googlecode.com/svn/trunk@3706 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c047d414a4a1ecdc5d6d12d31eea9323e06b851e 17-Apr-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> track oval in SkPath

Committed on behalf of Guanqun.Lu@gmail.com

Review URL: http://codereview.appspot.com/6012047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3705 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
bddbc45b0b7e279a3e6f151638dfbf3c4e4ad3c1 17-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> we have to explicitly pin the results from sect_with_horizontal, since even with
doubles we can get the wrong results (computed X value outside of [start...stop].

added regression test inside the code

fixes bug in Fuzzer samplecode



git-svn-id: http://skia.googlecode.com/svn/trunk@3704 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
fffb2f1bda1982d451bc249743b8cc414995d6a8 16-Apr-2012 justinlin@google.com <justinlin@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SK_SYSTEM_ZLIB define.

Review URL: https://codereview.appspot.com/5991067

git-svn-id: http://skia.googlecode.com/svn/trunk@3699 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
10d02b6ba9f626af5a26a82c288e1beb0002914d 16-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> need to invert the alpha computation for single scanline on innerfill
found by Fuzzer



git-svn-id: http://skia.googlecode.com/svn/trunk@3694 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
a90aa534986ffa2019b6a99260bbba086a5c608e 16-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix clamping when we chop a cubic
Review URL: https://codereview.appspot.com/6039048

git-svn-id: http://skia.googlecode.com/svn/trunk@3691 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
90bf427001fd4f6d9fcee88911deb015aeb4ab7c 14-Apr-2012 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> proper handling if SkMatrix::invert failes, addresses hack fix in rev. 3657



git-svn-id: http://skia.googlecode.com/svn/trunk@3679 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e01403096cc8fc15217d7de08c476c2056d8b9d0 13-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pin the edge points to the clip, rather than just calling clamp_ge/le in the
quad chopper. This fixes some gaps we were seeing when the float match lost
precisions.

fixes http://code.google.com/p/skia/issues/detail?id=533



git-svn-id: http://skia.googlecode.com/svn/trunk@3677 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
90c07ea1d0aa6b7f20252c43fe23ee5ddc1d23cb 13-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> replace getTotalClipStack() with replayClips()+ClipVisitor



git-svn-id: http://skia.googlecode.com/svn/trunk@3670 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2eb5bb1e28d61dd24fac1d730cc92e89c5748c4e 12-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> can't perform fast top_bottom cull if the text is vertical



git-svn-id: http://skia.googlecode.com/svn/trunk@3659 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
17b6ba41f2144cd3ff446d52da9df23ca7d77b90 12-Apr-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reinstate early out from antialiased path rendering if we anticipate
overflow (or if the path is completely clipped out).

Fixes http://code.google.com/p/chromium/issues/detail?id=121405
Reviewed at http://codereview.appspot.com/5989070/



git-svn-id: http://skia.googlecode.com/svn/trunk@3658 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
fc9a3be3d2b97aba6aad27e0b9a9f105f08287b9 12-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> always check the result of SkMatrix::invert



git-svn-id: http://skia.googlecode.com/svn/trunk@3657 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
8f17b0d5e14fa336f65e33ecf30f15929aa75790 12-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect when pathmeasure fails, and don't access uninitialized tangent



git-svn-id: http://skia.googlecode.com/svn/trunk@3655 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
2b2ede3e713065e1bac461787b0aafb03eaf871f 12-Apr-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Decouple the SkFlattenable from SkReader32/SkWriter32.

The current impl for SkFlattenable read/write buffers is
that they extend from SkReader32 and SkWriter32, but that
dependency must be abstract if we are to add any other
serialization format.
Review URL: https://codereview.appspot.com/5999045

git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kOrderedReadBuffer.cpp
kOrderedWriteBuffer.cpp
kPaint.cpp
kPathHeap.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kScalerContext.cpp
kShader.cpp
94fa43c6255906660c2ff001fb462b6492cbdc07 11-Apr-2012 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkPathStroker::lineTo() for line with length SK_ScalarNearlyZero
Review URL: https://codereview.appspot.com/5992077

git-svn-id: http://skia.googlecode.com/svn/trunk@3650 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
c967795b8f63bda26b76694e08a642136e22cb5b 10-Apr-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make it possible to share a comparison func with both SkTSearch and SkQSort

Review URL: http://codereview.appspot.com/6006043/



git-svn-id: http://skia.googlecode.com/svn/trunk@3648 2bbb7eff-a529-9590-31e7-b0007b416f81
kPtrRecorder.cpp
43e384bbe5d1940d3a7a6f1648262366818a7dce 10-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Since we only have 1 proc for SA8_alpha_D32 (i.e. no opaque special-case) we
remove the bogus assert from CHECKSTATE.



git-svn-id: http://skia.googlecode.com/svn/trunk@3646 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
5efe0cb04961ef98fbe520ee732fbe50b4195ad3 10-Apr-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up more Visual Studio warnings, including apparent bug in Arithmetic mode.



git-svn-id: http://skia.googlecode.com/svn/trunk@3645 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kGeometry.cpp
kPicturePlayback.cpp
9575fb8b1d505572dd9808af1697921fe48c021e 09-Apr-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Stroked text should check inverse return.
http://codereview.appspot.com/5986067/


git-svn-id: http://skia.googlecode.com/svn/trunk@3633 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
09042b80d22837c760bb530124aaa67469b19b8f 06-Apr-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing Windows compiler complaints

http://codereview.appspot.com/5991056/



git-svn-id: http://skia.googlecode.com/svn/trunk@3626 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceProfile.cpp
b0a7ace7cb2a7559bbc254a7c93698bc71bbd245 05-Apr-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Renaming SkCanvas::fLayerCount to fSaveLayerCount for readability

REVIEW=http://codereview.appspot.com/5992047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3619 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2ac4ef5e6e0c9c95c9200408ba25a95ca758eac2 04-Apr-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing the drawing of blurred shodows for hairline paths with software rendering

BUG=http://code.google.com/p/chromium/issues/detail?id=121251
REVIEW=http://codereview.appspot.com/5981053/



git-svn-id: http://skia.googlecode.com/svn/trunk@3592 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kMaskFilter.cpp
kRasterizer.cpp
bbbe9ed59ee1d3077fa4e6368a4a7294240a5ec6 30-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rm obsolete build-flag SK_IGNORE_HAIRLINE_CLIP_FIX



git-svn-id: http://skia.googlecode.com/svn/trunk@3567 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
8a812c252d9206f0d2b1bb691d6b1d45c70e2e8b 30-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for integer-nan (0x8000...) and don't draw those as antihairlines



git-svn-id: http://skia.googlecode.com/svn/trunk@3558 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
54924243c1b65b3ee6d8fa064b50a9b1bb2a19a5 29-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup code related to SkFlattenable::flatten()

The following changes were made by this CL:

1. Make flatten() a protected method as callers should use
SkFlattenableWriteBuffer to flatten an object
2. Make flatten a const method (including subclasses)
3. Mark subclass implementation of flatten with SK_OVERRIDE
4. Ensure overridden flatten impls call their parent
5. Remove no-op implementations of flatten from subclasses

Additionally, if necessary the unflattening constructor was
also moved to the protected section of the subclasses
header if it was not already there.

git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter.cpp
kColorFilter.cpp
kComposeShader.cpp
kFlattenable.cpp
kMallocPixelRef.cpp
kPathEffect.cpp
kPixelRef.cpp
kRasterizer.cpp
kShader.cpp
kShape.cpp
kXfermode.cpp
5370cd969d8f3957e4306068e6195ac1bca3d6cd 28-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Consolidate PixelRef flattables with the standard impl

The flatten method on these functions can no longer be
const as SkFlattenables declaration is not const and
would result in the const methods only being called when
the reference to the object was const.
Review URL: https://codereview.appspot.com/5941043

git-svn-id: http://skia.googlecode.com/svn/trunk@3533 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kGraphics.cpp
kMallocPixelRef.cpp
kPixelRef.cpp
a728e35edcffd99216e3965a4b908ad0df7f69c2 28-Mar-2012 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a bunch of Coverity defects - class members not initialized in the constructor.

CID=14533,14036,9275,9271,4156,4153,4151,1666,1665,1618,1617,1616,1615

Review URL: https://codereview.appspot.com/5940049

git-svn-id: http://skia.googlecode.com/svn/trunk@3532 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapSampler.cpp
kCubicClipper.cpp
kMMapStream.cpp
kQuadClipper.cpp
42aea289cbf801997b653a906a37a7f7e948b645 28-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle null-device correctly in setDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@3518 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
19224c3d7903921ca86c856cc42adb31fc3164a9 28-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a memory leak in SkAAClip::translate().
Originally proposed by Jochen Eisinger.

http://codereview.appspot.com/5934053/



git-svn-id: http://skia.googlecode.com/svn/trunk@3517 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
9fe287bd07baa6d9e890b627c102bba562954f7d 27-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add debuggin matrix-proc to validate its output before calling the samplers
Review URL: https://codereview.appspot.com/5901063

git-svn-id: http://skia.googlecode.com/svn/trunk@3505 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
ba28d03e94dc221d6a803bf2a84a420b9159255c 26-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create macro for registering classes for deserialization
Review URL: https://codereview.appspot.com/5909063

git-svn-id: http://skia.googlecode.com/svn/trunk@3494 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.h
kBlitter.cpp
kDraw.cpp
kPathEffect.cpp
kShader.cpp
kShape.cpp
kXfermode.cpp
d43b0a87f85ca26ec771e094c62df33b0537b563 26-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make use of the functions in the flattenable reader/writer
Review URL: https://codereview.appspot.com/5905066

git-svn-id: http://skia.googlecode.com/svn/trunk@3493 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a2ca41e3afdd8fad5e0e924dec029f33918e0a67 23-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup Macros arround static initializers for SkFlattenable.

This CL also removes an unused debugging function from the class
Review URL: https://codereview.appspot.com/5890043

git-svn-id: http://skia.googlecode.com/svn/trunk@3483 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.h
kFlattenable.cpp
kPathEffect.cpp
kShader.cpp
8926b169f6a0dfa4c2129a98ec2aee205f0c8527 23-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> apply imagefilter to all draw calls
Review URL: https://codereview.appspot.com/5856048

git-svn-id: http://skia.googlecode.com/svn/trunk@3476 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
6db75fc2c393ba86a3f533597a8bcd348477e79c 23-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialize margin, which was being used uninitialized in compute_bounds()
on some code paths we apparently aren't exercising.
Caught by Matt Woodrow & gwright@kde.org

http://codereview.appspot.com/5519056/
http://code.google.com/p/skia/issues/detail?id=435



git-svn-id: http://skia.googlecode.com/svn/trunk@3474 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e63793a2c8d2871bf7d95195be7b93ff669688d7 21-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream changes from Android repository.
Review URL: https://codereview.appspot.com/5752055

git-svn-id: http://skia.googlecode.com/svn/trunk@3449 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
599445130cbb6c4ed6ded7a01c8d9dafef7ace47 20-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkClampRange into src/effects, where it isn't being advertised as
something for end-users.

http://codereview.appspot.com/5864044/



git-svn-id: http://skia.googlecode.com/svn/trunk@3445 2bbb7eff-a529-9590-31e7-b0007b416f81
kClampRange.cpp
166e653f67f3fffc3846184a25ce45ab083f07a2 20-Mar-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix scaling issue when drawing text on a path.

If the paint is stroked and the font size is small
we were incorrectly rendering the sample text.
Review URL: https://codereview.appspot.com/5844060

git-svn-id: http://skia.googlecode.com/svn/trunk@3437 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPaint.cpp
0b53d59a24f667350b4282f88470713902409030 19-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional updateMatrixClip param to getTopDevice(). Chrome should set this
only when it is needed, and in doing so it can stop using the layeriter just
to get its top device.



git-svn-id: http://skia.googlecode.com/svn/trunk@3432 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
57e080c1eb34253a3fc3829c2b03bb3ee63e006f 19-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Another fix to r3423, reinstate blitter code that was commented out for
testing and apparently isn't exercised by any of our GMs or tests.



git-svn-id: http://skia.googlecode.com/svn/trunk@3427 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
8dd90a926a8660da2bacc7af149f4ac5b2e7c64c 19-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> (SSE2) acceleration for rectangular opaque erases.
15% speedup for rectangles < 31 px wide, 5% for larger.

http://codereview.appspot.com/5843050/



git-svn-id: http://skia.googlecode.com/svn/trunk@3423 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
80e1459c32f5f3acbc688ae4f0e046aa283e8c3a 16-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add IRect variant of getBounds()



git-svn-id: http://skia.googlecode.com/svn/trunk@3414 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
86b2e43a33c486a0b150aa14fadf7af8323a11f5 15-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getBounds() helper



git-svn-id: http://skia.googlecode.com/svn/trunk@3409 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
0724f4320d4f8c67d26c77594cca7fd030f4be1d 15-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't clamp the stopScale to 0 unless it originally exceeded the clip. This is
a tweak on the fix in 3366, but in that earlier change, I mistakenly changed
> to >=. This CL just restores the compare to >



git-svn-id: http://skia.googlecode.com/svn/trunk@3400 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
6b2f7ea7f470bd50dc69d331097a647ec03f8070 14-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> tweak gm bounds to better fit the content
remove assert that is too strict if the src is the dst of a prev draw
(where alpha might be 0xFE, even if it *should* be 0xFF)



git-svn-id: http://skia.googlecode.com/svn/trunk@3388 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D4444.cpp
68bc6f7b4510813c1af886d0cdeea2f0f7a2a510 14-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add kUTF32_TextEncoding



git-svn-id: http://skia.googlecode.com/svn/trunk@3387 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
610f716b00f214e4899a102c1bbc1d6a323e114e 14-Mar-2012 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix four memory leaks uncovered by valgrinding gm tests.

All are triggered by PDF code.
Two are missing unref's on SkData.
One is a missing unref on a SkAdvancedTypefaceMetrics.
The last is missing destruction of SkClipStack internal state.

BUG=526

Review URL: https://codereview.appspot.com/5824049

git-svn-id: http://skia.googlecode.com/svn/trunk@3386 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
77613a5038ee73afa1ba245effea05c1cc9db1d4 14-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> enable fractionalint (64bit) math in bitmap procs



git-svn-id: http://skia.googlecode.com/svn/trunk@3381 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
9f79ece67d5aa185eeff28b64f93aba08baa8fdd 13-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add build option to revert hairline-clipping fix from 3366



git-svn-id: http://skia.googlecode.com/svn/trunk@3376 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
adb2e240188ecd3deef2b31f3836f44968d71d65 12-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if we are extending past our clip in antihairlines, don't draw that last
row/col (setting its scale to 0), so we don't violate the clip-rule and
possibly double-draw the last pixel.



git-svn-id: http://skia.googlecode.com/svn/trunk@3366 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
f9f258c65635fb8dcc61e1f39ba84d1a4b4234d7 12-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect all masks, and don't use masksuperblitter with those



git-svn-id: http://skia.googlecode.com/svn/trunk@3364 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
f444e8ccda8905a8ce16bac368e09f205786db31 09-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't flip the fractional bits (low 4) for bilerp when in kMirror_TileMode
Review URL: https://codereview.appspot.com/5795043

git-svn-id: http://skia.googlecode.com/svn/trunk@3357 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
kBitmapProcState_matrixProcs.cpp
4c4337291d873c4f27cb7903645863dc65b98a7b 09-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> If we try to clip against a path and the path only contains a rect, treat it as a clip against a rect.
(Works around a performance issue: JavaScript Canvas2D API only provides canvas.clipPath(), and we don't
optimize path clips nearly as much as we can rects; this shows up more in Ganesh than in the software
rasterizer.)

http://codereview.appspot.com/5795044/



git-svn-id: http://skia.googlecode.com/svn/trunk@3355 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
c5039dd9f19eee4ad960da901cd63cd9a72b1fd4 08-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable 64bit opt for now, as I debug skew failure in DRT



git-svn-id: http://skia.googlecode.com/svn/trunk@3349 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
411215ae2b9a36ff6e262f77d7fb5071cc084f00 08-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> apply FractionalInt improvement to rotated



git-svn-id: http://skia.googlecode.com/svn/trunk@3348 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
4bc0a9db18d58698057b8f38a6f21537aca4ddcf 07-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use higher precision (64bit) fixed-point for matrix proc
Review URL: https://codereview.appspot.com/5772044

git-svn-id: http://skia.googlecode.com/svn/trunk@3336 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
ae29b88deff836d0768f26c5cd76744f39dc5887 06-Mar-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SSSE3 code for drawing rotated bitmaps; produces 25-30% speedup.
Courtesy of Jin Yang.

http://codereview.appspot.com/5704055/



git-svn-id: http://skia.googlecode.com/svn/trunk@3331 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
05054f1a78a697b507580d0025db6c90423e033f 02-Mar-2012 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Erode and dilate image filter effects, CPU and GPU implementations.

Review URL: http://codereview.appspot.com/5656067/



git-svn-id: http://skia.googlecode.com/svn/trunk@3310 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
10d2d4d1062ef56526f187e6716c5e747689b598 01-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move the post cleanup of the rec until after we wack it for maskfilter



git-svn-id: http://skia.googlecode.com/svn/trunk@3297 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
48a4cbc6684b9bb8396708c3275932b51ffa9467 01-Mar-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add experimental files to encapsulate device-level font settings



git-svn-id: http://skia.googlecode.com/svn/trunk@3292 2bbb7eff-a529-9590-31e7-b0007b416f81
kDeviceProfile.cpp
087d5aafb18b88dfc6c6a5dbf59160c8be914e62 29-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix edgecase in chopcubic where we computed duplicate tvalues



git-svn-id: http://skia.googlecode.com/svn/trunk@3285 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
9b0da23f0af145ffd9795b4b55b9527ac050d0b0 29-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bug and add test for aaclip when blitV is called



git-svn-id: http://skia.googlecode.com/svn/trunk@3281 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
aefdd062717dd6182e0f87d727c807af4314d445 29-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SKPaint's defaults (that might be configurable) into a header



git-svn-id: http://skia.googlecode.com/svn/trunk@3280 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPaintDefaults.h
kPathEffect.cpp
kStroke.cpp
d76dafb261629ab425dac89a4fafee19281b1e7e 28-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle checking for large bounds correctly when SkScalar is fixed



git-svn-id: http://skia.googlecode.com/svn/trunk@3274 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
5efaf268931d01498f4f1af63c556d811e5d5797 28-Feb-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 version of ClampX_ClampY_{no}filter_affine, courtesy of Jin Yang.
Speeds up drawing rotated bitmaps by 20-30%.

http://codereview.appspot.com/5700076/



git-svn-id: http://skia.googlecode.com/svn/trunk@3272 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
07db86126a5bc30d4eaf00e69890e89d4add4370 28-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> since SkScalarCeil/Floor do not explicitly detect overflows from float->int,
create special version of roundOut that checks if the result can fit, and if
not we abort the draw. 32bits (or 30 for antialiasing) should be enough for
anyone...



git-svn-id: http://skia.googlecode.com/svn/trunk@3271 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
a4e923824dbdf896209b811f84f3e163d3a4d07d 27-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disable check for large bounds in antipath



git-svn-id: http://skia.googlecode.com/svn/trunk@3267 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
92d2a299d2738e4369508ea1296981a2f1f8aadb 27-Feb-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reapply r3259 (that was reverted) with fix.

The SkASSERT was incorrect and failing on debug runs.
Review URL: https://codereview.appspot.com/5699071

git-svn-id: http://skia.googlecode.com/svn/trunk@3263 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
a907ac3e3e3458fbb5d673c3feafb31fd7647b38 24-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify SkDeferredCanvas so that it uses its inherited SkCanvas to track matrix and clipping state
Removed 'virtual' from a few canvas methods that no longer need it thanks to this change.

BUG=http://code.google.com/p/skia/issues/detail?id=506
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5697052/



git-svn-id: http://skia.googlecode.com/svn/trunk@3261 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
3cc0d8a6f0feb66a60d3edac12c5a12a0e92ae93 24-Feb-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reverting r3259 because of gm/test failure.

git-svn-id: http://skia.googlecode.com/svn/trunk@3260 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
42bbef71c7ccba831caec84a9ab0e3ab15842de7 24-Feb-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Enable quickRejectY in SkCanvas to be inlined.

This CL was tested against the picturePlayback bench and
showed an approx 10-13% improvement on Android when playing
back text.
Review URL: https://codereview.appspot.com/5687083

git-svn-id: http://skia.googlecode.com/svn/trunk@3259 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
0b5b0ce39cea3e0eb83c70278b40fa52b3c5870d 24-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> reverting r3257 because of gm failure.



git-svn-id: http://skia.googlecode.com/svn/trunk@3258 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
421bcc375af0616c37a59b0508957ab54d8f6d12 24-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify SkDeferredCanvas so that it uses its inherited SkCanvas to track matrix and clipping state
Removed 'virtual' from a few canvas methods that no longer need it thanks to this change.

BUG=http://code.google.com/p/skia/issues/detail?id=506
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5697052/



git-svn-id: http://skia.googlecode.com/svn/trunk@3256 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureRecord.cpp
f68c5e2f9f05b3af2bae0979ace2684b6041b6e3 24-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for null-device in iterator



git-svn-id: http://skia.googlecode.com/svn/trunk@3251 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
ffc92488ae7fcb2610e707b5bed1c09b8b4d16aa 23-Feb-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix math in coverage_to_alpha() (renamed coverage_to_partial_alpha()), behind
a #define so that we can stage coping with the huge amount of rebaselining
necessary.

http://codereview.appspot.com/5696049/



git-svn-id: http://skia.googlecode.com/svn/trunk@3243 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
dceecc70a881508998323fd07dba270b07c53d7f 23-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> always allocate (only) the width of the clip for the AA row, since it will
already be clamped to 32K (our impl limit at the moment.)

add unittest to confirm this fix



git-svn-id: http://skia.googlecode.com/svn/trunk@3242 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
8796ee60b79307629c56bf9f3e146833b312b957 23-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove bogus assert (leftover from some long-forgotten debugging session)



git-svn-id: http://skia.googlecode.com/svn/trunk@3240 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
a91e923874ca0565b4f4816b5697dfdcd337b889 23-Feb-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> GPU device preserves pixel values across read/write/read of unpremul pixel values

Review URL: http://codereview.appspot.com/5695047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3237 2bbb7eff-a529-9590-31e7-b0007b416f81
kConfig8888.cpp
kConfig8888.h
fb0d741d69a30d93b623e14ec34b737ee1673884 22-Feb-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use nested template expansions to implement Config8888 conversions.
Review URL: https://codereview.appspot.com/5690068

git-svn-id: http://skia.googlecode.com/svn/trunk@3230 2bbb7eff-a529-9590-31e7-b0007b416f81
kConfig8888.cpp
kConfig8888.h
kDevice.cpp
1cc8f6f3c48b33430d0e39a4a36601ac0d1de04a 22-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding more unit testing for SkCanvas and derived classes.

BUG=http://code.google.com/p/skia/issues/detail?id=481
REVIEW=http://codereview.appspot.com/5674077/
TEST=unit test CanvasTest



git-svn-id: http://skia.googlecode.com/svn/trunk@3228 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.h
06a7313430728b18f2ed92f14b189f3320fb8d13 22-Feb-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 version of ClampX_ClampY_{no}filter_scale; yields 10-20% speedup in
bitmap_8888 benchmarks on top of last week's SSSE3 patch.
Thanks to Jin Yang.

http://codereview.appspot.com/5685055/



git-svn-id: http://skia.googlecode.com/svn/trunk@3227 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
543c719a6d2d8f27f125cb5cb02aaa9c2e563bfd 17-Feb-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r3036. This change breaks loading images as
described in Chromium issue 114107. The Chromium break
may be fixed by WebKit patch 78239, at which time
this patch can be reapplied.
Review URL: https://codereview.appspot.com/5675077

git-svn-id: http://skia.googlecode.com/svn/trunk@3219 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
6c5bf8d9fe6fe263f583a4c22d04e3be879ecfeb 17-Feb-2012 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added BSD license language where missing.
See Chromium bug 98464,
Review URL: https://codereview.appspot.com/5671083

git-svn-id: http://skia.googlecode.com/svn/trunk@3218 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
f0ed80a7ebef9b9c08093390b173e64bf300d7d7 17-Feb-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make cross_prod used in SkPath::cheapComputeDirection fallback to double computation when result is 0. Verbal LGTM from reed.




git-svn-id: http://skia.googlecode.com/svn/trunk@3216 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c2c80c42e269b34f3321bda9c315da5f6bfe9b77 16-Feb-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove two static initializers from debug builds
Review URL: https://codereview.appspot.com/5622046

git-svn-id: http://skia.googlecode.com/svn/trunk@3215 2bbb7eff-a529-9590-31e7-b0007b416f81
kTextFormatParams.h
302b861338a626014153cc7368c54edbc646cfe5 16-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> be sure to mark fLastY with the bottom of the rect in blitRect



git-svn-id: http://skia.googlecode.com/svn/trunk@3210 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
80cdb9a2139bdc6cb15b5bfb06ed9fc3e33bb39b 16-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> aaclip needs to handle paths with holes
Review URL: https://codereview.appspot.com/5671066

git-svn-id: http://skia.googlecode.com/svn/trunk@3209 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
897fc41934e6aecec62f89d093c93b917cfa5345 16-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add a todo



git-svn-id: http://skia.googlecode.com/svn/trunk@3208 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
ee51d1a6e43615ae640410013c36d2d9873e6aa5 16-Feb-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix TypefaceCache races.
http://codereview.appspot.com/5656066/


git-svn-id: http://skia.googlecode.com/svn/trunk@3205 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypefaceCache.cpp
kTypefaceCache.h
60abb078e5597c9c6ceaba1ef495c4916ff4df0d 15-Feb-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Merge changes from the android repo upstream to Skia
Review URL: https://codereview.appspot.com/5545070

git-svn-id: http://skia.googlecode.com/svn/trunk@3199 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kGlyphCache.h
kPaint.cpp
kScalerContext.cpp
dd43df99b16b67f7b00457b7fff4b2539da40702 15-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> suport A8 grayscale text with COLOR_LUMINANCE build option



git-svn-id: http://skia.googlecode.com/svn/trunk@3197 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
d6770e69e05c9dcc12f2a1a2d509c0b174372ee7 14-Feb-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 version of blit_lcd16, courtesy of Jin Yang.
Yields 25-30% speedup on Windows (32b), 4-7% on Linux (64b, less register
pressure), not invoked on Mac (lcd text is 32b instead of 16b).

Followup: GDI system settings on Windows can suppress LCD text for small
fonts, interfering with our benchmarks.
(http://code.google.com/p/skia/issues/detail?id=483)

http://codereview.appspot.com/5617058/



git-svn-id: http://skia.googlecode.com/svn/trunk@3189 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask.h
kBlitMask_D32.cpp
8f9ecbd3466d4330886b4c23b06e75b468c795ad 13-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding API and unit testing for deferred canvas clearing/purging

REVIEW=http://codereview.appspot.com/5646057/
TEST=DeferredCanvas unit test



git-svn-id: http://skia.googlecode.com/svn/trunk@3181 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
813d38b7a07957f2990ccca52ddab55fe0b1c632 13-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if SK_USE_COLOR_LUMINANCE is defined, then we store 2 bits of each component
to create a per-component-luminance value for the fonthost to use. Only supported
on Mac at the moment (but still disabled by default)



git-svn-id: http://skia.googlecode.com/svn/trunk@3180 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ce6dbb6b4ce3f36e0a2245b215dc48b68df35c41 10-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> enable color-luminance in font cache (disabled by default)



git-svn-id: http://skia.googlecode.com/svn/trunk@3168 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
1f9767c03bad1ef85e5388d84e23e4b5dff4bc1a 07-Feb-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing backing store access in SkDeferredCanvas.
Chromium CL required for rolling skia DEPS past this change is posted here: https://chromiumcodereview.appspot.com/9341003/

BUG=http://code.google.com/p/skia/issues/detail?id=475
REVIEW=http://codereview.appspot.com/5626047/
TEST=DeferredCanvas unit test



git-svn-id: http://skia.googlecode.com/svn/trunk@3147 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
0a9cc44a40a2bc101da1af89926152098ffcc44b 06-Feb-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use macro SkFixedRoundToInt where necessary

http://codereview.appspot.com/5617047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3142 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
f3bf18b2559efbcf835ab4f4f21e3e384f4e25f0 02-Feb-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't change convexity status of a path after a moveTo

Review URL: http://codereview.appspot.com/5581048/


git-svn-id: http://skia.googlecode.com/svn/trunk@3127 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
fb6f0f6f18cd515af85bb71e688e8530edd92827 31-Jan-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When adding a convex shape to a path, mark path as convex if path is initially degenerate.

Review URL: http://codereview.appspot.com/5504073/



git-svn-id: http://skia.googlecode.com/svn/trunk@3124 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
3e44e4d1beaf8e5fd6114ef392af5cab132b9f23 31-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fall through to cross-product if the y-max-baseline returns a degenerate line
(i.e. maxIndex == minIndex)



git-svn-id: http://skia.googlecode.com/svn/trunk@3119 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c1ea60a9ea63fc590f11f49cd0d744e061891985 31-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle multiple points all at the y-max when computing direction



git-svn-id: http://skia.googlecode.com/svn/trunk@3116 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ac8543ff574cb08ad46bee691d64e31fe31339e5 30-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use contour with global ymax to determine direction



git-svn-id: http://skia.googlecode.com/svn/trunk@3110 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
fa4d5bd09f8f1a4a92b5ae0324800dd672760898 30-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add bandage to pin out-of-range values when converting our integral clip bounds to
a SkRect (when SkScalar==fixed). Eliminates a (valid) assert, but does not really
return the "correct" value (which can't be represented in SkRect).



git-svn-id: http://skia.googlecode.com/svn/trunk@3105 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
5546ef2dd9edad601383b85907f677118f857332 30-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> inject a 32767 bounded cliprect before using SuperSampler blitter, to avoid
crash/assert when our run-array is larger than int16_t. Better fix may be to
"tile" the drawing, so we never see a clip that's too wide, and perhaps this
technique can help us avoid disabling AA for large parths (not sure tho).



git-svn-id: http://skia.googlecode.com/svn/trunk@3104 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
9efd9a048aebaa6681afb76b18e1a7dd642078d3 30-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> extend fastbounds impls to include maskfilters and drawloopers. This allows
us to perform quick-rejects when drawing objects with shadows (esp. text).
WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the
shadow layer.



git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kMaskFilter.cpp
kPaint.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
bf6c1e4aff4d233f6502157fb73459cf69d0ab37 30-Jan-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding a flush method to SkCanvas

BUG=http://code.google.com/p/skia/issues/detail?id=467
REVIEW=http://codereview.appspot.com/5600044/
TEST=gm uses the new code path on all its test cases



git-svn-id: http://skia.googlecode.com/svn/trunk@3102 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
74b461961607fa57a150a9282c410ef0cab38764 28-Jan-2012 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Formatting cleanup: remove extra whitespace

Change by arthurhsu@chromium.org, original CL: http://codereview.appspot.com/5587049/

Review URL: https://codereview.appspot.com/5594043

git-svn-id: http://skia.googlecode.com/svn/trunk@3098 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
1771cbf43d9a1334e3d870c635b4215bb888dd98 26-Jan-2012 digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> posix: Avoid static initializers in static/global mutexes

This patch removes static initializers related to static and
global mutexes from the final library's machine code when
building on a pthread-capable system.

We use PTHREAD_MUTEX_INITIALIZER to perform POD-style
initialization. You need a line like the following to declare
a global mutex with it:

SkBaseMutex gMutex = { PTHREAD_MUTEX_INITIALIZER };

We introduce the SK_DECLARE_STATIC_MUTEX and SK_DECLARE_GLOBAL_MUTEX
macros to be able to declare static/global mutexes in the source tree
uniformly.

SkMutex is now defined as a sub-class of SkBaseMutex, with standard
construction/destruction semantics. This is useful if the mutex
object is a member of another C++ class, or allocated dynamically.

We also modify a few places to refer to SkBaseMutex instead of a
SkMutex, where it makes sense. Generally speaking, client code
should hold and use pointers to SkBaseMutex whenever they can
now.

We defined a new built-time macro named SK_USE_POSIX_THREADS
to indicate that we're using a pthread-based SkThread.h
interface. The macro will also be used in future patches
to implement other helper thread synchronization classes.

Finally, we inline the acquire() and release() functions in the
case of Posix to improve performance a bit.

Running: 'bench -repeat 10 -match mutex' on an Android device or
a 2.4GHz Xeon Linux desktop shows the following improvements:

Before After

Galaxy Nexus 1.64 1.45
Nexus S 1.47 1.16
Xoom 1.86 1.66
Xeon 0.36 0.31

This removes 5 static mutex initializers from the library
Review URL: https://codereview.appspot.com/5501066

git-svn-id: http://skia.googlecode.com/svn/trunk@3091 2bbb7eff-a529-9590-31e7-b0007b416f81
kMemory_stdlib.cpp
kPixelRef.cpp
kTypefaceCache.cpp
6d428d3e6e4238786a38caca6002dae92637958d 25-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkRegion::operator== a member function, rather than a privately-declared
friend. Without this, calling code has access to operator==, but can fail to
link because the implementation is assumed to have static linkage.

http://codereview.appspot.com/5577047/



git-svn-id: http://skia.googlecode.com/svn/trunk@3088 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
8887be06192f85ad3c7c11df04dc03428627c76b 25-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable SPEW_PURGE_STATUS



git-svn-id: http://skia.googlecode.com/svn/trunk@3085 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
fde6b414d9cbfb69c7c3b046dab78e748d8d2ed4 19-Jan-2012 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup of SkPath code to remove SK_OLD_EMPTY_PATH_BEHAVIOR and other
dead code. The patch also renames kAfterClose_SegmentState for the
SkPath::Iter class, to kEmptyContour_SegmentState which more
accurately reflects the meaning of the state. The Iter can be in that
state initially, before anything has been seen, let alone a close.

BUG=445

TEST=Covered by existing tests.
Review URL: https://codereview.appspot.com/5532091

git-svn-id: http://skia.googlecode.com/svn/trunk@3074 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
13e812c69a9e2b2550871573786fc72b17bdd766 18-Jan-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Interpolate vertical linear gradients for improved quality.
Consolidate interpolation functions, add new faster more accurate dithering
interpolator.



git-svn-id: http://skia.googlecode.com/svn/trunk@3072 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
dd1be60702b3622f49d97651e31d13eaf2175cf8 18-Jan-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Pull xfer mode test out of generic draw-as-hairline test. Use coverage rather than alpha to draw hairlines < 1pix wide in GPU.

Review URL: http://codereview.appspot.com/5528112/




git-svn-id: http://skia.googlecode.com/svn/trunk@3070 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
a6d04d90e2f0a35698a7380cef8d622a8ee0b33f 18-Jan-2012 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing the behavior of SkPathMeasure to reflect changes in SkPath::Iter.
This implementation modifies SkPath::Iter extensively to avoid copying
the points when used to measure path length.

BUG=446
TEST=tests/PathMeasureTest.cpp
Review URL: https://codereview.appspot.com/5533074

git-svn-id: http://skia.googlecode.com/svn/trunk@3062 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathMeasure.cpp
8351aabbfe82a76a698fa2bde00d33c1174518cd 18-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add GenA8FromLCD as a hack to force GDI to create the A8 mask from the LCD
results, rather than asking GDI directly for A8 (which it sometimes decides
to interpret as BW)



git-svn-id: http://skia.googlecode.com/svn/trunk@3061 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
4370aedf7f55af74e9ebb4ad1c2e010c08236dfa 18-Jan-2012 junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding class SkDeferredCanvas for deferred rendering.

TEST=added a new pass to gm, so all gm tests are run through SkDeferredCanvas
REVIEW=http://codereview.appspot.com/5430058/



git-svn-id: http://skia.googlecode.com/svn/trunk@3059 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
188bfcf7666f4d264329063fd9bf5c44e7734fd8 17-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if the y-max has neighbors (prev and next) with the same Y values, then the
cross will be 0, but we can still know the direction by looking at the change
in X

Fixes the hypen in #7 of this bug http://code.google.com/p/chromium/issues/detail?id=109370



git-svn-id: http://skia.googlecode.com/svn/trunk@3049 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
0eb7576c659a165f1d73b6b7ddfd43dc3782f62b 16-Jan-2012 skyostil@google.com <skyostil@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify SkBitmap::extractSubset() to respect volatility

The resulting subset bitmap will always have the same volatility flag as the
source bitmap.

BUG=452
Review URL: http://codereview.appspot.com/5544052

git-svn-id: http://skia.googlecode.com/svn/trunk@3039 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
2211b623274e24d0025763cfa855c9eb53d5b900 13-Jan-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Subpixel text 3/8 of a pixel too far to the right.
http://codereview.appspot.com/5502097/


git-svn-id: http://skia.googlecode.com/svn/trunk@3037 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
ce7adb580ee7cc608e1049732b1ebb3f0533df4a 13-Jan-2012 skyostil@google.com <skyostil@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Modify SkBitmap::extractSubset() to respect opaqueness

The resulting subset bitmap will always have the same opaqueness flag as the
source bitmap.

BUG=439
Review URL: http://codereview.appspot.com/5534051

git-svn-id: http://skia.googlecode.com/svn/trunk@3036 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d335d1d784167f8b9a4bf8a35e04d8e82d0a9507 12-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> automatically inject a moveTo if we see a close followed by a line/quad/cubic



git-svn-id: http://skia.googlecode.com/svn/trunk@3027 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
cabaf1daf3fdcc151c12d59b05bdbe136c178b3b 11-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reenable direction test, fix handling of degenerate segments in the non-convex case



git-svn-id: http://skia.googlecode.com/svn/trunk@3021 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
3d19c385e7c0bdd94171bf4892b991b77880c5ed 11-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix cheapComputeDirection() in the non-convex case to pivot on the y-max point
rather than pivoting on the next. Also remove the loop, as it is just logically
wrong to think we can use this trick only a non-extrema pt.



git-svn-id: http://skia.googlecode.com/svn/trunk@3014 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
6da3d1757cfee75c25a86b580834dc49d8b53f05 11-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> improve clamping logic when handling imprecise chopping of cubics
http://code.google.com/p/skia/issues/detail?id=444



git-svn-id: http://skia.googlecode.com/svn/trunk@3011 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
1ae2090d3a77b6be07bd1de134c233038df1f975 10-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> stroking wants CW, so we reverse if the orig was CCW



git-svn-id: http://skia.googlecode.com/svn/trunk@3004 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
d1ab9320b09b922bd2f3b3d4f888c754fde5b58c 10-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> restore (debugged) cheapComputeDirection



git-svn-id: http://skia.googlecode.com/svn/trunk@3000 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
f6962e458c9e6db93026dd032e39769d9bf65363 10-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable cheap check while its being debugged



git-svn-id: http://skia.googlecode.com/svn/trunk@2998 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
69a9943b67cc52c24beac853c6f8865dcb197b85 10-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPath::cheapComputeDirection() plus unittests



git-svn-id: http://skia.googlecode.com/svn/trunk@2996 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
63d73749fbe36491403ea521005fd298dc70a94c 10-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPath::reverseAddPath()



git-svn-id: http://skia.googlecode.com/svn/trunk@2995 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
a44e6c6b5310be3b4724746b4fdca54c5233f41b 09-Jan-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add ARM optimizations to the build.

Also had to fix a problem in the ARM memset code that was
causing some tests and bench to fail.
Review URL: http://codereview.appspot.com/5522052

git-svn-id: http://skia.googlecode.com/svn/trunk@2989 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
25634e08bb490ad7e9de709c52dfdf1ef1b854e6 09-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete file



git-svn-id: http://skia.googlecode.com/svn/trunk@2986 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawing.cpp
b55deeb1c7c692023603639a9b29c0e3de124eac 06-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add allowImageFilter() so a device can allow/disallow filters
(esp. for printing)



git-svn-id: http://skia.googlecode.com/svn/trunk@2981 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
76dd277b1fa021c42fc3acdd8d61e7dc05f9c267 05-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add filterImage() entry-point to SkDevice, to allow it to specialize on subclasses
of SkImageFilter. If that returns false, then the filter itself is invoked.



git-svn-id: http://skia.googlecode.com/svn/trunk@2977 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPaint.cpp
7191840eec5ac3b5f5814e4df3cf18264b0b0a4d 05-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add asComponentTable() query (will impl in SkTableColorFilter next)



git-svn-id: http://skia.googlecode.com/svn/trunk@2971 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
6630d8d8ea7a897a18e3d950bab9fa40f065804a 04-Jan-2012 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add the ability to iterate through a path without modification. This change is
required by WebKit SVG in order to correctly draw markers and endcaps.

BUG=415
TEST=TestPath in the unit tests
Review URL: http://codereview.appspot.com/5505097

git-svn-id: http://skia.googlecode.com/svn/trunk@2962 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
c6f2e7da31d60e48a420b6de520361d966ea278d 04-Jan-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow 0 as a valid text size in SkPaint.
Review URL: http://codereview.appspot.com/5514043

git-svn-id: http://skia.googlecode.com/svn/trunk@2961 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
9330cfe851b14b8985acc14caa3dc5ad20b0b2a8 04-Jan-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> drawPosText with center or right align skips every other character.
http://codereview.appspot.com/5504118/


git-svn-id: http://skia.googlecode.com/svn/trunk@2959 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
31bab3934c773c2bd4c1e5e9ba8eb87c1c623b09 03-Jan-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix off-by-one error in assertion; improve coverage_to_exact_alpha()
implementation.

http://codereview.appspot.com/5504116/



git-svn-id: http://skia.googlecode.com/svn/trunk@2947 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kScan_AntiPath.cpp
abf00aaaa0262905ad19b0a0ed654c87276490fc 03-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> expose isSubpixel() on the cache, so SkDraw can know if it should expect
subpixel text (it may be that the paint requested it, but the scaler ignored it)



git-svn-id: http://skia.googlecode.com/svn/trunk@2946 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
d5d9dadcdd5fdbc8a17f3f398e3199b9d12c8d70 03-Jan-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update header comments to more accurately describe behavior of
SkRegion::getBoundaryPath(). Add SkASSERT of SkPath argument for safety.

codereview.appspot.com/5504095/



git-svn-id: http://skia.googlecode.com/svn/trunk@2942 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_path.cpp
72785c4c8928a8b0fc5bbdb48929f9356554dace 29-Dec-2011 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix problems with SampleApp Fuzzer due to issues in iterating over degenerate paths.
The fuzzer gets my vote as best test tool ever.

There are several issues outstanding: crashes in FixedPoint and a crash in the
path filling code that is most likely due to clipping problems (but maybe not).

BUG=425
Review URL: http://codereview.appspot.com/5503080

git-svn-id: http://skia.googlecode.com/svn/trunk@2936 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
a31ac73b8e261f02c4bd6ae1d622c4bd00226b80 29-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Tighten up restrictions on blit width: some shaders assert that they
are addressing more than 0 pixels.
codereview.appspot.com/5489125/



git-svn-id: http://skia.googlecode.com/svn/trunk@2935 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
4714359ec091b34a4f88eb9708868a58a22177d3 28-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Bugfixes to antialiased blitting.
More details of blitter contracts in function headers.
New precautionary assert in one high-level default blitter.



git-svn-id: http://skia.googlecode.com/svn/trunk@2928 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kScan_AntiPath.cpp
0c00f21fee3f5cfa3aa7e5d46ff94cb8cf340451 28-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkDEBUGFAIL to clean up use of SkASSERT(!"text");
catch a couple of latent SkASSERT("text") bugs.

http://codereview.appspot.com/5504090/



git-svn-id: http://skia.googlecode.com/svn/trunk@2926 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kBitmap.cpp
kBitmapSampler.cpp
kBlitter.cpp
kBlitter_Sprite.cpp
kColorFilter.cpp
kConfig8888.h
kDraw.cpp
kEdgeBuilder.cpp
kEdgeClipper.cpp
kFloat.cpp
kMemory_stdlib.cpp
kPaint.cpp
kPath.cpp
kPathMeasure.cpp
kPictureRecord.cpp
kRegion.cpp
kScalerContext.cpp
kScan_AntiPath.cpp
kScan_Path.cpp
kShader.cpp
kUtils.cpp
49eac192faa35159752525b23345563252721c64 27-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New 'blitAntiRect' entry point for blitters, specialized in supersampling
code to avoid quarter-scanline-at-a-time building of large rectangular
clips.

Speeds up aa_clip_build_path_AA benchmark 2x, aa_clip_build_rect_AA benchmark
10x or more. This is a sufficient performance gain to let Chromium reenable
WebKit's soft clipping code. Rolling into Chromium will require ~18
rebaselines.



git-svn-id: http://skia.googlecode.com/svn/trunk@2924 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kBlitter.cpp
kScan_AntiPath.cpp
b0af6dad94f3c51ea0d5d6426a9509354338c6b2 21-Dec-2011 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Protecting changes to the SkPath iteration with an ifdef for Chromium.
Something is broken, and this will protect us while we sort it out.

Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@2922 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ee068aae552e8cfb3e23f9c972a377e75a07e822 21-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add unittest for invariants for empty paths, still need to think about
hairlines in those cases



git-svn-id: http://skia.googlecode.com/svn/trunk@2919 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
e42b1d54bf9373c578dcf6067409fb4cc5529297 21-Dec-2011 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Unreviewed. Adding a define to enable the old bahevior for SkPath::isEmpty.
Should be undone at some point, when WebKit no longer needs it.

git-svn-id: http://skia.googlecode.com/svn/trunk@2918 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
bb47232dce843aa2c5e49f86e1895d895826f476 21-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> preserve inverseness when stroking



git-svn-id: http://skia.googlecode.com/svn/trunk@2916 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
e5ff3cefe007d092daf9d0bc2b03f9ff87b2c34e 20-Dec-2011 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkColorFilter::asColorMatrix() virtual, and override in
SkColorMatrixFilter. Implement missing SkColorMatrixFilter::setMatrix() and
setArray() functions (were in .h, just not implemented). Add a gm for color
matrix filters.

Review URL: http://codereview.appspot.com/5500044/



git-svn-id: http://skia.googlecode.com/svn/trunk@2909 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
9d0c6ecb8440e8e546881a4ff850eb6333f24541 20-Dec-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix 'no static globals' for chromium

M include/core/SkFlattenable.h
M include/core/SkPixelRef.h
M src/core/SkGraphics.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2908 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
32d25b6f5f4355d4c5281694034ba3a5aa2cf571 20-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> initial impl of SkImageFilters : virtual signature will change!
Do not invest too much in other subclasses until this API solidifies.



git-svn-id: http://skia.googlecode.com/svn/trunk@2903 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
kPaint.cpp
4da06ab3351f2a96f9216d96106db33a77b19644 20-Dec-2011 schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Modifying SkPath to store all verbs provided by the user, and to give
correct results for all stroke and fill modes even on the various types
of degenerate paths.

The goals of this patch include:
1. Have Skia store all of the verbs implied by path construction methods, even
if those define degenerate paths. The SVG implementation in WebKit, which is
backed by Skia, needs to know about all elements of the path, even degenerate
ones, for the correct drawing of markers and line caps. For example, in SVG you
should be able to draw a scatter plot by specifying a marker for vertices and
then giving a sequence of moveTo commands. Skia will not store the moveTos,
requiring a different storage mechanism.

2. Assuming 1, maintain the current Skia behavior. That is, make Skia robust to
degenerate paths.

3. Fix an existing bug in Skia where a degenerate moveTo-lineTo pair spits out
warnings from rasterization and produces incorrect results in inverse-fill
renderings.

4. Adds extensive testing for degenerate paths and path rendering in general.

To meet these goals, the patch I am proposing will result in minor additional
storage for degenerate paths (a few bytes per degenerate path, only if the user
defines such paths). There is also some additional overhead in the iteration
code, with the path now cleaned to remove degenerate segments as part of the
iteration process. I suspect this will also fix issues with computing normal
vectors to degenerate segments. Benchmarking suggests that this change may
result in slightly (< 1%) slower path drawing due to the checks for
degeneracy. This overhead could be removed (in fact, a significant speedup
could occur) if the results of iterating to clean up the path were cached.
This would cost memory, of course, and quite a bit of it.

BUG=398
TEST=tests/PathTest.cpp
gm/cubicpaths.cpp
gm/degeneratesegments.cpp
gm/movepaths.cpp
gm/linepaths.cpp
gm/quadpaths.cpp
Review URL: http://codereview.appspot.com/5482051

git-svn-id: http://skia.googlecode.com/svn/trunk@2901 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kStroke.cpp
538f784e3d9b898ff90de9d766eddb9fa38f4a43 16-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change typeface::purgeall to not assume that the array is empty, as it may
contain typefaces that still are referenced.

change SkTypeface::UniqueID to internally hold onto a reference to the default
typeface, so that it will always be available if the font cache tries to resolve
it. Then general rule being: if we have a fontID specified by SkPaint, then its
associated typeface object must be alive.



git-svn-id: http://skia.googlecode.com/svn/trunk@2889 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
kTypefaceCache.cpp
f86ab8472e8bb4017f32f8e6f36a0001ceb39b46 16-Dec-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> cleanup font purging functions

M include/core/SkGraphics.h
M src/core/SkGraphics.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2887 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
9245498e40399199ed6d32aa67fe028b634cc582 16-Dec-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix debug comment

M src/core/SkPixelRef.cpp
M src/core/SkFlattenable.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2886 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kPixelRef.cpp
b052129a4121c1e3f051e374541a93d3d7a98064 15-Dec-2011 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Exposing the isImmutable/setImmutable API of SkPixelRef in SkBitmap

REVIEW=http://codereview.appspot.com/5491055/



git-svn-id: http://skia.googlecode.com/svn/trunk@2883 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d26147adbbdca85f07dff432025afee0c8614387 15-Dec-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optional manual global initialization

M include/effects/SkAvoidXfermode.h
M include/effects/SkDiscretePathEffect.h
M include/effects/Sk1DPathEffect.h
M include/effects/Sk2DPathEffect.h
M include/effects/SkBlurDrawLooper.h
M include/effects/SkPixelXorXfermode.h
M include/effects/SkDashPathEffect.h
M include/effects/SkColorMatrixFilter.h
M include/effects/SkEmbossMaskFilter.h
M include/effects/SkLayerDrawLooper.h
M include/effects/SkGroupShape.h
M include/effects/SkBlurImageFilter.h
M include/effects/SkRectShape.h
A include/effects/SkEffects.h
M include/effects/SkCornerPathEffect.h
M include/effects/SkGradientShader.h
M include/effects/SkBlurMaskFilter.h
M include/effects/SkLayerRasterizer.h
M include/core/SkMallocPixelRef.h
M include/core/SkFlattenable.h
M include/core/SkShape.h
M include/core/SkPixelRef.h
M include/core/SkGraphics.h
M include/core/SkPathEffect.h
M include/core/SkPostConfig.h
M include/core/SkXfermode.h
M include/core/SkColorFilter.h
M include/images/SkFlipPixelRef.h
M include/images/SkImageRef_GlobalPool.h
M src/effects/SkDashPathEffect.cpp
M src/effects/SkColorMatrixFilter.cpp
M src/effects/SkBlurImageFilter.cpp
M src/effects/SkGroupShape.cpp
M src/effects/SkCornerPathEffect.cpp
M src/effects/SkGradientShader.cpp
M src/effects/SkBlurMaskFilter.cpp
M src/effects/SkAvoidXfermode.cpp
M src/effects/Sk2DPathEffect.cpp
M src/effects/SkBlurDrawLooper.cpp
M src/effects/SkPixelXorXfermode.cpp
M src/effects/SkColorFilters.cpp
M src/effects/SkLayerDrawLooper.cpp
M src/effects/SkRectShape.cpp
A src/effects/SkEffects.cpp
M src/effects/SkLayerRasterizer.cpp
M src/effects/SkDiscretePathEffect.cpp
M src/effects/Sk1DPathEffect.cpp
A src/effects/SkEffects_none.cpp
M src/core/SkPixelRef.cpp
M src/core/SkGraphics.cpp
M src/core/SkFlattenable.cpp
M src/core/SkBitmapProcShader.h
M src/core/SkPathEffect.cpp
M src/core/SkShape.cpp
M src/core/SkXfermode.cpp
M src/core/SkMallocPixelRef.cpp
M src/core/SkBitmapProcShader.cpp
M src/images/SkFlipPixelRef.cpp
M src/images/SkImageRef_GlobalPool.cpp
A src/ports/SkGlobalInitialization_chromium.cpp
M src/ports/SkImageRef_ashmem.h
M src/ports/SkImageRef_ashmem.cpp
A src/ports/SkGlobalInitialization_default.cpp
M gyp/effects.gyp
M gyp/tools.gyp
M gyp/ports.gyp



git-svn-id: http://skia.googlecode.com/svn/trunk@2876 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kFlattenable.cpp
kGraphics.cpp
kMallocPixelRef.cpp
kPathEffect.cpp
kPixelRef.cpp
kShape.cpp
kXfermode.cpp
7c2029367cea5479fa3b74fb0ca2b0297b42b709 14-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add canvas::isDrawingToLayer(), as a fast query for chrome; faster than
setting up a drawiter and counting the layers.



git-svn-id: http://skia.googlecode.com/svn/trunk@2875 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
59204b4813bfbf50189b256a29cdfae85a77bca1 09-Dec-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Closing fd for mmap after mapping succeeds.
Review URL: http://codereview.appspot.com/5467058

git-svn-id: http://skia.googlecode.com/svn/trunk@2847 2bbb7eff-a529-9590-31e7-b0007b416f81
kMMapStream.cpp
b6e161937bc890f0aa12ac5e27415d4d260ea6e0 09-Dec-2011 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding isOpaque method to skia shader classes

REVIEW=http://codereview.appspot.com/5451102/
TEST=unit test ShaderOpacity



git-svn-id: http://skia.googlecode.com/svn/trunk@2840 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kShader.cpp
5194e1507dbf77fb6a6feb731c6e19571faee452 08-Dec-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't verify PMA in writePixels

Review URL: http://codereview.appspot.com/5454043/



git-svn-id: http://skia.googlecode.com/svn/trunk@2828 2bbb7eff-a529-9590-31e7-b0007b416f81
kConfig8888.h
59ccef695cef28a74ab2ea13d5a6c9017af45402 07-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add more SK_OVERRIDEs
update dox for SkEmptyShader



git-svn-id: http://skia.googlecode.com/svn/trunk@2817 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
1607863b608b7db6c813228768ed5d72997bbc82 06-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename hasValidCoordinates to isFinite (on SkRect) and reimplement for speed



git-svn-id: http://skia.googlecode.com/svn/trunk@2811 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kRect.cpp
ef843cdcd1be858fe55cc99ff134ffbd080c9a51 02-Dec-2011 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> When a bitmap is texture-backed, change SkBitmap::copyTo() to do a deep
copy of the texels in VRAM rather than a readback and re-upload. This
gives a 3-10X speedup on recursive canvas-to-canvas draws.

N.B.: This introduces a new GM test, which will need new baselines.



git-svn-id: http://skia.googlecode.com/svn/trunk@2790 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a89c77b5cafcc13d76cb07c3240e48705cb30d8f 01-Dec-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 2783 -- broke debug gm



git-svn-id: http://skia.googlecode.com/svn/trunk@2784 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kBlitter.cpp
kScan_AntiPath.cpp
f974a5d7826688c9d87cc36a56c697ea5fae12de 01-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New function SkBlitter::blitAntiRect(); specifically accelerated for
supersampled antialiased clips.



git-svn-id: http://skia.googlecode.com/svn/trunk@2783 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kBlitter.cpp
kScan_AntiPath.cpp
05fffdcc912cb9678e03d39529577e2a29b9209e 01-Dec-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Doxygen configuration file, documentation and minor cleanup on blitters.



git-svn-id: http://skia.googlecode.com/svn/trunk@2782 2bbb7eff-a529-9590-31e7-b0007b416f81
kAntiRun.h
kScan_AntiPath.cpp
b44cd65a53fa016a238e2bd3d01b5434dbc05da3 01-Dec-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix Paint == comparison on Android.

The == operator was incorrect because of Androids use of
fGenerationID. This change moves the ID to the end of the
paint struct and omits it from the == comparison.
Review URL: http://codereview.appspot.com/5437098

git-svn-id: http://skia.googlecode.com/svn/trunk@2780 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
573f22b3bd295bb2e3b9e6ab41f5dfeb557897f9 30-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle if unflattening returned a null shader



git-svn-id: http://skia.googlecode.com/svn/trunk@2773 2bbb7eff-a529-9590-31e7-b0007b416f81
kComposeShader.cpp
181f4b326943cf0d8e43097b95d0cc5cf3fe18ca 30-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix lcd16_shader_blend math



git-svn-id: http://skia.googlecode.com/svn/trunk@2762 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
fb82300d1b41f21d1d154847b6bf3fb73d5b6f81 30-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> enable shadermask optimization all the time
update gm for shadermask
fix bugs in lcd_blend math



git-svn-id: http://skia.googlecode.com/svn/trunk@2761 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
kDevice.cpp
a069c8ff9abf00efed85ca0a2df37a7a7f30390e 28-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speedup AAClip::setRegion (n^2 to n)
add bench for setRegion



git-svn-id: http://skia.googlecode.com/svn/trunk@2759 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
5e12770cb01d9f6963538223cbfd91d269feee98 28-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix copy/paste error in LCD16 masks: mask type needed to be uint16_t



git-svn-id: http://skia.googlecode.com/svn/trunk@2754 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
b9d1c6a3c43a2cbcbd612f4ec4aaf604a1fa6444 28-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call getSaveCount inside restoreToCount, in case it goes virtual...



git-svn-id: http://skia.googlecode.com/svn/trunk@2752 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
86ab6c694c0b29cb49363746ac6982faa4eef1b2 28-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> separate declaration from impl for overrides, so we can declare some of
the parameters as SK_RESTRICT w/o generate a warning about a mismatch
with the base class parameters (which don't mention restrict).



git-svn-id: http://skia.googlecode.com/svn/trunk@2749 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
484561ffde0b605b82beceb448a7334493c4e5fe 22-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> improve accuracy for luminance coefficients
rebaseline image in response to that.



git-svn-id: http://skia.googlecode.com/svn/trunk@2735 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ffe49f5380dd5062073efeda70f2f91682c828ca 22-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> store 3 bits of luminance, but (for now) discretize that in fonthost::filterec
for backward compatibility



git-svn-id: http://skia.googlecode.com/svn/trunk@2732 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
1f6b4ae0f723317d01b158ce1498dabf4d93a67b 22-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove GetGammaFlag from SkFontHost
prep for retooling of gamma support



git-svn-id: http://skia.googlecode.com/svn/trunk@2730 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.cpp
54c782c968fa7bb9d54db4d010ebac23168c0ba6 21-Nov-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SetFlags for command line control
http://codereview.appspot.com/5416047/

M include/core/SkGraphics.h
M src/core/SkGraphics.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2727 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
b6bb5cb7c2573a9829a0d3aa7b16a55830a7e816 21-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reorder bits and remove obsolete kForceAA experimental bit



git-svn-id: http://skia.googlecode.com/svn/trunk@2725 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
3d60812865bb034851da777a91413ab584929887 21-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't quickReject bitmaps if there is a looper or other possible bounds-modifier
add unittest for the above change



git-svn-id: http://skia.googlecode.com/svn/trunk@2722 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
22048623de0530df75963851a4ed4747e7956e05 18-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use older, slightly slower, blend math, to retain (mostly) the previous results
to minimize rebaselining.



git-svn-id: http://skia.googlecode.com/svn/trunk@2716 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
9998c669300281b5682fce72b036c1a6a619a44e 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove all references to SkGlobals (obsolete)



git-svn-id: http://skia.googlecode.com/svn/trunk@2713 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlobals.cpp
kGlyphCache.cpp
kGraphics.cpp
5d248bce640b7f0a32afdc8b8ca571f3673c792b 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove use of SkGlobals



git-svn-id: http://skia.googlecode.com/svn/trunk@2712 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
d54c85731eb45afcdee1272acfd0cafda6348bab 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete SK_USE_RUNTIME_GLOBALS



git-svn-id: http://skia.googlecode.com/svn/trunk@2711 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
be2aa2aa1f8bf73d974bdd9438fc741bbf0cfbe6 17-Nov-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> use AsMode instead of deprecated IsMode



git-svn-id: http://skia.googlecode.com/svn/trunk@2705 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kDraw.cpp
e303fcf68d6fee2bf9ee0c4f6fb330a2c3e41a01 17-Nov-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkXfermode::IsMode() and use that in SkDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@2703 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
kXfermode.cpp
54e01b2ab985e7a7d38109812069d056d128bfa1 16-Nov-2011 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This change makes SkImageFilter and SkBlurImageFilter flattenable/unflattenable.

The imageblur test also needed to stop calling getDeviceSize(), since it was
returning 99999x99999 for the SkPicture case.



git-svn-id: http://skia.googlecode.com/svn/trunk@2699 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
da957724d2a1fe97113f1464740d1fe76c1bb077 16-Nov-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add support in Android for AdvancedTypefaceMetrics
Review URL: http://codereview.appspot.com/5396045

git-svn-id: http://skia.googlecode.com/svn/trunk@2698 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
79841fe3cbb994c027b98dc402a1cf1b4b94e34a 15-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable reduced checks if we're not enabling fast shadermask



git-svn-id: http://skia.googlecode.com/svn/trunk@2692 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
d4780e2eb8750a15ef8a43dd36b60fa348baac69 15-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> need to opt-in to faster shadermask until chrome can rebaseline
SK_ENABLE_FAST_SHADERMASK



git-svn-id: http://skia.googlecode.com/svn/trunk@2691 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
1750bf17635e788198200f971d9cb66f67399363 15-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> support blitMask+shader natively (1.75x faster for AA, and now we can support
LCD at all with a shader.)



git-svn-id: http://skia.googlecode.com/svn/trunk@2689 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask.h
kBlitMask_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
kDevice.cpp
e901b4ccdbd0b7134b7c9ce75701b22ee7821dec 14-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename/refactor in preparation for supporting accelerated blits of shader-output
through a mask.



git-svn-id: http://skia.googlecode.com/svn/trunk@2684 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask.h
kBlitMask_D32.cpp
3563c9ee527f524d421964b54d9b09e12ec0bf6b 14-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix autobounds dude to call a custom version of rect.join that doesn't ignore
empty rects (since path.bounds must be the bounds of its control-pts, including
empty subcontours)



git-svn-id: http://skia.googlecode.com/svn/trunk@2679 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
eac52bdb6c275a50832c4bba3a439d7fbf7f7807 14-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> improve validate to check for empty rects, since contains always returns false
if either rect is empty.



git-svn-id: http://skia.googlecode.com/svn/trunk@2676 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b42403bdb9989150878ef55d32773070abf53ce1 14-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reorder template functions so it compiles in Lion



git-svn-id: http://skia.googlecode.com/svn/trunk@2672 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
83ab49556ffc83fd3b2c1142db264362d21e6b19 11-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> record doAA param for clipRect and clipPath in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@2669 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
beb7fe1869a0019f5527ebf527eb7855308e0791 11-Nov-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Optimize W-array generation with respect to subsetted fonts and add test.

Testing framework originally from http://codereview.appspot.com/4916044

Review URL: http://codereview.appspot.com/5379041

git-svn-id: http://skia.googlecode.com/svn/trunk@2667 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
d58a1cd00b969a7755c375f55cf80f4d49d3047b 10-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add config8888 support to writePixels

Review URL: http://codereview.appspot.com/5374052/



git-svn-id: http://skia.googlecode.com/svn/trunk@2662 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kConfig8888.h
kDevice.cpp
44da42e92f46cae9e96003999f02db04b8b5ff2d 10-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> have paint's measure calls respect vertical



git-svn-id: http://skia.googlecode.com/svn/trunk@2660 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
830a23e39bb4a126e573940cd6e354732e295b10 10-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add vertical-text bit to paint (not supported yet)
check-point for using freetype on mac (not enabled yet)



git-svn-id: http://skia.googlecode.com/svn/trunk@2657 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f74ad8c91aef4f328dbcbcebae9e436c00a35140 09-Nov-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Removes warnings generated by gcc and clang.



git-svn-id: http://skia.googlecode.com/svn/trunk@2651 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
073c90769e4cc7bf14323c1cab59339463604ecd 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use new PurgeFontCache() api



git-svn-id: http://skia.googlecode.com/svn/trunk@2633 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
fe701129857924f76a0d752d4c964b3c5e4b49fe 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle NaN values in clipPath



git-svn-id: http://skia.googlecode.com/svn/trunk@2632 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kRect.cpp
56c69773aea56c6c6bd47bc7e7970dd081205184 08-Nov-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update files to use SK_BUILD_FOR_ANDROID.

This CL also removes any unecessary references to
the ANDROID definition.
Review URL: http://codereview.appspot.com/5354049

git-svn-id: http://skia.googlecode.com/svn/trunk@2629 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_filter.h
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kMemory_stdlib.cpp
kPaint.cpp
kPath.cpp
kPicturePlayback.cpp
kPicturePlayback.h
kPixelRef.cpp
kRegion.cpp
kUtils.cpp
73ee77c9086b515397b6a5ef8386541dcacc1000 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> up default limit to 2Mg



git-svn-id: http://skia.googlecode.com/svn/trunk@2627 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
6c99633f73410325ca9d13ddca0b95d2feced471 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return the prev value from SetFontCacheLimit



git-svn-id: http://skia.googlecode.com/svn/trunk@2622 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
77407ca019ca1bb98dd65f940be825d38719e983 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add api to SkGraphics to get/set font cache limit
add SK_DEFAULT_FONT_CACHE_LIMIT to SkUserConfig, to override our default value



git-svn-id: http://skia.googlecode.com/svn/trunk@2621 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGraphics.cpp
24babf45b19bd400a301972dc0d7e3e4007c03bc 07-Nov-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add font scaler gm.
http://codereview.appspot.com/5337044/


git-svn-id: http://skia.googlecode.com/svn/trunk@2619 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
6850eab42ba4c2a7033a99824b02a2846ce0ef2a 03-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Override 32BPP format in SkCanvas::readPixels

Review URL: http://codereview.appspot.com/5330073/



git-svn-id: http://skia.googlecode.com/svn/trunk@2600 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
15356a68b2a87e3ab9fc49392d085a4201ffeb62 03-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> experimental -- add SkImageFilter to paint. Not called yet.



git-svn-id: http://skia.googlecode.com/svn/trunk@2599 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
11b4d8a251f23e399180f60e7b0fc70e68246e03 02-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add hack for testing gSkSuppressFontCachePurgeSpew



git-svn-id: http://skia.googlecode.com/svn/trunk@2589 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
daba14b7d4fc96b915c45d82713b22729c0d0f37 02-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Line-endings only change (some windows line-endings snuck in)



git-svn-id: http://skia.googlecode.com/svn/trunk@2588 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
910267dde2d036b6298f62943f019bda3d662eb2 02-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkDevice::onReadPixels take a const& rather than const*



git-svn-id: http://skia.googlecode.com/svn/trunk@2587 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
c69809745e6496564639e42ef998ad39adf7dfb8 02-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Recommit r2584 with gpu pass of the new ReadPixels test disabled in fixed pt (gpu code doesn't work in general in fixed pt).



git-svn-id: http://skia.googlecode.com/svn/trunk@2586 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kCanvas.cpp
kDevice.cpp
ace7bd5623354ffabbd224d5b76550bab159c296 02-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r2584 (new test fails in fixed pt builds)



git-svn-id: http://skia.googlecode.com/svn/trunk@2585 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kCanvas.cpp
kDevice.cpp
1a8ddf0a35bfb6c21a1184f81d2fdd50053acf31 02-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Changes the SkCanvas::readPixels API. Allows caller to read into prealloced bitmap pixels. Changes how clipping to device bounds is handled.

Review URL: http://codereview.appspot.com/5307077/



git-svn-id: http://skia.googlecode.com/svn/trunk@2584 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kCanvas.cpp
kDevice.cpp
66e6cdb5ebbab9f3a695adc963f16b9c8b165afe 02-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> up glyphcache hash table to 12bits (from 8bits).
Experimenting shows that is the sweetspot when drawing lots of CJK



git-svn-id: http://skia.googlecode.com/svn/trunk@2582 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
cad8176281c787c64e83fb5028731c021f84becb 01-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused copyPixelsFrom ... (copyPixelsTo is next on the chopping block)



git-svn-id: http://skia.googlecode.com/svn/trunk@2579 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
210ce003a5ec039dda80de0569fb47ca4efc4dc7 01-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getDeviceSize() so callers won't need to call getDevice() so much
... we hope to make devices private in the future



git-svn-id: http://skia.googlecode.com/svn/trunk@2577 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
f2fc5a5708124af00b499b57bda06220fd14650b 01-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> match blitH computation for coverage in new blitRect for supersampler



git-svn-id: http://skia.googlecode.com/svn/trunk@2576 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
967a35d8c5bc46261764b972d5295629d3b02d0d 31-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> specialize blitRect in supersampler:

10% fast aa-roundrects blits,
2x faster aa-roundrect-clips building



git-svn-id: http://skia.googlecode.com/svn/trunk@2575 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
9154eb08ec1f0d51688a6eb55c54111cf6ec5fbb 31-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> implement blitRect for aaclip builder. This speeds up setRect by 15x (for 640x480)



git-svn-id: http://skia.googlecode.com/svn/trunk@2566 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
562a2ac95b8cd8b359574f8c4d6300b0475938db 31-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call blitRect in our convex scanconverter (next: take advantage of that in our
region and soft-region builders, and in our supersampler)



git-svn-id: http://skia.googlecode.com/svn/trunk@2563 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kScan_AntiPath.cpp
kScan_Path.cpp
effe847ca4ed731a60c69e435354e446f46f8090 31-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> can't assume (ever :( ) that a 2-ptr src will convex



git-svn-id: http://skia.googlecode.com/svn/trunk@2562 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
4d03c110a08a4087fb094729e664c77a8f20dc73 31-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't assume a 2-point path is convex, unless its also not closed



git-svn-id: http://skia.googlecode.com/svn/trunk@2561 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
fc5da9266eae18f1ee3635a061af27788ad4b62e 31-Oct-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> handle when initial edges don't agree on start-y



git-svn-id: http://skia.googlecode.com/svn/trunk@2560 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
a6c7c4803e144f5c1d0a86a437ac1e2e8ff5e211 28-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add convex special case in scanconverter. about 10% faster for modest ovals and rrects



git-svn-id: http://skia.googlecode.com/svn/trunk@2554 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
d6040f6f2fcb11fddad5d92b3cb7255e90931bcc 28-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reload base after we call memmove



git-svn-id: http://skia.googlecode.com/svn/trunk@2549 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
c5507bfe2d54e411ef6eb83452b8cbfbae009610 27-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bad return type (should have been void)



git-svn-id: http://skia.googlecode.com/svn/trunk@2547 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
c90419199525141a5b98091f856e359bf9daf5b1 27-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> now we trim the aaclip after building it, to ensure that it has tight bounds
around its (rle compressed) image.



git-svn-id: http://skia.googlecode.com/svn/trunk@2542 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
83a444602ec580a0040713eed588c245b4ae0ee9 27-Oct-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove warnings (trailing \, signed vs unsigned, parenthesization).
Convert some tabs into spaces.



git-svn-id: http://skia.googlecode.com/svn/trunk@2541 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
kDraw.cpp
209c41511eb0d06f8c19f8fb1fc0393c502a1b18 26-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add initial unittests for aaclip. Fix case where BuilderBlitter skipped the top
few scanlines (of its bounds) and therefore didn't know to trim its bounds back
down. This can happen when the path's bounds are larger than the curve's bounds
(i.e. the control points are outside of the tight-bounds of the shape.)



git-svn-id: http://skia.googlecode.com/svn/trunk@2534 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
67cdbf5c63cfd77523d2a3070a44a200fabf0739 25-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unhelpful pixel cache in blitV



git-svn-id: http://skia.googlecode.com/svn/trunk@2533 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
e3a83ec4e5c0abd2f5b756d7a6e7d58515969f18 25-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for convex scan-converter (disabled for now)



git-svn-id: http://skia.googlecode.com/svn/trunk@2529 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
c909a1ecadd422d91ff97d10ce08865290223b14 25-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't blend with zero in colorproc (forgot to return after memcpy check).



git-svn-id: http://skia.googlecode.com/svn/trunk@2527 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
2a6f8abf35ff8c2640c24478d9d2eaedff5e78ea 25-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remember our convexity when we're transformed (when not perspective)



git-svn-id: http://skia.googlecode.com/svn/trunk@2526 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
820e80ad6390e120d4991a5280d0452ec87beaeb 24-Oct-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some warnings on VS2010
Review URL: http://codereview.appspot.com/5312051/



git-svn-id: http://skia.googlecode.com/svn/trunk@2520 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
67ba5fa3283185f29c22e9b8daad521de0d00b23 24-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix scalar=fixed by implementing SkRegion form of AntiFillRect



git-svn-id: http://skia.googlecode.com/svn/trunk@2516 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
045e62d715f5ee9b03deb5af3c750f8318096179 24-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> enable soft clipping (yikes)



git-svn-id: http://skia.googlecode.com/svn/trunk@2515 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
kCanvas.cpp
kDraw.cpp
kDrawProcs.h
kMaskFilter.cpp
kRasterClip.cpp
kRasterClip.h
kScalerContext.cpp
kScan.cpp
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
kScan_Path.cpp
f0f617a502ae9298056654811542c62769a906c8 21-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkRect::intersect(a, b), matching what was already available in SkIRect



git-svn-id: http://skia.googlecode.com/svn/trunk@2513 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
d40da64fcdecde1a2909cc42ca41eac6315bb162 20-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add typefacecache to be purged in SkGraphics::Term()



git-svn-id: http://skia.googlecode.com/svn/trunk@2504 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kTypefaceCache.cpp
kTypefaceCache.h
f52e55543e8e34a9fc9dd6f6f2d0e14e25d97ba5 18-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> (re)add SkMask::getAddr() which now checks its pixel-size at runtime.



git-svn-id: http://skia.googlecode.com/svn/trunk@2488 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
kMask.cpp
7989186dab6bc2f1c1927daf91bddd32b7fd8d0c 18-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkMask::getAddr to getAddr8, to match the specificity of the others
e.g. getAddr1, getAddrLCD16, etc.

This is to make way for a real getAddr that will compute its pixel-size at runtime



git-svn-id: http://skia.googlecode.com/svn/trunk@2487 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_4444.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
5344a1ad2fab20e1812b6c847ef1162311a43679 18-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning (add default in switch)



git-svn-id: http://skia.googlecode.com/svn/trunk@2485 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask_D32.cpp
edb606cb999887d54629f361bcbf57c5fede1bb0 18-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move LCD blits into opts, so they can have assembly versions



git-svn-id: http://skia.googlecode.com/svn/trunk@2484 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask.h
kBlitMask_D32.cpp
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
19f286b6f4ca4c124250caeea7f427c870c64370 18-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add tests for read/writePackedUInt, and fix a bug there.



git-svn-id: http://skia.googlecode.com/svn/trunk@2482 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
da96563e31e57d28648087f0ef2806f4489b13d4 13-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add FillIRect variant that takes a rasterclip



git-svn-id: http://skia.googlecode.com/svn/trunk@2478 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan.cpp
34f7e47a3593911d03307a08e5af625b218ceec3 13-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> checkpoint -- more support changes for soft clipping



git-svn-id: http://skia.googlecode.com/svn/trunk@2475 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
kRasterClip.cpp
kRasterClip.h
1ba7137fc0dcace0c1be1367fe977202c63746ba 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add rasterclip entrypoints for scan converting paths



git-svn-id: http://skia.googlecode.com/svn/trunk@2473 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
1778564c75de5799d45126984f8faafd03523100 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> trim off extra alpha==0 spans before and after our bounds



git-svn-id: http://skia.googlecode.com/svn/trunk@2472 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
56074222ee31f617ff176865f4b7aa38ede3bb0a 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> forgot explicit return statements



git-svn-id: http://skia.googlecode.com/svn/trunk@2465 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
0017708a5bcb6d0fbff0fac565085bef65de7433 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkRasterClip inside canvas (check-point for soft clipping)



git-svn-id: http://skia.googlecode.com/svn/trunk@2462 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
kCanvas.cpp
kClipStack.cpp
kRasterClip.cpp
kRasterClip.h
58af9a64701540c7f8083bc22a42d0bae3a5583c 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> separate SkBlitMask decl into its own header



git-svn-id: http://skia.googlecode.com/svn/trunk@2461 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitMask.h
kBlitRow_D16.cpp
kBlitRow_D32.cpp
kBlitRow_D4444.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
c42d35daa77febcd6791b5dcb0d5f7ec0f5aa84c 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add bool arg to clipRect and clipPath



git-svn-id: http://skia.googlecode.com/svn/trunk@2460 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
071eef918d70b6ca8334bc1241d1ea6923e828d5 12-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add bool argument to canvas' clipRect and clipPath for antialiasing
(currently ignored)



git-svn-id: http://skia.googlecode.com/svn/trunk@2459 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
kPictureRecord.h
3771a030b0b6686b0ec81359774836cc376ea3f4 11-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings (failed to return a bool)



git-svn-id: http://skia.googlecode.com/svn/trunk@2455 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
ba16da97e82e7ec9b73caa752b00504206ff516d 11-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add op(rgn, op)



git-svn-id: http://skia.googlecode.com/svn/trunk@2454 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
kRasterClip.h
294dd7b3d7b55ba38881cd4cabb6636abda23eb9 11-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change getLastPt to return a bool



git-svn-id: http://skia.googlecode.com/svn/trunk@2453 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5e2457ef2eba0c3f2e4c8fc89be7f36659e4f3b1 10-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getTotalClipBounds() as a partial replacement for getTotalClip. This can be
faster than getTotalClip, since it doesn't need to compute the actual complex
region for the answer.



git-svn-id: http://skia.googlecode.com/svn/trunk@2452 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
d1e3c5fde3f2ed309273cb08dbba2309b13e527f 10-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add experimental wrapper for region+aaclip



git-svn-id: http://skia.googlecode.com/svn/trunk@2451 2bbb7eff-a529-9590-31e7-b0007b416f81
kRasterClip.cpp
kRasterClip.h
f3c1da1e977a0e02535af71749fe9e92665ed51e 10-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add setRegion and doAA parameter to setPath



git-svn-id: http://skia.googlecode.com/svn/trunk@2450 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
1c04bf97b6245b55ac58c2f3902f8ca95ca91c3d 10-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> implement region-ops



git-svn-id: http://skia.googlecode.com/svn/trunk@2436 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
733e302b1c36a4310d91ea61ea127379f16d1318 06-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make no promises if we see a looper



git-svn-id: http://skia.googlecode.com/svn/trunk@2422 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
2d4297cfa40e69ef155b70614d5cee6a6c21d2f9 06-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SK_OVERRIDE



git-svn-id: http://skia.googlecode.com/svn/trunk@2420 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.h
47ac84edafc6f26e2146ab10363e2043c5af0e62 06-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for aaclip



git-svn-id: http://skia.googlecode.com/svn/trunk@2419 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
1deaab51e76848a60b9e8afd8be3fe32557f5374 06-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused variable "inside", begin fixing coding style



git-svn-id: http://skia.googlecode.com/svn/trunk@2418 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
632e1a281bc66fb545dce690dff27b51cef41a8e 06-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move call to nothingToDraw into our iterator, so it sees the results of filters and loopers
before making its decision.



git-svn-id: http://skia.googlecode.com/svn/trunk@2417 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
fa6ac938e64fe11b442d05fe8a90ddac2d1951f9 05-Oct-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixup rendering of empty paths (including inverted fills)
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
kCanvas.cpp
322878907f6c5c5fb8abdbce7d348a3cd66ff2fa 05-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for aaclip



git-svn-id: http://skia.googlecode.com/svn/trunk@2413 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
e36707a4a82a4dea7d480d969220f3ed223305dc 04-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> first cut at aaclipping



git-svn-id: http://skia.googlecode.com/svn/trunk@2410 2bbb7eff-a529-9590-31e7-b0007b416f81
kAAClip.cpp
kAAClip.h
02f55841854ae32f21a13417e9ee711463e488cf 04-Oct-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change SkAutoMaskImage so that we're less likely to write leaky code.
http://codereview.appspot.com/5180047/


git-svn-id: http://skia.googlecode.com/svn/trunk@2409 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kDraw.cpp
kMaskFilter.cpp
675dd888db366a68c9225fd61ed1ef624a806c2c 04-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable CHECK_NOTHING_TO_DRAW for now, since it doesn't play well with DrawLooper



git-svn-id: http://skia.googlecode.com/svn/trunk@2405 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
18ac1ba3d1f00858359912205d0c294033d9157c 04-Oct-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make asBlur method const.
http://codereview.appspot.com/5190041/

This change makes asBlur const consistent with SkShader::asAGradient and asABitmap.


git-svn-id: http://skia.googlecode.com/svn/trunk@2404 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
dcd0f3a980095b77ebe605b49777a4bd37ca7b0a 04-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> quick-rejects based on xfermode, using SkPaint::nothingToDraw()



git-svn-id: http://skia.googlecode.com/svn/trunk@2402 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
kPaint.cpp
2c508f2dc22027d61437b79326297ba055041561 03-Oct-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add force-rle parameter to help with aaclip testing



git-svn-id: http://skia.googlecode.com/svn/trunk@2401 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
600b3f658ce41f064bddd25ef06be0d6f208512a 30-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't autoset forceaa (yet), but require the caller to do that. In the future
we may add an explicit flag on Bitmap/Device which will say "disable LCD for me"
in which case we would want to set the forceaa flag (meaning the caller wanted
LCD, but we couldn't do it)



git-svn-id: http://skia.googlecode.com/svn/trunk@2390 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
97d1a2239887f0c08ffcdb09d76d6df3673cf6d9 30-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable auto-detection of non-opaque devices for LCD for now



git-svn-id: http://skia.googlecode.com/svn/trunk@2389 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
6fc3c1fe428eaaa1581d32988354870cf005d03b 30-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Detect that we're drawing to a device that has per-pixel alpha, and if so,
disable LCD text.

Add experimental flag to force AA in fontscaler (windows-only). Hope to remove
this later.



git-svn-id: http://skia.googlecode.com/svn/trunk@2387 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kDevice.cpp
kPaint.cpp
2739b27d7d13691603d07982ff0d6dd0658bd364 28-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move specialization of 16 -vs- 32 lcd format to the fonthost



git-svn-id: http://skia.googlecode.com/svn/trunk@2351 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
3e8ae5b457558435218a864dd0e852f83abfe802 28-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> kill gamma flags if we're drawing BW



git-svn-id: http://skia.googlecode.com/svn/trunk@2349 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
c12e1b138e736f70d698f14a3ffc74af6f3d8621 27-Sep-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace SkMath.h includes as required for fixed point.



git-svn-id: http://skia.googlecode.com/svn/trunk@2341 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalar.cpp
889bd8bd7f604acae0a6303365bc82c06da1e6f3 27-Sep-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkMath.h less visible in public header files.



git-svn-id: http://skia.googlecode.com/svn/trunk@2340 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kBitmapProcState_matrix.h
kEdge.cpp
bf2ac7e52f84095368dc50600fd6e78cc96044e3 26-Sep-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix 2333. Be sure fImage is assigned before giving to SkAutoMaskImage.


git-svn-id: http://skia.googlecode.com/svn/trunk@2334 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
0a60b3d32eae945688b69599f11679662657f751 26-Sep-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix leak of mask in draw.
http://codereview.appspot.com/5132046/


git-svn-id: http://skia.googlecode.com/svn/trunk@2333 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
2ec7280a178ad3dcfd2e645bc330eeb04a84bfcf 21-Sep-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some warnings

Review URL: http://codereview.appspot.com/5075049/



git-svn-id: http://skia.googlecode.com/svn/trunk@2304 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
5e2df64215f12660ab26b96816f40ad8e32bf16f 21-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect when LCD is really just BW, and remark the glyph as that.
allows us to take a much faster blitter.
TODO: inform SkGlyphCache of this, so it can shrink its allocation
for the image buffer (since BW takes up 1/16 as much ram)
TODO(2): allow for A8->BW conversion my having scalercontext set a flag
if it really-wants A8 (i.e. we have a maskfilter)



git-svn-id: http://skia.googlecode.com/svn/trunk@2301 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
98b11f1c214affb3dab51716ddf8dac2248b54cd 21-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> flatten/unflatten fSegmentMask



git-svn-id: http://skia.googlecode.com/svn/trunk@2300 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b3b0a5b128885cc82d07be98c8c57614b9eea3dd 21-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> update fSegmentMask inside ::transform() (thank you validate!)



git-svn-id: http://skia.googlecode.com/svn/trunk@2293 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
10296ccb6a63c65b2e60733a929bf15d8bf94309 21-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add segment types query to SkPath (i.e. does it have any quads)



git-svn-id: http://skia.googlecode.com/svn/trunk@2292 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
6a87fafc5ce0d7fdf1decf8bb9dd6942f2433add 19-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert match for newAlpha to exactly match old math, so we don't drive
dumprendertree crazy



git-svn-id: http://skia.googlecode.com/svn/trunk@2287 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
ecadf99c8450646dfd9c2754f3e845245beab8b6 19-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use new SkDrawTreatAsHairline method to decide when to approximate a thin-line
with a hairline (and have its alpha modulated).

idea is to be able to share this new function with SkGpuDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@2283 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kDrawProcs.h
4bce115b316ec0ecc17e7b24ad7b1086fa3a8796 14-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make string's reference counting thread-safe



git-svn-id: http://skia.googlecode.com/svn/trunk@2268 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
c27b74174e6a734db3cf1b5a5354eab8f3d27c1c 13-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add override for max-text-size for lcd



git-svn-id: http://skia.googlecode.com/svn/trunk@2258 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
bcb671c82a7341253864cda3a5c46d396402d7fb 13-Sep-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkCanvas::getClipDescription() and getClipDeviceBounds() so clients don't
need to explicitly get the exact clip & compute those values themselves. (We
may be able to provide description/bounds more cheaply than the exact clip.)



git-svn-id: http://skia.googlecode.com/svn/trunk@2255 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
8a0b0291ae4260ef2a46f4341c18a702c0ce3f8b 13-Sep-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r2250 - removal of setMatrixClip() - because Chrome makes heavy use
of those functions in a way we're not yet ready to clean up.



git-svn-id: http://skia.googlecode.com/svn/trunk@2254 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
f2068adc2c4123075a17bf838171e498584312b3 13-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_RESTRICT to mask procs
separate out opaque and non for lcd16 blits



git-svn-id: http://skia.googlecode.com/svn/trunk@2253 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
4f79b9be9ea5e8998b3692c1030ae2c90a796e9d 13-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> set max size for lcdtext



git-svn-id: http://skia.googlecode.com/svn/trunk@2252 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
66d57255ad984f8926e4ed9d45bfb00cdfc90f4e 12-Sep-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replaces SkDevice::setMatrixClip() with markMatrixDirty() and markClipDirty(),
which require no arguments and so may be called without requiring the matrix
and clip to be completely evaluated.

De-inlines virtual functions in SkDevice interface.



git-svn-id: http://skia.googlecode.com/svn/trunk@2250 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
383963280ddd13030331765fe88d2aefa3e32130 09-Sep-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> [gpu] Remove getMaxStretch for perspective, use mapRadius for perspective path subdiv tol, add test

Review URL: http://codereview.appspot.com/4975063/



git-svn-id: http://skia.googlecode.com/svn/trunk@2246 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
b423d49e3f6e282986b63270584c8d6b55b5934f 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable premul check for now in 16bit blit, until we cleanup GDI's mess



git-svn-id: http://skia.googlecode.com/svn/trunk@2241 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
181e9bd9484ece4132e0cc5cfcff602134e5489d 07-Sep-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve gpu path subdiv with perspective, remove tolerance scale, fix comment

Review URL: http://codereview.appspot.com/4993041/



git-svn-id: http://skia.googlecode.com/svn/trunk@2239 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
a5adf5385dc6958bda4dad47f59c1c45bd98c627 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use templated skipT() for skipping structs within a reader



git-svn-id: http://skia.googlecode.com/svn/trunk@2238 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPicturePlayback.h
55b5f4bd6a69e70feeaf6018171882ab9cd250ae 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkPoint::CanNormalize to unify decisions about when a vector is degenerate



git-svn-id: http://skia.googlecode.com/svn/trunk@2236 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
kStroke.cpp
9987ec3791336bad6af5cbe513564786b2df55aa 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add impl for drawBitmapNine



git-svn-id: http://skia.googlecode.com/svn/trunk@2234 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
f0b5e1190af9807a027c0adba2f1380663c8e910 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add drawBitmapNine to canvas
will add to device soon I think



git-svn-id: http://skia.googlecode.com/svn/trunk@2233 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
f244f901a9b76b75447e74cefd077ccf16eb8f40 06-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect when scale is really 1.0, and don't mis-mark our flags to kScale



git-svn-id: http://skia.googlecode.com/svn/trunk@2230 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
5af16f8d670b3ce1c7644a4737e02e2e2257614e 02-Sep-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reduce size of filter mask.
http://codereview.appspot.com/4965057/

Reduce the size of filter masks, fix HQ blur when clipped, and add tests.


git-svn-id: http://skia.googlecode.com/svn/trunk@2211 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
d51bfa0583c82c7b731b993e56159fbf815dd2e0 30-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename getBounds to getGlobalBounds, since it now takes the device's origin
into account. Remove unused intersects().



git-svn-id: http://skia.googlecode.com/svn/trunk@2193 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
dd5f7442f65813c1023a59c3380f4446583ccd5d 30-Aug-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkMatrix::getPerspectiveTypeMaskOnly() and SkMatrix::isTriviallyIdentity().
Reduces profile time in setConcat() and computeTypeMask() for demos that
do a lot of matrix concatenation.



git-svn-id: http://skia.googlecode.com/svn/trunk@2191 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
45482d1d2b97de185df137a1db40cbe5a62313a5 29-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix pictures to not skip-over clip ops that might expand the clip



git-svn-id: http://skia.googlecode.com/svn/trunk@2187 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
17b78946096265d80215a6c946286ecaa35ea7ed 26-Aug-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rolling back the experimental rollbacks in r2178-2179

git-svn-id: http://skia.googlecode.com/svn/trunk@2180 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
5f226572b3b6e1a6fea11f5f3c862a47158f66fe 26-Aug-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rolling tree back to its state as of r2169 to see if that fixes Windows buildbots

git-svn-id: http://skia.googlecode.com/svn/trunk@2179 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3a9eaeccb0bacd81011984d49feeb4e0a849fc13 25-Aug-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't intersect clipstack with root device bounds

Review URL: Don't intersect clipstack with root device bounds



git-svn-id: http://skia.googlecode.com/svn/trunk@2175 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
2e68478d8654c8a4048b45ad16ac039dadb25c33 24-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkComputeAxisAlignmentForHText(const SkMatrix& matrix) out of inline,
since that isn't really necessary, and it is generating a warning/error for
some builds ('defined but not used')



git-svn-id: http://skia.googlecode.com/svn/trunk@2169 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
cb6ccdde5120ec45df208c0b958b263d8252a505 23-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> respect subpixel positioning



git-svn-id: http://skia.googlecode.com/svn/trunk@2165 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
647a804c3dd53b6743091ec97dd12111f90efec3 23-Aug-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Core skia changes to prepare for Gr AA Hairline renderer

Review URL: http://codereview.appspot.com/4940045/



git-svn-id: http://skia.googlecode.com/svn/trunk@2160 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
kPoint.cpp
52c748b1691f02f90b27c35bc05074fcef709e66 22-Aug-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Gpu can draw underlined text.
http://codereview.appspot.com/4919047/


git-svn-id: http://skia.googlecode.com/svn/trunk@2154 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
cf598b176da861a8fd1a4e2386a7ddf874684bb3 22-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> refactor utility code to create a mask (any format) from the path, for those
cases when we need to do that instead of the scalercontext subclass (e.g.
stroking, patheffects, etc.)

This also now keeps the LCD formats, rather than forcing those down to grayscale.

This also respects subpixel position when it requests the path from the subclass.
Note it is still up to the subclass to notice that, and potentially adjust their
hinting to respect subpixelness (e.g. hinting in Y but not X for horizontal text)



git-svn-id: http://skia.googlecode.com/svn/trunk@2153 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
ddc75dc216c36acce70aceb293b9b0a0257c2f21 22-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow the y-baseline to float except when text is horizontal, as we were already
doing for the gpu case. Note: drawPosText was already behaving this way, this
change just brings drawText into line with drawPosText.



git-svn-id: http://skia.googlecode.com/svn/trunk@2152 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
37ad8fb72ff1b3faac93b01ead2c79e1a06fc172 18-Aug-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Subset font advance data (W array).

Patch by arthurhsu@chromium.org. Original CL:
http://codereview.appspot.com/4830068
http://codereview.appspot.com/4905051/

Review URL: http://codereview.appspot.com/4911042

git-svn-id: http://skia.googlecode.com/svn/trunk@2134 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kTypeface.cpp
e25c68402b38ac01dc1ae196ae8a5265b773c5f2 17-Aug-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Canvas to handle null layer device.
http://codereview.appspot.com/4907045/

See also http://code.google.com/p/chromium/issues/detail?id=93000.



git-svn-id: http://skia.googlecode.com/svn/trunk@2130 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7b13aca86f7c68322a1e84f5ca646f7dc9cade6b 17-Aug-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Improve generation of glyph advance array." This reverts commit r2126

gm segfaults in font id retrieval.

TBR=arthurhsu@chromium.org

Review URL: http://codereview.appspot.com/4901049

git-svn-id: http://skia.googlecode.com/svn/trunk@2128 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kTypeface.cpp
e7f3300f4250cbe308651f59c992edf6b779a24d 17-Aug-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve generation of glyph advance array.

Review URL: http://codereview.appspot.com/4830068

git-svn-id: http://skia.googlecode.com/svn/trunk@2126 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
kTypeface.cpp
f468e47ba5bf254a93ba5d1a81f9fbead7f11bd5 10-Aug-2011 yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Write null for any function pointers when using the cross process flag


git-svn-id: http://skia.googlecode.com/svn/trunk@2096 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
c34d7cfca1892babc0c3b8811da1201ef466bd03 10-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-get the function-ptr when we unflatten a ProcCoeffXfermode



git-svn-id: http://skia.googlecode.com/svn/trunk@2093 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
88edf1e50794e6d8cd7cc671ffce4f5e329ef888 08-Aug-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Protect much of SkDevice and clarify usage of drawDevice.
http://codereview.appspot.com/4798069/



git-svn-id: http://skia.googlecode.com/svn/trunk@2066 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
a767fa06ca28be9df1ff6e08a299e0bec839a2dc 05-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add api for scalers to force us to use skia to generate their bits from their
path. This may allow the windows scaler to do that if GDI is giving bad
results (i.e. not respecting the request for antialiasing).



git-svn-id: http://skia.googlecode.com/svn/trunk@2054 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
53d11e0655c11101e5e8a1be7d48d049d5d316a1 05-Aug-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> submit LCD alpha support

http://codereview.appspot.com/4851042/

M src/core/SkBlitter_ARGB32.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2047 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
cf9b7505f22aedde30612655e16f330f19ba2470 01-Aug-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bug in SkMatrix::invert where typemask is not set on inverse when a matrix is inverted into itself.

Review URL: http://codereview.appspot.com/4819050/



git-svn-id: http://skia.googlecode.com/svn/trunk@2002 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
2c2508d2ede7e6a8eb43dba0ef2419905ccbb3d8 29-Jul-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> More variable initializations and curly braces to avoid Linux compiler
warnings.



git-svn-id: http://skia.googlecode.com/svn/trunk@1993 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
b81be7a7809fb0c24ff7d589d537c38b04b772f1 28-Jul-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Include <new> required for placement new in SkTLazy.

Also, add SkTLazy to gyp and remove old includes.


git-svn-id: http://skia.googlecode.com/svn/trunk@1984 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e 28-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Automatic update of all copyright notices to reflect new license terms.

I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
RGB32_Clamp_Bilinear_BitmapShader.h
k64.cpp
kAdvancedTypefaceMetrics.cpp
kAlphaRuns.cpp
kAntiRun.h
kBitmap.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_filter.h
kBitmapProcState_matrix.h
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
kBitmapSampler.cpp
kBitmapSampler.h
kBitmapSamplerTemplate.h
kBitmapShader16BilerpTemplate.h
kBitmapShaderTemplate.h
kBitmap_scroll.cpp
kBlitBWMaskTemplate.h
kBlitRow_D16.cpp
kBlitRow_D32.cpp
kBlitRow_D4444.cpp
kBlitter.cpp
kBlitter_4444.cpp
kBlitter_A1.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kBlitter_Sprite.cpp
kBuffer.cpp
kCanvas.cpp
kChunkAlloc.cpp
kClampRange.cpp
kClipStack.cpp
kColor.cpp
kColorFilter.cpp
kColorTable.cpp
kComposeShader.cpp
kConcaveToTriangles.cpp
kConcaveToTriangles.h
kCordic.cpp
kCordic.h
kCoreBlitters.h
kCubicClipper.cpp
kCubicClipper.h
kData.cpp
kDebug.cpp
kDeque.cpp
kDevice.cpp
kDither.cpp
kDraw.cpp
kDrawProcs.h
kDrawing.cpp
kEdge.cpp
kEdge.h
kEdgeBuilder.cpp
kEdgeBuilder.h
kEdgeClipper.cpp
kFP.h
kFilterProc.cpp
kFilterProc.h
kFlate.cpp
kFlattenable.cpp
kFloat.cpp
kFloat.h
kFloatBits.cpp
kFontHost.cpp
kGeometry.cpp
kGlobals.cpp
kGlyphCache.cpp
kGlyphCache.h
kGraphics.cpp
kLineClipper.cpp
kMMapStream.cpp
kMallocPixelRef.cpp
kMask.cpp
kMaskFilter.cpp
kMath.cpp
kMatrix.cpp
kMemory_stdlib.cpp
kMetaData.cpp
kPackBits.cpp
kPaint.cpp
kPath.cpp
kPathEffect.cpp
kPathHeap.cpp
kPathHeap.h
kPathMeasure.cpp
kPicture.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kPixelRef.cpp
kPoint.cpp
kProcSpriteBlitter.cpp
kPtrRecorder.cpp
kQuadClipper.cpp
kQuadClipper.h
kRasterizer.cpp
kRect.cpp
kRefDict.cpp
kRegion.cpp
kRegionPriv.h
kRegion_path.cpp
kRegion_rects.cpp
kScalar.cpp
kScalerContext.cpp
kScan.cpp
kScanPriv.h
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
kScan_Path.cpp
kShader.cpp
kShape.cpp
kSinTable.h
kSpriteBlitter.h
kSpriteBlitterTemplate.h
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kStream.cpp
kString.cpp
kStroke.cpp
kStrokerPriv.cpp
kStrokerPriv.h
kTSearch.cpp
kTSort.h
kTemplatesPriv.h
kTextFormatParams.h
kTypeface.cpp
kTypefaceCache.cpp
kTypefaceCache.h
kUnPreMultiply.cpp
kUtils.cpp
kWriter32.cpp
kXfermode.cpp
026dceead9b957e0b080d55c5a7fbb919e6f00b6 27-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> include <new> for SkTLazy, since windows seems to need it.



git-svn-id: http://skia.googlecode.com/svn/trunk@1976 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
32e5d97ccf60f859db063ebd6e903c362e625767 27-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't modify a const paint



git-svn-id: http://skia.googlecode.com/svn/trunk@1974 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
90751c57886406279e3aef7a57e72af35b3e77cf 27-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use safeunref on typefaces, since Deserialize might return NULL.



git-svn-id: http://skia.googlecode.com/svn/trunk@1969 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
6fc321a18acc8c6437735007240eefe7054e83b0 27-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add test for SkConvertQuadToCubic



git-svn-id: http://skia.googlecode.com/svn/trunk@1967 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
f131694617ce0410eafcb01124459382576bb1d9 26-Jul-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add functionality for isRect() to SkPath.
http://codereview.appspot.com/4807052/

M src/core/SkPath.cpp
M tests/PathTest.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@1964 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
fd4236ecc1d5eb1bb48ca9dc33df5e9051c3036e 25-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't modify const SkDraw, since multiple threads may be watching it...



git-svn-id: http://skia.googlecode.com/svn/trunk@1954 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
40c2ba27b6e5c6a4b6c073264f8c0a7c86355abe 25-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don/t modify const paint, since it could be used in different threads



git-svn-id: http://skia.googlecode.com/svn/trunk@1953 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
d4af56c5f24a7bf0200e20a591d55f8c82fb9627 25-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Exit SkBitmap::scrollRect() early if width <= 0

As suggested in email from saintlou@google.com
Review URL: http://codereview.appspot.com/4806047

git-svn-id: http://skia.googlecode.com/svn/trunk@1948 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap_scroll.cpp
b14ef7315afafc5082791b7c49213ef99f3275cb 21-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkFlate.cpp when SK_ZLIB_INCLUDE is not #defined.

This was failing for Windows builds since r1911.

git-svn-id: http://skia.googlecode.com/svn/trunk@1923 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
b530ef5869c5c64af8f3b3c62ed7711fe4325c9c 20-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> have == always return bool, never int



git-svn-id: http://skia.googlecode.com/svn/trunk@1915 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
421d6443fbd3a913dfa32b6492c4a2969bc6314b 20-Jul-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Make stream compression optional on a per device basis.

There are a lot of small pieces to make this change work:
- SkPDFDocument (and SkPDFCatalog) take flags to disable compression (and font embedding - not implemented yet, can disable font subsetting for now).
- SkPDFStream now defers compression until the size/emit step.
- Classes that *had* a stream (because they didn't know the stream size at construction time) now *are* streams to make the substitution work correctly.
- The SkPDFShader implementation got pulled apart into two classes, one that is a SkPDFDict, and one that is a SkPDFStream (making the common ancestor SkPDFObject).
- Added helper methods in SkPDFObject for children that have simple resource lists.
- Added an iterator to SkPDFDict so that a substitute SkPDFStream can get a copy of the stream dictionary.
- Change SkPDFDocument to have a pointer to an SkPDFCatalog to remove a new circular header reference.

Review URL: http://codereview.appspot.com/4700045

git-svn-id: http://skia.googlecode.com/svn/trunk@1911 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
948639b823dc76dbaa8cc68f32c1f7defcb8fb07 19-Jul-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove dead edgebuilding code



git-svn-id: http://skia.googlecode.com/svn/trunk@1893 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
5c63865b529eb5714e41419dfa23c70d26ff6e4e 18-Jul-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use texture cache for writePixels temp

Review URL: http://codereview.appspot.com/4757050/



git-svn-id: http://skia.googlecode.com/svn/trunk@1887 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
1ddd7c39289b7dd18537fdac4b630e378cd78842 13-Jul-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change pdfTransform to asAffine.
http://codereview.appspot.com/4704044/



git-svn-id: http://skia.googlecode.com/svn/trunk@1851 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
b3b8dfa31326c51dab8b5ed569e19ee715582d1b 13-Jul-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix path iter returned pt on close, test path close pt in unit test.

Review URL: http://codereview.appspot.com/4715044/



git-svn-id: http://skia.googlecode.com/svn/trunk@1849 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
333d6cb2448d0febcbeb7c8c7310c0ff2d1a6104 12-Jul-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove a few old uses of SK_RESTRICT on references.
Conditionally #defines SK_RESTRICT to be __restrict on Win32;
this successfully compiles in VS2008.



git-svn-id: http://skia.googlecode.com/svn/trunk@1841 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
e74e28df11abbe069d82221ee029d281a81ea328 11-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> pass correct value for black



git-svn-id: http://skia.googlecode.com/svn/trunk@1836 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
1501803e93a9c76b4632086d05c2813cb475db27 11-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> limit clip to fixed-point range, so our edges don't overflow



git-svn-id: http://skia.googlecode.com/svn/trunk@1835 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
47e0a09052eb4c93a4506ebf3c64070fafc3d4b3 08-Jul-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace vsnprintf with vsnprintf_s; add code to reproduce issue to StringTest;
fix another Windows test failure.



git-svn-id: http://skia.googlecode.com/svn/trunk@1829 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
e6ea606fb92cd611b965806cb005f87495b261f2 07-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-enable SSE2 blitmask procs, only excluding if we're black (in which case
the protable version is still faster)



git-svn-id: http://skia.googlecode.com/svn/trunk@1819 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
2b75f4279a237ceea929ff8ac019f7fbd3ad08b5 07-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add asABlur() to maskfilters, so devices like gpu and pdf can query them.



git-svn-id: http://skia.googlecode.com/svn/trunk@1816 2bbb7eff-a529-9590-31e7-b0007b416f81
kMaskFilter.cpp
9c49bc3e643c435677727c1c0904c4a7cb7a6907 07-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow texture-backed bitmaps to perform a read-back when lockPixels is called.
This means we have to be even more cautious about when we call lock, and we should
always check getTexture() first if we can handle a texture directly, rather than
forcing the read-back to get the bits.



git-svn-id: http://skia.googlecode.com/svn/trunk@1815 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kDevice.cpp
kPixelRef.cpp
2be9e8b407624fa696854b78b407b97a01dbb703 06-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ColorShaders report no bitmaps, but only a color_gradient, which we now detect
on the gpu side.



git-svn-id: http://skia.googlecode.com/svn/trunk@1810 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
cde92111d50a96b6d0f3e166fbac7c9bc6eca349 06-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkDeviceFactory from the collective consciousness, now that devices know
how to create compatible siblings.



git-svn-id: http://skia.googlecode.com/svn/trunk@1808 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
a3237875f807aed9608cb4a023bc044f32850727 05-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> suppress printfs



git-svn-id: http://skia.googlecode.com/svn/trunk@1795 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
37a201231b8f6381938282675eb9abb50ab3b389 05-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkEmptyShader, and return it from CreateBitmapShader if the bitmap is empty
(i.e. has no pixels at all)



git-svn-id: http://skia.googlecode.com/svn/trunk@1792 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kShader.cpp
1d6ee0bd4db7f3b676209341214641d9af5a965f 05-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> defer allocating blitter until we know we need it (i.e. gpu-devices don't need,
which they signal by setting a custom D1G proc)



git-svn-id: http://skia.googlecode.com/svn/trunk@1791 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
0b8b3bb08330dd341acbd52c16e55455325e465a 30-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make inline version of premultiply, to speed up gradient creation.

We could speed-up again if we...
- respected kDither and only built 1/2 of the table for non-dither requests
- output simple params to the gpu rather than always a texture
- detected that we have no alpha, and then can skip premul per-entry



git-svn-id: http://skia.googlecode.com/svn/trunk@1772 2bbb7eff-a529-9590-31e7-b0007b416f81
kColor.cpp
4ee7ae5dcfe2055cfcfc21bf2cec1d790330eb4a 30-Jun-2011 junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding the notion of a volatile bitmap to SkBitmap.

Volatility is a hint that indicates that the contents of a bitmap
are ephemeral. SkGpuDevice will not preserve volatile bitmaps
in its texture cache, and will use textures from a pool of
keyless (recyclable) textures to avoid the performance hit of
texture allocation and release.

A subsequent change is required in webkit in order to take advantage
of this optimization. putImageData, and other methods that create
temporary bitmaps will have to mark their bitmaps as volatile.
before rendering them through skia.



git-svn-id: http://skia.googlecode.com/svn/trunk@1769 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
3a1f6a06cc706b35d9d6086ffbf5135cbf42bf8a 30-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkStringPrintf helper fucntion + a new unit test for it.



git-svn-id: http://skia.googlecode.com/svn/trunk@1766 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
f83ceb99730e124dde80f1780764a9995254c47a 29-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> extract a new factory when we get a new device



git-svn-id: http://skia.googlecode.com/svn/trunk@1760 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
13649ce32f41774a49760e50083c13c349cb0b5c 28-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix sign/unsigned warnings



git-svn-id: http://skia.googlecode.com/svn/trunk@1733 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
33114e0e59ef1bb9c37297a147d98aa325cabaf9 28-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused and untested SkPath::subdivide()



git-svn-id: http://skia.googlecode.com/svn/trunk@1732 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
3aaf6a0c874d06a3294454e515a9ec3c81bbd8b7 28-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix exceeds_dist: don't double the loop counter (the caller has done that)



git-svn-id: http://skia.googlecode.com/svn/trunk@1731 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
314e9b3ba0b950b99e4d11e3302933014c35c3ed 27-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add ptr/len and SkData versions of Deflate()



git-svn-id: http://skia.googlecode.com/svn/trunk@1726 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
effc5016f040945a53ab0ea47f9ea02404c17805 27-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete text codepaths



git-svn-id: http://skia.googlecode.com/svn/trunk@1725 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kBlitter_ARGB32_Subpixel.cpp
kPaint.cpp
kScalerContext.cpp
5667afc5cb4a8cd15a27667f222b6d9c94d61c38 27-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove drawShape from canvas api



git-svn-id: http://skia.googlecode.com/svn/trunk@1723 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
7453d0e450917209871c7ea54132bb5c18c7e2d3 24-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use general SkWStream for parameter



git-svn-id: http://skia.googlecode.com/svn/trunk@1719 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
67d0cff9acb2f2a9fe19c5282ca06ac3332a043c 24-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move common code into shared helper function



git-svn-id: http://skia.googlecode.com/svn/trunk@1718 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
8a85d0c4938173476d037d7af0ee3b9436a1234e 24-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> replace detach/getStream apis on dynamicwstream with SkData

http://codereview.appspot.com/4657046/



git-svn-id: http://skia.googlecode.com/svn/trunk@1714 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
kStream.cpp
900d8772e30c329c25baff77098dfdd85fb8e94e 24-Jun-2011 yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed include statements to correctly link mac/ios libraries


git-svn-id: http://skia.googlecode.com/svn/trunk@1712 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
3a31ac1cf5d7d37da5a77ce18c43a62bf0781154 24-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add (replacing SkDataRef)



git-svn-id: http://skia.googlecode.com/svn/trunk@1698 2bbb7eff-a529-9590-31e7-b0007b416f81
kData.cpp
8d0b5770f8fcfdeb8ad9808e58c49116f14b6190 24-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename public SkDataRef to SkData
rename animator's internal SkData to SkDataInput



git-svn-id: http://skia.googlecode.com/svn/trunk@1697 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataRef.cpp
kStream.cpp
70442a6cf73c9a822df23961f5e16dc3abc18f26 23-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add copyToData() to dyanamicwstream



git-svn-id: http://skia.googlecode.com/svn/trunk@1695 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
1eeaf0ba2381f84ffd889f56303cbe0d1886bb21 22-Jun-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add support for 8 bits/component glyphs, to
better match the fonts produced by CoreText on OS/X.

M include/config/SkUserConfig.h
M include/core/SkMask.h
M include/core/SkScalerContext.h
M src/core/SkBlitter_ARGB32.cpp
M src/core/SkScalerContext.cpp
M src/core/SkPaint.cpp
M src/gpu/SkGrFontScaler.cpp
M src/ports/SkFontHost_mac_coretext.cpp
M src/ports/SkFontHost_mac.cpp
M gpu/include/GrTypes.h
M gpu/src/GrAtlas.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@1672 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kPaint.cpp
kScalerContext.cpp
3c898186c9082c535e589807752a0a9dc5d28aa0 22-Jun-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix more coverity defects - Uninitialized class fields.

In SkCanvas, SkBitmapCache::Entry, SkDrawLooper

CID=13440,1366,16236,14393

Review URL: http://codereview.appspot.com/4628055

git-svn-id: http://skia.googlecode.com/svn/trunk@1671 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e1bc274295ec57cb3d3f01aaa8abff3b49c76c73 22-Jun-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a batch of coverity defects, uninitialized class fields.

In SkClipStack::B2FIter::Clip, SkWriter32, SkClipStack::Rec, SkDeque::F2BIter, SkPDFShader::State
CID 15427,15433,15533,15532,16274,16740

Review URL: http://codereview.appspot.com/4630055

git-svn-id: http://skia.googlecode.com/svn/trunk@1669 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
kDeque.cpp
e03c652478aba1f632d5bf7c966617621be84155 21-Jun-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Handle possibly NULL deref in comparison

Committed on behalf of groby@chromium.org

OCL=http://codereview.appspot.com/4633058/
CID=16790,16789

Review URL: http://codereview.appspot.com/4654049

git-svn-id: http://skia.googlecode.com/svn/trunk@1666 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
6bac947cd5bc460dd9166ada6310d678fd2e39f8 21-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add option in flattening to write factory names inline, as we are recording.
SkGPipe needs this, since it cannot (unlike SkPicture) see all of the factories
before it hands its data to the reader.

In this mode, the writer embedds the factory name the first time it sees it,
and then after that writes an index (referencing the fFactorySet). The reader
installs an empty array, and as it encounters names, appends them to that array
so that subsequent indices can be used to retrieve the previously named factory.

Some of the existing patheffects did not register their factory names, so those
changes are also part of this CL. Annoyingly, to register your factory using the
current scheme, it has to be in the public section of the class definition.




git-svn-id: http://skia.googlecode.com/svn/trunk@1663 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kPathEffect.cpp
kWriter32.cpp
fd0ffcf486a239d65b586bd638e5aaca907244de 21-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change string read/write to store length as full 32-bit value. This simplifies
the internal logic, and allows SkFlattenable to rely on this when distinguishing
between 0 and indices (which will soon be negative) and string-lengths.



git-svn-id: http://skia.googlecode.com/svn/trunk@1660 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
ccb74eabccf19f66b6bf31f4acae89b62baa16c3 21-Jun-2011 yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Changed mac specific files to use ApplicationServices rather than Carbon
http://codereview.appspot.com/4644053/


git-svn-id: http://skia.googlecode.com/svn/trunk@1658 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
e97f0856a8044866b12527819d14cdfbcdfd96f2 17-Jun-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add createNewCompatibleDevice. Allow devices to have a NULL factory and saveLayer will fall back on createNewCompatibleDevice.

Review URL: http://codereview.appspot.com/4633044/



git-svn-id: http://skia.googlecode.com/svn/trunk@1625 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
af951c9bc4cbb6e60b430194fe5127ebe99c53fb 16-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make SkDevice constructors explicit between offscreen and on/direct

http://codereview.appspot.com/4632044/



git-svn-id: http://skia.googlecode.com/svn/trunk@1620 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
1fd56dc6e189ea0e94b5df9af959c243573f8883 15-Jun-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkPoint::Normalize() for SK_SCALAR_IS_FIXED and add performance warning to its declaration

http://codereview.appspot.com/4582043/



git-svn-id: http://skia.googlecode.com/svn/trunk@1602 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
a87cd2af4c7f46ba8437c2e500805c9deb9e3a40 15-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Increase compatibility with clang, mostly around SK_RESTRICT.
Attempting to fix up our use of __restrict__ so Chrome can enable it.



git-svn-id: http://skia.googlecode.com/svn/trunk@1597 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter_RGB16.cpp
kPackBits.cpp
kSpriteBlitterTemplate.h
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kXfermode.cpp
35ae8ea9befa4ebc9576769ecc7b48c4644f535f 14-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDataRef (for future use)



git-svn-id: http://skia.googlecode.com/svn/trunk@1588 2bbb7eff-a529-9590-31e7-b0007b416f81
kDataRef.cpp
baa677b24896b67ecb08fc3b13c4c36953243a7d 14-Jun-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> delete all old (non-Gyp) buildfiles



git-svn-id: http://skia.googlecode.com/svn/trunk@1583 2bbb7eff-a529-9590-31e7-b0007b416f81
akefile.am
ore_files.mk
7d26c590f6bc431a5ecf5c25619b64d058613a4d 13-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add 2nd parameter to SkFontHost::NextLogicalFont()
needed by android to map different styles of fallback fonts



git-svn-id: http://skia.googlecode.com/svn/trunk@1562 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kScalerContext.cpp
2f3567c0003b948ad90528e597ea1e8326f644ae 09-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for unifying results between runs and mask backends for aa



git-svn-id: http://skia.googlecode.com/svn/trunk@1554 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
8d430185e08d2067584837a76b7193b803fee7a0 06-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Increase use of SkMatrix::hasPerspective(), merge in has_perspective().
Unifies SkMatrix::hasPerspective(), has_perspective(), and manual tests of SkMatrix::getType & kPerspective_Mask.



git-svn-id: http://skia.googlecode.com/svn/trunk@1517 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
kMatrix.cpp
kPaint.cpp
kPath.cpp
kShader.cpp
521ed7c7c2e94f6e32132eb26ef875e3d1a4b331 06-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Attempt to correct issue with fixed point from SkMatrix changes in r1512.



git-svn-id: http://skia.googlecode.com/svn/trunk@1515 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
99683cede275123fc0f20ff479d4b34986652e8b 06-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move code inside #ifdef to fix warning



git-svn-id: http://skia.googlecode.com/svn/trunk@1513 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
ac3852571e4079e7dee8fb576e31048d596c8c17 06-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Benchmarking suggests that replacing some of the conversions from float to int
with direct floating-point comparisons in computeTypeMask() is a significant win
(up to 40%?).
In practice, we see a 10-15% speedup in this function (the current most
expensive Skia function) in Chrome on the FishIETank demo.

The remainder of the function looks like it ought to be amenable to similar
speedups, but we haven't found a rewrite that behaves well in benchmarking yet.

http://codereview.appspot.com/4551097/


git-svn-id: http://skia.googlecode.com/svn/trunk@1512 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
ab0ab4a601356160f2e49d7935ddd0f559a848e2 01-Jun-2011 caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> committing http://codereview.appspot.com/4515175/

git-svn-id: http://skia.googlecode.com/svn/trunk@1473 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
34e52a0392f146b62f46cfe6714d9bddbb8d9e77 01-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> initialize fCurrY



git-svn-id: http://skia.googlecode.com/svn/trunk@1468 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
3fb5187647397e056843c1f41a508992be22175d 01-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speed-up SkMatrix::preScale by 3x, by special-casing it instead of just calling
concat. Inspired by the profile of the fishtank site



git-svn-id: http://skia.googlecode.com/svn/trunk@1462 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
fa57ae7d1ec7404a654e0f32c09b698feec1b7fa 31-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remember previous x-offset when we re-enter the runs array. speeds up paths
with lots of x-transitions in a single scanline



git-svn-id: http://skia.googlecode.com/svn/trunk@1456 2bbb7eff-a529-9590-31e7-b0007b416f81
kAlphaRuns.cpp
kAntiRun.h
kScan_AntiPath.cpp
5a1e79595f7d1f951fb777cb16ad730bae649c84 31-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead code



git-svn-id: http://skia.googlecode.com/svn/trunk@1447 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
c0c4d22bac5f9d762fe34d2f606105b6e1c9fa0f 26-May-2011 twiz@google.com <twiz@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Removal of obsolete interface, SkMatrixClipObserver.

git-svn-id: http://skia.googlecode.com/svn/trunk@1435 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
eebb4a2681af98047a804b6f8d4d76e0cd40ab76 26-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> balance the call to matrix::flatten from r1414. Formerly both of these were
just memcpy. This fixes a regression when using matrices in pictures.



git-svn-id: http://skia.googlecode.com/svn/trunk@1428 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
8887ede82465687355c7a1c51e4553e99b2fb15a 25-May-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Improve the SkClipStack skipping prefix code.

Because of intersecting done in SkClipStack, we may have to do more work in the last entry of the prefix.

Review URL: http://codereview.appspot.com/4530066

git-svn-id: http://skia.googlecode.com/svn/trunk@1418 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
50108cdbfea57e983667cd1fecd97a8a9df26b20 24-May-2011 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Grab-bag of memory fixes. SkFlatMatrix::Flatten had the same issue as
Sk2DPathEffect: it was encoding a partially-unintialized matrix type mask.
The others are simply uninitialized vars in the sample code.

Review URL: http://codereview.appspot.com/4539072/



git-svn-id: http://skia.googlecode.com/svn/trunk@1414 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.cpp
69d05551332e61e22da4bd3b61fc6d065b461d4a 24-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add copyright notices



git-svn-id: http://skia.googlecode.com/svn/trunk@1403 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_shaderproc.h
dde0956375e87027df2fdd80d430dd819c217aac 23-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add cross-process option to gpipe
add unittests for reader32 and writer32



git-svn-id: http://skia.googlecode.com/svn/trunk@1397 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
9d7576724cf9602ff778b18126e0fef0ab3d3bf2 18-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> setHinting modifies fFlags in places, so call it last (after initializing fFlags)



git-svn-id: http://skia.googlecode.com/svn/trunk@1372 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
02b5331078861b02b61e9a93f845617a7c900409 18-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> encode current LCD orientation and order into font-cache-key



git-svn-id: http://skia.googlecode.com/svn/trunk@1368 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
2047f00e4698f83499ab91911999a65c21a951c9 17-May-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> get tests closer to passing for SKIA_SCALAR=fixed

http://codereview.appspot.com/4532064/



git-svn-id: http://skia.googlecode.com/svn/trunk@1351 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
b54455e440e66e0b1c30954d226226f49aac26d6 16-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change getConvexity() to now compute it if the value is set to kUnkown.
Change behavior for degenerate paths: now those return kConvex instead of kUnknown



git-svn-id: http://skia.googlecode.com/svn/trunk@1330 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
0b7b98260784da07b2b15ea06530ccd8fb6ad02b 16-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clean up sign detection code in computeconvexity



git-svn-id: http://skia.googlecode.com/svn/trunk@1327 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
85b6e399d56d2421980daa432f30910beda41922 15-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect more than one loop in computeconvexity



git-svn-id: http://skia.googlecode.com/svn/trunk@1326 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
04863fa14a44ddf85acbc6268690ebc3f0d1d6db 15-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add Convexity enum to SkPath



git-svn-id: http://skia.googlecode.com/svn/trunk@1324 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
34dae877941d1010fafa358a5ebcaebb9a23594a 11-May-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Fix ending condition for font advance construction.

The old code always ended (the last sequence of glyphs) on a range, even if there was a very long run at the end. This fixes that.

Review URL: http://codereview.appspot.com/4539045

git-svn-id: http://skia.googlecode.com/svn/trunk@1293 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
246bd0f2718fb17f18bd3fd4bc5e99fdd0560a82 11-May-2011 twiz@google.com <twiz@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> git-svn-id: http://skia.googlecode.com/svn/trunk@1292 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
f2eb5ab7806a62e89b8cb572b1b33b70b83b13ab 11-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix bug where we wrote uninitialized data to the flatten stream for shaders.

Both shader and gradient_shader write matrices to the flatten stream. However, they were
just calling write(&matrix, sizeof(SkMatrix)) and the matrix can contain lazily-computed
function ptrs as part of its internal cache. Thus two matrices that are logically the
same may write different bytes.

This is a problem because picture relies on flattening objects and then using the
flatten stream as a key into its cache. This matrix-write bug effectively kills the
effectiveness of the cache for shaders.

The fix is to write proper read/write functions for matrix (and region btw). These
call through to the existing low-level flatten routines (which just write into a
memory ptr).



git-svn-id: http://skia.googlecode.com/svn/trunk@1290 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kShader.cpp
cc4dac3dac215dc0dd56f7b30d07cc304671b033 10-May-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrMatrix an alias of SkMatrix. Add new methods to SkMatrix.

Review URL: http://codereview.appspot.com/4538043/

Checked in on behalf of reed@ with some additional work (remove the do-nother sk->gr matrix converter).



git-svn-id: http://skia.googlecode.com/svn/trunk@1289 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
87ec860f3899b41fcc465bd6ceb2e940eb2442f9 09-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unneeded asserts (which may fail from imprecise blits into the bitmap, but
do not affect the blits at head)



git-svn-id: http://skia.googlecode.com/svn/trunk@1286 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D16.cpp
9fbdf875183f5142b8e0ba46ab430cc46ad701bf 09-May-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Refactor content stream creation in SkPDFDevice to support more xfermodes.

Instead of writing all drawing and state updates into the final content stream immediately, this change creates a new ContentEntry each time the transform, clip, or paint changes. Drawing is done into a stream in the ContentEntry. When the consumer asks for the content, we combine all the ContentEntries with appropriate updates to the state (clip, transform, paint) in between. This allows us to modify the clip even after a drawing has completed. It also lets us remove ContentEntries with no drawing. Further optimization can be done to better use the stack features of PDF, for now we follow the previous model of having a single clip followed by a single transform on the graphic state stack.

Push rectangle logic into SkPDFUtil::AppendRectangle.
Change private functions to adhere to coding standards.

Review URL: http://codereview.appspot.com/4459041

git-svn-id: http://skia.googlecode.com/svn/trunk@1269 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
7744c205f20b5617e83d4af8f97b5771bfa8d671 06-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkPoint, creating an alias for GrPoint

http://codereview.appspot.com/4498041/



git-svn-id: http://skia.googlecode.com/svn/trunk@1268 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
fc296295257a9300098df56a1e3975580e13d329 06-May-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace GrStringBuilder with SkString. First step in cleaning up the shader generator. Slight performance hit when creating a new shader (<10% of total shader gen time on my Windows box is spent in building our string before handing it to GL). Much of this can be recovered by better usage pattern of SkString in coming revisions.

Review URL: http://codereview.appspot.com/4465053/



git-svn-id: http://skia.googlecode.com/svn/trunk@1266 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
f7398c3ab61053597541fa0b3cfc710006a3e62b 05-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> correctly compute coverage when an antialiased rect covers only 1 column of pixels



git-svn-id: http://skia.googlecode.com/svn/trunk@1256 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
8d90eeba09484cfc702e82a332c4a7a978a5cfc1 04-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add find()



git-svn-id: http://skia.googlecode.com/svn/trunk@1243 2bbb7eff-a529-9590-31e7-b0007b416f81
kPtrRecorder.cpp
c92545145d41a2497ae909401862c4f6f75c244c 04-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix precendence error (== binds tighter than &)
add new samples to solution



git-svn-id: http://skia.googlecode.com/svn/trunk@1240 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
17fb387a56f8fcfcb9ccf585e2c53ee8e709028d 04-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add debugging test for building SkDescriptor
update some samples



git-svn-id: http://skia.googlecode.com/svn/trunk@1237 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
2fcdbec6ff9260df8ed1d3a5459dd17afb8fa447 04-May-2011 scroggo <scroggo@2bbb7eff-a529-9590-31e7-b0007b416f81> Make the unix test app build.

There are two ways to build it, using the gyp files,
or using its own makefile. A recent update of a
sample made it no longer build using its own makefile.
Make it build once again.


git-svn-id: http://skia.googlecode.com/svn/trunk@1236 2bbb7eff-a529-9590-31e7-b0007b416f81
ore_files.mk
3048d4fd4e11399e412db4b3338cc0ff5a22b2b1 04-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove deprecated getViewport/setViewport



git-svn-id: http://skia.googlecode.com/svn/trunk@1235 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
acd471f47ccfb97cf2f2f00dc01cd1fd45bc1ef2 03-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> updated pipe



git-svn-id: http://skia.googlecode.com/svn/trunk@1231 2bbb7eff-a529-9590-31e7-b0007b416f81
kWriter32.cpp
1e1c36f4f89ad39e1d248edb745919e493242c68 03-May-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add comparison and assignment to SkClipStack (and fix an optimization bug).

Review URL: http://codereview.appspot.com/4423085

git-svn-id: http://skia.googlecode.com/svn/trunk@1230 2bbb7eff-a529-9590-31e7-b0007b416f81
kClipStack.cpp
59d2f63583512b47df579e80f1ae39c74fad5f3e 02-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix signed shift in blend32
use typefacecache in fonthost_win



git-svn-id: http://skia.googlecode.com/svn/trunk@1224 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
e49590524659689d43650ddc5d67d05524551fcf 02-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable lifecycle dumps



git-svn-id: http://skia.googlecode.com/svn/trunk@1221 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
2f3dc9dc4c970bd066be329a842a791d91f524e2 02-May-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add typefacecache
speedup lcd blits
clean up some samples



git-svn-id: http://skia.googlecode.com/svn/trunk@1220 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kTypeface.cpp
kTypefaceCache.cpp
kTypefaceCache.h
3b521d05335a1bf76be3456feb9dbfba0a51b339 29-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> update dox
code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1215 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
e9e08cc7b29f97ee9e823e68c3daf0f55c84b21a 29-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkPtrRecorder and related wrappers to SkPtrSet, since that is the pattern
is it providing. Also add a templated wrapper to handle typecasting of ptr types.



git-svn-id: http://skia.googlecode.com/svn/trunk@1214 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlattenable.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
kPtrRecorder.cpp
1447c6f7f4579942b32af6ffff1eadede40b42bc 27-Apr-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing flattenable registrations and CreateProc() functions;
fixes gm --serialize xfermode test case.



git-svn-id: http://skia.googlecode.com/svn/trunk@1199 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
ea4ac97dec2eb291139bd906939e0d2e05cdd7ef 26-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> make SkDeviceFactory reference counted



git-svn-id: http://skia.googlecode.com/svn/trunk@1180 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
739456585a0cc52b335cd1c0a9fc6b01782a7f89 25-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> devolve flattening parameters to their base classes
e.g. FlattenableReadBufer -> Reader32



git-svn-id: http://skia.googlecode.com/svn/trunk@1174 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
ebe5bcd7434666ffe3b56526b3d67e5ac4b17f60 20-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1157 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_Sprite.cpp
69bc9943c742f97614cc5b44a9960fc76873dfe6 20-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1156 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Hairline.cpp
feb8cc870df055099c6fcdfebdd6c1486bd91b27 19-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1153 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kMaskFilter.cpp
kPathEffect.cpp
kRasterizer.cpp
6b7aee387d3b4b2df5894b51fa1c0baf649c6540 19-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> optimize when we have a colorfilter, but no shader or xfermode



git-svn-id: http://skia.googlecode.com/svn/trunk@1152 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kColorFilter.cpp
13659f1f8d2e705c565203d45870b1afcd47cf98 18-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle overflow
note: gradient caller doesn't so we can still draw wrong when the caller
converts its initial fx from float->fixed. Perhaps SkClampRange should offer
a float interface as well.



git-svn-id: http://skia.googlecode.com/svn/trunk@1149 2bbb7eff-a529-9590-31e7-b0007b416f81
kClampRange.cpp
63c1ad82fc4232daff1b686cc78bba4c6a42916d 18-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add fFx1 field, returning where to start the iterator for fCount1 range
add unittest



git-svn-id: http://skia.googlecode.com/svn/trunk@1145 2bbb7eff-a529-9590-31e7-b0007b416f81
kClampRange.cpp
5eb158d84d0e1f6108e4ded5d2de1be9db0bf46c 15-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkClampRange to speedup clamp iterators
speeds up linear gradients 4x



git-svn-id: http://skia.googlecode.com/svn/trunk@1139 2bbb7eff-a529-9590-31e7-b0007b416f81
ore_files.mk
73ccb980e99174f367bde5013a4a2a9b319ea74b 15-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move header
fix warning in release build



git-svn-id: http://skia.googlecode.com/svn/trunk@1136 2bbb7eff-a529-9590-31e7-b0007b416f81
kClampRange.cpp
kClampRange.h
f5dbe2f00f853c6a1719924bdd0c33335a53423a 15-Apr-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream android changes.

reviewed by: reed


git-svn-id: http://skia.googlecode.com/svn/trunk@1134 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kPath.cpp
kPicturePlayback.cpp
kPicturePlayback.h
676d69b82f2e2c6bf743ff8c7fbb436f36a004e2 15-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> experimental



git-svn-id: http://skia.googlecode.com/svn/trunk@1132 2bbb7eff-a529-9590-31e7-b0007b416f81
kClampRange.cpp
kClampRange.h
2a98181f048c11f21f52fbd99f803f5fd6118261 14-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas::clear(SkColor color) to call the new virtual clear on device.



git-svn-id: http://skia.googlecode.com/svn/trunk@1131 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
398109cc3e56b8122ad21c4d43a74a83be5b42a8 14-Apr-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkDevice::eraseColor to clear and make virtual.
Properly flush in GrContext before calling GrGpu::clear()

Review URL: http://codereview.appspot.com/4419043/



git-svn-id: http://skia.googlecode.com/svn/trunk@1130 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
43c50c8c77df82c5cffb55cae2d386e59802b88f 14-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add reflection asColorMode to SkColorFilter (for gpu)



git-svn-id: http://skia.googlecode.com/svn/trunk@1126 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorFilter.cpp
kXfermode.cpp
586f48cfa8b1fa7b29d8ee8d0a028489a33866de 14-Apr-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add genID for SkBitmaps with raw pixels

Review URL: http://codereview.appspot.com/4413047/



git-svn-id: http://skia.googlecode.com/svn/trunk@1125 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPixelRef.cpp
c0d4aa2088a0788f9df221497945d2ba1b342f44 13-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix asMode() to always succeed if the xfermode was built from a Mode
update dox to reflect this
update test



git-svn-id: http://skia.googlecode.com/svn/trunk@1121 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
521e34e2912d835ab1b33a06cb8fb416510d7c53 12-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return Coeff for kPlus_Mode and kMultiply_Mode
now these work correctly on the gpu



git-svn-id: http://skia.googlecode.com/svn/trunk@1116 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
9f2f0a84d5a1b7c67c1d2a253bc2d7ee6f3f4625 11-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add testing defines to test different blitters for antialiasing (RLE and mask)
speed up wide spans for maskblitter by accumulating 4-bytes at a time
code style clean up



git-svn-id: http://skia.googlecode.com/svn/trunk@1109 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
7db9fe65b2bb099e9dc41f79cc15b6a7a142bed6 11-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1096 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kScalerContext.cpp
4e1d3acc16edb0b502cff157978235f5af627a5a 10-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1095 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
kUtils.cpp
d5e05d428647c164080e38dabee94db52c8c4544 10-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> balance sk_malloc with sk_free (instead of delete[]) in SkAutoUCS2

patch submitted by alean2...@gmail.com



git-svn-id: http://skia.googlecode.com/svn/trunk@1094 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
2c8fc5a7038cdfbb28a8364fd0057f3c21f90bfd 10-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add init() to SkTLazy to create a default instance
use SkLazyPaint in internalDrawBitmap



git-svn-id: http://skia.googlecode.com/svn/trunk@1093 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
d11f0e0173b349bfac3c98f6d32c10dc7e1ba1fa 09-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> coding style



git-svn-id: http://skia.googlecode.com/svn/trunk@1092 2bbb7eff-a529-9590-31e7-b0007b416f81
kAlphaRuns.cpp
kAntiRun.h
kGlyphCache.h
kMask.cpp
eadc8072aaa8f6fc71f47cd41fab1ed3b4bc1c68 09-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> coding style



git-svn-id: http://skia.googlecode.com/svn/trunk@1091 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_4444.cpp
kBlitter_A1.cpp
kBlitter_A8.cpp
bcc1d33e9453d7749a8691e4c8c6379a02b9bf72 09-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> coding style updates



git-svn-id: http://skia.googlecode.com/svn/trunk@1090 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
kScan_Hairline.cpp
99219d337f66cb6a8e566e1c6407bfb4b1b6cb8b 09-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> update coding style - no logic change



git-svn-id: http://skia.googlecode.com/svn/trunk@1089 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
39ce0ac09a375aab18659b1a4ed0c503b0b81a4c 08-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> unbias fy in the gpu glyphproc, since skia has pre-added 1/2 to the value
(assuming we would call floor to get a rounded value.)

apply finalFYMask not to the initial fy, but to the fyMask (so it is always
applied in the loop) in drawText.



git-svn-id: http://skia.googlecode.com/svn/trunk@1084 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
53e3bed84b9117c8923680ff37a043c2cfe88572 08-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix infinite loop if we have a drawfilter but no drawlooper



git-svn-id: http://skia.googlecode.com/svn/trunk@1079 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
4e2b3d3fb1288c6dc0f3ea1c0aa4a0d7c603bd7b 07-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Simplify drawloopers and drawfilters. This allows the canvas to keep its
promise that const SkPaint& stay const (so we don't have bugs if a const paint
is referenced from two threads in pictures)



git-svn-id: http://skia.googlecode.com/svn/trunk@1074 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3a968750b29b3bb15452a4d4ed040c382727a297 07-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> round the alphamul so we don't overflow a byte



git-svn-id: http://skia.googlecode.com/svn/trunk@1071 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
a076e9be17654a60310e72c4f70fcd5337f56dbf 06-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use new template class SkTLazy for deferred paint initialization



git-svn-id: http://skia.googlecode.com/svn/trunk@1070 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
139d84b263e8927e2982bd74e40a7c4042ceb433 06-Apr-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove transitionary version of getAdvancedTypefaceMetrics. Webkit has been updated.

Review URL: http://codereview.appspot.com/4383041

git-svn-id: http://skia.googlecode.com/svn/trunk@1068 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
c7a38f38c938a9828af0a53040e3f27079c67da5 05-Apr-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkFlate buffers statically sized (fixes Windows compile).

Review URL: http://codereview.appspot.com/4357054

git-svn-id: http://skia.googlecode.com/svn/trunk@1059 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
669fdc4ed8ed461a141cb97d0afdd9ef72a82be1 05-Apr-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Adds read pixels to GrTexture and GrRenderTarget
Adds SkGrRenderTargetPixelRef for SkBitmaps that are backed by RTs that aren't textures.
Adds onReadPixels implementations for SkGr pixel ref types



git-svn-id: http://skia.googlecode.com/svn/trunk@1056 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
62ab7addb06bbc5b93460eaf2f70a9f8399308d3 05-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> export SkDraw::ComputeRectType() and share that with SkGpuDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@1055 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
6115338c59799b4ef09cda187f23867dea093f6e 05-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle scale < 0 for stroke-rects



git-svn-id: http://skia.googlecode.com/svn/trunk@1052 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
761fb62b0eb174783316d2a8b933fba896ca6355 04-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reenable fast stroked rects, now that we correctly handle non-square scale
also, degenerate non-antialias rectangles now draw properly



git-svn-id: http://skia.googlecode.com/svn/trunk@1049 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
338029608024c1c735e4d351aec7ed3319c5f0b4 04-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> temporarily disable fast stroking, until we handle non-square scales in matrix



git-svn-id: http://skia.googlecode.com/svn/trunk@1047 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
5bff8d2030ec976cd5081b759a495cc28e79deb6 04-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add #ifdef SK_DISABLE_FAST_AA_STROKE_RECT to disable new 8x faster antialiased
stroked rects, since it draws slightly different (more correct) pixels, for
clients that want pixel compatibility.



git-svn-id: http://skia.googlecode.com/svn/trunk@1043 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
7ff678bc1618dc669648198a7bdca8adfb189505 04-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> faster stroke rects



git-svn-id: http://skia.googlecode.com/svn/trunk@1042 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kScan_Antihair.cpp
50dfa0130b0705414df7ba7da9915139f6320b09 01-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add pixelref->readPixels()

unimplemented (for now) on the gpu side



git-svn-id: http://skia.googlecode.com/svn/trunk@1037 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPixelRef.cpp
4b83c63573952e3dfbab9fa4aca1e8eedd22b38c 01-Apr-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move where compression enable/disable is done to make recompilation faster.

Review URL: http://codereview.appspot.com/4354043

git-svn-id: http://skia.googlecode.com/svn/trunk@1035 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
a7d948523dce6044fc02db90726e5f971a93628b 30-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> replace SkRefDict with SkMetaData (much more general)



git-svn-id: http://skia.googlecode.com/svn/trunk@1025 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
325cb9aa17b94258b362082eb3a799524f4345f3 30-Mar-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Improve the SkAdvancedTypefaceMetrics interface w.r.t. vertical advances.

Add a template function to type safe-combine bits of a bit field.

Review URL: http://codereview.appspot.com/4313053

git-svn-id: http://skia.googlecode.com/svn/trunk@1020 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
e733071abeb9cce9f524f5a85851bc7fbb8d867b 30-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add refcnt helper to metadata
add unittests for metadata



git-svn-id: http://skia.googlecode.com/svn/trunk@1019 2bbb7eff-a529-9590-31e7-b0007b416f81
kMetaData.cpp
5e3496e555904b65834f72343a7e4d048c2167a7 30-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkMetaData into core



git-svn-id: http://skia.googlecode.com/svn/trunk@1018 2bbb7eff-a529-9590-31e7-b0007b416f81
kMetaData.cpp
ore_files.mk
9266fed56a46a4edc710a52c7be8d46fd7c2bc7a 30-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getTopLayer(), so clients don't have to use a LayerIter just to get
the top. (very common for chrome)



git-svn-id: http://skia.googlecode.com/svn/trunk@1016 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
0a0a236c3ba241046d38caaf78226ec68ff9c998 23-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialize fClip in SkBounder, in case doIRect() is called before it is used
inside a canvas (which calls setClip).

Export a global empty region. Used by SkBounder's constructor.



git-svn-id: http://skia.googlecode.com/svn/trunk@985 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kRegion.cpp
160f2c0e1724003767dbbea05bc8046ac5dd78d4 21-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> increase intermediate precision when chopping lines. This avoids returning a
computed value that is accidentally outside of the original range.



git-svn-id: http://skia.googlecode.com/svn/trunk@971 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
97fa34c5f0079c4ae5fdf2c9f86772ff793d0133 18-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change operator== to return bool instead of int
update dox formating



git-svn-id: http://skia.googlecode.com/svn/trunk@956 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
2ade0863c3af14d274561cc7cb6e628bb9862761 17-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> abort drawing if srcRect is outside of the bitmap bounds



git-svn-id: http://skia.googlecode.com/svn/trunk@951 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577 15-Mar-2011 ctguil@chromium.org <ctguil@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add code needed to build skia as a windows dll within the chromium project.
- Export/import skia APIs if SKIA_DLL is defined.
- This change has no effect on skia.

Review URL: http://codereview.appspot.com/4282042

git-svn-id: http://skia.googlecode.com/svn/trunk@944 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_filter.h
f67e4cf4c18cd228738a11372859ee0280bce1d7 15-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add filterTextFlags() to SkDevice (virtual) to allow device subclasses to
filter what text features we try to use. The filtering allows for implementation
limitations to dictate when we turn off certain text features.



git-svn-id: http://skia.googlecode.com/svn/trunk@943 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
kPaint.cpp
98539c607b05f7e25406ae873bf1b24154a36a6f 15-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> support lcd16 in text atlas (sans shader support)



git-svn-id: http://skia.googlecode.com/svn/trunk@939 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.h
cd9d69b9ce7eb301a9fd8d91b9f95fd99b07bae5 14-Mar-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstreaming changes from android.

- fix compile warnings in the GPU code
- upstream android specific code (ifdef protected)
- fail gracefully when a custom allocator fails



git-svn-id: http://skia.googlecode.com/svn/trunk@936 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kCanvas.cpp
kDevice.cpp
kDraw.cpp
kRegion.cpp
65dd8f83106ceb11fbff330bed3037557db974cf 14-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Don't use LCD16 if SK_SUPPORT_LCDTEXT is defined (for compatibility)



git-svn-id: http://skia.googlecode.com/svn/trunk@928 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f88d6765a594cf9fb0825b74779f74394a7ccc7a 10-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for kLCD16_Format mask support
disabled for now in SkPaint.cpp (for further testing)



git-svn-id: http://skia.googlecode.com/svn/trunk@917 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kPaint.cpp
kScalerContext.cpp
ee467ee79d449ebe6ae7f7946e613cc70a479c69 09-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Correct blitmask procs to recognize that we pass them an SkColor, and if they
want a SkPMColor, they need to call SkPreMultiplyColor()

Add Opaque and Black optimizations for blitmask_d32



git-svn-id: http://skia.googlecode.com/svn/trunk@911 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
981d4798007b91e2e19c13b171583927a56df63b 09-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> http://codereview.appspot.com/3980041/

Add blitmask procs (with optional platform acceleration)
patch by yaojie.yan



git-svn-id: http://skia.googlecode.com/svn/trunk@910 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
8cad58624bc194390b14a21d0578dfcdd6fbad6f 08-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add const to SkColorShader's asABitmap



git-svn-id: http://skia.googlecode.com/svn/trunk@900 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
7c2f27d788fff9dbf66a6d52753e47f786a313c0 07-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make asABitmap() const
change private cache fields in gradient to be mutable



git-svn-id: http://skia.googlecode.com/svn/trunk@898 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kShader.cpp
6f8f292aa768869a9e85c314b124875f57504f2c 04-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add origin to device
used for interpreting the clipstack when a device is a layer



git-svn-id: http://skia.googlecode.com/svn/trunk@894 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
f7c2c4544f866ae65cd9a4eee4da563f6d653d20 04-Mar-2011 ctguil@chromium.org <ctguil@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Update windows port of of SkFontHost::GetAdvancedTypefaceMetrics to use calculateGlyphCount.

Review URL: http://codereview.appspot.com/4245060

git-svn-id: http://skia.googlecode.com/svn/trunk@890 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
0bc7bf5fe418191473f8325d89dd9e74be3ff928 04-Mar-2011 ctguil@chromium.org <ctguil@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkScalerContext_Windows::generateGlyphCount() and provide access via SkGlyphCache interface.
* This will be used by PDF font code.

Review URL: http://codereview.appspot.com/4261042

git-svn-id: http://skia.googlecode.com/svn/trunk@888 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kScalerContext.cpp
677cbedda7dc43844cbc58dbebbe52e37381be8e 03-Mar-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Expose explicit functions to stringify float's and fixed's.

See http://codereview.appspot.com/4240050/

Review URL: http://codereview.appspot.com/4240068

git-svn-id: http://skia.googlecode.com/svn/trunk@880 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
759876a9223ef64f9d0db235d7a46750f8193cbc 03-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Our region blitter (invoked by region::setPath()) must have its scanlines
fed to it in scanline order (Y sorted, then X sorted).

If, however, we call rgn->setPath(path, otherRgn) with path in inverse mode,
then our scan converter code looks like this:

if (inverse)
blit_top
scan_convert_path
if (inverse)
blit_bottom

This is fine, unless otherRgn is complex. If it is, then blit_top will want to
efficiently "blit" otherRgn (the part above the path), and that means calling
blitRect in an iterator. That can result in chunks being passed to our blitter
(which is really accumulating scanlines) out of scanline order.

The change is to detect that otherRgn is complex, and if it is, just perform
the op in two steps:

1. setPath on a tmp region, limited by the bounds of otherRgn (simple)
2. intersect this tmp region with the currRgn.

This is effectively what we do for non-intersect ops. Intersect was different
only because we could (sometimes) avoid the step of create a tmp region.



git-svn-id: http://skia.googlecode.com/svn/trunk@879 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
d302f1401b3c9aea094804bad4e76de98782cfe8 03-Mar-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add support for clipstack to Gr. GrClip is now a list of rects and paths with set operations to combine them. The stencil buffer is used to perform the set operations to put the clip into the stencil buffer. Building Gr's clip from Skia's clipStack is currently disabled due to the fact that Skia's clipStack is relative to the root layer not the current layer. This will be fixed in a subsequent CL.

git-svn-id: http://skia.googlecode.com/svn/trunk@878 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
kDeque.cpp
55b6b58d8f6e7529c9b9cea606a6e3637c8e2e39 02-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix inverse scanconversion -- be sure to keep our calls to SkBlitter in scanline
order (top to bottom), since the region blitter explicitly requires this.



git-svn-id: http://skia.googlecode.com/svn/trunk@876 2bbb7eff-a529-9590-31e7-b0007b416f81
kScanPriv.h
kScan_AntiPath.cpp
kScan_Path.cpp
22a0221968bbc7498110f098d7975989d0fbcf6d 01-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check that alloc() succeeded before calling the scaler's getImage()



git-svn-id: http://skia.googlecode.com/svn/trunk@873 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
8072e4fdc8261b1ca8937aa5c31db967280eae2a 01-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> bump SkStrAppendScalar_MaxSize to 14 to accomodate the largest string now that
scalar->string uses %.8g. Floats have at most 8 significant digits, plus we add
more space for sign, decimal point and exponent.

add tests to check these limits.



git-svn-id: http://skia.googlecode.com/svn/trunk@872 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
fa06e528035dd9c4d01c1d1e17e9df1cfe99b855 28-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use sprintf to generate float->string for SkString routines, removing the
worry of first converting the scalar to a fixed.



git-svn-id: http://skia.googlecode.com/svn/trunk@865 2bbb7eff-a529-9590-31e7-b0007b416f81
kString.cpp
a67573e25faa81ea65e6fc368f66d3f0c0a5f189 25-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> http://codereview.appspot.com/4233041/

Add templated version of SkAutoTUnref.
Add unittests for it.
Remove unused helper apis on SkAutoUnref.



git-svn-id: http://skia.googlecode.com/svn/trunk@858 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefCnt.cpp
ore_files.mk
112706d4c566e283890322bb246b4b86d59837e1 24-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkBitmap::getColor(int x, int y) - return the color of a pixel in a bitmap.

Review URL: http://codereview.appspot.com/4230041

git-svn-id: http://skia.googlecode.com/svn/trunk@854 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
93c5f9e787ae06b113c422e4aaabb48c278ea9c5 24-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Guard globalRef() virtual with #ifdef ANDROID, as these are not implemented
nor called by Skia proper.



git-svn-id: http://skia.googlecode.com/svn/trunk@850 2bbb7eff-a529-9590-31e7-b0007b416f81
kPixelRef.cpp
02878b844c5cd3f17d48842da3ccf44a66621501 24-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable assert on validateClip in default build for now



git-svn-id: http://skia.googlecode.com/svn/trunk@846 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
d3ae77965e94e0efda496f5461cbec4533cb5b16 24-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add asAGradient shader extraction API.

Store initial gradient parameters.
Add compile asserts in GPU code for BitmapType ordering.

Review URL: http://codereview.appspot.com/4178063

git-svn-id: http://skia.googlecode.com/svn/trunk@845 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
7d7ca79c3e6e6be7b7849b0d9a7fe26effb89c38 23-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add fClipStack optional field to SkDraw (it is always set by canvas)



git-svn-id: http://skia.googlecode.com/svn/trunk@844 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
dca7acb2fe2df8db7b1e665f9e49677cb96e9c9c 23-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> set the rgn to empty if the clipstack says empty (in our validate routine)



git-svn-id: http://skia.googlecode.com/svn/trunk@843 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
57f4969724a1dd88c8d9ae35a863e6cf621181d5 23-Feb-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> merge from android tree:
- optional parameters added to descriptorProc and allocPixels
- clip options to image decoders
- check for xfermode in blitter_a8
- UNROLL loops in blitrow

reviewed by reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@841 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitRow_D32.cpp
kBlitter_A8.cpp
kPaint.cpp
kPixelRef.cpp
kStream.cpp
819c921b0445fa9f45f18d4a560603cd9fde6ba4 23-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> refactor to use a shared function (clipPathHelper) between
SkCanvas::clipPath() and SkCanvas::validateClip().



git-svn-id: http://skia.googlecode.com/svn/trunk@840 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3f0260d0f7692f28057cfcf7121829285e972e28 22-Feb-2011 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup issues related to SkBitmap getSize()/extractSubset().

Some minor revisions to do cleanup regarding getSize() and extractSubset(). All
are related to avoid read/write past end of the pixel buffer when getSize() is
used on a bitmap that is the result of a call to extractSubset().

git-svn-id: http://skia.googlecode.com/svn/trunk@835 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
46799cd9f0bded51a189d77731b25af159ab4609 22-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change virtual setMatrixClip() to take a SkClipStack parameter.



git-svn-id: http://skia.googlecode.com/svn/trunk@831 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
5c3d1471e4908706cd053a5e2ea9ded3a6c2eaeb 22-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add clipstack to canvas. not used yet, but will be for devices (e.g. gpu) that
want to see how the clip was built



git-svn-id: http://skia.googlecode.com/svn/trunk@824 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kClipStack.cpp
ore_files.mk
4c09d5cd4b9e6f0be1352f62288efdedc1bc3de3 22-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkDeque::Iter to SkDeque::F2BIter, since it runs front-to-back (in preparation
for another iter that runs back-to-front (B2FIter).

add unittest for Deque



git-svn-id: http://skia.googlecode.com/svn/trunk@821 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDeque.cpp
ce2b1afb582f0a2274f476c949cff8b0e1c72b36 18-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call glyph::init() on tmpGlyph, so we have a properly initialized fMaskFormat



git-svn-id: http://skia.googlecode.com/svn/trunk@812 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
369ca40621a3adb502a95761e68fee825cab8c45 15-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix compile error for linux



git-svn-id: http://skia.googlecode.com/svn/trunk@797 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
564e46f19d400b9dcfebdb47079415f1757e2d71 15-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix file modes.

Review URL: http://codereview.appspot.com/4178051

git-svn-id: http://skia.googlecode.com/svn/trunk@790 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
6f72d1eacd66d2a9c0059962a75c0ca6a99ff98e 15-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Provide windows font host implementation needed to support TrueType text in pdf backend.
- Move AdvanceMetric template functions into new file SkAdvancedTypefaceMetrics.cpp

Review URL: http://codereview.appspot.com/4174041

git-svn-id: http://skia.googlecode.com/svn/trunk@789 2bbb7eff-a529-9590-31e7-b0007b416f81
kAdvancedTypefaceMetrics.cpp
ore_files.mk
6fb7e2e153717b69831c34663cbb7bc26ac8eef9 08-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reformatting to match coding style -- no logic changes



git-svn-id: http://skia.googlecode.com/svn/trunk@778 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
91a2ae988e46b8db3f1cc691d09d77f8c5d84d2c 08-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reformat for coding style, no logic changes



git-svn-id: http://skia.googlecode.com/svn/trunk@776 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
077910e20cda41d7981084fbd047a108894bc8df 08-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkScalarIsFinite(), and use it for a more portable impl of SkRect::isValidCoords()



git-svn-id: http://skia.googlecode.com/svn/trunk@775 2bbb7eff-a529-9590-31e7-b0007b416f81
kRect.cpp
48543277728fdf66b993f17421f65fba532a23a2 08-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> [PDF] Add support for xfermodes / blend modes.

- Change SkGraphicState to track and set the blend mode (xfermode) for modes built in to PDF (non porter duff modes + src over).
- Add SkXfermode::asMode() to retrieve xfermode as an enum for non porter duff modes.
- Move SkXfermode.cpp around a bit to support asMode() -- Generally move utility functions toward the top of the file.
- Make SkPDFFormXObject an isolated transparency group, as it used for saveLayer, which draws on transparent, not the device background.
- Set the graphic state in drawDevice and drawBitmap in order to get the right xfermode and alpha.

Review URL: http://codereview.appspot.com/4131043

git-svn-id: http://skia.googlecode.com/svn/trunk@774 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
62047cf1980861234e7367a225928b84ce492c68 07-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clear the convex-hint in reset() and rewind(), to match its state in a newly
created path.

todo: convexity perhaps should be tristate: yes, no, unknown



git-svn-id: http://skia.googlecode.com/svn/trunk@768 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
116b2bcd2c4c4d4670c7b7e2ea597414713c37fb 07-Feb-2011 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Proposed fix for crash in Cr70244.

git-svn-id: http://skia.googlecode.com/svn/trunk@764 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kRect.cpp
82065d667f64e232bcde2ad849756a6096fcbe6f 07-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites with
SkSafeRef() and SkSafeUnref().

This is basically a bug waiting to happen. An optimizing compiler can remove
checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on
precisely this check...

void SkRefCnt::safeRef() {
if (this) {
this->ref();
}
}

Since a compiler might skip the if-clause, it breaks the intention of this
method, hence its removal.

static inline void SkSafeRef(SkRefCnt* obj) {
if (obj) {
obj->ref();
}
}

This form is not ignored by an optimizing compile, so we use it instead.




git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBlitter.cpp
kBlitter_4444.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kCanvas.cpp
kComposeShader.cpp
kDraw.cpp
kFlattenable.cpp
kMallocPixelRef.cpp
kPaint.cpp
kPicture.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kScalerContext.cpp
kSpriteBlitter_ARGB32.cpp
c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5f 02-Feb-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup SkPDFTypfaceInfo and make it more generic.

Renamed to SkAdvancedTypefaceMetrics.
Include Em size and return all metrics in unscaled font units.
Make retrieval of advances optional.
Reorder SkAdvancedTypefaceMetrics to be somewhat logical.
Change the types of fields in SkAdvancedTypefaceMetrics to their minimum required size.

Review URL: http://codereview.appspot.com/4121049

git-svn-id: http://skia.googlecode.com/svn/trunk@752 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
851927db2057b26a85d440b9830dcd406f04308f 26-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove debugging code around gUseExt



git-svn-id: http://skia.googlecode.com/svn/trunk@735 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3636ed558fb2af5a48a9634efec55fd8a87c88d7 26-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> embed a refdict inside SkDevice
udate unittests to test refdict's destructor



git-svn-id: http://skia.googlecode.com/svn/trunk@731 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefDict.cpp
0e190d0e126991cfba4bc7415c1911761d7be87b 26-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add refdict class, for holding a dictionary of reference-counted objects
-- experimental



git-svn-id: http://skia.googlecode.com/svn/trunk@730 2bbb7eff-a529-9590-31e7-b0007b416f81
kRefDict.cpp
ore_files.mk
2a22e10ab2946c5590cd2a258427ce3ccfca9bfa 25-Jan-2011 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add Truetype and Type 1 font embedding support

Sorry this is such a large CL. It was very exploratory for me to make this
work.

- Add an interface to SkFontHost to retrieve font information and provide NULL implementations on all platforms except Linux.
- Segment large Type 1 fonts into fonts with shared resources with 255 glyphs each.
- Convert the various Type 1 formats to the form PDF wants.
- Update font as we draw text instead of as part of the graphical state.
- Remove built-in font support, we can't really use it.

Other changes I can pull out to a separate CL if you like.

- Add SkTScopedPtr class.
- Fix double free of resources.
- Fix bug in resource unique-ifying code.
- Don't print anything for any empty clip path.
- Fix copy paste error - MiterLimit.
- Fix sign extension bug in SkPDFString
- Fix FlateTest rename that was missed on a previous commit.

Review URL: http://codereview.appspot.com/4082042

git-svn-id: http://skia.googlecode.com/svn/trunk@728 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
44b2c73ca6358ba9c4a413d7b39db7991612a6a2 18-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect empty/inverted rect before using autobounds helper (as with prev. rev.)



git-svn-id: http://skia.googlecode.com/svn/trunk@705 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
abf15c189b6333aa77a6c3f566cc67f4634ba338 18-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't use SkAutoPathBoundsUpdate until after we've checked for degenerate
dimensions, otherwise we might set the bounds, only to then abort and not
set any points.

Fixes assert if you call addRoundRect(r, 10, 10) when r is inverted
(i.e. r.fLeft > r.fRight)



git-svn-id: http://skia.googlecode.com/svn/trunk@704 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
a76de3d1a92134c3e95ad7fce99234f92fa48268 13-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> If you #define SK_ALLOW_OVER_32K_BITMAPS, then skia will try to draw bitmaps
whose dimensions exceed 32K. In my testing, this is fine, but I'm coding this
as an opt-in feature for now, to allow for more testing before its enabled
by default.



git-svn-id: http://skia.googlecode.com/svn/trunk@693 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
9b2135a923c8344ef4c4f52907b7ffe4fc575136 11-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> git-svn-id: http://skia.googlecode.com/svn/trunk@685 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
4b226023832011bc3bcdd1e5092ff0645ad0bdee 11-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add getter/setter for device-factory on canvas



git-svn-id: http://skia.googlecode.com/svn/trunk@683 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
e72766fe02a4b6c75c9eb2d6ac6bfa8df796ddc5 07-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix issue 99 -- unneeded assignment inside find_y
move find_y to right above its only caller (Spanerator)
reformat Spanerator methods to match coding style



git-svn-id: http://skia.googlecode.com/svn/trunk@678 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
72cf4927e503f49c4bd07369e85764ddde57071b 04-Jan-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix build for scalar==fixed



git-svn-id: http://skia.googlecode.com/svn/trunk@671 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
51df9e3fe3c1aec370854b2718df16fc02faa1b2 23-Dec-2010 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add gpu to gm tool
add pass-through read/write pixels API to canvas



git-svn-id: http://skia.googlecode.com/svn/trunk@660 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
0bde180bf12207f69685ed16f3fba37ef496b448 22-Dec-2010 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Security fixes re getSize().

git-svn-id: http://skia.googlecode.com/svn/trunk@646 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
d642329293cce602ac24df8f585c14a98795da87 20-Dec-2010 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove ZLIB include from SkUserConfig for how (doesn't work on mac sampleapp) but,
add it to Makefile if SKIA_PDF_SUPPORT is true

Use compile_assert (yea!)



git-svn-id: http://skia.googlecode.com/svn/trunk@643 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
9c08dd0af5d6c8cb69b9174b0b0735c792bcb639 20-Dec-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add



git-svn-id: http://skia.googlecode.com/svn/trunk@639 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion_rects.cpp
f2b98d67dcb6fcb3120feede9c72016fc7b3ead8 20-Dec-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> merge with changes for GPU backend



git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcShader.h
kBlitter_ARGB32.cpp
kCanvas.cpp
kChunkAlloc.cpp
kDevice.cpp
kDraw.cpp
kDrawProcs.h
kGlyphCache.cpp
kGlyphCache.h
kMatrix.cpp
kPaint.cpp
kScalerContext.cpp
kShader.cpp
kStroke.cpp
kTextFormatParams.h
kUtils.cpp
ore_files.mk
29e5054dd07c97c2195c5f64bf67aaa6b5afa204 16-Dec-2010 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix perf regression in Color32.

The regression was due to the fact that we were calling PlatformColorProc() for
every span (which in turns makes CPUID, a fairly expensive call). Since we draw
a lot of rects, and rects have 1-pixel wide spans for the vertical segments,
that's a lot of CPUID.

Fixed by cacheing the result of PlatformColorProc(), as is done for the other
platform-specific blitters.

Review URL: http://codereview.appspot.com/3669042/



git-svn-id: http://skia.googlecode.com/svn/trunk@636 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kCoreBlitters.h
c3856384e4ab9a7ad5902696a5c972ab595b8467 13-Dec-2010 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 optimizations for 32bit Color operation.

[Patch from weiwei.li@intel.com]

SSE2 optimization has been added by Stephen White before, this improves the skia
performance on SSE2-supporting platform. (please refer to below issues)

Issue 171055: More SSE2ification
Issue 157141: More SSE2ification
Issue 150060: minor tweaks to SSE2 code for -fPIC
Issue 144072: SSE2 optimizations for 32bit blending blitters

This CL implements SSE2 optimizations for the 32bit Color operation. Like above
issues, it uses CPUID to detect for SSE2 and changes the platform procs at
runtime as well. The 32bit Color operation is heavily used on Chrome HTML5
canvas operations. Take Microsoft IE test drives Pulsating Bubbles as example
(http://ie.microsoft.com/testdrive/Performance/PulsatingBubbles/Default.xhtml),
if running this cases on Chrome, the overhead of 32bit Color operation is about
40~50%. So this CL will make skia performance more better, and also make Chrome
HTML5 canvas performance more better.

Additional, this CL has passed the skia bench & tests validation, the result is
pretty good. We also apply this CL to the latest chromium, and re-run Microsoft
IE test drives Pulsating Bubbles, the performance is improved by almost 9~10%.


git-svn-id: http://skia.googlecode.com/svn/trunk@633 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D32.cpp
8cfdf01ff953b47fdd5c29ebd54fea8a7a9be83e 06-Dec-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Correctly handle SkPath::kInverseWinding_FillType

Fix for http://code.google.com/p/skia/issues/detail?id=87

Even when SkPath::kInverseWinding_FillType is given, Skia left some
lines not filled(cleared) in one case.

Patch-by: morrita

http://codereview.appspot.com/3443041

git-svn-id: http://skia.googlecode.com/svn/trunk@630 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
kScan_Path.cpp
ee34e35c8cefb5b384b34e4eb5ef8cb82774e5a0 02-Dec-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add flate compression test and fix bugs.

Review URL: http://codereview.appspot.com/3393041

git-svn-id: http://skia.googlecode.com/svn/trunk@628 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
a09ef977b6799f01cd3fd64725fb3069da8be4bc 01-Dec-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add deflate support to SkPDFStream.

Review URL: http://codereview.appspot.com/3326043

git-svn-id: http://skia.googlecode.com/svn/trunk@627 2bbb7eff-a529-9590-31e7-b0007b416f81
kFlate.cpp
ore_files.mk
ca735ff61746fd230998b05fd9b9ec52e90c39e0 17-Nov-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow zero text size to be specified for an SkPaint.

We have to support zero sized fonts and generate correct metrics
to pass Acid3. There don't seem to be any requirements that textsize
be >0, just that it not be negative.

Original issue: http://codereview.appspot.com/3174041/

Review URL: http://codereview.appspot.com/3176042

git-svn-id: http://skia.googlecode.com/svn/trunk@626 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
86bff1f008308267c4ff75456b202a9cf60c6193 16-Nov-2010 wjmaclean@chromium.org <wjmaclean@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add safe size/copy functions to Skia.

This patch adds four methods to SkBitmap. There are two functions to return
"safe size", defined as the number of pixels from the value returned by
getPixels() to the end of the allocated buffer.

There is one version of fillPixels() to copy the bitmap instance into an
external buffer (with specified size, and using specified stride), and another
fillPixels() to copy from an external buffer to the instance bitmap. In the
latter case the specified height, width and pixel format must match that used by
the bitmap instance, although the specified stride may be any value at least as
large as the minimum stride for the specified geometry. It is assumed that the
external buffer is of size at least (height - 1)*stride + width *
bytesPerPixel.

Both fillPixels() functions return false if the copy is not possible with the
specified parameters.

Review URL: http://codereview.appspot.com/2837041/

git-svn-id: http://skia.googlecode.com/svn/trunk@625 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
28be72b63e457c680c192a34fb9f58e1c693363f 11-Nov-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> PDF: Add text support with a font framework (font embedding to come).

Supports fakeBold, underline, strikethrough, mode (fill, stroke, both), size, skew, alignment (left, center, right).
Missing is drawFontOnPath and font lookup and embedding.
Changed SkPDFString to support how it is used from drawText methods.
Moved compile assert into SkTypes.
Moved constants and utility function used to support fakeBold, underline, and strikethrough into higher level locations.

Review URL: http://codereview.appspot.com/2946041

git-svn-id: http://skia.googlecode.com/svn/trunk@624 2bbb7eff-a529-9590-31e7-b0007b416f81
akefile.am
kDraw.cpp
kPaint.cpp
kScalar.cpp
ore_files.mk
8c1d88dcfb978835779b6b5c5e7d1cbb78b6ca4d 11-Nov-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove include of SkGLDevice.h from SkGLCanvas.h

The '#include "SkGLDevice.h"' from include/core/SkDevice.h requires internal
Skia code to be added to the include search paths when using the deprecated API.
This change adds back SkGLCanvas.cpp to avoid exposing SkGLDevice.h to the
public API.

The change also includes an explicit virtual destructor on SkDeviceFactory to
silence a -Wnon-virtual-dtor warning and allow for -Werror.

Original Issue: http://codereview.appspot.com/3009041/

Review URL: http://codereview.appspot.com/2994042

git-svn-id: http://skia.googlecode.com/svn/trunk@623 2bbb7eff-a529-9590-31e7-b0007b416f81
kDevice.cpp
35fc62b960db6739b19c59576085663796951e47 26-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move the device capability method to SkDevice.

These are not the capabilities of the factory, but of the device. Additionally, it is more often needed when you have a device then when you have a factory, which caused creating of a new factory.

Review URL: http://codereview.appspot.com/2720041

git-svn-id: http://skia.googlecode.com/svn/trunk@618 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
ddbbd805b5b453e12cda0b3300e5655d8fb2bc19 26-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup/unify matrix transform for PDF backend.

Review URL: http://codereview.appspot.com/2719041

git-svn-id: http://skia.googlecode.com/svn/trunk@617 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
99a45d3b5a2f492b3ee3d5d8c8baa52745c4b2fa 26-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix SkDraw::validate to work with vector Devices.

Vector devices don't have a (valid) fBitmap, so pass in width and height.

Review URL: http://codereview.appspot.com/2718041

git-svn-id: http://skia.googlecode.com/svn/trunk@616 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
17f694b0386ae42e66e76ffa19a0dabbc2191c62 19-Oct-2010 scarybeasts@gmail.com <scarybeasts@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clamp the maximum size of glyph width we will attempt to render.

Review URL: http://codereview.appspot.com/2519045



git-svn-id: http://skia.googlecode.com/svn/trunk@607 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
6b9de8cb93f2aa970f2d407381c3768ae505f710 19-Oct-2010 scarybeasts@gmail.com <scarybeasts@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a signedness issue with massive allocations, and also a truncation issue on
64-bit.

Review URL: http://codereview.appspot.com/2536044



git-svn-id: http://skia.googlecode.com/svn/trunk@606 2bbb7eff-a529-9590-31e7-b0007b416f81
kChunkAlloc.cpp
b70ae310bbdaa1b26786773aabce5548c1f48563 15-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a memory leak in the new Canvas/Device workflow.

The previous change made it difficult to inherit from SkCanvas without leaking memory. By making SkDeviceFactory not reference counted, the right thing happens more naturally, just NewCanvas : public SkCanvas(new NewDeviceFactory()) {...}

Review URL: http://codereview.appspot.com/2530042

git-svn-id: http://skia.googlecode.com/svn/trunk@605 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
8d84fac294682647694b0d2d8a87ac2bd19b6aab 14-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkCanvas so that backends don't need to override it.

Methods or classes that should go away are marked deprecated. The only thing I know of that breaks backward compatibility is SkCanvas((SkDevice*)NULL), but that is fairly unlikely to occur in the wild because that constructor had a default value of NULL.

Review URL: http://codereview.appspot.com/2103045

git-svn-id: http://skia.googlecode.com/svn/trunk@604 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDevice.cpp
60eaa398ebdded0fb7957724c170baabef811e17 13-Oct-2010 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkPath::arcTo() will cause uninitialized memory reads in the following cases:

- when the previous point in the path and (x1, y1) are coincident
- when (x1, y1) and (x2, y2) are coincident

These cause the setNormalize() calls to leave the "before" and "after" vectors
uninitialized, respectively, which are then used to compute cosh and sinh.

I chose to implement HTML5 canvas behaviour for these cases (as well as for the
case where all three points are collinear): add a line to the first point, and
bail. I think this is ok, since skia is mostly used for HTML5 browsers, and
this case is degenerate anyway.

Review URL: http://codereview.appspot.com/2484041



git-svn-id: http://skia.googlecode.com/svn/trunk@603 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
d877fdbb6e64692285c3e6532d88b9458f65b3cd 13-Oct-2010 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> High level pdf classes and pdf specific interface.

The guts of the implementation will be in SkPDFDevice and below. This is a first implementation of everything above that point.

Review URL: http://codereview.appspot.com/2342043

git-svn-id: http://skia.googlecode.com/svn/trunk@602 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
kString.cpp
3ce77e4d13372be9fbf2601498be05b8cbd4e237 10-Sep-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> call readyToDraw() instead of just checking for null pixels, since we could
have a bitmap with pixels, but no (required) colortable. readyToDraw() knows
to check for this.



git-svn-id: http://skia.googlecode.com/svn/trunk@599 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
49099b25367d1b9ef45ccaa7fe370facea6b89bf 09-Sep-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move SkMallocPixelRef into its own .cpp file, rather than embedding it
inside SkBitmap.cpp.

core_files.mk updated, but if your build does not reference that, you will
need to add SkMallocPixelRef.cpp to your list



git-svn-id: http://skia.googlecode.com/svn/trunk@597 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kMallocPixelRef.cpp
ore_files.mk
ce4e53a2347040a3c145768c193a7a7958c0d4ec 09-Sep-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add abstract wrapper for platform-specific bitmap backends



git-svn-id: http://skia.googlecode.com/svn/trunk@596 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
cb34235f46b6259b612e72c416e850e26803250a 22-Jul-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix matrix use in coretext fonthost
update gm images to new baseline



git-svn-id: http://skia.googlecode.com/svn/trunk@590 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
0e21ec009a4e2e6343d6a32dfe4c93faf1b01c01 20-Jul-2010 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for SkMatrix::invert() for large coordinate values.

See http://codereview.appspot.com/1731053



git-svn-id: http://skia.googlecode.com/svn/trunk@589 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
097a3513535ad854c1b049c32c080ec875ab1411 13-Jul-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkRegion::setRects(), and its unit tests



git-svn-id: http://skia.googlecode.com/svn/trunk@588 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
2e086190e55a01dc2f7b74df6f2828e8cac2b9ab 08-Jul-2010 kbr@chromium.org <kbr@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Added optional "ambiguous" outgoing argument to XRay queries so that
calling code may choose different y-coordinates for better robustness.
Tested and verified manually inside O3D.

BUG=none
TEST=none

Review URL: http://codereview.appspot.com/1695051


git-svn-id: http://skia.googlecode.com/svn/trunk@586 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
1960ff67bdba330841214d8b2c9464ad0ba56cf3 18-Jun-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "We extract a sub-function from MAKENAME(_nofilter_DX), only dealing with reading"

Broke ARM build.

git-svn-id: http://skia.googlecode.com/svn/trunk@581 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_sample.h
a2c71cbd51da8b7767d43fe8954e7a4c674b2005 17-Jun-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add support for forcing autohinting.

http://codereview.appspot.com/1651044/show

git-svn-id: http://skia.googlecode.com/svn/trunk@580 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
46e2ec51010866c425712aa40edbc2897e889594 16-Jun-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> We extract a sub-function from MAKENAME(_nofilter_DX), only dealing with reading
one index array, indexing into src array and output to dst array.

Because of the scatter-gather nature, we can not do much burst/batch
reading/writing to improve the performance.

We tried Neon vector instructions. We also tried the hand optimize the compiler
generated assembly (non-neon) code. The latter seems to have better gain.
About 6% improvements, not much though...

Patch-by: Xin Qi of codeaurora.org

http://codereview.appspot.com/1127042/show

git-svn-id: http://skia.googlecode.com/svn/trunk@579 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_sample.h
e89d3ec443563a77d0cf29f08c0d034b2a93ec18 18-May-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix 64-bit Mac warnings/memory corruption



git-svn-id: http://skia.googlecode.com/svn/trunk@569 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kTypeface.cpp
647d3daeea5add5e80c4b84a07c1c8c46526a387 17-May-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix maxWidth when using linear-text



git-svn-id: http://skia.googlecode.com/svn/trunk@565 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
39d39c223ad592e19c326140969e954563d2e37e 10-May-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Minor fixes to build under Clang:
- Remove an unused ctor that was wrong anyway.
- Add magic angle brackets to a template declaration.

Patch-by: Evan Martin

git-svn-id: http://skia.googlecode.com/svn/trunk@563 2bbb7eff-a529-9590-31e7-b0007b416f81
kFloat.h
652807bbc8c57e5fa9622126b51fd369f5c67935 27-Apr-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "Use hairline when line width <= 1.0, instead of < 1.0.""

This reverts commit r560. Chromium has landed at r560, so I'm applying the
revert-revert. (See the comments in r560 for details.)

git-svn-id: http://skia.googlecode.com/svn/trunk@561 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
6fd950ca5c40ff4c537ec850086ce76fc51bf316 26-Apr-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Use hairline when line width <= 1.0, instead of < 1.0."

This reverts commit r538 for the moment. In order to roll Chrome to include
some bug fixes, I want to land it in between this revert, and the revert
revert. That way the baseline changes from the other revisions can be
considered without conflating the huge number of changes due to r538.

git-svn-id: http://skia.googlecode.com/svn/trunk@560 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
5f6a0762f14f73859e60f0e8339ca133d10e4d3c 21-Apr-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a SkTypeface::CreateForChars() function.

This allows us to do font fallback for strange scripts.
Added empty stubs to the implementations on all platforms.

Patch-by: Evan Martin
Signed-off-by: Adam Langley

http://codereview.appspot.com/950041

git-svn-id: http://skia.googlecode.com/svn/trunk@557 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
258cb228c636282a3e4f4ce87b1017498e207f33 14-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix overflow in matrixproc, and add debugging code to test that



git-svn-id: http://skia.googlecode.com/svn/trunk@548 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrixProcs.cpp
fbb02e7e96745cec30c6c21ad58cc596b4e1c64d 13-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> extend sentinel array to avoid reading uninitialized memory



git-svn-id: http://skia.googlecode.com/svn/trunk@546 2bbb7eff-a529-9590-31e7-b0007b416f81
kRegion.cpp
9aa8b32233702b19b97bebdc2c702e0c53407d45 13-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SKIA_VERSION_[MAJOR, MINOR, PATCH] in header and SkGraphics API



git-svn-id: http://skia.googlecode.com/svn/trunk@542 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
a956e4fe2e7a6701f778c632ff11e8a0ed01168f 12-Apr-2010 anatoly@google.com <anatoly@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use hairline when line width <= 1.0, instead of < 1.0.
This speeds line drawing up considerably when drawing with
default linewidth on canvas.

Review: http://codereview.appspot.com/883047/show



git-svn-id: http://skia.googlecode.com/svn/trunk@538 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
229d9b3953a84365e0cf4848556c0795af4446da 09-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ray fixes neon for dither and blend



git-svn-id: http://skia.googlecode.com/svn/trunk@537 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
b641c9f20beb36dbf4e8df53a199c84cef3be9b2 25-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> if we're strokeandfill+hairline, just draw fill (they way paths do) instead
of just hairline stroking (bad)



git-svn-id: http://skia.googlecode.com/svn/trunk@533 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e88f551b38c2893566b7016d906b1455e43542f5 19-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use 64bit intermediate to accumulate 16.16 widths, to avoid overflow



git-svn-id: http://skia.googlecode.com/svn/trunk@531 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
5b81535014f545f6498f5c8721723b81576989b1 11-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> only report hasspan16 if we're opaque, otherwise we get a different blend
via 565 than the 8888 case



git-svn-id: http://skia.googlecode.com/svn/trunk@527 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
8f073382bb6a9b3998a74e6b58654476b77b4c86 11-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix off-by-1 in alpha in colorshader setup
don't promise HasSpan16 if we're supposed to dither



git-svn-id: http://skia.googlecode.com/svn/trunk@526 2bbb7eff-a529-9590-31e7-b0007b416f81
kShader.cpp
8e4c93b04cdaa8caeba6b76d612fb2dd58a57a61 09-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable 32A->565 + alpha for now, until it handles src-alpha==0 as a noop



git-svn-id: http://skia.googlecode.com/svn/trunk@525 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D16.cpp
15161620bee33efcb706685486c9ce0fb51a72bb 08-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle NaN in curve choppers and edgeclipper



git-svn-id: http://skia.googlecode.com/svn/trunk@522 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
kGeometry.cpp
a6efe069040970a4d3b05e88484de4f82141f6e0 05-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> document the return value of append()



git-svn-id: http://skia.googlecode.com/svn/trunk@521 2bbb7eff-a529-9590-31e7-b0007b416f81
kPathHeap.h
d055c1fde2128514167b315f4d104b177e04a3de 01-Mar-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> convert matrix <--> matrix44
add glyphrec to bounder



git-svn-id: http://skia.googlecode.com/svn/trunk@516 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
dca6a56b71b922aab32098d6a55bbb041f3a2b48 22-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> explicitly pass bounds.top to the edgelist walker, so we don't leave any gaps
when the path is in an inverse fillmode, and its top or bottom are on a
fractional boundary. (thanks senorblanco)



git-svn-id: http://skia.googlecode.com/svn/trunk@504 2bbb7eff-a529-9590-31e7-b0007b416f81
kScanPriv.h
kScan_AntiPath.cpp
kScan_Path.cpp
eebf5cb6c0f5ed2630de2e7712d61b4ec1d49015 09-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add copysign for ints and floats
fix addArc to not wrap around if the sweepAngle is close to 360 but lost
precision when convert to radians (and then to unit vectors ala sin/cos)



git-svn-id: http://skia.googlecode.com/svn/trunk@495 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
d3aa4ff7a564953dff9a15ff03fd42eebf64569f 09-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add countPoints() and getPoint()



git-svn-id: http://skia.googlecode.com/svn/trunk@494 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
218521e15706c4377b1be49d931c4d7c8d597445 09-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check bounder before lockPixels on the bitmap



git-svn-id: http://skia.googlecode.com/svn/trunk@493 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
4526a847da6dc738dc73103ec4d47cc0dbdec478 06-Feb-2010 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This patch allows the use of the native FreeType emboldening
algorithm when "fake bold" text is used in SkPaint.

It's enabled by #defining SK_USE_FREETYPE_EMBOLDEN.

Review URL: http://codereview.appspot.com/198077



git-svn-id: http://skia.googlecode.com/svn/trunk@490 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ba09de4c4be66cc07790f23b0f3a925f47340e3e 05-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> respect edgetype in quickreject



git-svn-id: http://skia.googlecode.com/svn/trunk@489 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
945a139553a9c9da03766213661d7f5fd6ed3042 05-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkXRay geometry routines



git-svn-id: http://skia.googlecode.com/svn/trunk@488 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
a5dcaf6fd8115fb9c6028ca4e9848b968375abcd 05-Feb-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add containsText() api



git-svn-id: http://skia.googlecode.com/svn/trunk@487 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
ac753098e8af4a17e5df97b3a4dd0ce123f8d70c 28-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add some utils to SkPoint



git-svn-id: http://skia.googlecode.com/svn/trunk@485 2bbb7eff-a529-9590-31e7-b0007b416f81
kPoint.cpp
b4234a226612cf7f99a47d9c633233c1a488d6ed 21-Jan-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> skia: Always use aliased text when antialiasing is disabled.

Otherwise, people who have antialiasing disabled end up with
subpixel rendering if the subpixel setting happens to be set
to something other than "none". This change's interpretation
of these overlapping settings seems to be consistent with
GTK's and Firefox's.

Patch-by: Dan Erat
Signed-off-by: Adam Langley

BUG=http://code.google.com/p/chromium/issues/detail?id=28382

http://codereview.appspot.com/186248

git-svn-id: http://skia.googlecode.com/svn/trunk@475 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
d7a0083aaa8578d7bac328c642c3314e6163c6e5 14-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ICE fixes for arm



git-svn-id: http://skia.googlecode.com/svn/trunk@474 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_clamp.h
ec10d21eb9a17639688188b0defce6d757331eb4 12-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete SK_BUILD_FOR_BREW conditional



git-svn-id: http://skia.googlecode.com/svn/trunk@473 2bbb7eff-a529-9590-31e7-b0007b416f81
kStream.cpp
9d3a985aa3c82605346ed1518375a8c384b925e5 08-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add glyph->unichar query (inverse of a cmap)



git-svn-id: http://skia.googlecode.com/svn/trunk@472 2bbb7eff-a529-9590-31e7-b0007b416f81
kGlyphCache.cpp
kGlyphCache.h
kPaint.cpp
kScalerContext.cpp
13c8558e37043d4aad8b439ed053fac1cdb6763d 05-Jan-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix r466 which was causing Chromium valgrind failures.

See the added comment for details.

TBR=reed (since it's a build fix)

git-svn-id: http://skia.googlecode.com/svn/trunk@469 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
474a12c4976b3000174cad5df74c498cd723c5e2 04-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added a virtual to SkBounder, called by text, that passes
the glyph's ID as well as its bounds. Made the universal
doIRect() non-abstract so that a child class can override
either the general flavor or the text flavor.



git-svn-id: http://skia.googlecode.com/svn/trunk@468 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e95c91e6d9201d50d0b84fbc3d2f53f92f753e0b 04-Jan-2010 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add flag to enable bitmap strikes.

http://codereview.appspot.com/183096

git-svn-id: http://skia.googlecode.com/svn/trunk@466 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
55747ccdfb889e143f55c9ae67a012a8913efa39 18-Dec-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Native client build fix.

Patch from David Sehr.

Signed-off-by: Adam Langley <agl@chromium.org>

http://codereview.appspot.com/180090

git-svn-id: http://skia.googlecode.com/svn/trunk@464 2bbb7eff-a529-9590-31e7-b0007b416f81
kFilterProc.cpp
kRegion.cpp
63debae4c1020fa1e0ccd92ef3cbfdc8735acf8e 16-Dec-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> initial checkin for visualstudio build support

git-svn-id: http://skia.googlecode.com/svn/trunk@460 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
kEdge.cpp
kFloatBits.cpp
kPath.cpp
447bcfa8898ce10e7b6493ba9e3e23e08bd13f01 12-Dec-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Initialise fDeviceCMDirty

http://codereview.appspot.com/176050

git-svn-id: http://skia.googlecode.com/svn/trunk@457 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
f3f0bd71b81097f6c640e7f60805de7eacbc98c6 10-Dec-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2-ified S32_alpha_D32_filter_DX (refactoring to come). Also shaved a few
cycles off the SSE2 blends.

Review URL: http://codereview.appspot.com/171055



git-svn-id: http://skia.googlecode.com/svn/trunk@456 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
59ed9f6c8547cd11b23babbbf6377d98e5cee055 10-Dec-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Eenable new chopping edgelist builder by default. If it sticks well, I'll
remove the old code-path in a subsequent CL



git-svn-id: http://skia.googlecode.com/svn/trunk@454 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
b757f8d20c582463999bd7aa5a48110e84945d19 08-Dec-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reinstate the empty check, and always initialize the format field



git-svn-id: http://skia.googlecode.com/svn/trunk@453 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
cb60844b34766aad4151df5e87c144d4a57e9abe 04-Dec-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add drawData() to canvas, to record data blobs



git-svn-id: http://skia.googlecode.com/svn/trunk@452 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
b1501a3cde99f68c9c419d9db4ad15b8fed814f3 04-Dec-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix warning (struct forward-declared as class).

Review URL: http://codereview.appspot.com/164061


git-svn-id: http://skia.googlecode.com/svn/trunk@451 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.h
297a11cbc63d90c0c28cfaece87f25bac6a55258 02-Dec-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove check for empty devPath

Removes check for empty devPath since it was causing an assertion failure on
Mac OS X when drawing small fonts within the browser action badges.

BUG=none
TEST=none

Patch by andybons1.

http://codereview.appspot.com/163056

git-svn-id: http://skia.googlecode.com/svn/trunk@450 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
dc7de745dd142cdc00ffed7963ebb030a0506f72 30-Nov-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> More SSE2 optimizations. This CL implements an SSE2 version of S32_bitmap_D32_filter_DX, and uses aligned loads and stores for dst, in all blending.

Review URL: http://codereview.appspot.com/157141



git-svn-id: http://skia.googlecode.com/svn/trunk@448 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.h
kBitmapProcState_matrix.h
kBitmapProcState_sample.h
a3d901099d7d295cd7d9df4114e874d9ccfff447 30-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add unittest for IntersectLine, used by hairlines



git-svn-id: http://skia.googlecode.com/svn/trunk@447 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
kLineClipper.cpp
kScan_Antihair.cpp
7767cd87fdadeed868457a2407e8b0a50006fc4a 25-Nov-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Win32 build fix (unreviewed).



git-svn-id: http://skia.googlecode.com/svn/trunk@446 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
55e76b209c9249308a9ba3d75c2472dd55e9d298 23-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> outset the bounds if we're in hairline before quick-reject in SkDraw.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@445 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e522ca5d5f249bd51a00cb68bb051f811d0a9e85 23-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix winding bug in lineclipper
expose path.dump() all the time
UP arrow now toggles a grid of clip rects in sample app



git-svn-id: http://skia.googlecode.com/svn/trunk@443 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
kPath.cpp
d4577757874d1dda1a3bffa3f2347c251859c27e 21-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add checks for exceeding 16bits, and apply those for glyphs in getMetrics()



git-svn-id: http://skia.googlecode.com/svn/trunk@441 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
8d52841110f1017a7dd7f4083fea7369a82f97f3 20-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change guard to use ANDROID and __arm__, so it doesn't break non-arm android
configs (e.g. simulator)



git-svn-id: http://skia.googlecode.com/svn/trunk@440 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_filter.h
3f0785e0c675c906c0bd704702e122149c5ee951 19-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix index-out-of-range constant



git-svn-id: http://skia.googlecode.com/svn/trunk@437 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
e28ff55d980d2992618b6b721c848aba96cf759a 19-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> retool clipping in hairlines to catch huge coordinates



git-svn-id: http://skia.googlecode.com/svn/trunk@436 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
28bee9591d1b24de4a536dbd2ae948df8186ba94 19-Nov-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Exclude Android-only cpu-features.h from non-Android builds.

This is needed when building Chromium for ARM.

Patch by Joel Stanley <joel@chromium.org>

git-svn-id: http://skia.googlecode.com/svn/trunk@435 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_filter.h
181172d5642fce4a4c1d339a6e3c5e4a8079b11a 19-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> return early if we hit overflow when chopping on the left (i.e. the entire
segment is effectively to the left)



git-svn-id: http://skia.googlecode.com/svn/trunk@434 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeClipper.cpp
909994fbae0ffb532f42feac8859f8d86bbf64de 18-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> new scanconversion technique

This technique geometrically clips all segments against the clip bounds,
ensuring that we never send a value to the edgelist that might overflow in
fixedpoint.

Current disabled in SkScan_Path.cpp by a #define. There are a few minor pixel
differences between this and the old technique, as found by the gm tool, so
at the moment this new code is off by default.



git-svn-id: http://skia.googlecode.com/svn/trunk@432 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdgeBuilder.cpp
kEdgeBuilder.h
kEdgeClipper.cpp
kQuadClipper.cpp
kScan_Path.cpp
ore_files.mk
bb13586591bd412a0372aeb85d44159d2fa3f947 18-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix typos in cubic clipper



git-svn-id: http://skia.googlecode.com/svn/trunk@431 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kQuadClipper.cpp
kQuadClipper.h
3a0cd7f0e80115a8cf525c9e0cf231df06d30a42 17-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add explicit clamping after chopping w/ t to ensure we're in the clip



git-svn-id: http://skia.googlecode.com/svn/trunk@430 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadClipper.cpp
kQuadClipper.h
77f0ef726f1f8b6769ed2509171afce8bac00b23 17-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add quadclipping utility, plus sample test



git-svn-id: http://skia.googlecode.com/svn/trunk@429 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
kQuadClipper.cpp
kQuadClipper.h
4e753558fc8cc2f77cbcd46fba80d8612e836a1e 16-Nov-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> More SSE2-ification; fix for gcc -msse2.

Review URL: http://codereview.appspot.com/154163



git-svn-id: http://skia.googlecode.com/svn/trunk@428 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
70149060a74bb212e67eb140be7cbf97a7cd36a8 16-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add lineclipper, and test case



git-svn-id: http://skia.googlecode.com/svn/trunk@427 2bbb7eff-a529-9590-31e7-b0007b416f81
kLineClipper.cpp
e72fee513a5f903d6aa17066d2f3b79ac31f05de 16-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add onSendClickToChildren to views, so a view can capture all clicks.
speedup some of the unittests that were too slow
minor cleanup in SkScan_Path, in prep for larger changes



git-svn-id: http://skia.googlecode.com/svn/trunk@426 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
5ebbe14f76da3028e5d4523c093a0f4a2cf8e982 05-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix cheap calc of edgelist size



git-svn-id: http://skia.googlecode.com/svn/trunk@419 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
kScan_Path.cpp
9272761b22746d2d22439c26f5555028f8e824da 04-Nov-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SSE2 optimizations for 32bit blending blitters.

This CL implements SSE2 optimizations for 3 of the 32bit blending blitters. It
uses CPUID to detect for SSE2 at runtime. In order to accomodate runtime
detection, it changes the platform procs from static arrays to static
functions.

It also includes an implementation of SkTime for Win32.

http://codereview.appspot.com/144072



git-svn-id: http://skia.googlecode.com/svn/trunk@418 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow_D16.cpp
kBlitRow_D32.cpp
34245c7871f6339de8cc2be8fb1090ca3cba54ef 03-Nov-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add OVerView slide to samplecode
change inline functions in SkColorPriv.h to static inline



git-svn-id: http://skia.googlecode.com/svn/trunk@415 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
e16a9223fd2a09fb7ba72e20c957bef99cbef4fc 30-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable bogus assert (at least until I can investigate more)



git-svn-id: http://skia.googlecode.com/svn/trunk@414 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_4444.cpp
b577b41c8ec26c21ae599e80a2707d42f03eaa60 27-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shaderproc32 for index bitmaps. neon version of 32->16+dither



git-svn-id: http://skia.googlecode.com/svn/trunk@408 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_shaderproc.h
879a252d090a0929c11d8963dbd4328b11d0916f 26-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove check for filtering. Now if the src is opaque, the filtered result
always will be too.



git-svn-id: http://skia.googlecode.com/svn/trunk@406 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState_filter.h
522aa8d4d61f30bddbaf996b2933d5f7b1f23880 22-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix S32A_D565_Blend_neon



git-svn-id: http://skia.googlecode.com/svn/trunk@405 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
8481ccc199ba3ed03acb19b1f341394db5bcb834 22-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix quadclipper in the case that the chop function fails

If the chopper fails, then we've hit some numerical edge-case, which indicates
that the quad is just barely crossing the edge, so to handle that, we just
clamp the Y values to the edge. This distorts the quad, but only in the case
when 99% of the quad will not be affected.



git-svn-id: http://skia.googlecode.com/svn/trunk@404 2bbb7eff-a529-9590-31e7-b0007b416f81
kQuadClipper.cpp
d6a5f4e2008d96a896c76ca031bece0723e16e3c 22-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clear xfermode in paint to reflect that we saw it was srcover

This allows our asserts in the RGB16 blitter chooser to pass.



git-svn-id: http://skia.googlecode.com/svn/trunk@403 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
867ee807cc95c77aff830e9e6c1988bfbe604405 20-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> motorola neon patch for blitMask, used in text drawing



git-svn-id: http://skia.googlecode.com/svn/trunk@397 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
2b524f9b8e0aaeab95e31fc5459ad902e39b2399 19-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> enable neon opts from motorola for perspective



git-svn-id: http://skia.googlecode.com/svn/trunk@395 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
878999965b977c4ed771c3d655f9e23ef9b5adb1 16-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clean up fix to drawBitmapRect



git-svn-id: http://skia.googlecode.com/svn/trunk@388 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
fead49e3c43e67cf9648ec1999b34da959e1e36b 15-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix drawBitmapRect to not clip the src rect when computing the matrix



git-svn-id: http://skia.googlecode.com/svn/trunk@387 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
7f6e1e9caa4ced154c23701768e6c618dfe6ad48 14-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't force bitmapIsOpaque to false if we're instrinsically 16bit

This allows us to take more optimal paths, even when filtering or dithering



git-svn-id: http://skia.googlecode.com/svn/trunk@386 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
800046eba45c9e982ecfe8964b2107f7713ed639 14-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix new warnings from gcc 4.2



git-svn-id: http://skia.googlecode.com/svn/trunk@384 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kMemory_stdlib.cpp
kScan_Path.cpp
ea16cfa037bca933f6930a487b42f3c0faab9fe4 02-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> cache expanded rawcolor16
add special blitv for opaque16, as this is called a lot on short segments so
any startup overhead makes a difference



git-svn-id: http://skia.googlecode.com/svn/trunk@376 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
261ae4df7282f5dd39937748b0da7e822b66a083 02-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> oops, restore previous fix to saveLayer calling through to save()



git-svn-id: http://skia.googlecode.com/svn/trunk@375 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
1fc4c605def61d9e10489f9cd63dc378baa6ade3 02-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move factory for 565 into its own file



git-svn-id: http://skia.googlecode.com/svn/trunk@374 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_RGB16.cpp
kCoreBlitters.h
kPictureRecord.cpp
a5b741a97b2162127f1b1725912d07ecd41fa825 01-Oct-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't call through to the inherited saveLayer, but just call save during record



git-svn-id: http://skia.googlecode.com/svn/trunk@373 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
725005e1d04ed62cd5749e042164f8e184929e6c 29-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable perspective-no-filter until we can fix the out-of-range indices



git-svn-id: http://skia.googlecode.com/svn/trunk@372 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix_clamp.h
c4cae85752e3e486cf4eac8cd8128f57b6f40563 23-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add BlitRow procs for 32->32, to allow for neon and other optimizations.
call these new procs in (nearly) all the places we had inlined loops before.
In once instance (blitter_argb32::blitAntiH) we get different results by a
tiny bit. The new code is more accurate, and exactly inline with all of the
other like-minded blits, so I think the change is good going forward.



git-svn-id: http://skia.googlecode.com/svn/trunk@366 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow.h
kBlitRow_D16.cpp
kBlitRow_D32.cpp
kBlitter_ARGB32.cpp
kComposeShader.cpp
kCoreBlitters.h
kSpriteBlitter_ARGB32.cpp
ore_files.mk
ab7ac026d25fcb6e10c042e933f03e5f806c9097 18-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more float/double precision tweaks



git-svn-id: http://skia.googlecode.com/svn/trunk@355 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
0b9e2dbf2f51ac41439db2052cf80704d60932f4 16-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use doubles in matrix.invert() to keep more precision, needed for subtle
bugs when drawing stretched bitmaps (like ninepatch) at nasty scale factors
like 1.5 (where the inverse matrix steps 0.333333, 1.0, 1.666667, etc.)



git-svn-id: http://skia.googlecode.com/svn/trunk@354 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
ed881c2704bc81fe46a68c0cf9e292287313baa6 15-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add neon opts for matrix procs



git-svn-id: http://skia.googlecode.com/svn/trunk@353 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_matrix_clamp.h
kBitmapProcState_matrix_repeat.h
ebdeeb8a018f2df01e190fd961d68a94f0e0fcb9 03-Sep-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> don't magically convert to hairline unless we're < 1.0 in both X and Y. The new routine both checks,
and if legal, returns the new width which will be used to compute a modulated alpha.



git-svn-id: http://skia.googlecode.com/svn/trunk@352 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
a964028843ec3f69b3b2e556426ff881d1fcb4b2 28-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> http://code.google.com/p/skia/issues/detail?id=32

Detect when we no longer have a valid range for chopping due to finite float
precision, and just return a degenerate cubic at the end.



git-svn-id: http://skia.googlecode.com/svn/trunk@341 2bbb7eff-a529-9590-31e7-b0007b416f81
kGeometry.cpp
28937283e16928a562b3f9e19908db51bbb89ff9 28-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix gaps in antialiased hairlines (thanks to preda)
expand SampleHairline text to check for clip violations



git-svn-id: http://skia.googlecode.com/svn/trunk@340 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
3c9b2a4a0e4f57db23640e85959ee78b86634628 27-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> expand SkShader's flag kConstInY to 16 and 32 variants, allowing a shader
(like gradients) to support predithering. If they do, then they would suppress
kConstInY16, since they no longer are const.

The blitters now check for each flag separately, so we don't have to give up
const-in-Y in the 32bit case, since in that mode we don't care about dithering.



git-svn-id: http://skia.googlecode.com/svn/trunk@339 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBlitter_RGB16.cpp
kShader.cpp
c64599649bab68aedf07959f86fa506fc46fa3c2 25-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> special case 1x1 bitmaps when drawn as a shader (treat as a solid color)



git-svn-id: http://skia.googlecode.com/svn/trunk@336 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
593847a0e063522bef780ebac4f4072cf4cae6d8 25-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix overflow in qsort compare proc



git-svn-id: http://skia.googlecode.com/svn/trunk@335 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Path.cpp
1cdcb5138f9b70aff547ea1c3af96f0c90b12f8f 24-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warning in sampler
lock pixels when we extract alpha
disabling hinting when linear-text is set



git-svn-id: http://skia.googlecode.com/svn/trunk@333 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kPaint.cpp
cafc9f9e80e30fa75ad8a952e7a290e72f211ce7 22-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fixes around isOpaque and dithering

- copyTo() now preserves isOpaqueness, and BitmapCopyTest tests it
- bitmap shader doesn't claim to have shadespan16 if dithering is on, since its
sampler doesn't auto-dither (note that gradients do auto-dither in their
16bit sampler)
- blitter setup just relies on the shader to report if its 16bit sampler can be
called (allowing gradients to say yes regardless of dither, but bitmaps to say
no if dithering is on)



git-svn-id: http://skia.googlecode.com/svn/trunk@331 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcShader.cpp
kBlitter.cpp
kColorTable.cpp
c41513c4dac51d68570b309ec28a315d974edea7 22-Aug-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a sanity check to MaskSuperBlitter::blitH(), to avoid a subsequent
crash in *Blitter::blitMask(), and add some more asserts.

http://codereview.appspot.com/110050
http://crbug.com/17569



git-svn-id: http://skia.googlecode.com/svn/trunk@330 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
755dd4773dad70d5fbe3f8bb091eaf268ea752c7 20-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> respect dither setting in index8->565 sprite case



git-svn-id: http://skia.googlecode.com/svn/trunk@328 2bbb7eff-a529-9590-31e7-b0007b416f81
kSpriteBlitter_RGB16.cpp
a2b2c4ba5351b8cee0f03b5a9eeeb430862bbc7d 14-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix typo in matrix proc index computation, where we were always taking the
perspective case when affine would have been enough (and lots faster).



git-svn-id: http://skia.googlecode.com/svn/trunk@323 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrixProcs.cpp
4c128c4917acf25c2cc5d1bd22282a4e1bb53d96 14-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add method to compute max count for a given buffer size in the bitmap shader.
fix bug in quad loop of fill_sequential where we were going one quad too far.



git-svn-id: http://skia.googlecode.com/svn/trunk@322 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrixProcs.cpp
a3122b9b1ec66efef606d8797b7b16b6634e08d2 13-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> bzero SkPaint in its constructor, to allow us to cleanly use memcmp in our
operator==, given that we may be padded and not know how to init those pad bytes



git-svn-id: http://skia.googlecode.com/svn/trunk@321 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
07d1f008b365e94ef7c7347be19a03d00bd36805 13-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add special matrixprocs when the matrix is at most translate. These are faster
(somewhat) than their scale counterparts, but are also numerically exact for
any size bitmaps. The scale versions, because they operate in a scaled 65535
space, are not always exact for large images (due to SK_Fixed1 / width) loss of
bits



git-svn-id: http://skia.googlecode.com/svn/trunk@320 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrixProcs.cpp
feef49c4d10cce91556f54986989f0851f8d3608 12-Aug-2009 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add some SkASSERT's, to try to track down a reliability issue in Chrome.

http://codereview.appspot.com/105075
http://crbug.com/17569



git-svn-id: http://skia.googlecode.com/svn/trunk@317 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_AntiPath.cpp
0c1cda7e6b550b076b5174148714cb589ec096d4 12-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unneeded (empty) virtual destructor



git-svn-id: http://skia.googlecode.com/svn/trunk@316 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
95dbb9c038e692fab6abf5e33c0b6dee30028868 11-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fixes wacky build on android. no other explanation received



git-svn-id: http://skia.googlecode.com/svn/trunk@315 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
fb03cc7b49b1b90eafc761425e3ac8348a0e159f 11-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix validate() to note that an empty path can (by side-effect) have an empty but
translated fBounds



git-svn-id: http://skia.googlecode.com/svn/trunk@314 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
152f748386143475daf9da31aceb424dc7c8a7e6 07-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more neon work:
- remove neon-specific functions that were not faster than the C version
- move the neon filter function to its own header, so it could be use in more places



git-svn-id: http://skia.googlecode.com/svn/trunk@309 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_filter.h
kBitmapProcState_sample.h
kBitmapProcState_shaderproc.h
c9a1d4b519c2db8e43e54fef068c46462d2f8a4b 03-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add platformProcs() porting function



git-svn-id: http://skia.googlecode.com/svn/trunk@301 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
eef375bcd602adb065c4eccc07bd811b83a71de8 03-Aug-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> clean up SkBitmapProcState in preparation for adding porting-layer functions



git-svn-id: http://skia.googlecode.com/svn/trunk@300 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
4bda7a5e68d1f8a73c7c5ad532da1516ea085edd 30-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add opts for neon



git-svn-id: http://skia.googlecode.com/svn/trunk@297 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow.h
7d2e322beeb9361f93a7983193bdf20ac972d341 30-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optimization table for blitproc functions



git-svn-id: http://skia.googlecode.com/svn/trunk@295 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitRow.h
kBlitRow_D16.cpp
bd2724f672824dda7832f5503ba4e39acf1ec88c 22-Jul-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix valgrind warnings triggered in vertical mode.

Now that Chrome is rendering subpixel text, I was able to try running
the renderer process under valgrind, which turned up a number of
issues.

First, I was calculating the stride of vertical LCD glyphs wrong
(typo).

Secondly, I was going horribly wrong when a glyph was being blitted at
the edge of a bitmap. I suspected something was wrong with the code,
but I wasn't clear enough with the structure of the code when writing
it to figure out what the correct solution was.

http://codereview.appspot.com/97059


git-svn-id: http://skia.googlecode.com/svn/trunk@284 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kBlitter_ARGB32_Subpixel.cpp
36a4c2aa2dc2363dc093089b732346459ddc3b65 22-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkFontHost::FilterRect() which allows the font host to filter our request
before we turn it into a font-cache entry, for the cases where the scaler will
ignore and/or collapse certain feature requests (e.g. doesn't support all levels
of hinting)



git-svn-id: http://skia.googlecode.com/svn/trunk@283 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
f549369fcd9f203dc8020b5b15ee49330058782a 22-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SK_BUILD_SUBPIXEL to SK_SUPPORT_LCDTEXT to better match the name of the
feature (since we already have subpixel text support)

fix some debug-compile problems

update Makefile for lcd files



git-svn-id: http://skia.googlecode.com/svn/trunk@282 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kPaint.cpp
kScalerContext.cpp
ore_files.mk
01f82da73b38cdaaebf8862b4cb0bc636a52f78a 22-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove crufty #undefs



git-svn-id: http://skia.googlecode.com/svn/trunk@281 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_shaderproc.h
9da1ae3f35a6f25adf4f58ae2589129ceec6d11b 22-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix NaN in path iterator
fix case where cubic is big/degenerate, and never returns a valid edge



git-svn-id: http://skia.googlecode.com/svn/trunk@280 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
kPath.cpp
kScan_Path.cpp
84346211aa414450e4bc470891105ccd5f0c46b4 21-Jul-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused variable to fix warning on Windows:
src\core\SkBlitter_ARGB32.cpp(362) : warning C4101: 'alpha32' : unreferenced local variable


git-svn-id: http://skia.googlecode.com/svn/trunk@278 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
2db1177fd57e984e265055485a9ca14075c90975 21-Jul-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Delete duplicated code.

patch went wrong and duplicated SkFontHost.cpp.


git-svn-id: http://skia.googlecode.com/svn/trunk@276 2bbb7eff-a529-9590-31e7-b0007b416f81
kFontHost.cpp
309485b7b51f4cae4c0361ab4da00fe9cc89515c 21-Jul-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Subpixel glyph rendering support.

This patch adds support for rendering subpixel glyphs (using
Freetype). In order to control this rendering see
SkPaint::setLCDRenderText in SkPaint.h.

To setup the LCD mode, see SkFontHost::SetSubpixelOrientation and
SkFontHost::SetSubpixelOrder in SkFontHost.h.

This patch also adds more fine grained control over hinting (again,
only for Freetype currently). One can now control the hinting with
SkPaint::setHinting.


git-svn-id: http://skia.googlecode.com/svn/trunk@275 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_ARGB32.cpp
kBlitter_ARGB32_Subpixel.cpp
kFontHost.cpp
kPaint.cpp
kScalerContext.cpp
a380ae4a9ac209f5676c06aeaceacc1b08817eda 21-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix quickReject() to handle perspective correctly (i.e. transform forward into
dst-space, and perform the clip-test there).



git-svn-id: http://skia.googlecode.com/svn/trunk@274 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
aa9152abbca3a958a9379f4e5067a1c37486d677 17-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add special proc for repeat 16->16 filter bitmap shader



git-svn-id: http://skia.googlecode.com/svn/trunk@273 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_shaderproc.h
2a679d27f8609b4dcfd864850409f4b8443f43cd 17-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete header



git-svn-id: http://skia.googlecode.com/svn/trunk@272 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapShader.h
83f7bc30af2837c985934e14597caec332899a1c 17-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove conditional build flag for mipmaps
remove obsolete SkBitmapShader.cpp file



git-svn-id: http://skia.googlecode.com/svn/trunk@271 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapShader.cpp
kBitmapShader.h
kBitmapShaderTemplate.h
48534f96b9ccb747cecbdf3818bfbd3523a4d034 16-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> first cut at support for HW-specific blits/etc.



git-svn-id: http://skia.googlecode.com/svn/trunk@270 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_shaderproc.h
kBlitter_RGB16.cpp
a44b4cc7976b06caf3a3f6b7913c2af92eb32217 16-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> try our first special-case shaderproc



git-svn-id: http://skia.googlecode.com/svn/trunk@268 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState_shaderproc.h
7a99eb1c63d4327d352af09ea59f039f014e4028 16-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shaderprocs for all-in-one special blits (matrix+sampler)



git-svn-id: http://skia.googlecode.com/svn/trunk@267 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBitmapProcState.cpp
kBitmapProcState.h
b4f404ac4195e5b1f49e49c591bd69f98b246f9b 10-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle cap==round for drawPoints



git-svn-id: http://skia.googlecode.com/svn/trunk@266 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
b602b8e5334edc0bfcdf086c2ea58e2b5d5f1f3b 10-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> tweaks to 16bit shaders
fix typo-bug in 4444 blend case



git-svn-id: http://skia.googlecode.com/svn/trunk@265 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_4444.cpp
kBlitter_RGB16.cpp
kCoreBlitters.h
32a4249cbd3ebcb448fb0824afe875cdf9036686 10-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make a deep copy in CreateCGImageRef if we're 565, but first upscale to 32bit.
this at least draws the right colors, since we're 565 and CG only supports 1555
(unless someone knows how to tell CG we're 565...)

Fix ws in picturerecord

Enable dither in sample gradients, so the 4444 case isn't so ugly



git-svn-id: http://skia.googlecode.com/svn/trunk@264 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
dafaf7ac4d89f183dc515907665cdac3e3098466 10-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speedup 16bit shaders in the blitRect case
faster 32->16 blend by using the expand_16 intermediate format



git-svn-id: http://skia.googlecode.com/svn/trunk@263 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
kCoreBlitters.h
b4e22d62da422f3599ef9bd5091c5f4b7709d27e 09-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for underflow in restore() during picture record, and ignore it



git-svn-id: http://skia.googlecode.com/svn/trunk@262 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureRecord.cpp
31745581ca72bd6d4898f1344d2cc6bc41710664 08-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use scalarcomparetype in matrix tests, so we don't do anything tricky
(unnecessary) when floats are fast



git-svn-id: http://skia.googlecode.com/svn/trunk@259 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
187d5595901d1120d9425851e5afdd773f574502 08-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add dox for scalarcomparetype
use internal mutable version of drawPath when we've cons'd up a path on behalf
of a rect



git-svn-id: http://skia.googlecode.com/svn/trunk@258 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e18f9dff7a1827c79e7c6fd938157c2fedd47d13 07-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> initialize fShapeCount in init()



git-svn-id: http://skia.googlecode.com/svn/trunk@252 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
084ad42b91546f0f99d7cd5064c04edacede66ff 07-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix white-space



git-svn-id: http://skia.googlecode.com/svn/trunk@251 2bbb7eff-a529-9590-31e7-b0007b416f81
kSpriteBlitter_RGB16.cpp
da94699149a40a90731425766d3b994e34c5ba26 03-Jul-2009 deanm@chromium.org <deanm@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Optimize some alpha blending modes.

- Inline the component calculation helpers.
- Reorder the computation in plus_modeproc.

This doubles the performance of plus_modeproc.

Review URL: http://codereview.appspot.com/88084


git-svn-id: http://skia.googlecode.com/svn/trunk@250 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
8433b5db1a0f94cd92d2606817d5374ab899b87a 03-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more checks for null shapes in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@249 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicturePlayback.cpp
kPictureRecord.cpp
1c12abe3508cd69615c2dd50653f782835e325ce 02-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix gradients with alpha to convert to premul *after* the intermediate color
has been computed, othewise we can't distinguish 0x00000000 from 0x00FF0000
Add fast case for index blit where we read 4 src pixels at a time



git-svn-id: http://skia.googlecode.com/svn/trunk@248 2bbb7eff-a529-9590-31e7-b0007b416f81
kSpriteBlitter_RGB16.cpp
4516f4786f5dda1b86a8f825b9e8e910d9c2363c 29-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use sk_bzero instead of bzero, since it isn't always available.



git-svn-id: http://skia.googlecode.com/svn/trunk@244 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kConcaveToTriangles.cpp
kDraw.cpp
kMatrix.cpp
kPictureFlat.cpp
kRect.cpp
kScalerContext.cpp
0ad336f8c6f6f0325eee309c9cd501ea432cc33e 29-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shape flatten so they work properly in pictures
add flatten/unflatten to matrix



git-svn-id: http://skia.googlecode.com/svn/trunk@242 2bbb7eff-a529-9590-31e7-b0007b416f81
kMatrix.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kShape.cpp
09b84a00f79979142fbcfd691ccaeb5e5600922d 26-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shape recording to pictuures (sans serialization)



git-svn-id: http://skia.googlecode.com/svn/trunk@240 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
0baf19375466cfc24c96532df406e7c5b1d1aae8 24-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect nearly translate-only matrices when drawing bitmaps (for speed)
rename setXfermode(Mode) to setXfermodeMode(Mode) for sanity
fix memory leak in setXfermode(Mode)



git-svn-id: http://skia.googlecode.com/svn/trunk@239 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kDraw.cpp
kPaint.cpp
d66eef71012bdbc14834c12c8af1c946fe0d8499 24-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix memory leak in new setXfermode()



git-svn-id: http://skia.googlecode.com/svn/trunk@238 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
845fdaca174f4675e9acc164b510e3a5ffa9053c 23-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove deprecated use of porterduff enum



git-svn-id: http://skia.googlecode.com/svn/trunk@235 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kCanvas.cpp
kDraw.cpp
a0f5d1546d499ef0cd7dbfba9a866ae5a27e1541 22-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move xfermode modes from porterduff into xfermode itself



git-svn-id: http://skia.googlecode.com/svn/trunk@232 2bbb7eff-a529-9590-31e7-b0007b416f81
kPaint.cpp
kStroke.cpp
kXfermode.cpp
0ea42c1d2c35cc05564800f5006d5ae55ef28f6f 17-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fallback to drawing a line if the cubic is still too curvy, even if we've
exhausted our recursive attempts to subdivide.

Fixes trying to stroke this cubic (width==1.0)

path.moveTo(460.2881309415525, 303.250847066498);
path.cubicTo(463.36378422175284, 302.1169735073363,
456.32239330810046, 304.720354932878,
453.15255460013304, 305.788586869862);



git-svn-id: http://skia.googlecode.com/svn/trunk@219 2bbb7eff-a529-9590-31e7-b0007b416f81
kStroke.cpp
31d1c64bd54dd2b216846a30da4cc2e96765ec5f 15-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ws fixes



git-svn-id: http://skia.googlecode.com/svn/trunk@217 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter_RGB16.cpp
kCoreBlitters.h
9a74d313452f30629e2615eb8cbfe902433582c0 15-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> create separate opaque version of rgb16 blitter



git-svn-id: http://skia.googlecode.com/svn/trunk@216 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kBlitter_RGB16.cpp
kCoreBlitters.h
5119bdb952025a30f115b9c6a187173956e55097 12-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shader flag kConstInY_Flag
this signals blitters that the shader will return the same results for a given
x value, independent of y. Useful inside blitRect(), where it can cache the
first call to shadeSpan() and reuse it on all subsequent scans. Works with
(non-rotated) linear-gradients, and Nx1 bitmaps.



git-svn-id: http://skia.googlecode.com/svn/trunk@214 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcShader.cpp
kBlitter.cpp
kBlitter_RGB16.cpp
kCoreBlitters.h
kShader.cpp
199f108f14a5f60a9c2205ffa79b26102a206ad0 10-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> only call SkDevice::gainFocus() if we're actually drawing to a different device.
Saves overhead when using GL.



git-svn-id: http://skia.googlecode.com/svn/trunk@207 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
829c83c7c9a997993207b68f6fcaf7a5bbcd10b2 08-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix odd-pixel bug in mipmap downsamplers (thanks brett)



git-svn-id: http://skia.googlecode.com/svn/trunk@204 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
bbff1d507aa3f470139e2df409e94074a2f9425f 05-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkParsePath to go to/from SVG strings (e.g. "M0,0 L10,20")



git-svn-id: http://skia.googlecode.com/svn/trunk@203 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
6b82d1adc6a4726e36674e468ff1157e0b75373f 03-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add isConvex() hit to SkPath, to be used to speed up fills and opengl
set linewidth in gldevice for hair rects
remove some cruft from samples
add more gl-unimpl messages



git-svn-id: http://skia.googlecode.com/svn/trunk@199 2bbb7eff-a529-9590-31e7-b0007b416f81
kMemory_stdlib.cpp
kPath.cpp
9e0c2fcdafa8f2cfe2113e6335eff4efe3e28c86 02-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix break in setConfig() where we always reset the bitmap
remove use of non-standard ssize_t in SkSfntUtils.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@197 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
6b8cb256e62b22f921b7e41eb44b07ab7cc0bd56 02-Jun-2009 agl@chromium.org <agl@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Style only change to make SkBitmap to make it build with VC2005.

TBR=reed


git-svn-id: http://skia.googlecode.com/svn/trunk@196 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
89bb83abb420c126b02fcdd4047fd6574e9b73fc 29-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix trailing-ws
initialize fFlags in bitmapprocshader



git-svn-id: http://skia.googlecode.com/svn/trunk@191 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kBitmapProcShader.cpp
kColorTable.cpp
149e2f6159a797989f6f0fa93ecfaa66cdd55c40 22-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkSafeRef / SkSafeUnref as inline static functions, to use in place of our
existing obj->safeRef(), which is unsafe since it can its 'if (this)' can be
optimized away by some compilers.

fix some overflows in mimpmap generation



git-svn-id: http://skia.googlecode.com/svn/trunk@181 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
72dcd3a3c16a68f98bc345a4263678d43bc3daeb 18-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> init bounds to empty if we return false from getClipBounds()

We were already doing that in one place (empty clip), but now we do it in the
other as well (matrix not invertible).



git-svn-id: http://skia.googlecode.com/svn/trunk@179 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
f48f2817668547563310c9e8c39d67224df0e89f 18-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> shapes checkpoint: move matrix into groupshape and out of shape



git-svn-id: http://skia.googlecode.com/svn/trunk@178 2bbb7eff-a529-9590-31e7-b0007b416f81
kShape.cpp
f76bacff7f66724072c67edb185abf9e3add11a0 13-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkSize for dimensions
add SkShape baseclass, in the hopes of having SkPicture inherit from that, and
also using shapes as the extension mechanism for things like animated-gif



git-svn-id: http://skia.googlecode.com/svn/trunk@174 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kShape.cpp
ore_files.mk
fbaa88d9695347299321cbce2bf803726999fb58 06-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add canCopyTo(), to preflight if copyTo can succeed. update unittests for it



git-svn-id: http://skia.googlecode.com/svn/trunk@169 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
311c82db3115fc6810855cbcc42a6bc6fbd48265 06-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix copyTo to only copy the minimum pixels per row, and to lock the src before
trying to access its colorTable. Update unittest for copyTo. Add sample for
using a mask to clip a layer.



git-svn-id: http://skia.googlecode.com/svn/trunk@168 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
a6260ff5696e3ae45f295463eaeada2cd75a8b85 04-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> update license header



git-svn-id: http://skia.googlecode.com/svn/trunk@166 2bbb7eff-a529-9590-31e7-b0007b416f81
kColorTable.cpp
f9ab99aaade8c451c0e9309b4c61a448373019e3 03-May-2009 weita@google.com <weita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow copying an Index8 bitmap when srcConfig and dstConfig are both
Index8.

Also, change the logic of SkBitmap.copyTo() to do memcpy() if srcConfig
and dstConfig are the same.


git-svn-id: http://skia.googlecode.com/svn/trunk@164 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kColorTable.cpp
543ed9352c7dfd93071c08b14930cca2e82a08d4 24-Apr-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add ADD xfermode
safely handle (don't draw) if the size of SkMask exceeds 31bits



git-svn-id: http://skia.googlecode.com/svn/trunk@159 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kMask.cpp
kXfermode.cpp
9c970453fd1cb6e9618e37c61507465772deca80 03-Apr-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> import portability fixes from Chrome around floats
move porting functions for SkDebugf into /ports directory



git-svn-id: http://skia.googlecode.com/svn/trunk@147 2bbb7eff-a529-9590-31e7-b0007b416f81
kDebug_stdio.cpp
kDrawing.cpp
kFP.h
ore_files.mk
2043f7d009a795e164c58f4674e6b879aeb679c9 02-Apr-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> replace floorf() with sk_float_floor(), so it builds on platforms w/o floorf



git-svn-id: http://skia.googlecode.com/svn/trunk@145 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
d252db03d9650013b545ef9781fe993c07f8f314 01-Apr-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> API change: SkPath computeBounds -> getBounds



git-svn-id: http://skia.googlecode.com/svn/trunk@140 2bbb7eff-a529-9590-31e7-b0007b416f81
kBlitter.cpp
kCanvas.cpp
kDraw.cpp
kPaint.cpp
kPath.cpp
kPictureRecord.cpp
kScalerContext.cpp
kScan_AntiPath.cpp
kScan_Hairline.cpp
kScan_Path.cpp
kStroke.cpp
aefd2bc75738963b9b6579897be32bfbc8fb00af 30-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkChunkAlloc::unalloc() to undo the last allocation, useful if the caller wants to treat the allocats like temp memory (see PictureRecord)
Call unalloc if a paint (or other cached object) is already in our list for picture recording
Use correct CompareType macro in SkCanvas::quickReject



git-svn-id: http://skia.googlecode.com/svn/trunk@138 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
kChunkAlloc.cpp
kPaint.cpp
kPictureRecord.cpp
f459a4949d4edb179e015cf12635d26c596fd17c 27-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make bitmap width/height 32bits, matching the API



git-svn-id: http://skia.googlecode.com/svn/trunk@137 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
3eab80cc1f2031b582b37aed6176e1f8df67b72f 24-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> rename drawable to drawing for now, so we don't collide with animator
remove sk_throw in pixelref. a debug statement is enough.



git-svn-id: http://skia.googlecode.com/svn/trunk@136 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawable.cpp
kDrawing.cpp
kPixelRef.cpp
6c14b43a840c791699747ba4cc0ed5abf2bda218 23-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use static_cast
fix comments



git-svn-id: http://skia.googlecode.com/svn/trunk@135 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kPath.cpp
kScalerContext.cpp
kScan_Antihair.cpp
8898363b2ee02e36dfa4bb166b59c09c4e835b0f 23-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add check/hack to avoid drawing outside of the clip for hairlines



git-svn-id: http://skia.googlecode.com/svn/trunk@134 2bbb7eff-a529-9590-31e7-b0007b416f81
kScan_Antihair.cpp
ae64551e2e36fee00bf206666fdfe2b873922eda 23-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check-point for drawables (experimental)



git-svn-id: http://skia.googlecode.com/svn/trunk@133 2bbb7eff-a529-9590-31e7-b0007b416f81
kDrawable.cpp
4ddfe357da4a94f587b6ca18b398c23478fa1b24 20-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for NaN in path iterator (otherwise we have an infinite loop)



git-svn-id: http://skia.googlecode.com/svn/trunk@131 2bbb7eff-a529-9590-31e7-b0007b416f81
kPath.cpp
04225dcdec5a01bc9889b7fb03e7aceb87fccc6e 20-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> build with -Wall
fix associated warnings (at least on gcc 4.0.1)



git-svn-id: http://skia.googlecode.com/svn/trunk@129 2bbb7eff-a529-9590-31e7-b0007b416f81
kConcaveToTriangles.cpp
kPictureFlat.h
kPicturePlayback.cpp
kStream.cpp
49f0ff25a046d6001dc2d095b6fa3c30f0f46b6a 19-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> promote SkMask's rowBytes to 32bits, since its bounds is a 32bit rect
be sure a rect is sorted before using it as the path's bounds cache



git-svn-id: http://skia.googlecode.com/svn/trunk@128 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmap.cpp
kDraw.cpp
kPath.cpp
kScalerContext.cpp
eff416bec1bc08685af1dc4265b9d860e43b8240 18-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix heapsort



git-svn-id: http://skia.googlecode.com/svn/trunk@126 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
a14ea0e930c82daa2364ece4bd0b06256272302a 17-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Simplify font-chaining (fallbacks) to have fonthost just return the next
logical fontID.
Extend ImageRef to accept an imagedecoder factory, to replace calling the std
one.



git-svn-id: http://skia.googlecode.com/svn/trunk@125 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
3555591c158c242b071c7ec92ad75b6e4cb74af2 16-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add sanity checks to handles extremely large coordinates or filter margins.
Should not hurt features (we hope), but is an easy way to survive malicious
values on a small-memory machine like a handset.



git-svn-id: http://skia.googlecode.com/svn/trunk@123 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
kScan_AntiPath.cpp
kScan_Antihair.cpp
dfb6fb5669b3625ad32c0563b44fb805d1369f68 16-Mar-2009 turk@google.com <turk@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing file.


git-svn-id: http://skia.googlecode.com/svn/trunk@122 2bbb7eff-a529-9590-31e7-b0007b416f81
kConcaveToTriangles.h
6f8491bf76cba6c198416048fe577d29b252474b 13-Mar-2009 turk@google.com <turk@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial implementation of polygon trianagulation. It seems to be robust and passes the associated tests,
but has some problems:
(1) it generates T-vertices;
(2) it only works with right-handed outer contours;
(3) The sort and search are inefficient.


git-svn-id: http://skia.googlecode.com/svn/trunk@119 2bbb7eff-a529-9590-31e7-b0007b416f81
akefile.am
kConcaveToTriangles.cpp
ore_files.mk
5e5adfd12cc2cb194db971708cd7f34ff47e10b4 07-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> migrate more legacy unittests into tests/
SkParse yet to be cleaned up



git-svn-id: http://skia.googlecode.com/svn/trunk@113 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kPathMeasure.cpp
kStream.cpp
kTSearch.cpp
62533ed6bb490e9abf5d02686d897a93c5e85d51 06-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix leak in Deserialize



git-svn-id: http://skia.googlecode.com/svn/trunk@112 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
fb12c3e6ba84f95dc15fbaddc239dede0ba1d60e 05-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix ref() in CreateTypeface
fix comment in SkDraw.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@111 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
b1d9d2ef2803bd55fdc886d13033b48f8450dd14 04-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Significant cleanup in api, and more importantly in sementics, of SkFontHost
- FindTypeface is now CreateTypeface, and what it returns is always considered
a new instance, even if it is from a cache (in which case it will have been
ref()'d. The caller must always balance its ownership by calling unref() on
the result when they are done.
- CloseStream is gone, since the caller can/must call stream->unref() when they
are done using it.
- ResolveTypeface is now ValidFontID, and just returns a bool.



git-svn-id: http://skia.googlecode.com/svn/trunk@109 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
069b827f8e4f8ca212548719db64983a69b8dc25 04-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> API cleanup: rename typeface Create to CreateFromName, and remove default arg



git-svn-id: http://skia.googlecode.com/svn/trunk@108 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
0650c6ca12e026201091f3e9ea9cbf0fed2b6da1 04-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move SkTSort.h back to private, and instead allow in the makefile for tests to
see private headers. This also means the tests don't have to use ../.. to find
the private header they want.



git-svn-id: http://skia.googlecode.com/svn/trunk@107 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
7d3a58a5e442e0aba239616a4e996e64866ffbd0 04-Mar-2009 turk@google.com <turk@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Format more consistently with the rest of Skia.



git-svn-id: http://skia.googlecode.com/svn/trunk@106 2bbb7eff-a529-9590-31e7-b0007b416f81
kCubicClipper.cpp
kCubicClipper.h
ef772ddb86e9ab5e7e2811c67ed75a24f3ce0e5e 03-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unimplemented (and uncalled) SkTypeface::Hash()



git-svn-id: http://skia.googlecode.com/svn/trunk@105 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
1116fb25e582a18db0f87890364fac72ccfe09ce 03-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change srcover (and dstover) to use the faster thought slightly less accurate
computation of the scale factor (+1 instead of SkAlpha255To256). This has the
upside of guaranteeing that if the dst is opaque (alpha==255), it will always
stay opaque.



git-svn-id: http://skia.googlecode.com/svn/trunk@104 2bbb7eff-a529-9590-31e7-b0007b416f81
kXfermode.cpp
5755a2a9ab531192fd26b523960ae0c551c7b24c 03-Mar-2009 turk@google.com <turk@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Unit test and bug fixes for cubic Bezier clipping.


git-svn-id: http://skia.googlecode.com/svn/trunk@102 2bbb7eff-a529-9590-31e7-b0007b416f81
kCubicClipper.cpp
4896f9e017db7ebc232a1b19c3abfb69f1ca465a 02-Mar-2009 turk@google.com <turk@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add cubic clipping, similar to that of quad clipping. Both Newton-Raphson and Bisection are implemented, because it is not clear which one will yield the highest performance on a given platform. Bisection is turned on as the default.



git-svn-id: http://skia.googlecode.com/svn/trunk@101 2bbb7eff-a529-9590-31e7-b0007b416f81
akefile.am
kCubicClipper.cpp
kCubicClipper.h
ore_files.mk
98de2bdbd12a01aaf347ca2549801b5940613f3f 02-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> explicitly call "our" version of clipPath in the case when clipRect needs to
turn itself into a path when the matrix rotates. This avoids infinite recursion
when the canvas is subclassed (e.g. SkPicture's recording canvas).



git-svn-id: http://skia.googlecode.com/svn/trunk@100 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
3abec1d7c38e9bd786fc6057f9608f3eeec98c86 02-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add initial unittests for Path
add operator== for paths
still need to implement isRect!



git-svn-id: http://skia.googlecode.com/svn/trunk@99 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kPath.cpp
a396a16d53c1355c59f9f1f739618b47dc346ee4 28-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add tests (unittests) to Makefile
move SkTSort.h into public includes



git-svn-id: http://skia.googlecode.com/svn/trunk@98 2bbb7eff-a529-9590-31e7-b0007b416f81
kTSort.h
d8730ea8b25d692c0656f8cf03f02aecfab2a17c 27-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more tests (need more meat in there)



git-svn-id: http://skia.googlecode.com/svn/trunk@97 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kGeometry.cpp
kGraphics.cpp
kString.cpp
ed673310e2551e64d8196f7776d7d4c92085f8c2 27-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add initial unittest framework (tests)
move some previous unittests out of core classes and into tests



git-svn-id: http://skia.googlecode.com/svn/trunk@96 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kMath.cpp
kMatrix.cpp
kUtils.cpp
3469c76c40790b409621fd7eff34f56240718549 24-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Handle kA8 bitmaps drawing through a matrix (was infinitely recursive)



git-svn-id: http://skia.googlecode.com/svn/trunk@95 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kDraw.cpp
ae814c809e1c4e02a1876c39065775c8c7d00f96 13-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add picture-record option to speedup complex clips
remove hack that stopped picture-playback from culling on clipPath() result



git-svn-id: http://skia.googlecode.com/svn/trunk@92 2bbb7eff-a529-9590-31e7-b0007b416f81
kPicture.cpp
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
9b0390626f73cc88c05c90de64bfe0481e808f14 11-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove white-space



git-svn-id: http://skia.googlecode.com/svn/trunk@91 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
62900b4c64401bc80ae85f6f5c87309a273cae10 11-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> handle failure when creating a scalercontext



git-svn-id: http://skia.googlecode.com/svn/trunk@90 2bbb7eff-a529-9590-31e7-b0007b416f81
kScalerContext.cpp
d9c0f0b57affec7a472879c5919acac6637d926a 06-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check for non-invertible matrices in getClipBounds()



git-svn-id: http://skia.googlecode.com/svn/trunk@89 2bbb7eff-a529-9590-31e7-b0007b416f81
kCanvas.cpp
c07d23a6e220c0aff36e3e4e06c1b685a440108e 06-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Chop quads exactly on the clip bounds, so we don't spend CPU cycles walking them
when we're above or below the clip.

Still to do:
- chop in X to avoid 16.16. overflow in the edgelist
- apply the same logic for cubics (tho much harder math)



git-svn-id: http://skia.googlecode.com/svn/trunk@88 2bbb7eff-a529-9590-31e7-b0007b416f81
kEdge.cpp
kEdge.h
kQuadClipper.cpp
kQuadClipper.h
kScan_Path.cpp
ore_files.mk
c990603b787fd573af8a5733535010020a7eb102 16-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make these compile w/o SK_CAN_USE_FLOAT



git-svn-id: http://skia.googlecode.com/svn/trunk@70 2bbb7eff-a529-9590-31e7-b0007b416f81
kGraphics.cpp
kMath.cpp
4cb8bd18d9449328f4d27f22ad4045ecf2aa06bd 16-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add crude Makefile (someone please help!)
make SkFloatBits.cpp compile w/o floats



git-svn-id: http://skia.googlecode.com/svn/trunk@69 2bbb7eff-a529-9590-31e7-b0007b416f81
kFloatBits.cpp
ore_files.mk
fc25abdabff76f913fb9d4f373418c10a1eca92b 15-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings



git-svn-id: http://skia.googlecode.com/svn/trunk@68 2bbb7eff-a529-9590-31e7-b0007b416f81
k64.cpp
kFP.h
kGeometry.cpp
kGraphics.cpp
kMMapStream.cpp
kMath.cpp
kPaint.cpp
kScalerContext.cpp
kScan_Path.cpp
kUtils.cpp
kWriter32.cpp
kXfermode.cpp
6f25297d93ed7fb29264cd072ad15ec25d1e27e7 14-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix multiple warnings (e.g. hidden virtuals, unused static functions)
update freetype version-check for const



git-svn-id: http://skia.googlecode.com/svn/trunk@66 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_sample.h
kMMapStream.cpp
0becfc5b7608ba67a4c98721cd61939e89ac5653 13-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add optimization for width==1 bitmaps in shader procs
odd warning fixes and cleanup



git-svn-id: http://skia.googlecode.com/svn/trunk@63 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState_matrix.h
kBitmapProcState_sample.h
2e86178f2bbfc866c627eb1fee926bd7969144f7 12-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete state



git-svn-id: http://skia.googlecode.com/svn/trunk@62 2bbb7eff-a529-9590-31e7-b0007b416f81
kBitmapProcState.cpp
kBitmapProcState.h
092590b88dd87d2fca87d38b2003068ffef37f2f 06-Jan-2009 joe.gregorio <joe.gregorio@2bbb7eff-a529-9590-31e7-b0007b416f81> Initial automake and autoconf files to build core into libskia.a.

git-svn-id: http://skia.googlecode.com/svn/trunk@55 2bbb7eff-a529-9590-31e7-b0007b416f81
akefile.am
6e073b9e2b70d6bbf8a06050fff1364827204f08 06-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove defines for strcasecmp (issue #5)
support setMatrix in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@53 2bbb7eff-a529-9590-31e7-b0007b416f81
kPictureFlat.h
kPicturePlayback.cpp
kPictureRecord.cpp
kPictureRecord.h
03ca3d19c46817eaaadb7dfce1c60c002d809db9 22-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move CreateTypefaceFromFile into fonthost porting layer, so we don't force a given port to have mmap access.
update core.proj as some headers have changed location



git-svn-id: http://skia.googlecode.com/svn/trunk@43 2bbb7eff-a529-9590-31e7-b0007b416f81
kTypeface.cpp
6efdc47afc8bb24603fc0d15146ada609b728f2f 19-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> first cut at event-based test app



git-svn-id: http://skia.googlecode.com/svn/trunk@37 2bbb7eff-a529-9590-31e7-b0007b416f81
kAutoKern.h
kBlitter.h
kGeometry.h
kScan.h
fadd796fc5bfbc405042717b9c758346902efd71 18-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make this header public (at least for now)



git-svn-id: http://skia.googlecode.com/svn/trunk@34 2bbb7eff-a529-9590-31e7-b0007b416f81
kOSFile.h
9fb1731ef2b279da54d3d3e0fa04d1e0e5c3651a 18-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move core files into core (were in images, but are required for core library)



git-svn-id: http://skia.googlecode.com/svn/trunk@31 2bbb7eff-a529-9590-31e7-b0007b416f81
kMMapStream.cpp
kOSFile.h
kStream.cpp
689411a87ca7d19abe04b5c9baff26bd96b2123e 18-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix compile by using the right (new) name for SkComposeShader.h



git-svn-id: http://skia.googlecode.com/svn/trunk@29 2bbb7eff-a529-9590-31e7-b0007b416f81
kDraw.cpp
e3be725d2b67982a8751f6f7311b6bb2e50c8028 17-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> merge in from android: fix unichar->utf8 conversion



git-svn-id: http://skia.googlecode.com/svn/trunk@28 2bbb7eff-a529-9590-31e7-b0007b416f81
kUtils.cpp
8a1c16ff38322f0210116fa7293eb8817c7e477e 17-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> grab from latest android



git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
RGB32_Clamp_Bilinear_BitmapShader.h
k64.cpp
kAlphaRuns.cpp
kAntiRun.h
kAutoKern.h
kBitmap.cpp
kBitmapProcShader.cpp
kBitmapProcShader.h
kBitmapProcState.cpp
kBitmapProcState.h
kBitmapProcState_matrix.h
kBitmapProcState_matrixProcs.cpp
kBitmapProcState_sample.h
kBitmapSampler.cpp
kBitmapSampler.h
kBitmapSamplerTemplate.h
kBitmapShader.cpp
kBitmapShader.h
kBitmapShader16BilerpTemplate.h
kBitmapShaderTemplate.h
kBitmap_scroll.cpp
kBlitBWMaskTemplate.h
kBlitRow.h
kBlitRow_D16.cpp
kBlitRow_D4444.cpp
kBlitter.cpp
kBlitter.h
kBlitter_4444.cpp
kBlitter_A1.cpp
kBlitter_A8.cpp
kBlitter_ARGB32.cpp
kBlitter_RGB16.cpp
kBlitter_Sprite.cpp
kBuffer.cpp
kCanvas.cpp
kChunkAlloc.cpp
kColor.cpp
kColorFilter.cpp
kColorTable.cpp
kComposeShader.cpp
kCordic.cpp
kCordic.h
kCoreBlitters.h
kDebug.cpp
kDebug_stdio.cpp
kDeque.cpp
kDevice.cpp
kDither.cpp
kDraw.cpp
kDrawProcs.h
kEdge.cpp
kEdge.h
kFP.h
kFilterProc.cpp
kFilterProc.h
kFlattenable.cpp
kFloat.cpp
kFloat.h
kFloatBits.cpp
kGeometry.cpp
kGeometry.h
kGlobals.cpp
kGlyphCache.cpp
kGlyphCache.h
kGraphics.cpp
kMask.cpp
kMaskFilter.cpp
kMath.cpp
kMatrix.cpp
kMemory_stdlib.cpp
kPackBits.cpp
kPaint.cpp
kPath.cpp
kPathEffect.cpp
kPathHeap.cpp
kPathHeap.h
kPathMeasure.cpp
kPicture.cpp
kPictureFlat.cpp
kPictureFlat.h
kPicturePlayback.cpp
kPicturePlayback.h
kPictureRecord.cpp
kPictureRecord.h
kPixelRef.cpp
kPoint.cpp
kProcSpriteBlitter.cpp
kPtrRecorder.cpp
kRasterizer.cpp
kRect.cpp
kRefCnt.cpp
kRegion.cpp
kRegionPriv.h
kRegion_path.cpp
kScalerContext.cpp
kScan.cpp
kScan.h
kScanPriv.h
kScan_AntiPath.cpp
kScan_Antihair.cpp
kScan_Hairline.cpp
kScan_Path.cpp
kShader.cpp
kSinTable.h
kSpriteBlitter.h
kSpriteBlitterTemplate.h
kSpriteBlitter_ARGB32.cpp
kSpriteBlitter_RGB16.cpp
kString.cpp
kStroke.cpp
kStrokerPriv.cpp
kStrokerPriv.h
kTSearch.cpp
kTSort.h
kTemplatesPriv.h
kTypeface.cpp
kUnPreMultiply.cpp
kUtils.cpp
kWriter32.cpp
kXfermode.cpp