aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/BlurTest.cpp
blob: c960ff2eea20a62706fba9cb09498864ef2b2196 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "Test.h"
#include "SkBlurMaskFilter.h"
#include "SkRandom.h"

///////////////////////////////////////////////////////////////////////////////

#define ILLEGAL_MODE    ((SkXfermode::Mode)-1)

static void test_blur(skiatest::Reporter* reporter) {
    SkScalar radius = SkIntToScalar(2);

    for (int i = 0; i < SkBlurMaskFilter::kBlurStyleCount; ++i) {
        SkMaskFilter* filter;
        SkMaskFilter::BlurInfo info;

        uint32_t flags = i & 3;

        filter = SkBlurMaskFilter::Create(radius, (SkBlurMaskFilter::BlurStyle)i,
                                          flags);

        sk_bzero(&info, sizeof(info));
        SkMaskFilter::BlurType type = filter->asABlur(&info);
        REPORTER_ASSERT(reporter, type == (SkMaskFilter::BlurType)(i + 1));
        REPORTER_ASSERT(reporter, info.fRadius == radius);
        REPORTER_ASSERT(reporter, info.fIgnoreTransform ==
                        SkToBool(flags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag));
        REPORTER_ASSERT(reporter, info.fHighQuality ==
                        SkToBool(flags & SkBlurMaskFilter::kHighQuality_BlurFlag));

        filter->unref();
    }
}

#include "TestClassDef.h"
DEFINE_TESTCLASS("BlurMaskFilter", BlurTestClass, test_blur)