Index: include/CaptureFilter.h =================================================================== --- include/CaptureFilter.h (revision 15) +++ include/CaptureFilter.h (working copy) @@ -8,7 +8,6 @@ #include #include #include -#include // FIXME: we should put this in a namespace Index: include/glut.h =================================================================== --- include/glut.h (revision 15) +++ include/glut.h (working copy) @@ -1,716 +0,0 @@ -#ifndef __glut_h__ -#define __glut_h__ - -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ - -/* This program is freely distributable without licensing fees and is - provided without guarantee or warrantee expressed or implied. This - program is -not- in the public domain. */ - -#if defined(_WIN32) - -/* GLUT 3.7 now tries to avoid including - to avoid name space pollution, but Win32's - needs APIENTRY and WINGDIAPI defined properly. */ -# if 0 - /* This would put tons of macros and crap in our clean name space. */ -# define WIN32_LEAN_AND_MEAN -# include -# else - /* XXX This is from Win32's */ -# ifndef APIENTRY -# define GLUT_APIENTRY_DEFINED -# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -# endif - /* XXX This is from Win32's */ -# ifndef CALLBACK -# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -# endif - /* XXX Hack for lcc compiler. It doesn't support __declspec(dllimport), just __stdcall. */ -# if defined( __LCC__ ) -# undef WINGDIAPI -# define WINGDIAPI __stdcall -# else - /* XXX This is from Win32's and */ -# ifndef WINGDIAPI -# define GLUT_WINGDIAPI_DEFINED -# define WINGDIAPI __declspec(dllimport) -# endif -# endif - /* XXX This is from Win32's */ -# ifndef _WCHAR_T_DEFINED -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -# endif -# endif - -/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA - in your compile preprocessor options. */ -# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) -# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ -/* To enable automatic SGI OpenGL for Windows library usage for GLUT, - define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ -# ifdef GLUT_USE_SGI_OPENGL -# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ -# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ -# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */ -# else -# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ -# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ -# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ -# endif -# endif - -/* To disable supression of annoying warnings about floats being promoted - to floats, define GLUT_NO_WARNING_DISABLE in your compile preprocessor - options. */ -# ifndef GLUT_NO_WARNING_DISABLE -# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ -# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ -# endif - -/* Win32 has an annoying issue where there are multiple C run-time - libraries (CRTs). If the executable is linked with a different CRT - from the GLUT DLL, the GLUT DLL will not share the same CRT static - data seen by the executable. In particular, atexit callbacks registered - in the executable will not be called if GLUT calls its (different) - exit routine). GLUT is typically built with the - "/MD" option (the CRT with multithreading DLL support), but the Visual - C++ linker default is "/ML" (the single threaded CRT). - - One workaround to this issue is requiring users to always link with - the same CRT as GLUT is compiled with. That requires users supply a - non-standard option. GLUT 3.7 has its own built-in workaround where - the executable's "exit" function pointer is covertly passed to GLUT. - GLUT then calls the executable's exit function pointer to ensure that - any "atexit" calls registered by the application are called if GLUT - needs to exit. - - Note that the __glut*WithExit routines should NEVER be called directly. - To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ - -/* XXX This is from Win32's */ -# if !defined(_MSC_VER) && !defined(__cdecl) - /* Define __cdecl for non-Microsoft compilers. */ -# define __cdecl -# define GLUT_DEFINED___CDECL -# endif -# ifndef _CRTIMP -# ifdef _NTSDK - /* Definition compatible with NT SDK */ -# define _CRTIMP -# else - /* Current definition */ -# ifdef _DLL -# define _CRTIMP __declspec(dllimport) -# else -# define _CRTIMP -# endif -# endif -# define GLUT_DEFINED__CRTIMP -# endif - -/* GLUT API entry point declarations for Win32. */ -# ifdef GLUT_BUILDING_LIB -# define GLUTAPI __declspec(dllexport) -# else -# ifdef _DLL -# define GLUTAPI __declspec(dllimport) -# else -# define GLUTAPI extern -# endif -# endif - -/* GLUT callback calling convention for Win32. */ -# define GLUTCALLBACK __cdecl - -#endif /* _WIN32 */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_WIN32) -# ifndef GLUT_BUILDING_LIB -extern _CRTIMP void __cdecl exit(int); -# endif -#else -/* non-Win32 case. */ -/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */ -# define APIENTRY -# define GLUT_APIENTRY_DEFINED -# define CALLBACK -/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */ -# define GLUTAPI extern -# define GLUTCALLBACK -/* Prototype exit for the non-Win32 case (see above). */ -extern void exit(int); -#endif - -/** - GLUT API revision history: - - GLUT_API_VERSION is updated to reflect incompatible GLUT - API changes (interface changes, semantic changes, deletions, - or additions). - - GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 - - GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, - extension. Supports new input devices like tablet, dial and button - box, and Spaceball. Easy to query OpenGL extensions. - - GLUT_API_VERSION=3 glutMenuStatus added. - - GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, - glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic - video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, - glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, - glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). -**/ -#ifndef GLUT_API_VERSION /* allow this to be overriden */ -#define GLUT_API_VERSION 3 -#endif - -/** - GLUT implementation revision history: - - GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT - API revisions and implementation revisions (ie, bug fixes). - - GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of - GLUT Xlib-based implementation. 11/29/94 - - GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of - GLUT Xlib-based implementation providing GLUT version 2 - interfaces. - - GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 - - GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 - - GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 - - GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 - - GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner - and video resize. 1/3/97 - - GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. - - GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. - - GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. - - GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. - - GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. - - GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa -**/ -#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ -#define GLUT_XLIB_IMPLEMENTATION 15 -#endif - -/* Display mode bit masks. */ -#define GLUT_RGB 0 -#define GLUT_RGBA GLUT_RGB -#define GLUT_INDEX 1 -#define GLUT_SINGLE 0 -#define GLUT_DOUBLE 2 -#define GLUT_ACCUM 4 -#define GLUT_ALPHA 8 -#define GLUT_DEPTH 16 -#define GLUT_STENCIL 32 -#if (GLUT_API_VERSION >= 2) -#define GLUT_MULTISAMPLE 128 -#define GLUT_STEREO 256 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_LUMINANCE 512 -#endif - -/* Mouse buttons. */ -#define GLUT_LEFT_BUTTON 0 -#define GLUT_MIDDLE_BUTTON 1 -#define GLUT_RIGHT_BUTTON 2 - -/* Mouse button state. */ -#define GLUT_DOWN 0 -#define GLUT_UP 1 - -#if (GLUT_API_VERSION >= 2) -/* function keys */ -#define GLUT_KEY_F1 1 -#define GLUT_KEY_F2 2 -#define GLUT_KEY_F3 3 -#define GLUT_KEY_F4 4 -#define GLUT_KEY_F5 5 -#define GLUT_KEY_F6 6 -#define GLUT_KEY_F7 7 -#define GLUT_KEY_F8 8 -#define GLUT_KEY_F9 9 -#define GLUT_KEY_F10 10 -#define GLUT_KEY_F11 11 -#define GLUT_KEY_F12 12 -/* directional keys */ -#define GLUT_KEY_LEFT 100 -#define GLUT_KEY_UP 101 -#define GLUT_KEY_RIGHT 102 -#define GLUT_KEY_DOWN 103 -#define GLUT_KEY_PAGE_UP 104 -#define GLUT_KEY_PAGE_DOWN 105 -#define GLUT_KEY_HOME 106 -#define GLUT_KEY_END 107 -#define GLUT_KEY_INSERT 108 -#endif - -/* Entry/exit state. */ -#define GLUT_LEFT 0 -#define GLUT_ENTERED 1 - -/* Menu usage state. */ -#define GLUT_MENU_NOT_IN_USE 0 -#define GLUT_MENU_IN_USE 1 - -/* Visibility state. */ -#define GLUT_NOT_VISIBLE 0 -#define GLUT_VISIBLE 1 - -/* Window status state. */ -#define GLUT_HIDDEN 0 -#define GLUT_FULLY_RETAINED 1 -#define GLUT_PARTIALLY_RETAINED 2 -#define GLUT_FULLY_COVERED 3 - -/* Color index component selection values. */ -#define GLUT_RED 0 -#define GLUT_GREEN 1 -#define GLUT_BLUE 2 - -#if defined(_WIN32) -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN ((void*)0) -#define GLUT_STROKE_MONO_ROMAN ((void*)1) - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 ((void*)2) -#define GLUT_BITMAP_8_BY_13 ((void*)3) -#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) -#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 ((void*)6) -#define GLUT_BITMAP_HELVETICA_12 ((void*)7) -#define GLUT_BITMAP_HELVETICA_18 ((void*)8) -#endif -#else -/* Stroke font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutStrokeRoman; -GLUTAPI void *glutStrokeMonoRoman; - -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN (&glutStrokeRoman) -#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) - -/* Bitmap font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutBitmap9By15; -GLUTAPI void *glutBitmap8By13; -GLUTAPI void *glutBitmapTimesRoman10; -GLUTAPI void *glutBitmapTimesRoman24; -GLUTAPI void *glutBitmapHelvetica10; -GLUTAPI void *glutBitmapHelvetica12; -GLUTAPI void *glutBitmapHelvetica18; - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) -#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) -#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) -#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) -#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) -#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) -#endif -#endif - -/* glutGet parameters. */ -#define GLUT_WINDOW_X ((GLenum) 100) -#define GLUT_WINDOW_Y ((GLenum) 101) -#define GLUT_WINDOW_WIDTH ((GLenum) 102) -#define GLUT_WINDOW_HEIGHT ((GLenum) 103) -#define GLUT_WINDOW_BUFFER_SIZE ((GLenum) 104) -#define GLUT_WINDOW_STENCIL_SIZE ((GLenum) 105) -#define GLUT_WINDOW_DEPTH_SIZE ((GLenum) 106) -#define GLUT_WINDOW_RED_SIZE ((GLenum) 107) -#define GLUT_WINDOW_GREEN_SIZE ((GLenum) 108) -#define GLUT_WINDOW_BLUE_SIZE ((GLenum) 109) -#define GLUT_WINDOW_ALPHA_SIZE ((GLenum) 110) -#define GLUT_WINDOW_ACCUM_RED_SIZE ((GLenum) 111) -#define GLUT_WINDOW_ACCUM_GREEN_SIZE ((GLenum) 112) -#define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113) -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE ((GLenum) 114) -#define GLUT_WINDOW_DOUBLEBUFFER ((GLenum) 115) -#define GLUT_WINDOW_RGBA ((GLenum) 116) -#define GLUT_WINDOW_PARENT ((GLenum) 117) -#define GLUT_WINDOW_NUM_CHILDREN ((GLenum) 118) -#define GLUT_WINDOW_COLORMAP_SIZE ((GLenum) 119) -#if (GLUT_API_VERSION >= 2) -#define GLUT_WINDOW_NUM_SAMPLES ((GLenum) 120) -#define GLUT_WINDOW_STEREO ((GLenum) 121) -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_WINDOW_CURSOR ((GLenum) 122) -#endif -#define GLUT_SCREEN_WIDTH ((GLenum) 200) -#define GLUT_SCREEN_HEIGHT ((GLenum) 201) -#define GLUT_SCREEN_WIDTH_MM ((GLenum) 202) -#define GLUT_SCREEN_HEIGHT_MM ((GLenum) 203) -#define GLUT_MENU_NUM_ITEMS ((GLenum) 300) -#define GLUT_DISPLAY_MODE_POSSIBLE ((GLenum) 400) -#define GLUT_INIT_WINDOW_X ((GLenum) 500) -#define GLUT_INIT_WINDOW_Y ((GLenum) 501) -#define GLUT_INIT_WINDOW_WIDTH ((GLenum) 502) -#define GLUT_INIT_WINDOW_HEIGHT ((GLenum) 503) -#define GLUT_INIT_DISPLAY_MODE ((GLenum) 504) -#if (GLUT_API_VERSION >= 2) -#define GLUT_ELAPSED_TIME ((GLenum) 700) -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_WINDOW_FORMAT_ID ((GLenum) 123) -#endif - -#if (GLUT_API_VERSION >= 2) -/* glutDeviceGet parameters. */ -#define GLUT_HAS_KEYBOARD ((GLenum) 600) -#define GLUT_HAS_MOUSE ((GLenum) 601) -#define GLUT_HAS_SPACEBALL ((GLenum) 602) -#define GLUT_HAS_DIAL_AND_BUTTON_BOX ((GLenum) 603) -#define GLUT_HAS_TABLET ((GLenum) 604) -#define GLUT_NUM_MOUSE_BUTTONS ((GLenum) 605) -#define GLUT_NUM_SPACEBALL_BUTTONS ((GLenum) 606) -#define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607) -#define GLUT_NUM_DIALS ((GLenum) 608) -#define GLUT_NUM_TABLET_BUTTONS ((GLenum) 609) -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_DEVICE_IGNORE_KEY_REPEAT ((GLenum) 610) -#define GLUT_DEVICE_KEY_REPEAT ((GLenum) 611) -#define GLUT_HAS_JOYSTICK ((GLenum) 612) -#define GLUT_OWNS_JOYSTICK ((GLenum) 613) -#define GLUT_JOYSTICK_BUTTONS ((GLenum) 614) -#define GLUT_JOYSTICK_AXES ((GLenum) 615) -#define GLUT_JOYSTICK_POLL_RATE ((GLenum) 616) -#endif - -#if (GLUT_API_VERSION >= 3) -/* glutLayerGet parameters. */ -#define GLUT_OVERLAY_POSSIBLE ((GLenum) 800) -#define GLUT_LAYER_IN_USE ((GLenum) 801) -#define GLUT_HAS_OVERLAY ((GLenum) 802) -#define GLUT_TRANSPARENT_INDEX ((GLenum) 803) -#define GLUT_NORMAL_DAMAGED ((GLenum) 804) -#define GLUT_OVERLAY_DAMAGED ((GLenum) 805) - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* glutVideoResizeGet parameters. */ -#define GLUT_VIDEO_RESIZE_POSSIBLE ((GLenum) 900) -#define GLUT_VIDEO_RESIZE_IN_USE ((GLenum) 901) -#define GLUT_VIDEO_RESIZE_X_DELTA ((GLenum) 902) -#define GLUT_VIDEO_RESIZE_Y_DELTA ((GLenum) 903) -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA ((GLenum) 904) -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA ((GLenum) 905) -#define GLUT_VIDEO_RESIZE_X ((GLenum) 906) -#define GLUT_VIDEO_RESIZE_Y ((GLenum) 907) -#define GLUT_VIDEO_RESIZE_WIDTH ((GLenum) 908) -#define GLUT_VIDEO_RESIZE_HEIGHT ((GLenum) 909) -#endif - -/* glutUseLayer parameters. */ -#define GLUT_NORMAL ((GLenum) 0) -#define GLUT_OVERLAY ((GLenum) 1) - -/* glutGetModifiers return mask. */ -#define GLUT_ACTIVE_SHIFT 1 -#define GLUT_ACTIVE_CTRL 2 -#define GLUT_ACTIVE_ALT 4 - -/* glutSetCursor parameters. */ -/* Basic arrows. */ -#define GLUT_CURSOR_RIGHT_ARROW 0 -#define GLUT_CURSOR_LEFT_ARROW 1 -/* Symbolic cursor shapes. */ -#define GLUT_CURSOR_INFO 2 -#define GLUT_CURSOR_DESTROY 3 -#define GLUT_CURSOR_HELP 4 -#define GLUT_CURSOR_CYCLE 5 -#define GLUT_CURSOR_SPRAY 6 -#define GLUT_CURSOR_WAIT 7 -#define GLUT_CURSOR_TEXT 8 -#define GLUT_CURSOR_CROSSHAIR 9 -/* Directional cursors. */ -#define GLUT_CURSOR_UP_DOWN 10 -#define GLUT_CURSOR_LEFT_RIGHT 11 -/* Sizing cursors. */ -#define GLUT_CURSOR_TOP_SIDE 12 -#define GLUT_CURSOR_BOTTOM_SIDE 13 -#define GLUT_CURSOR_LEFT_SIDE 14 -#define GLUT_CURSOR_RIGHT_SIDE 15 -#define GLUT_CURSOR_TOP_LEFT_CORNER 16 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 -/* Inherit from parent window. */ -#define GLUT_CURSOR_INHERIT 100 -/* Blank cursor. */ -#define GLUT_CURSOR_NONE 101 -/* Fullscreen crosshair (if available). */ -#define GLUT_CURSOR_FULL_CROSSHAIR 102 -#endif - -/* GLUT initialization sub-API. */ -GLUTAPI void APIENTRY glutInit(int *argcp, char **argv); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } -#define glutInit glutInit_ATEXIT_HACK -#endif -#endif -GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutInitDisplayString(const char *string); -#endif -GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y); -GLUTAPI void APIENTRY glutInitWindowSize(int width, int height); -GLUTAPI void APIENTRY glutMainLoop(void); - -/* GLUT window sub-API. */ -GLUTAPI int APIENTRY glutCreateWindow(const char *title); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } -#define glutCreateWindow glutCreateWindow_ATEXIT_HACK -#endif -#endif -GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); -GLUTAPI void APIENTRY glutDestroyWindow(int win); -GLUTAPI void APIENTRY glutPostRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void APIENTRY glutPostWindowRedisplay(int win); -#endif -GLUTAPI void APIENTRY glutSwapBuffers(void); -GLUTAPI int APIENTRY glutGetWindow(void); -GLUTAPI void APIENTRY glutSetWindow(int win); -GLUTAPI void APIENTRY glutSetWindowTitle(const char *title); -GLUTAPI void APIENTRY glutSetIconTitle(const char *title); -GLUTAPI void APIENTRY glutPositionWindow(int x, int y); -GLUTAPI void APIENTRY glutReshapeWindow(int width, int height); -GLUTAPI void APIENTRY glutPopWindow(void); -GLUTAPI void APIENTRY glutPushWindow(void); -GLUTAPI void APIENTRY glutIconifyWindow(void); -GLUTAPI void APIENTRY glutShowWindow(void); -GLUTAPI void APIENTRY glutHideWindow(void); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void APIENTRY glutFullScreen(void); -GLUTAPI void APIENTRY glutSetCursor(int cursor); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutWarpPointer(int x, int y); -#endif - -/* GLUT overlay sub-API. */ -GLUTAPI void APIENTRY glutEstablishOverlay(void); -GLUTAPI void APIENTRY glutRemoveOverlay(void); -GLUTAPI void APIENTRY glutUseLayer(GLenum layer); -GLUTAPI void APIENTRY glutPostOverlayRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win); -#endif -GLUTAPI void APIENTRY glutShowOverlay(void); -GLUTAPI void APIENTRY glutHideOverlay(void); -#endif - -/* GLUT menu sub-API. */ -GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } -#define glutCreateMenu glutCreateMenu_ATEXIT_HACK -#endif -#endif -GLUTAPI void APIENTRY glutDestroyMenu(int menu); -GLUTAPI int APIENTRY glutGetMenu(void); -GLUTAPI void APIENTRY glutSetMenu(int menu); -GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value); -GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu); -GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); -GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); -GLUTAPI void APIENTRY glutRemoveMenuItem(int item); -GLUTAPI void APIENTRY glutAttachMenu(int button); -GLUTAPI void APIENTRY glutDetachMenu(int button); - -/* GLUT window callback sub-API. */ -GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); -GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); -GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); -#if (GLUT_API_VERSION >= 2) -GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); -GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); -GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); -#endif -#endif -#endif - -/* GLUT color index sub-API. */ -GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); -GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component); -GLUTAPI void APIENTRY glutCopyColormap(int win); - -/* GLUT state retrieval sub-API. */ -GLUTAPI int APIENTRY glutGet(GLenum type); -GLUTAPI int APIENTRY glutDeviceGet(GLenum type); -#if (GLUT_API_VERSION >= 2) -/* GLUT extension support sub-API */ -GLUTAPI int APIENTRY glutExtensionSupported(const char *name); -#endif -#if (GLUT_API_VERSION >= 3) -GLUTAPI int APIENTRY glutGetModifiers(void); -GLUTAPI int APIENTRY glutLayerGet(GLenum type); -#endif - -/* GLUT font sub-API */ -GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character); -GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character); -GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character); -GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string); -GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string); -#endif - -/* GLUT pre-built models sub-API */ -GLUTAPI void APIENTRY glutWireSphere(GLfloat radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidSphere(GLfloat radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCone(GLfloat base, GLfloat height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidCone(GLfloat base, GLfloat height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCube(GLfloat size); -GLUTAPI void APIENTRY glutSolidCube(GLfloat size); -GLUTAPI void APIENTRY glutWireTorus(GLfloat innerRadius, GLfloat outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutSolidTorus(GLfloat innerRadius, GLfloat outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutWireDodecahedron(void); -GLUTAPI void APIENTRY glutSolidDodecahedron(void); -GLUTAPI void APIENTRY glutWireTeapot(GLfloat size); -GLUTAPI void APIENTRY glutSolidTeapot(GLfloat size); -GLUTAPI void APIENTRY glutWireOctahedron(void); -GLUTAPI void APIENTRY glutSolidOctahedron(void); -GLUTAPI void APIENTRY glutWireTetrahedron(void); -GLUTAPI void APIENTRY glutSolidTetrahedron(void); -GLUTAPI void APIENTRY glutWireIcosahedron(void); -GLUTAPI void APIENTRY glutSolidIcosahedron(void); - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* GLUT video resize sub-API. */ -GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param); -GLUTAPI void APIENTRY glutSetupVideoResizing(void); -GLUTAPI void APIENTRY glutStopVideoResizing(void); -GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height); -GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height); - -/* GLUT debugging sub-API. */ -GLUTAPI void APIENTRY glutReportErrors(void); -#endif - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -/* GLUT device control sub-API. */ -/* glutSetKeyRepeat modes. */ -#define GLUT_KEY_REPEAT_OFF 0 -#define GLUT_KEY_REPEAT_ON 1 -#define GLUT_KEY_REPEAT_DEFAULT 2 - -/* Joystick button masks. */ -#define GLUT_JOYSTICK_BUTTON_A 1 -#define GLUT_JOYSTICK_BUTTON_B 2 -#define GLUT_JOYSTICK_BUTTON_C 4 -#define GLUT_JOYSTICK_BUTTON_D 8 - -GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore); -GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode); -GLUTAPI void APIENTRY glutForceJoystickFunc(void); - -/* GLUT game mode sub-API. */ -/* glutGameModeGet. */ -#define GLUT_GAME_MODE_ACTIVE ((GLenum) 0) -#define GLUT_GAME_MODE_POSSIBLE ((GLenum) 1) -#define GLUT_GAME_MODE_WIDTH ((GLenum) 2) -#define GLUT_GAME_MODE_HEIGHT ((GLenum) 3) -#define GLUT_GAME_MODE_PIXEL_DEPTH ((GLenum) 4) -#define GLUT_GAME_MODE_REFRESH_RATE ((GLenum) 5) -#define GLUT_GAME_MODE_DISPLAY_CHANGED ((GLenum) 6) - -GLUTAPI void APIENTRY glutGameModeString(const char *string); -GLUTAPI int APIENTRY glutEnterGameMode(void); -GLUTAPI void APIENTRY glutLeaveGameMode(void); -GLUTAPI int APIENTRY glutGameModeGet(GLenum mode); -#endif - -#ifdef __cplusplus -} - -#endif - -#ifdef GLUT_APIENTRY_DEFINED -# undef GLUT_APIENTRY_DEFINED -# undef APIENTRY -#endif - -#ifdef GLUT_WINGDIAPI_DEFINED -# undef GLUT_WINGDIAPI_DEFINED -# undef WINGDIAPI -#endif - -#ifdef GLUT_DEFINED___CDECL -# undef GLUT_DEFINED___CDECL -# undef __cdecl -#endif - -#ifdef GLUT_DEFINED__CRTIMP -# undef GLUT_DEFINED__CRTIMP -# undef _CRTIMP -#endif - -#endif /* __glut_h__ */ Index: include/touchlib_platform.h =================================================================== --- include/touchlib_platform.h (revision 15) +++ include/touchlib_platform.h (working copy) @@ -17,13 +17,19 @@ #include #define THREAD_HANDLE HANDLE #define THREAD_MUTEX_HANDLE HANDLE +#define THREAD_RETURN_TYPE void + + #else + +#include # define TOUCHLIB_EXPORT # define TOUCHLIB_CORE_EXPORT # define TOUCHLIB_FILTER_EXPORT # define strcmpi strcasecmp #define THREAD_HANDLE pthread_t #define THREAD_MUTEX_HANDLE pthread_mutex_t +#define THREAD_RETURN_TYPE void* #define _TCHAR char #endif Index: include/CTouchScreen.h =================================================================== --- include/CTouchScreen.h (revision 15) +++ include/CTouchScreen.h (working copy) @@ -5,13 +5,6 @@ #include "CBlobTracker.h" #include "ITouchEvent.h" #include "TouchlibFilter.h" -#ifdef WIN32 -#include -#include -typedef void thread_function_return_t; -#else -typedef void* thread_function_return_t; -#endif #include "ITouchListener.h" #include "mesh2d.h" @@ -103,7 +96,7 @@ ////////// - static thread_function_return_t _processEntryPoint(void*); + static THREAD_RETURN_TYPE _processEntryPoint(void*); void cameraToScreenSpace(float &x, float &y); Index: include/VideoWrapperFilter.h =================================================================== --- include/VideoWrapperFilter.h (revision 15) +++ include/VideoWrapperFilter.h (working copy) @@ -3,11 +3,10 @@ #include -#include -#include -#include -#include -#include +#ifdef WIN32 + #include + #include +#endif #include Index: include/vector2d.h =================================================================== --- include/vector2d.h (revision 15) +++ include/vector2d.h (working copy) @@ -3,6 +3,7 @@ #include +#include namespace touchlib { Index: src/configapp.cpp =================================================================== --- src/configapp.cpp (revision 15) +++ src/configapp.cpp (working copy) @@ -1,12 +1,19 @@ #ifdef WIN32 -#pragma once -#define WIN32_LEAN_AND_MEAN -#define _WIN32_WINNT 0x0500 + #pragma once + #define WIN32_LEAN_AND_MEAN + #define _WIN32_WINNT 0x0500 -#include -#include -#pragma comment( lib, "glut32" ) -#pragma comment( lib, "user32" ) + #include + #include + + #include "glut.h" + + #pragma comment( lib, "glut32" ) + #pragma comment( lib, "user32" ) +#elif defined(__APPLE__) + #include +#else + #include #endif #include @@ -14,8 +21,6 @@ #include #include -#include "glut.h" - #include "TouchScreenDevice.h" #include "TouchData.h" @@ -23,7 +28,9 @@ #include -#include +#ifdef WIN32 + #include +#endif void glutDrawBox(float x1, float y1, float x2, float y2, float r, float g, float b); void glutDrawPlus(float x1, float y1, float s, float r, float g, float b); @@ -122,6 +129,7 @@ if(curcalib == -1) { +#ifdef WIN32 INPUT aInput; aInput.type = INPUT_MOUSE; @@ -133,6 +141,7 @@ aInput.mi.dy = (data.Y * 65535.0f); int aResult = SendInput(1, &aInput, sizeof(INPUT) ); +#endif } } @@ -143,6 +152,7 @@ if(curcalib == -1) { +#ifdef WIN32 INPUT aInput; aInput.type = INPUT_MOUSE; @@ -154,6 +164,7 @@ aInput.mi.dy = (data.Y * 65535.0f); int aResult = SendInput(1, &aInput, sizeof(INPUT) ); +#endif } } @@ -173,6 +184,7 @@ if(curcalib == -1) { +#ifdef WIN32 INPUT aInput; aInput.type = INPUT_MOUSE; @@ -181,6 +193,7 @@ aInput.mi.mouseData = 0; aInput.mi.time = 0; int aResult = SendInput(1, &aInput, sizeof(INPUT) ); +#endif } } @@ -363,13 +376,21 @@ glutMainLoop(); } +#ifdef WIN32 int _tmain(int argc, char * argv[]) +#else +int main(int argc, char * argv[]) +#endif { screen = TouchScreenDevice::getTouchScreen(); if(!screen->loadConfig("config.xml")) { +#ifdef WIN32 screen->pushFilter("dsvlcapture", "capture1"); +#else + screen->pushFilter("cvcapture", "capture1"); +#endif screen->pushFilter("mono", "mono2"); screen->pushFilter("smooth", "smooth3"); screen->pushFilter("backgroundremove", "background4"); @@ -395,6 +416,8 @@ // Note: Begin processing should only be called after the screen is set up screen->beginProcessing(); + + sleep(10); do { Index: src/CaptureFilter.cpp =================================================================== --- src/CaptureFilter.cpp (revision 15) +++ src/CaptureFilter.cpp (working copy) @@ -1,13 +1,17 @@ #include +#if defined(_WIN32) || defined(WIN32) || defined(__WIN32__) + #include +#endif + #include #include #include CvCapture * CaptureFilter::capture = 0; IplImage* CaptureFilter::acquiredImage = 0; -HANDLE CaptureFilter::hThread = 0; +//HANDLE CaptureFilter::hThread = 0; CaptureFilter::CaptureFilter(char* s) : Filter(s) { Index: src/FilterFactory.cpp =================================================================== --- src/FilterFactory.cpp (revision 15) +++ src/FilterFactory.cpp (working copy) @@ -1,10 +1,9 @@ #include "FilterFactory.h" #include "CvCaptureFilter.h" -#ifdef WIN32 -//#include "DsCaptureFilter.h" #include "VideoWrapperFilter.h" -#include "DSVLCaptureFilter.h" +#ifdef WIN32 + #include "DSVLCaptureFilter.h" #endif #include "BrightnessContrastFilter.h" Index: src/VideoWrapperFilter.cpp =================================================================== --- src/VideoWrapperFilter.cpp (revision 15) +++ src/VideoWrapperFilter.cpp (working copy) @@ -4,7 +4,11 @@ VideoWrapperFilter::VideoWrapperFilter(char *s) : Filter(s) { +#if defined(_WIN32) || defined(WIN32) || defined(__WIN32__) strcpy(videostring, "vc: 0 320 30 I420 1"); +#elif defined(__APPLE__) + strcpy(videostring, "qt: 0 640 30 rgb 0"); +#endif g_hVideo = 0; destination = NULL; Index: src/textures.cpp =================================================================== --- src/textures.cpp (revision 15) +++ src/textures.cpp (working copy) @@ -26,7 +26,7 @@ // FIXME: if(bInitialized) free memory. printf("loading texture: %s\n", filename); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glGenTextures(1,&ID); + glGenTextures(1,(GLuint*)&ID); glBindTexture( GL_TEXTURE_2D, ID); Image = auxDIBImageLoadA( (const char*) filename ); if(!Image) Index: src/CTouchScreen.cpp =================================================================== --- src/CTouchScreen.cpp (revision 15) +++ src/CTouchScreen.cpp (working copy) @@ -1,12 +1,8 @@ #include "CTouchScreen.h" #include "FilterFactory.h" -#ifdef WIN32 -#include "process.h" -#else -#include -#endif #include "tinyxml.h" +#include using namespace touchlib; @@ -29,6 +25,8 @@ #ifdef WIN32 eventListMutex = CreateMutex(NULL, 0, NULL); +#else + pthread_mutex_init(&eventListMutex, NULL); #endif screenScale = 0.75; @@ -78,7 +76,10 @@ pthread_kill(hThread,15); hThread = 0; } + + pthread_mutex_destroy(&eventListMutex); #endif + for(i=0; iprocess(); } Index: src/CMakeLists.txt =================================================================== --- src/CMakeLists.txt (revision 15) +++ src/CMakeLists.txt (working copy) @@ -1,5 +1,13 @@ ADD_LIBRARY(touchlib BackgroundFilter.cpp BrightnessContrastFilter.cpp CBlobTracker.cpp CTouchScreen.cpp CvCaptureFilter.cpp filter.cpp FilterFactory.cpp MonoFilter.cpp RectifyFilter.cpp ResizeFilter.cpp SmoothingFilter.cpp TouchScreenDevice.cpp ) + ADD_EXECUTABLE(sampleapp sampleapp.cpp) TARGET_LINK_LIBRARIES(sampleapp touchlib tinyxml) SET_TARGET_PROPERTIES(sampleapp PROPERTIES LINK_FLAGS ${OPENCV_LINKDIR} LINK_FLAGS ${OPENCV_LDFLAGS}) + +IF(OPENGL_FOUND AND GLUT_FOUND) + ADD_EXECUTABLE(configapp configapp.cpp) + TARGET_LINK_LIBRARIES(configapp touchlib tinyxml ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) + SET_TARGET_PROPERTIES(configapp + PROPERTIES LINK_FLAGS ${OPENCV_LINKDIR} LINK_FLAGS ${OPENCV_LDFLAGS}) +ENDIF(OPENGL_FOUND AND GLUT_FOUND) Property changes on: tinyxml/lib ___________________________________________________________________ Name: svn:ignore + libtinyxml.a Property changes on: lib ___________________________________________________________________ Name: svn:ignore + libtouchlib.a Index: demos/pong/pong.cpp =================================================================== --- demos/pong/pong.cpp (revision 15) +++ demos/pong/pong.cpp (working copy) @@ -5,10 +5,13 @@ #include #include -#include +#include -#include "glut.h" -#pragma comment( lib, "glut32" ) +#ifdef WIN32 + #include + + #pragma comment( lib, "glut32" ) +#endif #include "TouchScreenDevice.h" #include "TouchData.h" @@ -19,7 +22,10 @@ #include #include + +#ifdef WIN32 #include +#endif #include @@ -855,7 +861,11 @@ TouchScreenDevice::destroy(); } +#ifdef WIN32 int _tmain(int argc, char * argv[]) +#else +int main(int argc, char * argv[]) +#endif { screen = TouchScreenDevice::getTouchScreen(); Index: demos/pong/CMakeLists.txt =================================================================== --- demos/pong/CMakeLists.txt (revision 0) +++ demos/pong/CMakeLists.txt (revision 0) @@ -0,0 +1,6 @@ +IF(OPENGL_FOUND AND GLUT_FOUND) + ADD_EXECUTABLE(pong pong.cpp physicalmesh.cpp ${touchlib_SOURCE_DIR}/src/textures.cpp) + TARGET_LINK_LIBRARIES(pong touchlib tinyxml ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) + SET_TARGET_PROPERTIES(pong + PROPERTIES LINK_FLAGS ${OPENCV_LINKDIR} LINK_FLAGS ${OPENCV_LDFLAGS}) +ENDIF(OPENGL_FOUND AND GLUT_FOUND) \ No newline at end of file Index: demos/osc/osc.cpp =================================================================== --- demos/osc/osc.cpp (revision 15) +++ demos/osc/osc.cpp (working copy) @@ -4,11 +4,12 @@ // I have included a static LIB for oscpack in the lib dir, // so if you are compiling with VC .NET then you don't need to compile oscpack.. +#ifdef WIN32 #pragma once #define WIN32_LEAN_AND_MEAN #define _WIN32_WINNT 0x0500 +#endif - #include #include #include Index: demos/osc/CMakeLists.txt =================================================================== --- demos/osc/CMakeLists.txt (revision 0) +++ demos/osc/CMakeLists.txt (revision 0) @@ -0,0 +1,7 @@ +IF(OSC_INCLUDE_DIR AND OSC_LIBRARIES) + INCLUDE_DIRECTORIES(${OSC_INCLUDE_DIR}) + ADD_EXECUTABLE(osc osc.cpp) + TARGET_LINK_LIBRARIES(osc touchlib tinyxml ${OSC_LIBRARIES}) + SET_TARGET_PROPERTIES(osc + PROPERTIES LINK_FLAGS ${OPENCV_LINKDIR} LINK_FLAGS ${OPENCV_LDFLAGS}) +ENDIF(OSC_INCLUDE_DIR AND OSC_LIBRARIES) \ No newline at end of file Index: demos/CMakeLists.txt =================================================================== --- demos/CMakeLists.txt (revision 0) +++ demos/CMakeLists.txt (revision 0) @@ -0,0 +1,5 @@ +add_subdirectory (smoke) +add_subdirectory (osc) +IF(WIN32) + add_subdirectory (pong) +ENDIF(WIN32) \ No newline at end of file Index: demos/smoke/fluid2d.h =================================================================== --- demos/smoke/fluid2d.h (revision 15) +++ demos/smoke/fluid2d.h (working copy) @@ -16,10 +16,12 @@ #ifndef __FLUID2D__ #define __FLUID2D__ - +#ifdef WIN32 #include +#else +#include +#endif - class Fluid2D { @@ -57,4 +59,4 @@ }; -#endif // __FLUID2D__ \ No newline at end of file +#endif // __FLUID2D__ Index: demos/smoke/glutApplication.h =================================================================== --- demos/smoke/glutApplication.h (revision 15) +++ demos/smoke/glutApplication.h (working copy) @@ -24,10 +24,10 @@ void CallBackDisplayFunc(void); void CallBackKeyboardFunc(unsigned char key, int x, int y); - void glutApplication::SetScreen(ITouchScreen* setScreen); + void SetScreen(ITouchScreen* setScreen); void CallBackReshapeFunc(int w, int h); void CallBackIdleFunc(void); - void glutApplication::DrawField(void); + void DrawField(void); void StartSpinning(GlutMaster * glutMaster); void fingerDown(TouchData data); void fingerUpdate(TouchData data); Index: demos/smoke/main.cc =================================================================== --- demos/smoke/main.cc (revision 15) +++ demos/smoke/main.cc (working copy) @@ -1,5 +1,7 @@ -#include +#ifdef WIN32 + #include +#endif #include #include "glutMaster.h" @@ -10,7 +12,11 @@ GlutMaster* glutMaster; +#ifdef WIN32 int _tmain(int argc, _TCHAR* argv[]) +#else +int main(int argc, char* argv[]) +#endif { glutMaster = new GlutMaster(); Index: demos/smoke/fluid2d.cc =================================================================== --- demos/smoke/fluid2d.cc (revision 15) +++ demos/smoke/fluid2d.cc (working copy) @@ -12,7 +12,7 @@ http://www.dgp.utoronto.ca/people/stam/reality/Research/pub.html */ -#include +#include "fluid2d.h" #include #include Index: demos/smoke/glutMaster.h =================================================================== --- demos/smoke/glutMaster.h (revision 15) +++ demos/smoke/glutMaster.h (working copy) @@ -16,7 +16,13 @@ // included before glut to avoid C2381 error on Visual Studio 2005 (touchlib) #include -#include "glut.h" +#if defined(WIN32) +#include +#elif defined(__APPLE__) +#include +#else +#include +#endif #include "glutWindow.h" #define MAX_NUMBER_OF_WINDOWS 256 Index: demos/smoke/CMakeLists.txt =================================================================== --- demos/smoke/CMakeLists.txt (revision 0) +++ demos/smoke/CMakeLists.txt (revision 0) @@ -0,0 +1,7 @@ +IF(FFTW_INCLUDE_DIR AND FFTW_LIBRARIES AND RFFTW_LIBRARIES) + INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR}) + ADD_EXECUTABLE(smoke fluid2d.cc glutApplication.cc glutMaster.cc glutWindow.cc main.cc) + TARGET_LINK_LIBRARIES(smoke touchlib tinyxml ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ${FFTW_LIBRARIES} ${RFFTW_LIBRARIES}) + SET_TARGET_PROPERTIES(smoke + PROPERTIES LINK_FLAGS ${OPENCV_LINKDIR} LINK_FLAGS ${OPENCV_LDFLAGS}) +ENDIF(FFTW_INCLUDE_DIR AND FFTW_LIBRARIES AND RFFTW_LIBRARIES) \ No newline at end of file Property changes on: bin ___________________________________________________________________ Name: svn:ignore + sampleapp configapp Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 15) +++ CMakeLists.txt (working copy) @@ -1,9 +1,35 @@ project(touchlib) + INCLUDE(UsePkgConfig) PKGCONFIG(opencv OPENCV_INC OPENCV_LINKDIR OPENCV_LDFLAGS OPENCV_CFLAGS) IF(NOT OPENCV_INC) MESSAGE(FATAL_ERROR "OpenCV pkg not found") ENDIF(NOT OPENCV_INC) -INCLUDE_DIRECTORIES(${OPENCV_INC} include tinyxml) + +FIND_PACKAGE(OpenGL) +IF(NOT OPENGL_FOUND) + MESSAGE("OpenGL not found - some applications may not be built") +ENDIF(NOT OPENGL_FOUND) + +FIND_PACKAGE(GLUT) +IF(NOT GLUT_FOUND) + MESSAGE("GLUT not found - some applications may not be built") +ENDIF(NOT GLUT_FOUND) + +FIND_PATH(FFTW_INCLUDE_DIR NAMES rfftw.h drfftw.h fftw.h dfftw.h) +FIND_LIBRARY(RFFTW_LIBRARIES NAMES rfftw drfftw) +FIND_LIBRARY(FFTW_LIBRARIES NAMES fftw dfftw) +IF(NOT FFTW_INCLUDE_DIR OR NOT FFTW_LIBRARIES OR NOT RFFTW_LIBRARIES) + MESSAGE("FFTW not found - Smoke demo will not be built") +ENDIF(NOT FFTW_INCLUDE_DIR OR NOT FFTW_LIBRARIES OR NOT RFFTW_LIBRARIES) + +FIND_FILE(OSC_INCLUDE_DIR oscpack) +FIND_LIBRARY(OSC_LIBRARIES oscpack) +IF(NOT OSC_INCLUDE_DIR OR NOT OSC_LIBRARIES) + MESSAGE("Oscpack not found - OSC application will not be built") +ENDIF(NOT OSC_INCLUDE_DIR OR NOT OSC_LIBRARIES) + +INCLUDE_DIRECTORIES(${OPENCV_INC} ${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR} include tinyxml) add_subdirectory (tinyxml) add_subdirectory (src) +add_subdirectory (demos)