]> git.sesse.net Git - casparcg/blobdiff - core/frame/gpu_frame.h
2.0.0.2:
[casparcg] / core / frame / gpu_frame.h
index 4759d518a614c206a3985137a8d88dcab74d2b82..fffe00c894b1e23e113c934c4099d928fb8179a9 100644 (file)
@@ -26,23 +26,13 @@ struct rectangle
 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
@@ -59,10 +49,22 @@ public:
 \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