| 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 // Temporarily reverted to see if this is the source of NEON diffs. | 1492 case SkXfermode::kXor_Mode: return SkT4pxXfermode<Xor4f>::Create(re
c); |
| 1493 // If not, try DstATop then SrcATop next. Multiply is not the problem. | |
| 1494 // case SkXfermode::kXor_Mode: return SkT4pxXfermode<Xor4f>::Create
(rec); | |
| 1495 case SkXfermode::kPlus_Mode: return SkT4pxXfermode<Plus4f>::Create(r
ec); | 1493 case SkXfermode::kPlus_Mode: return SkT4pxXfermode<Plus4f>::Create(r
ec); |
| 1496 case SkXfermode::kModulate_Mode: return SkT4pxXfermode<Modulate4f>::Crea
te(rec); | 1494 case SkXfermode::kModulate_Mode: return SkT4pxXfermode<Modulate4f>::Crea
te(rec); |
| 1497 case SkXfermode::kScreen_Mode: return SkT4pxXfermode<Screen4f>::Create
(rec); | 1495 case SkXfermode::kScreen_Mode: return SkT4pxXfermode<Screen4f>::Create
(rec); |
| 1498 case SkXfermode::kMultiply_Mode: return SkT4pxXfermode<Multiply4f>::Crea
te(rec); | 1496 case SkXfermode::kMultiply_Mode: return SkT4pxXfermode<Multiply4f>::Crea
te(rec); |
| 1499 default: break; | 1497 default: break; |
| 1500 } | 1498 } |
| 1501 #endif | 1499 #endif |
| 1502 | 1500 |
| 1503 #if defined(SK_4F_XFERMODES_ARE_FAST) | 1501 #if defined(SK_4F_XFERMODES_ARE_FAST) |
| 1504 switch (mode) { | 1502 switch (mode) { |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1808 } else { | 1806 } else { |
| 1809 proc16 = rec.fProc16_General; | 1807 proc16 = rec.fProc16_General; |
| 1810 } | 1808 } |
| 1811 } | 1809 } |
| 1812 return proc16; | 1810 return proc16; |
| 1813 } | 1811 } |
| 1814 | 1812 |
| 1815 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1813 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) |
| 1816 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1814 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) |
| 1817 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1815 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
| OLD | NEW |