27 fName =
"animated-rects";
35 fRect[i].size = 10.0 + fRand.
nextF() * 40.0;
36 fRect[i].speed = 1.0 + fRand.
nextF();
53 const AnimatedRect& r = fRect[i];
54 canvas->
drawRect(
SkRect{r.
x, r.y, r.x + r.size, r.y + r.size}, fStrokePaint);
55 canvas->
drawRect(
SkRect{r.
x, r.y, r.x + r.size, r.y + r.size}, fFillPaint);
60 float seconds = 1e-9 * nanos;
61 if (0.0f != fLastTime) {
62 float scale = (seconds - fLastTime) * 60;
65 AnimatedRect& r = fRect[i];
66 r.x -= r.speed *
scale;
67 if (r.x + r.size < 0) {
79 float x,
y, size, speed;
84 SkPaint fStrokePaint, fFillPaint;
85 float fLastTime = 0.0f;
static constexpr int kNumRects
static constexpr int kWidth
static constexpr int kHeight
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorWHITE
void load(SkScalar, SkScalar) override
bool animate(double nanos) override
void draw(SkCanvas *canvas) override
void drawRect(const SkRect &rect, const SkPaint &paint)
void clipRect(const SkRect &rect, SkClipOp op, bool doAntiAlias)
void setStyle(Style style)
void setColor(SkColor color)
void setAntiAlias(bool aa)
@ kStroke_Style
set to stroke geometry
@ kFill_Style
set to fill geometry
void setStrokeWidth(SkScalar width)
constexpr float x() const