class gpu_frame : boost::noncopyable\r
{\r
public:\r
- gpu_frame(size_t width, size_t height);\r
virtual ~gpu_frame(){}\r
- virtual void write_lock();\r
- virtual bool write_unlock();\r
- virtual void read_lock(GLenum mode);\r
- virtual bool read_unlock();\r
- virtual void draw();\r
-\r
- virtual bool valid() const;\r
- \r
+ \r
virtual unsigned char* data();\r
virtual size_t size() const;\r
virtual size_t width() const;\r
virtual size_t height() const;\r
- \r
- virtual void reset();\r
- \r
+ \r
virtual const std::vector<short>& audio_data() const; \r
virtual std::vector<short>& audio_data();\r
\r
\r
static std::shared_ptr<gpu_frame> null()\r
{\r
- static auto my_null_frame = std::make_shared<gpu_frame>(0,0);\r
+ static auto my_null_frame = std::shared_ptr<gpu_frame>(new gpu_frame(0,0));\r
return my_null_frame;\r
}\r
\r
+protected:\r
+ gpu_frame(size_t width, size_t height);\r
+\r
+ friend class gpu_frame_processor;\r
+ \r
+ virtual void begin_write();\r
+ virtual void end_write();\r
+ virtual void begin_read();\r
+ virtual void end_read();\r
+ virtual void draw();\r
+ virtual void reset();\r
+\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r