submodule: add rive-cpp to rive-tizen as submodule
[platform/core/uifw/rive-tizen.git] / submodule / skia / recorder / include / extractor.hpp
1 #ifndef EXTRACTOR_HPP
2 #define EXTRACTOR_HPP
3
4 #include "SkData.h"
5 #include "SkImage.h"
6 #include "SkPixmap.h"
7 #include "SkStream.h"
8 #include "SkSurface.h"
9 #include "animation/animation.hpp"
10 #include "animation/linear_animation.hpp"
11 #include "animation/linear_animation_instance.hpp"
12 #include "artboard.hpp"
13 #include "core/binary_reader.hpp"
14 #include "file.hpp"
15 #include "math/aabb.hpp"
16 #include "skia_renderer.hpp"
17 #include "util.hpp"
18 #include "util.hxx"
19
20 class RiveFrameExtractor
21 {
22
23 public:
24         RiveFrameExtractor(const char* path,
25                            const char* artboard_name,
26                            const char* animation_name,
27                            const char* watermark_name,
28                            int width = 0,
29                            int height = 0,
30                            int small_extent_target = 0,
31                            int max_width = 0,
32                            int max_height = 0,
33                            int min_duration = 0,
34                            int max_duration = 0);
35         int width();
36         int height();
37         int fps();
38         int totalFrames();
39         void advanceFrame();
40         const void* getPixelAddresses();
41         sk_sp<SkData> getSkData();
42
43 private:
44         int _width, _height, _min_duration, _max_duration;
45         rive::File* riveFile;
46         float ifps;
47         sk_sp<SkImage> getWaterMark(const char* watermark_name);
48         rive::File* getRiveFile(const char* path);
49         rive::Artboard* getArtboard(const char* artboard_name);
50         rive::LinearAnimation* getAnimation(const char* artboard_name);
51         rive::Artboard* artboard;
52         rive::LinearAnimation* animation;
53         rive::LinearAnimationInstance* animation_instance;
54         sk_sp<SkImage> watermarkImage;
55         SkCanvas* rasterCanvas;
56         sk_sp<SkSurface> rasterSurface;
57         sk_sp<SkImage> getSnapshot();
58         void initializeDimensions(int width,
59                                   int height,
60                                   int small_extent_target,
61                                   int max_width,
62                                   int max_height);
63 };
64
65 #endif