blob: 3fed0578ca39494a5f537a1d4bbb8e8e95a2bc1d [file] [log] [blame] [edit]
/*
* 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);
}