Multiple Windows RT fixes

TIFF build was fixed;
Direct Show back-end was enabled;
More accurate guards implemented.
This commit is contained in:
Alexander Smorkalov 2013-03-19 17:46:01 -07:00
parent 06aff4e7b0
commit 3d594c70ff
7 changed files with 54 additions and 33 deletions

View File

@ -122,15 +122,32 @@ file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp")
file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h")
list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp") list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp")
add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 #required if (WIN32)
-D__TBB_BUILD=1 #required add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0
-D__TBB_SURVIVE_THREAD_SWITCH=0 #no cilk support -D__TBB_BUILD=1
-DUSE_PTHREAD #required for Unix -D_UNICODE
-DTBB_USE_GCC_BUILTINS=1 #required for ARM GCC -DUNICODE
-DTBB_USE_DEBUG=0 #just to be sure -DWINAPI_FAMILY=WINAPI_FAMILY_APP
-DTBB_NO_LEGACY=1 #don't need backward compatibility -DDO_ITT_NOTIFY=0
-DDO_ITT_NOTIFY=0 #it seems that we don't need these notifications ) # defines were copied from windows.cl.inc
) set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} /APPCONTAINER")
else()
add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 #required
-D__TBB_BUILD=1 #required
-D__TBB_SURVIVE_THREAD_SWITCH=0 #no cilk support
-DTBB_USE_DEBUG=0 #just to be sure
-DTBB_NO_LEGACY=1 #don't need backward compatibility
-DDO_ITT_NOTIFY=0 #it seems that we don't need these notifications
)
endif()
if (HAVE_LIBPTHREAD)
add_definitions(-DUSE_PTHREAD) #required for Unix
endif()
if (CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-DTBB_USE_GCC_BUILTINS=1) #required for ARM GCC
endif()
if(ANDROID_COMPILER_IS_CLANG) if(ANDROID_COMPILER_IS_CLANG)
add_definitions(-D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1) add_definitions(-D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1)
@ -145,7 +162,7 @@ endif()
set(TBB_SOURCE_FILES ${lib_srcs} ${lib_hdrs}) set(TBB_SOURCE_FILES ${lib_srcs} ${lib_hdrs})
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND NOT WIN32)
if (NOT ANDROID) if (NOT ANDROID)
set(TBB_SOURCE_FILES ${TBB_SOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/arm_linux_stub.cpp") set(TBB_SOURCE_FILES ${TBB_SOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/arm_linux_stub.cpp")
endif() endif()

View File

@ -60,7 +60,10 @@ endif()
project(OpenCV CXX C) project(OpenCV CXX C)
add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND WIN32)
set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
endif()
include(cmake/OpenCVUtils.cmake) include(cmake/OpenCVUtils.cmake)
@ -171,7 +174,7 @@ OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 O
OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE ) OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE )
OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE ) OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE )
OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 OR ANDROID OR APPLE ) OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 OR ANDROID OR APPLE )
OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID IF CMAKE_COMPILER_IS_GNUCXX ) OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID )
# OpenCV installation options # OpenCV installation options
# =================================================== # ===================================================

View File

@ -106,7 +106,8 @@ elseif(APPLE)
endif() endif()
#if(WIN32) #if(WIN32)
# list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp src/cap_dshow.cpp) list(APPEND highgui_srcs src/cap_dshow.cpp)
#list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp)
#endif(WIN32) #endif(WIN32)
if(HAVE_XINE) if(HAVE_XINE)

View File

@ -197,9 +197,9 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
{ {
#ifdef HAVE_VIDEOINPUT #ifdef HAVE_VIDEOINPUT
case CV_CAP_DSHOW: case CV_CAP_DSHOW:
// capture = cvCreateCameraCapture_DShow (index); capture = cvCreateCameraCapture_DShow (index);
// if (capture) if (capture)
// return capture; return capture;
return NULL; return NULL;
break; break;
#endif #endif

View File

@ -209,11 +209,11 @@ CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename)
if( result->open( filename )) if( result->open( filename ))
return result; return result;
delete result; delete result;
//#if defined WIN32 || defined _WIN32 #if (defined WIN32 || defined _WIN32) && !defined _M_ARM
// return cvCreateFileCapture_VFW(filename); return cvCreateFileCapture_VFW(filename);
//#else #else
return 0; return 0;
//#endif #endif
} }
class CvVideoWriter_FFMPEG_proxy : class CvVideoWriter_FFMPEG_proxy :
@ -263,9 +263,9 @@ CvVideoWriter* cvCreateVideoWriter_FFMPEG_proxy( const char* filename, int fourc
if( result->open( filename, fourcc, fps, frameSize, isColor != 0 )) if( result->open( filename, fourcc, fps, frameSize, isColor != 0 ))
return result; return result;
delete result; delete result;
// #if defined WIN32 || defined _WIN32 #if (defined WIN32 || defined _WIN32) && !defined _M_ARM
// return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor); return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor);
// #else #else
return 0; return 0;
//#endif #endif
} }

View File

@ -103,12 +103,12 @@ struct CvVideoWriter
virtual bool writeFrame(const IplImage*) { return false; } virtual bool writeFrame(const IplImage*) { return false; }
}; };
//#if defined WIN32 || defined _WIN32 #if (defined WIN32 || defined _WIN32) && !defined _M_ARM
//#define HAVE_VFW 1 #define HAVE_VFW 1
/* uncomment to enable CMUCamera1394 fireware camera module */ /* uncomment to enable CMUCamera1394 fireware camera module */
//#define HAVE_CMU1394 1 //#define HAVE_CMU1394 1
//#endif #endif
CvCapture * cvCreateCameraCapture_V4L( int index ); CvCapture * cvCreateCameraCapture_V4L( int index );

View File

@ -57,7 +57,7 @@ CV_IMPL void cvSetWindowProperty(const char* name, int prop_id, double prop_valu
#if defined (HAVE_QT) #if defined (HAVE_QT)
cvSetModeWindow_QT(name,prop_value); cvSetModeWindow_QT(name,prop_value);
#elif defined (HAVE_WIN32_UI) #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM
cvSetModeWindow_W32(name,prop_value); cvSetModeWindow_W32(name,prop_value);
#elif defined (HAVE_GTK) #elif defined (HAVE_GTK)
cvSetModeWindow_GTK(name,prop_value); cvSetModeWindow_GTK(name,prop_value);
@ -96,7 +96,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
#if defined (HAVE_QT) #if defined (HAVE_QT)
return cvGetModeWindow_QT(name); return cvGetModeWindow_QT(name);
#elif defined (HAVE_WIN32_UI) #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM
return cvGetModeWindow_W32(name); return cvGetModeWindow_W32(name);
#elif defined (HAVE_GTK) #elif defined (HAVE_GTK)
return cvGetModeWindow_GTK(name); return cvGetModeWindow_GTK(name);
@ -113,7 +113,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
#if defined (HAVE_QT) #if defined (HAVE_QT)
return cvGetPropWindow_QT(name); return cvGetPropWindow_QT(name);
#elif defined (HAVE_WIN32_UI) #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM
return cvGetPropWindowAutoSize_W32(name); return cvGetPropWindowAutoSize_W32(name);
#elif defined (HAVE_GTK) #elif defined (HAVE_GTK)
return cvGetPropWindowAutoSize_GTK(name); return cvGetPropWindowAutoSize_GTK(name);
@ -126,7 +126,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
#if defined (HAVE_QT) #if defined (HAVE_QT)
return cvGetRatioWindow_QT(name); return cvGetRatioWindow_QT(name);
#elif defined (HAVE_WIN32_UI) #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM
return cvGetRatioWindow_W32(name); return cvGetRatioWindow_W32(name);
#elif defined (HAVE_GTK) #elif defined (HAVE_GTK)
return cvGetRatioWindow_GTK(name); return cvGetRatioWindow_GTK(name);
@ -139,7 +139,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
#if defined (HAVE_QT) #if defined (HAVE_QT)
return cvGetOpenGlProp_QT(name); return cvGetOpenGlProp_QT(name);
#elif defined (HAVE_WIN32_UI) #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM
return cvGetOpenGlProp_W32(name); return cvGetOpenGlProp_W32(name);
#elif defined (HAVE_GTK) #elif defined (HAVE_GTK)
return cvGetOpenGlProp_GTK(name); return cvGetOpenGlProp_GTK(name);
@ -450,7 +450,7 @@ int cv::createButton(const string&, ButtonCallback, void*, int , bool )
#endif #endif
#if defined (HAVE_WIN32_UI) // see window_w32.cpp #if (defined WIN32 || defined _WIN32) && !defined _M_ARM // see window_w32.cpp
#elif defined (HAVE_GTK) // see window_gtk.cpp #elif defined (HAVE_GTK) // see window_gtk.cpp
#elif defined (HAVE_COCOA) // see window_carbon.cpp #elif defined (HAVE_COCOA) // see window_carbon.cpp
#elif defined (HAVE_CARBON) #elif defined (HAVE_CARBON)