OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkXfermode.h" | 9 #include "SkXfermode.h" |
10 #include "SkXfermode_opts_SSE2.h" | 10 #include "SkXfermode_opts_SSE2.h" |
(...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1482 ProcCoeff rec = gProcCoeffs[mode]; | 1482 ProcCoeff rec = gProcCoeffs[mode]; |
1483 SkXfermodeProc pp = SkPlatformXfermodeProcFactory(mode); | 1483 SkXfermodeProc pp = SkPlatformXfermodeProcFactory(mode); |
1484 if (pp != NULL) { | 1484 if (pp != NULL) { |
1485 rec.fProc = pp; | 1485 rec.fProc = pp; |
1486 } | 1486 } |
1487 | 1487 |
1488 #if defined(SK_4PX_XFERMODES_ARE_FAST) && !defined(SK_PREFER_LEGACY_FLOAT_XFERMO
DES) | 1488 #if defined(SK_4PX_XFERMODES_ARE_FAST) && !defined(SK_PREFER_LEGACY_FLOAT_XFERMO
DES) |
1489 switch (mode) { | 1489 switch (mode) { |
1490 case SkXfermode::kSrcATop_Mode: return SkT4pxXfermode<SrcATop4f>::Creat
e(rec); | 1490 case SkXfermode::kSrcATop_Mode: return SkT4pxXfermode<SrcATop4f>::Creat
e(rec); |
1491 case SkXfermode::kDstATop_Mode: return SkT4pxXfermode<DstATop4f>::Creat
e(rec); | 1491 case SkXfermode::kDstATop_Mode: return SkT4pxXfermode<DstATop4f>::Creat
e(rec); |
1492 case SkXfermode::kXor_Mode: return SkT4pxXfermode<Xor4f>::Create(re
c); | 1492 // Temporarily reverted to see if this is the source of NEON diffs. |
| 1493 // If not, try DstATop then SrcATop next. Multiply is not the problem. |
| 1494 // case SkXfermode::kXor_Mode: return SkT4pxXfermode<Xor4f>::Create
(rec); |
1493 case SkXfermode::kPlus_Mode: return SkT4pxXfermode<Plus4f>::Create(r
ec); | 1495 case SkXfermode::kPlus_Mode: return SkT4pxXfermode<Plus4f>::Create(r
ec); |
1494 case SkXfermode::kModulate_Mode: return SkT4pxXfermode<Modulate4f>::Crea
te(rec); | 1496 case SkXfermode::kModulate_Mode: return SkT4pxXfermode<Modulate4f>::Crea
te(rec); |
1495 case SkXfermode::kScreen_Mode: return SkT4pxXfermode<Screen4f>::Create
(rec); | 1497 case SkXfermode::kScreen_Mode: return SkT4pxXfermode<Screen4f>::Create
(rec); |
1496 case SkXfermode::kMultiply_Mode: return SkT4pxXfermode<Multiply4f>::Crea
te(rec); | 1498 case SkXfermode::kMultiply_Mode: return SkT4pxXfermode<Multiply4f>::Crea
te(rec); |
1497 default: break; | 1499 default: break; |
1498 } | 1500 } |
1499 #endif | 1501 #endif |
1500 | 1502 |
1501 #if defined(SK_4F_XFERMODES_ARE_FAST) | 1503 #if defined(SK_4F_XFERMODES_ARE_FAST) |
1502 switch (mode) { | 1504 switch (mode) { |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1806 } else { | 1808 } else { |
1807 proc16 = rec.fProc16_General; | 1809 proc16 = rec.fProc16_General; |
1808 } | 1810 } |
1809 } | 1811 } |
1810 return proc16; | 1812 return proc16; |
1811 } | 1813 } |
1812 | 1814 |
1813 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1815 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) |
1814 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1816 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) |
1815 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1817 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |