Revision: 43527
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43527
Author:   campbellbarton
Date:     2012-01-19 11:31:31 +0000 (Thu, 19 Jan 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r43482:43524

Revision Links:
--------------
    
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43482

Modified Paths:
--------------
    branches/bmesh/blender/intern/cycles/kernel/kernel_shader.h
    branches/bmesh/blender/intern/cycles/render/light.cpp
    branches/bmesh/blender/intern/ghost/GHOST_ISystem.h
    branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.cpp
    branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.h
    branches/bmesh/blender/intern/ghost/intern/GHOST_SystemX11.cpp
    branches/bmesh/blender/intern/ghost/test/CMakeLists.txt
    branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_image.h
    branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/brush.c
    branches/bmesh/blender/source/blender/blenkernel/intern/image_gen.c
    branches/bmesh/blender/source/blender/blenkernel/intern/node.c
    branches/bmesh/blender/source/blender/blenkernel/intern/sequencer.c
    branches/bmesh/blender/source/blender/blenlib/BLI_math_color.h
    branches/bmesh/blender/source/blender/blenlib/intern/math_color.c
    branches/bmesh/blender/source/blender/blenlib/intern/math_color_inline.c
    
branches/bmesh/blender/source/blender/editors/animation/anim_channels_defines.c
    branches/bmesh/blender/source/blender/editors/include/UI_resources.h
    branches/bmesh/blender/source/blender/editors/interface/interface_intern.h
    
branches/bmesh/blender/source/blender/editors/interface/interface_templates.c
    branches/bmesh/blender/source/blender/editors/interface/interface_widgets.c
    branches/bmesh/blender/source/blender/editors/object/object_bake.c
    branches/bmesh/blender/source/blender/editors/sculpt_paint/CMakeLists.txt
    branches/bmesh/blender/source/blender/editors/sculpt_paint/paint_intern.h
    branches/bmesh/blender/source/blender/editors/sculpt_paint/paint_stroke.c
    branches/bmesh/blender/source/blender/editors/sculpt_paint/sculpt.c
    branches/bmesh/blender/source/blender/editors/sculpt_paint/sculpt_intern.h
    branches/bmesh/blender/source/blender/editors/space_clip/clip_graph_draw.c
    branches/bmesh/blender/source/blender/editors/space_clip/clip_graph_ops.c
    branches/bmesh/blender/source/blender/editors/space_clip/clip_utils.c
    branches/bmesh/blender/source/blender/editors/space_clip/space_clip.c
    branches/bmesh/blender/source/blender/editors/space_clip/tracking_ops.c
    
branches/bmesh/blender/source/blender/editors/space_outliner/outliner_intern.h
    branches/bmesh/blender/source/blender/editors/space_outliner/outliner_ops.c
    
branches/bmesh/blender/source/blender/editors/space_outliner/outliner_select.c
    
branches/bmesh/blender/source/blender/editors/space_sequencer/sequencer_draw.c
    branches/bmesh/blender/source/blender/editors/space_view3d/drawarmature.c
    branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c
    branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c
    branches/bmesh/blender/source/blender/editors/space_view3d/view3d_draw.c
    
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c
    branches/bmesh/blender/source/blender/editors/transform/transform_generics.c
    branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c
    branches/bmesh/blender/source/blender/imbuf/intern/divers.c
    branches/bmesh/blender/source/blender/makesdna/DNA_tracking_types.h
    branches/bmesh/blender/source/blender/makesrna/intern/SConscript
    branches/bmesh/blender/source/blender/makesrna/intern/rna_controller.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_object_api.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_scene.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_sculpt_paint.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_sensor.c
    branches/bmesh/blender/source/blender/python/intern/bpy_rna.c
    branches/bmesh/blender/source/blender/render/intern/source/render_texture.c
    branches/bmesh/blender/source/blender/render/intern/source/rendercore.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_operators.c
    branches/bmesh/blender/source/tests/bl_mesh_modifiers.py

Added Paths:
-----------
    branches/bmesh/blender/source/blender/editors/sculpt_paint/paint_cursor.c

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/
    
branches/bmesh/blender/release/scripts/startup/bl_ui/properties_paint_common.py
    branches/bmesh/blender/source/blender/editors/space_outliner/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/branches/soc-2011-cucumber:37517,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801
/trunk/blender:39992-43482
   + 
/branches/soc-2011-cucumber:37517,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801
/trunk/blender:39992-43524

Modified: branches/bmesh/blender/intern/cycles/kernel/kernel_shader.h
===================================================================
--- branches/bmesh/blender/intern/cycles/kernel/kernel_shader.h 2012-01-19 
11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/cycles/kernel/kernel_shader.h 2012-01-19 
11:31:31 UTC (rev 43527)
@@ -151,7 +151,7 @@
                        instanced = true;
                else
 #endif
-                       sd->object = -sd->object-1;
+                       sd->object = ~sd->object;
 #ifdef __INSTANCING__
        }
 #endif

Modified: branches/bmesh/blender/intern/cycles/render/light.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/render/light.cpp       2012-01-19 
11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/cycles/render/light.cpp       2012-01-19 
11:31:31 UTC (rev 43527)
@@ -109,7 +109,7 @@
 
        /* triangles */
        size_t offset = 0;
-       size_t j = 0;
+       int j = 0;
 
        foreach(Object *object, scene->objects) {
                Mesh *mesh = object->mesh;
@@ -128,8 +128,11 @@
                /* sum area */
                if(have_emission) {
                        Transform tfm = object->tfm;
-                       int object_id = (mesh->transform_applied)? -j-1: j;
+                       int object_id = j;
 
+                       if(mesh->transform_applied)
+                               object_id = ~object_id;
+
                        for(size_t i = 0; i < mesh->triangles.size(); i++) {
                                Shader *shader = 
scene->shaders[mesh->shader[i]];
 
@@ -161,9 +164,9 @@
        if(!multi_light) {
                float lightarea = (totarea > 0.0f)? 
totarea/scene->lights.size(): 1.0f;
 
-               for(size_t i = 0; i < scene->lights.size(); i++, offset++) {
+               for(int i = 0; i < scene->lights.size(); i++, offset++) {
                        distribution[offset].x = totarea;
-                       distribution[offset].y = __int_as_float(-i-1);
+                       distribution[offset].y = __int_as_float(~(int)i);
                        distribution[offset].z = 1.0f;
                        distribution[offset].w = scene->lights[i]->size;
                        totarea += lightarea;

Modified: branches/bmesh/blender/intern/ghost/GHOST_ISystem.h
===================================================================
--- branches/bmesh/blender/intern/ghost/GHOST_ISystem.h 2012-01-19 11:27:00 UTC 
(rev 43526)
+++ branches/bmesh/blender/intern/ghost/GHOST_ISystem.h 2012-01-19 11:31:31 UTC 
(rev 43527)
@@ -68,13 +68,28 @@
  * <li> Access to the state of the mouse buttons and the keyboard.</li>
  * <li> Menus for windows with events generated when they are accessed (this is
  *     work in progress).</li>
+ * <li> Video mode switching.</li>
+ * <li> Copy/Paste buffers.</li>
+ * <li> System paths.</li>
  * </ul>
  * Font management has been moved to a separate library.
  *
  * \section platforms Platforms
  *
+ * GHOST supports the following platforms:
+ * <ul>
+ * <li> OSX Cocoa.</li>
+ * <li> OSX Carbon.</li>
+ * <li> Windows.</li>
+ * <li> X11.</li>
+ * <li> SDL1.3 (experemental).</li>
+ * <li> NULL (headless mode).</li>
+ * </ul>
+ *
  * \section Building GHOST
  *
+ * GHOST is not build standalone however there are tests in intern/ghost/test
+ *
  * \section interface Interface
  * GHOST has two programming interfaces:
  * <ul>

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.cpp
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.cpp    
2012-01-19 11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.cpp    
2012-01-19 11:31:31 UTC (rev 43527)
@@ -137,6 +137,37 @@
        NDOF_BUTTON_MINUS
 };
 
+// latest HW: button-compatible with SpacePilotPro, just fewer of them
+static const NDOF_ButtonT SpaceMousePro_HID_map[] = {
+       NDOF_BUTTON_MENU,
+       NDOF_BUTTON_FIT,
+       NDOF_BUTTON_TOP,
+       NDOF_BUTTON_NONE, // left
+       NDOF_BUTTON_RIGHT,
+       NDOF_BUTTON_FRONT,
+       NDOF_BUTTON_NONE, // bottom
+       NDOF_BUTTON_NONE, // back
+       NDOF_BUTTON_ROLL_CW,
+       NDOF_BUTTON_NONE, // roll ccw
+       NDOF_BUTTON_NONE, // iso 1
+       NDOF_BUTTON_NONE, // iso 2
+       NDOF_BUTTON_1,
+       NDOF_BUTTON_2,
+       NDOF_BUTTON_3,
+       NDOF_BUTTON_4,
+       NDOF_BUTTON_NONE, // 5
+       NDOF_BUTTON_NONE, // 6
+       NDOF_BUTTON_NONE, // 7
+       NDOF_BUTTON_NONE, // 8
+       NDOF_BUTTON_NONE, // 9
+       NDOF_BUTTON_NONE, // 10
+       NDOF_BUTTON_NONE, // esc key
+       NDOF_BUTTON_NONE, // alt key
+       NDOF_BUTTON_NONE, // shift key
+       NDOF_BUTTON_NONE, // ctrl key
+       NDOF_BUTTON_ROTATE,
+};
+
 /* this is the older SpacePilot (sans Pro)
  * thanks to polosson for the info in this table */
 static const NDOF_ButtonT SpacePilot_HID_map[] = {
@@ -210,6 +241,12 @@
                                        m_deviceType = NDOF_SpacePilotPro;
                                        m_buttonCount = 31;
                                        break;
+                               case 0xC62B:
+                                       puts("ndof: using SpaceMousePro");
+                                       m_deviceType = NDOF_SpaceMousePro;
+                                       m_buttonCount = 27;
+                                       // ^^ actually has 15 buttons, but 
their HID codes range from 0 to 26
+                                       break;
 
                                // -- older devices --
                                case 0xC625:
@@ -237,6 +274,8 @@
        else {
                m_buttonMask = ~(-1 << m_buttonCount);
 
+               // special case for SpaceMousePro? maybe...
+
 #ifdef DEBUG_NDOF_BUTTONS
                printf("ndof: %d buttons -> hex:%X\n", m_buttonCount, 
m_buttonMask);
 #endif
@@ -261,6 +300,16 @@
 
 void GHOST_NDOFManager::sendButtonEvent(NDOF_ButtonT button, bool press, 
GHOST_TUns64 time, GHOST_IWindow* window)
 {
+       if (button == NDOF_BUTTON_NONE) {
+               // just being exceptionally cautious...
+               // air-tight button masking and proper function key emulation
+               // should guarantee we never get to this point
+#ifdef DEBUG_NDOF_BUTTONS
+               printf("discarding NDOF_BUTTON_NONE (should not escape the NDOF 
manager)\n");
+#endif
+               return;
+       }
+
        GHOST_EventNDOFButton* event = new GHOST_EventNDOFButton(time, window);
        GHOST_TEventNDOFButtonData* data = (GHOST_TEventNDOFButtonData*) 
event->getData();
 
@@ -317,6 +366,15 @@
                                default: 
sendButtonEvent(SpacePilotPro_HID_map[button_number], press, time, window);
                        }
                        break;
+               case NDOF_SpaceMousePro:
+                       switch (button_number) {
+                               case 22: sendKeyEvent(GHOST_kKeyEsc, press, 
time, window); break;
+                               case 23: sendKeyEvent(GHOST_kKeyLeftAlt, press, 
time, window); break;
+                               case 24: sendKeyEvent(GHOST_kKeyLeftShift, 
press, time, window); break;
+                               case 25: sendKeyEvent(GHOST_kKeyLeftControl, 
press, time, window); break;
+                               default: 
sendButtonEvent(SpaceMousePro_HID_map[button_number], press, time, window);
+                       }
+                       break;
                case NDOF_SpacePilot:
                        switch (button_number) {
                                case 10: sendKeyEvent(GHOST_kKeyEsc, press, 
time, window); break;

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.h
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.h      
2012-01-19 11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_NDOFManager.h      
2012-01-19 11:31:31 UTC (rev 43527)
@@ -37,6 +37,7 @@
        NDOF_SpaceNavigator,
        NDOF_SpaceExplorer,
        NDOF_SpacePilotPro,
+       NDOF_SpaceMousePro,
 
        // older devices
        NDOF_SpacePilot

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_SystemX11.cpp      
2012-01-19 11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_SystemX11.cpp      
2012-01-19 11:31:31 UTC (rev 43527)
@@ -422,6 +422,18 @@
        return anyProcessed;
 }
 
+
+#ifdef WITH_X11_XINPUT
+/* set currently using tablet mode (stylus or eraser) depending on device ID */
+static void setTabletMode(GHOST_WindowX11 * window, XID deviceid)
+{
+       if(deviceid == window->GetXTablet().StylusID)
+               window->GetXTablet().CommonData.Active= GHOST_kTabletModeStylus;
+       else if(deviceid == window->GetXTablet().EraserID)
+               window->GetXTablet().CommonData.Active= GHOST_kTabletModeEraser;
+}
+#endif /* WITH_X11_XINPUT */
+
        void
 GHOST_SystemX11::processEvent(XEvent *xe)
 {
@@ -824,6 +836,12 @@
                        if(xe->type == window->GetXTablet().MotionEvent) 
                        {
                                XDeviceMotionEvent* data = 
(XDeviceMotionEvent*)xe;
+
+                               /* stroke might begin without leading ProxyIn 
event,
+                                * this happens when window is opened when 
stylus is already hovering
+                                * around tablet surface */
+                               setTabletMode(window, data->deviceid);
+
                                window->GetXTablet().CommonData.Pressure= 
                                        
data->axis_data[2]/((float)window->GetXTablet().PressureLevels);
                        
@@ -837,10 +855,8 @@
                        else if(xe->type == window->GetXTablet().ProxInEvent) 
                        {
                                XProximityNotifyEvent* data = 
(XProximityNotifyEvent*)xe;
-                               if(data->deviceid == 
window->GetXTablet().StylusID)
-                                       window->GetXTablet().CommonData.Active= 
GHOST_kTabletModeStylus;
-                               else if(data->deviceid == 
window->GetXTablet().EraserID)
-                                       window->GetXTablet().CommonData.Active= 
GHOST_kTabletModeEraser;
+
+                               setTabletMode(window, data->deviceid);
                        }
                        else if(xe->type == window->GetXTablet().ProxOutEvent)
                                window->GetXTablet().CommonData.Active= 
GHOST_kTabletModeNone;

Modified: branches/bmesh/blender/intern/ghost/test/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/ghost/test/CMakeLists.txt     2012-01-19 
11:27:00 UTC (rev 43526)
+++ branches/bmesh/blender/intern/ghost/test/CMakeLists.txt     2012-01-19 
11:31:31 UTC (rev 43527)
@@ -35,6 +35,25 @@
 
 
 # -----------------------------------------------------------------------------
+# Defines
+
+# set the endian define
+if(MSVC)
+       # for some reason this fails on msvc
+       add_definitions(-D__LITTLE_ENDIAN__)
+else()
+       include(TestBigEndian)
+       test_big_endian(_SYSTEM_BIG_ENDIAN)
+       if(_SYSTEM_BIG_ENDIAN)
+               add_definitions(-D__BIG_ENDIAN__)
+       else()
+               add_definitions(-D__LITTLE_ENDIAN__)
+       endif()
+       unset(_SYSTEM_BIG_ENDIAN)
+endif()
+
+
+# -----------------------------------------------------------------------------
 # Libraries
 
 # ghost
@@ -74,6 +93,7 @@
                "../../../source/blender/blenlib/intern/fileops.c"

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to