Revision: 47247 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47247 Author: nicholas_rishel Date: 2012-05-30 22:08:01 +0000 (Wed, 30 May 2012) Log Message: ----------- Adds recognition for Windows 7 Touch Events and a CMake WITH_INPUT_TOUCH (default off).
When INPUT_TOUCH is on, it defines _WIN32_WINNT as 0x601 (Windows 7). This is a short-term solution to enable usage for the Windows Touch API. Modified Paths: -------------- branches/soc-2012-swiss_cheese/CMakeLists.txt branches/soc-2012-swiss_cheese/intern/ghost/CMakeLists.txt branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.cpp branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.h branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_TaskbarWin32.h branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.cpp branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.h Modified: branches/soc-2012-swiss_cheese/CMakeLists.txt =================================================================== --- branches/soc-2012-swiss_cheese/CMakeLists.txt 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/CMakeLists.txt 2012-05-30 22:08:01 UTC (rev 47247) @@ -219,6 +219,9 @@ # Misc option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON) +if(WIN32) + option(WITH_INPUT_TOUCH "Enable Touch input (Windows 7 only)" OFF) +endif() option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON) if(UNIX AND NOT APPLE) option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON) @@ -1849,6 +1852,7 @@ info_cfg_option(WITH_FFTW3) info_cfg_option(WITH_INTERNATIONAL) info_cfg_option(WITH_INPUT_NDOF) + info_cfg_option(WITH_INPUT_TOUCH) info_cfg_option(WITH_CYCLES) info_cfg_text("Compiler Options:") Modified: branches/soc-2012-swiss_cheese/intern/ghost/CMakeLists.txt =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/CMakeLists.txt 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/CMakeLists.txt 2012-05-30 22:08:01 UTC (rev 47247) @@ -108,6 +108,10 @@ ) endif() +if(WITH_INPUT_TOUCH) + add_definitions(-DWITH_INPUT_TOUCH) +endif() + if(WITH_HEADLESS OR WITH_GHOST_SDL) if(WITH_HEADLESS) list(APPEND SRC Modified: branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.cpp =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.cpp 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.cpp 2012-05-30 22:08:01 UTC (rev 47247) @@ -37,7 +37,7 @@ * @date May 7, 2001 */ -#ifdef BF_GHOST_DEBUG +#ifdef WITH_GHOST_DEBUG #include <iostream> #endif @@ -986,6 +986,15 @@ ((GHOST_WindowWin32 *)window)->processWin32TabletInitEvent(); break; //////////////////////////////////////////////////////////////////////// + // Touch events, processed + //////////////////////////////////////////////////////////////////////// +#ifdef WITH_INPUT_TOUCH + case WM_TOUCHDOWN: + case WM_TOUCHUP: + case WM_TOUCHMOVE: + break; +#endif + //////////////////////////////////////////////////////////////////////// // Mouse events, processed //////////////////////////////////////////////////////////////////////// case WM_LBUTTONDOWN: Modified: branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.h =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.h 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_SystemWin32.h 2012-05-30 22:08:01 UTC (rev 47247) @@ -37,11 +37,42 @@ #error WIN32 only! #endif // WIN32 -#define _WIN32_WINNT 0x501 // require Windows XP or newer +#ifdef WITH_INPUT_TOUCH +# define _WIN32_WINNT 0x0601 // require Windows 7 or newer +#else +# define _WIN32_WINNT 0x501 // require Windows XP or newer +#endif #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <ole2.h> // for drag-n-drop +#ifdef WITH_INPUT_TOUCH +# ifndef SM_DIGITIZER +# define SM_DIGITIZER 94 +# endif // SM_DIGITIZER +# ifndef TABLET_CONFIG_NONE +# define TABLET_CONFIG_NONE 0x00000000 +# endif // TABLET_CONFIG_NONE +# ifndef NID_INTEGRATED_TOUCH +# define NID_INTEGRATED_TOUCH 0x00000001 +# endif // NID_INTEGRATED_TOUCH +# ifndef NID_EXTERNAL_TOUCH +# define NID_EXTERNAL_TOUCH 0x00000002 +# endif // NID_EXTERNAL_TOUCH +# ifndef NID_INTEGRATED_PEN +# define NID_INTEGRATED_PEN 0x00000004 +# endif // NID_INTEGRATED_PEN +# ifndef NID_EXTERNAL_PEN +# define NID_EXTERNAL_PEN 0x00000008 +# endif // NID_EXTERNAL_PEN +# ifndef NID_MULTI_INPUT +# define NID_MULTI_INPUT 0x00000040 +# endif // NID_MULTI_INPUT +# ifndef NID_READY +# define NID_READY 0x00000080 +# endif // NID_READY +#endif //WITH_INPUT_TOUCH + #include "GHOST_System.h" #if defined(__CYGWIN32__) Modified: branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_TaskbarWin32.h =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_TaskbarWin32.h 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_TaskbarWin32.h 2012-05-30 22:08:01 UTC (rev 47247) @@ -8,7 +8,11 @@ #error WIN32 only! #endif // WIN32 -#define _WIN32_WINNT 0x501 // require Windows XP or newer +#ifdef WITH_INPUT_TOUCH +# define _WIN32_WINNT 0x0601 // require Windows 7 or newer +#else +# define _WIN32_WINNT 0x501 // require Windows XP or newer +#endif #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <shlobj.h> Modified: branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.cpp =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.cpp 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.cpp 2012-05-30 22:08:01 UTC (rev 47247) @@ -275,6 +275,12 @@ // Store a pointer to this class in the window structure ::SetWindowLongPtr(m_hWnd, GWL_USERDATA, (LONG_PTR) this); +#ifdef WITH_INPUT_TOUCH + if (GetSystemMetrics(SM_DIGITIZER) & NID_MULTI_INPUT){ + RegisterTouchWindow(m_hWnd, 0); + } +#endif + // Store the device context m_hDC = ::GetDC(m_hWnd); Modified: branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.h =================================================================== --- branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.h 2012-05-30 21:15:17 UTC (rev 47246) +++ branches/soc-2012-swiss_cheese/intern/ghost/intern/GHOST_WindowWin32.h 2012-05-30 22:08:01 UTC (rev 47247) @@ -40,7 +40,11 @@ #include "GHOST_Window.h" #include "GHOST_TaskbarWin32.h" -#define _WIN32_WINNT 0x501 // require Windows XP or newer +#ifdef WITH_INPUT_TOUCH +# define _WIN32_WINNT 0x0601 // require Windows 7 or newer +#else +# define _WIN32_WINNT 0x501 // require Windows XP or newer +#endif #define WIN32_LEAN_AND_MEAN #include <windows.h> _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs