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
This commit is contained in:
parent
074b48ecb5
commit
c75d6a8e43
44
gm/bubbles.cpp
Normal file
44
gm/bubbles.cpp
Normal file
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user