]> git.sesse.net Git - casparcg/blob - core/renderer/render_device.h
2.0.0.2: Moved video_format.h into correct folder.
[casparcg] / core / renderer / render_device.h
1 #pragma once\r
2 \r
3 #include "../producer/frame_producer.h"\r
4 #include "../consumer/frame_consumer.h"\r
5 #include "../frame/frame_format.h"\r
6 \r
7 #include "layer.h"\r
8 \r
9 namespace caspar { namespace core { namespace renderer {\r
10         \r
11 class render_device : boost::noncopyable\r
12 {       \r
13 public:\r
14         render_device(const frame_format_desc& format_desc, const std::vector<frame_consumer_ptr>& consumers);\r
15         \r
16         void load(int render_layer, const frame_producer_ptr& producer, load_option option = load_option::none);        \r
17         void pause(int render_layer);\r
18         void play(int render_layer);\r
19         void stop(int render_layer);\r
20         void clear(int render_layer);\r
21         void clear();\r
22 \r
23         frame_producer_ptr active(int render_layer) const;\r
24         frame_producer_ptr background(int render_layer) const;\r
25 \r
26         const frame_format_desc& get_frame_format_desc() const;         \r
27 private:\r
28         struct implementation;\r
29         std::shared_ptr<implementation> impl_;\r
30 };\r
31 typedef std::shared_ptr<render_device> render_device_ptr;\r
32 typedef std::unique_ptr<render_device> render_device_uptr;\r
33 \r
34 }}}\r