3 #include "../gpu/host_buffer.h"
\r
5 #include "../../video_format.h"
\r
7 #include <boost/tuple/tuple.hpp>
\r
8 #include <boost/thread/future.hpp>
\r
9 #include <boost/noncopyable.hpp>
\r
14 namespace caspar { namespace core {
\r
16 struct pixel_format_desc;
\r
17 class image_transform;
\r
19 class image_mixer : boost::noncopyable
\r
22 image_mixer(const video_format_desc& format_desc);
\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
28 boost::unique_future<safe_ptr<const host_buffer>> begin_pass();
\r
31 std::vector<safe_ptr<host_buffer>> create_buffers(const pixel_format_desc& format);
\r
34 struct implementation;
\r
35 std::shared_ptr<implementation> impl_;
\r