Merge from trunk -r 24758:25003.
authorArystanbek Dyussenov <arystan.d@gmail.com>
Sun, 29 Nov 2009 18:54:37 +0000 (18:54 +0000)
committerArystanbek Dyussenov <arystan.d@gmail.com>
Sun, 29 Nov 2009 18:54:37 +0000 (18:54 +0000)
364 files changed:
CMakeLists.txt
extern/bullet2/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionShape.h
extern/glew/make/msvc_9_0/glew.vcproj
intern/audaspace/make/msvc_9_0/audaspace.vcproj
intern/ghost/intern/GHOST_SystemX11.cpp
intern/ghost/intern/GHOST_SystemX11.h
intern/ghost/intern/GHOST_Window.cpp
intern/ghost/intern/GHOST_WindowCocoa.mm
projectfiles_vc9/blender/blender.sln
projectfiles_vc9/blender/blender.vcproj
projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj
projectfiles_vc9/blender/gpu/BL_gpu.vcproj
projectfiles_vc9/blender/imbuf/BL_imbuf.vcproj
projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj
projectfiles_vc9/blender/makesrna/RNA_rna.vcproj
projectfiles_vc9/blender/windowmanager/windowmanager.vcproj
projectfiles_vc9/gameengine/blenderhook/KX_blenderhook.vcproj
projectfiles_vc9/gameengine/converter/KX_converter.vcproj
projectfiles_vc9/gameengine/gameplayer/common/GP_common.vcproj
projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj
projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj
projectfiles_vc9/gameengine/rasterizer/RAS_rasterizer.vcproj
projectfiles_vc9/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj
release/VERSION
release/datafiles/blenderbuttons
release/datafiles/splash.png
release/scripts/io/engine_render_pov.py
release/scripts/io/export_3ds.py
release/scripts/io/export_fbx.py
release/scripts/io/export_mdd.py
release/scripts/io/export_obj.py
release/scripts/io/export_ply.py
release/scripts/io/export_x3d.py
release/scripts/io/import_anim_bvh.py
release/scripts/io/import_scene_3ds.py
release/scripts/io/import_scene_obj.py
release/scripts/io/netrender/ui.py
release/scripts/modules/bpy/__init__.py
release/scripts/modules/bpy/utils.py
release/scripts/modules/bpy_types.py
release/scripts/modules/rigify.py [new file with mode: 0644]
release/scripts/modules/rna_prop_ui.py
release/scripts/op/add_mesh_torus.py
release/scripts/op/mesh_skin.py
release/scripts/op/object.py [new file with mode: 0644]
release/scripts/op/presets.py
release/scripts/op/uvcalc_smart_project.py
release/scripts/op/wm.py
release/scripts/presets/render/HDTV_1080p.py
release/scripts/presets/render/HDTV_720p.py
release/scripts/presets/render/TV_PAL.py
release/scripts/presets/render/TV_PAL_16_colon_9.py
release/scripts/presets/sss/apple.py [moved from release/scripts/presets/sss/Apple.py with 100% similarity]
release/scripts/presets/sss/chicken.py [moved from release/scripts/presets/sss/Chicken.py with 100% similarity]
release/scripts/presets/sss/cream.py [moved from release/scripts/presets/sss/Cream.py with 100% similarity]
release/scripts/presets/sss/ketchup.py [moved from release/scripts/presets/sss/Ketchup.py with 100% similarity]
release/scripts/presets/sss/marble.py [moved from release/scripts/presets/sss/Marble.py with 100% similarity]
release/scripts/presets/sss/potato.py [moved from release/scripts/presets/sss/Potato.py with 100% similarity]
release/scripts/presets/sss/skim_milk.py [moved from release/scripts/presets/sss/Skin_Milk.py with 100% similarity]
release/scripts/presets/sss/skin1.py [moved from release/scripts/presets/sss/Skin1.py with 100% similarity]
release/scripts/presets/sss/skin2.py [moved from release/scripts/presets/sss/Skin2.py with 100% similarity]
release/scripts/presets/sss/whole_milk.py [moved from release/scripts/presets/sss/Whole_Milk.py with 100% similarity]
release/scripts/templates/operator.py
release/scripts/ui/properties_data_armature.py
release/scripts/ui/properties_data_bone.py
release/scripts/ui/properties_data_camera.py
release/scripts/ui/properties_data_curve.py
release/scripts/ui/properties_data_empty.py
release/scripts/ui/properties_data_lamp.py
release/scripts/ui/properties_data_lattice.py
release/scripts/ui/properties_data_mesh.py
release/scripts/ui/properties_data_metaball.py
release/scripts/ui/properties_data_modifier.py
release/scripts/ui/properties_game.py
release/scripts/ui/properties_material.py
release/scripts/ui/properties_object.py
release/scripts/ui/properties_object_constraint.py
release/scripts/ui/properties_particle.py
release/scripts/ui/properties_physics_cloth.py
release/scripts/ui/properties_physics_common.py
release/scripts/ui/properties_physics_field.py
release/scripts/ui/properties_physics_fluid.py
release/scripts/ui/properties_physics_smoke.py
release/scripts/ui/properties_physics_softbody.py
release/scripts/ui/properties_render.py
release/scripts/ui/properties_scene.py
release/scripts/ui/properties_texture.py
release/scripts/ui/properties_world.py
release/scripts/ui/space_buttons.py
release/scripts/ui/space_console.py
release/scripts/ui/space_filebrowser.py
release/scripts/ui/space_image.py
release/scripts/ui/space_info.py
release/scripts/ui/space_logic.py
release/scripts/ui/space_node.py
release/scripts/ui/space_outliner.py
release/scripts/ui/space_sequencer.py
release/scripts/ui/space_text.py
release/scripts/ui/space_time.py
release/scripts/ui/space_userpref.py
release/scripts/ui/space_view3d.py
release/scripts/ui/space_view3d_toolbar.py
release/text/blender.html [deleted file]
release/text/readme.html [new file with mode: 0644]
source/blender/blenkernel/BKE_DerivedMesh.h
source/blender/blenkernel/BKE_action.h
source/blender/blenkernel/BKE_constraint.h
source/blender/blenkernel/BKE_context.h
source/blender/blenkernel/BKE_key.h
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/BKE_particle.h
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/action.c
source/blender/blenkernel/intern/anim_sys.c
source/blender/blenkernel/intern/armature.c
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/context.c
source/blender/blenkernel/intern/fcurve.c
source/blender/blenkernel/intern/fmodifier.c
source/blender/blenkernel/intern/key.c
source/blender/blenkernel/intern/modifier.c
source/blender/blenkernel/intern/node.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/particle.c
source/blender/blenkernel/intern/particle_system.c
source/blender/blenkernel/intern/scene.c
source/blender/blenkernel/intern/seqeffects.c
source/blender/blenkernel/intern/sequence.c
source/blender/blenkernel/intern/softbody.c
source/blender/blenlib/BLI_listbase.h
source/blender/blenlib/BLI_math_geom.h
source/blender/blenlib/BLI_math_matrix.h
source/blender/blenlib/BLI_math_vector.h
source/blender/blenlib/intern/listbase.c
source/blender/blenlib/intern/math_geom.c
source/blender/blenlib/intern/math_matrix.c
source/blender/blenlib/intern/math_vector.c
source/blender/blenlib/intern/math_vector_inline.c
source/blender/blenloader/intern/readfile.c
source/blender/collada/DocumentImporter.cpp
source/blender/editors/animation/anim_deps.c
source/blender/editors/animation/anim_filter.c
source/blender/editors/animation/anim_intern.h
source/blender/editors/animation/anim_ops.c
source/blender/editors/animation/drivers.c
source/blender/editors/animation/fmodifier_ui.c
source/blender/editors/animation/keyframes_edit.c
source/blender/editors/animation/keyframing.c
source/blender/editors/animation/keyingsets.c
source/blender/editors/armature/armature_intern.h
source/blender/editors/armature/armature_ops.c
source/blender/editors/armature/editarmature.c
source/blender/editors/armature/editarmature_generate.c
source/blender/editors/armature/editarmature_sketch.c
source/blender/editors/armature/meshlaplacian.c
source/blender/editors/armature/meshlaplacian.h
source/blender/editors/armature/poseSlide.c
source/blender/editors/armature/poseobject.c
source/blender/editors/curve/curve_ops.c
source/blender/editors/curve/editcurve.c
source/blender/editors/datafiles/blenderbuttons.c
source/blender/editors/datafiles/prvicons.c
source/blender/editors/datafiles/splash.png.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/include/ED_armature.h
source/blender/editors/include/ED_curve.h
source/blender/editors/include/ED_mball.h
source/blender/editors/include/ED_mesh.h
source/blender/editors/include/ED_object.h
source/blender/editors/include/ED_screen.h
source/blender/editors/include/ED_screen_types.h
source/blender/editors/include/ED_transform.h
source/blender/editors/include/UI_icons.h
source/blender/editors/include/UI_interface.h
source/blender/editors/interface/interface.c
source/blender/editors/interface/interface_anim.c
source/blender/editors/interface/interface_draw.c
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_intern.h
source/blender/editors/interface/interface_layout.c
source/blender/editors/interface/interface_regions.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/interface/interface_utils.c
source/blender/editors/interface/interface_widgets.c
source/blender/editors/mesh/editmesh.c
source/blender/editors/mesh/editmesh_mods.c
source/blender/editors/mesh/mesh_ops.c
source/blender/editors/mesh/meshtools.c
source/blender/editors/metaball/mball_edit.c
source/blender/editors/object/object_add.c
source/blender/editors/object/object_constraint.c
source/blender/editors/object/object_edit.c
source/blender/editors/object/object_hook.c
source/blender/editors/object/object_intern.h
source/blender/editors/object/object_lattice.c
source/blender/editors/object/object_modifier.c
source/blender/editors/object/object_ops.c
source/blender/editors/object/object_relations.c
source/blender/editors/object/object_shapekey.c
source/blender/editors/object/object_transform.c
source/blender/editors/object/object_vgroup.c
source/blender/editors/physics/particle_object.c
source/blender/editors/physics/physics_intern.h
source/blender/editors/physics/physics_ops.c
source/blender/editors/physics/physics_pointcache.c
source/blender/editors/screen/area.c
source/blender/editors/screen/glutil.c
source/blender/editors/screen/screen_context.c
source/blender/editors/screen/screen_edit.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/space_action/action_edit.c
source/blender/editors/space_action/action_header.c
source/blender/editors/space_action/action_intern.h
source/blender/editors/space_action/action_ops.c
source/blender/editors/space_action/action_select.c
source/blender/editors/space_action/space_action.c
source/blender/editors/space_buttons/space_buttons.c
source/blender/editors/space_console/space_console.c
source/blender/editors/space_file/file_intern.h
source/blender/editors/space_file/file_ops.c
source/blender/editors/space_file/file_panels.c
source/blender/editors/space_file/filesel.c
source/blender/editors/space_file/space_file.c
source/blender/editors/space_graph/graph_buttons.c
source/blender/editors/space_graph/graph_draw.c
source/blender/editors/space_graph/graph_edit.c
source/blender/editors/space_graph/graph_header.c
source/blender/editors/space_graph/graph_intern.h
source/blender/editors/space_graph/graph_ops.c
source/blender/editors/space_graph/space_graph.c
source/blender/editors/space_image/space_image.c
source/blender/editors/space_info/space_info.c
source/blender/editors/space_logic/logic_window.c
source/blender/editors/space_logic/space_logic.c
source/blender/editors/space_nla/nla_buttons.c
source/blender/editors/space_nla/nla_channels.c
source/blender/editors/space_nla/nla_edit.c
source/blender/editors/space_nla/nla_header.c
source/blender/editors/space_nla/nla_intern.h
source/blender/editors/space_nla/nla_ops.c
source/blender/editors/space_nla/space_nla.c
source/blender/editors/space_node/space_node.c
source/blender/editors/space_outliner/outliner.c
source/blender/editors/space_outliner/outliner_ops.c
source/blender/editors/space_outliner/space_outliner.c
source/blender/editors/space_script/script_edit.c
source/blender/editors/space_script/space_script.c
source/blender/editors/space_sequencer/sequencer_add.c
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/editors/space_sequencer/sequencer_intern.h
source/blender/editors/space_sequencer/space_sequencer.c
source/blender/editors/space_sound/space_sound.c
source/blender/editors/space_text/space_text.c
source/blender/editors/space_text/text_ops.c
source/blender/editors/space_time/space_time.c
source/blender/editors/space_userpref/space_userpref.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/space_view3d/space_view3d.c
source/blender/editors/space_view3d/view3d_buttons.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_header.c
source/blender/editors/space_view3d/view3d_intern.h
source/blender/editors/space_view3d/view3d_ops.c
source/blender/editors/space_view3d/view3d_select.c
source/blender/editors/space_view3d/view3d_snap.c
source/blender/editors/space_view3d/view3d_toolbar.c
source/blender/editors/space_view3d/view3d_view.c
source/blender/editors/transform/transform.c
source/blender/editors/transform/transform.h
source/blender/editors/transform/transform_constraints.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_generics.c
source/blender/editors/transform/transform_ops.c
source/blender/editors/transform/transform_snap.c
source/blender/editors/uvedit/uvedit_ops.c
source/blender/makesdna/DNA_anim_types.h
source/blender/makesdna/DNA_armature_types.h
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesdna/DNA_particle_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesdna/DNA_sequence_types.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesdna/DNA_windowmanager_types.h
source/blender/makesrna/RNA_access.h
source/blender/makesrna/RNA_define.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_armature.c
source/blender/makesrna/intern/rna_constraint.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_define.c
source/blender/makesrna/intern/rna_fcurve.c
source/blender/makesrna/intern/rna_internal_types.h
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_object_force.c
source/blender/makesrna/intern/rna_particle.c
source/blender/makesrna/intern/rna_pose.c
source/blender/makesrna/intern/rna_rna.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_scene_api.c
source/blender/makesrna/intern/rna_sculpt_paint.c
source/blender/makesrna/intern/rna_sequence.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_ui_api.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/makesrna/intern/rna_wm.c
source/blender/python/generic/vector.c
source/blender/python/intern/bpy_operator.c
source/blender/python/intern/bpy_operator_wrap.c
source/blender/python/intern/bpy_rna.c
source/blender/python/intern/bpy_util.c
source/blender/quicktime/apple/qtkit_export.m
source/blender/render/SConscript
source/blender/render/intern/source/convertblender.c
source/blender/windowmanager/WM_api.h
source/blender/windowmanager/WM_types.h
source/blender/windowmanager/intern/wm_event_system.c
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_init_exit.c
source/blender/windowmanager/intern/wm_operators.c
source/blender/windowmanager/intern/wm_window.c
source/blender/windowmanager/wm_event_system.h
source/blenderplayer/bad_level_call_stubs/stubs.c
source/creator/creator.c
source/gameengine/Converter/BL_BlenderDataConversion.cpp
source/gameengine/Converter/BL_MeshDeformer.cpp
source/gameengine/Converter/BL_MeshDeformer.h
source/gameengine/Converter/BL_ModifierDeformer.cpp
source/gameengine/Converter/BL_ModifierDeformer.h
source/gameengine/Converter/BL_ShapeDeformer.cpp
source/gameengine/Converter/BL_ShapeDeformer.h
source/gameengine/Converter/BL_SkinDeformer.cpp
source/gameengine/Converter/BL_SkinDeformer.h
source/gameengine/Converter/BL_SkinMeshObject.cpp [deleted file]
source/gameengine/Converter/BL_SkinMeshObject.h [deleted file]
source/gameengine/Converter/KX_SoftBodyDeformer.cpp [new file with mode: 0644]
source/gameengine/Converter/KX_SoftBodyDeformer.h [new file with mode: 0644]
source/gameengine/GameLogic/SCA_PythonController.cpp
source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp
source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
source/gameengine/Ketsji/KX_BlenderMaterial.cpp
source/gameengine/Ketsji/KX_BlenderMaterial.h
source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
source/gameengine/Ketsji/KX_KetsjiEngine.cpp
source/gameengine/Ketsji/KX_Scene.cpp
source/gameengine/Ketsji/KX_Scene.h
source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
source/gameengine/Physics/Bullet/CcdPhysicsController.h
source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
source/gameengine/PyDoc/GameTypes.py
source/gameengine/Rasterizer/CMakeLists.txt
source/gameengine/Rasterizer/Makefile
source/gameengine/Rasterizer/RAS_MeshObject.cpp
source/gameengine/Rasterizer/RAS_MeshObject.h
source/gameengine/Rasterizer/SConscript

index 14510cbeecdd6c8a4ad37aeba5b1c786407e318c..184b106a84d22bbac64af836a225bfa0f21cbb38 100644 (file)
@@ -1,4 +1,4 @@
-# $Id$
+ # $Id$
 # ***** BEGIN GPL LICENSE BLOCK *****
 #
 # This program is free software; you can redistribute it and/or
@@ -531,19 +531,21 @@ IF(APPLE)
        SET(LLIBS stdc++ SystemStubs)
 
        IF (WITH_COCOA)
-       SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing -DGHOST_COCOA")
-       SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio")
-       IF(USE_QTKIT)
-       SET(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -DUSE_QTKIT")
-       SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit")
-       ELSE(USE_QTKIT)
-       IF(WITH_QUICKTIME)
-       SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
-       ENDIF(WITH_QUICKTIME)
-       ENDIF(USE_QTKIT)
+               SET(PLATFORM_CFLAGS "-pipe -funsigned-char -DGHOST_COCOA")
+               SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio")
+               IF(USE_QTKIT)
+                       SET(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -DUSE_QTKIT")
+                       SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit")
+                       IF(CMAKE_OSX_ARCHITECTURES MATCHES i386)
+                               SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
+                               #libSDL still needs 32bit carbon quicktime 
+                       ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES i386)
+               ELSEIF(WITH_QUICKTIME)
+                       SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
+               ENDIF(USE_QTKIT)
        ELSE (WITH_COCOA)
-       SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
-       SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime")
+               SET(PLATFORM_CFLAGS "-pipe -funsigned-char")
+               SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime")
        ENDIF (WITH_COCOA)
 
        IF(WITH_OPENMP)
@@ -585,15 +587,23 @@ IF(APPLE)
 
        SET(EXETYPE MACOSX_BUNDLE)
 
-
+       SET(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
+       SET(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g")
        IF(CMAKE_OSX_ARCHITECTURES MATCHES "i386")
-               SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
-               SET(CMAKE_C_FLAGS_RELEASE "-O3 -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
+               SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
+               SET(CMAKE_C_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
        ELSEIF(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
-               SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
-               SET(CMAKE_C_FLAGS_RELEASE "-O3 -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
+               SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
+               SET(CMAKE_C_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
+       ELSE(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
+               SET(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
+               SET(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
        ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES "i386")
 
+       # Better warnings
+       SET(C_WARNINGS "-Wall -Wno-char-subscripts -Wpointer-arith -Wcast-align -Wdeclaration-after-statement")
+       SET(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
+
 ENDIF(APPLE)
 
 IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
index be261ec408013cf4abcd4010c083182466958ef3..a9f3223798b7c880ac63600b2a0be35545d93877 100644 (file)
@@ -152,6 +152,10 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
        {
                return (proxyType == STATIC_PLANE_PROXYTYPE);
        }
+       static SIMD_FORCE_INLINE bool isSoftBody(int proxyType)
+       {
+               return (proxyType == SOFTBODY_SHAPE_PROXYTYPE);
+       }
        
 }
 ;
index 10e880e2523ac9d6f7596c8d3d0b8d59c0255aea..7159f5528295128b1470fe5ae3409841e254cfb2 100644 (file)
@@ -31,6 +31,7 @@ subject to the following restrictions:
 #include "LinearMath/btAabbUtil2.h"
 #include "LinearMath/btQuickprof.h"
 #include "LinearMath/btStackAlloc.h"
+#include "BulletSoftBody/btSoftBody.h"
 
 //#define USE_BRUTEFORCE_RAYBROADPHASE 1
 //RECALCULATE_AABB is slower, but benefit is that you don't need to call 'stepSimulation'  or 'updateAabbs' before using a rayTest
@@ -411,6 +412,31 @@ void       btCollisionWorld::rayTestSingle(const btTransform& rayFromTrans,const btTra
                                        // restore
                                        collisionObject->internalSetTemporaryCollisionShape(saveCollisionShape);
                                }
+                       } else {
+                               if (collisionShape->isSoftBody()) {
+                                       btSoftBody* softBody = static_cast<btSoftBody*>(collisionObject);
+                                       btSoftBody::sRayCast softResult;
+                                       if (softBody->rayTest(rayFromTrans.getOrigin(), rayToTrans.getOrigin(), softResult)) 
+                                       {
+                                               btCollisionWorld::LocalShapeInfo shapeInfo;
+                                               shapeInfo.m_shapePart = 0;
+                                               shapeInfo.m_triangleIndex = softResult.index;
+                                               // get the normal
+                                               btVector3 normal = softBody->m_faces[softResult.index].m_normal;
+                                               btVector3 rayDir = rayToTrans.getOrigin() - rayFromTrans.getOrigin();
+                                               if (normal.dot(rayDir) > 0) {
+                                                       // normal always point toward origin of the ray
+                                                       normal = -normal;
+                                               }
+                                               btCollisionWorld::LocalRayResult rayResult
+                                                       (collisionObject,
+                                                        &shapeInfo,
+                                                        normal,
+                                                        softResult.fraction);
+                                               bool    normalInWorldSpace = true;
+                                               resultCallback.addSingleResult(rayResult,normalInWorldSpace);
+                                       }
+                               }
                        }
                }
        }
index 1f4b9bec647dec5bbc5bc9e4bb4686b34321b605..b6374e64153c397edb78b6ed418689f3991684c9 100644 (file)
@@ -72,6 +72,10 @@ public:
        {
                return btBroadphaseProxy::isCompound(getShapeType());
        }
+       SIMD_FORCE_INLINE bool  isSoftBody() const
+       {
+               return btBroadphaseProxy::isSoftBody(getShapeType());
+       }
 
        ///isInfinite is used to catch simulation error (aabb check)
        SIMD_FORCE_INLINE bool isInfinite() const
index a7186f61cbcd8a26ffa505c765e89b1bc4d24cf3..f8b791de218180b4ede19f640d6684807faef6ed 100644 (file)
@@ -43,7 +43,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\include"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;GLEW_STATIC"\r
                                MinimalRebuild="false"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\include"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index 93dcdd66628d49a945f6c1d1093c18e675c4ad8f..7c72ef70f060868e5190f6fa034baa9aa72b4e53 100644 (file)
                                RelativePath="..\..\intern\AUD_C-API.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\intern\AUD_C-API.h"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\intern\AUD_ChannelMapperFactory.cpp"\r
                                >\r
                                >\r
                        </File>\r
                </Filter>\r
-               <File\r
-                       RelativePath="..\..\AUD_C-API.h"\r
-                       >\r
-               </File>\r
        </Files>\r
        <Globals>\r
        </Globals>\r
index ff4a5956a1287243a4d998171ff8841c84cbf35b..3f5f52aa2ed6592ac9264a1cc49b8accb6a6e8c4 100644 (file)
@@ -23,6 +23,9 @@
  *
  * Contributor(s): none yet.
  *
+ * Part of this code has been taken from Qt, under LGPL license
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ *
  * ***** END GPL LICENSE BLOCK *****
  */
 
@@ -126,6 +129,8 @@ GHOST_SystemX11(
        m_xclip_out= XInternAtom(m_display, "XCLIP_OUT", False);
        m_incr= XInternAtom(m_display, "INCR", False);
        m_utf8_string= XInternAtom(m_display, "UTF8_STRING", False);
+       m_last_warp = 0;
+
 
        // compute the initial time
        timeval tv;
@@ -310,6 +315,61 @@ static void SleepTillEvent(Display *display, GHOST_TInt64 maxSleep) {
        }
 }
 
+/* This function borrowed from Qt's X11 support
+ * qclipboard_x11.cpp
+ *  */
+struct init_timestamp_data
+{
+    Time timestamp;
+};
+
+static Bool init_timestamp_scanner(Display*, XEvent *event, XPointer arg)
+{
+       init_timestamp_data *data =
+        reinterpret_cast<init_timestamp_data*>(arg);
+    switch(event->type)
+    {
+    case ButtonPress:
+    case ButtonRelease:
+        data->timestamp = event->xbutton.time;
+        break;
+    case MotionNotify:
+        data->timestamp = event->xmotion.time;
+        break;
+    case KeyPress:
+    case KeyRelease:
+        data->timestamp = event->xkey.time;
+        break;
+    case PropertyNotify:
+        data->timestamp = event->xproperty.time;
+        break;
+    case EnterNotify:
+    case LeaveNotify:
+        data->timestamp = event->xcrossing.time;
+        break;
+    case SelectionClear:
+        data->timestamp = event->xselectionclear.time;
+        break;
+    default:
+        break;
+    }
+
+    return false;
+}
+
+Time
+GHOST_SystemX11::
+lastEventTime(Time default_time) {
+    init_timestamp_data data;
+    data.timestamp = default_time;
+    XEvent ev;
+    XCheckIfEvent(m_display, &ev, &init_timestamp_scanner, (XPointer)&data);
+
+    return data.timestamp;
+}
+
+
+
        bool 
 GHOST_SystemX11::
 processEvents(
@@ -405,10 +465,15 @@ GHOST_SystemX11::processEvent(XEvent *xe)
                                window->getCursorGrabAccum(x_accum, y_accum);
 
                                if(x_new != xme.x_root || y_new != xme.y_root) {
-                                       /* when wrapping we don't need to add an event because the
-                                        * setCursorPosition call will cause a new event after */
-                                       setCursorPosition(x_new, y_new); /* wrap */
-                                       window->setCursorGrabAccum(x_accum + (xme.x_root - x_new), y_accum + (xme.y_root - y_new));
+                                       if (xme.time > m_last_warp) {
+                                               /* when wrapping we don't need to add an event because the
+                                                * setCursorPosition call will cause a new event after */
+                                               setCursorPosition(x_new, y_new); /* wrap */
+                                               window->setCursorGrabAccum(x_accum + (xme.x_root - x_new), y_accum + (xme.y_root - y_new));
+                                               m_last_warp = lastEventTime(xme.time);
+                                       } else {
+                                               setCursorPosition(x_new, y_new); /* wrap but don't accumulate */
+                                       }
                                }
                                else {
                                        g_event = new
@@ -907,7 +972,7 @@ setCursorPosition(
        int rely = y-cy;
 
        XWarpPointer(m_display,None,None,0,0,0,0,relx,rely);
-       XFlush(m_display);
+       XSync(m_display, 0); /* Sync to process all requests */
        
        return GHOST_kSuccess;
 }
index 782f08f673713b6b357136f8eb519e6cc43ecdae..d76c3991beb2cde38a32d1113f434ec73af5ab1f 100644 (file)
@@ -266,6 +266,10 @@ private :
        /// A vector of keyboard key masks
        char m_keyboard_vector[32];
 
+       /* to prevent multiple warp, we store the time of the last warp event
+        *  and stop accumulating all events generated before that */
+       Time m_last_warp;
+
        /**
         * Return the ghost window associated with the
         * X11 window xwind
@@ -281,6 +285,11 @@ private :
                XEvent *xe
        );
 
+               Time
+       lastEventTime(
+               Time default_time
+       );
+
                bool
        generateWindowExposeEvents(
        );
index e89e0274276ca65549703565e9559d0ff1ed0cda..14a255e2e5ef2ab79dd21dd3fb6a06f44ffbac3b 100644 (file)
@@ -109,6 +109,8 @@ GHOST_TSuccess GHOST_Window::setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rec
                        m_cursorGrabBounds.m_l= m_cursorGrabBounds.m_r= -1;
                else if (bounds) {
                        m_cursorGrabBounds= *bounds;
+               } else { /* if bounds not defined, use window */
+                       getClientBounds(m_cursorGrabBounds);
                }
                m_cursorGrab = mode;
                return GHOST_kSuccess;
index 24abc9c45fc28276b405851c39dd9ff1976603f7..b1b23963b3d72594b0e3fc11bf1d56b8adbce7a4 100644 (file)
@@ -858,15 +858,18 @@ GHOST_TSuccess GHOST_WindowCocoa::installDrawingContext(GHOST_TDrawingContextTyp
                        
                        if (!s_firstOpenGLcontext) s_firstOpenGLcontext = tmpOpenGLContext;
 #ifdef WAIT_FOR_VSYNC
+                       {
+                               GLint swapInt = 1;
                                /* wait for vsync, to avoid tearing artifacts */
-                               [tmpOpenGLContext setValues:1 forParameter:NSOpenGLCPSwapInterval];
+                               [tmpOpenGLContext setValues:&swapInt forParameter:NSOpenGLCPSwapInterval];
+                       }
 #endif
-                               [m_openGLView setOpenGLContext:tmpOpenGLContext];
-                               [tmpOpenGLContext setView:m_openGLView];
-                               
-                               m_openGLContext = tmpOpenGLContext;
+                       [m_openGLView setOpenGLContext:tmpOpenGLContext];
+                       [tmpOpenGLContext setView:m_openGLView];
+                       
+                       m_openGLContext = tmpOpenGLContext;
                        break;
-               
+       
                case GHOST_kDrawingContextTypeNone:
                        success = GHOST_kSuccess;
                        break;
index deb9d216bf6c6fd5f5d1901c6d6e433a68b2567b..12f3f877c3344d0bc0051fb0b4f2fffd31aff09b 100644 (file)
@@ -157,13 +157,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenderplayer", "..\gameeng
                {9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8}\r
                {F90BD995-FFA4-4B18-81E8-FA4322C939E8} = {F90BD995-FFA4-4B18-81E8-FA4322C939E8}\r
                {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}\r
-               {8154A59A-CAED-403D-AB94-BC4E7C032666} = {8154A59A-CAED-403D-AB94-BC4E7C032666}\r
                {3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}\r
                {542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488}\r
                {D8ABD6A5-1B36-4D62-934E-B5C6801130B0} = {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}\r
                {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B} = {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}\r
                {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA} = {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}\r
                {BAC615B0-F1AF-418B-8D23-A10FD8870D6A} = {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}\r
+               {E8904FB3-F8F7-BC21-87A6-029A57B901F4} = {E8904FB3-F8F7-BC21-87A6-029A57B901F4}\r
                {E90C7BC2-CF30-4A60-A8F2-0050D592E358} = {E90C7BC2-CF30-4A60-A8F2-0050D592E358}\r
                {8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}\r
                {4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}\r
@@ -1097,6 +1097,7 @@ Global
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32\r
                {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32\r
@@ -1155,6 +1156,7 @@ Global
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32\r
                {A90C4918-4B21-4277-93BD-AF65F30951D9}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32\r
@@ -1329,12 +1331,12 @@ Global
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
-               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
+               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32\r
+               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
-               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
-               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.Build.0 = Blender Debug|Win32\r
+               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.ActiveCfg = BlenderPlayer Release|Win32\r
+               {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.Build.0 = BlenderPlayer Release|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Release|Win32.ActiveCfg = Blender Release|Win32\r
                {884D8731-654C-4C7F-9A75-8F37A305BE1E}.Release|Win32.Build.0 = Blender Release|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.3D Plugin Debug|Win32.ActiveCfg = Blender Debug|Win32\r
@@ -1351,8 +1353,8 @@ Global
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32\r
-               {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32\r
+               {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
+               {FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.Debug|Win32.Build.0 = Blender Debug|Win32\r
                {FB88301F-F725-401B-ACD7-D2ABBF333B71}.Release|Win32.ActiveCfg = Blender Release|Win32\r
@@ -1409,8 +1411,8 @@ Global
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
@@ -1431,8 +1433,8 @@ Global
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32\r
-               {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32\r
+               {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
+               {D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.Debug|Win32.Build.0 = Blender Debug|Win32\r
                {D1A9312F-4557-4982-A0F4-4D08508235F4}.Release|Win32.ActiveCfg = Blender Release|Win32\r
@@ -1447,8 +1449,8 @@ Global
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
@@ -1465,8 +1467,8 @@ Global
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
@@ -1487,8 +1489,8 @@ Global
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32\r
-               {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32\r
+               {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
+               {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32\r
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32\r
                {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Release|Win32.ActiveCfg = 3DPlugin Release|Win32\r
@@ -1507,8 +1509,8 @@ Global
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32\r
-               {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32\r
+               {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
+               {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32\r
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32\r
                {87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Release|Win32.ActiveCfg = 3DPlugin Release|Win32\r
@@ -1525,8 +1527,8 @@ Global
                {79D0B232-208C-F208-DA71-79B4AC088602}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {79D0B232-208C-F208-DA71-79B4AC088602}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {79D0B232-208C-F208-DA71-79B4AC088602}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {79D0B232-208C-F208-DA71-79B4AC088602}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32\r
@@ -1545,8 +1547,8 @@ Global
                {8BFA4082-773B-D100-BC24-659083BA023F}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {8BFA4082-773B-D100-BC24-659083BA023F}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {8BFA4082-773B-D100-BC24-659083BA023F}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
+               {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
                {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
                {8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {8BFA4082-773B-D100-BC24-659083BA023F}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32\r
@@ -1567,8 +1569,8 @@ Global
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32\r
-               {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32\r
+               {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
+               {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Debug|Win32.Build.0 = Blender Debug|Win32\r
                {37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Release|Win32.ActiveCfg = Blender Release|Win32\r
@@ -1585,10 +1587,8 @@ Global
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32\r
+               {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
-               {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Debug|Win32.Build.0 = Blender Debug|Win32\r
                {76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Release|Win32.ActiveCfg = Blender Release|Win32\r
index b90a64fd1605d45bc06878b708e0c7d15e8bd761..ec863853daa969861f2f3eebfabffd87437c54e7 100644 (file)
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="ECHO Moving libraries and export definitions...&#x0D;&#x0A;MOVE /Y ..\..\bin\blender.lib ..\..\..\build\msvc_9\libs&#x0D;&#x0A;MOVE /Y ..\..\bin\blender.exp ..\..\..\build\msvc_9\libs&#x0D;&#x0A;ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\python\lib\python31.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\release\zlib.pyd ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;ECHO Copying language folder&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9\.blender MKDIR ..\..\..\install\msvc_9\.blender&#x0D;&#x0A;XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9\.blender /E&#x0D;&#x0A;ECHO Copying python scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9\.blender\scripts MKDIR ..\..\..\install\msvc_9\.blender\scripts&#x0D;&#x0A;XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9\.blender\scripts /E&#x0D;&#x0A;ECHO Copying python ui scripts&#x0D;&#x0A;IF NOT EXIST ..\..\bin\.blender\ui MKDIR ..\..\..\install\msvc_9\.blender\ui&#x0D;&#x0A;XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9\.blender\ui /E&#x0D;&#x0A;ECHO Copying manuals/text&#x0D;&#x0A;XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9 /E&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
+                               CommandLine="ECHO Moving libraries and export definitions...&#x0D;&#x0A;MOVE /Y ..\..\bin\blender.lib ..\..\..\build\msvc_9\libs&#x0D;&#x0A;MOVE /Y ..\..\bin\blender.exp ..\..\..\build\msvc_9\libs&#x0D;&#x0A;ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\python\lib\python31.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9&#x0D;&#x0A;ECHO Copying language folder&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9\.blender MKDIR ..\..\..\install\msvc_9\.blender&#x0D;&#x0A;XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9\.blender /E&#x0D;&#x0A;ECHO Copying python scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9\.blender\scripts MKDIR ..\..\..\install\msvc_9\.blender\scripts&#x0D;&#x0A;XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9\.blender\scripts /E&#x0D;&#x0A;ECHO Copying python ui scripts&#x0D;&#x0A;IF NOT EXIST ..\..\bin\.blender\ui MKDIR ..\..\..\install\msvc_9\.blender\ui&#x0D;&#x0A;XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9\.blender\ui /E&#x0D;&#x0A;ECHO Copying manuals/text&#x0D;&#x0A;XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9 /E&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
                <Configuration\r
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="ECHO Moving libraries and export definitions...&#x0D;&#x0A;MOVE /Y ..\..\bin\debug\blender.lib ..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;MOVE /Y ..\..\bin\debug\blender.exp ..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;MOVE /Y ..\..\bin\debug\blender.ilk ..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\release\zlib.pyd ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;ECHO Copying language folder&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender MKDIR ..\..\..\install\msvc_9d\.blender&#x0D;&#x0A;XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9d\.blender /E&#x0D;&#x0A;ECHO Copying python scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender\scripts MKDIR ..\..\..\install\msvc_9d\.blender\scripts&#x0D;&#x0A;XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9d\.blender\scripts /E&#x0D;&#x0A;ECHO Copying python ui scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender\ui MKDIR ..\..\..\install\msvc_9d\.blender\ui&#x0D;&#x0A;XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9d\.blender\ui /E&#x0D;&#x0A;ECHO Copying manuals/text&#x0D;&#x0A;XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9d /E&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
+                               CommandLine="ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;COPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9d\python31_d.zip&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9d&#x0D;&#x0A;ECHO Copying language folder&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender MKDIR ..\..\..\install\msvc_9d\.blender&#x0D;&#x0A;XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9d\.blender /E&#x0D;&#x0A;ECHO Copying python scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender\scripts MKDIR ..\..\..\install\msvc_9d\.blender\scripts&#x0D;&#x0A;XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9d\.blender\scripts /E&#x0D;&#x0A;ECHO Copying python ui scripts&#x0D;&#x0A;IF NOT EXIST ..\..\..\install\msvc_9d\.blender\ui MKDIR ..\..\..\install\msvc_9d\.blender\ui&#x0D;&#x0A;XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9d\.blender\ui /E&#x0D;&#x0A;ECHO Copying manuals/text&#x0D;&#x0A;XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9d /E&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
        </Configurations>\r
index 3f17da1ddab14db778d1792d36718a8a655fd3eb..ad40639db12edd9b8a8b3ae0ec53aa68faa7efba 100644 (file)
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index af0b90796d10fa1ed5c63e26187a87fc08e12b30..a182a3eceb56e23f0a1fc69ab0b73ee5434e790e 100644 (file)
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"\r
-                               PreprocessorDefinitions="_DEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="false"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"\r
-                               PreprocessorDefinitions="NDEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"\r
-                               PreprocessorDefinitions="_DEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="false"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"\r
-                               PreprocessorDefinitions="NDEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index b0ba113339302fc560444e3b9f89b39132b98ff1..272a56f58a4458dc2e48308a46ea9d1f58f7c042 100644 (file)
                        <File\r
                                RelativePath="..\..\..\source\blender\imbuf\intern\openexr\openexr_api.cpp"\r
                                >\r
+                               <FileConfiguration\r
+                                       Name="BlenderPlayer Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="BlenderPlayer Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\..\source\blender\imbuf\intern\png.c"\r
index c0a13bbe26bd8f72dfd26c24557bb668a565e34f..ae0ce4327b65bbbdcaeef07eac8b335eb9b25a7f 100644 (file)
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender;..\..\..\source\blender\blenlib;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\editors\include;..\..\..\source\blender\blenkernel;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\windowmanager;..\..\..\source\blender\imbuf"\r
-                               PreprocessorDefinitions="NDEBUG,WIN32,_CONSOLE"\r
+                               PreprocessorDefinitions="NDEBUG,WIN32,_CONSOLE;GAMEBLENDER=1"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender;..\..\..\source\blender\blenlib;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\editors\include;..\..\..\source\blender\blenkernel;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\windowmanager;..\..\..\source\blender\imbuf"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;GAMEBLENDER=1"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender;..\..\..\source\blender\blenlib;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\editors\include;..\..\..\source\blender\blenkernel;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\windowmanager;..\..\..\source\blender\imbuf"\r
-                               PreprocessorDefinitions="_DEBUG,WIN32,_CONSOLE"\r
+                               PreprocessorDefinitions="_DEBUG,WIN32,_CONSOLE;GAMEBLENDER=1"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender;..\..\..\source\blender\blenlib;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\editors\include;..\..\..\source\blender\blenkernel;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\windowmanager;..\..\..\source\blender\imbuf"\r
-                               PreprocessorDefinitions="NDEBUG,WIN32,_CONSOLE"\r
+                               PreprocessorDefinitions="NDEBUG,WIN32,_CONSOLE;GAMEBLENDER=1"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index 66449b01f81925ce1eb4299078500f21b19721a3..02deec888439a7c535d7af7b8ed4c17f56a8eb7a 100644 (file)
@@ -44,7 +44,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\ikplugin;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\source\blender\render\extern\include"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GAMEBLENDER=1"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                Optimization="2"\r
                                EnableIntrinsicFunctions="true"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\ikplugin;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\source\blender\render\extern\include"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GAMEBLENDER=1"\r
                                MinimalRebuild="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="false"\r
index ad52b9f1fae2ef5b177cff6b92a56a0e104eec23..8cba876841be5ecc84dad210a7e07bf94b0d0f8a 100644 (file)
@@ -44,7 +44,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA;GLEW_STATIC"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                Optimization="2"\r
                                EnableIntrinsicFunctions="true"\r
                                AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA;GLEW_STATIC"\r
+                               MinimalRebuild="true"\r
+                               RuntimeLibrary="0"\r
+                               EnableFunctionLevelLinking="false"\r
+                               UsePrecompiledHeader="0"\r
+                               PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\render\release\WM_windowmanager.pch"\r
+                               AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"\r
+                               ObjectFile="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"\r
+                               ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                               CompileAs="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLibrarianTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="BlenderPlayer Debug|Win32"\r
+                       OutputDirectory="$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="4"\r
+                       UseOfMFC="0"\r
+                       ATLMinimizesCRunTimeLibraryUsage="false"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GLEW_STATIC"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="1"\r
+                               UsePrecompiledHeader="0"\r
+                               PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\render\debug\WM_windowmanager.pch"\r
+                               AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"\r
+                               ObjectFile="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"\r
+                               ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"\r
+                               WarningLevel="3"\r
+                               SuppressStartupBanner="true"\r
+                               DebugInformationFormat="3"\r
+                               CompileAs="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLibrarianTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="BlenderPlayer Release|Win32"\r
+                       OutputDirectory="$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="4"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               EnableIntrinsicFunctions="true"\r
+                               AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GLEW_STATIC"\r
                                MinimalRebuild="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="false"\r
index ab959de31c7aabe6dd56840febcc7064154d383c..033f5cb036f1cbcd4060af1d81e1d65ca14cf7e2 100644 (file)
@@ -44,7 +44,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG;GLEW_STATIC"\r
                                StringPooling="true"\r
                                BasicRuntimeChecks="0"\r
                                RuntimeLibrary="0"\r
index 4e05c05ff5134603559ba14af212e00edeb0b5fc..474ecb36f46337873184c0ad1a30a1ce3efecfa6 100644 (file)
                                RelativePath="..\..\..\source\gameengine\Converter\BL_SkinDeformer.cpp"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\source\gameengine\Converter\BL_SkinMeshObject.cpp"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\gameengine\Converter\BlenderWorldInfo.cpp"\r
                                >\r
                                RelativePath="..\..\..\source\gameengine\Converter\KX_IpoConvert.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\..\source\gameengine\Converter\KX_SoftBodyDeformer.cpp"\r
+                               >\r
+                       </File>\r
                </Filter>\r
                <Filter\r
                        Name="Header Files"\r
                                RelativePath="..\..\..\source\gameengine\Converter\BL_SkinDeformer.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\source\gameengine\Converter\BL_SkinMeshObject.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\gameengine\Converter\BlenderWorldInfo.h"\r
                                >\r
                                RelativePath="..\..\..\source\gameengine\Converter\KX_IpoConvert.h"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\..\source\gameengine\Converter\KX_SoftBodyDeformer.h"\r
+                               >\r
+                       </File>\r
                </Filter>\r
        </Files>\r
        <Globals>\r
index ad8f333859415d9a4000bced379b3573f8132e9f..9e6b41997acf07ed1485b3b3254f89e3c29a5329 100644 (file)
                                RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.cpp"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.cpp"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawImage.cpp"\r
                                >\r
index 4d6b7a4cd8af30394af2e8c271cce4f098af122a..759c469bcf6b288ebca274e4458d8401a61fa554 100644 (file)
@@ -44,7 +44,7 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"\r
+                               AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\makesrna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"\r
                                PreprocessorDefinitions="WIN32,_CONSOLE,dSINGLE, _DEBUG;WITH_FFMPEG"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386&#x0D;&#x0A;"\r
-                               AdditionalDependencies="ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"\r
+                               AdditionalDependencies="libsamplerate.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng_st.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"\r
                                ShowProgress="0"\r
-                               OutputFile="..\..\..\..\bin\debug\blenderplayer.exe"\r
+                               OutputFile="..\..\..\..\..\install\msvc_9d\blenderplayer.exe"\r
                                LinkIncremental="2"\r
                                SuppressStartupBanner="true"\r
-                               AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib"\r
+                               AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib;..\..\..\..\..\lib\windows\samplerate\lib"\r
                                IgnoreDefaultLibraryNames="libc.lib;libcmt.lib;msvcrt.lib;libcd.lib;msvcrtd.lib"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="..\..\..\..\..\build\msvc_9\libs\debug\blenderplayer.pdb"\r
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="ECHO Moving libraries and export definitions...&#x0D;&#x0A;MOVE /Y ..\..\..\..\bin\debug\blenderplayer.lib ..\..\..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;MOVE /Y ..\..\..\..\bin\debug\blenderplayer.exp ..\..\..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;MOVE /Y ..\..\..\..\bin\debug\blenderplayer.ilk ..\..\..\..\..\build\msvc_9\libs\debug&#x0D;&#x0A;ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\..\bin\debug&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\SDL.dll ..\..\..\..\bin\debug&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\png\lib\libpng.dll ..\..\..\..\bin\debug&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\bin\debug&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\bin\debug&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\..\bin\debug&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
+                               CommandLine="ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;COPY /Y ..\..\..\..\..\lib\windows\release\python31.zip ..\..\..\..\..\install\msvc_9d\python31_d.zip&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\..\..\install\msvc_9d&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
                <Configuration\r
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"\r
+                               AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\makesrna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"\r
                                PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE;WITH_FFMPEG"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                        <Tool\r
                                Name="VCLinkerTool"\r
                                AdditionalOptions="/MACHINE:I386"\r
-                               AdditionalDependencies="odelib.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31.lib pthreadVSE2.lib pthreadVC2.lib Half.lib Iex.lib IlmImf.lib IlmThread.lib Imath.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"\r
-                               OutputFile="..\..\..\..\bin\blenderplayer.exe"\r
+                               AdditionalDependencies="libsamplerate.lib odelib.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng_st.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31.lib pthreadVSE2.lib pthreadVC2.lib Half.lib Iex.lib IlmImf.lib IlmThread.lib Imath.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"\r
+                               OutputFile="..\..\..\..\..\install\msvc_9\blenderplayer.exe"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
-                               AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib"\r
+                               AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib;..\..\..\..\..\lib\windows\samplerate\lib"\r
                                IgnoreDefaultLibraryNames="libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="..\..\..\..\..\build\msvc_9\libs\blenderplayer.pdb"\r
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="ECHO Moving libraries and export definitions...&#x0D;&#x0A;MOVE /Y ..\..\..\..\bin\blenderplayer.lib ..\..\..\..\..\build\msvc_9\libs&#x0D;&#x0A;MOVE /Y ..\..\..\..\bin\blenderplayer.exp ..\..\..\..\..\build\msvc_9\libs&#x0D;&#x0A;ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31.dll ..\..\..\..\bin&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\SDL.dll ..\..\..\..\bin&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\png\lib\libpng.dll ..\..\..\..\bin&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\bin&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\bin&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
+                               CommandLine="ECHO Copying required 3rd party dlls...&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\release\python31.zip ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;XCOPY /Y ..\..\..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\..\..\install\msvc_9&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
        </Configurations>\r
                                RelativePath="..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\..\..\source\blenderplayer\bad_level_call_stubs\stubs.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\..\..\source\icons\winplayer.rc"\r
                                >\r
index 56a86ab0a49fafd2ed140f8a054fd389608a2958..814db0bcb1412c8f51f28099023c8416fa7419f5 100644 (file)
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"\r
+                               PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"\r
+                               PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index f82b46413c98941702442eb68e570e322062b695..1554248f192cd48efc101666556fae873d4afa4c 100644 (file)
@@ -43,8 +43,8 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
                                PreprocessorDefinitions="NDEBUG,WIN32,_LIB"\r
                                StringPooling="true"\r
                                RuntimeLibrary="2"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
                                PreprocessorDefinitions="_DEBUG,WIN32,_LIB"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="3"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index 4d55bd0da37391674a0b82352454b6bf34c32202..0bd676a2a82ada180ab540125e52bb2aa5424d2f 100644 (file)
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"\r
-                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="1"\r
                                DefaultCharIsUnsigned="true"\r
                                Name="VCCLCompilerTool"\r
                                InlineFunctionExpansion="1"\r
                                AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"\r
-                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"\r
+                               PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"\r
                                StringPooling="true"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
index 8821853a13d65e5527884d1f2e0de43612c2ed70..e1cbf32a28001aaa06038c52c681714ebfc6f6fc 100644 (file)
@@ -1 +1 @@
-2.5-devel
+2.5-alpha0
index 258e134675a0c7d271c6d24969f420e2c37f5133..2bfb1d102195d45b773b4672d0217a1b1c358dfe 100644 (file)
Binary files a/release/datafiles/blenderbuttons and b/release/datafiles/blenderbuttons differ
index e35a26a2c2360539cccc052fa07e00363e7dce74..da4f1e1b2f10ea5a2a9f60be6946023ac1b43c46 100644 (file)
Binary files a/release/datafiles/splash.png and b/release/datafiles/splash.png differ
index 014cf56f6a7f04b0e35d29d92f83bea132abe17a..ddca6eb43dc21003008571e9f5c8affb9ad1695b 100644 (file)
@@ -884,7 +884,7 @@ class RENDER_PT_povray_radiosity(RenderButtonsPanel):
        def draw_header(self, context):
                scene = context.scene
 
-               self.layout.itemR(scene, "pov_radio_enable", text="")
+               self.layout.prop(scene, "pov_radio_enable", text="")
 
        def draw(self, context):
                layout = self.layout
@@ -897,34 +897,34 @@ class RENDER_PT_povray_radiosity(RenderButtonsPanel):
                split = layout.split()
                
                col = split.column()
-               col.itemR(scene, "pov_radio_count", text="Rays")
-               col.itemR(scene, "pov_radio_recursion_limit", text="Recursions")
+               col.prop(scene, "pov_radio_count", text="Rays")
+               col.prop(scene, "pov_radio_recursion_limit", text="Recursions")
                col = split.column()
-               col.itemR(scene, "pov_radio_error_bound", text="Error")
+               col.prop(scene, "pov_radio_error_bound", text="Error")
                
-               layout.itemR(scene, "pov_radio_display_advanced")
+               layout.prop(scene, "pov_radio_display_advanced")
                
                if scene.pov_radio_display_advanced:
                        split = layout.split()
                
                        col = split.column()
-                       col.itemR(scene, "pov_radio_adc_bailout", slider=True)
-                       col.itemR(scene, "pov_radio_gray_threshold", slider=True)
-                       col.itemR(scene, "pov_radio_low_error_factor", slider=True)
+                       col.prop(scene, "pov_radio_adc_bailout", slider=True)
+                       col.prop(scene, "pov_radio_gray_threshold", slider=True)
+                       col.prop(scene, "pov_radio_low_error_factor", slider=True)
 
                        col = split.column()
-                       col.itemR(scene, "pov_radio_brightness")
-                       col.itemR(scene, "pov_radio_minimum_reuse", text="Min Reuse")
-                       col.itemR(scene, "pov_radio_nearest_count")
+                       col.prop(scene, "pov_radio_brightness")
+                       col.prop(scene, "pov_radio_minimum_reuse", text="Min Reuse")
+                       col.prop(scene, "pov_radio_nearest_count")
 
                        split = layout.split()
                
                        col = split.column()
-                       col.itemL(text="Estimation Influence:")
-                       col.itemR(scene, "pov_radio_media")
-                       col.itemR(scene, "pov_radio_normal")
+                       col.label(text="Estimation Influence:")
+                       col.prop(scene, "pov_radio_media")
+                       col.prop(scene, "pov_radio_normal")
                        
                        col = split.column()
-                       col.itemR(scene, "pov_radio_always_sample")
+                       col.prop(scene, "pov_radio_always_sample")
 
 bpy.types.register(RENDER_PT_povray_radiosity)
index 0d5827f6f18e2130a9d7aeecfbe7142735e3d501..5f585ac43361c35b2cd690b7ded2ad30106c847b 100644 (file)
@@ -1132,7 +1132,6 @@ class Export3DS(bpy.types.Operator):
                return ('RUNNING_MODAL',)
        
        def poll(self, context): # Poll isnt working yet
-               print("Poll")
                return context.active_object != None
 
 bpy.ops.add(Export3DS)
@@ -1142,6 +1141,6 @@ import dynamic_menu
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".3ds")
-    self.layout.item_stringO(Export3DS.bl_idname, "path", default_path, text="Autodesk 3DS...")
+    self.layout.operator(Export3DS.bl_idname, text="Autodesk 3DS...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
index b266d74fb57d8f47b9abaffa2b509b8a7d70b880..e5bf01b0d9d1a327e5848f4474798fcab6a87a3d 100644 (file)
@@ -3466,7 +3466,7 @@ import dynamic_menu
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".fbx")
-    self.layout.item_stringO(ExportFBX.bl_idname, "path", default_path, text="Autodesk FBX...")
+    self.layout.operator(ExportFBX.bl_idname, text="Autodesk FBX...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
 
index 7d08b4f9d7a157ed14e9e1e70d608bfc2ae38d94..c160b94e5462d5c05cda628ac0a9f69b77ed395e 100644 (file)
@@ -191,7 +191,7 @@ import dynamic_menu
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".mdd")
-    self.layout.item_stringO(ExportMDD.bl_idname, "path", default_path, text="Vertex Keyframe Animation (.mdd)...")
+    self.layout.operator(ExportMDD.bl_idname, text="Vertex Keyframe Animation (.mdd)...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
 
index feeb7cb1f34c4420667e21b7d2b39b460755fe95..94e8a365c0fafe56fe6ab295ad0534fcaf835a4d 100644 (file)
@@ -85,19 +85,6 @@ def fixName(name):
        else:
                return name.replace(' ', '_')
 
-
-# this used to be in BPySys module
-# frankly, I don't understand how it works
-def BPySys_cleanName(name):
-
-       v = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254]
-
-       invalid = ''.join([chr(i) for i in v])
-
-       for ch in invalid:
-               name = name.replace(ch, '_')
-       return name
-
 # A Dict of Materials
 # (material.name, image.name):matname_imagename # matname_imagename has gaps removed.
 MTL_DICT = {}  
@@ -884,7 +871,7 @@ def do_export(filename, context,
                orig_frame = scn.current_frame
                
                if EXPORT_ALL_SCENES: # Add scene name into the context_name
-                       context_name[1] = '_%s' % BPySys_cleanName(scn.name) # WARNING, its possible that this could cause a collision. we could fix if were feeling parranoied.
+                       context_name[1] = '_%s' % bpy.utils.clean_name(scn.name) # WARNING, its possible that this could cause a collision. we could fix if were feeling parranoied.
                
                # Export an animation?
                if EXPORT_ANIMATION:
@@ -998,9 +985,9 @@ class ExportOBJ(bpy.types.Operator):
                wm.add_fileselect(self)
                return ('RUNNING_MODAL',)
        
-       def poll(self, context): # Poll isnt working yet
-               print("Poll")
-               return context.active_object != None
+
+
+
 
 bpy.ops.add(ExportOBJ)
 
@@ -1008,7 +995,7 @@ import dynamic_menu
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".obj")
-    self.layout.item_stringO(ExportOBJ.bl_idname, "path", default_path, text="Wavefront (.obj)...")
+    self.layout.operator(ExportOBJ.bl_idname, text="Wavefront (.obj)...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
 
@@ -1021,4 +1008,4 @@ if __name__ == "__main__":
 # - NURBS - needs API additions
 # - all scenes export
 # + normals calculation
-# - get rid of cleanName somehow
+
index e97ca2155f03a3f3264fd600d366211347a72ea8..f9720be4646b7dd8705fd726d812a1022f2537ca 100644 (file)
@@ -263,9 +263,9 @@ class ExportPLY(bpy.types.Operator):
        
        path = StringProperty(name="File Path", description="File path used for exporting the PLY file", maxlen= 1024, default= "")
        use_modifiers = BoolProperty(name="Apply Modifiers", description="Apply Modifiers to the exported mesh", default= True)
-       use_normals = BoolProperty(name="Export Normals", description="Export Normals for smooth and hard shaded faces", default= True)
-       use_uvs = BoolProperty(name="Export UVs", description="Exort the active UV layer", default= True)
-       use_colors = BoolProperty(name="Export Vertex Colors", description="Exort the active vertex color layer", default= True)
+       use_normals = BoolProperty(name="Normals", description="Export Normals for smooth and hard shaded faces", default= True)
+       use_uvs = BoolProperty(name="UVs", description="Exort the active UV layer", default= True)
+       use_colors = BoolProperty(name="Vertex Colors", description="Exort the active vertex color layer", default= True)
        
        
        def poll(self, context):
@@ -291,14 +291,25 @@ class ExportPLY(bpy.types.Operator):
                wm.add_fileselect(self)
                return ('RUNNING_MODAL',)
 
+       def draw(self, context):
+               layout = self.layout
+               props = self.properties
+
+               row = layout.row()
+               row.prop(props, "use_modifiers")
+               row.prop(props, "use_normals")
+               row = layout.row()
+               row.prop(props, "use_uvs")
+               row.prop(props, "use_colors")
+
 
 bpy.ops.add(ExportPLY)
 
 import dynamic_menu
 
 def menu_func(self, context):
-    default_path = bpy.data.filename.replace(".blend", ".ply")
-    self.layout.item_stringO(ExportPLY.bl_idname, "path", default_path, text="Stanford (.ply)...")
+       default_path = bpy.data.filename.replace(".blend", ".ply")
+       self.layout.operator(ExportPLY.bl_idname, text="Stanford (.ply)...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
 
index 1fb4393020869f1b0309e83fb10034ad74f6c6bd..8546d8619f4cbbc458911e3056f336067d97b0ad 100644 (file)
@@ -1244,7 +1244,7 @@ import dynamic_menu
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".x3d")
-    self.layout.item_stringO(ExportX3D.bl_idname, "path", default_path, text="X3D Extensible 3D (.x3d)...")
+    self.layout.operator(ExportX3D.bl_idname, text="X3D Extensible 3D (.x3d)...").path = default_path
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_export, menu_func)
 
index 364a16b00ea7ddf5125bed7b699e7982153b1ed4..9f7063b24cff052a75d28e57ca26ae0d7a077e13 100644 (file)
@@ -227,8 +227,6 @@ def read_bvh(context, file_path, GLOBAL_SCALE=1.0):
                                if ROT_STYLE != 'NATIVE':
                                        rx, ry, rz = eulerRotate(rx, ry, rz, bvh_node.rot_order)
                                
-                               #x,y,z = x/10.0, y/10.0, z/10.0 # For IPO's 36 is 360d
-                               
                                # Make interpolation not cross between 180d, thjis fixes sub frame interpolation and time scaling.
                                # Will go from (355d to 365d) rather then to (355d to 5d) - inbetween these 2 there will now be a correct interpolation.
                                
@@ -337,7 +335,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME= 1, IMPORT_LOOP
                        
                        bvh_node.temp.rot= rx*DEG2RAD,ry*DEG2RAD,rz*DEG2RAD
                        
-                       bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT)
+                       bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT) # XXX invalid
        
        scn.update(1)
        return objects
@@ -487,7 +485,7 @@ def bvh_node_dict2armature(context, bvh_nodes, IMPORT_START_FRAME= 1, IMPORT_LOO
        
        
        bpy.ops.pose.select_all_toggle() # set
-       bpy.ops.anim.insert_keyframe_menu(type=-4) # XXX -     -4 ???
+       bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX -     -4 ???
        
 
        
@@ -500,7 +498,7 @@ def bvh_node_dict2armature(context, bvh_nodes, IMPORT_START_FRAME= 1, IMPORT_LOO
 #XXX   action = Blender.Armature.NLA.NewAction("Action") 
 #XXX   action.setActive(arm_ob)
        
-       #bpy.ops.act.new()
+       #bpy.ops.action.new()
        #action = bpy.data.actions[-1]
        
        # arm_ob.animation_data.action = action
@@ -540,6 +538,7 @@ def bvh_node_dict2armature(context, bvh_nodes, IMPORT_START_FRAME= 1, IMPORT_LOO
        '''
        
        # KEYFRAME METHOD, SLOW, USE IPOS DIRECT
+       # TODO: use f-point samples instead (Aligorith)
        
        # Animate the data, the last used bvh_node will do since they all have the same number of frames
        for current_frame in range(len(bvh_node.anim_data)-1): # skip the first frame (rest frame)
@@ -618,7 +617,7 @@ def bvh_node_dict2armature(context, bvh_nodes, IMPORT_START_FRAME= 1, IMPORT_LOO
                                
                                
                        
-               # bpy.ops.anim.insert_keyframe_menu(type=-4) # XXX -     -4 ???
+               # bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX -     -4 ???
                bpy.ops.screen.frame_offset(delta=1)
                
                # First time, set the IPO's to linear
@@ -877,5 +876,5 @@ bpy.ops.add(BvhImporter)
 
 
 import dynamic_menu
-menu_func = lambda self, context: self.layout.itemO(BvhImporter.bl_idname, text="Motion Capture (.bvh)...")
+menu_func = lambda self, context: self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)...")
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_import, menu_func)
index dd8c24398ae42d688127b0f50e5795ce7f573890..57b93d3c683bde965b6b6c629653e33830dbf5d9 100644 (file)
@@ -1167,7 +1167,7 @@ class IMPORT_OT_autodesk_3ds(bpy.types.Operator):
 bpy.ops.add(IMPORT_OT_autodesk_3ds)
 
 import dynamic_menu
-menu_func = lambda self, context: self.layout.itemO(IMPORT_OT_autodesk_3ds.bl_idname, text="3D Studio (.3ds)...")
+menu_func = lambda self, context: self.layout.operator(IMPORT_OT_autodesk_3ds.bl_idname, text="3D Studio (.3ds)...")
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_import, menu_func)
 
 # NOTES:
index 2bce99ffb3e5a818709bb210c5c064f15d3babb1..a19962666749f48e70ac1e02cbf00383e4175f82 100644 (file)
@@ -807,7 +807,7 @@ def create_mesh(scn, new_objects, has_ngons, CREATE_FGONS, CREATE_EDGES, verts_l
                                        blender_tface.uv2= verts_tex[face_vert_tex_indicies[1]]
                                        blender_tface.uv3= verts_tex[face_vert_tex_indicies[2]]
 
-                                       if blender_face.verts[3] != 0:
+                                       if len(face_vert_loc_indicies)==4:
                                                blender_tface.uv4= verts_tex[face_vert_tex_indicies[3]]
 
 #                                      for ii, uv in enumerate(blender_face.uv):
@@ -1626,7 +1626,7 @@ bpy.ops.add(IMPORT_OT_obj)
 
 
 import dynamic_menu
-menu_func = lambda self, context: self.layout.itemO(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)...")
+menu_func = lambda self, context: self.layout.operator(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)...")
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_file_import, menu_func)
 
 
index e0273618900e548ecb35b3aa16f4f6fec5c3ca8f..081d9952871cc860e66ec9648e1fffc35f8c7815 100644 (file)
@@ -63,15 +63,15 @@ class RENDER_PT_network_settings(RenderButtonsPanel):
                split = layout.split()
                
                col = split.column()
-               col.itemR(scene.network_render, "mode")
-               col.itemR(scene.network_render, "path")
-               col.itemR(scene.network_render, "server_address")
-               col.itemR(scene.network_render, "server_port")
+               col.prop(scene.network_render, "mode")
+               col.prop(scene.network_render, "path")
+               col.prop(scene.network_render, "server_address")
+               col.prop(scene.network_render, "server_port")
                
                if scene.network_render.mode == "RENDER_MASTER":
-                       col.itemR(scene.network_render, "server_broadcast")
+                       col.prop(scene.network_render, "server_broadcast")
                else:
-                       col.itemO("render.netclientscan", icon="ICON_FILE_REFRESH", text="")
+                       col.operator("render.netclientscan", icon="ICON_FILE_REFRESH", text="")
 
 @rnaType
 class RENDER_PT_network_job(RenderButtonsPanel):
@@ -93,13 +93,13 @@ class RENDER_PT_network_job(RenderButtonsPanel):
                split = layout.split()
                
                col = split.column()
-               col.itemO("render.netclientanim", icon='ICON_RENDER_ANIMATION')
-               col.itemO("render.netclientsend", icon="ICON_FILE_BLEND")
-               col.itemO("render.netclientweb", icon="ICON_QUESTION")
-               col.itemR(scene.network_render, "job_name")
+               col.operator("render.netclientanim", icon='ICON_RENDER_ANIMATION')
+               col.operator("render.netclientsend", icon="ICON_FILE_BLEND")
+               col.operator("render.netclientweb", icon="ICON_QUESTION")
+               col.prop(scene.network_render, "job_name")
                row = col.row()
-               row.itemR(scene.network_render, "priority")
-               row.itemR(scene.network_render, "chunks")
+               row.prop(scene.network_render, "priority")
+               row.prop(scene.network_render, "chunks")
 
 @rnaType
 class RENDER_PT_network_slaves(RenderButtonsPanel):
@@ -120,22 +120,22 @@ class RENDER_PT_network_slaves(RenderButtonsPanel):
                row.template_list(netsettings, "slaves", netsettings, "active_slave_index", rows=2)
 
                sub = row.column(align=True)
-               sub.itemO("render.netclientslaves", icon="ICON_FILE_REFRESH", text="")
-               sub.itemO("render.netclientblacklistslave", icon="ICON_ZOOMOUT", text="")
+               sub.operator("render.netclientslaves", icon="ICON_FILE_REFRESH", text="")
+               sub.operator("render.netclientblacklistslave", icon="ICON_ZOOMOUT", text="")
                
                if len(netrender.slaves) == 0 and len(netsettings.slaves) > 0:
                        while(len(netsettings.slaves) > 0):
                                netsettings.slaves.remove(0)
                
                if netsettings.active_slave_index >= 0 and len(netsettings.slaves) > 0:
-                       layout.itemS()
+                       layout.separator()
                        
                        slave = netrender.slaves[netsettings.active_slave_index]
 
-                       layout.itemL(text="Name: " + slave.name)
-                       layout.itemL(text="Address: " + slave.address[0])
-                       layout.itemL(text="Seen: " + time.ctime(slave.last_seen))
-                       layout.itemL(text="Stats: " + slave.stats)
+                       layout.label(text="Name: " + slave.name)
+                       layout.label(text="Address: " + slave.address[0])
+                       layout.label(text="Seen: " + time.ctime(slave.last_seen))
+                       layout.label(text="Stats: " + slave.stats)
 
 @rnaType
 class RENDER_PT_network_slaves_blacklist(RenderButtonsPanel):
@@ -156,21 +156,21 @@ class RENDER_PT_network_slaves_blacklist(RenderButtonsPanel):
                row.template_list(netsettings, "slaves_blacklist", netsettings, "active_blacklisted_slave_index", rows=2)
 
                sub = row.column(align=True)
-               sub.itemO("render.netclientwhitelistslave", icon="ICON_ZOOMOUT", text="")
+               sub.operator("render.netclientwhitelistslave", icon="ICON_ZOOMOUT", text="")
 
                if len(netrender.blacklist) == 0 and len(netsettings.slaves_blacklist) > 0:
                        while(len(netsettings.slaves_blacklist) > 0):
                                netsettings.slaves_blacklist.remove(0)
                
                if netsettings.active_blacklisted_slave_index >= 0 and len(netsettings.slaves_blacklist) > 0:
-                       layout.itemS()
+                       layout.separator()
                        
                        slave = netrender.blacklist[netsettings.active_blacklisted_slave_index]
 
-                       layout.itemL(text="Name: " + slave.name)
-                       layout.itemL(text="Address: " + slave.address[0])
-                       layout.itemL(text="Seen: " + time.ctime(slave.last_seen))
-                       layout.itemL(text="Stats: " + slave.stats)
+                       layout.label(text="Name: " + slave.name)
+                       layout.label(text="Address: " + slave.address[0])
+                       layout.label(text="Seen: " + time.ctime(slave.last_seen))
+                       layout.label(text="Stats: " + slave.stats)
 
 @rnaType
 class RENDER_PT_network_jobs(RenderButtonsPanel):
@@ -191,24 +191,24 @@ class RENDER_PT_network_jobs(RenderButtonsPanel):
                row.template_list(netsettings, "jobs", netsettings, "active_job_index", rows=2)
 
                sub = row.column(align=True)
-               sub.itemO("render.netclientstatus", icon="ICON_FILE_REFRESH", text="")
-               sub.itemO("render.netclientcancel", icon="ICON_ZOOMOUT", text="")
-               sub.itemO("render.netclientcancelall", icon="ICON_PANEL_CLOSE", text="")
-               sub.itemO("render.netclientdownload", icon='ICON_RENDER_ANIMATION', text="")
+               sub.operator("render.netclientstatus", icon="ICON_FILE_REFRESH", text="")
+               sub.operator("render.netclientcancel", icon="ICON_ZOOMOUT", text="")
+               sub.operator("render.netclientcancelall", icon="ICON_PANEL_CLOSE", text="")
+               sub.operator("render.netclientdownload", icon='ICON_RENDER_ANIMATION', text="")
 
                if len(netrender.jobs) == 0 and len(netsettings.jobs) > 0:
                        while(len(netsettings.jobs) > 0):
                                netsettings.jobs.remove(0)
                
                if netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0:
-                       layout.itemS()
+                       layout.separator()
                        
                        job = netrender.jobs[netsettings.active_job_index]
 
-                       layout.itemL(text="Name: %s" % job.name)
-                       layout.itemL(text="Length: %04i" % len(job))
-                       layout.itemL(text="Done: %04i" % job.results[DONE])
-                       layout.itemL(text="Error: %04i" % job.results[ERROR])
+                       layout.label(text="Name: %s" % job.name)
+                       layout.label(text="Length: %04i" % len(job))
+                       layout.label(text="Done: %04i" % job.results[DONE])
+                       layout.label(text="Error: %04i" % job.results[ERROR])
 
 @rnaType
 class NetRenderSettings(bpy.types.IDPropertyGroup):
index bbda95837ad5a6b41719da879050a826315f20b0..39b8fd340ba5e3ac27d47cfa8dfc9269650c2941 100644 (file)
@@ -44,7 +44,6 @@ def load_scripts(reload_scripts=False):
             return None
 
     for base_path in utils.script_paths():
-        print(base_path)
         for path_subdir in ("ui", "op", "io"):
             path = os.path.join(base_path, path_subdir)
             sys.path.insert(0, path)
index a2c6f764e3b214d3585ee6fe14e1da2051a2146b..a10c8bc4dd9f9dccb5f5437f93da6a78c30eff7e 100644 (file)
@@ -25,6 +25,33 @@ def expandpath(path):
 
     return path
 
+
+_unclean_chars = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, \
+    17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, \
+    35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 58, 59, 60, 61, 62, 63, \
+    64, 91, 92, 93, 94, 96, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, \
+    133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, \
+    147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, \
+    161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, \
+    175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, \
+    189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, \
+    203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, \
+    217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, \
+    231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, \
+    245, 246, 247, 248, 249, 250, 251, 252, 253, 254]
+
+_unclean_chars = ''.join([chr(i) for i in _unclean_chars])
+
+def clean_name(name, replace="_"):
+    '''
+    All characters besides A-Z/a-z, 0-9 are replaced with "_"
+    or the replace argumet if defined.
+    '''
+    for ch in _unclean_chars:
+        name = name.replace(ch,  replace)
+    return name
+
+
 # base scripts
 _scripts = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir)
 _scripts = (os.path.normpath(_scripts), )
index 8e05b9bb8bd47e6f97deb6ba0b382a03944a7dc4..13d48f05d187083dcbd25e0f77832c49a21c0e31 100644 (file)
@@ -35,11 +35,92 @@ class Context(StructRNA):
 
 class Object(bpy_types.ID):
 
-    def _get_children(self):
+    @property
+    def children(self):
         import bpy
         return [child for child in bpy.data.objects if child.parent == self]
 
-    children = property(_get_children)
+
+class _GenericBone:
+    '''
+    functions for bones, common between Armature/Pose/Edit bones.
+    internal subclassing use only.
+    '''
+    def parent_index(self, parent_test):
+        '''
+        The same as 'bone in other_bone.parent_recursive' but saved generating a list.
+        '''
+        # use the name so different types can be tested.
+        name = parent_test.name
+        
+        parent = self.parent
+        i = 1
+        while parent:
+            if parent.name == name:
+                return i
+            parent = parent.parent
+            i += 1
+        
+        return 0
+
+    @property
+    def parent_recursive(self):
+        parent_list = []
+        parent = self.parent
+        
+        while parent:
+            if parent:
+                parent_list.append(parent)
+            
+            parent = parent.parent
+        
+        return parent_list
+
+    @property
+    def length(self):
+        return (self.head - self.tail).length
+
+    @property
+    def children(self):
+        return [child for child in self._other_bones if child.parent == self]
+
+    @property
+    def children_recursive(self):
+        bones_children = []
+        for bone in self._other_bones:
+            index = bone.parent_index(self)
+            if index:
+                bones_children.append((index, bone))
+        
+        # sort by distance to parent
+        bones_children.sort(key=lambda bone_pair: bone_pair[0])
+        return [bone for index, bone in bones_children]
+
+    @property
+    def _other_bones(self):
+        id_data = self.id_data
+        id_data_type = type(id_data)
+        
+        if id_data_type == bpy_types.Object:
+            bones = id_data.pose.bones
+        elif id_data_type == bpy_types.Armature:
+            bones = id_data.edit_bones
+            if not bones: # not in editmode
+                bones = id_data.bones
+        
+        return bones
+
+
+class PoseBone(StructRNA, _GenericBone):
+    pass
+
+
+class Bone(StructRNA, _GenericBone):
+    pass
+
+
+class EditBone(StructRNA, _GenericBone):
+    pass
 
 
 def ord_ind(i1,i2):
@@ -48,12 +129,12 @@ def ord_ind(i1,i2):
 
 class Mesh(bpy_types.ID):
 
-    def _get_edge_keys(self):
+    @property
+    def edge_keys(self):
         return [edge_key for face in self.faces for edge_key in face.edge_keys]
 
-    edge_keys = property(_get_edge_keys)
-
-    def _get_edge_face_count_dict(self):
+    @property
+    def edge_face_count_dict(self):
         face_edge_keys = [face.edge_keys for face in self.faces]
         face_edge_count = {}
         for face_keys in face_edge_keys:
@@ -65,34 +146,29 @@ class Mesh(bpy_types.ID):
 
         return face_edge_count
 
-    edge_face_count_dict = property(_get_edge_face_count_dict)
-
-    def _get_edge_face_count(self):
+    @property
+    def edge_face_count(self):
         edge_face_count_dict = self.edge_face_count_dict
         return [edge_face_count_dict.get(ed.key, 0) for ed in mesh.edges]
 
-    edge_face_count = property(_get_edge_face_count)
-
 
 class MeshEdge(StructRNA):
 
-    def _get_key(self):
+    @property
+    def key(self):
         return ord_ind(*tuple(self.verts))
 
-    key = property(_get_key)
-
 
 class MeshFace(StructRNA):
 
-    def _get_edge_keys(self):
+    @property
+    def edge_keys(self):
         verts = tuple(self.verts)
         if len(verts)==3:
             return ord_ind(verts[0], verts[1]),  ord_ind(verts[1], verts[2]),  ord_ind(verts[2], verts[0])
 
         return ord_ind(verts[0], verts[1]),  ord_ind(verts[1], verts[2]),  ord_ind(verts[2], verts[3]),  ord_ind(verts[3], verts[0])
 
-    edge_keys = property(_get_edge_keys)
-
 
 import collections
 class OrderedMeta(type):
@@ -145,7 +221,7 @@ class Menu(StructRNA):
             if f.startswith("."):
                 continue
 
-            layout.item_stringO(operator, "path", path, text=path_to_name(f))
+            layout.operator(operator, text=path_to_name(f)).path = path
     
     def draw_preset(self, context):
         '''Define these on the subclass
diff --git a/release/scripts/modules/rigify.py b/release/scripts/modules/rigify.py
new file mode 100644 (file)
index 0000000..3cdd2ba
--- /dev/null
@@ -0,0 +1,888 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+import bpy
+from functools import reduce
+from Mathutils import Vector
+
+# TODO, have these in a more general module
+from rna_prop_ui import rna_idprop_ui_get, rna_idprop_ui_prop_get
+
+empty_layer = [False] * 16
+
+def auto_class(slots, name="ContainerClass"):
+    return type(name, (object,), {"__slots__":tuple(slots)})
+    
+def auto_class_instance(slots, name="ContainerClass"):
+    return auto_class(slots, name)()
+
+
+
+def bone_class_instance(obj, slots, name="BoneContainer"):
+    for member in slots[:]:
+        slots.append(member + "_b") # bone bone
+        slots.append(member + "_p") # pose bone
+        slots.append(member + "_e") # edit bone
+    
+    slots.extend(["obj", "update"])
+    
+    instance = auto_class_instance(slots, name)
+    
+    def update():
+        '''
+        Re-Assigns bones from the blender data
+        '''
+        arm = obj.data
+        
+        bbones = arm.bones
+        pbones = obj.pose.bones
+        ebones = arm.edit_bones
+        
+        for member in slots:
+            
+            if member in ("update", "obj"):
+                continue
+            
+            if not member[-2] == "_":
+                name = getattr(instance, member, None)
+                if name is not None:
+                    setattr(instance, member + "_b", bbones.get(name, None))
+                    setattr(instance, member + "_p", pbones.get(name, None))
+                    setattr(instance, member + "_e", ebones.get(name, None))
+        
+    instance.update = update
+    
+    return instance
+
+def gen_none(obj, orig_bone_name):
+    pass
+
+def get_bone_data(obj, bone_name):
+    arm = obj.data
+    pbone = obj.pose.bones[bone_name]
+    if obj.mode == 'EDIT':
+        bone = arm.edit_bones[bone_name]
+    else:
+        bone = arm.bones[bone_name]
+    
+    return arm, pbone, bone
+
+def bone_basename(name):
+    return name.split(".")[0]
+
+def copy_bone_simple(arm, from_bone, name, parent=False):
+    ebone = arm.edit_bones[from_bone]
+    ebone_new = arm.edit_bones.new(name)
+    
+    if parent:
+        ebone_new.connected = ebone.connected
+        ebone_new.parent = ebone.parent
+    
+    ebone_new.head = ebone.head
+    ebone_new.tail = ebone.tail
+    ebone_new.roll = ebone.roll
+    return ebone_new
+
+
+def add_stretch_to(obj, from_name, to_name, name):
+    '''
+    Adds a bone that stretches from one to another
+    '''
+    
+    mode_orig = obj.mode
+    bpy.ops.object.mode_set(mode='EDIT')
+
+    arm = obj.data
+    stretch_ebone = arm.edit_bones.new(name)
+    stretch_name = stretch_ebone.name
+    del name
+    
+    head = stretch_ebone.head = arm.edit_bones[from_name].head.copy()
+    #tail = stretch_ebone.tail = arm.edit_bones[to_name].head.copy()
+    
+    # annoying exception for zero length bones, since its using stretch_to the rest pose doesnt really matter
+    #if (head - tail).length < 0.1:
+    if 1:
+        tail = stretch_ebone.tail = arm.edit_bones[from_name].tail.copy()
+
+
+    # Now for the constraint
+    bpy.ops.object.mode_set(mode='OBJECT')
+    from_pbone = obj.pose.bones[from_name]
+    to_pbone = obj.pose.bones[to_name]
+    
+    stretch_pbone = obj.pose.bones[stretch_name]
+    
+    con = stretch_pbone.constraints.new('COPY_LOCATION')
+    con.target = obj
+    con.subtarget = from_name
+    
+    con = stretch_pbone.constraints.new('STRETCH_TO')
+    con.target = obj
+    con.subtarget = to_name   
+    con.original_length = (head - tail).length
+    con.keep_axis = 'PLANE_X'
+    con.volume = 'NO_VOLUME'
+
+    bpy.ops.object.mode_set(mode=mode_orig)
+
+
+def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
+    '''
+    Does not actually create a poll target, just the bone to use as a poll target
+    '''
+    mode_orig = obj.mode
+    bpy.ops.object.mode_set(mode='EDIT')
+    
+    arm = obj.data
+    
+    poll_ebone = arm.edit_bones.new(base_name + "_poll")
+    base_ebone = arm.edit_bones[base_name]
+    poll_name = poll_ebone.name
+    parent_ebone = base_ebone.parent
+    
+    base_head = base_ebone.head.copy()
+    base_tail = base_ebone.tail.copy()
+    base_dir = base_head - base_tail
+    
+    parent_head = parent_ebone.head.copy()
+    parent_tail = parent_ebone.tail.copy()
+    parent_dir = parent_head - parent_tail
+    
+    distance = (base_dir.length + parent_dir.length)
+    
+    if mode == 'CROSS':
+        offset = base_dir.copy().normalize() - parent_dir.copy().normalize()
+        offset.length = distance
+    else:
+        offset = Vector(0,0,0)
+        if mode[0]=="+":
+            val = distance
+        else:
+            val = -distance
+        
+        setattr(offset, mode[1].lower(), val)
+    
+    poll_ebone.head = base_head + offset
+    poll_ebone.tail = base_head + (offset * (1.0 - (1.0 / 4.0)))
+    
+    bpy.ops.object.mode_set(mode=mode_orig)
+    
+    return poll_name
+
+
+def gen_finger(obj, orig_bone_name):
+    
+    # *** EDITMODE
+    
+    # get assosiated data 
+    arm, orig_pbone, orig_ebone = get_bone_data(obj, orig_bone_name)
+    
+    obj.animation_data_create() # needed if its a new armature with no keys
+    
+    arm.layer[0] = arm.layer[8] = True
+    
+    children = orig_pbone.children_recursive
+    tot_len = reduce(lambda f, pbone: f + pbone.bone.length, children, orig_pbone.bone.length)
+    
+    base_name = bone_basename(orig_pbone.name)
+    
+    # first make a new bone at the location of the finger
+    control_ebone = arm.edit_bones.new(base_name)
+    control_bone_name = control_ebone.name # we dont know if we get the name requested
+    
+    control_ebone.connected = orig_ebone.connected
+    control_ebone.parent = orig_ebone.parent
+    
+    # Place the finger bone
+    head = orig_ebone.head.copy()
+    tail = orig_ebone.tail.copy()
+    
+    control_ebone.head = head
+    control_ebone.tail = head + ((tail - head).normalize() * tot_len)
+    control_ebone.roll = orig_ebone.roll
+    
+    # now add bones inbetween this and its children recursively
+    
+    # switching modes so store names only!
+    children = [pbone.name for pbone in children]
+
+    # set an alternate layer for driver bones
+    other_layer = empty_layer[:]
+    other_layer[8] = True
+    
+
+    driver_bone_pairs = []
+
+    for child_bone_name in children:
+        arm, pbone_child, child_ebone = get_bone_data(obj, child_bone_name)
+        
+        # finger.02 --> finger_driver.02
+        driver_bone_name = child_bone_name.split('.')
+        driver_bone_name = driver_bone_name[0] + "_driver." + ".".join(driver_bone_name[1:])
+        
+        driver_ebone = arm.edit_bones.new(driver_bone_name)
+        driver_bone_name = driver_ebone.name # cant be too sure!
+        driver_ebone.layer = other_layer
+        
+        new_len = pbone_child.bone.length / 2.0
+
+        head = child_ebone.head.copy()
+        tail = child_ebone.tail.copy()
+        
+        driver_ebone.head = head
+        driver_ebone.tail = head + ((tail - head).normalize() * new_len)
+        driver_ebone.roll = child_ebone.roll
+        
+        # Insert driver_ebone in the chain without connected parents
+        driver_ebone.connected = False
+        driver_ebone.parent = child_ebone.parent
+        
+        child_ebone.connected = False
+        child_ebone.parent = driver_ebone
+        
+        # Add the drivers to these when in posemode.
+        driver_bone_pairs.append((child_bone_name, driver_bone_name))
+    
+    del control_ebone
+    
+
+    # *** POSEMODE
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    
+    arm, orig_pbone, orig_bone = get_bone_data(obj, orig_bone_name)
+    arm, control_pbone, control_bone= get_bone_data(obj, control_bone_name)
+    
+    
+    # only allow Y scale
+    control_pbone.lock_scale = (True, False, True)
+    
+    control_pbone["bend_ratio"] = 0.4
+    prop = rna_idprop_ui_prop_get(control_pbone, "bend_ratio", create=True)
+    prop["soft_min"] = 0.0
+    prop["soft_max"] = 1.0
+    
+    con = orig_pbone.constraints.new('COPY_LOCATION')
+    con.target = obj
+    con.subtarget = control_bone_name
+    
+    con = orig_pbone.constraints.new('COPY_ROTATION')
+    con.target = obj
+    con.subtarget = control_bone_name
+    
+    
+    
+    # setup child drivers on each new smaller bone added. assume 2 for now.
+    
+    # drives the bones
+    controller_path = control_pbone.path_to_id() # 'pose.bones["%s"]' % control_bone_name
+
+    i = 0
+    for child_bone_name, driver_bone_name in driver_bone_pairs:
+
+        # XXX - todo, any number
+        if i==2:
+            break
+        
+        arm, driver_pbone, driver_bone = get_bone_data(obj, driver_bone_name)
+        
+        driver_pbone.rotation_mode = 'YZX'
+        fcurve_driver = driver_pbone.driver_add("rotation_euler", 0)
+        
+        #obj.driver_add('pose.bones["%s"].scale', 1)
+        #obj.animation_data.drivers[-1] # XXX, WATCH THIS
+        driver = fcurve_driver.driver
+        
+        # scale target
+        tar = driver.targets.new()
+        tar.name = "scale"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = controller_path + '.scale[1]'
+
+        # bend target
+        tar = driver.targets.new()
+        tar.name = "br"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = controller_path + '["bend_ratio"]'
+
+        # XXX - todo, any number
+        if i==0:
+            driver.expression = '(-scale+1.0)*pi*2.0*(1.0-br)'
+        elif i==1:
+            driver.expression = '(-scale+1.0)*pi*2.0*br'
+        
+        arm, child_pbone, child_bone = get_bone_data(obj, child_bone_name)
+
+        # only allow X rotation
+        driver_pbone.lock_rotation = child_pbone.lock_rotation = (False, True, True)
+        
+        i += 1
+
+
+def gen_delta(obj, delta_name):
+    '''
+    Use this bone to define a delta thats applied to its child in pose mode.
+    '''
+    
+    arm = obj.data
+    
+    mode_orig = obj.mode
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    delta_pbone = obj.pose.bones[delta_name]
+    children = delta_pbone.children
+    
+    if len(children) != 1:
+        print("only 1 child supported for delta")
+    
+    child_name = children[0].name
+    arm, child_pbone, child_bone = get_bone_data(obj, child_name)
+    
+    delta_phead = delta_pbone.head.copy()
+    delta_ptail = delta_pbone.tail.copy()
+    delta_pmatrix = delta_pbone.matrix.copy()
+    
+    child_phead = child_pbone.head.copy()
+    child_ptail = child_pbone.tail.copy()
+    child_pmatrix = child_pbone.matrix.copy()
+    
+    
+    children = delta_pbone.children
+
+    bpy.ops.object.mode_set(mode='EDIT')
+    
+    delta_ebone = arm.edit_bones[delta_name]
+    child_ebone = arm.edit_bones[child_name]
+    
+    delta_head = delta_ebone.head.copy()
+    delta_tail = delta_ebone.tail.copy()    
+    
+    # arm, parent_pbone, parent_bone = get_bone_data(obj, delta_name)
+    child_head = child_ebone.head.copy()
+    child_tail = child_ebone.tail.copy()
+    
+    arm.edit_bones.remove(delta_ebone)
+    del delta_ebone # cant use thz
+    
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    
+    # Move the child bone to the deltas location
+    obj.animation_data_create()
+    child_pbone = obj.pose.bones[child_name]
+    
+    # ------------------- drivers
+    
+    child_pbone.rotation_mode = 'XYZ'
+    
+    rot =  delta_pmatrix.invert().rotationPart() * child_pmatrix.rotationPart()
+    rot = rot.invert().toEuler()
+    
+    fcurve_drivers = child_pbone.driver_add("rotation_euler", -1)
+    for i, fcurve_driver in enumerate(fcurve_drivers):
+        driver = fcurve_driver.driver
+        driver.type = 'AVERAGE'
+        #mod = fcurve_driver.modifiers.new('GENERATOR')
+        mod = fcurve_driver.modifiers[0]
+        mod.poly_order = 1
+        mod.coefficients[0] = rot[i]
+        mod.coefficients[1] = 0.0
+    
+    # tricky, find the transform to drive the bone to this location.
+    delta_head_offset =  child_pmatrix.rotationPart() * (delta_phead - child_phead)
+    
+    fcurve_drivers = child_pbone.driver_add("location", -1)
+    for i, fcurve_driver in enumerate(fcurve_drivers):
+        driver = fcurve_driver.driver
+        driver.type = 'AVERAGE'
+        #mod = fcurve_driver.modifiers.new('GENERATOR')
+        mod = fcurve_driver.modifiers[0]
+        mod.poly_order = 1
+        mod.coefficients[0] = delta_head_offset[i]
+        mod.coefficients[1] = 0.0
+    
+    
+    # arm, parent_pbone, parent_bone = get_bone_data(obj, delta_name)
+    bpy.ops.object.mode_set(mode='EDIT')
+    
+    bpy.ops.object.mode_set(mode=mode_orig)
+
+
+def gen_arm(obj, orig_bone_name):
+    """
+    the bone with the 'arm' property is the upper arm, this assumes a chain as follows.
+    [shoulder, upper_arm, forearm, hand]
+    ...where this bone is 'upper_arm'
+    
+    there are 3 chains
+    - Original
+    - IK, MCH-%s_ik
+    - IKSwitch, MCH-%s ()
+    """
+    
+    # Since there are 3 chains, this gets confusing so divide into 3 chains
+    # Initialize container classes for convenience
+    mt = bone_class_instance(obj, ["shoulder", "arm", "forearm", "hand"]) # meta
+    ik = bone_class_instance(obj, ["arm", "forearm", "pole", "hand"]) # ik
+    sw = bone_class_instance(obj, ["socket", "shoulder", "arm", "forearm", "hand"]) # hinge
+    ex = bone_class_instance(obj, ["arm_hinge"]) # hinge & extras
+    
+    
+    def chain_init():
+        '''
+        Sanity check and return the arm as a list of bone names.
+        '''
+        # do a sanity check
+        mt.arm = orig_bone_name
+        mt.update()
+        
+        mt.shoulder_p = mt.arm_p.parent
+        mt.shoulder = mt.shoulder_p.name
+        
+        if not mt.shoulder_p:
+            print("could not find 'arm' parent, skipping:", orig_bone_name)
+            return
+
+        # We could have some bones attached, find the bone that has this as its 2nd parent
+        hands = []
+        for pbone in obj.pose.bones:
+            index = pbone.parent_index(mt.arm_p)
+            if index == 2:
+                hands.append(pbone)
+
+        if len(hands) > 1:
+            print("more then 1 hand found on:", orig_bone_name)
+            return
+
+        # first add the 2 new bones
+        mt.hand_p = hands[0]
+        mt.hand = mt.hand_p.name
+
+        mt.forearm_p = mt.hand_p.parent
+        mt.forearm = mt.forearm_p.name
+    
+    arm = obj.data
+    
+    
+    def chain_ik(prefix="MCH-%s_ik"):
+        
+        mt.update()
+        
+        # Add the edit bones
+        ik.hand_e = copy_bone_simple(arm, mt.hand, prefix % mt.hand)
+        ik.hand = ik.hand_e.name
+        
+        ik.arm_e = copy_bone_simple(arm, mt.arm, prefix % mt.arm)
+        ik.arm = ik.arm_e.name
+
+        ik.forearm_e = copy_bone_simple(arm, mt.forearm, prefix % mt.forearm)
+        ik.forearm = ik.forearm_e.name
+
+        ik.arm_e.parent = mt.arm_e.parent
+        ik.forearm_e.connected = mt.arm_e.connected
+        
+        ik.forearm_e.parent = ik.arm_e
+        ik.forearm_e.connected = True
+        
+        
+        # Add the bone used for the arms poll target
+        ik.pole = add_pole_target_bone(obj, mt.forearm, "elbow_poll", mode='+Z')
+        
+        bpy.ops.object.mode_set(mode='OBJECT')
+        
+        ik.update()
+        
+        con = ik.forearm_p.constraints.new('IK')
+        con.target = obj
+        con.subtarget = ik.hand
+        con.pole_target = obj
+        con.pole_subtarget = ik.pole
+        
+        con.use_tail = True
+        con.use_stretch = True
+        con.use_target = True
+        con.use_rotation =  False
+        con.chain_length = 2
+        con.pole_angle = -90.0 # XXX, RAD2DEG
+        
+        # ID Propery on the hand for IK/FK switch
+        
+        prop = rna_idprop_ui_prop_get(ik.hand_p, "ik", create=True)
+        ik.hand_p["ik"] = 0.5
+        prop["soft_min"] = 0.0
+        prop["soft_max"] = 1.0
+        
+        bpy.ops.object.mode_set(mode='EDIT')
+        
+        ik.arm = ik.arm
+        ik.forearm = ik.forearm
+        ik.hand = ik.hand
+        ik.pole = ik.pole
+    
+    def chain_switch(prefix="MCH-%s"):
+        
+        sw.update()
+        mt.update()
+        
+        sw.shoulder_e = copy_bone_simple(arm, mt.shoulder, prefix % mt.shoulder)
+        sw.shoulder = sw.shoulder_e.name
+        sw.shoulder_e.parent = mt.shoulder_e.parent
+        sw.shoulder_e.connected = mt.shoulder_e.connected
+
+        sw.arm_e = copy_bone_simple(arm, mt.arm, prefix % mt.arm)
+        sw.arm = sw.arm_e.name
+        sw.arm_e.parent = sw.shoulder_e
+        sw.arm_e.connected = arm.edit_bones[mt.shoulder].connected
+        
+        sw.forearm_e = copy_bone_simple(arm, mt.forearm, prefix % mt.forearm)
+        sw.forearm = sw.forearm_e.name
+        sw.forearm_e.parent = sw.arm_e
+        sw.forearm_e.connected = arm.edit_bones[mt.forearm].connected
+
+        sw.hand_e = copy_bone_simple(arm, mt.hand, prefix % mt.hand)
+        sw.hand = sw.hand_e.name
+        sw.hand_e.parent = sw.forearm_e
+        sw.hand_e.connected = arm.edit_bones[mt.hand].connected
+        
+        # The sw.hand_e needs to own all the children on the metarig's hand
+        for child in mt.hand_e.children:
+            child.parent = sw.hand_e
+        
+        
+        # These are made the children of sw.shoulder_e
+        
+        
+        bpy.ops.object.mode_set(mode='OBJECT')
+        
+        # Add constraints
+        sw.update()
+        
+        #dummy, ik.arm, ik.forearm, ik.hand, ik.pole = ik_chain_tuple
+        
+        ik_driver_path = obj.pose.bones[ik.hand].path_to_id() + '["ik"]'
+        
+        
+        def ik_fk_driver(con):
+            '''
+            3 bones use this for ik/fk switching
+            '''
+            fcurve = con.driver_add("influence", 0)
+            driver = fcurve.driver
+            tar = driver.targets.new()
+            driver.type = 'AVERAGE'
+            tar.name = "ik"
+            tar.id_type = 'OBJECT'
+            tar.id = obj
+            tar.rna_path = ik_driver_path
+
+        # ***********
+        con = sw.arm_p.constraints.new('COPY_ROTATION')
+        con.name = "FK"
+        con.target = obj
+        con.subtarget = mt.arm
+
+        con = sw.arm_p.constraints.new('COPY_ROTATION')
+
+        con.target = obj
+        con.subtarget = ik.arm
+        con.influence = 0.5
+        ik_fk_driver(con)
+        
+        # ***********
+        con = sw.forearm_p.constraints.new('COPY_ROTATION')
+        con.name = "FK"
+        con.target = obj
+        con.subtarget = mt.forearm
+
+        con = sw.forearm_p.constraints.new('COPY_ROTATION')
+        con.name = "IK"
+        con.target = obj
+        con.subtarget = ik.forearm
+        con.influence = 0.5
+        ik_fk_driver(con)
+        
+        # ***********
+        con = sw.hand_p.constraints.new('COPY_ROTATION')
+        con.name = "FK"
+        con.target = obj
+        con.subtarget = mt.hand
+
+        con = sw.hand_p.constraints.new('COPY_ROTATION')
+        con.name = "IK"
+        con.target = obj
+        con.subtarget = ik.hand
+        con.influence = 0.5
+        ik_fk_driver(con)
+        
+        
+        add_stretch_to(obj, sw.forearm, ik.pole, "VIS-elbow_ik_poll")
+        add_stretch_to(obj, sw.hand, ik.hand, "VIS-hand_ik")
+        
+        bpy.ops.object.mode_set(mode='EDIT')
+
+
+    def chain_shoulder(prefix="MCH-%s"):
+
+        sw.socket_e = copy_bone_simple(arm, mt.arm, (prefix % mt.arm) + "_socket")
+        sw.socket = sw.socket_e.name
+        sw.socket_e.tail = arm.edit_bones[mt.shoulder].tail
+        
+        
+        # Set the shoulder as parent
+        ik.update()
+        sw.update()
+        mt.update()
+        
+        sw.socket_e.parent = sw.shoulder_e
+        ik.arm_e.parent = sw.shoulder_e
+        
+        
+        # ***** add the shoulder hinge
+        # yes this is correct, the shoulder copy gets the arm's name
+        ex.arm_hinge_e = copy_bone_simple(arm, mt.shoulder, (prefix % mt.arm) + "_hinge")
+        ex.arm_hinge = ex.arm_hinge_e.name
+        offset = ex.arm_hinge_e.length / 2.0
+        
+        ex.arm_hinge_e.head.y += offset
+        ex.arm_hinge_e.tail.y += offset
+        
+        # Note: meta arm becomes child of hinge
+        mt.arm_e.parent = ex.arm_hinge_e
+        
+        
+        bpy.ops.object.mode_set(mode='OBJECT')
+        
+        ex.update()
+        
+        con = mt.arm_p.constraints.new('COPY_LOCATION')
+        con.target = obj
+        con.subtarget = sw.socket
+        
+        
+        # Hinge constraint & driver
+        con = ex.arm_hinge_p.constraints.new('COPY_ROTATION')
+        con.name = "hinge"
+        con.target = obj
+        con.subtarget = sw.shoulder
+        driver_fcurve = con.driver_add("influence", 0)
+        driver = driver_fcurve.driver
+
+        
+        controller_path = mt.arm_p.path_to_id()
+        # add custom prop
+        mt.arm_p["hinge"] = 0.0
+        prop = rna_idprop_ui_prop_get(mt.arm_p, "hinge", create=True)
+        prop["soft_min"] = 0.0
+        prop["soft_max"] = 1.0
+        
+        
+        # *****
+        driver = driver_fcurve.driver
+        driver.type = 'AVERAGE'
+        
+        tar = driver.targets.new()
+        tar.name = "hinge"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = controller_path + '["hinge"]'
+        
+        
+        bpy.ops.object.mode_set(mode='EDIT')
+        
+        # remove the shoulder and re-parent 
+        
+        
+    
+    chain_init()
+    chain_ik()
+    chain_switch()
+    chain_shoulder()
+    
+    # Shoulder with its delta and hinge.
+    
+    
+    
+
+
+def gen_palm(obj, orig_bone_name):
+    arm, palm_pbone, palm_ebone = get_bone_data(obj, orig_bone_name)
+    children = [ebone.name for ebone in palm_ebone.children]
+    children.sort() # simply assume the pinky has the lowest name
+    
+    # Make a copy of the pinky
+    pinky_ebone = arm.edit_bones[children[0]]
+    control_ebone = copy_bone_simple(arm, pinky_ebone.name, "palm_control", parent=True)
+    control_name = control_ebone.name 
+    
+    offset = (arm.edit_bones[children[0]].head - arm.edit_bones[children[1]].head)
+    
+    control_ebone.head += offset
+    control_ebone.tail += offset
+    
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    
+    arm, control_pbone, control_ebone = get_bone_data(obj, control_name)
+    arm, pinky_pbone, pinky_ebone = get_bone_data(obj, children[0])
+    
+    control_pbone.rotation_mode = 'YZX'
+    control_pbone.lock_rotation = False, True, True
+    
+    driver_fcurves = pinky_pbone.driver_add("rotation_euler")
+    
+    
+    controller_path = control_pbone.path_to_id()
+    
+    # add custom prop
+    control_pbone["spread"] = 0.0
+    prop = rna_idprop_ui_prop_get(control_pbone, "spread", create=True)
+    prop["soft_min"] = -1.0
+    prop["soft_max"] = 1.0
+    
+    
+    # *****
+    driver = driver_fcurves[0].driver
+    driver.type = 'AVERAGE'
+    
+    tar = driver.targets.new()
+    tar.name = "x"
+    tar.id_type = 'OBJECT'
+    tar.id = obj
+    tar.rna_path = controller_path + ".rotation_euler[0]"
+    
+    
+    # *****
+    driver = driver_fcurves[1].driver
+    driver.expression = "-x/4.0"
+    
+    tar = driver.targets.new()
+    tar.name = "x"
+    tar.id_type = 'OBJECT'
+    tar.id = obj
+    tar.rna_path = controller_path + ".rotation_euler[0]"
+    
+    
+    # *****
+    driver = driver_fcurves[2].driver
+    driver.expression = "(1.0-cos(x))-s"
+    tar = driver.targets.new()
+    tar.name = "x"
+    tar.id_type = 'OBJECT'
+    tar.id = obj
+    tar.rna_path = controller_path + ".rotation_euler[0]"
+    
+    tar = driver.targets.new()
+    tar.name = "s"
+    tar.id_type = 'OBJECT'
+    tar.id = obj
+    tar.rna_path = controller_path + '["spread"]'
+
+
+    for i, child_name in enumerate(children):
+        child_pbone = obj.pose.bones[child_name]
+        child_pbone.rotation_mode = 'YZX'
+        
+        if child_name != children[-1] and child_name != children[0]:
+            
+            # this is somewhat arbitrary but seems to look good
+            inf = i / (len(children)+1)
+            inf = 1.0 - inf
+            inf = ((inf * inf) + inf) / 2.0
+            
+            # used for X/Y constraint
+            inf_minor = inf * inf
+            
+            con = child_pbone.constraints.new('COPY_ROTATION')
+            con.name = "Copy Z Rot"
+            con.target = obj
+            con.subtarget = children[0] # also pinky_pbone
+            con.owner_space = con.target_space = 'LOCAL'
+            con.use_x, con.use_y, con.use_z = False, False, True
+            con.influence = inf
+
+            con = child_pbone.constraints.new('COPY_ROTATION')
+            con.name = "Copy XY Rot"
+            con.target = obj
+            con.subtarget = children[0] # also pinky_pbone
+            con.owner_space = con.target_space = 'LOCAL'
+            con.use_x, con.use_y, con.use_z = True, True, False
+            con.influence = inf_minor
+
+
+    child_pbone = obj.pose.bones[children[-1]]
+    child_pbone.rotation_mode = 'QUATERNION'
+
+
+gen_table = {
+    "":gen_none, \
+    "finger":gen_finger, \
+    "delta":gen_delta, \
+    "arm":gen_arm, \
+    "palm":gen_palm, \
+}
+
+def generate_rig(context, ob):
+    
+    global_undo = context.user_preferences.edit.global_undo
+    context.user_preferences.edit.global_undo = False
+    
+    # add_stretch_to(ob, "a", "b", "c")
+
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    
+    # copy object and data
+    ob.selected = False
+    ob_new = ob.copy()
+    ob_new.data = ob.data.copy()
+    scene = context.scene
+    scene.objects.link(ob_new)
+    scene.objects.active = ob_new
+    ob_new.selected = True
+    
+    # enter armature editmode
+    
+    
+    for pbone_name in ob_new.pose.bones.keys():
+        bone_type = ob_new.pose.bones[pbone_name].get("type", "")
+
+        try:
+            func = gen_table[bone_type]
+        except KeyError:
+            print("\tunknown type '%s', bone '%s'" % (bone_type, pbone_name))
+
+        
+        # Toggle editmode so the pose data is always up to date
+        bpy.ops.object.mode_set(mode='EDIT')
+        func(ob_new, pbone_name)
+        bpy.ops.object.mode_set(mode='OBJECT')
+    
+    # needed to update driver deps
+    # context.scene.update()
+    
+    # Only for demo'ing
+    ob.restrict_view = True
+    ob_new.data.draw_axes = False
+    
+    context.user_preferences.edit.global_undo = global_undo
+
+if __name__ == "__main__":
+    generate_rig(bpy.context, bpy.context.object)
index badd37db83e938d2e846e09285e3b2708cb17963..d19449f9404e1d1f2e4a7c5badbc2c5e0f19a13a 100644 (file)
@@ -69,13 +69,17 @@ def draw(layout, context, context_member, use_edit = True):
             pass
 
     rna_item = eval("context." + context_member)
+    
+    # poll should really get this...
+    if not rna_item:
+        return
 
     items = rna_item.items()
     items.sort()
 
     if use_edit:
         row = layout.row()
-        props = row.itemO("wm.properties_add", properties=True, text="Add")
+        props = row.operator("wm.properties_add", text="Add")
         props.path = context_member
         del row
 
@@ -102,20 +106,20 @@ def draw(layout, context, context_member, use_edit = True):
         else:
             row = box.row()
 
-        row.itemL(text=key)
+        row.label(text=key)
 
         # explicit exception for arrays
         if convert_to_pyobject and not hasattr(val_orig, "len"):
-            row.itemL(text=val_draw)
+            row.label(text=val_draw)
         else:
-            row.itemR(rna_item, '["%s"]' % key, text="")
+            row.prop(rna_item, '["%s"]' % key, text="")
 
         if use_edit:
             row = split.row(align=True)
-            prop = row.itemO("wm.properties_edit", properties=True, text="edit")
+            prop = row.operator("wm.properties_edit", text="edit")
             assign_props(prop, val_draw, key)
 
-            prop = row.itemO("wm.properties_remove", properties=True, text="", icon='ICON_ZOOMOUT')
+            prop = row.operator("wm.properties_remove", text="", icon='ICON_ZOOMOUT')
             assign_props(prop, val_draw, key)
 
 
@@ -177,6 +181,7 @@ class WM_OT_properties_edit(bpy.types.Operator):
         exec_str = "item['%s'] = %s" % (prop, value_eval)
         # print(exec_str)
         exec(exec_str)
+        self._last_prop[:] = [prop]
 
         prop_type = type(item[prop])
 
index 33866de18bb781f65eceb403638c32551421fe9e..fe8feecf43d3df4782284ee1cf872422f676cea7 100644 (file)
@@ -130,7 +130,7 @@ bpy.ops.add(AddTorus)
 # Add to a menu
 import dynamic_menu
 
-menu_func = (lambda self, context: self.layout.itemO(AddTorus.bl_idname,
+menu_func = (lambda self, context: self.layout.operator(AddTorus.bl_idname,
                                         text="Torus", icon='ICON_MESH_DONUT'))
 
 menu_item = dynamic_menu.add(bpy.types.INFO_MT_mesh_add, menu_func)
index 9416ee24e14f6b38c5d3bdc40c4be991a0a0534d..5cf526cc23ed74298fc87380046d595391087183 100644 (file)
@@ -4,12 +4,12 @@
 #  modify it under the terms of the GNU General Public License
 #  as published by the Free Software Foundation; either version 2
 #  of the License, or (at your option) any later version.
-# 
+#
 #  This program is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-# 
+#
 #  You should have received a copy of the GNU General Public License
 #  along with this program; if not, write to the Free Software Foundation,
 #  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
@@ -29,620 +29,620 @@ from Mathutils import AngleBetweenVecs as _AngleBetweenVecs_
 BIG_NUM = 1<<30
 
 global CULL_METHOD
-CULL_METHOD = 0 
+CULL_METHOD = 0
 
 def AngleBetweenVecs(a1,a2):
-       import math
-       try:
-               return math.degrees(_AngleBetweenVecs_(a1,a2))
-       except:
-               return 180.0
+    import math
+    try:
+        return math.degrees(_AngleBetweenVecs_(a1,a2))
+    except:
+        return 180.0
 
 class edge(object):
-       __slots__ = 'v1', 'v2', 'co1', 'co2', 'length', 'removed', 'match', 'cent', 'angle', 'next', 'prev', 'normal', 'fake'
-       def __init__(self, v1,v2):
-               self.v1 = v1
-               self.v2 = v2
-               co1, co2= v1.co, v2.co
-               self.co1= co1
-               self.co2= co2
-               
-               # uv1 uv2 vcol1 vcol2 # Add later
-               self.length = (co1 - co2).length
-               self.removed = 0        # Have we been culled from the eloop
-               self.match = None       # The other edge were making a face with
-               
-               self.cent= MidpointVecs(co1, co2)
-               self.angle= 0.0
-               self.fake= False
+    __slots__ = 'v1', 'v2', 'co1', 'co2', 'length', 'removed', 'match', 'cent', 'angle', 'next', 'prev', 'normal', 'fake'
+    def __init__(self, v1,v2):
+        self.v1 = v1
+        self.v2 = v2
+        co1, co2= v1.co, v2.co
+        self.co1= co1
+        self.co2= co2
+
+        # uv1 uv2 vcol1 vcol2 # Add later
+        self.length = (co1 - co2).length
+        self.removed = 0       # Have we been culled from the eloop
+        self.match = None      # The other edge were making a face with
+
+        self.cent= MidpointVecs(co1, co2)
+        self.angle= 0.0
+        self.fake= False
 
 class edgeLoop(object):
-       __slots__ = 'centre', 'edges', 'normal', 'closed', 'backup_edges'
-       def __init__(self, loop, me, closed): # Vert loop
-               # Use next and prev, nextDist, prevDist
-               
-               # Get Loops centre.
-               fac= len(loop)
-               verts = me.verts
-               self.centre= functools.reduce(lambda a,b: a+verts[b].co/fac, loop, Vector())
-               
-               # Convert Vert loop to Edges.
-               self.edges = [edge(verts[loop[vIdx-1]], verts[loop[vIdx]]) for vIdx in range(len(loop))]
-               
-               if not closed:
-                       self.edges[0].fake = True # fake edge option
-                       
-               self.closed = closed
-                       
-               
-               # Assign linked list
-               for eIdx in range(len(self.edges)-1):
-                       self.edges[eIdx].next = self.edges[eIdx+1]
-                       self.edges[eIdx].prev = self.edges[eIdx-1]
-               # Now last
-               self.edges[-1].next = self.edges[0]
-               self.edges[-1].prev = self.edges[-2]
-               
-               
-               
-               # GENERATE AN AVERAGE NORMAL FOR THE WHOLE LOOP.
-               self.normal = Vector()
-               for e in self.edges:
-                       n = (self.centre-e.co1).cross(self.centre-e.co2)
-                       # Do we realy need tot normalize?
-                       n.normalize()
-                       self.normal += n
-                       
-                       # Generate the angle
-                       va= e.cent - e.prev.cent
-                       vb= e.next.cent - e.cent
-                       
-                       e.angle= AngleBetweenVecs(va, vb)
-               
-               # Blur the angles
-               #for e in self.edges:
-               #       e.angle= (e.angle+e.next.angle)/2
-               
-               # Blur the angles
-               #for e in self.edges:
-               #       e.angle= (e.angle+e.prev.angle)/2
-                       
-               self.normal.normalize()
-               
-               # Generate a normal for each edge.
-               for e in self.edges:
-                       
-                       n1 = e.co1
-                       n2 = e.co2
-                       n3 = e.prev.co1
-                       
-                       a = n1-n2
-                       b = n1-n3
-                       normal1 = a.cross(b)
-                       normal1.normalize()
-                       
-                       n1 = e.co2
-                       n3 = e.next.co2
-                       n2 = e.co1
-                       
-                       a = n1-n2
-                       b = n1-n3
-                       
-                       normal2 = a.cross(b)
-                       normal2.normalize()
-                       
-                       # Reuse normal1 var
-                       normal1 += normal1 + normal2
-                       normal1.normalize()
-                       
-                       e.normal = normal1
-                       #print e.normal
-
-
-               
-       def backup(self):
-               # Keep a backup of the edges
-               self.backup_edges = self.edges[:]
-                       
-       def restore(self):
-               self.edges = self.backup_edges[:]
-               for e in self.edges:
-                       e.removed = 0
-               
-       def reverse(self):
-               self.edges.reverse()
-               self.normal.negate()
-               
-               for e in self.edges:
-                       e.normal.negate()
-                       e.v1, e.v2 = e.v2, e.v1
-                       e.co1, e.co2 = e.co2, e.co1
-                       e.next, e.prev = e.prev, e.next
-               
-       
-       def removeSmallest(self, cullNum, otherLoopLen):
-               '''
-               Removes N Smallest edges and backs up the loop,
-               this is so we can loop between 2 loops as if they are the same length,
-               backing up and restoring incase the loop needs to be skinned with another loop of a different length.
-               '''
-               global CULL_METHOD
-               if CULL_METHOD == 1: # Shortest edge
-                       eloopCopy = self.edges[:]
-                       
-                       # Length sort, smallest first
-                       try:    eloopCopy.sort(key = lambda e1: e1.length)
-                       except: eloopCopy.sort(lambda e1, e2: cmp(e1.length, e2.length ))
-                       
-                       # Dont use atm
-                       #eloopCopy.sort(lambda e1, e2: cmp(e1.angle*e1.length, e2.angle*e2.length)) # Length sort, smallest first
-                       #eloopCopy.sort(lambda e1, e2: cmp(e1.angle, e2.angle)) # Length sort, smallest first
-                       
-                       remNum = 0
-                       for i, e in enumerate(eloopCopy):
-                               if not e.fake:
-                                       e.removed = 1
-                                       self.edges.remove( e ) # Remove from own list, still in linked list.
-                                       remNum += 1
-                               
-                                       if not remNum < cullNum:
-                                               break
-                       
-               else: # CULL METHOD is even
-                               
-                       culled = 0
-                       
-                       step = int(otherLoopLen / float(cullNum)) * 2
-                       
-                       currentEdge = self.edges[0]
-                       while culled < cullNum:
-                               
-                               # Get the shortest face in the next STEP
-                               step_count= 0
-                               bestAng= 360.0
-                               smallestEdge= None
-                               while step_count<=step or smallestEdge==None:
-                                       step_count+=1
-                                       if not currentEdge.removed: # 0 or -1 will not be accepted
-                                               if currentEdge.angle<bestAng and not currentEdge.fake:
-                                                       smallestEdge= currentEdge
-                                                       bestAng= currentEdge.angle
-                                       
-                                       currentEdge = currentEdge.next
-                               
-                               # In that stepping length we have the smallest edge.remove it
-                               smallestEdge.removed = 1
-                               self.edges.remove(smallestEdge)
-                               
-                               # Start scanning from the edge we found? - result is over fanning- no good.
-                               #currentEdge= smallestEdge.next
-                               
-                               culled+=1
-       
+    __slots__ = 'centre', 'edges', 'normal', 'closed', 'backup_edges'
+    def __init__(self, loop, me, closed): # Vert loop
+        # Use next and prev, nextDist, prevDist
+
+        # Get Loops centre.
+        fac= len(loop)
+        verts = me.verts
+        self.centre= functools.reduce(lambda a,b: a+verts[b].co/fac, loop, Vector())
+
+        # Convert Vert loop to Edges.
+        self.edges = [edge(verts[loop[vIdx-1]], verts[loop[vIdx]]) for vIdx in range(len(loop))]
+
+        if not closed:
+            self.edges[0].fake = True # fake edge option
+
+        self.closed = closed
+
+
+        # Assign linked list
+        for eIdx in range(len(self.edges)-1):
+            self.edges[eIdx].next = self.edges[eIdx+1]
+            self.edges[eIdx].prev = self.edges[eIdx-1]
+        # Now last
+        self.edges[-1].next = self.edges[0]
+        self.edges[-1].prev = self.edges[-2]
+
+
+
+        # GENERATE AN AVERAGE NORMAL FOR THE WHOLE LOOP.
+        self.normal = Vector()
+        for e in self.edges:
+            n = (self.centre-e.co1).cross(self.centre-e.co2)
+            # Do we realy need tot normalize?
+            n.normalize()
+            self.normal += n
+
+            # Generate the angle
+            va= e.cent - e.prev.cent
+            vb= e.next.cent - e.cent
+
+            e.angle= AngleBetweenVecs(va, vb)
+
+        # Blur the angles
+        #for e in self.edges:
+        #      e.angle= (e.angle+e.next.angle)/2
+
+        # Blur the angles
+        #for e in self.edges:
+        #      e.angle= (e.angle+e.prev.angle)/2
+
+        self.normal.normalize()
+
+        # Generate a normal for each edge.
+        for e in self.edges:
+
+            n1 = e.co1
+            n2 = e.co2
+            n3 = e.prev.co1
+
+            a = n1-n2
+            b = n1-n3
+            normal1 = a.cross(b)
+            normal1.normalize()
+
+            n1 = e.co2
+            n3 = e.next.co2
+            n2 = e.co1
+
+            a = n1-n2
+            b = n1-n3
+
+            normal2 = a.cross(b)
+            normal2.normalize()
+
+            # Reuse normal1 var
+            normal1 += normal1 + normal2
+            normal1.normalize()
+
+            e.normal = normal1
+            #print e.normal
+
+
+
+    def backup(self):
+        # Keep a backup of the edges
+        self.backup_edges = self.edges[:]
+
+    def restore(self):
+        self.edges = self.backup_edges[:]
+        for e in self.edges:
+            e.removed = 0
+
+    def reverse(self):
+        self.edges.reverse()
+        self.normal.negate()
+
+        for e in self.edges:
+            e.normal.negate()
+            e.v1, e.v2 = e.v2, e.v1
+            e.co1, e.co2 = e.co2, e.co1
+            e.next, e.prev = e.prev, e.next
+
+
+    def removeSmallest(self, cullNum, otherLoopLen):
+        '''
+        Removes N Smallest edges and backs up the loop,
+        this is so we can loop between 2 loops as if they are the same length,
+        backing up and restoring incase the loop needs to be skinned with another loop of a different length.
+        '''
+        global CULL_METHOD
+        if CULL_METHOD == 1: # Shortest edge
+            eloopCopy = self.edges[:]
+
+            # Length sort, smallest first
+            try:       eloopCopy.sort(key = lambda e1: e1.length)
+            except:    eloopCopy.sort(lambda e1, e2: cmp(e1.length, e2.length ))
+
+            # Dont use atm
+            #eloopCopy.sort(lambda e1, e2: cmp(e1.angle*e1.length, e2.angle*e2.length)) # Length sort, smallest first
+            #eloopCopy.sort(lambda e1, e2: cmp(e1.angle, e2.angle)) # Length sort, smallest first
+
+            remNum = 0
+            for i, e in enumerate(eloopCopy):
+                if not e.fake:
+                    e.removed = 1
+                    self.edges.remove( e ) # Remove from own list, still in linked list.
+                    remNum += 1
+
+                    if not remNum < cullNum:
+                        break
+
+        else: # CULL METHOD is even
+
+            culled = 0
+
+            step = int(otherLoopLen / float(cullNum)) * 2
+
+            currentEdge = self.edges[0]
+            while culled < cullNum:
+
+                # Get the shortest face in the next STEP
+                step_count= 0
+                bestAng= 360.0
+                smallestEdge= None
+                while step_count<=step or smallestEdge==None:
+                    step_count+=1
+                    if not currentEdge.removed: # 0 or -1 will not be accepted
+                        if currentEdge.angle<bestAng and not currentEdge.fake:
+                            smallestEdge= currentEdge
+                            bestAng= currentEdge.angle
+
+                    currentEdge = currentEdge.next
+
+                # In that stepping length we have the smallest edge.remove it
+                smallestEdge.removed = 1
+                self.edges.remove(smallestEdge)
+
+                # Start scanning from the edge we found? - result is over fanning- no good.
+                #currentEdge= smallestEdge.next
+
+                culled+=1
+
 
 # Returns face edges.
 # face must have edge data.
-       
+
 def mesh_faces_extend(me, faces, mat_idx = 0):
-       orig_facetot = len(me.faces)
-       new_facetot = len(faces)
-       me.add_geometry(0, 0, new_facetot)
-       tot = orig_facetot+new_facetot
-       me_faces = me.faces
-       i= 0
-       while i < new_facetot:
-               
-               f = [v.index for v in faces[i]]
-               if len(f)==4:
-                       if f[3]==0:
-                               f = f[1], f[2], f[3], f[0]
-               else:
-                       f = f[0], f[1], f[2], 0
-
-               mf = me_faces[orig_facetot+i]
-               mf.verts_raw =  f
-               mf.material_index = mat_idx
-               i+=1
+    orig_facetot = len(me.faces)
+    new_facetot = len(faces)
+    me.add_geometry(0, 0, new_facetot)
+    tot = orig_facetot+new_facetot
+    me_faces = me.faces
+    i= 0
+    while i < new_facetot:
+
+        f = [v.index for v in faces[i]]
+        if len(f)==4:
+            if f[3]==0:
+                f = f[1], f[2], f[3], f[0]
+        else:
+            f = f[0], f[1], f[2], 0
+
+        mf = me_faces[orig_facetot+i]
+        mf.verts_raw =  f
+        mf.material_index = mat_idx
+        i+=1
 # end utils
 
 
 def getSelectedEdges(context, me, ob):
-       MESH_MODE= context.scene.tool_settings.mesh_selection_mode
-       
-       if MESH_MODE in ('EDGE', 'VERTEX'):
-               context.scene.tool_settings.mesh_selection_mode = 'EDGE'
-               edges= [ ed for ed in me.edges if ed.selected ]
-               # print len(edges), len(me.edges)
-               context.scene.tool_settings.mesh_selection_mode = MESH_MODE
-               return edges
-       
-       if MESH_MODE == 'FACE':
-               context.scene.tool_settings.mesh_selection_mode = 'EDGE'
-               # value is [edge, face_sel_user_in]
-               edge_dict=  dict((ed.key, [ed, 0]) for ed in me.edges)
-               
-               for f in me.faces:
-                       if f.selected:
-                               for edkey in f.edge_keys:
-                                       edge_dict[edkey][1] += 1
-               
-               context.scene.tool_settings.mesh_selection_mode = MESH_MODE
-               return [ ed_data[0] for ed_data in edge_dict.values() if ed_data[1] == 1 ]
-       
-       
+    MESH_MODE= context.scene.tool_settings.mesh_selection_mode
+
+    if MESH_MODE in ('EDGE', 'VERTEX'):
+        context.scene.tool_settings.mesh_selection_mode = 'EDGE'
+        edges= [ ed for ed in me.edges if ed.selected ]
+        # print len(edges), len(me.edges)
+        context.scene.tool_settings.mesh_selection_mode = MESH_MODE
+        return edges
+
+    if MESH_MODE == 'FACE':
+        context.scene.tool_settings.mesh_selection_mode = 'EDGE'
+        # value is [edge, face_sel_user_in]
+        edge_dict=  dict((ed.key, [ed, 0]) for ed in me.edges)
+
+        for f in me.faces:
+            if f.selected:
+                for edkey in f.edge_keys:
+                    edge_dict[edkey][1] += 1
+
+        context.scene.tool_settings.mesh_selection_mode = MESH_MODE
+        return [ ed_data[0] for ed_data in edge_dict.values() if ed_data[1] == 1 ]
+
+
 
 def getVertLoops(selEdges, me):
-       '''
-       return a list of vert loops, closed and open [(loop, closed)...]
-       '''
-       
-       mainVertLoops = []
-       # second method
-       tot = len(me.verts)
-       vert_siblings = [[] for i in range(tot)]
-       vert_used = [False] * tot
-       
-       for ed in selEdges:
-               i1, i2 = ed.key
-               vert_siblings[i1].append(i2)
-               vert_siblings[i2].append(i1)
-       
-       # find the first used vert and keep looping.
-       for i in range(tot):
-               if vert_siblings[i] and not vert_used[i]:
-                       sbl = vert_siblings[i] # siblings
-                       
-                       if len(sbl) > 2:
-                               return None
-                       
-                       vert_used[i] = True
-                       
-                       # do an edgeloop seek
-                       if len(sbl) == 2:
-                               contextVertLoop= [sbl[0], i, sbl[1]] # start the vert loop
-                               vert_used[contextVertLoop[ 0]] = True
-                               vert_used[contextVertLoop[-1]] = True
-                       else:
-                               contextVertLoop= [i, sbl[0]]
-                               vert_used[contextVertLoop[ 1]] = True
-                       
-                       # Always seek up
-                       ok = True
-                       while ok:
-                               ok = False
-                               closed = False
-                               sbl = vert_siblings[contextVertLoop[-1]]
-                               if len(sbl) == 2:
-                                       next = sbl[not sbl.index( contextVertLoop[-2] )]
-                                       if vert_used[next]:
-                                               closed = True
-                                               # break
-                                       else:
-                                               contextVertLoop.append( next ) # get the vert that isnt the second last
-                                               vert_used[next] = True
-                                               ok = True
-                       
-                       # Seek down as long as the starting vert was not at the edge.
-                       if not closed and len(vert_siblings[i]) == 2:
-                               
-                               ok = True
-                               while ok:
-                                       ok = False
-                                       sbl = vert_siblings[contextVertLoop[0]]
-                                       if len(sbl) == 2:
-                                               next = sbl[not sbl.index( contextVertLoop[1] )]
-                                               if vert_used[next]:
-                                                       closed = True
-                                               else:
-                                                       contextVertLoop.insert(0, next) # get the vert that isnt the second last
-                                                       vert_used[next] = True
-                                                       ok = True
-                       
-                       mainVertLoops.append((contextVertLoop, closed))
-       
-       
-       verts = me.verts
-       # convert from indicies to verts
-       # mainVertLoops = [([verts[i] for i in contextVertLoop], closed) for contextVertLoop, closed in  mainVertLoops]
-       # print len(mainVertLoops)
-       return mainVertLoops
-       
+    '''
+    return a list of vert loops, closed and open [(loop, closed)...]
+    '''
+
+    mainVertLoops = []
+    # second method
+    tot = len(me.verts)
+    vert_siblings = [[] for i in range(tot)]
+    vert_used = [False] * tot
+
+    for ed in selEdges:
+        i1, i2 = ed.key
+        vert_siblings[i1].append(i2)
+        vert_siblings[i2].append(i1)
+
+    # find the first used vert and keep looping.
+    for i in range(tot):
+        if vert_siblings[i] and not vert_used[i]:
+            sbl = vert_siblings[i] # siblings
+
+            if len(sbl) > 2:
+                return None
+
+            vert_used[i] = True
+
+            # do an edgeloop seek
+            if len(sbl) == 2:
+                contextVertLoop= [sbl[0], i, sbl[1]] # start the vert loop
+                vert_used[contextVertLoop[ 0]] = True
+                vert_used[contextVertLoop[-1]] = True
+            else:
+                contextVertLoop= [i, sbl[0]]
+                vert_used[contextVertLoop[ 1]] = True
+
+            # Always seek up
+            ok = True
+            while ok:
+                ok = False
+                closed = False
+                sbl = vert_siblings[contextVertLoop[-1]]
+                if len(sbl) == 2:
+                    next = sbl[not sbl.index( contextVertLoop[-2] )]
+                    if vert_used[next]:
+                        closed = True
+                        # break
+                    else:
+                        contextVertLoop.append( next ) # get the vert that isnt the second last
+                        vert_used[next] = True
+                        ok = True
+
+            # Seek down as long as the starting vert was not at the edge.
+            if not closed and len(vert_siblings[i]) == 2:
+
+                ok = True
+                while ok:
+                    ok = False
+                    sbl = vert_siblings[contextVertLoop[0]]
+                    if len(sbl) == 2:
+                        next = sbl[not sbl.index( contextVertLoop[1] )]
+                        if vert_used[next]:
+                            closed = True
+                        else:
+                            contextVertLoop.insert(0, next) # get the vert that isnt the second last
+                            vert_used[next] = True
+                            ok = True
+
+            mainVertLoops.append((contextVertLoop, closed))
+
+
+    verts = me.verts
+    # convert from indicies to verts
+    # mainVertLoops = [([verts[i] for i in contextVertLoop], closed) for contextVertLoop, closed in  mainVertLoops]
+    # print len(mainVertLoops)
+    return mainVertLoops
+
 
 
 def skin2EdgeLoops(eloop1, eloop2, me, ob, MODE):
-       
-       new_faces= [] # 
-       
-       # Make sure e1 loops is bigger then e2
-       if len(eloop1.edges) != len(eloop2.edges):
-               if len(eloop1.edges) < len(eloop2.edges):
-                       eloop1, eloop2 = eloop2, eloop1
-               
-               eloop1.backup() # were about to cull faces
-               CULL_FACES = len(eloop1.edges) - len(eloop2.edges)
-               eloop1.removeSmallest(CULL_FACES, len(eloop1.edges))
-       else:
-               CULL_FACES = 0
-       # First make sure poly vert loops are in sync with eachother.
-       
-       # The vector allong which we are skinning.
-       skinVector = eloop1.centre - eloop2.centre
-       
-       loopDist = skinVector.length
-       
-       # IS THE LOOP FLIPPED, IF SO FLIP BACK. we keep it flipped, its ok,
-       if eloop1.closed or eloop2.closed:
-               angleBetweenLoopNormals = AngleBetweenVecs(eloop1.normal, eloop2.normal)
-               if angleBetweenLoopNormals > 90:
-                       eloop2.reverse()
-                       
-
-               DIR= eloop1.centre - eloop2.centre
-               
-               # if eloop2.closed:
-               bestEloopDist = BIG_NUM
-               bestOffset = 0
-               # Loop rotation offset to test.1
-               eLoopIdxs = list(range(len(eloop1.edges)))
-               for offset in range(len(eloop1.edges)):
-                       totEloopDist = 0 # Measure this total distance for thsi loop.
-                       
-                       offsetIndexLs = eLoopIdxs[offset:] + eLoopIdxs[:offset] # Make offset index list
-                       
-                       
-                       # e1Idx is always from 0uu to N, e2Idx is offset.
-                       for e1Idx, e2Idx in enumerate(offsetIndexLs):
-                               e1= eloop1.edges[e1Idx]
-                               e2= eloop2.edges[e2Idx]
-                               
-                               
-                               # Include fan connections in the measurement.
-                               OK= True
-                               while OK or e1.removed:
-                                       OK= False
-                                       
-                                       # Measure the vloop distance ===============
-                                       diff= ((e1.cent - e2.cent).length) #/ nangle1
-                                       
-                                       ed_dir= e1.cent-e2.cent
-                                       a_diff= AngleBetweenVecs(DIR, ed_dir)/18 # 0 t0 18
-                                       
-                                       totEloopDist += (diff * (1+a_diff)) / (1+loopDist)
-                                       
-                                       # Premeture break if where no better off
-                                       if totEloopDist > bestEloopDist:
-                                               break
-                                       
-                                       e1=e1.next
-                                       
-                       if totEloopDist < bestEloopDist:
-                               bestOffset = offset
-                               bestEloopDist = totEloopDist
-               
-               # Modify V2 LS for Best offset
-               eloop2.edges = eloop2.edges[bestOffset:] + eloop2.edges[:bestOffset]
-                       
-       else:
-               # Both are open loops, easier to calculate.
-               
-               
-               # Make sure the fake edges are at the start.
-               for i, edloop in enumerate((eloop1, eloop2)):
-                       # print "LOOPO"
-                       if edloop.edges[0].fake:
-                               # alredy at the start
-                               #print "A"
-                               pass
-                       elif edloop.edges[-1].fake:
-                               # put the end at the start
-                               edloop.edges.insert(0, edloop.edges.pop())
-                               #print "B"
-                               
-                       else:
-                               for j, ed in enumerate(edloop.edges):
-                                       if ed.fake:
-                                               #print "C"
-                                               edloop.edges = edloop.edges = edloop.edges[j:] + edloop.edges[:j]
-                                               break
-               # print "DONE"
-               ed1, ed2 = eloop1.edges[0], eloop2.edges[0]
-               
-               if not ed1.fake or not ed2.fake:
-                       raise "Error"
-               
-               # Find the join that isnt flipped (juts like detecting a bow-tie face)
-               a1 = (ed1.co1 - ed2.co1).length + (ed1.co2 - ed2.co2).length
-               a2 = (ed1.co1 - ed2.co2).length + (ed1.co2 - ed2.co1).length
-               
-               if a1 > a2:
-                       eloop2.reverse()
-                       # make the first edge the start edge still
-                       eloop2.edges.insert(0, eloop2.edges.pop())
-       
-       
-       
-       
-       for loopIdx in range(len(eloop2.edges)):
-               e1 = eloop1.edges[loopIdx]
-               e2 = eloop2.edges[loopIdx]
-               
-               # Remember the pairs for fan filling culled edges.
-               e1.match = e2; e2.match = e1
-               
-               if not (e1.fake or e2.fake):
-                       new_faces.append([e1.v1, e1.v2, e2.v2, e2.v1])
-       
-       # FAN FILL MISSING FACES.
-       if CULL_FACES:
-               # Culled edges will be in eloop1.
-               FAN_FILLED_FACES = 0
-               
-               contextEdge = eloop1.edges[0] # The larger of teh 2
-               while FAN_FILLED_FACES < CULL_FACES:
-                       while contextEdge.next.removed == 0:
-                               contextEdge = contextEdge.next
-                       
-                       vertFanPivot = contextEdge.match.v2
-                       
-                       while contextEdge.next.removed == 1:
-                               #if not contextEdge.next.fake:
-                               new_faces.append([contextEdge.next.v1, contextEdge.next.v2, vertFanPivot])
-                               
-                               # Should we use another var?, this will work for now.
-                               contextEdge.next.removed = 1
-  &