Exemplo n.º 1
0
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;
}