\r
if(UNIX)\r
set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")\r
- set(WITH_UNICAP ON CACHE BOOL "Include Unicap support")\r
- set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support")\r
- set(WITH_GTK ON CACHE BOOL "Include GTK support")\r
- set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")\r
- set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")\r
- set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")\r
- set(WITH_XINE ON CACHE BOOL "Include Xine support")\r
+ if(NOT APPLE)\r
+ set(WITH_UNICAP OFF CACHE BOOL "Include Unicap support (GPL)")\r
+ set(WITH_GTK ON CACHE BOOL "Include GTK support")\r
+ set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")\r
+ set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")\r
+ set(WITH_XINE OFF CACHE BOOL "Include Xine support (GPL)")\r
+ endif()\r
+ set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support")\r
+ set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")\r
+endif()\r
+\r
+if(APPLE)\r
+ set(WITH_CARBON OFF CACHE BOOL "Use Carbon for UI instead of Cocoa")\r
endif()\r
\r
set(WITH_TBB OFF CACHE BOOL "Include TBB support")\r
message(STATUS "")\r
endif()\r
\r
+if(APPLE)\r
+message(STATUS "")\r
+if(HAVE_CARBON)\r
+message(STATUS " GUI Back-end: Carbon")\r
+else()\r
+message(STATUS " GUI Back-end: Cocoa")\r
+endif()\r
+message(STATUS "")\r
+endif() \r
+\r
message(STATUS " Image I/O: ")\r
if(NOT WITH_JPEG OR JPEG_FOUND)\r
message(STATUS " JPEG: ${JPEG_FOUND}")\r
endif()
if(APPLE)
- add_definitions(-DHAVE_QUICKTIME=1 -DHAVE_COCOA=1)
+ add_definitions(-DHAVE_QUICKTIME=1)
if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
add_definitions(-DHAVE_IMAGEIO=1)
endif()
- set(highgui_srcs ${highgui_srcs} window_cocoa.mm cvcap_qt.mm)
+ set(highgui_srcs ${highgui_srcs} cvcap_qt.mm)
+ if(WITH_CARBON)
+ add_definitions(-DHAVE_CARBON=1)
+ set(highgui_srcs ${highgui_srcs} window_carbon.cpp)
+ else()
+ add_definitions(-DHAVE_COCOA=1)
+ set(highgui_srcs ${highgui_srcs} window_cocoa.mm)
+ endif()
endif(APPLE)
source_group("Src" FILES ${highgui_srcs} ${highgui_hdrs})
if(APPLE)
target_link_libraries(${the_target} "-framework QTKit -lbz2 -framework Cocoa -framework CoreFoundation -framework QuartzCore")
+ if(WITH_CARBON)
+ target_link_libraries(${the_target} "-framework Carbon -framework QuickTime")
+ endif()
endif()
install(TARGETS ${the_target}
static void icvCocoaCleanup(void)
{
- /*if( application )
+ if( application )
{
[application terminate:nil];
application = 0;
[pool release];
- }*/
+ }
}
CV_IMPL int cvInitSystem( int argc, char** argv)
CV_IMPL void cvShowImage( const char* name, const CvArr* arr)
{
CVWindow *window = cvGetWindow(name);
- if(window) {
+ if(!window)
+ {
+ cvNamedWindow(name, CV_WINDOW_AUTOSIZE);
+ window = cvGetWindow(name);
+ }
+
+ if(window)
+ {
bool empty = [[window contentView] image] == nil;
NSRect rect = [window frame];
NSRect vrectOld = [[window contentView] frame];
[[window contentView] setImageData:(CvArr *)arr];
- if([window autosize] || empty) {
+ if([window autosize] || empty)
+ {
NSRect vrectNew = vrectOld;
vrectNew.size = [[[window contentView] image] size];
rect.size.width += vrectNew.size.width - vrectOld.size.width;
rect.size.height += vrectNew.size.height - vrectOld.size.height;
[window setFrame:rect display:YES];
- } else {
- [window display];
}
+ else
+ [window display];
}
-
}
CV_IMPL void cvResizeWindow( const char* name, int width, int height)
if( !wasInitialized )
cvInitSystem(0, 0);
- CVWindow *window = [[CVWindow alloc] initWithContentRect:NSMakeRect(0,0,200,200)
+ CVWindow *window = cvGetWindow(name);
+ if( window )
+ {
+ [window setAutosize:(flags == CV_WINDOW_AUTOSIZE)];
+ return 0;
+ }
+
+ window = [[CVWindow alloc] initWithContentRect:NSMakeRect(0,0,200,200)
styleMask:NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|
(!(flags & CV_WND_PROP_AUTOSIZE) ? NSResizableWindowMask : 0)
backing:NSBackingStoreBuffered