]> git.sesse.net Git - casparcg/blob - core/mixer/image/image_mixer.h
2.0.0.2: clip-rect and fix-rect works now properly with transitions.
[casparcg] / core / mixer / image / image_mixer.h
1 #pragma once\r
2 \r
3 #include "../gpu/host_buffer.h"\r
4 \r
5 #include "../../video_format.h"\r
6 \r
7 #include <boost/tuple/tuple.hpp>\r
8 #include <boost/thread/future.hpp>\r
9 #include <boost/noncopyable.hpp>\r
10 \r
11 #include <memory>\r
12 #include <array>\r
13 \r
14 namespace caspar { namespace core {\r
15 \r
16 struct pixel_format_desc;       \r
17 class image_transform;\r
18 \r
19 class image_mixer : boost::noncopyable\r
20 {\r
21 public:\r
22         image_mixer(const video_format_desc& format_desc);\r
23 \r
24         void begin(const image_transform& transform);\r
25         void process(const pixel_format_desc& desc, std::vector<safe_ptr<host_buffer>>& buffers);\r
26         void end();\r
27 \r
28         boost::unique_future<safe_ptr<const host_buffer>> begin_pass();\r
29         void end_pass();\r
30 \r
31         std::vector<safe_ptr<host_buffer>> create_buffers(const pixel_format_desc& format);\r
32 \r
33 private:\r
34         struct implementation;\r
35         std::shared_ptr<implementation> impl_;\r
36 };\r
37 \r
38 }}