Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/core/SkXfermode.cpp

Issue 395603002: Simplify flattening to just write enough to call the factory (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 9
10 #include "SkXfermode.h" 10 #include "SkXfermode.h"
(...skipping 1220 matching lines...) Expand 10 before | Expand all | Expand 10 after
1231 int mode = rand->nextRangeU(SkXfermode::kLastCoeffMode + 1, SkXfermode::kLas tSeparableMode); 1231 int mode = rand->nextRangeU(SkXfermode::kLastCoeffMode + 1, SkXfermode::kLas tSeparableMode);
1232 1232
1233 return SkNEW_ARGS(XferEffect, (static_cast<SkXfermode::Mode>(mode), NULL)); 1233 return SkNEW_ARGS(XferEffect, (static_cast<SkXfermode::Mode>(mode), NULL));
1234 } 1234 }
1235 1235
1236 #endif 1236 #endif
1237 1237
1238 /////////////////////////////////////////////////////////////////////////////// 1238 ///////////////////////////////////////////////////////////////////////////////
1239 /////////////////////////////////////////////////////////////////////////////// 1239 ///////////////////////////////////////////////////////////////////////////////
1240 1240
1241 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
1241 SkProcCoeffXfermode::SkProcCoeffXfermode(SkReadBuffer& buffer) : INHERITED(buffe r) { 1242 SkProcCoeffXfermode::SkProcCoeffXfermode(SkReadBuffer& buffer) : INHERITED(buffe r) {
1242 uint32_t mode32 = buffer.read32() % SK_ARRAY_COUNT(gProcCoeffs); 1243 uint32_t mode32 = buffer.read32() % SK_ARRAY_COUNT(gProcCoeffs);
1243 if (mode32 >= SK_ARRAY_COUNT(gProcCoeffs)) { 1244 if (mode32 >= SK_ARRAY_COUNT(gProcCoeffs)) {
1244 // out of range, just set to something harmless 1245 // out of range, just set to something harmless
1245 mode32 = SkXfermode::kSrcOut_Mode; 1246 mode32 = SkXfermode::kSrcOut_Mode;
1246 } 1247 }
1247 fMode = (SkXfermode::Mode)mode32; 1248 fMode = (SkXfermode::Mode)mode32;
1248 1249
1249 const ProcCoeff& rec = gProcCoeffs[fMode]; 1250 const ProcCoeff& rec = gProcCoeffs[fMode];
1250 fProc = rec.fProc; 1251 fProc = rec.fProc;
1251 // these may be valid, or may be CANNOT_USE_COEFF 1252 // these may be valid, or may be CANNOT_USE_COEFF
1252 fSrcCoeff = rec.fSC; 1253 fSrcCoeff = rec.fSC;
1253 fDstCoeff = rec.fDC; 1254 fDstCoeff = rec.fDC;
1254 } 1255 }
1256 #endif
1255 1257
1256 bool SkProcCoeffXfermode::asMode(Mode* mode) const { 1258 bool SkProcCoeffXfermode::asMode(Mode* mode) const {
1257 if (mode) { 1259 if (mode) {
1258 *mode = fMode; 1260 *mode = fMode;
1259 } 1261 }
1260 return true; 1262 return true;
1261 } 1263 }
1262 1264
1263 bool SkProcCoeffXfermode::asCoeff(Coeff* sc, Coeff* dc) const { 1265 bool SkProcCoeffXfermode::asCoeff(Coeff* sc, Coeff* dc) const {
1264 if (CANNOT_USE_COEFF == fSrcCoeff) { 1266 if (CANNOT_USE_COEFF == fSrcCoeff) {
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
1954 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSrcXfermode) 1956 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSrcXfermode)
1955 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstInXfermode) 1957 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstInXfermode)
1956 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstOutXfermode) 1958 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstOutXfermode)
1957 #if !SK_ARM_NEON_IS_NONE 1959 #if !SK_ARM_NEON_IS_NONE
1958 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkNEONProcCoeffXfermode) 1960 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkNEONProcCoeffXfermode)
1959 #endif 1961 #endif
1960 #if defined(SK_CPU_X86) && !defined(SK_BUILD_FOR_IOS) 1962 #if defined(SK_CPU_X86) && !defined(SK_BUILD_FOR_IOS)
1961 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSSE2ProcCoeffXfermode) 1963 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSSE2ProcCoeffXfermode)
1962 #endif 1964 #endif
1963 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 1965 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698