Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Mueller <nexyon@gmail.com>2009-08-02 16:49:53 +0400
committerJoerg Mueller <nexyon@gmail.com>2009-08-02 16:49:53 +0400
commit40c8585e84b029ee1aaad3f56f11460d739247f0 (patch)
tree08d06ff8cede5ec4e58cff9a1b339d8135746778
parent96cc6818255a351c83858339704922a463749f22 (diff)
parentc5f0be6d99cd711b07643fcbc6ece218fe805665 (diff)
svn 2.5 branch merge r22138 to r22143
-rw-r--r--CMakeLists.txt6
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.cpp8
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.h2
-rw-r--r--intern/ghost/intern/GHOST_WindowX11.cpp2
-rw-r--r--intern/smoke/make/msvc_9_0/smoke.vcproj511
-rw-r--r--projectfiles_vc9/blender/blender.sln263
-rw-r--r--projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj28
-rw-r--r--projectfiles_vc9/blender/editors/ED_editors.vcproj24
-rw-r--r--projectfiles_vc9/blender/makesdna/DNA_makesdna.vcproj4
-rw-r--r--projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj4
-rw-r--r--projectfiles_vc9/blender/makesrna/RNA_rna.vcproj4
-rw-r--r--release/ui/buttons_data_mesh.py24
-rw-r--r--release/ui/buttons_material.py55
-rw-r--r--release/ui/buttons_physics_field.py115
-rw-r--r--release/ui/buttons_scene.py6
-rw-r--r--release/ui/buttons_texture.py4
-rw-r--r--release/ui/buttons_world.py6
-rw-r--r--source/blender/blenkernel/intern/anim_sys.c74
-rw-r--r--source/blender/blenkernel/intern/armature.c2
-rw-r--r--source/blender/blenkernel/intern/fcurve.c2
-rw-r--r--source/blender/blenkernel/intern/ipo.c29
-rw-r--r--source/blender/blenkernel/intern/key.c13
-rw-r--r--source/blender/blenkernel/intern/packedFile.c2
-rw-r--r--source/blender/blenlib/BLI_vfontdata.h13
-rw-r--r--source/blender/blenlib/intern/psfont.c2126
-rw-r--r--source/blender/editors/animation/anim_filter.c71
-rw-r--r--source/blender/editors/animation/keyframing.c11
-rw-r--r--source/blender/editors/include/ED_screen_types.h11
-rw-r--r--source/blender/editors/interface/interface_anim.c2
-rw-r--r--source/blender/editors/interface/interface_templates.c24
-rw-r--r--source/blender/editors/object/editkey.c6
-rw-r--r--source/blender/editors/screen/screen_edit.c2
-rw-r--r--source/blender/editors/screen/screen_ops.c97
-rw-r--r--source/blender/editors/space_graph/graph_header.c4
-rw-r--r--source/blender/editors/space_graph/space_graph.c10
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c75
-rw-r--r--source/blender/editors/space_time/space_time.c2
-rw-r--r--source/blender/editors/space_time/time_header.c94
-rw-r--r--source/blender/editors/transform/transform.c5
-rw-r--r--source/blender/editors/transform/transform_generics.c90
-rw-r--r--source/blender/imbuf/intern/targa.c5
-rw-r--r--source/blender/makesdna/DNA_anim_types.h9
-rw-r--r--source/blender/makesdna/DNA_scene_types.h2
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h3
-rw-r--r--source/blender/makesdna/intern/makesdna.c5
-rw-r--r--source/blender/makesrna/RNA_enum_types.h3
-rw-r--r--source/blender/makesrna/intern/rna_animation.c27
-rw-r--r--source/blender/makesrna/intern/rna_key.c17
-rw-r--r--source/blender/makesrna/intern/rna_material.c51
-rw-r--r--source/blender/makesrna/intern/rna_nla.c28
-rw-r--r--source/blender/makesrna/intern/rna_object_force.c58
-rw-r--r--source/blender/makesrna/intern/rna_space.c10
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c4
-rw-r--r--source/blender/windowmanager/intern/wm.c2
-rw-r--r--source/darwin/Makefile5
-rw-r--r--source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp12
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.cpp35
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.h3
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp2
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.h4
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.cpp1
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.cpp10
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.h1
-rw-r--r--source/gameengine/Expressions/Value.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.h3
-rw-r--r--source/gameengine/Ketsji/KX_ISceneConverter.h1
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.cpp1
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.h3
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.h3
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp14
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.h7
-rw-r--r--source/nan_definitions.mk36
78 files changed, 1618 insertions, 2608 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6520059a0f5..64f7f9463e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -392,11 +392,7 @@ IF(APPLE)
SET(OPENEXR ${LIBDIR}/openexr)
SET(OPENEXR_INC ${OPENEXR}/include/OpenEXR ${OPENEXR}/include)
- IF(CMAKE_OSX_ARCHITECTURES MATCHES i386)
- SET(OPENEXR_LIB Iex Half IlmImf Imath IlmThread)
- ELSE(CMAKE_OSX_ARCHITECTURES MATCHES i386)
- SET(OPENEXR_LIB Iex Half IlmImf Imath)
- ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES i386)
+ SET(OPENEXR_LIB Iex Half IlmImf Imath IlmThread)
SET(OPENEXR_LIBPATH ${OPENEXR}/lib)
SET(LLIBS stdc++ SystemStubs)
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index e5e88502f45..dbdb65a14f4 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -155,11 +155,9 @@ init(
GHOST_TSuccess success = GHOST_System::init();
if (success) {
- m_keyboard_vector = new char[32];
-
m_displayManager = new GHOST_DisplayManagerX11(this);
- if (m_keyboard_vector && m_displayManager) {
+ if (m_displayManager) {
return GHOST_kSuccess;
}
}
@@ -715,9 +713,9 @@ getModifierKeys(
// analyse the masks retuned from XQueryPointer.
- memset(m_keyboard_vector,0,sizeof(m_keyboard_vector));
+ memset((void *)m_keyboard_vector,0,sizeof(m_keyboard_vector));
- XQueryKeymap(m_display,m_keyboard_vector);
+ XQueryKeymap(m_display,(char *)m_keyboard_vector);
// now translate key symobols into keycodes and
// test with vector.
diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h
index 711a188ffe9..afd960d1ec3 100644
--- a/intern/ghost/intern/GHOST_SystemX11.h
+++ b/intern/ghost/intern/GHOST_SystemX11.h
@@ -258,7 +258,7 @@ private :
GHOST_TUns64 m_start_time;
/// A vector of keyboard key masks
- char *m_keyboard_vector;
+ char m_keyboard_vector[32];
/**
* Return the ghost window associated with the
diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp
index 1525b4eb16d..41c62be0966 100644
--- a/intern/ghost/intern/GHOST_WindowX11.cpp
+++ b/intern/ghost/intern/GHOST_WindowX11.cpp
@@ -187,6 +187,8 @@ GHOST_WindowX11(
printf("%s:%d: X11 glxChooseVisual() failed for OpenGL, verify working openGL system!\n", __FILE__, __LINE__);
return;
}
+
+ memset(&m_xtablet, 0, sizeof(m_xtablet));
// Create a bunch of attributes needed to create an X window.
diff --git a/intern/smoke/make/msvc_9_0/smoke.vcproj b/intern/smoke/make/msvc_9_0/smoke.vcproj
new file mode 100644
index 00000000000..aa3779031f0
--- /dev/null
+++ b/intern/smoke/make/msvc_9_0/smoke.vcproj
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="INT_smoke"
+ ProjectGUID="{E8904FB3-F8F7-BC21-87A6-029A57B901F4}"
+ RootNamespace="smoke"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Blender Release|Win32"
+ OutputDirectory="..\..\..\..\..\build\msvc_9\intern\smoke"
+ IntermediateDirectory="..\..\..\..\..\build\msvc_9\intern\smoke"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="2"
+ AdditionalIncludeDirectories="..\..\intern;..\..\..\..\..\lib\windows\zlib\include;..\..\..\..\..\lib\windows\png\include;..\..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
+ PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\intern\smoke\smoke.pch"
+ AssemblerListingLocation="..\..\..\..\..\build\msvc_9\intern\smoke\"
+ ObjectFile="..\..\..\..\..\build\msvc_9\intern\smoke\"
+ ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\intern\smoke\"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1043"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="..\..\..\..\..\build\msvc_9\libs\intern\libsmoke.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Copying IK files library to lib tree."
+ CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Blender Debug|Win32"
+ OutputDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\debug"
+ IntermediateDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\intern;..\..\..\..\..\lib\windows\zlib\include;..\..\..\..\..\lib\windows\png\include;..\..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
+ PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\intern\smoke\debug\smoke.pch"
+ AssemblerListingLocation="..\..\..\..\..\build\msvc_9\intern\smoke\debug\"
+ ObjectFile="..\..\..\..\..\build\msvc_9\intern\smoke\debug\"
+ ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\intern\smoke\debug\"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1043"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="..\..\..\..\..\build\msvc_9\libs\intern\debug\libsmoke.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Copying IK files library (debug target) to lib tree."
+ CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="3DPlugin Release|Win32"
+ OutputDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll"
+ IntermediateDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="2"
+ AdditionalIncludeDirectories="..\..\intern;..\..\..\..\..\lib\windows\zlib\include;..\..\..\..\..\lib\windows\png\include;..\..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
+ PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\smoke.pch"
+ AssemblerListingLocation="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\"
+ ObjectFile="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\"
+ ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1043"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="..\..\..\..\..\build\msvc_9\libs\intern\mtdll\libsmoke.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Copying IK files library to lib tree."
+ CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="3DPlugin Debug|Win32"
+ OutputDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug"
+ IntermediateDirectory="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\intern;..\..\..\..\..\lib\windows\zlib\include;..\..\..\..\..\lib\windows\png\include;..\..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
+ PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug\smoke.pch"
+ AssemblerListingLocation="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug\"
+ ObjectFile="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug\"
+ ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\intern\smoke\mtdll\debug\"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1043"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="..\..\..\..\..\build\msvc_9\libs\intern\mtdll\debug\libsmoke.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Copying IK files library (debug target) to lib tree."
+ CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="intern"
+ >
+ <File
+ RelativePath="..\..\intern\EIGENVALUE_HELPER.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\FFT_NOISE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\FLUID_3D.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\FLUID_3D.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\FLUID_3D_SOLVERS.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\FLUID_3D_STATIC.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\IMAGE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\INTERPOLATE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\LU_HELPER.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\MERSENNETWISTER.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\OBSTACLE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\smoke_API.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\SPHERE.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\SPHERE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\VEC3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\WAVELET_NOISE.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\WTURBULENCE.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\WTURBULENCE.h"
+ >
+ </File>
+ <Filter
+ Name="TNT"
+ >
+ <File
+ RelativePath="..\..\intern\tnt\jama_eig.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\jama_lu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array1d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array1d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array2d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array3d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_array3d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_cmat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array1d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array1d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array2d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array3d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_fortran_array3d_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_i_refvec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_math_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_sparse_matrix_csr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_stopwatch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_subscript.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_vec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\intern\tnt\tnt_version.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="extern"
+ >
+ <File
+ RelativePath="..\..\extern\smoke_API.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/projectfiles_vc9/blender/blender.sln b/projectfiles_vc9/blender/blender.sln
index d1db956118c..c925cfa8fbe 100644
--- a/projectfiles_vc9/blender/blender.sln
+++ b/projectfiles_vc9/blender/blender.sln
@@ -40,6 +40,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
{213356A9-3A1F-41DA-9819-1297BCD17DEE} = {213356A9-3A1F-41DA-9819-1297BCD17DEE}
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA} = {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A} = {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4} = {E8904FB3-F8F7-BC21-87A6-029A57B901F4}
{E90C7BC2-CF30-4A60-A8F2-0050D592E358} = {E90C7BC2-CF30-4A60-A8F2-0050D592E358}
{8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}
@@ -56,6 +57,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BKE_blenkernel", "blenkernel\BKE_blenkernel.vcproj", "{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}"
ProjectSection(ProjectDependencies) = postProject
+ {02110D03-59DB-4571-8787-72B3C03B2F2D} = {02110D03-59DB-4571-8787-72B3C03B2F2D}
{9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8}
EndProjectSection
EndProject
@@ -280,6 +282,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "INT_build_install_all", "..
{76D90B92-ECC7-409C-9F98-A8814B90F3C0} = {76D90B92-ECC7-409C-9F98-A8814B90F3C0}
{542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488}
{213356A9-3A1F-41DA-9819-1297BCD17DEE} = {213356A9-3A1F-41DA-9819-1297BCD17DEE}
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4} = {E8904FB3-F8F7-BC21-87A6-029A57B901F4}
{51A348C1-8684-4D67-B980-97B1FC74159B} = {51A348C1-8684-4D67-B980-97B1FC74159B}
{8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}
@@ -313,10 +316,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNA_dna", "makesdna\DNA_dna
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BLF_blenfont", "blenfont\BLF_blenfont.vcproj", "{D1A9312F-4557-4982-A0F4-4D08508235F4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "INT_smoke", "..\..\intern\smoke\make\msvc_9_0\smoke.vcproj", "{E8904FB3-F8F7-BC21-87A6-029A57B901F4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3D Plugin Debug|Win32 = 3D Plugin Debug|Win32
3D Plugin Release|Win32 = 3D Plugin Release|Win32
+ 3DPlugin Debug|Win32 = 3DPlugin Debug|Win32
+ 3DPlugin Release|Win32 = 3DPlugin Release|Win32
Blender Debug|Win32 = Blender Debug|Win32
Blender Release|Win32 = Blender Release|Win32
BlenderPlayer Debug|Win32 = BlenderPlayer Debug|Win32
@@ -329,6 +336,10 @@ Global
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3D Plugin Debug|Win32.Build.0 = Blender Debug|Win32
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3D Plugin Release|Win32.ActiveCfg = Blender Debug|Win32
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3D Plugin Release|Win32.Build.0 = Blender Debug|Win32
+ {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3DPlugin Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3DPlugin Debug|Win32.Build.0 = Blender Debug|Win32
+ {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3DPlugin Release|Win32.ActiveCfg = Blender Debug|Win32
+ {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3DPlugin Release|Win32.Build.0 = Blender Debug|Win32
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -343,6 +354,10 @@ Global
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -359,6 +374,10 @@ Global
{31628053-825D-4C06-8A21-D13883489718}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{31628053-825D-4C06-8A21-D13883489718}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{31628053-825D-4C06-8A21-D13883489718}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {31628053-825D-4C06-8A21-D13883489718}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {31628053-825D-4C06-8A21-D13883489718}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {31628053-825D-4C06-8A21-D13883489718}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {31628053-825D-4C06-8A21-D13883489718}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{31628053-825D-4C06-8A21-D13883489718}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{31628053-825D-4C06-8A21-D13883489718}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{31628053-825D-4C06-8A21-D13883489718}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -375,6 +394,10 @@ Global
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -391,6 +414,10 @@ Global
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -407,6 +434,10 @@ Global
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {9A307EE5-CD77-47BC-BD87-62508C7E19D8}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{9A307EE5-CD77-47BC-BD87-62508C7E19D8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -423,6 +454,10 @@ Global
{415BFD6E-64CF-422B-AF88-C07F040A7292}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{415BFD6E-64CF-422B-AF88-C07F040A7292}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{415BFD6E-64CF-422B-AF88-C07F040A7292}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {415BFD6E-64CF-422B-AF88-C07F040A7292}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {415BFD6E-64CF-422B-AF88-C07F040A7292}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {415BFD6E-64CF-422B-AF88-C07F040A7292}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {415BFD6E-64CF-422B-AF88-C07F040A7292}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{415BFD6E-64CF-422B-AF88-C07F040A7292}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{415BFD6E-64CF-422B-AF88-C07F040A7292}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{415BFD6E-64CF-422B-AF88-C07F040A7292}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -439,6 +474,10 @@ Global
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3D Plugin Debug|Win32.Build.0 = BlenderPlayer Release|Win32
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3D Plugin Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3D Plugin Release|Win32.Build.0 = BlenderPlayer Release|Win32
+ {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3DPlugin Debug|Win32.ActiveCfg = BlenderPlayer Release|Win32
+ {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3DPlugin Debug|Win32.Build.0 = BlenderPlayer Release|Win32
+ {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3DPlugin Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
+ {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.3DPlugin Release|Win32.Build.0 = BlenderPlayer Release|Win32
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -455,6 +494,10 @@ Global
{106AE171-0083-41D6-A949-20DB0E8DC251}.3D Plugin Debug|Win32.Build.0 = Blender Debug|Win32
{106AE171-0083-41D6-A949-20DB0E8DC251}.3D Plugin Release|Win32.ActiveCfg = Blender Debug|Win32
{106AE171-0083-41D6-A949-20DB0E8DC251}.3D Plugin Release|Win32.Build.0 = Blender Debug|Win32
+ {106AE171-0083-41D6-A949-20DB0E8DC251}.3DPlugin Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {106AE171-0083-41D6-A949-20DB0E8DC251}.3DPlugin Debug|Win32.Build.0 = Blender Debug|Win32
+ {106AE171-0083-41D6-A949-20DB0E8DC251}.3DPlugin Release|Win32.ActiveCfg = Blender Debug|Win32
+ {106AE171-0083-41D6-A949-20DB0E8DC251}.3DPlugin Release|Win32.Build.0 = Blender Debug|Win32
{106AE171-0083-41D6-A949-20DB0E8DC251}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{106AE171-0083-41D6-A949-20DB0E8DC251}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{106AE171-0083-41D6-A949-20DB0E8DC251}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -469,6 +512,10 @@ Global
{E013786A-9575-4F34-81B2-33290357EE87}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{E013786A-9575-4F34-81B2-33290357EE87}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E013786A-9575-4F34-81B2-33290357EE87}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {E013786A-9575-4F34-81B2-33290357EE87}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E013786A-9575-4F34-81B2-33290357EE87}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {E013786A-9575-4F34-81B2-33290357EE87}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E013786A-9575-4F34-81B2-33290357EE87}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{E013786A-9575-4F34-81B2-33290357EE87}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E013786A-9575-4F34-81B2-33290357EE87}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E013786A-9575-4F34-81B2-33290357EE87}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -485,6 +532,10 @@ Global
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {EADC3C5A-6C51-4F03-8038-1553E7D7F740}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{EADC3C5A-6C51-4F03-8038-1553E7D7F740}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -501,6 +552,10 @@ Global
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.Blender Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.Blender Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{DF25E6F2-780C-438B-8AAD-D10CF8B3820A}.BlenderPlayer Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
@@ -513,6 +568,10 @@ Global
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.Blender Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.Blender Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
@@ -527,6 +586,10 @@ Global
{3D310C60-6771-48E4-BCCA-D2718CDED898}.3D Plugin Debug|Win32.Build.0 = BlenderPlayer Release|Win32
{3D310C60-6771-48E4-BCCA-D2718CDED898}.3D Plugin Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{3D310C60-6771-48E4-BCCA-D2718CDED898}.3D Plugin Release|Win32.Build.0 = BlenderPlayer Release|Win32
+ {3D310C60-6771-48E4-BCCA-D2718CDED898}.3DPlugin Debug|Win32.ActiveCfg = BlenderPlayer Release|Win32
+ {3D310C60-6771-48E4-BCCA-D2718CDED898}.3DPlugin Debug|Win32.Build.0 = BlenderPlayer Release|Win32
+ {3D310C60-6771-48E4-BCCA-D2718CDED898}.3DPlugin Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
+ {3D310C60-6771-48E4-BCCA-D2718CDED898}.3DPlugin Release|Win32.Build.0 = BlenderPlayer Release|Win32
{3D310C60-6771-48E4-BCCA-D2718CDED898}.Blender Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{3D310C60-6771-48E4-BCCA-D2718CDED898}.Blender Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{3D310C60-6771-48E4-BCCA-D2718CDED898}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
@@ -541,6 +604,10 @@ Global
{8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {8154A59A-CAED-403D-AB94-BC4E7C032666}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {8154A59A-CAED-403D-AB94-BC4E7C032666}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {8154A59A-CAED-403D-AB94-BC4E7C032666}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {8154A59A-CAED-403D-AB94-BC4E7C032666}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -555,6 +622,10 @@ Global
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -571,6 +642,10 @@ Global
{E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {E645CC32-4823-463E-82F0-46ADDE664018}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {E645CC32-4823-463E-82F0-46ADDE664018}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {E645CC32-4823-463E-82F0-46ADDE664018}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {E645CC32-4823-463E-82F0-46ADDE664018}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -587,6 +662,10 @@ Global
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -603,6 +682,10 @@ Global
{6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {6B801390-5F95-4F07-81A7-97FBA046AACC}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {6B801390-5F95-4F07-81A7-97FBA046AACC}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {6B801390-5F95-4F07-81A7-97FBA046AACC}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {6B801390-5F95-4F07-81A7-97FBA046AACC}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -619,6 +702,10 @@ Global
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -635,6 +722,10 @@ Global
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -651,6 +742,10 @@ Global
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {EC405272-28E3-4840-AAC2-53D6DE4E163D}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {EC405272-28E3-4840-AAC2-53D6DE4E163D}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {EC405272-28E3-4840-AAC2-53D6DE4E163D}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {EC405272-28E3-4840-AAC2-53D6DE4E163D}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.Blender Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.Blender Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{EC405272-28E3-4840-AAC2-53D6DE4E163D}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
@@ -663,6 +758,10 @@ Global
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -679,6 +778,10 @@ Global
{AB590CED-F71F-4A17-A89B-18583ECD633D}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{AB590CED-F71F-4A17-A89B-18583ECD633D}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{AB590CED-F71F-4A17-A89B-18583ECD633D}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {AB590CED-F71F-4A17-A89B-18583ECD633D}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {AB590CED-F71F-4A17-A89B-18583ECD633D}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {AB590CED-F71F-4A17-A89B-18583ECD633D}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {AB590CED-F71F-4A17-A89B-18583ECD633D}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{AB590CED-F71F-4A17-A89B-18583ECD633D}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{AB590CED-F71F-4A17-A89B-18583ECD633D}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{AB590CED-F71F-4A17-A89B-18583ECD633D}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -695,6 +798,10 @@ Global
{51FB3D48-2467-4BFA-A321-D848252B437E}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{51FB3D48-2467-4BFA-A321-D848252B437E}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{51FB3D48-2467-4BFA-A321-D848252B437E}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {51FB3D48-2467-4BFA-A321-D848252B437E}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {51FB3D48-2467-4BFA-A321-D848252B437E}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {51FB3D48-2467-4BFA-A321-D848252B437E}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {51FB3D48-2467-4BFA-A321-D848252B437E}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{51FB3D48-2467-4BFA-A321-D848252B437E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{51FB3D48-2467-4BFA-A321-D848252B437E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{51FB3D48-2467-4BFA-A321-D848252B437E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -711,6 +818,10 @@ Global
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {32CC75E2-EE85-45E6-8E3D-513F58464F43}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {32CC75E2-EE85-45E6-8E3D-513F58464F43}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {32CC75E2-EE85-45E6-8E3D-513F58464F43}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {32CC75E2-EE85-45E6-8E3D-513F58464F43}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{32CC75E2-EE85-45E6-8E3D-513F58464F43}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -727,6 +838,10 @@ Global
{09222F5E-1625-4FF3-A89A-384D16875EE5}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{09222F5E-1625-4FF3-A89A-384D16875EE5}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{09222F5E-1625-4FF3-A89A-384D16875EE5}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {09222F5E-1625-4FF3-A89A-384D16875EE5}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {09222F5E-1625-4FF3-A89A-384D16875EE5}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {09222F5E-1625-4FF3-A89A-384D16875EE5}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {09222F5E-1625-4FF3-A89A-384D16875EE5}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{09222F5E-1625-4FF3-A89A-384D16875EE5}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{09222F5E-1625-4FF3-A89A-384D16875EE5}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{09222F5E-1625-4FF3-A89A-384D16875EE5}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -743,6 +858,10 @@ Global
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -759,6 +878,10 @@ Global
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -775,6 +898,10 @@ Global
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -791,6 +918,10 @@ Global
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -807,6 +938,10 @@ Global
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {4C3AB78A-52CA-4276-A041-39776E52D8C8}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {4C3AB78A-52CA-4276-A041-39776E52D8C8}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {4C3AB78A-52CA-4276-A041-39776E52D8C8}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {4C3AB78A-52CA-4276-A041-39776E52D8C8}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{4C3AB78A-52CA-4276-A041-39776E52D8C8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -823,6 +958,10 @@ Global
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {138DD16C-CC78-4F6C-A898-C8DA68D89067}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {138DD16C-CC78-4F6C-A898-C8DA68D89067}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {138DD16C-CC78-4F6C-A898-C8DA68D89067}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {138DD16C-CC78-4F6C-A898-C8DA68D89067}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{138DD16C-CC78-4F6C-A898-C8DA68D89067}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -839,6 +978,10 @@ Global
{670EC17A-0548-4BBF-A27B-636C7C188139}.3D Plugin Debug|Win32.Build.0 = Debug|Win32
{670EC17A-0548-4BBF-A27B-636C7C188139}.3D Plugin Release|Win32.ActiveCfg = Release|Win32
{670EC17A-0548-4BBF-A27B-636C7C188139}.3D Plugin Release|Win32.Build.0 = Release|Win32
+ {670EC17A-0548-4BBF-A27B-636C7C188139}.3DPlugin Debug|Win32.ActiveCfg = Debug|Win32
+ {670EC17A-0548-4BBF-A27B-636C7C188139}.3DPlugin Debug|Win32.Build.0 = Debug|Win32
+ {670EC17A-0548-4BBF-A27B-636C7C188139}.3DPlugin Release|Win32.ActiveCfg = Release|Win32
+ {670EC17A-0548-4BBF-A27B-636C7C188139}.3DPlugin Release|Win32.Build.0 = Release|Win32
{670EC17A-0548-4BBF-A27B-636C7C188139}.Blender Debug|Win32.ActiveCfg = Debug|Win32
{670EC17A-0548-4BBF-A27B-636C7C188139}.Blender Debug|Win32.Build.0 = Debug|Win32
{670EC17A-0548-4BBF-A27B-636C7C188139}.Blender Release|Win32.ActiveCfg = Release|Win32
@@ -855,6 +998,10 @@ Global
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {FFD3C64A-30E2-4BC7-BC8F-51818C320400}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{FFD3C64A-30E2-4BC7-BC8F-51818C320400}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -871,6 +1018,10 @@ Global
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -887,6 +1038,10 @@ Global
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {9C71A793-C177-4CAB-8EC5-923D500B39F8}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {9C71A793-C177-4CAB-8EC5-923D500B39F8}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
+ {9C71A793-C177-4CAB-8EC5-923D500B39F8}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Debug|Win32
+ {9C71A793-C177-4CAB-8EC5-923D500B39F8}.3DPlugin Release|Win32.Build.0 = 3D Plugin Debug|Win32
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{9C71A793-C177-4CAB-8EC5-923D500B39F8}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
@@ -899,6 +1054,10 @@ Global
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -913,6 +1072,10 @@ Global
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -927,6 +1090,10 @@ Global
{51A348C1-8684-4D67-B980-97B1FC74159B}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{51A348C1-8684-4D67-B980-97B1FC74159B}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{51A348C1-8684-4D67-B980-97B1FC74159B}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {51A348C1-8684-4D67-B980-97B1FC74159B}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {51A348C1-8684-4D67-B980-97B1FC74159B}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {51A348C1-8684-4D67-B980-97B1FC74159B}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {51A348C1-8684-4D67-B980-97B1FC74159B}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{51A348C1-8684-4D67-B980-97B1FC74159B}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{51A348C1-8684-4D67-B980-97B1FC74159B}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{51A348C1-8684-4D67-B980-97B1FC74159B}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -943,6 +1110,10 @@ Global
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -959,6 +1130,10 @@ Global
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {FAF46346-65CC-4DB2-85C4-B99826F79D0C}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{FAF46346-65CC-4DB2-85C4-B99826F79D0C}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -975,6 +1150,10 @@ Global
{A90C4918-4B21-4277-93BD-AF65F30951D9}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Release|Win32
{A90C4918-4B21-4277-93BD-AF65F30951D9}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
{A90C4918-4B21-4277-93BD-AF65F30951D9}.3D Plugin Release|Win32.Build.0 = 3DPlugin Release|Win32
+ {A90C4918-4B21-4277-93BD-AF65F30951D9}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {A90C4918-4B21-4277-93BD-AF65F30951D9}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {A90C4918-4B21-4277-93BD-AF65F30951D9}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {A90C4918-4B21-4277-93BD-AF65F30951D9}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -989,6 +1168,10 @@ Global
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {76D90B92-ECC7-409C-9F98-A8814B90F3C0}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{76D90B92-ECC7-409C-9F98-A8814B90F3C0}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1005,6 +1188,10 @@ Global
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{1CC733F1-6AB5-4904-8F63-C08C46B79DD9}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1021,6 +1208,10 @@ Global
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {542A9FA1-B7FF-441C-AE15-054DB31D3488}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {542A9FA1-B7FF-441C-AE15-054DB31D3488}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {542A9FA1-B7FF-441C-AE15-054DB31D3488}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {542A9FA1-B7FF-441C-AE15-054DB31D3488}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{542A9FA1-B7FF-441C-AE15-054DB31D3488}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1037,6 +1228,10 @@ Global
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E86B7BDE-C33C-4E55-9433-E74C141D7538}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {E86B7BDE-C33C-4E55-9433-E74C141D7538}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E86B7BDE-C33C-4E55-9433-E74C141D7538}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {E86B7BDE-C33C-4E55-9433-E74C141D7538}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E86B7BDE-C33C-4E55-9433-E74C141D7538}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1053,6 +1248,10 @@ Global
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1069,6 +1268,10 @@ Global
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {213356A9-3A1F-41DA-9819-1297BCD17DEE}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {213356A9-3A1F-41DA-9819-1297BCD17DEE}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {213356A9-3A1F-41DA-9819-1297BCD17DEE}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {213356A9-3A1F-41DA-9819-1297BCD17DEE}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{213356A9-3A1F-41DA-9819-1297BCD17DEE}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1085,6 +1288,10 @@ Global
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {8B8D4FC3-3234-4E54-8376-5AB83D00D164}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{8B8D4FC3-3234-4E54-8376-5AB83D00D164}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1101,6 +1308,10 @@ Global
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {98330220-47A6-42E0-9DE4-AD0FF5D204D6}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{98330220-47A6-42E0-9DE4-AD0FF5D204D6}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1117,6 +1328,10 @@ Global
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {B789C2F3-279E-4A85-8F0A-7F7AC068E598}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{B789C2F3-279E-4A85-8F0A-7F7AC068E598}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1133,6 +1348,10 @@ Global
{02110D03-59DB-4571-8787-72B3C03B2F2D}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
{02110D03-59DB-4571-8787-72B3C03B2F2D}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
{02110D03-59DB-4571-8787-72B3C03B2F2D}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {02110D03-59DB-4571-8787-72B3C03B2F2D}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {02110D03-59DB-4571-8787-72B3C03B2F2D}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {02110D03-59DB-4571-8787-72B3C03B2F2D}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {02110D03-59DB-4571-8787-72B3C03B2F2D}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
{02110D03-59DB-4571-8787-72B3C03B2F2D}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{02110D03-59DB-4571-8787-72B3C03B2F2D}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{02110D03-59DB-4571-8787-72B3C03B2F2D}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
@@ -1145,6 +1364,10 @@ Global
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {884D8731-654C-4C7F-9A75-8F37A305BE1E}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {884D8731-654C-4C7F-9A75-8F37A305BE1E}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {884D8731-654C-4C7F-9A75-8F37A305BE1E}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {884D8731-654C-4C7F-9A75-8F37A305BE1E}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1161,6 +1384,10 @@ Global
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.3D Plugin Debug|Win32.Build.0 = Blender Debug|Win32
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.3D Plugin Release|Win32.ActiveCfg = Blender Debug|Win32
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.3D Plugin Release|Win32.Build.0 = Blender Debug|Win32
+ {FB88301F-F725-401B-ACD7-D2ABBF333B71}.3DPlugin Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {FB88301F-F725-401B-ACD7-D2ABBF333B71}.3DPlugin Debug|Win32.Build.0 = Blender Debug|Win32
+ {FB88301F-F725-401B-ACD7-D2ABBF333B71}.3DPlugin Release|Win32.ActiveCfg = Blender Debug|Win32
+ {FB88301F-F725-401B-ACD7-D2ABBF333B71}.3DPlugin Release|Win32.Build.0 = Blender Debug|Win32
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1177,6 +1404,10 @@ Global
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
+ {8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3DPlugin Debug|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3DPlugin Debug|Win32.Build.0 = 3D Plugin Release|Win32
+ {8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3DPlugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
+ {8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.3DPlugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{8C2BCCF8-4D9E-46D3-BABF-C1545A332CE6}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1193,6 +1424,10 @@ Global
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1209,6 +1444,10 @@ Global
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
+ {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3DPlugin Debug|Win32.ActiveCfg = Blender Release|Win32
+ {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3DPlugin Debug|Win32.Build.0 = Blender Release|Win32
+ {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3DPlugin Release|Win32.ActiveCfg = Blender Release|Win32
+ {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.3DPlugin Release|Win32.Build.0 = Blender Release|Win32
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1225,6 +1464,10 @@ Global
{D1A9312F-4557-4982-A0F4-4D08508235F4}.3D Plugin Debug|Win32.Build.0 = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.3D Plugin Release|Win32.ActiveCfg = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.3D Plugin Release|Win32.Build.0 = Blender Debug|Win32
+ {D1A9312F-4557-4982-A0F4-4D08508235F4}.3DPlugin Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {D1A9312F-4557-4982-A0F4-4D08508235F4}.3DPlugin Debug|Win32.Build.0 = Blender Debug|Win32
+ {D1A9312F-4557-4982-A0F4-4D08508235F4}.3DPlugin Release|Win32.ActiveCfg = Blender Debug|Win32
+ {D1A9312F-4557-4982-A0F4-4D08508235F4}.3DPlugin Release|Win32.Build.0 = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
@@ -1237,6 +1480,26 @@ Global
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Debug|Win32.Build.0 = Blender Debug|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Release|Win32.ActiveCfg = Blender Release|Win32
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Release|Win32.Build.0 = Blender Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3D Plugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3D Plugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3D Plugin Release|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3D Plugin Release|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3DPlugin Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3DPlugin Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3DPlugin Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.3DPlugin Release|Win32.Build.0 = 3DPlugin Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Release|Win32.Build.0 = Blender Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Release|Win32.ActiveCfg = 3DPlugin Release|Win32
+ {E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Release|Win32.Build.0 = 3DPlugin Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj b/projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj
index 18d0254afc4..b7de1c82c69 100644
--- a/projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj
+++ b/projectfiles_vc9/blender/blenkernel/BKE_blenkernel.vcproj
@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="_DEBUG,WIN32,_LIB"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -193,7 +193,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"
StringPooling="true"
RuntimeLibrary="0"
@@ -268,7 +268,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB"
StringPooling="true"
RuntimeLibrary="2"
@@ -343,7 +343,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -418,7 +418,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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;..\..\..\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"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\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\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"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG"
StringPooling="true"
RuntimeLibrary="0"
@@ -750,6 +750,14 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\blenkernel\intern\sketch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\blenkernel\intern\smoke.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\blenkernel\intern\softbody.c"
>
</File>
@@ -1051,6 +1059,14 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\blenkernel\BKE_sketch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\blenkernel\BKE_smoke.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\blenkernel\BKE_softbody.h"
>
</File>
diff --git a/projectfiles_vc9/blender/editors/ED_editors.vcproj b/projectfiles_vc9/blender/editors/ED_editors.vcproj
index 08432b56d62..11ab3b0079b 100644
--- a/projectfiles_vc9/blender/editors/ED_editors.vcproj
+++ b/projectfiles_vc9/blender/editors/ED_editors.vcproj
@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER=1;WITH_QUICKTIME;INTERNATIONAL;WITH_FREETYPE2;WITH_INTERNATIONAL;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"
StringPooling="true"
RuntimeLibrary="0"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu"
+ AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER=1;WITH_QUICKTIME;INTERNATIONAL;WITH_BF_INTERNATIONAL;WITH_FREETYPE2;WITH_OPENEXR;WITH_DDS;WITH_BULLET = 1;WITH_FFMPEG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -238,6 +238,10 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\editors\include\ED_mball.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\editors\include\ED_mesh.h"
>
</File>
@@ -1443,6 +1447,22 @@
>
</File>
</Filter>
+ <Filter
+ Name="metaball"
+ >
+ <File
+ RelativePath="..\..\..\source\blender\editors\metaball\editmball.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\editors\metaball\mball_intern.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\editors\metaball\mball_ops.c"
+ >
+ </File>
+ </Filter>
</Files>
<Globals>
</Globals>
diff --git a/projectfiles_vc9/blender/makesdna/DNA_makesdna.vcproj b/projectfiles_vc9/blender/makesdna/DNA_makesdna.vcproj
index f46c8844f78..77fbe72dede 100644
--- a/projectfiles_vc9/blender/makesdna/DNA_makesdna.vcproj
+++ b/projectfiles_vc9/blender/makesdna/DNA_makesdna.vcproj
@@ -778,6 +778,10 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\makesdna\DNA_smoke_types.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\makesdna\DNA_sound_types.h"
>
</File>
diff --git a/projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj b/projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj
index 3db292155f1..b907997f190 100644
--- a/projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj
+++ b/projectfiles_vc9/blender/makesrna/RNA_makesrna.vcproj
@@ -779,6 +779,10 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\makesrna\intern\rna_smoke.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\makesrna\intern\rna_sound.c"
>
</File>
diff --git a/projectfiles_vc9/blender/makesrna/RNA_rna.vcproj b/projectfiles_vc9/blender/makesrna/RNA_rna.vcproj
index 0699468bfcf..1d7c3f38581 100644
--- a/projectfiles_vc9/blender/makesrna/RNA_rna.vcproj
+++ b/projectfiles_vc9/blender/makesrna/RNA_rna.vcproj
@@ -335,6 +335,10 @@
>
</File>
<File
+ RelativePath="..\..\..\source\blender\makesrna\intern\rna_smoke_gen.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\source\blender\makesrna\intern\rna_sound_gen.c"
>
</File>
diff --git a/release/ui/buttons_data_mesh.py b/release/ui/buttons_data_mesh.py
index 87c4a596b4d..e8ab59a96dd 100644
--- a/release/ui/buttons_data_mesh.py
+++ b/release/ui/buttons_data_mesh.py
@@ -123,15 +123,23 @@ class DATA_PT_shape_keys(DataButtonsPanel):
row.itemR(kb, "name")
if ob.active_shape_key_index != 0:
- if not ob.shape_key_lock:
- row = layout.row(align=True)
- row.itemR(kb, "value", text="")
- row.itemR(kb, "slider_min", text="Min")
- row.itemR(kb, "slider_max", text="Max")
-
+
row = layout.row()
- row.item_pointerR(kb, "vertex_group", ob, "vertex_groups", text="")
- row.item_pointerR(kb, "relative_key", key, "keys", text="")
+ row.enabled = ob.shape_key_lock == False
+ row.itemR(kb, "value", slider=True)
+
+ split = layout.split()
+ sub = split.column()
+ sub.enabled = ob.shape_key_lock == False
+ sub.itemL(text="Range:")
+ sub.itemR(kb, "slider_min", text="Min")
+ sub.itemR(kb, "slider_max", text="Max")
+
+ sub = split.column()
+ sub.itemL(text="Blend:")
+ sub.item_pointerR(kb, "vertex_group", ob, "vertex_groups", text="")
+ sub.item_pointerR(kb, "relative_key", key, "keys", text="")
+
else:
row = layout.row()
row.itemR(key, "relative")
diff --git a/release/ui/buttons_material.py b/release/ui/buttons_material.py
index 8c977567324..5cbec3f38f9 100644
--- a/release/ui/buttons_material.py
+++ b/release/ui/buttons_material.py
@@ -1,6 +1,12 @@
import bpy
+# If python version is less than 2.4, try to get set stuff from module
+try:
+ set
+except:
+ from sets import Set as set
+
class MaterialButtonsPanel(bpy.types.Panel):
__space_type__ = "BUTTONS_WINDOW"
__region_type__ = "WINDOW"
@@ -189,8 +195,9 @@ class MATERIAL_PT_shadows(MaterialButtonsPanel):
col = split.column()
col.itemR(mat, "ray_shadow_bias", text="Auto Ray Bias")
sub = col.column()
- sub.active = not mat.ray_shadow_bias
- sub.itemR(mat, "shadow_ray_bias", text="Ray Shadow Bias")
+ subsub = sub.column()
+ subsub.active = not mat.ray_shadow_bias
+ subsub.itemR(mat, "shadow_ray_bias", text="Ray Shadow Bias")
sub.itemR(mat, "cast_buffer_shadows")
sub.itemR(mat, "shadow_buffer_bias", text="Buffer Bias")
@@ -228,14 +235,24 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
elif mat.diffuse_shader == 'TOON':
row = col.row()
row.itemR(mat, "diffuse_toon_size", text="Size")
- row.itemR(mat, "diffuse_toon_smooth", text="Smooth")
+ row.itemR(mat, "diffuse_toon_smooth", text="Smooth", slider=True)
elif mat.diffuse_shader == 'FRESNEL':
row = col.row()
row.itemR(mat, "diffuse_fresnel", text="Fresnel")
row.itemR(mat, "diffuse_fresnel_factor", text="Factor")
- elif mat.use_diffuse_ramp:
+ if mat.use_diffuse_ramp:
+ layout.itemS()
layout.template_color_ramp(mat.diffuse_ramp, expand=True)
+ layout.itemS()
+ row = layout.row()
+ split = row.split(percentage=0.3)
+ split.itemL(text="Input:")
+ split.itemR(mat, "diffuse_ramp_input", text="")
+ split = row.split(percentage=0.3)
+ split.itemL(text="Blend:")
+ split.itemR(mat, "diffuse_ramp_blend", text="")
+
class MATERIAL_PT_specular(MaterialButtonsPanel):
__label__ = "Specular"
@@ -273,10 +290,19 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
elif mat.specular_shader == 'TOON':
row = col.row()
row.itemR(mat, "specular_toon_size", text="Size")
- row.itemR(mat, "specular_toon_smooth", text="Smooth")
+ row.itemR(mat, "specular_toon_smooth", text="Smooth", slider=True)
if mat.use_specular_ramp:
+ layout.itemS()
layout.template_color_ramp(mat.specular_ramp, expand=True)
+ layout.itemS()
+ row = layout.row()
+ split = row.split(percentage=0.3)
+ split.itemL(text="Input:")
+ split.itemR(mat, "specular_ramp_input", text="")
+ split = row.split(percentage=0.3)
+ split.itemL(text="Blend:")
+ split.itemR(mat, "specular_ramp_blend", text="")
class MATERIAL_PT_sss(MaterialButtonsPanel):
__label__ = "Subsurface Scattering"
@@ -303,18 +329,19 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
split = layout.split()
split.active = mat.shadeless== False
- col = split.column()
+ col = split.column(align=True)
col.itemR(sss, "color", text="")
col.itemL(text="Blend:")
- col.itemR(sss, "color_factor", slider=True)
- col.itemR(sss, "texture_factor", slider=True)
+ col.itemR(sss, "color_factor", text="Color", slider=True)
+ col.itemR(sss, "texture_factor", text="Texture", slider=True)
col.itemL(text="Scattering Weight:")
col.itemR(sss, "front")
col.itemR(sss, "back")
col = split.column()
- col.itemR(sss, "ior")
- col.itemR(sss, "scale")
+ sub = col.column(align=True)
+ sub.itemR(sss, "ior")
+ sub.itemR(sss, "scale")
col.itemR(sss, "radius", text="RGB Radius")
col.itemR(sss, "error_tolerance")
@@ -347,7 +374,9 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
col.itemR(raym, "reflect", text="Reflectivity", slider=True)
col.itemR(mat, "mirror_color", text="")
col.itemR(raym, "fresnel")
- col.itemR(raym, "fresnel_fac", text="Fac", slider=True)
+ sub = col.column()
+ sub.active = raym.fresnel > 0
+ sub.itemR(raym, "fresnel_fac", text="Fac", slider=True)
col = split.column()
col.itemR(raym, "gloss", slider=True)
@@ -391,7 +420,9 @@ class MATERIAL_PT_raytransp(MaterialButtonsPanel):
col = split.column()
col.itemR(rayt, "ior")
col.itemR(rayt, "fresnel")
- col.itemR(rayt, "fresnel_fac", text="Fac", slider=True)
+ sub = col.column()
+ sub.active = rayt.fresnel > 0
+ sub.itemR(rayt, "fresnel_fac", text="Fac", slider=True)
col = split.column()
col.itemR(rayt, "gloss", slider=True)
diff --git a/release/ui/buttons_physics_field.py b/release/ui/buttons_physics_field.py
index b9c81042a13..3b054f7d557 100644
--- a/release/ui/buttons_physics_field.py
+++ b/release/ui/buttons_physics_field.py
@@ -22,62 +22,56 @@ class PHYSICS_PT_field(PhysicButtonsPanel):
#layout.active = field.enabled
- split = layout.split(percentage=0.3)
+ split = layout.split(percentage=0.2)
split.itemL(text="Type:")
- split.itemR(field, "type", text="")
-
+ split.itemR(field, "type",text="")
+
split = layout.split()
- col = split.column()
-
- if field.type == "GUIDE":
- col.itemR(field, "guide_path_add")
+ if field.type == 'GUIDE':
+ layout.itemR(field, "guide_path_add")
- elif field.type == "WIND":
- col.itemR(field, "strength")
+ elif field.type == 'WIND':
+ split.itemR(field, "strength")
col = split.column()
col.itemR(field, "noise")
col.itemR(field, "seed")
- elif field.type == "VORTEX":
- col.itemR(field, "strength")
+ elif field.type == 'VORTEX':
+ split.itemR(field, "strength")
+ split.itemL()
- col = split.column()
- col.itemL(text="")
-
- elif field.type in ("SPHERICAL", "CHARGE", "LENNARDJ"):
- col.itemR(field, "strength")
+ elif field.type in ('SPHERICAL', 'CHARGE', 'LENNARDJ'):
+ split.itemR(field, "strength")
col = split.column()
col.itemR(field, "planar")
col.itemR(field, "surface")
- elif field.type == "BOID":
- col.itemR(field, "strength")
+ elif field.type == 'BOID':
+ split.itemR(field, "strength")
+ split.itemR(field, "surface")
- col = split.column()
- col.itemR(field, "surface")
-
- elif field.type == "MAGNET":
- col.itemR(field, "strength")
+ elif field.type == 'MAGNET':
+ split.itemR(field, "strength")
+ split.itemR(field, "planar")
+ elif field.type == 'HARMONIC':
col = split.column()
- col.itemR(field, "planar")
-
- elif field.type == "HARMONIC":
col.itemR(field, "strength")
col.itemR(field, "harmonic_damping", text="Damping")
col = split.column()
- col.itemR(field, "surface")
col.itemR(field, "planar")
+ col.itemR(field, "surface")
- elif field.type == "TEXTURE":
+ elif field.type == 'TEXTURE':
+ col = split.column()
col.itemR(field, "strength")
col.itemR(field, "texture", text="")
- col.itemR(field, "texture_mode")
+ col.itemR(field, "texture_mode", text="")
col.itemR(field, "texture_nabla")
col = split.column()
@@ -85,70 +79,69 @@ class PHYSICS_PT_field(PhysicButtonsPanel):
col.itemR(field, "root_coordinates")
col.itemR(field, "force_2d")
- if field.type in ("HARMONIC", "SPHERICAL", "CHARGE", "WIND", "VORTEX", "TEXTURE", "MAGNET", "BOID"):
- layout.itemS()
+ if field.type in ('HARMONIC', 'SPHERICAL', 'CHARGE', 'WIND', 'VORTEX', 'TEXTURE', 'MAGNET', 'BOID'):
+
layout.itemL(text="Falloff:")
layout.itemR(field, "falloff_type", expand=True)
+
+ split = layout.split(percentage=0.35)
- row = layout.row()
- row.itemR(field, "falloff_power", text="Power")
- row.itemR(field, "positive_z", text="Positive Z")
-
- layout.itemS()
- split = layout.split()
-
col = split.column()
- col.itemR(field, "use_min_distance", text="Minimum")
+ col.itemR(field, "positive_z", text="Positive Z")
+ col.itemR(field, "use_min_distance", text="Use Minimum")
+ col.itemR(field, "use_max_distance", text="Use Maximum")
+
+ col = split.column()
+ col.itemR(field, "falloff_power", text="Power")
+
sub = col.column()
sub.active = field.use_min_distance
sub.itemR(field, "minimum_distance", text="Distance")
- col = split.column()
- col.itemR(field, "use_max_distance", text="Maximum")
sub = col.column()
sub.active = field.use_max_distance
sub.itemR(field, "maximum_distance", text="Distance")
- if field.falloff_type == "CONE":
- layout.itemS()
- layout.itemL(text="Angular:")
+ if field.falloff_type == 'CONE':
+
+ layout.itemS()
- row = layout.row()
- row.itemR(field, "radial_falloff", text="Power")
- row.itemL()
+ split = layout.split(percentage=0.35)
- split = layout.split()
+ col = split.column()
+ col.itemL(text="Angular:")
+ col.itemR(field, "use_radial_min", text="Use Minimum")
+ col.itemR(field, "use_radial_max", text="Use Maximum")
col = split.column()
- col.itemR(field, "use_radial_min", text="Minimum")
+ col.itemR(field, "radial_falloff", text="Power")
+
sub = col.column()
sub.active = field.use_radial_min
sub.itemR(field, "radial_minimum", text="Angle")
- col = split.column()
- col.itemR(field, "use_radial_max", text="Maximum")
sub = col.column()
sub.active = field.use_radial_max
sub.itemR(field, "radial_maximum", text="Angle")
- elif field.falloff_type == "TUBE":
- layout.itemS()
- layout.itemL(text="Radial:")
+ elif field.falloff_type == 'TUBE':
- row = layout.row()
- row.itemR(field, "radial_falloff", text="Power")
- row.itemL()
+ layout.itemS()
- split = layout.split()
+ split = layout.split(percentage=0.35)
+
+ col = split.column()
+ col.itemL(text="Radial:")
+ col.itemR(field, "use_radial_min", text="Use Minimum")
+ col.itemR(field, "use_radial_max", text="Use Maximum")
col = split.column()
- col.itemR(field, "use_radial_min", text="Minimum")
+ col.itemR(field, "radial_falloff", text="Power")
+
sub = col.column()
sub.active = field.use_radial_min
sub.itemR(field, "radial_minimum", text="Distance")
- col = split.column()
- col.itemR(field, "use_radial_max", text="Maximum")
sub = col.column()
sub.active = field.use_radial_max
sub.itemR(field, "radial_maximum", text="Distance")
diff --git a/release/ui/buttons_scene.py b/release/ui/buttons_scene.py
index d34307d0291..f9ca02d2b4b 100644
--- a/release/ui/buttons_scene.py
+++ b/release/ui/buttons_scene.py
@@ -1,6 +1,12 @@
import bpy
+# If python version is less than 2.4, try to get set stuff from module
+try:
+ set
+except:
+ from sets import Set as set
+
class RenderButtonsPanel(bpy.types.Panel):
__space_type__ = "BUTTONS_WINDOW"
__region_type__ = "WINDOW"
diff --git a/release/ui/buttons_texture.py b/release/ui/buttons_texture.py
index d638d1356f9..5b1269c982c 100644
--- a/release/ui/buttons_texture.py
+++ b/release/ui/buttons_texture.py
@@ -62,8 +62,8 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
if id:
row = layout.row()
- row.template_list(id, "textures", id, "active_texture_index", type="ICONS")
-
+ row.template_list(id, "textures", id, "active_texture_index", rows=2)
+
split = layout.split(percentage=0.65)
if id:
diff --git a/release/ui/buttons_world.py b/release/ui/buttons_world.py
index 62c720d09d1..e44d7102511 100644
--- a/release/ui/buttons_world.py
+++ b/release/ui/buttons_world.py
@@ -1,6 +1,12 @@
import bpy
+# If python version is less than 2.4, try to get set stuff from module
+try:
+ set
+except:
+ from sets import Set as set
+
class WorldButtonsPanel(bpy.types.Panel):
__space_type__ = "BUTTONS_WINDOW"
__region_type__ = "WINDOW"
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index e4882d8f555..7278fee5ab8 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -120,8 +120,15 @@ AnimData *BKE_id_add_animdata (ID *id)
IdAdtTemplate *iat= (IdAdtTemplate *)id;
/* check if there's already AnimData, in which case, don't add */
- if (iat->adt == NULL)
- iat->adt= MEM_callocN(sizeof(AnimData), "AnimData");
+ if (iat->adt == NULL) {
+ AnimData *adt;
+
+ /* add animdata */
+ adt= iat->adt= MEM_callocN(sizeof(AnimData), "AnimData");
+
+ /* set default settings */
+ adt->act_influence= 1.0f;
+ }
return iat->adt;
}
@@ -1190,6 +1197,9 @@ void nladata_flush_channels (ListBase *channels)
*/
static void animsys_evaluate_nla (PointerRNA *ptr, AnimData *adt, float ctime)
{
+ ListBase dummy_trackslist = {NULL, NULL};
+ NlaStrip dummy_strip;
+
NlaTrack *nlt;
short track_index=0;
@@ -1218,6 +1228,29 @@ static void animsys_evaluate_nla (PointerRNA *ptr, AnimData *adt, float ctime)
if (nes) nes->track= nlt;
}
+ /* add 'active' Action (may be tweaking track) as last strip to evaluate in NLA stack
+ * - only do this if we're not exclusively evaluating the 'solo' NLA-track
+ */
+ if ((adt->action) && !(adt->flag & ADT_NLA_SOLO_TRACK)) {
+ /* make dummy NLA strip, and add that to the stack */
+ memset(&dummy_strip, 0, sizeof(NlaStrip));
+ dummy_trackslist.first= dummy_trackslist.last= &dummy_strip;
+
+ dummy_strip.act= adt->action;
+ dummy_strip.remap= adt->remap;
+
+ calc_action_range(dummy_strip.act, &dummy_strip.actstart, &dummy_strip.actend, 1);
+ dummy_strip.start = dummy_strip.actstart;
+ dummy_strip.end = (IS_EQ(dummy_strip.actstart, dummy_strip.actend)) ? (dummy_strip.actstart + 1.0f): (dummy_strip.actend);
+
+ dummy_strip.blendmode= adt->act_blendmode;
+ dummy_strip.extendmode= adt->act_extendmode;
+ dummy_strip.influence= adt->act_influence;
+
+ /* add this to our list of evaluation strips */
+ nlastrips_ctime_get_strip(&estrips, &dummy_trackslist, -1, ctime);
+ }
+
/* only continue if there are strips to evaluate */
if (estrips.first == NULL)
return;
@@ -1316,14 +1349,10 @@ void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short re
/* evaluate NLA data */
if ((adt->nla_tracks.first) && !(adt->flag & ADT_NLA_EVAL_OFF))
{
- /* evaluate NLA-stack */
- animsys_evaluate_nla(&id_ptr, adt, ctime);
-
- /* evaluate 'active' Action (may be tweaking track) on top of results of NLA-evaluation
- * - only do this if we're not exclusively evaluating the 'solo' NLA-track
+ /* evaluate NLA-stack
+ * - active action is evaluated as part of the NLA stack as the last item
*/
- if ((adt->action) && !(adt->flag & ADT_NLA_SOLO_TRACK))
- animsys_evaluate_action(&id_ptr, adt->action, adt->remap, ctime);
+ animsys_evaluate_nla(&id_ptr, adt, ctime);
}
/* evaluate Active Action only */
else if (adt->action)
@@ -1362,19 +1391,36 @@ void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short re
* 'local' (i.e. belonging in the nearest ID-block that setting is related to, not a
* standard 'root') block are overridden by a larger 'user'
*/
-// TODO: we currently go over entire 'main' database...
+// FIXME?: we currently go over entire 'main' database...
void BKE_animsys_evaluate_all_animation (Main *main, float ctime)
{
ID *id;
if (G.f & G_DEBUG)
printf("Evaluate all animation - %f \n", ctime);
-
- /* macro for less typing */
-#define EVAL_ANIM_IDS(first, flag) \
+
+ /* macro for less typing
+ * - only evaluate animation data for id if it has users (and not just fake ones)
+ * - whether animdata exists is checked for by the evaluation function, though taking
+ * this outside of the function may make things slightly faster?
+ */
+#define EVAL_ANIM_IDS(first, aflag) \
for (id= first; id; id= id->next) { \
AnimData *adt= BKE_animdata_from_id(id); \
- BKE_animsys_evaluate_animdata(id, adt, ctime, flag); \
+ if ( (id->us > 1) || (id->us && !(id->flag & LIB_FAKEUSER)) ) \
+ BKE_animsys_evaluate_animdata(id, adt, ctime, aflag); \
+ }
+
+ /* optimisation:
+ * when there are no actions, don't go over database and loop over heaps of datablocks,
+ * which should ultimately be empty, since it is not possible for now to have any animation
+ * without some actions, and drivers wouldn't get affected by any state changes
+ */
+ if (main->action.first == NULL) {
+ if (G.f & G_DEBUG)
+ printf("\tNo Actions, so no animation needs to be evaluated...\n");
+
+ return;
}
/* nodes */
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index eb8a894e800..7b894d79b45 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2213,7 +2213,7 @@ static void where_is_pose_bone(Scene *scene, Object *ob, bPoseChannel *pchan, fl
Mat4MulSerie(pchan->pose_mat, tmat, offs_bone, pchan->chan_mat, NULL, NULL, NULL, NULL, NULL);
}
else if(bone->flag & BONE_NO_SCALE) {
- float orthmat[4][4], vec[3];
+ float orthmat[4][4];
/* get the official transform, but we only use the vector from it (optimize...) */
Mat4MulSerie(pchan->pose_mat, parchan->pose_mat, offs_bone, pchan->chan_mat, NULL, NULL, NULL, NULL, NULL);
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index ebd94b94f8c..90bf08059d7 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -722,6 +722,8 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar)
break;
}
}
+ else if (G.f & G_DEBUG)
+ printf("Driver Evaluation Error: cannot resolve target for %s -> %s \n", id->name, path);
return value;
}
diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c
index cf7e486613b..a72f26f6157 100644
--- a/source/blender/blenkernel/intern/ipo.c
+++ b/source/blender/blenkernel/intern/ipo.c
@@ -296,8 +296,8 @@ static char *pchan_adrcodes_to_paths (int adrcode, int *array_index)
case AC_EUL_Z:
*array_index= 2; return "euler_rotation";
- case -1: // XXX special case for rotation drivers... until eulers are added...
- *array_index= 0; return "rotation";
+ case -1: /* special case for euler-rotations used by old drivers */
+ *array_index= 0; return "euler_rotation";
case AC_LOC_X:
*array_index= 0; return "location";
@@ -1023,12 +1023,11 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver)
dtar->rna_path= get_rna_access(ID_PO, AC_SIZE_Z, idriver->name, NULL, &dtar->array_index);
break;
- case OB_ROT_X: /* rotation - we need to be careful with this... XXX (another reason why we need eulers) */
+ case OB_ROT_X: /* rotation - we need to be careful with this... */
case OB_ROT_Y:
case OB_ROT_Z:
{
- // XXX this is not yet a 1:1 map, since we'd need euler rotations to make this work nicely (unless we make some hacks)
- // XXX -1 here is a special hack...
+ /* -1 here, not rotation code, since old system didn't have eulers */
dtar->rna_path= get_rna_access(ID_PO, -1, idriver->name, NULL, NULL);
dtar->array_index= idriver->adrcode - OB_ROT_X;
}
@@ -1276,6 +1275,26 @@ static void icu_to_fcurves (ListBase *groups, ListBase *list, IpoCurve *icu, cha
dst->vec[1][1] *= fac;
dst->vec[2][1] *= fac;
}
+
+ /* correct times for rotation drivers
+ * - need to go from degrees to radians...
+ * - there's only really 1 target to worry about
+ */
+ if (fcu->driver && fcu->driver->targets.first) {
+ DriverTarget *dtar= fcu->driver->targets.first;
+
+ /* since drivers could only be for objects, we should just check for 'rotation' being
+ * in the name of the path given
+ * - WARNING: this will break if we encounter a bone or object explictly named in that way...
+ */
+ if ((dtar && dtar->rna_path) && strstr(dtar->rna_path, "rotation")) {
+ const float fac= (float)M_PI / 180.0f;
+
+ dst->vec[0][0] *= fac;
+ dst->vec[1][0] *= fac;
+ dst->vec[2][0] *= fac;
+ }
+ }
}
/* free this data now */
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index 595ba37e09c..a2fa97cabc9 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -1382,18 +1382,11 @@ int do_ob_key(Scene *scene, Object *ob)
return 1;
}
else {
-#if 0 // XXX old animation system
- // NOTE: this stuff was NEVER reliable at all...
- if(ob->ipoflag & OB_ACTION_KEY)
- do_all_object_actions(scene, ob);
- else {
- calc_ipo(key->ipo, bsystem_time(scene, ob, scene->r.cfra, 0.0));
- execute_ipo((ID *)key, key->ipo);
- }
-#endif // XXX old animation system
/* do shapekey local drivers */
float ctime= (float)scene->r.cfra; // XXX this needs to be checked
- if (G.f & G_DEBUG) printf("ob %s - do shapekey (%s) drivers \n", ob->id.name+2, key->id.name+2);
+
+ if (G.f & G_DEBUG)
+ printf("ob %s - do shapekey (%s) drivers \n", ob->id.name+2, key->id.name+2);
BKE_animsys_evaluate_animdata(&key->id, key->adt, ctime, ADT_RECALC_DRIVERS);
if(ob->type==OB_MESH) return do_mesh_key(scene, ob, ob->data);
diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c
index 47acb342a14..d27bfa4d87e 100644
--- a/source/blender/blenkernel/intern/packedFile.c
+++ b/source/blender/blenkernel/intern/packedFile.c
@@ -370,6 +370,8 @@ int checkPackedFile(char *filename, PackedFile *pf)
}
}
}
+
+ close(file);
}
}
diff --git a/source/blender/blenlib/BLI_vfontdata.h b/source/blender/blenlib/BLI_vfontdata.h
index bd89959801a..070d8d12c08 100644
--- a/source/blender/blenlib/BLI_vfontdata.h
+++ b/source/blender/blenlib/BLI_vfontdata.h
@@ -67,19 +67,6 @@ struct TmpFont
struct VFont *vfont;
};
-
-/**
- * Construct a new VFontData structure from
- * PostScript font data in a PackedFile.
- *
- * @param pf The font data.
- * @retval A new VFontData structure, or NULL
- * if unable to load.
- */
- VFontData*
-BLI_vfontdata_from_psfont(
- struct PackedFile *pf);
-
/**
* Construct a new VFontData structure from
* Freetype font data in a PackedFile.
diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c
deleted file mode 100644
index 269e674a62f..00000000000
--- a/source/blender/blenlib/intern/psfont.c
+++ /dev/null
@@ -1,2126 +0,0 @@
-/**
- * $Id$
- *
- * ***** 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- * fromtype1 - Convert an Adobe type 1 font into .of or .sf format.
- * Paul Haeberli - 1990
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "MEM_guardedalloc.h"
-
-#include "BLI_vfontdata.h"
-#include "BLI_blenlib.h"
-
-#include "DNA_packedFile_types.h"
-#include "DNA_curve_types.h"
-
-#include "BLO_sys_types.h" // for intptr_t support
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
- /* ObjFnt types */
-
-typedef struct chardesc {
- short movex, movey; /* advance */
- short llx, lly; /* bounding box */
- short urx, ury;
- short *data; /* char data */
- intptr_t datalen;
-} chardesc;
-
-typedef struct objfnt {
- struct objfnt *freeaddr; /* if freeaddr != 0, objfnt is one chunck */
- short type;
- short charmin, charmax;
- short my_nchars;
- short scale;
- chardesc *my_chars;
-} objfnt;
-
-#define OFMAGIC 0x93339333
-
-#define TM_TYPE 1
-#define PO_TYPE 2
-#define SP_TYPE 3
-
-/* ops for tmesh characters */
-
-#define TM_BGNTMESH (1)
-#define TM_SWAPTMESH (2)
-#define TM_ENDBGNTMESH (3)
-#define TM_RETENDTMESH (4)
-#define TM_RET (5)
-
-/* ops for poly characters */
-
-#define PO_BGNLOOP (1)
-#define PO_ENDBGNLOOP (2)
-#define PO_RETENDLOOP (3)
-#define PO_RET (4)
-
-/* ops for spline characters */
-
-#define SP_MOVETO (1)
-#define SP_LINETO (2)
-#define SP_CURVETO (3)
-#define SP_CLOSEPATH (4)
-#define SP_RETCLOSEPATH (5)
-#define SP_RET (6)
-
-
-#define MIN_ASCII ' '
-#define MAX_ASCII '~'
-#define NASCII (256 - 32)
-
-#define NOBBOX (30000)
-
-typedef struct pschar {
- char *name;
- int code;
- int prog;
-} pschar;
-
- /***/
-
-#define SKIP 4
-#define LINELEN 2048
-#define NOTHEX (100)
-#define MC1 52845
-#define MC2 22719
-#define MAXSUBRS 4000
-#define MAXCHARS 4000
-#define MAXTRIES 30
-
-/* some local thingies */
-static void rcurveto( int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);
-static void makeobjfont(int savesplines);
-static void drawchar(int c);
-static void runprog(void);
-static int chartoindex(objfnt *fnt, int c);
-static short STDtoISO(short c);
-static char * newfgets(char * s, int n, PackedFile * pf);
-static int readfontmatrix(PackedFile * pf, float mat[2][2]);
-static char mdecrypt(char cipher);
-static void decryptall(void);
-static int decodetype1(PackedFile * pf, char *outname);
-static void fakefopen(void);
-static char *fakefread(int n);
-static void setcharlist(void);
-static void initpcstack(void);
-static char *poppc(void);
-static void initstack(void);
-static void push(int val);
-static int pop(void);
-static void initretstack(void);
-static void retpush(int val);
-static int retpop(void);
-static void subr1(void);
-static void subr2(void);
-static void subr0(void);
-static void append_poly_offset(short ofsx, short ofsy, short * data);
-static void append_spline_offset(short ofsx, short ofsy, short * data);
-static void setwidth(int w, int x);
-static void poly_beginchar(void);
-static void poly_endchar(void);
-static void poly_close(void);
-static void poly_pnt(float x, float y);
-static void spline_beginchar(void);
-static void spline_endchar(void);
-static void spline_close(void);
-static void spline_line(float x0, float y0, float x1, float y1);
-static void spline_curveto(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3);
-static void savestart(int x, int y);
-static void sbpoint( int x, int y);
-static void rmoveto( int x, int y);
-static void drawline(float x0, float y0, float x1, float y1, float dx0, float dy0, float dx1, float dy1);
-static void rlineto( int x, int y);
-static void closepath(void);
-static void bezadapt( float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, float beztol);
-static void drawbez( float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3);
-static int docommand(int cmd);
-
-/* some local vars */
-static int startx, starty;
-static int curx, cury;
-static int nextx, nexty;
-static int delx, dely;
-static int started;
-
-
-/* postscript commands */
-#define HSTEM (1)
-#define VSTEM (3)
-#define VMOVETO (4)
-#define RLINETO (5)
-#define HLINETO (6)
-#define VLINETO (7)
-#define RRCURVETO (8)
-#define CLOSEPATH (9)
-#define CALLSUBR (10)
-#define RETURN (11)
-#define HSBW (13)
-#define ENDCHAR (14)
-#define RMOVETO (21)
-#define HMOVETO (22)
-#define VHCURVETO (30)
-#define HVCURVETO (31)
-#define DOTSECTION (256+0)
-#define VSTEM3 (256+1)
-#define HSTEM3 (256+2)
-#define SEAC (256+6)
-#define SBW (256+7)
-#define DIV (256+12)
-#define CALLOTHERSUBR (256+16)
-#define POP (256+17)
-#define SETCURRENTPOINT (256+33)
-#define WHAT0 (0)
-
-static char oneline[LINELEN];
-static objfnt *fnt;
-
-static unsigned short int mr;
-
-static char *bindat;
-static int datbytes;
-static int firsted;
-static short chardata[20000];
-static int nshorts;
-
-static int thecharwidth, thesidebearing;
-static int npnts, nloops;
-static int nvertpos;
-
-static int fakepos;
-static int fakemax;
-
-static float beztol = 100.0;
-
-/* extern: from libfm */
-
-static char *my_subrs[MAXSUBRS];
-static unsigned int my_sublen[MAXSUBRS];
-static char *my_chars[MAXCHARS];
-static unsigned int my_charlen[MAXCHARS];
-static char *my_charname[MAXCHARS];
-static int my_nsubrs, my_nchars;
-
-static short sidebearing[MAXCHARS];
-static char tok[LINELEN];
-static int sp_npnts, sp_nloops;
-
-/*
- * interpreter globals
- */
-
-
-static float mat[2][2];
-static char *pcstack[100];
-static char *pc;
-static int pcsp;
-static int coordpos;
-static int coordsave[7][2];
-static int incusp;
-static int retstack[1000];
-static int retsp;
-static int stack[1000];
-static int sp;
-static int savesplines = 1;
-
-static pschar ISOcharlist[NASCII] = {
- {"/space", 040, 0},
- {"/exclam", 041, 0},
- {"/quotedbl", 042, 0},
- {"/numbersign", 043, 0},
- {"/dollar", 044, 0},
- {"/percent", 045, 0},
- {"/ampersand", 046, 0},
- {"/quoteright", 047, 0},
-
- {"/parenleft", 050, 0},
- {"/parenright", 051, 0},
- {"/asterisk", 052, 0},
- {"/plus", 053, 0},
- {"/comma", 054, 0},
- {"/hyphen", 055, 0},
- {"/period", 056, 0},
- {"/slash", 057, 0},
-
- {"/zero", 060, 0},
- {"/one", 061, 0},
- {"/two", 062, 0},
- {"/three", 063, 0},
- {"/four", 064, 0},
- {"/five", 065, 0},
- {"/six", 066, 0},
- {"/seven", 067, 0},
-
- {"/eight", 070, 0},
- {"/nine", 071, 0},
- {"/colon", 072, 0},
- {"/semicolon", 073, 0},
- {"/less", 074, 0},
- {"/equal", 075, 0},
- {"/greater", 076, 0},
- {"/question", 077, 0},
-
- {"/at", 0100, 0},
- {"/A", 0101, 0},
- {"/B", 0102, 0},
- {"/C", 0103, 0},
- {"/D", 0104, 0},
- {"/E", 0105, 0},
- {"/F", 0106, 0},
- {"/G", 0107, 0},
-
- {"/H", 0110, 0},
- {"/I", 0111, 0},
- {"/J", 0112, 0},
- {"/K", 0113, 0},
- {"/L", 0114, 0},
- {"/M", 0115, 0},
- {"/N", 0116, 0},
- {"/O", 0117, 0},
-
- {"/P", 0120, 0},
- {"/Q", 0121, 0},
- {"/R", 0122, 0},
- {"/S", 0123, 0},
- {"/T", 0124, 0},
- {"/U", 0125, 0},
- {"/V", 0126, 0},
- {"/W", 0127, 0},
-
- {"/X", 0130, 0},
- {"/Y", 0131, 0},
- {"/Z", 0132, 0},
- {"/bracketleft", 0133, 0},
- {"/backslash", 0134, 0},
- {"/bracketright", 0135, 0},
- {"/asciicircum", 0136, 0},
- {"/underscore", 0137, 0},
-
- {"/quoteleft", 0140, 0},
- {"/a", 0141, 0},
- {"/b", 0142, 0},
- {"/c", 0143, 0},
- {"/d", 0144, 0},
- {"/e", 0145, 0},
- {"/f", 0146, 0},
- {"/g", 0147, 0},
-
- {"/h", 0150, 0},
- {"/i", 0151, 0},
- {"/j", 0152, 0},
- {"/k", 0153, 0},
- {"/l", 0154, 0},
- {"/m", 0155, 0},
- {"/n", 0156, 0},
- {"/o", 0157, 0},
-
- {"/p", 0160, 0},
- {"/q", 0161, 0},
- {"/r", 0162, 0},
- {"/s", 0163, 0},
- {"/t", 0164, 0},
- {"/u", 0165, 0},
- {"/v", 0166, 0},
- {"/w", 0167, 0},
-
- {"/x", 0170, 0},
- {"/y", 0171, 0},
- {"/z", 0172, 0},
- {"/braceleft", 0173, 0},
- {"/bar", 0174, 0},
- {"/braceright", 0175, 0},
- {"/asciitilde", 0176, 0},
- {"/", 0177, 0},
-
-
- /* nonstandard defs */
-
- {"/quotedblleft", 0200, 0},
- {"/quotedblright", 0201, 0},
- {"/quotedblbase", 0202, 0},
- {"/quotesinglbase", 0203, 0},
- {"/guilsinglleft", 0204, 0},
- {"/guilsinglright", 0205, 0},
- {"/endash", 0206, 0},
- {"/dagger", 0207, 0},
-
- {"/daggerdbl", 0210, 0},
- {"/trademark", 0211, 0},
- {"/bullet", 0212, 0},
- {"/perthousand", 0213, 0},
- {"/Lslash", 0214, 0},
- {"/OE", 0215, 0},
- {"/lslash", 0216, 0},
- {"/oe", 0217, 0},
-
- /* endnonstandard defs */
-
- {"/dotlessi", 0220, 0},
- {"/grave", 0221, 0},
- {"/acute", 0222, 0},
- {"/circumflex", 0223, 0},
- {"/tilde", 0224, 0},
- {"/", 0225, 0},
- {"/breve", 0226, 0},
- {"/dotaccent", 0227, 0},
-
- {"/", 0230, 0},
- {"/", 0231, 0},
- {"/ring", 0232, 0},
- {"/", 0233, 0},
- {"/", 0234, 0},
- {"/hungarumlaut", 0235, 0},
- {"/ogonek", 0236, 0},
- {"/caron", 0237, 0},
-
- {"/", 0240, 0},
- {"/exclamdown", 0241, 0},
- {"/cent", 0242, 0},
- {"/sterling", 0243, 0},
- {"/florin", 0244, 0},
- {"/yen", 0245, 0},
- {"/brokenbar", 0246, 0},
- {"/section", 0247, 0},
-
- {"/dieresis", 0250, 0},
- {"/copyright", 0251, 0},
- {"/ordfeminine", 0252, 0},
- {"/guillemotleft", 0253, 0},
- {"/logicalnot", 0254, 0},
- {"/hyphen", 0255, 0},
- {"/registered", 0256, 0},
- {"/macron", 0257, 0},
-
- {"/degree", 0260, 0},
- {"/plusminus", 0261, 0},
- {"/twosuperior", 0262, 0},
- {"/threesuperior", 0263, 0},
- {"/acute", 0264, 0},
- {"/mu", 0265, 0},
- {"/paragraph", 0266, 0},
- {"/periodcentered", 0267, 0},
-
- {"/cedilla", 0270, 0},
- {"/onesuperior", 0271, 0},
- {"/ordmasculine", 0272, 0},
- {"/guillemotright", 0273, 0},
- {"/onequarter", 0274, 0},
- {"/onehalf", 0275, 0},
- {"/threequarters", 0276, 0},
- {"/questiondown", 0277, 0},
-
- {"/Agrave", 0300, 0},
- {"/Aacute", 0301, 0},
- {"/Acircumflex", 0302, 0},
- {"/Atilde", 0303, 0},
- {"/Adieresis", 0304, 0},
- {"/Aring", 0305, 0},
- {"/AE", 0306, 0},
- {"/Ccedilla", 0307, 0},
-
- {"/Egrave", 0310, 0},
- {"/Eacute", 0311, 0},
- {"/Ecircumflex", 0312, 0},
- {"/Edieresis", 0313, 0},
- {"/Igrave", 0314, 0},
- {"/Iacute", 0315, 0},
- {"/Icircumflex", 0316, 0},
- {"/Idieresis", 0317, 0},
-
- {"/Eth", 0320, 0},
- {"/Ntilde", 0321, 0},
- {"/Ograve", 0322, 0},
- {"/Oacute", 0323, 0},
- {"/Ocircumflex", 0324, 0},
- {"/Otilde", 0325, 0},
- {"/Odieresis", 0326, 0},
- {"/multiply", 0327, 0},
-
- {"/Oslash", 0330, 0},
- {"/Ugrave", 0331, 0},
- {"/Uacute", 0332, 0},
- {"/Ucircumflex",0333, 0},
- {"/Udieresis", 0334, 0},
- {"/Yacute", 0335, 0},
- {"/Thorn", 0336, 0},
- {"/germandbls", 0337, 0},
-
- {"/agrave", 0340, 0},
- {"/aacute", 0341, 0},
- {"/acircumflex",0342, 0},
- {"/atilde", 0343, 0},
- {"/adieresis", 0344, 0},
- {"/aring", 0345, 0},
- {"/ae", 0346, 0},
- {"/ccedilla", 0347, 0},
-
- {"/egrave", 0350, 0},
- {"/eacute", 0351, 0},
- {"/ecircumflex", 0352, 0},
- {"/edieresis", 0353, 0},
- {"/igrave", 0354, 0},
- {"/iacute", 0355, 0},
- {"/icircumflex", 0356, 0},
- {"/idieresis", 0357, 0},
-
- {"/eth", 0360, 0},
- {"/ntilde", 0361, 0},
- {"/ograve", 0362, 0},
- {"/oacute", 0363, 0},
- {"/ocircumflex",0364, 0},
- {"/otilde", 0365, 0},
- {"/odieresis", 0366, 0},
- {"/divide", 0367, 0},
-
- {"/oslash", 0370, 0},
- {"/ugrave", 0371, 0},
- {"/uacute", 0372, 0},
- {"/ucircumflex",0373, 0},
- {"/udieresis", 0374, 0},
- {"/yacute", 0375, 0},
- {"/thorn", 0376, 0},
- {"/ydieresis", 0377, 0},
-};
-
-
-static short STDvsISO [][2] = {
- {0341, 0306}, /* AE */
- {0351, 0330}, /* Oslash */
- {0302, 0222}, /* acute */
- {0361, 0346}, /* ae */
- {0306, 0226}, /* breve */
- {0317, 0237}, /* caron */
- {0313, 0270}, /* cedilla */
- {0303, 0223}, /* circumflex */
- {0250, 0244}, /* currency */
- {0310, 0250}, /* dieresis */
- {0307, 0227}, /* dotaccent */
- {0365, 0220}, /* dotlessi */
- {0373, 0337}, /* germandbls */
- {0301, 0221}, /* grave */
- {0315, 0235}, /* hungarumlaut */
- {0055, 0255}, /* hyphen */
- {0305, 0257}, /* macron */
- {0316, 0236}, /* ogenek */
- {0343, 0252}, /* ordfeminine */
- {0353, 0272}, /* ordmasculine */
- {0371, 0370}, /* oslash */
- {0264, 0267}, /* periodcentered */
- {0312, 0232}, /* ring */
- {0304, 0224}, /* tilde */
-};
-
-/* from objfont.c, rest is in lfm_s !!*/
-
-/* START 5.2 */
-
-static int chartoindex(objfnt *fnt, int c)
-{
- if(c<fnt->charmin)
- return -1;
- if(c>fnt->charmax)
- return -1;
- return c-fnt->charmin;
-}
-
-
-static chardesc *getchardesc(objfnt *fnt, int c)
-{
- int index;
-
- index = chartoindex(fnt,c);
- if(index<0)
- return 0;
- return fnt->my_chars+index;
-}
-
-static objfnt *newobjfnt(int type, int charmin, int charmax, int fscale)
-{
- objfnt *fnt;
-
- fnt = (objfnt *)MEM_mallocN(sizeof(objfnt), "newobjfnt");
- fnt->freeaddr = 0;
- fnt->type = type;
- fnt->charmin = charmin;
- fnt->charmax = charmax;
- fnt->my_nchars = fnt->charmax-fnt->charmin+1;
- fnt->scale = fscale;
- fnt->my_chars = (chardesc *)MEM_mallocN(fnt->my_nchars*sizeof(chardesc), "newobjfnt2");
- memset(fnt->my_chars, 0, fnt->my_nchars*sizeof(chardesc));
- return fnt;
-}
-
-
-static void addchardata (objfnt * fnt, int c, short * data, int nshorts)
-{
- int index;
- chardesc *cd;
-
- index = chartoindex(fnt,c);
- if(index<0) {
- fprintf(stderr,"Addchardata bad poop\n");
- return;
- }
- cd = fnt->my_chars+index;
- fnt->freeaddr = 0;
- cd->datalen = nshorts*sizeof(short);
- cd->data = (short *)MEM_mallocN(cd->datalen, "addchardata");
- memcpy(cd->data, data, cd->datalen);
-}
-
-static void addcharmetrics(objfnt *fnt, int c, int movex, int movey)
-{
- int index;
- chardesc *cd;
-
- index = chartoindex(fnt,c);
- if(index<0) {
- fprintf(stderr,"Addcharmetrics bad poop\n");
- return;
- }
- cd = fnt->my_chars+index;
- cd->movex = movex;
- cd->movey = movey;
-}
-
-
-static void fakechar(objfnt *fnt, int c, int width)
-{
- short chardata[1];
-
- chardata[0] = PO_RET;
- addchardata(fnt,c,chardata,1);
- addcharmetrics(fnt,c,width,0);
-}
-
-
-static void freeobjfnt(objfnt * fnt)
-{
- int i;
- chardesc *cd;
-
- cd = fnt->my_chars;
- for(i=0; i<fnt->my_nchars; i++) {
- if(cd->data)
- MEM_freeN(cd->data);
- cd++;
- }
- MEM_freeN(fnt->my_chars);
- MEM_freeN(fnt);
-}
-
-
-/* END 5.2 */
-
-static short STDtoISO(short c)
-{
- short i = (sizeof(STDvsISO) / (2 * sizeof(short))) - 1;
-
- for (;i >= 0; i--){
- if (STDvsISO[i][0] == c) return (STDvsISO[i][1]);
- }
- return(c);
-}
-
-
-/*
- * read the font matrix out of the font file
- *
- */
-
-static char * newfgets(char * s, int n, PackedFile * pf){
- int c;
- char * p;
-
- p = s;
- while (n > 0){
- c = ((char *) pf->data)[pf->seek];
- pf->seek++;
- if (pf->seek > pf->size){
- return (0);
- }
- if (c == 10 || c == 13){
- *p = 0;
- return(s);
- }
- *p++ = c;
- n--;
- }
- *p = 0;
- return(s);
-}
-
-static int readfontmatrix(PackedFile * pf, float mat[2][2])
-{
- char *cptr;
- float a, b, c, d, e, f;
-
- pf->seek = 0;
-
- /* look for the FontMatrix def */
- while(1) {
- if(!newfgets(oneline, LINELEN, pf)) {
- fprintf(stderr,"fromtype1: no FontMatrix found\n");
- return(-1);
- }
- cptr = strchr(oneline,'/');
- if(cptr) {
- if(strncmp(cptr,"/FontMatrix",11) == 0) {
- cptr = strchr(cptr,'[');
- if(!cptr) {
- fprintf(stderr,"fromtype1: bad FontMatrix line\n");
- return(-1);
- }
- sscanf(cptr+1,"%f %f %f %f %f %f\n",&a,&b,&c,&d,&e,&f);
- break;
- }
- }
- }
-
- mat[0][0] = 1000.0*a;
- mat[1][0] = 1000.0*b;
- mat[0][1] = 1000.0*c;
- mat[1][1] = 1000.0*d;
-
- return(0);
-}
-
-/*
- * Decryption support
- *
- *
- */
-static void resetdecrypt(int n)
-{
- mr = n;
-}
-
-
-
-/*
- * decryption subroutines
- *
- */
-
-static char mdecrypt(char cipher)
-{
- char plain;
-
- plain = (cipher^(mr>>8));
- mr = (cipher+mr)*MC1 + MC2;
- return plain;
-}
-
-static void decryptdata(char * cptr, int n)
-{
- while(n--) {
- *cptr = mdecrypt(*cptr);
- cptr++;
- }
-}
-
-static int decryptprogram(char *buf, int len)
-{
- int i;
-
- resetdecrypt(4330);
- for(i=0; i<len; i++) {
- if(i<SKIP) {
- mdecrypt(buf[i]);
- }
- else {
- buf[i-SKIP] = mdecrypt(buf[i]);
- }
- }
- return len-SKIP;
-}
-
-static void decryptall(void)
-{
- int i;
-
- for(i=0; i<my_nsubrs; i++)
- my_sublen[i] = decryptprogram(my_subrs[i],my_sublen[i]);
- for(i=0; i<my_nchars; i++)
- my_charlen[i] = decryptprogram(my_chars[i],my_charlen[i]);
-}
-
-
-/*
- * decode the eexec part of the file
- *
- */
-
-static int decodetype1(PackedFile * pf, char *outname)
-{
- char *hptr, *bptr;
- int i, totlen, hexbytes, c;
- char *hexdat;
- char hextab[256];
-
- /* make hex table */
- if(!firsted) {
- for(i=0; i<256; i++) {
- if(i>='0' && i<='9')
- hextab[i] = i-'0';
- else if(i>='a' && i<='f')
- hextab[i] = 10+i-'a';
- else if(i>='A' && i<='F')
- hextab[i] = 10+i-'A';
- else
- hextab[i] = NOTHEX;
- }
- }
-
- pf->seek = 0;
-
- /* allocate buffers */
- totlen = pf->size;
- hexdat = (char *)MEM_mallocN(totlen, "hexdat");
- bindat = (char *)MEM_mallocN(totlen, "bindat");
-
- /* look for eexec part of file */
- while(1) {
- if(!newfgets(oneline, LINELEN, pf)) {
- fprintf(stderr,"fromtype1: no currentfile eexec found\n");
- return(-1);
- }
- oneline[16] = 0;
- if(strcmp(oneline,"currentfile eexe") == 0)
- break;
- }
-
- /* initialize decryption variables */
- mr = 55665;
-
- /* first byte == 0 for binary data (???) */
-
- c = ((char *) pf->data)[pf->seek];
-
- if (hextab[c] != NOTHEX){
- /* read all the hex bytes into the hex buffer */
- hexbytes = 0;
- while(newfgets(oneline, LINELEN, pf)) {
- hptr = (char *)oneline;
- while(*hptr) {
- if(hextab[(int)*hptr] != NOTHEX)
- hexdat[hexbytes++] = *hptr;
- hptr++;
- }
- }
-
- /* check number of hex bytes */
- if(hexbytes & 1)
- hexbytes--;
- datbytes = hexbytes/2;
-
- /* translate hex data to binary */
- hptr = hexdat;
- bptr = bindat;
- c = datbytes;
- while(c--) {
- *bptr++ = (hextab[(int)hptr[0]]<<4)+hextab[(int)hptr[1]];
- hptr += 2;
- }
-
- /* decrypt the data */
- decryptdata(bindat,datbytes);
-
- } else {
- datbytes = pf->size - pf->seek;
- memcpy(bindat, ((char *) pf->data) + pf->seek, datbytes);
-
- if ((bindat[2] << (8 + bindat[3])) == 0x800){
- /* order data (remove 6 bytes headers) */
- i = datbytes;
- hptr = bptr = bindat + 4;
- hptr += 2;
-
- while (i > 0){
- if (i > 2046) c = 2046;
- else c = i;
-
- memcpy(bptr, hptr, c);
- bptr += 2046;
- hptr += 2046 + 6;
- i -= 2046 + 6;
- datbytes -= 6;
- }
-
- /* decrypt the data */
- decryptdata(bindat+4,datbytes);
- } else{
- decryptdata(bindat+6,datbytes-6);
- }
- }
-
-#ifdef DEBUG
- outf = fopen(outname,"wb");
- fwrite(bindat,datbytes,1,outf);
- fclose(outf);
-#endif
-
- MEM_freeN(hexdat);
-
- return 1;
-}
-
-/*
- * fake file reading funcs
- *
- *
- */
-
-static void fakefopen(void)
-{
- fakepos = 0;
- fakemax = datbytes;
-}
-
-
-static void fakegettoken(char *str)
-{
- int c;
- char *cptr;
- char *start;
-
- start = (char *) str;
- cptr = bindat+fakepos;
- c = *cptr++;
- fakepos++;
- if(c != '\n') {
- while(isspace(c)) {
- c = *cptr++;
- fakepos++;
- }
- while (fakepos<fakemax && !isspace(c)) {
- *str++ = c;
- c = *cptr++;
- fakepos++;
- }
- if(c == '\n')
- fakepos--;
- }
- *str = 0;
- if(fakepos>fakemax) {
- fprintf(stderr,"fromtype1: unexpected eof\n");
- strcpy(start, "end");
- }
-}
-
-static int fakefgets(char *buf,int max)
-{
- char *cptr;
-
- cptr = (char *)(bindat+fakepos);
- while(max--) {
- *buf++ = *cptr;
- fakepos++;
- if(*cptr == 10 || *cptr == 13)
- return 1;
- cptr++;
- if(fakepos>fakemax)
- return 0;
- }
- return 0;
-}
-
-static char *fakefread(int n)
-{
- fakepos += n;
- return bindat+fakepos-n;
-}
-
-static void applymat(float mat[][2], float *x, float *y)
-{
- float tx, ty;
-
- tx = ((*x)*mat[0][0])+((*y)*mat[0][1]);
- ty = ((*x)*mat[1][0])+((*y)*mat[1][1]);
- *x = tx;
- *y = ty;
-}
-
-static void setcharlist(void)
-{
- char *name; /*found;*/
- int i, j;
-
- for(i=0; i<NASCII; i++) ISOcharlist[i].prog = -1;
-
- for(j=0; j<my_nchars; j++) {
- name = my_charname[j];
- if(name) {
- /*found = 0;*/
- for(i=0; i<NASCII; i++) {
- if(ISOcharlist[i].name && (strcmp(name,ISOcharlist[i].name) == 0)){
- ISOcharlist[i].prog = j;
- /*found = 1;*/
- }
- }
- /*if (found == 0) printf("no match found for: %s\n", name);*/
- MEM_freeN(name);
- my_charname[j] = 0;
- }
- }
-}
-
-
-static objfnt * objfnt_from_psfont(PackedFile * pf)
-{
- int i, k, index;
- int nread, namelen;
- char *cptr;
-
- fnt = 0;
- bindat = 0;
-
- /* read the font matrix from the font */
- if (readfontmatrix(pf,mat)) return(0);
-
- /* decode the font data */
- decodetype1(pf, "/usr/tmp/type1.dec");
-
- /* open the input file */
- fakefopen();
-
- /* look for the /Subrs def and get my_nsubrs */
- while(1) {
- if(!fakefgets(oneline,LINELEN)) {
- fprintf(stderr,"fromtype1: no /Subrs found\n");
- my_nsubrs = 0;
- fakefopen();
- break;
- }
- cptr = strchr(oneline,'/');
- if(cptr) {
- if(strncmp(cptr,"/Subrs",6) == 0) {
- my_nsubrs = atoi(cptr+6);
- break;
- }
- }
- }
-
- /* read the Subrs in one by one */
- for(i=0; i<my_nsubrs; i++)
- my_sublen[i] = 0;
- for(i=0; i<my_nsubrs; i++) {
- for(k=0; k<MAXTRIES; k++) {
- fakegettoken(tok);
- if(strcmp(tok,"dup") == 0)
- break;
- }
- if(k == MAXTRIES) {
- fprintf(stderr,"dup for subr %d not found in range\n", i);
- /*exit(1);*/
- }
-
- /* get the Subr index here */
- fakegettoken(tok);
- index = atoi(tok);
-
- /* check to make sure it is in range */
- if(index<0 || index>my_nsubrs) {
- fprintf(stderr,"bad Subr index %d\n",index);
- /*exit(1);*/
- }
-
- /* get the number of bytes to read */
- fakegettoken(tok);
- nread = atoi(tok);
- fakegettoken(tok);
-
- /* read in the subroutine */
- my_sublen[index] = nread;
- my_subrs[index] = fakefread(nread);
- fakegettoken(tok);
- }
-
- /* look for the CharStrings */
- while(1) {
- fakegettoken(tok);
- cptr = strchr(tok,'/');
- if(cptr && strcmp(cptr,"/CharStrings") == 0)
- break;
- }
-
- fakegettoken(tok); /* skip my_ncharscrings */
- fakegettoken(tok); /* skip dict */
- fakegettoken(tok); /* skip dup */
- fakegettoken(tok); /* skip begin */
- fakegettoken(tok); /* skip newline */
-
- /* read the CharStrings one by one */
- my_nchars = 0;
- for(i=0; i<MAXCHARS; i++) {
-
- /* check for end */
- fakegettoken(tok);
- if(strcmp(tok,"end") == 0)
- break;
-
- /* get the char name and allocate space for it */
- namelen = strlen(tok);
- my_charname[i] = (char *)MEM_mallocN(namelen+1, "my_charname");
- strcpy(my_charname[i],tok);
-
- /* get the number of bytes to read */
- fakegettoken(tok);
- nread = atoi(tok);
- fakegettoken(tok);
-
- /* read in the char description */
- my_charlen[i] = nread;
- my_chars[i] = fakefread(nread);
-
- /* skip the end of line */
- fakegettoken(tok);
- fakegettoken(tok);
- my_nchars++;
- }
-
- /* decrypt the character descriptions */
- decryptall();
- setcharlist();
-
- /* make the obj font */
- makeobjfont(savesplines);
-
- if (bindat) MEM_freeN(bindat);
- /* system("rm /usr/tmp/type1.dec"); */
-
- return (fnt);
-}
-
-
-
-
-/*
- * pc stack support
- *
- */
-
-static void initpcstack(void)
-{
- pcsp = 0;
-}
-
-static void pushpc(char *pc)
-{
- pcstack[pcsp] = pc;
- pcsp++;
-}
-
-static char *poppc(void)
-{
- pcsp--;
- if(pcsp<0) {
- fprintf(stderr,"\nYUCK: pc stack under flow\n");
- pcsp = 0;
- return 0;
- }
- return pcstack[pcsp];
-}
-
-/*
- * Data stack support
- *
- */
-
-static void initstack(void)
-{
- sp = 0;
-}
-
-static void push(int val)
-/* int val; */
-{
- stack[sp] = val;
- sp++;
-}
-
-static int pop(void)
-{
- sp--;
- if(sp<0) {
- fprintf(stderr,"\nYUCK: stack under flow\n");
- sp = 0;
- return 0;
- }
- return stack[sp];
-}
-
-/*
- * call/return data stack
- *
- */
-
-static void initretstack(void)
-{
- retsp = 0;
-}
-
-static void retpush(int val)
-/* int val; */
-{
- retstack[retsp] = val;
- retsp++;
-}
-
-static int retpop(void)
-{
- retsp--;
- if(retsp<0) {
- fprintf(stderr,"\nYUCK: ret stack under flow\n");
- retsp = 0;
- return 0;
- }
- return retstack[retsp];
-}
-
-
-/*
- * execute the program:
- *
- *
- */
-
-static void getmove(int *x, int *y)
-{
- *x = delx;
- *y = dely;
- /* printf("ingetmove\n"); */
-}
-
-static void getpos(int *x, int *y)
-{
- *x = curx;
- *y = cury;
-}
-
-static void subr1(void)
-{
- coordpos = 0;
- incusp = 1;
-}
-
-static void subr2(void)
-{
- int x, y;
-
- getmove(&x,&y);
- if(coordpos>=7) {
- fprintf(stderr,"subr2: bad poop\n");
- /*exit(1);*/
- }
- coordsave[coordpos][0] = x;
- coordsave[coordpos][1] = y;
- coordpos++;
-}
-
-static void subr0(void)
-{
- int x0, y0;
- int x1, y1;
- int x2, y2;
- int x3, y3;
- int noise;
-
- pop(); /* xpos, unused */
- pop(); /* ypos, unused */
- noise = pop();
- if(coordpos!=7) {
- fprintf(stderr,"subr0: bad poop\n");
- /*exit(1);*/
- }
- x0 = coordsave[0][0];
- y0 = coordsave[0][1];
-
- x1 = coordsave[1][0]+x0;
- y1 = coordsave[1][1]+y0;
- x2 = coordsave[2][0];
- y2 = coordsave[2][1];
- x3 = coordsave[3][0];
- y3 = coordsave[3][1];
- rcurveto(x1,y1,x1+x2,y1+y2,x1+x2+x3,y1+y2+y3);
- x1 = coordsave[4][0];
- y1 = coordsave[4][1];
- x2 = coordsave[5][0];
- y2 = coordsave[5][1];
- x3 = coordsave[6][0];
- y3 = coordsave[6][1];
- rcurveto(x1,y1,x1+x2,y1+y2,x1+x2+x3,y1+y2+y3);
- getpos(&x0,&y0);
- retpush(y0);
- retpush(x0);
- incusp = 0;
-}
-
-static void append_poly_offset(short ofsx, short ofsy, short * data)
-{
- int nverts;
-
- if (data == 0) return;
-
- while(1) {
- switch(chardata[nshorts++] = *data++) {
- case PO_BGNLOOP:
- nshorts --; /* for the first time */
- break;
- case PO_RETENDLOOP:
- case PO_RET:
- return;
- }
- nverts = chardata[nshorts++] = *data++;
- while(nverts--) {
- chardata[nshorts++] = (*data++) + ofsx;
- chardata[nshorts++] = (*data++) + ofsy;
- }
- }
-}
-
-
-static void append_spline_offset(short ofsx, short ofsy, short * data)
-{
- int nverts = 0;
-
- if (data == 0) return;
-
- while(1) {
- switch(chardata[nshorts++] = *data++) {
- case SP_MOVETO:
- case SP_LINETO:
- nverts = 1;
- break;
- case SP_CURVETO:
- nverts = 3;
- break;
- case SP_RETCLOSEPATH:
- case SP_RET:
- return;
- }
-
- for (; nverts > 0; nverts--) {
- chardata[nshorts++] = (*data++) + ofsx;
- chardata[nshorts++] = (*data++) + ofsy;
- }
- }
-}
-
-
-
-/*
- * graphics follows
- *
- *
- */
-
-
-/* poly output stuff */
-
-static void setwidth(int w, int x)
-{
- thecharwidth = w;
- thesidebearing = x;
-}
-
-static void poly_beginchar(void)
-{
- npnts = 0;
- nloops = 0;
-}
-
-static void poly_endchar(void)
-{
- if(nloops == 0)
- chardata[nshorts++] = PO_RET;
- else
- chardata[nshorts++] = PO_RETENDLOOP;
-}
-
-static void poly_close(void)
-{
- chardata[nvertpos] = npnts;
- npnts = 0;
-}
-
-static void poly_pnt(float x, float y)
-{
- int ix, iy;
-
- applymat(mat,&x,&y);
- ix = floor(x);
- iy = floor(y);
- if(npnts == 0) {
- if(nloops == 0) {
- chardata[nshorts++] = PO_BGNLOOP;
- nvertpos = nshorts++;
- } else {
- chardata[nshorts++] = PO_ENDBGNLOOP;
- nvertpos = nshorts++;
- }
- nloops++;
- }
- chardata[nshorts++] = ix;
- chardata[nshorts++] = iy;
- npnts++;
-
-}
-
-/* spline output stuff */
-
-static void spline_beginchar(void)
-{
- sp_npnts = 0;
- sp_nloops = 0;
-}
-
-static void spline_endchar(void)
-{
- if(sp_nloops == 0)
- chardata[nshorts++] = SP_RET;
- else
- chardata[nshorts++] = SP_RETCLOSEPATH;
-}
-
-static void spline_close(void)
-{
- chardata[nshorts++] = SP_CLOSEPATH;
- sp_npnts = 0;
- sp_nloops = 0;
-}
-
-static void spline_line(float x0, float y0, float x1, float y1)
-{
- applymat(mat,&x0,&y0);
- applymat(mat,&x1,&y1);
-
- if(sp_npnts == 0) {
- chardata[nshorts++] = SP_MOVETO;
- chardata[nshorts++] = floor(x0);
- chardata[nshorts++] = floor(y0);
- sp_npnts++;
- sp_nloops++;
- }
- chardata[nshorts++] = SP_LINETO;
- chardata[nshorts++] = floor(x1);
- chardata[nshorts++] = floor(y1);
- sp_npnts++;
-}
-
-static void spline_curveto(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)
-{
- applymat(mat,&x0,&y0);
-
- applymat(mat,&x1,&y1);
- applymat(mat,&x2,&y2);
- applymat(mat,&x3,&y3);
- if(sp_npnts == 0) {
- chardata[nshorts++] = SP_MOVETO;
- chardata[nshorts++] = floor(x0);
- chardata[nshorts++] = floor(y0);
- sp_npnts++;
- sp_nloops++;
- }
- chardata[nshorts++] = SP_CURVETO;
- chardata[nshorts++] = floor(x1);
- chardata[nshorts++] = floor(y1);
- chardata[nshorts++] = floor(x2);
- chardata[nshorts++] = floor(y2);
- chardata[nshorts++] = floor(x3);
- chardata[nshorts++] = floor(y3);
-}
-
-static void savestart(int x, int y)
-{
- startx = x;
- starty = y;
- started = 1;
-}
-
-static void sbpoint( int x, int y)
-{
- curx = x;
- cury = y;
-}
-
-static void rmoveto( int x, int y)
-{
- if(incusp) {
- delx = x;
- dely = y;
- } else {
- curx += x;
- cury += y;
- savestart(curx,cury);
- }
-}
-
-static void drawline(float x0, float y0, float x1, float y1, float dx0, float dy0, float dx1, float dy1)
-{
- if(x0!=x1 || y0!=y1)
- poly_pnt(x1,y1);
-}
-
-
-static void rlineto( int x, int y)
-{
- float dx, dy;
-
- nextx = curx + x;
- nexty = cury + y;
- dx = nextx-curx;
- dy = nexty-cury;
- if (savesplines) spline_line( curx, cury, nextx, nexty);
- else drawline( curx, cury, nextx, nexty,dx,dy,dx,dy);
- curx = nextx;
- cury = nexty;
-}
-
-static void closepath(void)
-{
- float dx, dy;
-
- if(started) {
- dx = startx-curx;
- dy = starty-cury;
- if (savesplines) {
- spline_close();
- } else {
- drawline( curx, cury, startx, starty,dx,dy,dx,dy);
- poly_close();
- }
- started = 0;
- }
-}
-
-static void bezadapt( float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, float beztol)
-{
- float ax0,ay0,ax1,ay1,ax2,ay2,ax3,ay3;
- float bx0,by0,bx1,by1,bx2,by2,bx3,by3;
- float midx, midy;
- float linx, liny, dx, dy, mag;
-
- midx = (x0+3*x1+3*x2+x3)/8.0;
- midy = (y0+3*y1+3*y2+y3)/8.0;
- linx = (x0+x3)/2.0;
- liny = (y0+y3)/2.0;
- dx = midx-linx;
- dy = midy-liny;
- mag = dx*dx+dy*dy;
- if(mag<(beztol*beztol))
- drawline(x0,y0,x3,y3,x1-x0,y1-y0,x3-x2,y3-y2);
- else {
- ax0 = x0;
- ay0 = y0;
- ax1 = (x0+x1)/2;
- ay1 = (y0+y1)/2;
- ax2 = (x0+2*x1+x2)/4;
- ay2 = (y0+2*y1+y2)/4;
- ax3 = midx;
- ay3 = midy;
- bezadapt(ax0,ay0,ax1,ay1,ax2,ay2,ax3,ay3,beztol);
-
- bx0 = midx;
- by0 = midy;
- bx1 = (x1+2*x2+x3)/4;
- by1 = (y1+2*y2+y3)/4;
- bx2 = (x2+x3)/2;
- by2 = (y2+y3)/2;
- bx3 = x3;
- by3 = y3;
- bezadapt(bx0,by0,bx1,by1,bx2,by2,bx3,by3,beztol);
- }
-}
-
-static void drawbez( float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)
-{
- bezadapt(x0,y0,x1,y1,x2,y2,x3,y3,beztol);
-}
-
-
-static void rcurveto( int dx1, int dy1, int dx2, int dy2, int dx3, int dy3)
-{
- int x0, y0;
- int x1, y1;
- int x2, y2;
- int x3, y3;
-
- x0 = curx;
- y0 = cury;
- x1 = curx+dx1;
- y1 = cury+dy1;
- x2 = curx+dx2;
- y2 = cury+dy2;
- x3 = curx+dx3;
- y3 = cury+dy3;
-
- if (savesplines) {
- spline_curveto( x0, y0, x1, y1, x2, y2, x3, y3);
- } else{
- drawbez( x0, y0, x1, y1, x2, y2, x3, y3);
- }
- curx = x3;
- cury = y3;
-}
-
-/*
- * saveobjfont -
- * save an object font.
- *
- */
-
-/* generic routines */
-
-static void makeobjfont(int savesplines)
-{
- int i, c;
-
- if(savesplines)
- fnt = newobjfnt(SP_TYPE, 32, 32+NASCII-1, 9840);
- else
- fnt = newobjfnt(PO_TYPE, 32, 32+NASCII-1, 9840);
-
- for(i=0; i<NASCII; i++) {
- c = i+32;
- if(ISOcharlist[i].prog>=0) {
- /*printf("decoding %s\n", ISOcharlist[i].name);*/
-
- nshorts = 0;
- drawchar(ISOcharlist[i].prog);
- addchardata(fnt,c,chardata,nshorts);
- addcharmetrics(fnt,c,thecharwidth,0);
- sidebearing[c] = thesidebearing;
- } else if(c == ' ') {
- printf("faking space %d\n",i);
- fakechar(fnt,' ',400);
- }
- }
-}
-
-/*
- * run the character program
- *
- *
- */
-
-static void drawchar(int c)
-{
- if (savesplines) {
- spline_beginchar();
- } else {
- poly_beginchar();
- }
- initstack();
- initpcstack();
- initretstack();
- pc = my_chars[c];
- runprog();
- if (savesplines){
- spline_endchar();
- } else {
- poly_endchar();
- }
-}
-
-static int docommand(int cmd)
-{
- int x, y, w, c1, c2;
- int dx1, dy1;
- int dx2, dy2;
- int dx3, dy3;
- float fdx1, fdy1;
- int i, sub, n;
- char *subpc;
- chardesc *cd;
- short *ndata;
-
- switch(cmd) {
- case WHAT0:
- fprintf(stderr,"\nYUCK: WHAT0\n");
- break;
- case HSTEM:
- pop();
- pop();
- /*printf("hstem: %d %d\n", pop(), pop());*/
- break;
- case VSTEM:
- pop();
- pop();
- /*printf("vstem: %d %d\n", pop(), pop());*/
- break;
- case VMOVETO:
- y = pop();
- rmoveto(0,y);
- break;
- case RLINETO:
- y = pop();
- x = pop();
- rlineto(x,y);
- break;
- case HLINETO:
- x = pop();
- rlineto(x,0);
- break;
- case VLINETO:
- y = pop();
- rlineto(0,y);
- break;
- case RRCURVETO:
- dy3 = pop();
- dx3 = pop();
- dy2 = pop();
- dx2 = pop();
- dy1 = pop();
- dx1 = pop();
- rcurveto(dx1,dy1,dx1+dx2,dy1+dy2,dx1+dx2+dx3,dy1+dy2+dy3);
- break;
- case CLOSEPATH:
- closepath();
- break;
- case CALLSUBR:
- sub = pop();
- subpc = my_subrs[sub];
- if(!subpc) {
- fprintf(stderr,"\nYUCK no sub addr\n");
- }
- pushpc(pc);
- pc = subpc;
- break;
- case RETURN:
- pc = poppc();
- break;
- case HSBW:
- w = pop();
- x = pop();
- setwidth(w, x);
- sbpoint(x,0);
- break;
- case ENDCHAR:
- closepath();
- break;
- case RMOVETO:
- y = pop();
- x = pop();
- rmoveto(x,y);
- break;
- case HMOVETO:
- x = pop();
- rmoveto(x,0);
- break;
- case VHCURVETO:
- dy3 = 0;
- dx3 = pop();
- dy2 = pop();
- dx2 = pop();
- dy1 = pop();
- dx1 = 0;
- rcurveto(dx1,dy1,dx1+dx2,dy1+dy2,dx1+dx2+dx3,dy1+dy2+dy3);
- break;
- case HVCURVETO:
- dy3 = pop();
- dx3 = 0;
- dy2 = pop();
- dx2 = pop();
- dy1 = 0;
- dx1 = pop();
- rcurveto(dx1,dy1,dx1+dx2,dy1+dy2,dx1+dx2+dx3,dy1+dy2+dy3);
- break;
- case DOTSECTION:
- break;
- case VSTEM3:
- /*printf("vstem3\n");*/
- pop();
- pop();
- pop();
- pop();
- pop();
- pop();
- break;
- case HSTEM3:
- /*printf("hstem3\n");*/
- pop();
- pop();
- pop();
- pop();
- pop();
- pop();
- break;
- case SEAC:
- if (0) {
- printf("seac: %3d %3d %3d %3d %3d\n", pop(), pop(), pop(), pop(), pop());
- } else{
- c2 = STDtoISO(pop()); /* accent */
- c1 = STDtoISO(pop()); /* letter */
-
- cd = getchardesc(fnt, c1);
- if (cd) {
- memcpy(chardata, cd->data, cd->datalen);
- nshorts = cd->datalen / sizeof(short);
- }
-
- cd = getchardesc(fnt, c2);
- if (cd && cd->data && cd->datalen) {
- ndata = cd->data;
-
- if (nshorts) {
- if (savesplines) {
- switch (chardata[nshorts - 1]){
- case SP_RET:
- nshorts--;
- break;
- case SP_RETCLOSEPATH:
- chardata[nshorts - 1] = SP_CLOSEPATH;
- break;
- }
- } else {
- switch (chardata[nshorts - 1]){
- case PO_RET:
- printf("PO_RET in character disription ?\n");
- nshorts--;
- break;
- case PO_RETENDLOOP:
- if (ndata[0] == PO_BGNLOOP) {
- chardata[nshorts - 1] = PO_ENDBGNLOOP;
- } else {
- printf("new character doesn't start with PO_BGNLOOP ?\n");
- }
- break;
- }
- }
- }
-
- /* instead of the sidebearing[c1] maybe thesidebearing should be used */
-
- dy1 = pop();
- dx1 = pop() + sidebearing[c1] - sidebearing[c2];
- pop();
-
- fdx1 = dx1;
- fdy1 = dy1;
- applymat(mat, &fdx1, &fdy1);
- dx1 = floor(fdx1);
- dy1 = floor(fdy1);
-
- if (savesplines) {
- append_spline_offset(dx1, dy1, ndata);
- } else{
- append_poly_offset(dx1, dy1, ndata);
- }
-
- /*printf("first: %d %d\n", cd->data[0], cd->data[1]);*/
- }
- fflush(stdout);
- }
- break;
- case SBW:
- w = pop();
- y = pop();
- fprintf(stderr,"sbw: width: %d %d\n",w,y);
- y = pop();
- x = pop();
- fprintf(stderr,"sbw: side: %d %d\n",x,y);
- setwidth(w, x);
- sbpoint(x,y);
- break;
- case DIV:
- x = pop();
- y = pop();
- push(x/y);
- break;
- case CALLOTHERSUBR:
- sub = pop();
- n = pop();
- if(sub == 0)
- subr0();
- else if(sub == 1)
- subr1();
- else if(sub == 2)
- subr2();
- else {
- for(i=0; i<n; i++) {
- retpush(pop());
- }
- }
- break;
- case POP:
- push(retpop());
- break;
- case SETCURRENTPOINT:
- y = pop();
- x = pop();
- sbpoint(x,y);
- break;
- default:
- /*fprintf(stderr,"\nYUCK bad instruction %d\n",cmd);*/
- break;
- }
- if(pc == 0 || cmd == ENDCHAR || cmd == WHAT0 || cmd == SEAC)
- return 0;
- else
- return 1;
-}
-
-
-/*
- * Character interpreter
- *
- */
-
-static void runprog(void)
-{
- int v, w, num, cmd;
-
- while(1) {
- v = *pc++;
- if(v>=0 && v<=31) {
- if(v == 12) {
- w = *pc++;
- cmd = 256+w;
- } else
- cmd = v;
- if(!docommand(cmd)) {
- return;
- }
- } else if(v>=32 && v<=246) {
- num = v-139;
- push(num);
- } else if(v>=247 && v<=250) {
- w = *pc++;
- num = (v-247)*256+w+108;
- push(num);
- } else if(v>=251 && v<=254) {
- w = *pc++;
- num = -(v-251)*256-w-108;
- push(num);
- } else if(v == 255) {
- num = *pc++;
- num <<= 8;
- num |= *pc++;
- num <<= 8;
- num |= *pc++;
- num <<= 8;
- num |= *pc++;
- push(num);
- }
- }
-}
-
-/***/
-
-static VFontData *objfnt_to_vfontdata(objfnt *fnt)
-{
- VFontData *vfd;
- chardesc *cd;
- short *_data, *data;
- int a, i, count, stop, ready, meet;
- short first[2]={0,0}, last[2]={0,0};
- struct Nurb *nu;
- struct BezTriple *bezt, *bez2;
- float scale, dx, dy;
- struct VChar *che;
-
- if (!fnt || (fnt->type!=SP_TYPE)) {
- return NULL;
- }
-
- vfd= MEM_callocN(sizeof(*vfd), "VFontData");
- scale = 10.0/(float)fnt->scale; /* after IRIX 6.2, scaling went wrong */
-
- for (i = 0; i < MAX_VF_CHARS; i++) {
- cd = getchardesc(fnt, i);
- if (cd && cd->data && cd->datalen) {
- che = (VChar *) MEM_callocN(sizeof(VChar), "objfnt_char");
- BLI_addtail(&vfd->characters, che);
- che->index = i;
- che->width = scale * cd->movex;
-
- _data = data = cd->data;
-
- do{
- /* count first */
- _data = data;
- count = 0;
- ready = stop = 0;
-
- do{
- switch(*data++){
- case SP_MOVETO:
- first[0] = data[0];
- first[1] = data[1];
- case SP_LINETO:
- count++;
- last[0] = data[0];
- last[1] = data[1];
- data += 2;
- break;
- case SP_CURVETO:
- count++;
- last[0] = data[4];
- last[1] = data[5];
- data += 6;
- break;
- case SP_RET:
- case SP_RETCLOSEPATH:
- stop = 1;
- ready = 1;
- break;
- case SP_CLOSEPATH:
- stop = 1;
- break;
- }
- } while (!stop);
-
- if ((count>0) && last[0] == first[0] && last[1] == first[1]) meet = 1;
- else meet = 0;
-
- /* is there more than 1 unique point ?*/
-
- if (count - meet > 0) {
- data = _data;
- nu = (Nurb*)MEM_callocN(sizeof(struct Nurb),"objfnt_nurb");
- bezt = (BezTriple*)MEM_callocN((count)* sizeof(BezTriple),"objfnt_bezt") ;
- if (nu != 0 && bezt != 0) {
- BLI_addtail(&che->nurbsbase, nu);
- nu->type= CU_BEZIER+CU_2D;
- nu->pntsu = count;
- nu->resolu= 8;
- nu->flagu= CU_CYCLIC;
- nu->bezt = bezt;
- stop = 0;
-
- /* read points */
- do {
- switch(*data++){
- case SP_MOVETO:
- bezt->vec[1][0] = scale * *data++;
- bezt->vec[1][1] = scale * *data++;
-
- break;
- case SP_LINETO:
- bez2 = bezt++;
- bezt->vec[1][0] = scale * *data++;
- bezt->vec[1][1] = scale * *data++;
- /* vector handles */
- bezt->h1= HD_VECT;
- bez2->h2= HD_VECT;
- dx = (bezt->vec[1][0] - bez2->vec[1][0]) / 3.0;
- dy = (bezt->vec[1][1] - bez2->vec[1][1]) / 3.0;
- bezt->vec[0][0] = bezt->vec[1][0] - dx;
- bezt->vec[0][1] = bezt->vec[1][1] - dy;
- bez2->vec[2][0] = bez2->vec[1][0] + dx;
- bez2->vec[2][1] = bez2->vec[1][1] + dy;
- break;
-
- case SP_CURVETO:
- bezt->vec[2][0] = scale * *data++;
- bezt->vec[2][1] = scale * *data++;
- bezt->h2= HD_ALIGN;
- bezt++;
- bezt->vec[0][0] = scale * *data++;
- bezt->vec[0][1] = scale * *data++;
- bezt->vec[1][0] = scale * *data++;
- bezt->vec[1][1] = scale * *data++;
- bezt->h1= HD_ALIGN;
- break;
-
- case SP_RET:
- case SP_RETCLOSEPATH:
- stop = 1;
- ready = 1;
- break;
- case SP_CLOSEPATH:
- stop = 1;
- break;
- }
- } while (stop == 0);
-
- if (meet) {
- /* copy handles */
- nu->bezt->vec[0][0] = bezt->vec[0][0];
- nu->bezt->vec[0][1] = bezt->vec[0][1];
- /* and forget last point */
- nu->pntsu--;
- }
- else {
- /* vector handles */
- bez2 = nu->bezt;
- dx = (bezt->vec[1][0] - bez2->vec[1][0]) / 3.0;
- dy = (bezt->vec[1][1] - bez2->vec[1][1]) / 3.0;
- bezt->vec[2][0] = bezt->vec[1][0] - dx;
- bezt->vec[2][1] = bezt->vec[1][1] - dy;
- bez2->vec[0][0] = bez2->vec[1][0] + dx;
- bez2->vec[0][1] = bez2->vec[1][1] + dy;
- bezt->h2= bez2->h1= HD_VECT;
- }
-
- /* forbidden handle combinations */
- a= nu->pntsu;
- bezt= nu->bezt;
- while(a--) {
- if(bezt->h1!=HD_ALIGN && bezt->h2==HD_ALIGN) bezt->h2= 0;
- else if(bezt->h2!=HD_ALIGN && bezt->h1==HD_ALIGN) bezt->h1= 0;
- bezt->radius= 1.0f;
- bezt++;
- }
-
- }
- else {
- if (nu) MEM_freeN(nu);
- if (bezt) MEM_freeN(bezt);
- }
- }
- _data = data;
- } while (ready == 0);
- }
- }
-
- return vfd;
-}
-
-VFontData *BLI_vfontdata_from_psfont(PackedFile *pf)
-{
- objfnt *fnt= objfnt_from_psfont(pf);
- VFontData *vfd= NULL;
-
- if (fnt) {
- vfd= objfnt_to_vfontdata(fnt);
- freeobjfnt(fnt);
- }
-
- return vfd;
-}
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index 5970cf481ac..4e479bd75d0 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -856,71 +856,6 @@ static int animdata_filter_nla (ListBase *anim_data, AnimData *adt, int filter_m
/* return the number of items added to the list */
return items;
}
-
-static int animdata_filter_shapekey (ListBase *anim_data, Key *key, int filter_mode, void *owner, short ownertype, ID *owner_id)
-{
- bAnimListElem *ale;
- KeyBlock *kb;
- //FCurve *fcu;
- int i, items=0;
-
- /* are we filtering for display or editing */
- if (filter_mode & ANIMFILTER_CHANNELS) {
- /* for display - loop over shapekeys, adding ipo-curve references where needed */
- kb= key->block.first;
-
- /* loop through possible shapekeys, manually creating entries */
- for (i= 1; i < key->totkey; i++) {
- ale= MEM_callocN(sizeof(bAnimListElem), "bAnimListElem");
- kb = kb->next; /* do this even on the first try, as the first is 'Basis' (which doesn't get included) */
-
- ale->data= kb;
- ale->type= ANIMTYPE_SHAPEKEY; /* 'abused' usage of this type */
- ale->owner= key;
- ale->ownertype= ANIMTYPE_SHAPEKEY;
- ale->datatype= ALE_NONE;
- ale->index = i;
-
-#if 0 // XXX fixme... old system
- if (key->ipo) {
- for (icu= key->ipo->curve.first; icu; icu=icu->next) {
- if (icu->adrcode == i) {
- ale->key_data= icu;
- ale->datatype= ALE_ICU;
- break;
- }
- }
- }
-#endif // XXX fixme... old system
-
- ale->id= owner_id;
-
- BLI_addtail(anim_data, ale);
- items++;
- }
- }
- else {
-#if 0 // XXX fixme... old system
- /* loop over ipo curves if present - for editing */
- if (key->ipo) {
- if (filter_mode & ANIMFILTER_IPOKEYS) {
- ale= make_new_animlistelem(key->ipo, ANIMTYPE_IPO, key, ANIMTYPE_SHAPEKEY);
- if (ale) {
- if (owned) ale->id= owner;
- BLI_addtail(anim_data, ale);
- items++;
- }
- }
- else {
- items += animdata_filter_ipocurves(anim_data, key->ipo, filter_mode, key, ANIMTYPE_SHAPEKEY, (owned)?(owner):(NULL));
- }
- }
-#endif // XXX fixme... old system
- }
-
- /* return the number of items added to the list */
- return items;
-}
#if 0
// FIXME: switch this to use the bDopeSheet...
@@ -1272,7 +1207,7 @@ static int animdata_filter_dopesheet_ob (ListBase *anim_data, bDopeSheet *ads, B
/* add channels */
if (FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) {
- items += animdata_filter_shapekey(anim_data, key, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)ob);
+ items += animdata_filter_fcurves(anim_data, adt->drivers.first, NULL, key, ANIMTYPE_DSSKEY, filter_mode, (ID *)key);
}
},
{ /* action (keyframes) */
@@ -1287,7 +1222,7 @@ static int animdata_filter_dopesheet_ob (ListBase *anim_data, bDopeSheet *ads, B
/* add channels */
if (FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) {
- items += animdata_filter_shapekey(anim_data, key, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)ob);
+ items += animdata_filter_action(anim_data, adt->action, filter_mode, key, ANIMTYPE_DSSKEY, (ID *)key);
}
}
);
@@ -1792,7 +1727,7 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode
break;
case ANIMCONT_SHAPEKEY:
- items= animdata_filter_shapekey(anim_data, data, filter_mode, NULL, ANIMTYPE_NONE, (ID *)obact);
+ //items= animdata_filter_shapekey(anim_data, data, filter_mode, NULL, ANIMTYPE_NONE, (ID *)obact);
break;
case ANIMCONT_GPENCIL:
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index 7bee57708ec..2da082a9b7c 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -1438,10 +1438,17 @@ int autokeyframe_cfra_can_key(Scene *scene, ID *id)
/* only filter if auto-key mode requires this */
if (IS_AUTOKEY_ON(scene) == 0)
return 0;
- else if (IS_AUTOKEY_MODE(scene, NORMAL))
+
+ if (IS_AUTOKEY_MODE(scene, NORMAL)) {
+ /* can insert anytime we like... */
return 1;
- else
+ }
+ else /* REPLACE */ {
+ /* for whole block - only key if there's a keyframe on that frame already
+ * this is a valid assumption when we're blocking + tweaking
+ */
return id_frame_has_keyframe(id, cfra, ANIMFILTER_KEYS_LOCAL);
+ }
}
/* ******************************************* */
diff --git a/source/blender/editors/include/ED_screen_types.h b/source/blender/editors/include/ED_screen_types.h
index 3ea5dfba65c..76a2a55c29e 100644
--- a/source/blender/editors/include/ED_screen_types.h
+++ b/source/blender/editors/include/ED_screen_types.h
@@ -33,9 +33,18 @@
typedef struct ScreenAnimData {
ARegion *ar; /* do not read from this, only for comparing if region exists */
int redraws;
- int reverse;
+ int flag; /* flags for playback */
} ScreenAnimData;
+/* for animplayer */
+enum {
+ /* user-setting - frame range is played backwards */
+ ANIMPLAY_FLAG_REVERSE = (1<<0),
+ /* temporary - playback just jumped to the start/end */
+ ANIMPLAY_FLAG_JUMPED = (1<<1),
+};
+
+
typedef struct AZone {
struct AZone *next, *prev;
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index d2e9236fcff..2993a1aba15 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -144,7 +144,7 @@ void ui_but_anim_autokey(uiBut *but, Scene *scene, float cfra)
if(fcu && !driven) {
id= but->rnapoin.id.data;
-
+
if(autokeyframe_cfra_can_key(scene, id)) {
short flag = 0;
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 55c4cbd5117..edf01f4da2c 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -432,31 +432,21 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i
/* Softbody not allowed in this situation, enforce! */
if(((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) && (md->type!=eModifierType_Surface)) {
uiItemR(row, "", ICON_SCENE, &ptr, "render", 0, 0, 0);
- uiItemR(row, "", ICON_VIEW3D, &ptr, "realtime", 0, 0, 0);
+ uiItemR(row, "", ICON_RESTRICT_VIEW_OFF, &ptr, "realtime", 0, 0, 0);
if(mti->flags & eModifierTypeFlag_SupportsEditmode)
- uiItemR(row, "", ICON_VIEW3D, &ptr, "editmode", 0, 0, 0);
+ uiItemR(row, "", ICON_EDITMODE_HLT, &ptr, "editmode", 0, 0, 0);
}
- uiBlockEndAlign(block);
+
/* XXX uiBlockSetEmboss(block, UI_EMBOSSR); */
if(ob->type==OB_MESH && modifier_couldBeCage(md) && index<=lastCageIndex) {
- int icon; //, color;
-
- if(index==cageIndex) {
- // XXX color = TH_BUT_SETTING;
- icon = VICON_EDITMODE_HLT;
- } else if(index<cageIndex) {
- // XXX color = TH_BUT_NEUTRAL;
- icon = VICON_EDITMODE_DEHLT;
- } else {
- // XXX color = TH_BUT_NEUTRAL;
- icon = ICON_BLANK1;
- }
+
/* XXX uiBlockSetCol(block, color); */
- but = uiDefIconBut(block, BUT, 0, icon, 0, 0, 16, 16, NULL, 0.0, 0.0, 0.0, 0.0, "Apply modifier to editing cage during Editmode");
+ but = uiDefIconBut(block, BUT, 0, ICON_MESH_DATA, 0, 0, 16, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Apply modifier to editing cage during Editmode");
uiButSetFunc(but, modifiers_setOnCage, ob, md);
+ uiBlockEndAlign(block);
/* XXX uiBlockSetCol(block, TH_AUTO); */
}
}
@@ -464,8 +454,10 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i
/* up/down/delete */
if(!isVirtual) {
/* XXX uiBlockSetCol(block, TH_BUT_ACTION); */
+ uiBlockBeginAlign(block);
uiItemO(row, "", VICON_MOVE_UP, "OBJECT_OT_modifier_move_up");
uiItemO(row, "", VICON_MOVE_DOWN, "OBJECT_OT_modifier_move_down");
+ uiBlockEndAlign(block);
uiBlockSetEmboss(block, UI_EMBOSSN);
diff --git a/source/blender/editors/object/editkey.c b/source/blender/editors/object/editkey.c
index f38c03fb284..82194a4c3b4 100644
--- a/source/blender/editors/object/editkey.c
+++ b/source/blender/editors/object/editkey.c
@@ -164,14 +164,20 @@ static KeyBlock *add_keyblock(Scene *scene, Key *key)
kb= MEM_callocN(sizeof(KeyBlock), "Keyblock");
BLI_addtail(&key->block, kb);
kb->type= KEY_CARDINAL;
+
tot= BLI_countlist(&key->block);
if(tot==1) strcpy(kb->name, "Basis");
else sprintf(kb->name, "Key %d", tot-1);
+
+ // XXX this is old anim system stuff? (i.e. the 'index' of the shapekey)
kb->adrcode= tot-1;
key->totkey++;
if(key->totkey==1) key->refkey= kb;
+ kb->slidermin= 0.0f;
+ kb->slidermax= 1.0f;
+
// XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor...
if(key->type == KEY_RELATIVE)
kb->pos= curpos+0.1;
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 817959aef13..926768c98ab 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1477,7 +1477,7 @@ void ED_screen_animation_timer(bContext *C, int redraws, int enable)
screen->animtimer= WM_event_add_window_timer(win, TIMER0, (1.0/FPS));
sad->ar= CTX_wm_region(C);
sad->redraws= redraws;
- sad->reverse= (enable < 0);
+ sad->flag= (enable < 0) ? ANIMPLAY_FLAG_REVERSE : 0;
screen->animtimer->customdata= sad;
}
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 00acae734ee..3b482ec3512 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -1413,6 +1413,37 @@ static void SCREEN_OT_frame_offset(wmOperatorType *ot)
RNA_def_int(ot->srna, "delta", 0, INT_MIN, INT_MAX, "Delta", "", INT_MIN, INT_MAX);
}
+
+/* function to be called outside UI context, or for redo */
+static int frame_jump_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+
+ if (RNA_boolean_get(op->ptr, "end"))
+ CFRA= PEFRA;
+ else
+ CFRA= PSFRA;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+static void SCREEN_OT_frame_jump(wmOperatorType *ot)
+{
+ ot->name = "Jump to Endpoint";
+ ot->idname = "SCREEN_OT_frame_jump";
+
+ ot->exec= frame_jump_exec;
+
+ ot->poll= ED_operator_screenactive;
+ ot->flag= 0;
+
+ /* rna */
+ RNA_def_boolean(ot->srna, "end", 0, "Last Frame", "Jump to the last frame of the frame range.");
+}
+
+
/* ************** jump to keyframe operator ***************************** */
/* helper function - find actkeycolumn that occurs on cframe, or the nearest one if not found */
@@ -2199,39 +2230,50 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event)
if(scene->audio.flag & AUDIO_SYNC) {
int step = floor(wt->duration * FPS);
- if (sad->reverse) // XXX does this option work with audio?
+ if (sad->flag & ANIMPLAY_FLAG_REVERSE) // XXX does this option work with audio?
scene->r.cfra -= step;
else
scene->r.cfra += step;
wt->duration -= ((float)step)/FPS;
}
else {
- if (sad->reverse)
+ if (sad->flag & ANIMPLAY_FLAG_REVERSE)
scene->r.cfra--;
else
scene->r.cfra++;
}
- if (sad->reverse) {
- /* jump back to end */
+ /* reset 'jumped' flag before checking if we need to jump... */
+ sad->flag &= ~ANIMPLAY_FLAG_JUMPED;
+
+ if (sad->flag & ANIMPLAY_FLAG_REVERSE) {
+ /* jump back to end? */
if (scene->r.psfra) {
- if(scene->r.cfra < scene->r.psfra)
+ if (scene->r.cfra < scene->r.psfra) {
scene->r.cfra= scene->r.pefra;
+ sad->flag |= ANIMPLAY_FLAG_JUMPED;
+ }
}
else {
- if(scene->r.cfra < scene->r.sfra)
+ if (scene->r.cfra < scene->r.sfra) {
scene->r.cfra= scene->r.efra;
+ sad->flag |= ANIMPLAY_FLAG_JUMPED;
+ }
}
}
else {
- /* jump back to start */
+ /* jump back to start? */
if (scene->r.psfra) {
- if(scene->r.cfra > scene->r.pefra)
+ if (scene->r.cfra > scene->r.pefra) {
scene->r.cfra= scene->r.psfra;
+ sad->flag |= ANIMPLAY_FLAG_JUMPED;
+ }
}
else {
- if(scene->r.cfra > scene->r.efra)
+ if (scene->r.cfra > scene->r.efra) {
scene->r.cfra= scene->r.sfra;
+ sad->flag |= ANIMPLAY_FLAG_JUMPED;
+ }
}
}
@@ -2274,6 +2316,10 @@ static void SCREEN_OT_animation_step(wmOperatorType *ot)
/* ****************** anim player, starts or ends timer ***************** */
+/* helper for screen_animation_play() - only to be used for TimeLine */
+// NOTE: defined in time_header.c for now...
+extern ARegion *time_top_left_3dwindow(bScreen *screen);
+
/* toggle operator */
static int screen_animation_play(bContext *C, wmOperator *op, wmEvent *event)
{
@@ -2285,15 +2331,32 @@ static int screen_animation_play(bContext *C, wmOperator *op, wmEvent *event)
sound_stop_all(C);
}
else {
+ ScrArea *sa= CTX_wm_area(C);
int mode= (RNA_boolean_get(op->ptr, "reverse")) ? -1 : 1;
- ED_screen_animation_timer(C, TIME_REGION|TIME_ALL_3D_WIN, mode);
-
- if(screen->animtimer) {
- wmTimer *wt= screen->animtimer;
- ScreenAnimData *sad= wt->customdata;
+ /* timeline gets special treatment since it has it's own menu for determining redraws */
+ if ((sa) && (sa->spacetype == SPACE_TIME)) {
+ SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
- sad->ar= CTX_wm_region(C);
+ ED_screen_animation_timer(C, stime->redraws, mode);
+
+ /* update region if TIME_REGION was set, to leftmost 3d window */
+ if(screen->animtimer && (stime->redraws & TIME_REGION)) {
+ wmTimer *wt= screen->animtimer;
+ ScreenAnimData *sad= wt->customdata;
+
+ sad->ar= time_top_left_3dwindow(screen);
+ }
+ }
+ else {
+ ED_screen_animation_timer(C, TIME_REGION|TIME_ALL_3D_WIN, mode);
+
+ if(screen->animtimer) {
+ wmTimer *wt= screen->animtimer;
+ ScreenAnimData *sad= wt->customdata;
+
+ sad->ar= CTX_wm_region(C);
+ }
}
}
@@ -3058,6 +3121,7 @@ void ED_operatortypes_screen(void)
/*frame changes*/
WM_operatortype_append(SCREEN_OT_frame_offset);
+ WM_operatortype_append(SCREEN_OT_frame_jump);
WM_operatortype_append(SCREEN_OT_keyframe_jump);
WM_operatortype_append(SCREEN_OT_animation_step);
@@ -3170,6 +3234,9 @@ void ED_keymap_screen(wmWindowManager *wm)
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
+ WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1);
+
WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", PAGEUPKEY, KM_PRESS, KM_CTRL, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", PAGEDOWNKEY, KM_PRESS, KM_CTRL, 0)->ptr, "next", 0);
diff --git a/source/blender/editors/space_graph/graph_header.c b/source/blender/editors/space_graph/graph_header.c
index 4369c321c5e..5a7b7d654b1 100644
--- a/source/blender/editors/space_graph/graph_header.c
+++ b/source/blender/editors/space_graph/graph_header.c
@@ -307,11 +307,11 @@ void graph_header_buttons(const bContext *C, ARegion *ar)
uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCUR, B_REDR, ICON_CURVE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(sipo->ads->filterflag), 0, 0, 0, 0, "Display Curves");
uiDefIconButBitI(block, TOGN, ADS_FILTER_NOPART, B_REDR, ICON_PARTICLE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(sipo->ads->filterflag), 0, 0, 0, 0, "Display Particles");
uiBlockEndAlign(block);
- xco += 15;
+ xco += 30;
}
else {
// XXX this case shouldn't happen at all... for now, just pad out same amount of space
- xco += 6*XIC + 15;
+ xco += 9*XIC + 30;
}
/* auto-snap selector */
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 222f2142c38..0390586951b 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -69,20 +69,20 @@ ARegion *graph_has_buttons_region(ScrArea *sa)
ARegion *ar, *arnew;
for (ar= sa->regionbase.first; ar; ar= ar->next) {
- if(ar->regiontype==RGN_TYPE_UI)
+ if (ar->regiontype==RGN_TYPE_UI)
return ar;
}
- /* add subdiv level; after main window */
+ /* add subdiv level; after main */
for (ar= sa->regionbase.first; ar; ar= ar->next) {
- if(ar->regiontype==RGN_TYPE_WINDOW)
+ if (ar->regiontype==RGN_TYPE_WINDOW)
break;
}
/* is error! */
- if(ar==NULL) return NULL;
+ if (ar==NULL) return NULL;
- arnew= MEM_callocN(sizeof(ARegion), "buttons for nla");
+ arnew= MEM_callocN(sizeof(ARegion), "buttons for graph");
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
arnew->regiontype= RGN_TYPE_UI;
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index a74037d1ace..a87ab36714c 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -100,7 +100,7 @@ static void do_nla_region_buttons(bContext *C, void *arg, int event)
WM_event_add_notifier(C, NC_SCENE|NC_OBJECT|ND_TRANSFORM, NULL);
}
-static int nla_panel_context(const bContext *C, PointerRNA *nlt_ptr, PointerRNA *strip_ptr)
+static int nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA *nlt_ptr, PointerRNA *strip_ptr)
{
bAnimContext ac;
bAnimListElem *ale= NULL;
@@ -121,8 +121,13 @@ static int nla_panel_context(const bContext *C, PointerRNA *nlt_ptr, PointerRNA
for (ale= anim_data.first; ale; ale= ale->next) {
if (ale->type == ANIMTYPE_NLATRACK) {
NlaTrack *nlt= (NlaTrack *)ale->data;
+ AnimData *adt= ale->adt;
/* found it, now set the pointers */
+ if (adt_ptr) {
+ /* AnimData pointer */
+ RNA_pointer_create(ale->id, &RNA_AnimData, adt, adt_ptr);
+ }
if (nlt_ptr) {
/* NLA-Track pointer */
RNA_pointer_create(ale->id, &RNA_NlaTrack, nlt, nlt_ptr);
@@ -151,16 +156,22 @@ static int nla_panel_poll(const bContext *C, PanelType *pt)
}
#endif
+static int nla_animdata_panel_poll(const bContext *C, PanelType *pt)
+{
+ PointerRNA ptr;
+ return (nla_panel_context(C, &ptr, NULL, NULL) && (ptr.data != NULL));
+}
+
static int nla_track_panel_poll(const bContext *C, PanelType *pt)
{
PointerRNA ptr;
- return (nla_panel_context(C, &ptr, NULL) && (ptr.data != NULL));
+ return (nla_panel_context(C, NULL, &ptr, NULL) && (ptr.data != NULL));
}
static int nla_strip_panel_poll(const bContext *C, PanelType *pt)
{
PointerRNA ptr;
- return (nla_panel_context(C, NULL, &ptr) && (ptr.data != NULL));
+ return (nla_panel_context(C, NULL, NULL, &ptr) && (ptr.data != NULL));
}
static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *pt)
@@ -168,7 +179,7 @@ static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *pt)
PointerRNA ptr;
NlaStrip *strip;
- if (!nla_panel_context(C, NULL, &ptr))
+ if (!nla_panel_context(C, NULL, NULL, &ptr))
return 0;
if (ptr.data == NULL)
return 0;
@@ -179,6 +190,42 @@ static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *pt)
/* -------------- */
+/* active AnimData */
+static void nla_panel_animdata (const bContext *C, Panel *pa)
+{
+ PointerRNA adt_ptr;
+ AnimData *adt;
+ uiLayout *layout= pa->layout;
+ uiLayout *row;
+ uiBlock *block;
+
+ /* check context and also validity of pointer */
+ if (!nla_panel_context(C, &adt_ptr, NULL, NULL))
+ return;
+ adt= adt_ptr.data;
+
+ block= uiLayoutGetBlock(layout);
+ uiBlockSetHandleFunc(block, do_nla_region_buttons, NULL);
+
+ /* Active Action Properties ------------------------------------- */
+ /* action */
+ row= uiLayoutRow(layout, 1);
+ uiLayoutSetEnabled(row, (adt->flag & ADT_NLA_EDIT_ON)==0);
+ uiItemR(row, NULL, 0, &adt_ptr, "action", 0, 0, 0);
+
+ /* extrapolation */
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, NULL, 0, &adt_ptr, "action_extrapolation", 0, 0, 0);
+
+ /* blending */
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, NULL, 0, &adt_ptr, "action_blending", 0, 0, 0);
+
+ /* influence */
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, NULL, 0, &adt_ptr, "action_influence", 0, 0, 0);
+}
+
/* active NLA-Track */
static void nla_panel_track (const bContext *C, Panel *pa)
{
@@ -188,9 +235,9 @@ static void nla_panel_track (const bContext *C, Panel *pa)
uiBlock *block;
/* check context and also validity of pointer */
- if (!nla_panel_context(C, &nlt_ptr, NULL))
+ if (!nla_panel_context(C, NULL, &nlt_ptr, NULL))
return;
-
+
block= uiLayoutGetBlock(layout);
uiBlockSetHandleFunc(block, do_nla_region_buttons, NULL);
@@ -207,7 +254,7 @@ static void nla_panel_properties(const bContext *C, Panel *pa)
uiLayout *column, *row, *subcol;
uiBlock *block;
- if (!nla_panel_context(C, NULL, &strip_ptr))
+ if (!nla_panel_context(C, NULL, NULL, &strip_ptr))
return;
block= uiLayoutGetBlock(layout);
@@ -263,7 +310,7 @@ static void nla_panel_actclip(const bContext *C, Panel *pa)
uiBlock *block;
/* check context and also validity of pointer */
- if (!nla_panel_context(C, NULL, &strip_ptr))
+ if (!nla_panel_context(C, NULL, NULL, &strip_ptr))
return;
block= uiLayoutGetBlock(layout);
@@ -298,7 +345,7 @@ static void nla_panel_evaluation(const bContext *C, Panel *pa)
uiBlock *block;
/* check context and also validity of pointer */
- if (!nla_panel_context(C, NULL, &strip_ptr))
+ if (!nla_panel_context(C, NULL, NULL, &strip_ptr))
return;
block= uiLayoutGetBlock(layout);
@@ -330,7 +377,7 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa)
uiBlock *block;
/* check context and also validity of pointer */
- if (!nla_panel_context(C, NULL, &strip_ptr))
+ if (!nla_panel_context(C, NULL, NULL, &strip_ptr))
return;
strip= strip_ptr.data;
@@ -362,6 +409,14 @@ void nla_buttons_register(ARegionType *art)
{
PanelType *pt;
+ pt= MEM_callocN(sizeof(PanelType), "spacetype nla panel animdata");
+ strcpy(pt->idname, "NLA_PT_animdata");
+ strcpy(pt->label, "Animation Data");
+ pt->draw= nla_panel_animdata;
+ pt->poll= nla_animdata_panel_poll;
+ pt->flag= PNL_DEFAULT_CLOSED;
+ BLI_addtail(&art->paneltypes, pt);
+
pt= MEM_callocN(sizeof(PanelType), "spacetype nla panel track");
strcpy(pt->idname, "NLA_PT_track");
strcpy(pt->label, "Active Track");
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index 61488db0007..8445f1b47e7 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -422,7 +422,7 @@ void ED_spacetype_time(void)
art= MEM_callocN(sizeof(ARegionType), "spacetype time region");
art->regionid = RGN_TYPE_HEADER;
art->minsizey= HEADERY;
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
+ art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES;
art->init= time_header_area_init;
art->draw= time_header_area_draw;
diff --git a/source/blender/editors/space_time/time_header.c b/source/blender/editors/space_time/time_header.c
index 436a841deb8..b4e3c087360 100644
--- a/source/blender/editors/space_time/time_header.c
+++ b/source/blender/editors/space_time/time_header.c
@@ -69,7 +69,8 @@
/* ************************ header time area region *********************** */
-static ARegion *time_top_left_3dwindow(bScreen *screen)
+/* exported for use in screen_ops.c */
+ARegion *time_top_left_3dwindow(bScreen *screen)
{
ARegion *aret= NULL;
ScrArea *sa;
@@ -204,12 +205,6 @@ static void do_time_viewmenu(bContext *C, void *arg, int event)
case 7:
//nextprev_marker(-1);
break;
- case 8:
- //nextprev_timeline_key(1);
- break;
- case 9:
- //nextprev_timeline_key(-1);
- break;
case 10:
//timeline_frame_to_center();
break;
@@ -360,10 +355,8 @@ static uiBlock *time_framemenu(bContext *C, ARegion *ar, void *arg_unused)
#define B_REDRAWALL 750
-#define B_TL_REW 751
#define B_TL_PLAY 752
#define B_TL_RPLAY 760
-#define B_TL_FF 753
#define B_TL_STOP 756
#define B_TL_PREVIEWON 757
@@ -374,8 +367,6 @@ static uiBlock *time_framemenu(bContext *C, ARegion *ar, void *arg_unused)
void do_time_buttons(bContext *C, void *arg, int event)
{
- bScreen *screen= CTX_wm_screen(C);
- SpaceTime *stime= CTX_wm_space_time(C);
Scene *scene= CTX_data_scene(C);
switch(event) {
@@ -385,45 +376,6 @@ void do_time_buttons(bContext *C, void *arg, int event)
case B_NEWFRAME:
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
break;
- case B_TL_REW:
- scene->r.cfra= PSFRA;
- WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
- //update_for_newframe();
- break;
- case B_TL_PLAY:
- ED_screen_animation_timer(C, stime->redraws, 1);
-
- /* update region if TIME_REGION was set, to leftmost 3d window */
- if(screen->animtimer && (stime->redraws & TIME_REGION)) {
- wmTimer *wt= screen->animtimer;
- ScreenAnimData *sad= wt->customdata;
-
- sad->ar= time_top_left_3dwindow(screen);
- }
-
- break;
- case B_TL_RPLAY:
- ED_screen_animation_timer(C, stime->redraws, -1);
-
- /* update region if TIME_REGION was set, to leftmost 3d window */
- if(screen->animtimer && (stime->redraws & TIME_REGION)) {
- wmTimer *wt= screen->animtimer;
- ScreenAnimData *sad= wt->customdata;
-
- sad->ar= time_top_left_3dwindow(screen);
- }
-
- break;
- case B_TL_STOP:
- ED_screen_animation_timer(C, 0, 0);
- break;
- case B_TL_FF:
- /* end frame */
- scene->r.cfra= PEFRA;
- WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
- //update_for_newframe();
- break;
-
case B_TL_PREVIEWON:
if (scene->r.psfra) {
/* turn on preview range */
@@ -447,6 +399,7 @@ void time_header_buttons(const bContext *C, ARegion *ar)
ScrArea *sa= CTX_wm_area(C);
SpaceTime *stime= CTX_wm_space_time(C);
Scene *scene= CTX_data_scene(C);
+ wmTimer *animtimer= CTX_wm_screen(C)->animtimer;
uiBlock *block;
uiBut *but;
int xco, yco= 3;
@@ -527,30 +480,28 @@ void time_header_buttons(const bContext *C, ARegion *ar)
xco += (short)(3.5 * XIC);
uiBlockBeginAlign(block);
-
- uiDefIconBut(block, BUT, B_TL_REW, ICON_REW,
- xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to Start frame (Shift DownArrow)");
+
+ but= uiDefIconButO(block, BUT, "SCREEN_OT_frame_jump", WM_OP_INVOKE_REGION_WIN, ICON_REW, xco,yco,XIC,YIC, "Skip to Start frame (Shift DownArrow)");
+ RNA_boolean_set(uiButGetOperatorPtrRNA(but), "end", 0);
xco+= XIC;
but= uiDefIconButO(block, BUT, "SCREEN_OT_keyframe_jump", WM_OP_INVOKE_REGION_WIN, ICON_PREV_KEYFRAME, xco,yco,XIC,YIC, "Skip to previous keyframe (Ctrl PageDown)");
RNA_boolean_set(uiButGetOperatorPtrRNA(but), "next", 0);
xco+= XIC;
- if(CTX_wm_screen(C)->animtimer) {
+ if (animtimer) {
/* pause button 2*size to keep buttons in place */
- uiDefIconBut(block, BUT, B_TL_STOP, ICON_PAUSE,
- xco, yco, XIC*2, YIC, 0, 0, 0, 0, 0, "Stop Playing Timeline");
-
+ but=uiDefIconButO(block, BUT, "SCREEN_OT_animation_play", WM_OP_INVOKE_REGION_WIN, ICON_PAUSE, xco,yco,XIC*2,YIC, "Stop Playing Timeline");
+
xco+= XIC;
}
else {
- uiDefIconBut(block, BUT, B_TL_RPLAY, ICON_PLAY_REVERSE,
- xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Play Timeline in Reverse");
-
+ but=uiDefIconButO(block, BUT, "SCREEN_OT_animation_play", WM_OP_INVOKE_REGION_WIN, ICON_PLAY_REVERSE, xco,yco,XIC,YIC, "Play Timeline in Reverse");
+ RNA_boolean_set(uiButGetOperatorPtrRNA(but), "reverse", 1);
xco+= XIC;
- uiDefIconBut(block, BUT, B_TL_PLAY, ICON_PLAY,
- xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Play Timeline ");
+ but=uiDefIconButO(block, BUT, "SCREEN_OT_animation_play", WM_OP_INVOKE_REGION_WIN, ICON_PLAY, xco,yco,XIC,YIC, "Play Timeline");
+ RNA_boolean_set(uiButGetOperatorPtrRNA(but), "reverse", 0);
}
xco+= XIC;
@@ -558,23 +509,32 @@ void time_header_buttons(const bContext *C, ARegion *ar)
RNA_boolean_set(uiButGetOperatorPtrRNA(but), "next", 1);
xco+= XIC;
- uiDefIconBut(block, BUT, B_TL_FF, ICON_FF,
- xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to End frame (Shift UpArrow)");
+ but= uiDefIconButO(block, BUT, "SCREEN_OT_frame_jump", WM_OP_INVOKE_REGION_WIN, ICON_FF, xco,yco,XIC,YIC, "Skip to End frame (Shift UpArrow)");
+ RNA_boolean_set(uiButGetOperatorPtrRNA(but), "end", 1);
+ xco+= XIC;
uiBlockEndAlign(block);
- xco+= 2*XIC;
+ xco+= 1.5*XIC;
uiBlockBeginAlign(block);
uiDefIconButBitS(block, TOG, AUTOKEY_ON, B_REDRAWALL, ICON_REC,
xco, yco, XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
xco+= XIC;
-
- if(IS_AUTOKEY_ON(scene)) {
+
+ if (IS_AUTOKEY_ON(scene)) {
uiDefButS(block, MENU, B_REDRAWALL,
"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5",
xco, yco, (int)5.5*XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 1, 0, 0,
"Mode of automatic keyframe insertion for Objects and Bones");
xco+= (5.5*XIC);
+
+ if (animtimer) {
+ uiDefButBitS(block, TOG, ANIMRECORD_FLAG_WITHNLA, B_REDRAWALL, "Layered",
+ xco,yco, XIC*2.5, YIC,
+ &(scene->toolsettings->autokey_flag),0, 1, 0, 0,
+ "Add a new NLA Track + Strip for every loop/pass made over the animation to allow non-destructive tweaking.");
+ xco+= (3*XIC);
+ }
}
else
xco+= 6;
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index e3e4822b383..510193fdade 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -93,6 +93,7 @@
//#include "BSE_view.h"
#include "ED_image.h"
+#include "ED_keyframing.h"
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_markers.h"
@@ -298,6 +299,10 @@ static void viewRedrawForce(bContext *C, TransInfo *t)
{
/* Do we need more refined tags? */
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
+
+ /* for realtime animation record - send notifiers recognised by animation editors */
+ if ((t->animtimer) && IS_AUTOKEY_ON(t->scene))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, NULL);
}
else if (t->spacetype == SPACE_ACTION) {
//SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 62b68589d98..9e04799d77e 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -92,6 +92,7 @@
#include "ED_markers.h"
#include "ED_mesh.h"
#include "ED_retopo.h"
+#include "ED_screen_types.h"
#include "ED_space_api.h"
#include "ED_uvedit.h"
#include "ED_view3d.h"
@@ -270,21 +271,71 @@ static void editmesh_apply_to_mirror(TransInfo *t)
*/
static void animedit_refresh_id_tags (ID *id)
{
- AnimData *adt= BKE_animdata_from_id(id);
-
- /* tag AnimData for refresh so that other views will update in realtime with these changes */
- if (adt)
- adt->recalc |= ADT_RECALC_ANIM;
+ if (id) {
+ AnimData *adt= BKE_animdata_from_id(id);
- /* if ID-block is Object, set recalc flags */
- // TODO: this should probably go through the depsgraph instead... but for now, let's be lazy
- switch (GS(id->name)) {
- case ID_OB:
- {
- Object *ob= (Object *)id;
- ob->recalc |= OB_RECALC;
+ /* tag AnimData for refresh so that other views will update in realtime with these changes */
+ if (adt)
+ adt->recalc |= ADT_RECALC_ANIM;
+
+ /* if ID-block is Object, set recalc flags */
+ // TODO: this should probably go through the depsgraph instead... but for now, let's be lazy
+ switch (GS(id->name)) {
+ case ID_OB:
+ {
+ Object *ob= (Object *)id;
+ ob->recalc |= OB_RECALC;
+ }
+ break;
+ }
+ }
+}
+
+/* for the realtime animation recording feature, handle overlapping data */
+static void animrecord_check_state (Scene *scene, ID *id, wmTimer *animtimer)
+{
+ ScreenAnimData *sad= (animtimer) ? animtimer->customdata : NULL;
+
+ /* sanity checks */
+ if ELEM3(NULL, scene, id, sad)
+ return;
+
+ /* check if we need a new strip if:
+ * - if animtimer is running
+ * - we're not only keying for available channels
+ * - the option to add new actions for each round is not enabled
+ */
+ if (IS_AUTOKEY_FLAG(INSERTAVAIL)==0 && (scene->toolsettings->autokey_flag & ANIMRECORD_FLAG_WITHNLA)) {
+ /* if playback has just looped around, we need to add a new NLA track+strip to allow a clean pass to occur */
+ if ((sad) && (sad->flag & ANIMPLAY_FLAG_JUMPED)) {
+ AnimData *adt= BKE_animdata_from_id(id);
+
+ /* perform push-down manually with some differences
+ * NOTE: BKE_nla_action_pushdown() sync warning...
+ */
+ if ((adt->action) && !(adt->flag & ADT_NLA_EDIT_ON)) {
+ float astart, aend;
+
+ /* only push down if action is more than 1-2 frames long */
+ calc_action_range(adt->action, &astart, &aend, 1);
+ if (aend > astart+2.0f) {
+ NlaStrip *strip= add_nlastrip_to_stack(adt, adt->action);
+
+ /* clear reference to action now that we've pushed it onto the stack */
+ adt->action->id.us--;
+ adt->action= NULL;
+
+ /* adjust blending + extend so that they will behave correctly */
+ strip->extendmode= NLASTRIP_EXTEND_NOTHING;
+ strip->flag &= ~(NLASTRIP_FLAG_AUTO_BLENDS|NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_ACTIVE);
+
+ /* also, adjust the AnimData's action extend mode to be on
+ * 'nothing' so that previous result still play
+ */
+ adt->act_extendmode= NLASTRIP_EXTEND_NOTHING;
+ }
+ }
}
- break;
}
}
@@ -306,7 +357,7 @@ void recalcData(TransInfo *t)
flushTransSeq(t);
}
else if (t->spacetype == SPACE_ACTION) {
- Scene *scene;
+ Scene *scene= t->scene;
bAnimContext ac;
ListBase anim_data = {NULL, NULL};
@@ -317,7 +368,7 @@ void recalcData(TransInfo *t)
/* NOTE: sync this with the code in ANIM_animdata_get_context() */
memset(&ac, 0, sizeof(bAnimContext));
- scene= ac.scene= t->scene;
+ ac.scene= t->scene;
ac.obact= OBACT;
ac.sa= t->sa;
ac.ar= t->ar;
@@ -713,9 +764,10 @@ void recalcData(TransInfo *t)
* (i.e. uneditable animation values)
*/
// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
- // TODO: maybe the ob->adt check isn't really needed? makes it too difficult to use...
- if (/*(ob->adt) && */(t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+ if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
short targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet!
+
+ animrecord_check_state(t->scene, &ob->id, t->animtimer);
autokeyframe_pose_cb_func(t->scene, (View3D *)t->view, ob, t->mode, targetless_ik);
}
@@ -743,8 +795,8 @@ void recalcData(TransInfo *t)
* (i.e. uneditable animation values)
*/
// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
- // TODO: maybe the ob->adt check isn't really needed? makes it too difficult to use...
- if (/*(ob->adt) && */(t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+ if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+ animrecord_check_state(t->scene, &ob->id, t->animtimer);
autokeyframe_ob_cb_func(t->scene, (View3D *)t->view, ob, t->mode);
}
}
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index 4e6326a1fd6..c89bc6a632f 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -289,7 +289,10 @@ short imb_savetarga(struct ImBuf * ibuf, char *name, int flags)
fildes = fopen(name,"wb");
if (!fildes) return 0;
- if (fwrite(buf, 1, 18,fildes) != 18) return (0);
+ if (fwrite(buf, 1, 18,fildes) != 18) {
+ fclose(fildes);
+ return (0);
+ }
if (ibuf->cmap){
for (i = 0 ; i<ibuf->maxcol ; i++){
diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h
index 35381e4612a..0f5129a6c25 100644
--- a/source/blender/makesdna/DNA_anim_types.h
+++ b/source/blender/makesdna/DNA_anim_types.h
@@ -734,8 +734,13 @@ typedef struct AnimData {
ListBase overrides; /* temp storage (AnimOverride) of values for settings that are animated (but the value hasn't been keyframed) */
/* settings for animation evaluation */
- int flag; /* user-defined settings */
- int recalc; /* depsgraph recalculation flags */
+ int flag; /* user-defined settings */
+ int recalc; /* depsgraph recalculation flags */
+
+ /* settings for active action evaluation (based on NLA strip settings) */
+ short act_blendmode; /* accumulation mode for active action */
+ short act_extendmode; /* extrapolation mode for active action */
+ float act_influence; /* influence for active action */
} AnimData;
/* Animation Data settings (mostly for NLA) */
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 11aeb3df677..bc06e0cd6f9 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -570,7 +570,7 @@ typedef struct ToolSettings {
float clean_thresh;
/* Auto-Keying Mode */
- short autokey_mode, pad2; /* defines in DNA_userdef_types.h */
+ short autokey_mode, autokey_flag; /* defines in DNA_userdef_types.h */
/* Retopo */
char retopo_mode;
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index bb564d7d43e..4a317dfb369 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -409,9 +409,12 @@ extern UserDef U; /* from blenkernel blender.c */
#define AUTOKEY_MODE_EDITKEYS 5
/* Auto-Keying flag */
+ /* U.autokey_flag */
#define AUTOKEY_FLAG_INSERTAVAIL (1<<0)
#define AUTOKEY_FLAG_INSERTNEEDED (1<<1)
#define AUTOKEY_FLAG_AUTOMATKEY (1<<2)
+ /* toolsettings->autokey_flag */
+#define ANIMRECORD_FLAG_WITHNLA (1<<10)
/* transopts */
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index 87ceef36dfb..cae28f163ed 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -485,15 +485,18 @@ static void *read_file_data(char *filename, int *len_r)
data= MEM_mallocN(*len_r, "read_file_data");
if (!data) {
*len_r= -1;
+ fclose(fp);
return NULL;
}
if (fread(data, *len_r, 1, fp)!=1) {
*len_r= -1;
MEM_freeN(data);
+ fclose(fp);
return NULL;
}
-
+
+ fclose(fp);
return data;
}
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h
index 2592a1340ec..78e65e8fc06 100644
--- a/source/blender/makesrna/RNA_enum_types.h
+++ b/source/blender/makesrna/RNA_enum_types.h
@@ -41,6 +41,9 @@ extern EnumPropertyItem beztriple_interpolation_mode_items[];
extern EnumPropertyItem fmodifier_type_items[];
+extern EnumPropertyItem nla_mode_extend_items[];
+extern EnumPropertyItem nla_mode_blend_items[];
+
extern EnumPropertyItem event_value_items[];
extern EnumPropertyItem event_type_items[];
diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c
index 3469d716853..76ed62f6438 100644
--- a/source/blender/makesrna/intern/rna_animation.c
+++ b/source/blender/makesrna/intern/rna_animation.c
@@ -26,6 +26,7 @@
#include "RNA_define.h"
#include "RNA_types.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
@@ -187,9 +188,26 @@ void rna_def_animdata(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "NlaTrack");
RNA_def_property_ui_text(prop, "NLA Tracks", "NLA Tracks (i.e. Animation Layers).");
- /* Action */
+ /* Active Action */
prop= RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE);
- RNA_def_property_ui_text(prop, "Action", "Active Action for this datablock.");
+ RNA_def_property_ui_text(prop, "Action", "Active Action for this datablock.");
+
+ /* Active Action Settings */
+ prop= RNA_def_property(srna, "action_extrapolation", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "act_extendmode");
+ RNA_def_property_enum_items(prop, nla_mode_extend_items);
+ RNA_def_property_ui_text(prop, "Action Extrapolation", "Action to take for gaps past the Active Action's range (when evaluating with NLA).");
+
+ prop= RNA_def_property(srna, "action_blending", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "act_blendmode");
+ RNA_def_property_enum_items(prop, nla_mode_blend_items);
+ RNA_def_property_ui_text(prop, "Action Blending", "Method used for combining Active Action's result with result of NLA stack.");
+
+ prop= RNA_def_property(srna, "action_influence", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "act_influence");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Action Influence", "Amount the Active Action contributes to the result of the NLA stack.");
/* Drivers */
prop= RNA_def_property(srna, "drivers", PROP_COLLECTION, PROP_NONE);
@@ -197,7 +215,10 @@ void rna_def_animdata(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "FCurve");
RNA_def_property_ui_text(prop, "Drivers", "The Drivers/Expressions for this datablock.");
- /* Settings */
+ /* General Settings */
+ prop= RNA_def_property(srna, "nla_enabled", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", ADT_NLA_EVAL_OFF);
+ RNA_def_property_ui_text(prop, "NLA Evaluation Enabled", "NLA stack is evaluated when evaluating this block.");
}
/* --- */
diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c
index 7297ee8cb97..216a1d05079 100644
--- a/source/blender/makesrna/intern/rna_key.c
+++ b/source/blender/makesrna/intern/rna_key.c
@@ -47,6 +47,21 @@
#include "WM_api.h"
#include "WM_types.h"
+static void rna_ShapeKey_value_set(PointerRNA *ptr, float value)
+{
+ KeyBlock *data= (KeyBlock*)ptr->data;
+ CLAMP(value, data->slidermin, data->slidermax);
+ data->curval= value;
+}
+
+static void rna_ShapeKey_value_range(PointerRNA *ptr, float *min, float *max)
+{
+ KeyBlock *data= (KeyBlock*)ptr->data;
+
+ *min= data->slidermin;
+ *max= data->slidermax;
+}
+
static Key *rna_ShapeKey_find_key(ID *id)
{
switch(GS(id->name)) {
@@ -345,6 +360,7 @@ static void rna_def_keyblock(BlenderRNA *brna)
/* for now, this is editable directly, as users can set this even if they're not animating them (to test results) */
prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "curval");
+ RNA_def_property_float_funcs(prop, NULL, "rna_ShapeKey_value_set", "rna_ShapeKey_value_range");
RNA_def_property_ui_text(prop, "Value", "Value of shape key at the current frame.");
RNA_def_property_update(prop, 0, "rna_Key_update_data");
@@ -380,6 +396,7 @@ static void rna_def_keyblock(BlenderRNA *brna)
prop= RNA_def_property(srna, "slider_max", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "slidermax");
RNA_def_property_range(prop, -10.0f, 10.0f);
+ RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "Slider Max", "Maximum for slider.");
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index d7c677d05f3..eb908bcd2bd 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -477,6 +477,32 @@ static void rna_def_material_mtex(BlenderRNA *brna)
static void rna_def_material_colors(StructRNA *srna)
{
PropertyRNA *prop;
+
+ static EnumPropertyItem prop_ramp_blend_diffuse_items[] = {
+ {MA_RAMP_BLEND, "MIX", 0, "Mix", ""},
+ {MA_RAMP_ADD, "ADD", 0, "Add", ""},
+ {MA_RAMP_MULT, "MULTIPLY", 0, "Multiply", ""},
+ {MA_RAMP_SUB, "SUBTRACT", 0, "Subtract", ""},
+ {MA_RAMP_SCREEN, "SCREEN", 0, "Screen", ""},
+ {MA_RAMP_DIV, "DIVIDE", 0, "Divide", ""},
+ {MA_RAMP_DIFF, "DIFFERENCE", 0, "Difference", ""},
+ {MA_RAMP_DARK, "DARKEN", 0, "Darken", ""},
+ {MA_RAMP_LIGHT, "LIGHTEN", 0, "Lighten", ""},
+ {MA_RAMP_OVERLAY, "OVERLAY", 0, "Overlay", ""},
+ {MA_RAMP_DODGE, "DODGE", 0, "Dodge", ""},
+ {MA_RAMP_BURN, "BURN", 0, "Burn", ""},
+ {MA_RAMP_HUE, "HUE", 0, "Hue", ""},
+ {MA_RAMP_SAT, "SATURATION", 0, "Saturation", ""},
+ {MA_RAMP_VAL, "VALUE", 0, "Value", ""},
+ {MA_RAMP_COLOR, "COLOR", 0, "Color", ""},
+ {0, NULL, 0, NULL, NULL}};
+
+ static EnumPropertyItem prop_ramp_input_items[] = {
+ {MA_RAMP_IN_SHADER, "SHADER", 0, "Shader", ""},
+ {MA_RAMP_IN_ENERGY, "ENERGY", 0, "Energy", ""},
+ {MA_RAMP_IN_NOR, "NORMAL", 0, "Normal", ""},
+ {MA_RAMP_IN_RESULT, "RESULT", 0, "Result", ""},
+ {0, NULL, 0, NULL, NULL}};
prop= RNA_def_property(srna, "diffuse_color", PROP_FLOAT, PROP_COLOR);
RNA_def_property_float_sdna(prop, NULL, "r");
@@ -523,6 +549,31 @@ static void rna_def_material_colors(StructRNA *srna)
RNA_def_property_pointer_sdna(prop, NULL, "ramp_spec");
RNA_def_property_struct_type(prop, "ColorRamp");
RNA_def_property_ui_text(prop, "Specular Ramp", "Color ramp used to affect specular shading.");
+
+ prop= RNA_def_property(srna, "diffuse_ramp_blend", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "rampblend_col");
+ RNA_def_property_enum_items(prop, prop_ramp_blend_diffuse_items);
+ RNA_def_property_ui_text(prop, "Diffuse Ramp Blend", "");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
+
+ prop= RNA_def_property(srna, "specular_ramp_blend", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "rampblend_spec");
+ RNA_def_property_enum_items(prop, prop_ramp_blend_diffuse_items);
+ RNA_def_property_ui_text(prop, "Diffuse Ramp Blend", "");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
+
+ prop= RNA_def_property(srna, "diffuse_ramp_input", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "rampin_col");
+ RNA_def_property_enum_items(prop, prop_ramp_input_items);
+ RNA_def_property_ui_text(prop, "Diffuse Ramp Input", "");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
+
+ prop= RNA_def_property(srna, "specular_ramp_input", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "rampin_spec");
+ RNA_def_property_enum_items(prop, prop_ramp_input_items);
+ RNA_def_property_ui_text(prop, "Specular Ramp Input", "");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
+
}
static void rna_def_material_diffuse(StructRNA *srna)
diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c
index bc636af6849..3b55da046b8 100644
--- a/source/blender/makesrna/intern/rna_nla.c
+++ b/source/blender/makesrna/intern/rna_nla.c
@@ -243,6 +243,19 @@ static void rna_NlaStrip_animated_time_set(PointerRNA *ptr, int value)
#else
+/* enum defines exported for rna_animation.c */
+EnumPropertyItem nla_mode_blend_items[] = {
+ {NLASTRIP_MODE_REPLACE, "REPLACE", 0, "Replace", "Result strip replaces the accumulated results by amount specified by influence."},
+ {NLASTRIP_MODE_ADD, "ADD", 0, "Add", "Weighted result of strip is added to the accumlated results."},
+ {NLASTRIP_MODE_SUBTRACT, "SUBTRACT", 0, "Subtract", "Weighted result of strip is removed from the accumlated results."},
+ {NLASTRIP_MODE_MULTIPLY, "MULITPLY", 0, "Multiply", "Weighted result of strip is multiplied with the accumlated results."},
+ {0, NULL, 0, NULL, NULL}};
+EnumPropertyItem nla_mode_extend_items[] = {
+ {NLASTRIP_EXTEND_NOTHING, "NOTHING", 0, "Nothing", "Strip has no influence past its extents."},
+ {NLASTRIP_EXTEND_HOLD, "HOLD", 0, "Hold", "Hold the first frame if no previous strips in track, and always hold last frame."},
+ {NLASTRIP_EXTEND_HOLD_FORWARD, "HOLD_FORWARD", 0, "Hold Forward", "Only hold last frame."},
+ {0, NULL, 0, NULL, NULL}};
+
void rna_def_nlastrip(BlenderRNA *brna)
{
StructRNA *srna;
@@ -254,17 +267,6 @@ void rna_def_nlastrip(BlenderRNA *brna)
{NLASTRIP_TYPE_TRANSITION, "TRANSITION", 0, "Transition", "NLA Strip 'transitions' between adjacent strips."},
{NLASTRIP_TYPE_META, "META", 0, "Meta", "NLA Strip acts as a container for adjacent strips."},
{0, NULL, 0, NULL, NULL}};
- static EnumPropertyItem prop_mode_blend_items[] = {
- {NLASTRIP_MODE_REPLACE, "REPLACE", 0, "Replace", "Result strip replaces the accumulated results by amount specified by influence."},
- {NLASTRIP_MODE_ADD, "ADD", 0, "Add", "Weighted result of strip is added to the accumlated results."},
- {NLASTRIP_MODE_SUBTRACT, "SUBTRACT", 0, "Subtract", "Weighted result of strip is removed from the accumlated results."},
- {NLASTRIP_MODE_MULTIPLY, "MULITPLY", 0, "Multiply", "Weighted result of strip is multiplied with the accumlated results."},
- {0, NULL, 0, NULL, NULL}};
- static EnumPropertyItem prop_mode_extend_items[] = {
- {NLASTRIP_EXTEND_NOTHING, "NOTHING", 0, "Nothing", "Strip has no influence past its extents."},
- {NLASTRIP_EXTEND_HOLD, "HOLD", 0, "Hold", "Hold the first frame if no previous strips in track, and always hold last frame."},
- {NLASTRIP_EXTEND_HOLD_FORWARD, "HOLD_FORWARD", 0, "Hold Forward", "Only hold last frame."},
- {0, NULL, 0, NULL, NULL}};
/* struct definition */
srna= RNA_def_struct(brna, "NlaStrip", NULL);
@@ -286,12 +288,12 @@ void rna_def_nlastrip(BlenderRNA *brna)
prop= RNA_def_property(srna, "extrapolation", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "extendmode");
- RNA_def_property_enum_items(prop, prop_mode_extend_items);
+ RNA_def_property_enum_items(prop, nla_mode_extend_items);
RNA_def_property_ui_text(prop, "Extrapolation", "Action to take for gaps past the strip extents.");
prop= RNA_def_property(srna, "blending", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "blendmode");
- RNA_def_property_enum_items(prop, prop_mode_blend_items);
+ RNA_def_property_enum_items(prop, nla_mode_blend_items);
RNA_def_property_ui_text(prop, "Blending", "Method used for combining strip's result with accumulated result.");
/* Strip extents */
diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c
index 965b70714dc..215a1e71e0d 100644
--- a/source/blender/makesrna/intern/rna_object_force.c
+++ b/source/blender/makesrna/intern/rna_object_force.c
@@ -715,10 +715,68 @@ static void rna_def_field(BlenderRNA *brna)
static void rna_def_game_softbody(BlenderRNA *brna)
{
StructRNA *srna;
+ PropertyRNA *prop;
srna= RNA_def_struct(brna, "GameSoftBodySettings", NULL);
RNA_def_struct_sdna(srna, "BulletSoftBody");
RNA_def_struct_ui_text(srna, "Game Soft Body Settings", "Soft body simulation settings for an object in the game engine.");
+
+ /* Floats */
+
+ prop= RNA_def_property(srna, "linstiff", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "linStiff");
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Linear Stiffness", "Linear stiffness of the soft body links");
+
+ prop= RNA_def_property(srna, "dynamic_friction", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "kDF");
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Friction", "Dynamic Friction");
+
+ prop= RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "kMT");
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Threshold", "Shape matching threshold");
+
+ prop= RNA_def_property(srna, "margin", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "margin");
+ RNA_def_property_range(prop, 0.01f, 1.0f);
+ RNA_def_property_ui_text(prop, "Margin", "Collision margin for soft body. Small value makes the algorithm unstable");
+
+ prop= RNA_def_property(srna, "welding", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "welding");
+ RNA_def_property_range(prop, 0.0f, 0.01f);
+ RNA_def_property_ui_text(prop, "Welding", "Welding threshold: distance between nearby vertices to be considered equal => set to 0.0 to disable welding test and speed up scene loading (ok if the mesh has no duplicates)");
+
+ /* Integers */
+
+ prop= RNA_def_property(srna, "position_iterations", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "piterations");
+ RNA_def_property_range(prop, 0, 10);
+ RNA_def_property_ui_text(prop, "Position Iterations", "Position solver iterations");
+
+ prop= RNA_def_property(srna, "cluster_iterations", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "numclusteriterations");
+ RNA_def_property_range(prop, 1, 128);
+ RNA_def_property_ui_text(prop, "Cluster Iterations", "Specify the number of cluster iterations");
+
+ /* Booleans */
+
+ prop= RNA_def_property(srna, "shape_match", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", OB_BSB_SHAPE_MATCHING);
+ RNA_def_property_ui_text(prop, "Shape Match", "Enable soft body shape matching goal");
+
+ prop= RNA_def_property(srna, "bending_const", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", OB_BSB_BENDING_CONSTRAINTS);
+ RNA_def_property_ui_text(prop, "Bending Const", "Enable bending constraints");
+
+ prop= RNA_def_property(srna, "enable_rs_collision", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "collisionflags", OB_BSB_COL_CL_RS);
+ RNA_def_property_ui_text(prop, "Cluster Collision RS", "Enable cluster collision between soft and rigid body");
+
+ prop= RNA_def_property(srna, "enable_ss_collision", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "collisionflags", OB_BSB_COL_CL_SS);
+ RNA_def_property_ui_text(prop, "Cluster Collision SS", "Enable cluster collision between soft and soft body");
}
static void rna_def_softbody(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index c089591d149..793970dea49 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -477,29 +477,29 @@ static void rna_def_background_image(BlenderRNA *brna)
prop= RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NEVER_NULL);
RNA_def_property_pointer_sdna(prop, NULL, "iuser");
RNA_def_property_ui_text(prop, "Image User", "Parameters defining which layer, pass and frame of the image is displayed.");
- RNA_def_property_update(prop, NC_OBJECT, NULL);
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
prop= RNA_def_property(srna, "x_offset", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "xof");
RNA_def_property_ui_text(prop, "X Offset", "Offsets image horizontally from the view center");
- RNA_def_property_update(prop, NC_OBJECT, NULL);
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
prop= RNA_def_property(srna, "y_offset", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "yof");
RNA_def_property_ui_text(prop, "Y Offset", "Offsets image vertically from the view center");
- RNA_def_property_update(prop, NC_OBJECT, NULL);
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "size");
RNA_def_property_ui_text(prop, "Size", "Scaling factor for the background image.");
RNA_def_property_range(prop, 0.0, FLT_MAX);
- RNA_def_property_update(prop, NC_OBJECT, NULL);
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
prop= RNA_def_property(srna, "transparency", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "blend");
RNA_def_property_ui_text(prop, "Transparency", "Amount to blend the image against the background color.");
RNA_def_property_range(prop, 0.0, 1.0);
- RNA_def_property_update(prop, NC_OBJECT, NULL);
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
}
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
index 973d74d71ff..9aebd999b29 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
@@ -53,7 +53,7 @@ static void do_luma_matte(bNode *node, float *out, float *in)
if(in[0]>c->t1) {
alpha=1.0;
}
- else if(in[1]<c->t2){
+ else if(in[0]<c->t2){
alpha=0.0;
}
else {/*blend */
@@ -99,7 +99,7 @@ static void node_composit_init_luma_matte(bNode *node)
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage=c;
- c->t1= 0.0f;
+ c->t1= 1.0f;
c->t2= 0.0f;
};
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index 13157378057..406541d62ba 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -130,7 +130,7 @@ void WM_keymap_init(bContext *C)
{
wmWindowManager *wm= CTX_wm_manager(C);
- if(CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) {
+ if(wm && CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) {
wm_window_keymap(wm);
ED_spacetypes_keymap(wm);
diff --git a/source/darwin/Makefile b/source/darwin/Makefile
index 35ecc6de8f1..35842b43eae 100644
--- a/source/darwin/Makefile
+++ b/source/darwin/Makefile
@@ -51,8 +51,11 @@ ifeq ($(APPLICATION), blender)
@cp -R $(NANBLENDERHOME)/release/scripts $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/
@echo "---> copying ui scripts"
@cp -R $(NANBLENDERHOME)/release/ui $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/
+ @echo "---> copying python modules"
+ @mkdir $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/python
+ @unzip -q $(LCGDIR)/release/python.zip -d $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/python/
endif
- @echo "---> removing SNV directories and Mac hidden files from distribution"
+ @echo "---> removing SVN directories and Mac hidden files from distribution"
@find $(DIR)/bin/$(APPLICATION).app -name CVS -prune -exec rm -rf {} \;
@find $(DIR)/bin/$(APPLICATION).app -name .DS_Store -exec rm -f {} \;
@find $(DIR)/bin/$(APPLICATION).app -name .svn -prune -exec rm -rf {} \;
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index d248e519e24..d3b9b4bfbc3 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -410,7 +410,6 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, int alw
sceneconverter->ConvertScene(
startscene,
dictionaryobject,
- keyboarddevice,
rendertools,
canvas);
ketsjiengine->AddScene(startscene);
@@ -725,7 +724,6 @@ extern "C" void StartKetsjiShellSimulation(struct wmWindow *win,
sceneconverter->ConvertScene(
startscene,
dictionaryobject,
- keyboarddevice,
rendertools,
canvas);
ketsjiengine->AddScene(startscene);
@@ -791,6 +789,16 @@ extern "C" void StartKetsjiShellSimulation(struct wmWindow *win,
delete mousedevice;
mousedevice = NULL;
}
+ if (rasterizer)
+ {
+ delete rasterizer;
+ rasterizer = NULL;
+ }
+ if (rendertools)
+ {
+ delete rendertools;
+ rendertools = NULL;
+ }
SND_DeviceManager::Unsubscribe();
} while (exitrequested == KX_EXIT_REQUEST_RESTART_GAME || exitrequested == KX_EXIT_REQUEST_START_OTHER_GAME);
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
index ac2d1cbb621..79ab27bee6b 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
@@ -323,9 +323,8 @@ bool ConvertMaterial(
Material *mat,
MTFace* tface,
const char *tfaceName,
- MFace* mface,
+ MFace* mface,
MCol* mmcol,
- int lightlayer,
MTF_localLayer *layers,
bool glslmat)
{
@@ -721,12 +720,12 @@ bool ConvertMaterial(
return true;
}
-
-RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* rendertools, KX_Scene* scene, KX_BlenderSceneConverter *converter)
+/* blenderobj can be NULL, make sure its checked for */
+RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene, KX_BlenderSceneConverter *converter)
{
RAS_MeshObject *meshobj;
bool skinMesh = false;
- int lightlayer = blenderobj->lay;
+ int lightlayer = blenderobj ? blenderobj->lay:(1<<20)-1; // all layers if no object.
if ((meshobj = converter->FindGameMesh(mesh/*, ob->lay*/)) != NULL)
return meshobj;
@@ -749,7 +748,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
}
// Determine if we need to make a skinned mesh
- if (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj))
+ if (blenderobj && (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj)))
{
meshobj = new BL_SkinMeshObject(mesh);
skinMesh = true;
@@ -844,8 +843,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
tan3 = tangent[f*4 + 3];
}
- /* get material */
- ma = give_current_material(blenderobj, mface->mat_nr+1);
+ ma = give_current_material(blenderobj, mface->mat_nr+1);
{
bool visible = true;
@@ -860,7 +858,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
if (!bl_mat)
bl_mat = new BL_Material();
ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
- lightlayer, layers, converter->GetGLSLMaterials());
+ layers, converter->GetGLSLMaterials());
visible = ((bl_mat->ras_mode & POLY_VIS)!=0);
collider = ((bl_mat->ras_mode & COLLIDER)!=0);
@@ -883,7 +881,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
if (kx_blmat == NULL)
kx_blmat = new KX_BlenderMaterial();
- kx_blmat->Initialize(scene, bl_mat, skinMesh, lightlayer);
+ kx_blmat->Initialize(scene, bl_mat, skinMesh);
polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat);
}
else {
@@ -1067,8 +1065,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
-static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject,
- KX_Scene *kxscene)
+static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject)
{
PHY_MaterialProps *materialProps = new PHY_MaterialProps;
@@ -1101,8 +1098,7 @@ static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blender
return materialProps;
}
-static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject,
- KX_Scene *kxscene)
+static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject)
{
PHY_ShapeProps *shapeProps = new PHY_ShapeProps;
@@ -1397,12 +1393,11 @@ void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj,
PHY_ShapeProps* shapeprops =
- CreateShapePropsFromBlenderObject(blenderobject,
- kxscene);
+ CreateShapePropsFromBlenderObject(blenderobject);
PHY_MaterialProps* smmaterial =
- CreateMaterialFromBlenderObject(blenderobject, kxscene);
+ CreateMaterialFromBlenderObject(blenderobject);
KX_ObjectProperties objprop;
objprop.m_lockXaxis = (blenderobject->gameflag2 & OB_LOCK_RIGID_BODY_X_AXIS) !=0;
@@ -1720,7 +1715,7 @@ static KX_GameObject *gameobject_from_blenderobject(
Mesh* mesh = static_cast<Mesh*>(ob->data);
float center[3], extents[3];
float radius = my_boundbox_mesh((Mesh*) ob->data, center, extents);
- RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,rendertools,kxscene,converter);
+ RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,kxscene,converter);
// needed for python scripting
kxscene->GetLogicManager()->RegisterMeshName(meshobj->GetName(),meshobj);
@@ -1903,7 +1898,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
KX_KetsjiEngine* ketsjiEngine,
e_PhysicsEngine physics_engine,
PyObject* pythondictionary,
- SCA_IInputDevice* keydev,
RAS_IRenderTools* rendertools,
RAS_ICanvas* canvas,
KX_BlenderSceneConverter* converter,
@@ -2673,7 +2667,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
struct Object* blenderobj = converter->FindBlenderObject(gameobj);
int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0;
bool isInActiveLayer = (blenderobj->lay & layerMask)!=0;
- BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,keydev,layerMask,isInActiveLayer,canvas,converter);
+ BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,layerMask,isInActiveLayer,canvas,converter);
// set the init state to all objects
gameobj->SetInitState((blenderobj->init_state)?blenderobj->init_state:blenderobj->state);
}
@@ -2711,4 +2705,3 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
RAS_BucketManager *bucketmanager = kxscene->GetBucketManager();
bucketmanager->OptimizeBuckets(distance);
}
-
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.h b/source/gameengine/Converter/BL_BlenderDataConversion.h
index bf733b748e2..b8f9d1ec4e6 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.h
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.h
@@ -34,14 +34,13 @@
#include "KX_Python.h"
#include "KX_PhysicsEngineEnums.h"
-class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class RAS_IRenderTools* rendertools,class KX_Scene* scene, class KX_BlenderSceneConverter *converter);
+class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class KX_Scene* scene, class KX_BlenderSceneConverter *converter);
void BL_ConvertBlenderObjects(struct Main* maggie,
class KX_Scene* kxscene,
class KX_KetsjiEngine* ketsjiEngine,
e_PhysicsEngine physics_engine,
PyObject* pythondictionary,
- class SCA_IInputDevice* keydev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas,
class KX_BlenderSceneConverter* sceneconverter,
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 776a3528d89..4df9df75d3d 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -244,7 +244,6 @@ struct BlenderDebugDraw : public btIDebugDraw
void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
PyObject* dictobj,
- class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas)
{
@@ -334,7 +333,6 @@ void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
m_ketsjiEngine,
physics_engine,
dictobj,
- keyinputdev,
rendertools,
canvas,
this,
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.h b/source/gameengine/Converter/KX_BlenderSceneConverter.h
index c47055803c8..50ce8d61336 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.h
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.h
@@ -94,7 +94,6 @@ public:
virtual void ConvertScene(
class KX_Scene* destinationscene,
PyObject* dictobj,
- class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas
);
@@ -149,6 +148,9 @@ public:
virtual bool GetGLSLMaterials();
struct Scene* GetBlenderSceneForName(const STR_String& name);
+
+ struct Main* GetMain() { return m_maggie; };
+
};
#endif //__KX_BLENDERSCENECONVERTER_H
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp
index 84cc55ab8e4..7ee02b8fa21 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.cpp
+++ b/source/gameengine/Converter/KX_ConvertActuators.cpp
@@ -666,7 +666,6 @@ void BL_ConvertActuators(char* maggiename,
tmpmesh = BL_ConvertMesh(
editobact->me,
blenderobject,
- rendertools,
scene,
converter
);
diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp
index 0b395cfd402..eb77e087de5 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.cpp
+++ b/source/gameengine/Converter/KX_ConvertSensors.cpp
@@ -28,6 +28,7 @@
* Conversion of Blender data blocks to KX sensor system
*/
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -94,7 +95,6 @@ void BL_ConvertSensors(struct Object* blenderobject,
SCA_LogicManager* logicmgr,
KX_Scene* kxscene,
KX_KetsjiEngine* kxengine,
- SCA_IInputDevice* keydev,
int activeLayerBitInfo,
bool isInActiveLayer,
RAS_ICanvas* canvas,
@@ -444,9 +444,8 @@ void BL_ConvertSensors(struct Object* blenderobject,
blendernearsensor->dist,
blendernearsensor->resetdist,
bFindMaterial,
- nearpropertyname,kxscene,
- physCtrl
- );
+ nearpropertyname,
+ physCtrl);
}
break;
@@ -648,8 +647,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
smallmargin,
largemargin,
bFindMaterial,
- radarpropertyname,
- kxscene);
+ radarpropertyname);
}
diff --git a/source/gameengine/Converter/KX_ConvertSensors.h b/source/gameengine/Converter/KX_ConvertSensors.h
index 9162a866768..630323f30b4 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.h
+++ b/source/gameengine/Converter/KX_ConvertSensors.h
@@ -34,7 +34,6 @@ void BL_ConvertSensors(struct Object* blenderobject,
class SCA_LogicManager* logicmgr,
class KX_Scene* kxscene,
class KX_KetsjiEngine* kxengine,
- class SCA_IInputDevice* keydev,
int activeLayerBitInfo,
bool isInActiveLayer,
class RAS_ICanvas* canvas,
diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp
index d8c81f56f66..2759b68b62e 100644
--- a/source/gameengine/Expressions/Value.cpp
+++ b/source/gameengine/Expressions/Value.cpp
@@ -543,13 +543,6 @@ CValue* CValue::FindIdentifier(const STR_String& identifiername)
#ifndef NO_EXP_PYTHON_EMBEDDING
-
-static PyMethodDef CValueMethods[] =
-{
- //{ "new", CValue::PyMake , METH_VARARGS},
- { NULL,NULL} // Sentinel
-};
-
PyAttributeDef CValue::Attributes[] = {
KX_PYATTRIBUTE_RO_FUNCTION("name", CValue, pyattr_get_name),
{ NULL } //Sentinel
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
index a3805bd4317..4c824a8df40 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
@@ -708,10 +708,8 @@ bool GPG_Application::startEngine(void)
loadGamePythonConfig(m_pyGlobalDictString, m_pyGlobalDictString_Length);
m_sceneconverter->ConvertScene(
- startscenename,
startscene,
dictionaryobject,
- m_keyboard,
m_rendertools,
m_canvas);
m_ketsjiengine->AddScene(startscene);
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index 314becc702d..d93175ff35a 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -59,8 +59,7 @@ KX_BlenderMaterial::KX_BlenderMaterial()
void KX_BlenderMaterial::Initialize(
KX_Scene *scene,
BL_Material *data,
- bool skin,
- int lightlayer)
+ bool skin)
{
RAS_IPolyMaterial::Initialize(
data->texname[0],
@@ -72,8 +71,7 @@ void KX_BlenderMaterial::Initialize(
data->mode,
data->transp,
((data->ras_mode &ALPHA)!=0),
- ((data->ras_mode &ZSORT)!=0),
- lightlayer
+ ((data->ras_mode &ZSORT)!=0)
);
mMaterial = data;
mShader = 0;
@@ -776,6 +774,7 @@ void KX_BlenderMaterial::UpdateIPO(
mMaterial->hard = (float)(hard);
mMaterial->emit = (float)(emit);
mMaterial->spec_f = (float)(spec);
+ mMaterial->ref = (float)(ref);
}
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h
index 1f5edc1d7d1..605ca207949 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.h
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h
@@ -27,8 +27,7 @@ public:
void Initialize(
class KX_Scene* scene,
BL_Material* mat,
- bool skin,
- int lightlayer
+ bool skin
);
virtual ~KX_BlenderMaterial();
diff --git a/source/gameengine/Ketsji/KX_ISceneConverter.h b/source/gameengine/Ketsji/KX_ISceneConverter.h
index 5c2c0bc0ad2..45b3276e98c 100644
--- a/source/gameengine/Ketsji/KX_ISceneConverter.h
+++ b/source/gameengine/Ketsji/KX_ISceneConverter.h
@@ -50,7 +50,6 @@ public:
virtual void ConvertScene(
class KX_Scene* destinationscene,
PyObject* dictobj,
- class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas)=0;
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
index ca741010730..d3253b9eddd 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
@@ -1646,7 +1646,6 @@ KX_Scene* KX_KetsjiEngine::CreateScene(const STR_String& scenename)
m_sceneconverter->ConvertScene(tmpscene,
m_pythondictionary,
- m_keyboarddevice,
m_rendertools,
m_canvas);
diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp
index 1a211a64b35..6871aeebc76 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.cpp
+++ b/source/gameengine/Ketsji/KX_NearSensor.cpp
@@ -47,14 +47,12 @@ KX_NearSensor::KX_NearSensor(SCA_EventManager* eventmgr,
float resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
- class KX_Scene* scene,
PHY_IPhysicsController* ctrl)
:KX_TouchSensor(eventmgr,
gameobj,
bFindMaterial,
false,
- touchedpropname
- /*, scene */),
+ touchedpropname),
m_Margin(margin),
m_ResetMargin(resetmargin)
diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h
index f3c1d74805c..03d6f830579 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.h
+++ b/source/gameengine/Ketsji/KX_NearSensor.h
@@ -44,7 +44,7 @@ class KX_NearSensor : public KX_TouchSensor
protected:
float m_Margin;
float m_ResetMargin;
- KX_Scene* m_scene;
+
KX_ClientObjectInfo* m_client_info;
public:
KX_NearSensor(class SCA_EventManager* eventmgr,
@@ -53,7 +53,6 @@ public:
float resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
- class KX_Scene* scene,
PHY_IPhysicsController* ctrl);
/*
public:
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
index 9bc84127572..a48d3f15bce 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
@@ -88,8 +88,7 @@ void KX_PolygonMaterial::Initialize(
mode,
transp,
alpha,
- zsort,
- lightlayer);
+ zsort);
m_tface = tface;
m_mcol = mcol;
m_material = ma;
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 05f0d9e6093..5d0f01d7bd0 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -2150,3 +2150,6 @@ void resetGamePythonPath()
{
gp_GamePythonPathOrig[0] = '\0';
}
+
+
+
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp
index e39d3756b71..8ac94a324f2 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.cpp
+++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp
@@ -48,8 +48,7 @@ KX_RadarSensor::KX_RadarSensor(SCA_EventManager* eventmgr,
double margin,
double resetmargin,
bool bFindMaterial,
- const STR_String& touchedpropname,
- class KX_Scene* kxscene)
+ const STR_String& touchedpropname)
: KX_NearSensor(
eventmgr,
@@ -59,7 +58,6 @@ KX_RadarSensor::KX_RadarSensor(SCA_EventManager* eventmgr,
resetmargin,
bFindMaterial,
touchedpropname,
- kxscene,
physCtrl),
m_coneradius(coneradius),
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h
index 344be0e399f..9f38d75abc4 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.h
+++ b/source/gameengine/Ketsji/KX_RadarSensor.h
@@ -69,8 +69,7 @@ public:
double margin,
double resetmargin,
bool bFindMaterial,
- const STR_String& touchedpropname,
- class KX_Scene* kxscene);
+ const STR_String& touchedpropname);
KX_RadarSensor();
virtual ~KX_RadarSensor();
virtual void SynchronizeTransform();
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
index 6af00d63c2d..cb5c5a12397 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
@@ -46,8 +46,7 @@ void RAS_IPolyMaterial::Initialize(
int mode,
int transp,
bool alpha,
- bool zsort,
- int lightlayer)
+ bool zsort)
{
m_texturename = texname;
m_materialname = matname;
@@ -59,7 +58,6 @@ void RAS_IPolyMaterial::Initialize(
m_transp = transp;
m_alpha = alpha;
m_zsort = zsort;
- //m_lightlayer = lightlayer;
m_polymatid = m_newpolymatid++;
m_flag = 0;
m_multimode = 0;
@@ -80,7 +78,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial()
m_transp(0),
m_alpha(false),
m_zsort(false),
- //m_lightlayer(0),
m_polymatid(0),
m_flag(0),
m_multimode(0)
@@ -100,8 +97,7 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
int mode,
int transp,
bool alpha,
- bool zsort,
- int lightlayer)
+ bool zsort)
: m_texturename(texname),
m_materialname(matname),
m_materialindex(materialindex),
@@ -112,7 +108,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
m_transp(transp),
m_alpha(alpha),
m_zsort(zsort),
- //m_lightlayer(lightlayer),
m_polymatid(m_newpolymatid++),
m_flag(0),
m_multimode(0)
@@ -172,11 +167,6 @@ bool RAS_IPolyMaterial::Less(const RAS_IPolyMaterial& rhs) const
return m_polymatid < rhs.m_polymatid;
}
-//int RAS_IPolyMaterial::GetLightLayer() const
-//{
-// return m_lightlayer;
-//}
-
bool RAS_IPolyMaterial::IsAlpha() const
{
return m_alpha || m_zsort;
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
index e19db35ccb5..a01196ef307 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
@@ -73,7 +73,6 @@ protected:
int m_transp;
bool m_alpha;
bool m_zsort;
- //int m_lightlayer;
int m_materialindex;
unsigned int m_polymatid;
@@ -110,8 +109,7 @@ public:
int mode,
int transp,
bool alpha,
- bool zsort,
- int lightlayer);
+ bool zsort);
void Initialize(const STR_String& texname,
const STR_String& matname,
int materialindex,
@@ -121,8 +119,7 @@ public:
int mode,
int transp,
bool alpha,
- bool zsort,
- int lightlayer);
+ bool zsort);
virtual ~RAS_IPolyMaterial() {};
/**
diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk
index 42041849904..fcda8ca924e 100644
--- a/source/nan_definitions.mk
+++ b/source/nan_definitions.mk
@@ -137,18 +137,24 @@ endif
export ID = $(shell whoami)
export HOST = $(shell hostname -s)
- export PY_FRAMEWORK ?= 1
+ export NAN_PYTHON_VERSION = 3.1
- ifdef PY_FRAMEWORK
- export NAN_PYTHON ?= /System/Library/Frameworks/Python.framework/Versions/2.3
- export NAN_PYTHON_VERSION ?= 2.3
- export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
- export NAN_PYTHON_LIB ?= -framework Python
+ ifeq ($(NAN_PYTHON_VERSION),3.1)
+ export PY_FRAMEWORK ?= 0
+ export NAN_PYTHON ?= $(LCGDIR)/python
+ export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/libpython$(NAN_PYTHON_VERSION).a
else
- export NAN_PYTHON ?= /sw
- export NAN_PYTHON_VERSION ?= 2.3
- export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
- export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
+ export PY_FRAMEWORK ?= 1
+ ifdef PY_FRAMEWORK
+ export NAN_PYTHON ?= /System/Library/Frameworks/Python.framework/Versions/2.5
+ export NAN_PYTHON_VERSION ?= 2.5
+ export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
+ export NAN_PYTHON_LIB ?= -framework Python
+ else
+ export NAN_PYTHON ?= /sw
+ export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
+ export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
+ endif
endif
export NAN_OPENAL ?= $(LCGDIR)/openal
@@ -172,13 +178,9 @@ endif
export NAN_OPENEXR ?= $(LCGDIR)/openexr
export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR
- ifeq ($(CPU),powerpc)
- export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a
- else
- export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a
- endif
-
- # export NAN_NO_KETSJI=true
+ export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a
+
+ export NAN_NO_KETSJI=false
ifeq ($(CPU), i386)
export NAN_NO_OPENAL=true