blob: 63216c0eef8859e9f0bb54b13da634421f7775f3 [file] [log] [blame]
/*
* Copyright 2023 Rive
*/
#include "gm.hpp"
#include "gmutils.hpp"
#include "rive/math/math_types.hpp"
#include "assets/nomoon.png.hpp"
using namespace rive;
using namespace rivegm;
class ImageAABorderGM : public GM
{
public:
ImageAABorderGM() : GM(500, 500, "image_aa_border") {}
void onDraw(rive::Renderer* ren) override
{
auto img = LoadImage(assets::nomoon_png());
if (!img)
{
return;
}
draw_image(ren, img.get(), {10, 10, 150, 120});
{
AutoRestore arr(ren, true);
ren->translate(250, 250);
ren->transform(Mat2D::fromRotation(-math::PI / 4.f));
ren->scale(5.f, .25f);
ren->transform(Mat2D::fromRotation(math::PI / 4.f));
ren->translate(-40, -40);
draw_image(ren, img.get(), {0, 0, 80, 80});
}
{
AutoRestore arr(ren, true);
ren->translate(360, 360);
ren->scale(1, .8f);
ren->transform(Mat2D::fromRotation(.9f));
draw_image(ren, img.get(), {-80, -70, 80, 70});
}
draw_image(ren, img.get(), {160.5, 10, 161.5, 120});
draw_image(ren, img.get(), {170.75, 10, 171.25, 120});
draw_image(ren, img.get(), {180.875, 10, 181.125, 120});
draw_image(ren, img.get(), {190.9375, 10, 191.0625, 120});
draw_image(ren, img.get(), {10, 130.5, 150, 131.5});
draw_image(ren, img.get(), {10, 140.75, 150, 141.25});
draw_image(ren, img.get(), {10, 150.875, 150, 151.125});
draw_image(ren, img.get(), {10, 160.9375, 150, 161.0625});
}
};
GMREGISTER(return new ImageAABorderGM)