| /* |
| * Copyright 2024 Rive |
| */ |
| |
| #include "gm.hpp" |
| #include "gmutils.hpp" |
| #include "rive/renderer.hpp" |
| #include "rive/math/math_types.hpp" |
| |
| using namespace rivegm; |
| using namespace rive; |
| |
| Path make_polygon(float cx, float cy, float r, int sides) |
| { |
| float theta = 0; |
| float dtheta = 2 * math::PI / sides; |
| PathBuilder builder; |
| builder.moveTo(cx + r, cy); |
| for (int i = 1; i < sides; ++i) |
| { |
| theta += dtheta; |
| builder.lineTo(cx + cosf(theta) * r, cy + sinf(theta) * r); |
| } |
| return builder.detach(); |
| } |
| |
| DEF_SIMPLE_GM(batchedtriangulations, 1600, 1600, renderer) |
| { |
| Paint p; |
| p->color(0xff00ffff); |
| renderer->drawPath(PathBuilder::Circle(350, 350, 320), p); |
| renderer->save(); |
| renderer->translate(1250, 350); |
| renderer->rotate(math::PI / 5); |
| renderer->scale(.8f, 1); |
| p->color(0xffff00ff); |
| renderer->drawPath(PathBuilder::Circle(0, 0, 320), p); |
| renderer->restore(); |
| p->color(0xff80ff80); |
| renderer->drawPath(make_polygon(1250, 1250, 320, 7), p); |
| p->color(0xff8080ff); |
| renderer->drawPath(make_polygon(350, 1250, 320, 5), p); |
| } |