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 1325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 } | 1336 } |
1337 | 1337 |
1338 SkXfermodeProc4f SkXfermode::GetProc4f(Mode mode) { | 1338 SkXfermodeProc4f SkXfermode::GetProc4f(Mode mode) { |
1339 SkXfermodeProc4f proc = nullptr; | 1339 SkXfermodeProc4f proc = nullptr; |
1340 if ((unsigned)mode < kModeCount) { | 1340 if ((unsigned)mode < kModeCount) { |
1341 proc = gProcCoeffs[mode].fProc4f; | 1341 proc = gProcCoeffs[mode].fProc4f; |
1342 } | 1342 } |
1343 return proc; | 1343 return proc; |
1344 } | 1344 } |
1345 | 1345 |
| 1346 SkXfermodeProc4f SkXfermode::getProc4f() const { |
| 1347 Mode mode; |
| 1348 return this->asMode(&mode) ? GetProc4f(mode) : nullptr; |
| 1349 } |
| 1350 |
1346 bool SkXfermode::ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst) { | 1351 bool SkXfermode::ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst) { |
1347 SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount); | 1352 SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount); |
1348 | 1353 |
1349 if ((unsigned)mode >= (unsigned)kModeCount) { | 1354 if ((unsigned)mode >= (unsigned)kModeCount) { |
1350 // illegal mode parameter | 1355 // illegal mode parameter |
1351 return false; | 1356 return false; |
1352 } | 1357 } |
1353 | 1358 |
1354 const ProcCoeff& rec = gProcCoeffs[mode]; | 1359 const ProcCoeff& rec = gProcCoeffs[mode]; |
1355 | 1360 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1400 if (!xfer) { | 1405 if (!xfer) { |
1401 return SkXfermode::kOpaque_SrcColorOpacity == opacityType; | 1406 return SkXfermode::kOpaque_SrcColorOpacity == opacityType; |
1402 } | 1407 } |
1403 | 1408 |
1404 return xfer->isOpaque(opacityType); | 1409 return xfer->isOpaque(opacityType); |
1405 } | 1410 } |
1406 | 1411 |
1407 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1412 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) |
1408 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1413 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) |
1409 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1414 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |