skia2/include
mtklein 654ad19fbd Revert of De-templatize Sk4pxXfermode code a bit. (patchset #2 id:20001 of https://codereview.chromium.org/1242743004/)
Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon/builds/1168/steps/build%20most/logs/stdio

Original issue's description:
> De-templatize Sk4pxXfermode code a bit.
>
> This deduplicates a few pieces of code:
>   - we end up with one copy of each xfer32() driver loop instead of one per xfermode;
>   - we end up with two* copies of each xfermode implementation instead of ten**.
>
> * For a given Mode: Mode() itself and xfer_aa<Mode>().
> ** From unrolling: twice at a stride of 8, once at 4, once at 2, and once at 1, then all again for when we have AA.
>
> This decreases the size of SkXfermode.o from 1.5M to 620K on x86-64 and from 1.3M to 680K on ARMv7+NEON.
>
> If we wanted to, we could eliminate the xfer_aa<Mode>() copy by tagging each Mode() function as __attribute__((noinline)) or its equivalent.  This would result in another ~100K space savings.
>
> Performance is affected in proportion to the original xfermode speed:
> fast modes like Plus take the largest proportional hit, and slow modes
> like HardLight or SoftLight see essentially no hit at all.
>
> This adds SK_VECTORCALL to help keep this code fast on ARMv7 and Windows.  I've looked at the ARMv7 generated code... it looks good, even pretty.
>
> For compatibility with SK_VECTORCALL, we now pass the vector-sized arguments by value instead of by reference.  Some refactoring now allows us to declare each mode as just a static function instead of a struct, which simplifies things.
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e617e1525916d7ee684142728c0905828caf49da

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

Review URL: https://codereview.chromium.org/1245273005
2015-07-21 12:08:41 -07:00
..
animator Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
c Propagate SkSurfaceProps to more call sites 2015-06-23 06:26:08 -07:00
codec Allow creating multiple scanline decoders. 2015-07-10 12:07:02 -07:00
config remove SkInstCnt 2015-06-26 11:45:03 -07:00
core Revert of De-templatize Sk4pxXfermode code a bit. (patchset #2 id:20001 of https://codereview.chromium.org/1242743004/) 2015-07-21 12:08:41 -07:00
device/xps C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} 2015-03-25 18:17:32 -07:00
effects Add new SkPoint3 class 2015-07-13 13:16:44 -07:00
gpu Make readpixels work on GrTextures 2015-07-16 08:23:13 -07:00
images remove SkInstCnt 2015-06-26 11:45:03 -07:00
pathops Revert of Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1203983003/) 2015-06-26 10:23:07 -07:00
pipe Fixing leaky handling of SkImage in SkDeferredCanvas. 2015-06-02 11:47:45 -07:00
ports Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate. 2015-07-07 12:21:22 -07:00
svg Add SkSVGCanvas 2015-02-06 12:51:10 -08:00
utils add src-rect-constraint to drawImageRect 2015-07-14 10:54:12 -07:00
views Revert "Move headers used by headers in include/ to include/private." 2015-07-01 16:35:59 -04:00
xml Fix up -Winconsistent-missing-override 2015-07-13 06:18:39 -07:00