OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkXfermode.h" | 8 #include "SkXfermode.h" |
9 #include "SkXfermode_proccoeff.h" | 9 #include "SkXfermode_proccoeff.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 1314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1325 } | 1325 } |
1326 | 1326 |
1327 SkXfermodeProc4f SkXfermode::GetProc4f(Mode mode) { | 1327 SkXfermodeProc4f SkXfermode::GetProc4f(Mode mode) { |
1328 SkXfermodeProc4f proc = nullptr; | 1328 SkXfermodeProc4f proc = nullptr; |
1329 if ((unsigned)mode < kModeCount) { | 1329 if ((unsigned)mode < kModeCount) { |
1330 proc = gProcCoeffs[mode].fProc4f; | 1330 proc = gProcCoeffs[mode].fProc4f; |
1331 } | 1331 } |
1332 return proc; | 1332 return proc; |
1333 } | 1333 } |
1334 | 1334 |
| 1335 SkXfermodeProc4f SkXfermode::getProc4f() const { |
| 1336 Mode mode; |
| 1337 return this->asMode(&mode) ? GetProc4f(mode) : nullptr; |
| 1338 } |
| 1339 |
1335 bool SkXfermode::ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst) { | 1340 bool SkXfermode::ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst) { |
1336 SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount); | 1341 SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount); |
1337 | 1342 |
1338 if ((unsigned)mode >= (unsigned)kModeCount) { | 1343 if ((unsigned)mode >= (unsigned)kModeCount) { |
1339 // illegal mode parameter | 1344 // illegal mode parameter |
1340 return false; | 1345 return false; |
1341 } | 1346 } |
1342 | 1347 |
1343 const ProcCoeff& rec = gProcCoeffs[mode]; | 1348 const ProcCoeff& rec = gProcCoeffs[mode]; |
1344 | 1349 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 if (!xfer) { | 1394 if (!xfer) { |
1390 return SkXfermode::kOpaque_SrcColorOpacity == opacityType; | 1395 return SkXfermode::kOpaque_SrcColorOpacity == opacityType; |
1391 } | 1396 } |
1392 | 1397 |
1393 return xfer->isOpaque(opacityType); | 1398 return xfer->isOpaque(opacityType); |
1394 } | 1399 } |
1395 | 1400 |
1396 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1401 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) |
1397 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1402 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) |
1398 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1403 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |