]> git.sesse.net Git - casparcg/blob - core/frame/gpu_composite_frame.h
2.0.0.2:
[casparcg] / core / frame / gpu_composite_frame.h
1 #pragma once\r
2 \r
3 #include <memory>\r
4 \r
5 #include <Glee.h>\r
6 \r
7 #include "gpu_frame.h"\r
8 \r
9 namespace caspar { namespace core {\r
10         \r
11 class gpu_composite_frame : public gpu_frame\r
12 {\r
13 public:\r
14         gpu_composite_frame();\r
15                                                 \r
16         void add(const gpu_frame_ptr& frame);\r
17 \r
18         static gpu_frame_ptr interlace(const gpu_frame_ptr& frame1,\r
19                                                                         const gpu_frame_ptr& frame2, video_mode mode);\r
20         \r
21 private:\r
22         virtual unsigned char* data(size_t index);\r
23         virtual void begin_write();\r
24         virtual void end_write();\r
25         virtual void begin_read();\r
26         virtual void end_read();\r
27         virtual void draw(const gpu_frame_transform_ptr& transform);\r
28 \r
29         struct implementation;\r
30         std::shared_ptr<implementation> impl_;\r
31 };\r
32 typedef std::shared_ptr<gpu_composite_frame> gpu_composite_frame_ptr;\r
33         \r
34 }}