submodule: add rive-cpp to rive-tizen as submodule
[platform/core/uifw/rive-tizen.git] / submodule / include / shapes / shape_paint_container.hpp
1 #ifndef _RIVE_SHAPE_PAINT_CONTAINER_HPP_
2 #define _RIVE_SHAPE_PAINT_CONTAINER_HPP_
3 #include "shapes/paint/blend_mode.hpp"
4 #include "shapes/path_space.hpp"
5 #include <vector>
6
7 namespace rive
8 {
9         class ShapePaint;
10         class Component;
11
12         class CommandPath;
13
14         class ShapePaintContainer
15         {
16                 friend class ShapePaint;
17
18         protected:
19                 PathSpace m_DefaultPathSpace = PathSpace::Neither;
20                 std::vector<ShapePaint*> m_ShapePaints;
21                 void addPaint(ShapePaint* paint);
22
23                 // TODO: void draw(Renderer* renderer, PathComposer& composer);
24         public:
25                 static ShapePaintContainer* from(Component* component);
26
27                 PathSpace pathSpace() const;
28
29                 void invalidateStrokeEffects();
30
31                 CommandPath* makeCommandPath(PathSpace space);
32         };
33 } // namespace rive
34
35 #endif