From c75d6a8e43891eb197c369b508862bf990957aee Mon Sep 17 00:00:00 2001 From: fmenozzi Date: Mon, 23 May 2016 13:54:22 -0700 Subject: Add bubbles GM for drawing/blending 50 circles. Positions, radii, and colors are determined pseudo-randomly. R=tomhudson@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2004173002 Review-Url: https://codereview.chromium.org/2004173002 --- gm/bubbles.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 gm/bubbles.cpp (limited to 'gm/bubbles.cpp') diff --git a/gm/bubbles.cpp b/gm/bubbles.cpp new file mode 100644 index 0000000000..86c3daa661 --- /dev/null +++ b/gm/bubbles.cpp @@ -0,0 +1,44 @@ +/* + * Copyright 2016 Google, Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "gm.h" + +/* + * Draw 50 semi-transparent circles with pseudo-random positions, radii, and + * colors, using the default blend mode (SRC OVER). Use of SkRandom with + * default seed means results SHOULD be identical across multiple platforms. + */ +DEF_SIMPLE_GM(bubbles, canvas, 512, 512) { + canvas->clear(SK_ColorWHITE); + + SkPaint p; + p.setAntiAlias(true); + + SkRandom rand; + + auto pos_min = SkIntToScalar(0); + auto pos_max = SkIntToScalar(511); + auto radius_min = SkIntToScalar(0); + auto radius_max = SkIntToScalar(128); + auto color_min = SkIntToScalar(0); + auto color_max = SkIntToScalar(255); + + const int NUM_BUBBLES = 50; + for (int i = 0; i < NUM_BUBBLES; i++) { + auto cx = rand.nextRangeScalar(pos_min, pos_max); + auto cy = rand.nextRangeScalar(pos_min, pos_max); + auto radius = rand.nextRangeScalar(radius_min, radius_max); + + auto a = (U8CPU)128; + auto r = (U8CPU)rand.nextRangeScalar(color_min, color_max); + auto g = (U8CPU)rand.nextRangeScalar(color_min, color_max); + auto b = (U8CPU)rand.nextRangeScalar(color_min, color_max); + p.setColor(SkColorSetARGB(a, r, g, b)); + + canvas->drawCircle(cx, cy, radius, p); + } +} -- cgit v1.2.3