0023488: Make video recording functionality (OpenGl_AVIWriter) optional
authorkgv <kgv@opencascade.com>
Fri, 2 Nov 2012 11:56:36 +0000 (15:56 +0400)
committerkgv <kgv@opencascade.com>
Fri, 2 Nov 2012 11:56:36 +0000 (15:56 +0400)
CSF_AviLibs missing in EXTERNLIB of TKOpenGl toolkit. This cause incorrect project generation.
HAVE_VIDEOCAPTURE now should be defined to enable video recording capabilities on Windows.

src/OpenGl/OpenGl_AVIWriter.cxx
src/OpenGl/OpenGl_Workspace_4.cxx
src/TKOpenGl/EXTERNLIB
src/ViewerTest/ViewerTest_AviCommands.cxx

index 7906d7e..8b8452e 100755 (executable)
 // purpose or non-infringement. Please see the License for the specific terms
 // and conditions governing the rights and limitations under the License.
 
-
 #include <OpenGl_AVIWriter.hxx>
 
-#ifdef WNT
+#if (defined(_WIN32) || defined(__WIN32__)) && defined(HAVE_VIDEOCAPTURE)
+  #ifdef _MSC_VER
+    #pragma comment (lib, "vfw32.lib")
+  #endif
+
 OpenGl_AVIWriter* OpenGl_AVIWriter::MyAVIWriterInstance = 0L;
 
 OpenGl_AVIWriter * OpenGl_AVIWriter::GetInstance()
@@ -479,4 +482,4 @@ Standard_Boolean OpenGl_AVIWriter_AllowWriting(void * hWin)
   return aResult;
 }
 
-#endif //WNT
+#endif
index 0eecbcc..15534d3 100644 (file)
 // purpose or non-infringement. Please see the License for the specific terms
 // and conditions governing the rights and limitations under the License.
 
-
 #include <OpenGl_GlCore11.hxx>
 
-#if (defined(_WIN32) || defined(__WIN32__))
+#if (defined(_WIN32) || defined(__WIN32__)) && defined(HAVE_VIDEOCAPTURE)
   #include <OpenGl_AVIWriter.hxx>
 #endif
 
@@ -68,7 +67,7 @@ void OpenGl_Workspace::Redraw (const Graphic3d_CView& theCView,
     glViewport (aViewPortBack[0], aViewPortBack[1], aViewPortBack[2], aViewPortBack[3]);
   }
 
-#if (defined(_WIN32) || defined(__WIN32__))
+#if (defined(_WIN32) || defined(__WIN32__)) && defined(HAVE_VIDEOCAPTURE)
   if (OpenGl_AVIWriter_AllowWriting (theCView.DefWindow.XWindow))
   {
     GLint params[4];
index a7d53f7..8b6922e 100755 (executable)
@@ -7,3 +7,4 @@ CSF_FTGL
 CSF_GL2PS
 CSF_user32
 CSF_gdi32
+CSF_AviLibs
index 5897495..cf9892b 100755 (executable)
 // purpose or non-infringement. Please see the License for the specific terms
 // and conditions governing the rights and limitations under the License.
 
-
-
-#ifdef WNT
-#include <windows.h>
+#if (defined(_WIN32) || defined(__WIN32__)) && defined(HAVE_VIDEOCAPTURE)
+  #include <windows.h>
+  #include <OpenGl_AVIWriter.hxx>
 #endif
 
 #include <ViewerTest.hxx>
 #include <Draw_Interpretor.hxx>
-#include <OpenGl_AVIWriter.hxx>
 
 static Standard_Integer avi_record(Draw_Interpretor& di,
                                    Standard_Integer argc, const char** argv)
 {
-  Standard_Integer aResult(1);
-  if (argc < 2) {
+  if (argc < 2)
+  {
     cout << "Syntax: " << argv[0] << " file | start | stop | save" << endl;
-  } else {
+    return 1;
+  }
 
-#ifndef WNT
-    cout << "AVI writer is implemented only in Windows version" << endl;
-#else  
+  Standard_Integer aResult = 1;
+#if (defined(_WIN32) || defined(__WIN32__))
+  #ifdef HAVE_VIDEOCAPTURE
     static OpenGl_AVIWriter * pAviWriter = 0L;
 
     if (strncmp(argv[1], "file", 5) == 0) {
@@ -71,8 +70,12 @@ static Standard_Integer avi_record(Draw_Interpretor& di,
       cout << pAviWriter->GetLastErrorMessage() << endl;
       aResult = 0;
     }
+  #else
+    cout << "AVI writer capability was disabled\n";
+  #endif
+#else
+  cout << "AVI writer is implemented only in Windows version\n";
 #endif
-  }
   return aResult;
 }
 
@@ -96,6 +99,3 @@ void ViewerTest::AviCommands(Draw_Interpretor& theCommands)
                  __FILE__,
                  &avi_record, group); //Draft_Modification
 }
-
-
-