diff options
author | Joerg Mueller <nexyon@gmail.com> | 2009-08-02 16:49:53 +0400 |
---|---|---|
committer | Joerg Mueller <nexyon@gmail.com> | 2009-08-02 16:49:53 +0400 |
commit | 40c8585e84b029ee1aaad3f56f11460d739247f0 (patch) | |
tree | 08d06ff8cede5ec4e58cff9a1b339d8135746778 | |
parent | 96cc6818255a351c83858339704922a463749f22 (diff) | |
parent | c5f0be6d99cd711b07643fcbc6ece218fe805665 (diff) |
svn 2.5 branch merge r22138 to r22143
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
IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include
XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include
ECHO Done
"
+ />
+ </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
IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include
XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include
ECHO Done
"
+ />
+ </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
IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include
XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include
ECHO Done
"
+ />
+ </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
IF NOT EXIST ..\..\..\..\..\build\msvc_9\intern\smoke\include MKDIR ..\..\..\..\..\build\msvc_9\intern\smoke\include
XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\build\msvc_9\intern\smoke\include
ECHO Done
"
+ />
+ </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 |