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

Reply via email to