160014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org/*
260014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org * Copyright 2011 Google Inc.
360014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org *
460014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org * Use of this source code is governed by a BSD-style license that can be
560014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org * found in the LICENSE file.
660014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org */
760014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org
860014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org#include "gm.h"
933d2055e594177b27360f84e0631b26d74a55a9bMike Klein#include "sk_tool_utils.h"
1060014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org#include "SkBlurImageFilter.h"
11cfa7ba7753720425bf09e7d6ee2905b36b8e27a3mtklein@google.com#include "SkRandom.h"
1260014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org
1354e01b2ab985e7a7d38109812069d056d128bfa1senorblanco@chromium.org#define WIDTH 500
1454e01b2ab985e7a7d38109812069d056d128bfa1senorblanco@chromium.org#define HEIGHT 500
1554e01b2ab985e7a7d38109812069d056d128bfa1senorblanco@chromium.org
162a24338c777462e04a2b26295f9c034155ee8f3ehalcanaryvoid imageblurgm_draw(SkScalar fSigmaX, SkScalar fSigmaY, SkCanvas* canvas) {
1760014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org        SkPaint paint;
186e7025ab13dfc4f0037233e67b4b8e18d6dfd1e1robertphillips        paint.setImageFilter(SkBlurImageFilter::Make(fSigmaX, fSigmaY, nullptr));
1996fcdcc219d2a0d3579719b84b28bede76efba64halcanary        canvas->saveLayer(nullptr, &paint);
2060014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org        const char* str = "The quick brown fox jumped over the lazy dog.";
21cfa7ba7753720425bf09e7d6ee2905b36b8e27a3mtklein@google.com
22cfa7ba7753720425bf09e7d6ee2905b36b8e27a3mtklein@google.com        SkRandom rand;
231e95d715d06c5125ef6e5439e953fd0353be92b2senorblanco@chromium.org        SkPaint textPaint;
241e95d715d06c5125ef6e5439e953fd0353be92b2senorblanco@chromium.org        textPaint.setAntiAlias(true);
251818acb6a4b11cd9a1d44ce5dde77452502a9796caryclark        sk_tool_utils::set_portable_typeface(&textPaint);
2660014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org        for (int i = 0; i < 25; ++i) {
27cfa7ba7753720425bf09e7d6ee2905b36b8e27a3mtklein@google.com            int x = rand.nextULessThan(WIDTH);
28cfa7ba7753720425bf09e7d6ee2905b36b8e27a3mtklein@google.com            int y = rand.nextULessThan(HEIGHT);
29ef14cb397cca75607019e2cc401d4bb9969ed105caryclark            textPaint.setColor(sk_tool_utils::color_to_565(rand.nextBits(24) | 0xFF000000));
3026c6d58274c50de3a03fe22e4f27b29073efb836mtklein@google.com            textPaint.setTextSize(rand.nextRangeScalar(0, 300));
3175589257c6ac7fc55a66502b74b8bc09c0212featomhudson@google.com            canvas->drawText(str, strlen(str), SkIntToScalar(x),
321e95d715d06c5125ef6e5439e953fd0353be92b2senorblanco@chromium.org                             SkIntToScalar(y), textPaint);
3360014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org        }
3460014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org        canvas->restore();
352a24338c777462e04a2b26295f9c034155ee8f3ehalcanary}
362a24338c777462e04a2b26295f9c034155ee8f3ehalcanaryDEF_SIMPLE_GM_BG(imageblur,       canvas, WIDTH, HEIGHT, SK_ColorBLACK) {
372a24338c777462e04a2b26295f9c034155ee8f3ehalcanary    imageblurgm_draw(24.0f, 0.0f, canvas);
382a24338c777462e04a2b26295f9c034155ee8f3ehalcanary}
392a24338c777462e04a2b26295f9c034155ee8f3ehalcanaryDEF_SIMPLE_GM_BG(imageblur_large, canvas, WIDTH, HEIGHT, SK_ColorBLACK) {
402a24338c777462e04a2b26295f9c034155ee8f3ehalcanary    imageblurgm_draw(80.0f, 80.0f, canvas);
4160014ca38710d3fc265f4376b05c0fefd0e044cfsenorblanco@chromium.org}
42