]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2:
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Oct 2010 17:25:39 +0000 (17:25 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Oct 2010 17:25:39 +0000 (17:25 +0000)
- Added missing virtual destructors

git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@186 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/utility/memory.cpp
core/consumer/frame_consumer.h
core/frame/composite_gpu_frame.cpp
core/frame/composite_gpu_frame.h
core/frame/frame_factory.h
core/frame/gpu_frame.cpp
core/frame/gpu_frame.h
core/frame/gpu_frame_processor.cpp
core/renderer/layer.cpp
test/test.vcxproj

index c33dbeff179078f15e6ab1fb387615f269efbd0d..0be280d318873aea14f9f0a3044c833adf2cb3e4 100644 (file)
@@ -11,10 +11,6 @@ namespace caspar { namespace common {
        \r
 void* memcpy_SSE2(void* dest, const void* source, size_t num)\r
 {      \r
-       assert(dest != nullptr);\r
-       assert(source != nullptr);\r
-       assert(dest != source);\r
-       assert(num % 256 == 0);\r
        __asm\r
        {\r
                mov esi, source;    \r
index bbc661f4bdc9d9cf0e2def0119027228b0c168d0..3eb7bc6ac5bfb8ba5987dba6e02085fc63dfc76f 100644 (file)
@@ -27,9 +27,8 @@
 \r
 namespace caspar {\r
        \r
-class frame_consumer : boost::noncopyable\r
+struct frame_consumer : boost::noncopyable\r
 {\r
-public:\r
        virtual ~frame_consumer() {}\r
 \r
        virtual const frame_format_desc& get_frame_format_desc() const = 0;\r
index 6ee65509d8e01f4f9abe5973bcf724b09e8aa96e..4eac38eaa039ee3bd46a2cac00c69c0854232bd9 100644 (file)
@@ -9,7 +9,7 @@
 \r
 namespace caspar {\r
        \r
-struct composite_gpu_frame::implementation\r
+struct composite_gpu_frame::implementation : boost::noncopyable\r
 {\r
        implementation(composite_gpu_frame* self) : self_(self){}\r
 \r
index ebe585b216ba09add34f8799a1f0f4af5a455d4e..821ed5cce903bcbe9eab53b889247af3efe130b5 100644 (file)
@@ -20,10 +20,10 @@ public:
        void draw();\r
        void reset();\r
                \r
-       unsigned char* data();\r
+       virtual unsigned char* data();\r
                                        \r
-       const std::vector<short>& audio_data() const;   \r
-       std::vector<short>& audio_data();\r
+       virtual const std::vector<short>& audio_data() const;   \r
+       virtual std::vector<short>& audio_data();\r
 \r
        void add(const gpu_frame_ptr& frame);\r
        \r
index 3c571f777f37752af979e00014b61db87f660b88..47a7c7886dfbb7fafe45bacaffecef6b93a77c71 100644 (file)
@@ -9,6 +9,7 @@ namespace caspar {
 \r
 struct frame_factory\r
 {\r
+       virtual ~frame_factory(){}\r
        virtual gpu_frame_ptr create_frame(size_t width, size_t height) = 0;\r
        gpu_frame_ptr create_frame(const frame_format_desc format_desc)\r
        {\r
index b737cad5409f8251afc0234c5b77cb312c8d5b29..1b88953a4e22959b35ea0acd103c384356ce0137 100644 (file)
@@ -61,7 +61,7 @@ GLubyte lower_pattern[] = {
     0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,\r
        0xff, 0xff, 0xff, 0xff};\r
 \r
-struct gpu_frame::implementation\r
+struct gpu_frame::implementation : boost::noncopyable\r
 {\r
        implementation(size_t width, size_t height) \r
                : pbo_(0), data_(nullptr), width_(width), height_(height), size_(width*height*4), \r
index 9ac7de3b6a6b1c4ea69196f4d17c7f61e519af26..641dbee5480007068e49eaf988adc98767082260 100644 (file)
@@ -4,15 +4,17 @@
 \r
 #include <memory>\r
 \r
+#include <boost/noncopyable.hpp>\r
+\r
 #include <Glee.h>\r
 \r
 namespace caspar {\r
        \r
-class gpu_frame\r
+class gpu_frame : boost::noncopyable\r
 {\r
 public:\r
        gpu_frame(size_t width, size_t height);\r
-\r
+       virtual ~gpu_frame(){}\r
        virtual void write_lock();\r
        virtual bool write_unlock();\r
        virtual void read_lock(GLenum mode);\r
index ced2ca20ec038d55dd777aee6ec65ac5cedd336a..b9e1e4b2dbd6a03882e7e7371d32deb8e8f68797 100644 (file)
@@ -31,7 +31,7 @@
 \r
 namespace caspar {\r
        \r
-class frame_buffer\r
+class frame_buffer : boost::noncopyable\r
 {\r
 public:\r
        frame_buffer(size_t width, size_t height)\r
@@ -68,7 +68,7 @@ private:
 };\r
 typedef std::shared_ptr<frame_buffer> frame_buffer_ptr;\r
 \r
-struct gpu_frame_processor::implementation\r
+struct gpu_frame_processor::implementation : boost::noncopyable\r
 {      \r
        implementation(const frame_format_desc& format_desc) : format_desc_(format_desc)\r
        {               \r
index 5361447608a91122f1a8bb8d39d0e98617c5d7b6..d3e1114ecb6a2f6d36d4737e693e95992558d2bc 100644 (file)
@@ -8,9 +8,9 @@
 \r
 namespace caspar { namespace renderer {\r
 \r
-struct layer::implementation\r
+struct layer::implementation : boost::noncopyable\r
 {              \r
-       implementation() : preview_frame_(nullptr), active_(nullptr), background_(nullptr) {}\r
+       implementation() : preview_frame_(nullptr), active_(nullptr), background_(nullptr), last_frame_(nullptr) {}\r
        \r
        void load(const frame_producer_ptr& frame_producer, load_option option)\r
        {\r
@@ -62,6 +62,7 @@ struct layer::implementation
        {\r
                active_ = nullptr;\r
                background_ = nullptr;\r
+               last_frame_ = nullptr;\r
        }\r
        \r
        gpu_frame_ptr get_frame()\r
@@ -77,6 +78,7 @@ struct layer::implementation
                {\r
                        CASPAR_LOG_CURRENT_EXCEPTION();\r
                        active_ = nullptr;\r
+                       last_frame_ = nullptr;\r
                        CASPAR_LOG(warning) << "Removed producer from layer.";\r
                }\r
 \r
index 1b852ea1b701b1ad6011349924a4cc0b720b914d..2597da67c77b7eceb9e9e4decc565428be1c1c43 100644 (file)
@@ -84,6 +84,7 @@
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
       </PrecompiledHeaderFile>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
     </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r