forked from rive-app/rive-cpp-legacy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimage_asset_test.cpp
More file actions
79 lines (65 loc) · 2.88 KB
/
Copy pathimage_asset_test.cpp
File metadata and controls
79 lines (65 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <rive/file.hpp>
#include <rive/node.hpp>
#include <rive/shapes/clipping_shape.hpp>
#include <rive/shapes/rectangle.hpp>
#include <rive/shapes/image.hpp>
#include <rive/assets/image_asset.hpp>
#include <rive/relative_local_asset_loader.hpp>
#include <utils/no_op_factory.hpp>
#include <utils/no_op_renderer.hpp>
#include "rive_file_reader.hpp"
#include <catch.hpp>
#include <cstdio>
TEST_CASE("image assets loads correctly", "[assets]")
{
auto file = ReadRiveFile("../../test/assets/walle.riv");
auto node = file->artboard()->find("walle");
REQUIRE(node != nullptr);
REQUIRE(node->is<rive::Image>());
auto walle = node->as<rive::Image>();
REQUIRE(walle->imageAsset() != nullptr);
REQUIRE(walle->imageAsset()->decodedByteSize == 218873);
auto eve_left = file->artboard()->find("eve_left");
REQUIRE(eve_left != nullptr);
REQUIRE(eve_left->is<rive::Image>());
REQUIRE(eve_left->as<rive::Image>()->imageAsset() != nullptr);
REQUIRE(eve_left->as<rive::Image>()->imageAsset()->decodedByteSize == 246825);
auto eve_right = file->artboard()->find("eve_right");
REQUIRE(eve_right != nullptr);
REQUIRE(eve_right->is<rive::Image>());
REQUIRE(eve_right->as<rive::Image>()->imageAsset() != nullptr);
REQUIRE(eve_right->as<rive::Image>()->imageAsset() != walle->imageAsset());
REQUIRE(eve_right->as<rive::Image>()->imageAsset() ==
eve_left->as<rive::Image>()->imageAsset());
file->artboard()->updateComponents();
rive::NoOpRenderer renderer;
file->artboard()->draw(&renderer);
}
TEST_CASE("out of band image assets loads correctly", "[assets]")
{
rive::NoOpFactory gEmptyFactory;
std::string filename = "../../test/assets/out_of_band/walle.riv";
rive::RelativeLocalAssetLoader loader(filename);
auto file = ReadRiveFile(filename.c_str(), &gEmptyFactory, &loader);
auto node = file->artboard()->find("walle");
REQUIRE(node != nullptr);
REQUIRE(node->is<rive::Image>());
auto walle = node->as<rive::Image>();
REQUIRE(walle->imageAsset() != nullptr);
REQUIRE(walle->imageAsset()->decodedByteSize == 218873);
auto eve_left = file->artboard()->find("eve_left");
REQUIRE(eve_left != nullptr);
REQUIRE(eve_left->is<rive::Image>());
REQUIRE(eve_left->as<rive::Image>()->imageAsset() != nullptr);
REQUIRE(eve_left->as<rive::Image>()->imageAsset()->decodedByteSize == 246825);
auto eve_right = file->artboard()->find("eve_right");
REQUIRE(eve_right != nullptr);
REQUIRE(eve_right->is<rive::Image>());
REQUIRE(eve_right->as<rive::Image>()->imageAsset() != nullptr);
REQUIRE(eve_right->as<rive::Image>()->imageAsset() != walle->imageAsset());
REQUIRE(eve_right->as<rive::Image>()->imageAsset() ==
eve_left->as<rive::Image>()->imageAsset());
file->artboard()->updateComponents();
rive::NoOpRenderer renderer;
file->artboard()->draw(&renderer);
}