| /* |
| * 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) |