static sk_sp<SkColorFilter> make_color_filter() { switch (R(6)) { case 0: { SkScalar array[20]; for (int i = 0; i < 20; ++i) { array[i] = make_scalar(); } return SkColorFilter::MakeMatrixFilterRowMajor255(array); } case 1: return SkLumaColorFilter::Make(); case 2: { uint8_t tableA[256]; uint8_t tableR[256]; uint8_t tableG[256]; uint8_t tableB[256]; rand_color_table(tableA); rand_color_table(tableR); rand_color_table(tableG); rand_color_table(tableB); return SkTableColorFilter::MakeARGB(tableA, tableR, tableG, tableB); } case 3: return SkColorFilter::MakeModeFilter(make_color(), make_xfermode()); case 4: return SkColorMatrixFilter::MakeLightingFilter(make_color(), make_color()); case 5: default: break; } return nullptr; }
static SkColorFilter* make_color_filter() { SkColorFilter* colorFilter; switch (R(6)) { case 0: { SkScalar array[20]; for (int i = 0; i < 20; ++i) { array[i] = make_scalar(); } colorFilter = SkColorMatrixFilter::Create(array); break; } case 1: colorFilter = SkLumaColorFilter::Create(); break; case 2: { uint8_t tableA[256]; uint8_t tableR[256]; uint8_t tableG[256]; uint8_t tableB[256]; rand_color_table(tableA); rand_color_table(tableR); rand_color_table(tableG); rand_color_table(tableB); colorFilter = SkTableColorFilter::CreateARGB(tableA, tableR, tableG, tableB); break; } case 3: colorFilter = SkColorFilter::CreateModeFilter(make_color(), make_xfermode()); break; case 4: colorFilter = SkColorMatrixFilter::CreateLightingFilter(make_color(), make_color()); break; case 5: default: colorFilter = nullptr; break; } return colorFilter; }