blob: 76a987161c0ac98df44937e589ceec5468c32a8a [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
reed@google.com2b75f422011-07-07 13:43:38 +00008#include "Test.h"
9#include "SkBlurMaskFilter.h"
10#include "SkRandom.h"
11
12///////////////////////////////////////////////////////////////////////////////
13
14#define ILLEGAL_MODE ((SkXfermode::Mode)-1)
15
16static void test_blur(skiatest::Reporter* reporter) {
17 SkScalar radius = SkIntToScalar(2);
18
19 for (int i = 0; i < SkBlurMaskFilter::kBlurStyleCount; ++i) {
20 SkMaskFilter* filter;
21 SkMaskFilter::BlurInfo info;
22
23 uint32_t flags = i & 3;
24
25 filter = SkBlurMaskFilter::Create(radius, (SkBlurMaskFilter::BlurStyle)i,
26 flags);
27
28 sk_bzero(&info, sizeof(info));
29 SkMaskFilter::BlurType type = filter->asABlur(&info);
30 REPORTER_ASSERT(reporter, type == (SkMaskFilter::BlurType)(i + 1));
31 REPORTER_ASSERT(reporter, info.fRadius == radius);
32 REPORTER_ASSERT(reporter, info.fIgnoreTransform ==
33 SkToBool(flags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag));
34 REPORTER_ASSERT(reporter, info.fHighQuality ==
35 SkToBool(flags & SkBlurMaskFilter::kHighQuality_BlurFlag));
36
37 filter->unref();
38 }
39}
40
41#include "TestClassDef.h"
42DEFINE_TESTCLASS("BlurMaskFilter", BlurTestClass, test_blur)