3 #include "frame_format.h"
\r
7 #include <boost/noncopyable.hpp>
\r
13 class gpu_frame : boost::noncopyable
\r
16 gpu_frame(size_t width, size_t height);
\r
17 virtual ~gpu_frame(){}
\r
18 virtual void write_lock();
\r
19 virtual bool write_unlock();
\r
20 virtual void read_lock(GLenum mode);
\r
21 virtual bool read_unlock();
\r
22 virtual void draw();
\r
24 virtual unsigned char* data();
\r
25 virtual size_t size() const;
\r
26 virtual size_t width() const;
\r
27 virtual size_t height() const;
\r
29 virtual void reset();
\r
31 virtual const std::vector<short>& audio_data() const;
\r
32 virtual std::vector<short>& audio_data();
\r
34 virtual double alpha() const;
\r
35 virtual void alpha(float value);
\r
37 virtual double x() const;
\r
38 virtual double y() const;
\r
39 virtual void translate(double x, double y);
\r
41 virtual void mode(video_mode mode);
\r
42 virtual video_mode mode() const;
\r
44 static std::shared_ptr<gpu_frame> null()
\r
46 static auto my_null_frame = std::make_shared<gpu_frame>(0,0);
\r
47 return my_null_frame;
\r
51 struct implementation;
\r
52 std::shared_ptr<implementation> impl_;
\r
54 typedef std::shared_ptr<gpu_frame> gpu_frame_ptr;
\r