]> git.sesse.net Git - casparcg/blob - core/frame/gpu_composite_frame.h
504768369b3ea0d40158571a4885a00d68f11b73
[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(size_t width, size_t height);\r
15 \r
16         virtual void write_lock();\r
17         virtual bool write_unlock();\r
18         virtual void read_lock(GLenum mode);\r
19         virtual bool read_unlock();\r
20         virtual void draw();\r
21                                         \r
22         void add(const gpu_frame_ptr& frame);\r
23 \r
24         static gpu_frame_ptr interlace(const gpu_frame_ptr& frame1 ,const gpu_frame_ptr& frame2, video_mode mode);\r
25         \r
26 private:\r
27         virtual unsigned char* data();\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 }}